[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C32E8T7PCGTHVK1GEVMQEX":3,"skill-same:01M6C32E8T7PCGTHVK1GEVMQEX":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M6C32E8T7PCGTHVK1GEVMQEX","codex",null,"Delegate coding to OpenAI Codex CLI (features, PRs).","jleechanorg\u002Fjleechan-skills","jleechanorg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221404966?v=4","01M6C1VJ99XG950X1DWPEBCBGX","01M6C1VJDK5YVDNT3362RT5WSB",6,"MIT","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fautonomous-ai-agents\u002Fcodex\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"coding","prs","features","hermes-agent","openai codex cli","openai codex","claude-code","Coding-Agent","delegate","hermes agent","hermes","macos","refactoring","openai","code-review","code","windows","codex cli","linux","cli","review","2026-11-10 10:12:30",false,"---\nname: codex\ndescription: \"Delegate coding to OpenAI Codex CLI (features, PRs).\"\nversion: 1.0.1\nauthor: Hermes Agent\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [Coding-Agent, Codex, OpenAI, Code-Review, Refactoring]\n    related_skills: [claude-code, hermes-agent]\n---\n\n# Codex CLI\n\nDelegate coding tasks to [Codex](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) via the Hermes terminal. Codex is OpenAI's autonomous coding agent CLI.\n\n## When to use\n\n- Building features\n- Refactoring\n- PR reviews\n- Batch issue fixing\n\nRequires the codex CLI and a git repository.\n\n## Prerequisites\n\n- Codex installed: `npm install -g @openai\u002Fcodex`\n- OpenAI auth configured: either `OPENAI_API_KEY` or Codex OAuth credentials\n  from the Codex CLI login flow\n- **Must run inside a git repository** — Codex refuses to run outside one\n- Use `pty=true` in terminal calls — Codex is an interactive terminal app\n\nFor Hermes itself, `model.provider: openai-codex` uses Hermes-managed Codex\nOAuth from `~\u002F.hermes\u002Fauth.json` after `hermes auth add openai-codex`. For the\nstandalone Codex CLI, a valid CLI OAuth session may live under\n`~\u002F.codex\u002Fauth.json`; do not treat a missing `OPENAI_API_KEY` alone as proof\nthat Codex auth is missing.\n\n## One-Shot Tasks\n\n```\nterminal(command=\"codex exec 'Add dark mode toggle to settings'\", workdir=\"~\u002Fproject\", pty=true)\n```\n\nFor scratch work (Codex needs a git repo):\n```\nterminal(command=\"cd $(mktemp -d) && git init && codex exec 'Build a snake game in Python'\", pty=true)\n```\n\n## Background Mode (Long Tasks)\n\n```\n# Start in background with PTY\nterminal(command=\"codex exec --sandbox workspace-write 'Refactor the auth module'\", workdir=\"~\u002Fproject\", background=true, pty=true)\n# Returns session_id\n\n# Monitor progress\nprocess(action=\"poll\", session_id=\"\u003Cid>\")\nprocess(action=\"log\", session_id=\"\u003Cid>\")\n\n# Send input if Codex asks a question\nprocess(action=\"submit\", session_id=\"\u003Cid>\", data=\"yes\")\n\n# Kill if needed\nprocess(action=\"kill\", session_id=\"\u003Cid>\")\n```\n\n## Key Flags\n\n| Flag | Effect |\n|------|--------|\n| `exec \"prompt\"` | One-shot execution, exits when done |\n| `--sandbox workspace-write` (`-s`) | Sandboxed but auto-approves file changes in the workspace (the recommended auto-build mode) |\n| `--dangerously-bypass-approvals-and-sandbox` | No sandbox, no approvals (fastest, most dangerous; `--yolo` still works as a hidden alias) |\n| `--sandbox danger-full-access` | No Codex sandbox; useful when the host service context breaks bubblewrap |\n\n> **Deprecated:** `--full-auto` still works but the live CLI warns to use `--sandbox workspace-write` instead.\n\n## Hermes Gateway Caveat\n\nWhen invoking the Codex CLI from a Hermes gateway\u002Fservice context (for example,\nTelegram-driven agent sessions), Codex `workspace-write` sandboxing may fail even\nwhen the same command works in the user's interactive shell. A typical symptom is\nbubblewrap\u002Fuser-namespace errors such as `setting up uid map: Permission denied`\nor `loopback: Failed RTM_NEWADDR: Operation not permitted`.\n\nIn that context, prefer:\n\n```\ncodex exec --sandbox danger-full-access \"\u003Ctask>\"\n```\n\nUse process boundaries as the safety layer instead: explicit `workdir`, clean git\nstatus before launch, narrow task prompts, `git diff` review, targeted tests, and\nhuman\u002Fagent confirmation before committing broad changes.\n\n## PR Reviews\n\nClone to a temp directory for safe review:\n\n```\nterminal(command=\"REVIEW=$(mktemp -d) && git clone https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && codex review --base origin\u002Fmain\", pty=true)\n```\n\n## Parallel Issue Fixing with Worktrees\n\n```\n# Create worktrees\nterminal(command=\"git worktree add -b fix\u002Fissue-78 \u002Ftmp\u002Fissue-78 main\", workdir=\"~\u002Fproject\")\nterminal(command=\"git worktree add -b fix\u002Fissue-99 \u002Ftmp\u002Fissue-99 main\", workdir=\"~\u002Fproject\")\n\n# Launch Codex in each\nterminal(command=\"codex --sandbox workspace-write exec 'Fix issue #78: \u003Cdescription>. Commit when done.'\", workdir=\"\u002Ftmp\u002Fissue-78\", background=true, pty=true)\nterminal(command=\"codex --sandbox workspace-write exec 'Fix issue #99: \u003Cdescription>. Commit when done.'\", workdir=\"\u002Ftmp\u002Fissue-99\", background=true, pty=true)\n\n# Monitor\nprocess(action=\"list\")\n\n# After completion, push and create PRs\nterminal(command=\"cd \u002Ftmp\u002Fissue-78 && git push -u origin fix\u002Fissue-78\")\nterminal(command=\"gh pr create --repo user\u002Frepo --head fix\u002Fissue-78 --title 'fix: ...' --body '...'\")\n\n# Cleanup\nterminal(command=\"git worktree remove \u002Ftmp\u002Fissue-78\", workdir=\"~\u002Fproject\")\n```\n\n## Batch PR Reviews\n\n```\n# Fetch all PR refs\nterminal(command=\"git fetch origin '+refs\u002Fpull\u002F*\u002Fhead:refs\u002Fremotes\u002Forigin\u002Fpr\u002F*'\", workdir=\"~\u002Fproject\")\n\n# Review multiple PRs in parallel\nterminal(command=\"codex exec 'Review PR #86. git diff origin\u002Fmain...origin\u002Fpr\u002F86'\", workdir=\"~\u002Fproject\", background=true, pty=true)\nterminal(command=\"codex exec 'Review PR #87. git diff origin\u002Fmain...origin\u002Fpr\u002F87'\", workdir=\"~\u002Fproject\", background=true, pty=true)\n\n# Post results\nterminal(command=\"gh pr comment 86 --body '\u003Creview>'\", workdir=\"~\u002Fproject\")\n```\n\n## Rules\n\n1. **Always use `pty=true`** — Codex is an interactive terminal app and hangs without a PTY\n2. **Git repo required** — Codex won't run outside a git directory. Use `mktemp -d && git init` for scratch\n3. **Use `exec` for one-shots** — `codex exec \"prompt\"` runs and exits cleanly\n4. **`--sandbox workspace-write` for building** — auto-approves changes within the sandbox (`--full-auto` is deprecated for this)\n5. **Background for long tasks** — use `background=true` and monitor with `process` tool\n6. **Don't interfere** — monitor with `poll`\u002F`log`, be patient with long-running tasks\n7. **Parallel is fine** — run multiple Codex processes at once for batch work\n","# Codex CLI\n\nDelegate coding tasks to [Codex](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) via the Hermes terminal. Codex is OpenAI's autonomous coding agent CLI.\n\n## When to use\n\n- Building features\n- Refactoring\n- PR reviews\n- Batch issue fixing\n\nRequires the codex CLI and a git repository.\n\n## Prerequisites\n\n- Codex installed: `npm install -g @openai\u002Fcodex`\n- OpenAI auth configured: either `OPENAI_API_KEY` or Codex OAuth credentials\n  from the Codex CLI login flow\n- **Must run inside a git repository** — Codex refuses to run outside one\n- Use `pty=true` in terminal calls — Codex is an interactive terminal app\n\nFor Hermes itself, `model.provider: openai-codex` uses Hermes-managed Codex\nOAuth from `~\u002F.hermes\u002Fauth.json` after `hermes auth add openai-codex`. For the\nstandalone Codex CLI, a valid CLI OAuth session may live under\n`~\u002F.codex\u002Fauth.json`; do not treat a missing `OPENAI_API_KEY` alone as proof\nthat Codex auth is missing.\n\n## One-Shot Tasks\n\n```\nterminal(command=\"codex exec 'Add dark mode toggle to settings'\", workdir=\"~\u002Fproject\", pty=true)\n```\n\nFor scratch work (Codex needs a git repo):\n```\nterminal(command=\"cd $(mktemp -d) && git init && codex exec 'Build a snake game in Python'\", pty=true)\n```\n\n## Background Mode (Long Tasks)\n\n```\n# Start in background with PTY\nterminal(command=\"codex exec --sandbox workspace-write 'Refactor the auth module'\", workdir=\"~\u002Fproject\", background=true, pty=true)\n# Returns session_id\n\n# Monitor progress\nprocess(action=\"poll\", session_id=\"\u003Cid>\")\nprocess(action=\"log\", session_id=\"\u003Cid>\")\n\n# Send input if Codex asks a question\nprocess(action=\"submit\", session_id=\"\u003Cid>\", data=\"yes\")\n\n# Kill if needed\nprocess(action=\"kill\", session_id=\"\u003Cid>\")\n```\n\n## Key Flags\n\n| Flag | Effect |\n|------|--------|\n| `exec \"prompt\"` | One-shot execution, exits when done |\n| `--sandbox workspace-write` (`-s`) | Sandboxed but auto-approves file changes in the workspace (the recommended auto-build mode) |\n| `--dangerously-bypass-approvals-and-sandbox` | No sandbox, no approvals (fastest, most dangerous; `--yolo` still works as a hidden alias) |\n| `--sandbox danger-full-access` | No Codex sandbox; useful when the host service context breaks bubblewrap |\n\n> **Deprecated:** `--full-auto` still works but the live CLI warns to use `--sandbox workspace-write` instead.\n\n## Hermes Gateway Caveat\n\nWhen invoking the Codex CLI from a Hermes gateway\u002Fservice context (for example,\nTelegram-driven agent sessions), Codex `workspace-write` sandboxing may fail even\nwhen the same command works in the user's interactive shell. A typical symptom is\nbubblewrap\u002Fuser-namespace errors such as `setting up uid map: Permission denied`\nor `loopback: Failed RTM_NEWADDR: Operation not permitted`.\n\nIn that context, prefer:\n\n```\ncodex exec --sandbox danger-full-access \"\u003Ctask>\"\n```\n\nUse process boundaries as the safety layer instead: explicit `workdir`, clean git\nstatus before launch, narrow task prompts, `git diff` review, targeted tests, and\nhuman\u002Fagent confirmation before committing broad changes.\n\n## PR Reviews\n\nClone to a temp directory for safe review:\n\n```\nterminal(command=\"REVIEW=$(mktemp -d) && git clone https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && codex review --base origin\u002Fmain\", pty=true)\n```\n\n## Parallel Issue Fixing with Worktrees\n\n```\n# Create worktrees\nterminal(command=\"git worktree add -b fix\u002Fissue-78 \u002Ftmp\u002Fissue-78 main\", workdir=\"~\u002Fproject\")\nterminal(command=\"git worktree add -b fix\u002Fissue-99 \u002Ftmp\u002Fissue-99 main\", workdir=\"~\u002Fproject\")\n\n# Launch Codex in each\nterminal(command=\"codex --sandbox workspace-write exec 'Fix issue #78: \u003Cdescription>. Commit when done.'\", workdir=\"\u002Ftmp\u002Fissue-78\", background=true, pty=true)\nterminal(command=\"codex --sandbox workspace-write exec 'Fix issue #99: \u003Cdescription>. Commit when done.'\", workdir=\"\u002Ftmp\u002Fissue-99\", background=true, pty=true)\n\n# Monitor\nprocess(action=\"list\")\n\n# After completion, push and create PRs\nterminal(command=\"cd \u002Ftmp\u002Fissue-78 && git push -u origin fix\u002Fissue-78\")\nterminal(command=\"gh pr create --repo user\u002Frepo --head fix\u002Fissue-78 --title 'fix: ...' --body '...'\")\n\n# Cleanup\nterminal(command=\"git worktree remove \u002Ftmp\u002Fissue-78\", workdir=\"~\u002Fproject\")\n```\n\n## Batch PR Reviews\n\n```\n# Fetch all PR refs\nterminal(command=\"git fetch origin '+refs\u002Fpull\u002F*\u002Fhead:refs\u002Fremotes\u002Forigin\u002Fpr\u002F*'\", workdir=\"~\u002Fproject\")\n\n# Review multiple PRs in parallel\nterminal(command=\"codex exec 'Review PR #86. git diff origin\u002Fmain...origin\u002Fpr\u002F86'\", workdir=\"~\u002Fproject\", background=true, pty=true)\nterminal(command=\"codex exec 'Review PR #87. git diff origin\u002Fmain...origin\u002Fpr\u002F87'\", workdir=\"~\u002Fproject\", background=true, pty=true)\n\n# Post results\nterminal(command=\"gh pr comment 86 --body '\u003Creview>'\", workdir=\"~\u002Fproject\")\n```\n\n## Rules\n\n1. **Always use `pty=true`** — Codex is an interactive terminal app and hangs without a PTY\n2. **Git repo required** — Codex won't run outside a git directory. Use `mktemp -d && git init` for scratch\n3. **Use `exec` for one-shots** — `codex exec \"prompt\"` runs and exits cleanly\n4. **`--sandbox workspace-write` for building** — auto-approves changes within the sandbox (`--full-auto` is deprecated for this)\n5. **Background for long tasks** — use `background=true` and monitor with `process` tool\n6. **Don't interfere** — monitor with `poll`\u002F`log`, be patient with long-running tasks\n7. **Parallel is fine** — run multiple Codex processes at once for batch work\n",{"name":5,"author":44,"license":14,"version":45,"metadata":46,"platforms":54,"description":7},"Hermes Agent","1.0.1",{"hermes":47},{"tags":48,"related_skills":53},[25,49,50,51,52],"Codex","OpenAI","Code-Review","Refactoring",[24,21],[36,29,34],"main","42ccd02cbf5e8e47839dc3eab6fc754dc6b339cf","hermes\u002Fskills\u002Fautonomous-ai-agents\u002Fcodex",0,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills","https:\u002F\u002Fgithub.com\u002Fjleechanorg","2026-11-14 03:18:13",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add jleechanorg\u002Fjleechan-skills --skill codex",{"tool":68,"command":69},"bunx","bunx skills add jleechanorg\u002Fjleechan-skills --skill codex",{"tool":71,"command":72},"pnpm","pnpm dlx skills add jleechanorg\u002Fjleechan-skills --skill codex","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fautonomous-ai-agents\u002Fcodex\u002FSKILL.md",true,[],[77,95,117,131,145,160],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":39},"01M716Y5MTJ6GYJZ2ATXCJK8G4","instinct","Use when the user invokes \u002Finstinct or \u002Fin, or asks to \"message Instinct\", \"ask Instinct\", \"tell Instinct\", \"check Instinct\", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Finstinct\u002FSKILL.md",[],[79,84,85,86,87,88,89,90,91,92,93,94],"user","when","replies","check","use","identity","whatsapp","gmail","read","message","ask",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":39},"01M716Y4HF7FVVMJSA2CCVN5VF","hr","Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhr\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[97,107,108,109,110,111,112,113,114,115,116],"resume","compatibility","provenance","for","history","produce","alias","briefing","state","fresh",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":39},"01M716Y1FFNFKFJYYKF8HQA6T8","history-resume","Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhistory-resume\u002FSKILL.md",[123],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[111,107,125,126,84,127,114,128,110,129,130,115,116],"history resume","branch","analysis","repository","worktree","sources",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":39},"01M716XWXJ8EPHK4RH9T14TR85","grok","Alias for the canonical grokbot browser conversation workflow; \u002Fgrok talks to the Grok bot the same way \u002Fdot talks to Dot.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgrok\u002FSKILL.md",[],[133,138,139,140,110,141,113,142,143,144],"dot","bot","workflow","canonical","conversation","browser","grokbot",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":39},"01M70N9Q07DTE0EW5KFXMMMSJ0","codexa-bench","Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcodexa-bench\u002FSKILL.md",[],[152,153,154,88,155,110,156,157,158,159,5],"codexa bench","work","split","default","duplicate","task","compare","normal",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":164,"licenseFileUrl":165,"sourceHtmlUrl":166,"categories":167,"keywords":179,"publishedAt":39},"01M6C24S2X60SP8BBFGAEKPEGW","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[168,173,176],{"categoryNo":169,"categoryName":170,"taxonomyType":171,"taxonomyTypeDesc":172},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":174,"categoryName":175,"taxonomyType":171,"taxonomyTypeDesc":172},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":177,"categoryName":178,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000032","设计师",[180,181,182,88,183,184,185,84,186,187,33,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,85,203],"frontend","design","frontend design","generic","ui design","react","html","components","artifacts","ui","aesthetics","Production","web components","landing","applications","quality","web","css","create","examples","with","react components","web ui","pages"]