@dungle-scrubs/harness-cli-normalizer 0.5.7 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +25 -8
  2. package/dist/cli/args.d.ts +9 -1
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +31 -26
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/check.d.ts +14 -0
  7. package/dist/cli/check.d.ts.map +1 -1
  8. package/dist/cli/check.js +10 -3
  9. package/dist/cli/check.js.map +1 -1
  10. package/dist/cli/config.d.ts +4 -4
  11. package/dist/cli/config.d.ts.map +1 -1
  12. package/dist/cli/config.js +6 -6
  13. package/dist/cli/config.js.map +1 -1
  14. package/dist/cli/exit-codes.d.ts +0 -1
  15. package/dist/cli/exit-codes.d.ts.map +1 -1
  16. package/dist/cli/exit-codes.js +0 -1
  17. package/dist/cli/exit-codes.js.map +1 -1
  18. package/dist/cli/help.d.ts +3 -3
  19. package/dist/cli/help.d.ts.map +1 -1
  20. package/dist/cli/help.js +9 -2
  21. package/dist/cli/help.js.map +1 -1
  22. package/dist/cli/index.d.ts.map +1 -1
  23. package/dist/cli/index.js +3 -1
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/inspect.d.ts.map +1 -1
  26. package/dist/cli/inspect.js +84 -265
  27. package/dist/cli/inspect.js.map +1 -1
  28. package/dist/cli/plan-turn.d.ts +68 -0
  29. package/dist/cli/plan-turn.d.ts.map +1 -0
  30. package/dist/cli/plan-turn.js +266 -0
  31. package/dist/cli/plan-turn.js.map +1 -0
  32. package/dist/cli/refuse.d.ts.map +1 -1
  33. package/dist/cli/refuse.js +2 -1
  34. package/dist/cli/refuse.js.map +1 -1
  35. package/dist/cli/resolve-harness.d.ts.map +1 -1
  36. package/dist/cli/resolve-harness.js +2 -3
  37. package/dist/cli/resolve-harness.js.map +1 -1
  38. package/dist/cli/run.d.ts.map +1 -1
  39. package/dist/cli/run.js +33 -367
  40. package/dist/cli/run.js.map +1 -1
  41. package/dist/cli/session-json.d.ts +1 -1
  42. package/dist/cli/session-json.d.ts.map +1 -1
  43. package/dist/cli/session-json.js +1 -3
  44. package/dist/cli/session-json.js.map +1 -1
  45. package/dist/cli/session.d.ts.map +1 -1
  46. package/dist/cli/session.js +27 -45
  47. package/dist/cli/session.js.map +1 -1
  48. package/dist/cli/skills-root.d.ts +1 -1
  49. package/dist/cli/skills-root.d.ts.map +1 -1
  50. package/dist/cli/skills-root.js +1 -1
  51. package/dist/cli/skills-root.js.map +1 -1
  52. package/dist/execution/decode.d.ts.map +1 -1
  53. package/dist/execution/decode.js +11 -36
  54. package/dist/execution/decode.js.map +1 -1
  55. package/dist/execution/events.d.ts +4 -1
  56. package/dist/execution/events.d.ts.map +1 -1
  57. package/dist/execution/events.js.map +1 -1
  58. package/dist/execution/failure.d.ts +3 -1
  59. package/dist/execution/failure.d.ts.map +1 -1
  60. package/dist/execution/failure.js +14 -11
  61. package/dist/execution/failure.js.map +1 -1
  62. package/dist/execution/open-session.d.ts +6 -1
  63. package/dist/execution/open-session.d.ts.map +1 -1
  64. package/dist/execution/open-session.js +151 -223
  65. package/dist/execution/open-session.js.map +1 -1
  66. package/dist/execution/stream-turn.d.ts +9 -14
  67. package/dist/execution/stream-turn.d.ts.map +1 -1
  68. package/dist/execution/stream-turn.js +85 -188
  69. package/dist/execution/stream-turn.js.map +1 -1
  70. package/dist/execution/supervisor.d.ts +71 -0
  71. package/dist/execution/supervisor.d.ts.map +1 -0
  72. package/dist/execution/supervisor.js +127 -0
  73. package/dist/execution/supervisor.js.map +1 -0
  74. package/dist/interpretation/argv.d.ts +44 -12
  75. package/dist/interpretation/argv.d.ts.map +1 -1
  76. package/dist/interpretation/argv.js +38 -24
  77. package/dist/interpretation/argv.js.map +1 -1
  78. package/dist/interpretation/content.d.ts +10 -1
  79. package/dist/interpretation/content.d.ts.map +1 -1
  80. package/dist/interpretation/content.js +20 -11
  81. package/dist/interpretation/content.js.map +1 -1
  82. package/dist/interpretation/hints.d.ts +1 -1
  83. package/dist/interpretation/hints.d.ts.map +1 -1
  84. package/dist/interpretation/hints.js +10 -11
  85. package/dist/interpretation/hints.js.map +1 -1
  86. package/dist/interpretation/index.d.ts +0 -1
  87. package/dist/interpretation/index.d.ts.map +1 -1
  88. package/dist/interpretation/index.js +0 -1
  89. package/dist/interpretation/index.js.map +1 -1
  90. package/dist/interpretation/limits.d.ts +2 -5
  91. package/dist/interpretation/limits.d.ts.map +1 -1
  92. package/dist/interpretation/limits.js +8 -62
  93. package/dist/interpretation/limits.js.map +1 -1
  94. package/dist/interpretation/question.d.ts +27 -0
  95. package/dist/interpretation/question.d.ts.map +1 -1
  96. package/dist/interpretation/question.js +28 -0
  97. package/dist/interpretation/question.js.map +1 -1
  98. package/dist/interpretation/refusal.d.ts +10 -5
  99. package/dist/interpretation/refusal.d.ts.map +1 -1
  100. package/dist/interpretation/refusal.js +24 -15
  101. package/dist/interpretation/refusal.js.map +1 -1
  102. package/dist/interpretation/resolve-options.d.ts +36 -2
  103. package/dist/interpretation/resolve-options.d.ts.map +1 -1
  104. package/dist/interpretation/resolve-options.js +38 -21
  105. package/dist/interpretation/resolve-options.js.map +1 -1
  106. package/dist/interpretation/session-input.d.ts +44 -1
  107. package/dist/interpretation/session-input.d.ts.map +1 -1
  108. package/dist/interpretation/session-input.js +59 -4
  109. package/dist/interpretation/session-input.js.map +1 -1
  110. package/dist/interpretation/shape.d.ts +1 -0
  111. package/dist/interpretation/shape.d.ts.map +1 -1
  112. package/dist/interpretation/shape.js +10 -0
  113. package/dist/interpretation/shape.js.map +1 -1
  114. package/dist/interpretation/skills-selection.d.ts +25 -33
  115. package/dist/interpretation/skills-selection.d.ts.map +1 -1
  116. package/dist/interpretation/skills-selection.js +41 -48
  117. package/dist/interpretation/skills-selection.js.map +1 -1
  118. package/dist/interpretation/support.d.ts.map +1 -1
  119. package/dist/interpretation/support.js +23 -8
  120. package/dist/interpretation/support.js.map +1 -1
  121. package/dist/interpretation/tool-selection.d.ts +7 -6
  122. package/dist/interpretation/tool-selection.d.ts.map +1 -1
  123. package/dist/interpretation/tool-selection.js +54 -116
  124. package/dist/interpretation/tool-selection.js.map +1 -1
  125. package/dist/interpretation/tool-vocabulary.d.ts +31 -12
  126. package/dist/interpretation/tool-vocabulary.d.ts.map +1 -1
  127. package/dist/interpretation/tool-vocabulary.js +19 -41
  128. package/dist/interpretation/tool-vocabulary.js.map +1 -1
  129. package/dist/interpretation/turn-options.d.ts +4 -0
  130. package/dist/interpretation/turn-options.d.ts.map +1 -1
  131. package/dist/interpretation/turn-options.js +105 -241
  132. package/dist/interpretation/turn-options.js.map +1 -1
  133. package/dist/interpretation/vocabulary.d.ts +8 -6
  134. package/dist/interpretation/vocabulary.d.ts.map +1 -1
  135. package/dist/interpretation/vocabulary.js +22 -9
  136. package/dist/interpretation/vocabulary.js.map +1 -1
  137. package/dist/knowledge/claude-code.js +3 -3
  138. package/dist/knowledge/claude-code.js.map +1 -1
  139. package/dist/knowledge/codex.d.ts.map +1 -1
  140. package/dist/knowledge/codex.js +31 -7
  141. package/dist/knowledge/codex.js.map +1 -1
  142. package/dist/knowledge/descriptor.d.ts +67 -36
  143. package/dist/knowledge/descriptor.d.ts.map +1 -1
  144. package/dist/knowledge/descriptor.js +49 -15
  145. package/dist/knowledge/descriptor.js.map +1 -1
  146. package/dist/knowledge/matchers.d.ts +12 -0
  147. package/dist/knowledge/matchers.d.ts.map +1 -1
  148. package/dist/knowledge/matchers.js +34 -0
  149. package/dist/knowledge/matchers.js.map +1 -1
  150. package/dist/knowledge/muse.d.ts.map +1 -1
  151. package/dist/knowledge/muse.js +7 -5
  152. package/dist/knowledge/muse.js.map +1 -1
  153. package/dist/knowledge/overrides.d.ts.map +1 -1
  154. package/dist/knowledge/overrides.js +9 -20
  155. package/dist/knowledge/overrides.js.map +1 -1
  156. package/dist/knowledge/pi.d.ts.map +1 -1
  157. package/dist/knowledge/pi.js +8 -6
  158. package/dist/knowledge/pi.js.map +1 -1
  159. package/dist/knowledge/profile.d.ts +1 -0
  160. package/dist/knowledge/profile.d.ts.map +1 -1
  161. package/dist/knowledge/profile.js +1 -0
  162. package/dist/knowledge/profile.js.map +1 -1
  163. package/package.json +1 -1
  164. package/src/cli/args.ts +35 -27
  165. package/src/cli/check.ts +10 -3
  166. package/src/cli/config.ts +12 -11
  167. package/src/cli/exit-codes.ts +0 -2
  168. package/src/cli/help.ts +9 -2
  169. package/src/cli/index.ts +3 -1
  170. package/src/cli/inspect.ts +88 -269
  171. package/src/cli/plan-turn.ts +346 -0
  172. package/src/cli/refuse.ts +2 -1
  173. package/src/cli/resolve-harness.ts +4 -5
  174. package/src/cli/run.ts +36 -399
  175. package/src/cli/session-json.ts +1 -6
  176. package/src/cli/session.ts +36 -45
  177. package/src/cli/skills-root.ts +1 -4
  178. package/src/execution/decode.ts +10 -36
  179. package/src/execution/events.ts +4 -1
  180. package/src/execution/failure.ts +18 -11
  181. package/src/execution/open-session.ts +160 -228
  182. package/src/execution/stream-turn.ts +90 -193
  183. package/src/execution/supervisor.ts +199 -0
  184. package/src/interpretation/argv.ts +86 -38
  185. package/src/interpretation/content.ts +30 -13
  186. package/src/interpretation/hints.ts +2 -12
  187. package/src/interpretation/index.ts +0 -1
  188. package/src/interpretation/limits.ts +14 -75
  189. package/src/interpretation/question.ts +46 -0
  190. package/src/interpretation/refusal.ts +28 -18
  191. package/src/interpretation/resolve-options.ts +85 -32
  192. package/src/interpretation/session-input.ts +88 -5
  193. package/src/interpretation/shape.ts +10 -0
  194. package/src/interpretation/skills-selection.ts +70 -74
  195. package/src/interpretation/support.ts +19 -6
  196. package/src/interpretation/tool-selection.ts +67 -122
  197. package/src/interpretation/tool-vocabulary.ts +48 -53
  198. package/src/interpretation/turn-options.ts +123 -220
  199. package/src/interpretation/vocabulary.ts +15 -10
  200. package/src/knowledge/claude-code.ts +3 -3
  201. package/src/knowledge/codex.ts +31 -7
  202. package/src/knowledge/descriptor.ts +105 -49
  203. package/src/knowledge/matchers.ts +35 -0
  204. package/src/knowledge/muse.ts +7 -5
  205. package/src/knowledge/overrides.ts +17 -32
  206. package/src/knowledge/pi.ts +8 -6
  207. package/src/knowledge/profile.ts +1 -0
  208. package/dist/interpretation/dimensions.d.ts +0 -11
  209. package/dist/interpretation/dimensions.d.ts.map +0 -1
  210. package/dist/interpretation/dimensions.js +0 -4
  211. package/dist/interpretation/dimensions.js.map +0 -1
  212. package/src/interpretation/dimensions.ts +0 -14
@@ -1,7 +1,7 @@
1
1
  export declare const TOP_LEVEL_HELP = "hcn - One stable interface to four coding-agent CLIs\n\nUsage: hcn <command> [options] [prompt]\n\nCommands:\n run <harness> [prompt] One-shot headless turn (streamTurn)\n session <harness> Interactive session (openSession, claude + pi)\n inspect <harness> Descriptor / argv / capability inspection (no spawn)\n ls List harnesses with verifiedAgainst versions\n check Drift check (published version vs verifiedAgainst)\n\nOptions:\n -h, --help Show help\n -V, --version Show version\n\nRun 'hcn <command> --help' for command-specific help.\n";
2
- export declare const RUN_HELP = "hcn run - One-shot headless turn\n\nUsage: hcn run <harness> [prompt] [options]\n\nArguments:\n <harness> claude | codex | pi | muse\n [prompt] Prompt text (positional). Must not start with '-'.\n Use --prompt or --prompt-file for leading '-' or multi-line.\n\nOptions:\n --prompt <text> Prompt text (alternative to positional)\n --prompt-file <path|-> Read prompt from file, or stdin when '-'\n --model <id> Model id (validated per harness)\n --effort <value> Effort level (validated per harness/model)\n --sandbox <value> Sandbox mode (codex only)\n --provider <value> Provider (pi only)\n --tools <a,b> Tool grant allowlist - canonical names (read, write,\n edit, shell, grep, glob, list, web-fetch,\n web-search, subagent, skill);\n 'native:<name>' passes a harness-native or\n extension tool through (claude, pi; a bare\n name matching a configured toolset expands\n to it)\n --exclude-tools <a,b> Complement over known tools - canonical names\n (same vocabulary, native:<name> passthrough);\n mutually exclusive with --tools (claude, pi)\n --autonomy Enable autonomy flag (claude/codex/muse)\n --no-autonomy Disable autonomy\n --write Enable write (muse)\n --no-write Disable write\n --shell Enable shell (muse)\n --no-shell Disable shell\n --questions <ask|assume|none>\n Which preamble to inject: ask = escalation\n protocol (DEFAULT, question event +\n done cause \"awaiting-input\", exit 0), assume =\n never ask, state assumption, none = inject\n nothing\n --system-prompt <text> Replace the built-in system prompt (claude, pi:\n flag; codex: -c instructions=<text-or-path>;\n muse refuses. claude pairs the dynamic-section\n exclusion automatically. Opt-in; no default)\n --append-system-prompt <text>\n Append to the built-in prompt (claude, pi only)\n --access <read|write> Access preset - read = read-only tool subset\n (canonical: read, grep, glob, list, web-fetch,\n web-search; claude/pi via --tools, codex via\n --sandbox read-only, muse via --disable-write\n --disable-shell); write = no restriction;\n mutually exclusive with --tools/--exclude-tools\n and with --sandbox on codex; no default\n --max-steps <n> Max steps (muse, 1-10000)\n --timeout <seconds> Wall-clock budget for the run (all harnesses,\n hcn-enforced; 0 disables; no default)\n --no-tools Disable tools discovery facet\n --no-instruction-files Disable instructionFiles discovery facet\n --no-extensions Disable extensions discovery facet\n --skills <a,b> Skill allowlist (names resolved against $HCN_SKILLS_ROOT\n or ~/.agents/skills; pi loads, claude narrows)\n --no-skills Disable skills discovery facet\n --cwd <path> Working directory for spawn\n --env KEY=VAL Environment (repeatable; KEY= deletes)\n --resume <uuid> Resume session id (UUID). Continues the\n conversation where it left off. The answer\n path for question escalation: resume with the\n chosen answer as the prompt; id continuity per\n harness (claude stable, pi/muse caller-assigned,\n codex minted via identity event)\n Note: hcn refuses an unknown id before spawn\n (exit 2) for harnesses that would otherwise\n create a fresh session silently (pi, muse)\n --session-id <uuid> Alias for --resume (mutually exclusive with --resume)\n -- Passthrough: native harness args verbatim\n (failures surface as labeled native errors)\n --json NDJSON HarnessEvent to stdout\n -h, --help Show help\n -V, --version Show version\n\nDefaults with no flags:\n Every launch resolves args > project config (.hcn/config.json at the\n git root) > user config (~/.config/hcn/config.json) > built-in profile\n > harness default. The profile pins: effort medium, sandbox\n workspace-write (codex only; other harnesses report divergence),\n discovery on, autonomy off, write/shell on. timeout, max-steps and\n access have no default; harness default applies (access write emits\n nothing on claude/pi/muse, --sandbox workspace-write on codex via\n profile). toolMap is config-only (no flag) - canonical -> native\n mapping per harness. A bare pi run renders no --tools list: pi's list\n is a strict allowlist and would drop extension and MCP tools; name\n them through toolMap or native:<name> when you grant. Question mode defaults to ask (config keys\n \"questions\"; prompt preamble, never a harness flag).\n Provenance prints to stderr on every run; see\n 'hcn inspect <harness>' for the resolved argv of a bare run.\n";
3
- export declare const SESSION_HELP = "hcn session - Interactive session (claude, pi)\n\nUsage: hcn session <harness> [options]\n\nArguments:\n <harness> claude | pi (others have no sessionMode)\n\nOptions:\n --json Machine surface: NDJSON events on stdout, NDJSON\n commands on stdin ({\"op\":\"send\",\"id\":..,\"text\":..},\n \"answer\", \"close\"). Every send is answered with one\n disposition (started | rejected); every send is\n handed to the harness, and the turn that consumes it\n carries its id. The\n stream opens with a session event and ends with a\n closed event. Exit 0 clean, 1 otherwise, 2 refusal.\n --stall <seconds> Per-turn inactivity budget; the turn ends and the\n session closes reporting a stall. 0 disables\n (default: no limit)\n --provider <value> Provider (pi only)\n --model <id> Model for the session\n --resume <uuid> Resume session id (UUID). Continues the\n conversation where it left off. --session-id\n is an alias (mutually exclusive with --resume).\n If no id is given, a fresh session is started\n with a new id. hcn refuses an unknown id before\n spawn (exit 2) for harnesses that would otherwise\n create a fresh session silently (pi)\n --session-id <uuid> Alias for --resume (mutually exclusive with --resume)\n --questions <ask|assume|none>\n Which preamble to inject: ask = worker may\n ask (DEFAULT, pickable menu), assume = never\n ask, none = inject nothing\n --cwd <path> Working directory\n --help Show help\n --version Show version\n";
4
- export declare const INSPECT_HELP = "hcn inspect - Descriptor / argv inspection\n\nUsage: hcn inspect <harness> [options]\n\nArguments:\n <harness> claude | codex | pi | muse\n\nOptions:\n --argv Preview argv that would be spawned\n --capabilities Print the capability record (vision, images,\n streaming, session, source) as one JSON line\n --mode <mode> Mode for --capabilities:\n headless-turn | headless-session | interactive\n (default headless-turn)\n --prompt <text> Prompt for argv preview\n --prompt-file <path|-> Read prompt from file\n --model <id> Model\n --effort <value> Effort\n --sandbox <value> Sandbox\n --provider <value> Provider\n --tools <a,b> Tools - canonical names (read, write, edit,\n shell, grep, glob, list, web-fetch,\n web-search, subagent, skill);\n 'native:<name>' passes through\n --autonomy / --no-autonomy\n --write / --no-write\n --shell / --no-shell\n --questions <ask|assume|none>\n (accepted; renders nothing - rides the run prompt)\n --max-steps <n>\n --no-tools, --no-instruction-files, --no-extensions, --no-skills\n --questions <ask|assume|none>\n Accepted; renders nothing in argv (the mode\n rides the run prompt, not a harness flag)\n --cwd <path>\n --env KEY=VAL\n --resume <uuid>\n -h, --help Show help\n";
2
+ export declare const RUN_HELP = "hcn run - One-shot headless turn\n\nUsage: hcn run <harness> [prompt] [options]\n\nArguments:\n <harness> claude | codex | pi | muse\n [prompt] Prompt text (positional). Must not start with '-'.\n Use --prompt or --prompt-file for leading '-' or multi-line.\n\nOptions:\n --prompt <text> Prompt text (alternative to positional)\n --prompt-file <path|-> Read prompt from file, or stdin when '-'\n --model <id> Model id (validated per harness)\n --effort <value> Effort level (validated per harness/model)\n --sandbox <value> Sandbox mode (codex only)\n --context-window <tokens> Context window (codex, integer 1-272000;\n launch default 272000; config: contextWindow)\n --provider <value> Provider (pi only)\n --tools <a,b> Tool grant allowlist - canonical names (read, write,\n edit, shell, grep, glob, list, web-fetch,\n web-search, subagent, skill);\n 'native:<name>' passes a harness-native or\n extension tool through (claude, pi; a bare\n name matching a configured toolset expands\n to it)\n --exclude-tools <a,b> Complement over known tools - canonical names\n (same vocabulary, native:<name> passthrough);\n mutually exclusive with --tools (claude, pi)\n --autonomy Enable autonomy flag (claude/codex/muse)\n --no-autonomy Disable autonomy\n --write Enable write (muse)\n --no-write Disable write\n --shell Enable shell (muse)\n --no-shell Disable shell\n --questions <ask|assume|none>\n Which preamble to inject: ask = escalation\n protocol (DEFAULT, question event +\n done cause \"awaiting-input\", exit 0), assume =\n never ask, state assumption, none = inject\n nothing\n --system-prompt <text> Replace the built-in system prompt (claude, pi:\n flag; codex: -c instructions=<text-or-path>;\n muse refuses. claude pairs the dynamic-section\n exclusion automatically. Opt-in; no default)\n --append-system-prompt <text>\n Append to the built-in prompt (claude, pi only)\n --access <read|write> Access preset - read = read-only tool subset\n (canonical: read, grep, glob, list, web-fetch,\n web-search; claude/pi via --tools, codex via\n --sandbox read-only, muse via --disable-write\n --disable-shell); write = no restriction;\n mutually exclusive with --tools/--exclude-tools\n and with --sandbox on codex; no default\n --max-steps <n> Max steps (muse, 1-10000)\n --timeout <seconds> Wall-clock budget for the run (all harnesses,\n hcn-enforced; 0 disables; no default)\n --no-tools Disable tools discovery facet\n --no-instruction-files Disable instructionFiles discovery facet\n --no-extensions Disable extensions discovery facet\n --skills <a,b> Skill allowlist (names resolved against $HCN_SKILLS_ROOT\n or ~/.agents/skills; pi loads, claude and codex narrow)\n --no-skills Disable skills discovery facet\n --cwd <path> Working directory for spawn\n --env KEY=VAL Environment (repeatable; KEY= deletes)\n --resume <uuid> Resume session id (UUID). Continues the\n conversation where it left off. The answer\n path for question escalation: resume with the\n chosen answer as the prompt; id continuity per\n harness (claude stable, pi/muse caller-assigned,\n codex minted via identity event)\n Note: hcn refuses an unknown id before spawn\n (exit 2) for harnesses that would otherwise\n create a fresh session silently (pi, muse)\n --session-id <uuid> Alias for --resume (mutually exclusive with --resume)\n -- Passthrough: native harness args verbatim\n (failures surface as labeled native errors)\n --json NDJSON HarnessEvent to stdout\n -h, --help Show help\n -V, --version Show version\n\nDefaults with no flags:\n Every launch resolves args > project config (.hcn/config.json at the\n git root) > user config (~/.config/hcn/config.json) > built-in profile\n > harness default. The profile pins: effort medium, sandbox\n workspace-write (codex only; other harnesses report divergence),\n context window 272000 (codex only; divergence elsewhere), discovery on,\n autonomy off, write/shell on. timeout, max-steps and\n access have no default; harness default applies (access write emits\n nothing on claude/pi/muse, --sandbox workspace-write on codex via\n profile). toolMap is config-only (no flag) - canonical -> native\n mapping per harness. A bare pi run renders no --tools list: pi's list\n is a strict allowlist and would drop extension and MCP tools; name\n them through toolMap or native:<name> when you grant. Question mode defaults to ask (config keys\n \"questions\"; prompt preamble, never a harness flag).\n Provenance prints to stderr on every run; see\n 'hcn inspect <harness>' for the resolved argv of a bare run.\n";
3
+ export declare const SESSION_HELP = "hcn session - Interactive session (claude, pi)\n\nUsage: hcn session <harness> [options]\n\nArguments:\n <harness> claude | pi (others have no sessionMode)\n\nOptions:\n --json Machine surface: NDJSON events on stdout, NDJSON\n commands on stdin ({\"op\":\"send\",\"id\":..,\"text\":..},\n \"answer\", \"close\"). Every send is answered with one\n disposition (started | rejected); every send is\n handed to the harness, and the turn that consumes it\n carries its id. The\n stream opens with a session event and ends with a\n closed event. Exit 0 clean, 1 otherwise, 2 refusal.\n --stall <seconds> Per-turn inactivity budget; the turn ends and the\n session closes reporting a stall. 0 disables\n (default: no limit)\n --provider <value> Provider (pi only)\n --model <id> Model for the session\n --effort <value> Effort level for the session spawn (validated\n per harness/model; no default - the harness's\n own effort applies without the flag)\n --resume <uuid> Resume session id (UUID). Continues the\n conversation where it left off. --session-id\n is an alias (mutually exclusive with --resume).\n If no id is given, a fresh session is started\n with a new id. hcn refuses an unknown id before\n spawn (exit 2) for harnesses that would otherwise\n create a fresh session silently (pi)\n --session-id <uuid> Alias for --resume (mutually exclusive with --resume)\n --questions <ask|assume|none>\n Which preamble to inject: ask = worker may\n ask (DEFAULT, pickable menu), assume = never\n ask, none = inject nothing\n --cwd <path> Working directory\n --help Show help\n --version Show version\n";
4
+ export declare const INSPECT_HELP = "hcn inspect - Descriptor / argv inspection\n\nUsage: hcn inspect <harness> [options]\n\nArguments:\n <harness> claude | codex | pi | muse\n\nOptions:\n --argv Preview argv that would be spawned\n --capabilities Print the capability record (vision, images,\n streaming, session, source) as one JSON line\n --mode <mode> Mode for --capabilities:\n headless-turn | headless-session | interactive\n (default headless-turn)\n --prompt <text> Prompt for argv preview\n --prompt-file <path|-> Read prompt from file\n --model <id> Model\n --effort <value> Effort\n --sandbox <value> Sandbox\n --context-window <tokens> Context window (codex, integer 1-272000)\n --provider <value> Provider\n --tools <a,b> Tools - canonical names (read, write, edit,\n shell, grep, glob, list, web-fetch,\n web-search, subagent, skill);\n 'native:<name>' passes through\n --autonomy / --no-autonomy\n --write / --no-write\n --shell / --no-shell\n --questions <ask|assume|none>\n (accepted; renders nothing - rides the run prompt)\n --max-steps <n>\n --no-tools, --no-instruction-files, --no-extensions, --no-skills\n --questions <ask|assume|none>\n Accepted; renders nothing in argv (the mode\n rides the run prompt, not a harness flag)\n --cwd <path>\n --env KEY=VAL\n --resume <uuid>\n -h, --help Show help\n";
5
5
  export declare const LS_HELP = "hcn ls - List harnesses\n\nUsage: hcn ls\n\nPrints each harness name with its verifiedAgainst version and versionSource.\n";
6
6
  export declare const CHECK_HELP = "hcn check - Drift check\n\nUsage: hcn check [--json]\n\nCompares each harness's verifiedAgainst against the latest published version.\nExits 0 when no drift, 1 when drift found, 1 on network failure with partial results.\n\nOptions:\n --json Machine-readable output\n -h, --help Show help\n";
7
7
  //# sourceMappingURL=help.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,koBAgB1B,CAAC;AAEF,eAAO,MAAM,QAAQ,ymLA6FpB,CAAC;AAEF,eAAO,MAAM,YAAY,yhEAoCxB,CAAC;AAEF,eAAO,MAAM,YAAY,qlDAsCxB,CAAC;AAEF,eAAO,MAAM,OAAO,+HAKnB,CAAC;AAEF,eAAO,MAAM,UAAU,2UAUtB,CAAC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,koBAgB1B,CAAC;AAEF,eAAO,MAAM,QAAQ,g0LAgGpB,CAAC;AAEF,eAAO,MAAM,YAAY,ivEAuCxB,CAAC;AAEF,eAAO,MAAM,YAAY,2pDAuCxB,CAAC;AAEF,eAAO,MAAM,OAAO,+HAKnB,CAAC;AAEF,eAAO,MAAM,UAAU,2UAUtB,CAAC"}
package/dist/cli/help.js CHANGED
@@ -30,6 +30,8 @@ Options:
30
30
  --model <id> Model id (validated per harness)
31
31
  --effort <value> Effort level (validated per harness/model)
32
32
  --sandbox <value> Sandbox mode (codex only)
33
+ --context-window <tokens> Context window (codex, integer 1-272000;
34
+ launch default 272000; config: contextWindow)
33
35
  --provider <value> Provider (pi only)
34
36
  --tools <a,b> Tool grant allowlist - canonical names (read, write,
35
37
  edit, shell, grep, glob, list, web-fetch,
@@ -73,7 +75,7 @@ Options:
73
75
  --no-instruction-files Disable instructionFiles discovery facet
74
76
  --no-extensions Disable extensions discovery facet
75
77
  --skills <a,b> Skill allowlist (names resolved against $HCN_SKILLS_ROOT
76
- or ~/.agents/skills; pi loads, claude narrows)
78
+ or ~/.agents/skills; pi loads, claude and codex narrow)
77
79
  --no-skills Disable skills discovery facet
78
80
  --cwd <path> Working directory for spawn
79
81
  --env KEY=VAL Environment (repeatable; KEY= deletes)
@@ -98,7 +100,8 @@ Defaults with no flags:
98
100
  git root) > user config (~/.config/hcn/config.json) > built-in profile
99
101
  > harness default. The profile pins: effort medium, sandbox
100
102
  workspace-write (codex only; other harnesses report divergence),
101
- discovery on, autonomy off, write/shell on. timeout, max-steps and
103
+ context window 272000 (codex only; divergence elsewhere), discovery on,
104
+ autonomy off, write/shell on. timeout, max-steps and
102
105
  access have no default; harness default applies (access write emits
103
106
  nothing on claude/pi/muse, --sandbox workspace-write on codex via
104
107
  profile). toolMap is config-only (no flag) - canonical -> native
@@ -130,6 +133,9 @@ Options:
130
133
  (default: no limit)
131
134
  --provider <value> Provider (pi only)
132
135
  --model <id> Model for the session
136
+ --effort <value> Effort level for the session spawn (validated
137
+ per harness/model; no default - the harness's
138
+ own effort applies without the flag)
133
139
  --resume <uuid> Resume session id (UUID). Continues the
134
140
  conversation where it left off. --session-id
135
141
  is an alias (mutually exclusive with --resume).
@@ -165,6 +171,7 @@ Options:
165
171
  --model <id> Model
166
172
  --effort <value> Effort
167
173
  --sandbox <value> Sandbox
174
+ --context-window <tokens> Context window (codex, integer 1-272000)
168
175
  --provider <value> Provider
169
176
  --tools <a,b> Tools - canonical names (read, write, edit,
170
177
  shell, grep, glob, list, web-fetch,
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgB7B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FvB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC3B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC3B,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;CAKtB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;CAUzB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgB7B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGvB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC3B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC3B,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;CAKtB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;CAUzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AA2BA,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,KAQjD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAe,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAyH1D,CAAC;AAEF,eAAO,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,CAEzC,CAAC;AAIF,eAAO,MAAM,GAAG,QAAO,IAOtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AA6BA,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,KAQjD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAe,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAyH1D,CAAC;AAEF,eAAO,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,CAEzC,CAAC;AAIF,eAAO,MAAM,GAAG,QAAO,IAOtB,CAAC"}
package/dist/cli/index.js CHANGED
@@ -2,9 +2,11 @@
2
2
  import { realpathSync } from "node:fs";
3
3
  import { resolve } from "node:path";
4
4
  import { pathToFileURL } from "node:url";
5
+ import { HARNESS_NAMES } from "../knowledge/descriptor.js";
5
6
  import { TOP_LEVEL_HELP } from "./help.js";
6
7
  import { getVersion } from "./version.js";
7
- const SUPPORTED = ["claude", "codex", "pi", "muse"];
8
+ /** The one harness list, read from the descriptor vocabulary. */
9
+ const SUPPORTED = HARNESS_NAMES;
8
10
  // Prevent EPIPE crashes when piped to head/grep -q (e.g., hcn ls | head, hcn run --json | head)
9
11
  process.stdout.on("error", (err) => {
10
12
  const code = err.code;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/cli/inspect.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,OAAO,gBAAuB,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAiTlF,CAAC;AAEF,eAAO,MAAM,cAAc,gBAAU,CAAC"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/cli/inspect.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,OAAO,gBAAuB,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAiIlF,CAAC;AAEF,eAAO,MAAM,cAAc,gBAAU,CAAC"}
@@ -1,62 +1,56 @@
1
- import { redactArgv } from "../execution/stream-turn.js";
2
- import { buildLaunchArgv } from "../interpretation/argv.js";
3
1
  import { capabilitiesOf } from "../interpretation/capabilities.js";
4
- import { ArgvRefusalError } from "../interpretation/refusal.js";
5
- import { FloorExceededError, resolveEffectiveOptions } from "../interpretation/resolve-options.js";
6
2
  import { canonicalTable, mergeToolMaps } from "../interpretation/tool-vocabulary.js";
3
+ import { HARNESS_MODES } from "../knowledge/descriptor.js";
7
4
  import { defaultDescriptors } from "../knowledge/overrides.js";
8
- import { parseTurnOptions, resolvePromptAsync } from "./args.js";
5
+ import { splitPassthrough } from "./args.js";
9
6
  import { ConfigError, loadProjectConfig, loadUserConfig } from "./config.js";
10
7
  import { EXIT_REFUSAL } from "./exit-codes.js";
11
- import { refusalOf, refuse } from "./refuse.js";
8
+ import { planTurn, writePlanDiagnostics } from "./plan-turn.js";
9
+ import { refuse } from "./refuse.js";
12
10
  import { resolveHarness } from "./resolve-harness.js";
13
- const HARNESS_MODES = ["headless-turn", "headless-session", "interactive"];
14
11
  export const inspect = async (harnessName, rawArgs) => {
15
12
  const h = resolveHarness(harnessName);
16
- // Check for --help
17
- if (rawArgs.includes("--help") || rawArgs.includes("-h")) {
13
+ const { normalized } = splitPassthrough(rawArgs);
14
+ if (normalized.includes("--help") || normalized.includes("-h")) {
18
15
  const { INSPECT_HELP } = await import("./help.js");
19
16
  process.stdout.write(INSPECT_HELP);
20
17
  return;
21
18
  }
22
- // Check for positional prompt injection before parse (only when --argv and no explicit prompt)
23
- const { parseCommonFlags, detectPositionalPromptInjection } = await import("./args.js");
24
- if (rawArgs.includes("--argv")) {
25
- const injection = detectPositionalPromptInjection(rawArgs.filter((a) => a !== "--argv"));
26
- if (injection) {
27
- const err = new ArgvRefusalError({
28
- issue: "prompt-flag-injection",
29
- harness: h.name,
30
- supported: ["prompt must not start with '-'"],
31
- detail: `it would be parsed as a flag by ${h.bin}`,
32
- });
33
- process.stderr.write(`${err.message}\n`);
34
- process.stderr.write(`supported: prompt must not start with '-'\n`);
35
- process.exitCode = 2;
19
+ // --argv: the preview is the plan the run command would spawn from, so
20
+ // the two agree by construction (RFC-02 change 10). Refusals go through
21
+ // the shared refuse path like every other command's.
22
+ if (normalized.includes("--argv")) {
23
+ if (normalized.includes("--capabilities")) {
24
+ process.stderr.write(`--capabilities and --argv are mutually exclusive; pick one\n`);
25
+ process.exitCode = EXIT_REFUSAL;
26
+ return;
27
+ }
28
+ const outcome = await planTurn(h, rawArgs, { command: "inspect" });
29
+ if (outcome.kind === "refusal") {
30
+ refuse(outcome.refusal, false);
36
31
  return;
37
32
  }
33
+ writePlanDiagnostics(h, outcome.plan, "argv");
34
+ process.stdout.write(`${JSON.stringify(outcome.plan.redactedArgv)}\n`);
35
+ return;
38
36
  }
39
- // Parse flags for inspect
37
+ // --capabilities path: pure capability record, no spawn, no config, no prompt
38
+ const { parseCommonFlags } = await import("./args.js");
40
39
  let parsed;
41
40
  try {
42
41
  parsed = parseCommonFlags(rawArgs);
43
42
  }
44
43
  catch (err) {
45
44
  const message = err instanceof Error ? err.message : String(err);
46
- process.stderr.write(`unknown flag: ${message}\n`);
47
- process.stderr.write(`Run 'hcn inspect --help' for usage.\n`);
48
- process.exitCode = 2;
45
+ refuse({
46
+ message: `unknown flag: ${message}`,
47
+ issue: "invalid-option-value",
48
+ trailer: ["Run 'hcn inspect --help' for usage."],
49
+ }, false);
49
50
  return;
50
51
  }
51
52
  const values = parsed.values;
52
- const wantArgv = values.argv === true;
53
- // --capabilities path: pure capability record, no spawn, no config, no prompt
54
53
  if (values.capabilities === true) {
55
- if (wantArgv) {
56
- process.stderr.write(`--capabilities and --argv are mutually exclusive; pick one\n`);
57
- process.exitCode = EXIT_REFUSAL;
58
- return;
59
- }
60
54
  const mode = values.mode === undefined ? "headless-turn" : String(values.mode);
61
55
  if (!HARNESS_MODES.includes(mode)) {
62
56
  process.stderr.write(`invalid --mode ${JSON.stringify(mode)}; supported: ${HARNESS_MODES.join(", ")}\n`);
@@ -68,250 +62,75 @@ export const inspect = async (harnessName, rawArgs) => {
68
62
  process.stdout.write(`${JSON.stringify(caps)}\n`);
69
63
  return;
70
64
  }
71
- // Load config once at top and reuse for both paths
72
- let rawUserMap;
73
- let rawProjectMap;
74
- let loadedTiers = {};
65
+ // The descriptor dump, with the tool vocabulary slice the config tiers
66
+ // extend.
67
+ let userMap = null;
68
+ let projectMap = null;
75
69
  try {
76
- const u = loadUserConfig();
77
- rawUserMap = u?.config
78
- ?.toolMap;
79
- if (u)
80
- loadedTiers = { ...loadedTiers, user: u.config };
81
- const p = loadProjectConfig();
82
- rawProjectMap = p?.config
83
- ?.toolMap;
84
- if (p)
85
- loadedTiers = { ...loadedTiers, project: p.config };
70
+ userMap = loadUserConfig();
71
+ projectMap = loadProjectConfig();
86
72
  }
87
73
  catch (e) {
88
74
  if (e instanceof ConfigError) {
89
- process.stderr.write(`config error: ${e.message}\n`);
90
- process.exitCode = 2;
75
+ refuse({ message: `config error: ${e.message}`, issue: "invalid-option-value" }, false);
91
76
  return;
92
77
  }
93
78
  throw e;
94
79
  }
95
- const merged = mergeToolMaps({ user: rawUserMap, project: rawProjectMap });
96
- if (!wantArgv) {
97
- const table = canonicalTable(defaultDescriptors());
98
- const slice = {};
99
- const allCanonicalForInspect = [
100
- ...new Set([...Object.keys(table), ...Object.keys(merged[h.name] ?? {})]),
101
- ].sort();
102
- for (const canonical of allCanonicalForInspect) {
103
- const perHarness = table[canonical];
104
- const v = perHarness?.[h.name];
105
- const mapped = merged[h.name]?.[canonical];
106
- if (mapped !== undefined) {
107
- slice[canonical] = { native: mapped.native, source: mapped.tier };
108
- }
109
- else if (v !== undefined) {
110
- const vv = v;
111
- const val = vv.kind === "builtin"
112
- ? { native: vv.native, source: "descriptor" }
113
- : { ...vv, source: "descriptor" };
114
- slice[canonical] = val;
115
- }
116
- else {
117
- slice[canonical] = { native: null, source: "none" };
118
- }
119
- }
120
- const out = {
121
- name: h.name,
122
- bin: h.bin,
123
- verifiedAgainst: h.verifiedAgainst,
124
- versionSource: h.versionSource,
125
- launch: {
126
- baseFlags: h.launch.baseFlags,
127
- subcommands: h.launch.subcommands,
128
- streamFlags: h.launch.streamFlags,
129
- promptStyle: h.launch.promptStyle,
130
- toolsFlag: h.launch.toolsFlag,
131
- idFlag: h.launch.idFlag,
132
- },
133
- resume: h.resume,
134
- sessionMode: h.sessionMode,
135
- vocabulary: {
136
- models: h.vocabulary.models,
137
- aliases: h.vocabulary.aliases,
138
- efforts: h.vocabulary.efforts,
139
- effortsByModel: h.vocabulary.effortsByModel,
140
- extensible: h.vocabulary.extensible,
141
- modelFlag: h.vocabulary.modelFlag,
142
- },
143
- turnOptions: h.turnOptions,
144
- limitMatchers: h.limitMatchers,
145
- authMatchers: h.authMatchers,
146
- toolVocabulary: slice,
147
- };
148
- process.stdout.write(`${JSON.stringify(out, null, 2)}\n`);
149
- return;
150
- }
151
- // --argv preview path: need prompt + turn options
152
- const positional = parsed.positionals;
153
- // positional[0] would be harness already consumed, but we passed rawArgs without harness - check: caller passes remaining after harness
154
- // So positionals are potential prompt positional if not using --prompt
155
- const positionalPrompt = positional.length > 0 ? positional[0] : undefined;
156
- if (positional.length > 1) {
157
- process.stderr.write(`too many positionals for inspect --argv\n`);
158
- process.exitCode = 2;
159
- return;
160
- }
161
- let prompt;
162
- let promptSource;
163
- try {
164
- const resolved = await resolvePromptAsync({
165
- positionalPrompt,
166
- promptFlag: values.prompt,
167
- promptFile: values["prompt-file"],
168
- });
169
- prompt = resolved.prompt;
170
- promptSource = resolved.source;
171
- }
172
- catch (err) {
173
- if (err instanceof ArgvRefusalError) {
174
- process.stderr.write(`${err.message}\n`);
175
- if (err.supported.length)
176
- process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
177
- process.exitCode = 2;
178
- return;
179
- }
180
- throw err;
181
- }
182
- // Build TurnOptions from flags
183
- let turnOpts;
184
- try {
185
- turnOpts = parseTurnOptions(values);
186
- }
187
- catch (err) {
188
- if (err instanceof ArgvRefusalError) {
189
- process.stderr.write(`${err.message}\n`);
190
- if (err.supported.length)
191
- process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
192
- process.exitCode = 2;
193
- return;
194
- }
195
- throw err;
196
- }
197
- // Mirror run.ts skills resolution (F-16): resolve names and build claude tokens
198
- const rawSkills = turnOpts.skills;
199
- if (rawSkills !== undefined && rawSkills.length > 0) {
200
- try {
201
- const { resolveSkillNames, listKnownSkills } = await import("./skills-root.js");
202
- const resolvedSkills = resolveSkillNames(rawSkills, h.name);
203
- const skillTokens = [];
204
- if (h.name === "claude") {
205
- const { claudeSkillOverridesArg } = await import("../interpretation/skills-selection.js");
206
- skillTokens.push(...claudeSkillOverridesArg(listKnownSkills(), resolvedSkills));
207
- }
208
- else if (h.name === "codex") {
209
- const { codexSkillConfigArg } = await import("../interpretation/skills-selection.js");
210
- skillTokens.push(...codexSkillConfigArg(listKnownSkills(), resolvedSkills));
211
- }
212
- turnOpts.skills = resolvedSkills;
213
- turnOpts.__skillTokens = skillTokens;
214
- }
215
- catch (err) {
216
- if (err instanceof ArgvRefusalError) {
217
- process.stderr.write(`${err.message}\n`);
218
- if (err.supported.length)
219
- process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
220
- process.exitCode = 2;
221
- return;
222
- }
223
- throw err;
224
- }
225
- }
226
- // Resume previews from unresolved options, mirroring run.ts launch-only rule (F-15)
227
- if (values.resume !== undefined || values["session-id"] !== undefined) {
228
- if (values.resume !== undefined && values["session-id"] !== undefined) {
229
- const err = new ArgvRefusalError({
230
- issue: "mutually-exclusive-options",
231
- harness: h.name,
232
- supported: ["--resume or --session-id, not both (--session-id is an alias for --resume)"],
233
- detail: "both --resume and --session-id given",
234
- });
235
- process.stderr.write(`${err.message}\n`);
236
- if (err.supported.length)
237
- process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
238
- process.exitCode = 2;
239
- return;
80
+ const merged = mergeToolMaps({
81
+ user: userMap?.config.toolMap,
82
+ project: projectMap?.config.toolMap,
83
+ });
84
+ const table = canonicalTable(defaultDescriptors());
85
+ const slice = {};
86
+ const allCanonicalForInspect = [
87
+ ...new Set([...Object.keys(table), ...Object.keys(merged[h.name] ?? {})]),
88
+ ].sort();
89
+ for (const canonical of allCanonicalForInspect) {
90
+ const v = table[canonical]?.[h.name];
91
+ const mapped = merged[h.name]?.[canonical];
92
+ if (mapped !== undefined) {
93
+ slice[canonical] = { native: mapped.native, source: mapped.tier };
240
94
  }
241
- const { buildResumeArgv } = await import("../interpretation/argv.js");
242
- const resumeId = String(values.resume ?? values["session-id"]);
243
- try {
244
- const resumeOpts = {
245
- ...turnOpts,
246
- prompt,
247
- sessionId: resumeId,
248
- ...(promptSource !== "positional" ? { __explicitPrompt: true } : {}),
249
- };
250
- const resumeArgv = buildResumeArgv(h, resumeOpts);
251
- const redactedResume = redactArgv(resumeArgv, prompt);
252
- process.stdout.write(`${JSON.stringify(redactedResume)}\n`);
253
- process.stderr.write(`argv: ${redactedResume.join(" ")}\n`);
254
- return;
95
+ else if (v !== undefined) {
96
+ slice[canonical] =
97
+ v.kind === "builtin"
98
+ ? { native: v.native, source: "descriptor" }
99
+ : { ...v, source: "descriptor" };
255
100
  }
256
- catch (err) {
257
- if (err instanceof ArgvRefusalError) {
258
- process.stderr.write(`${err.message}\n`);
259
- if (err.supported.length)
260
- process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
261
- process.exitCode = 2;
262
- return;
263
- }
264
- throw err;
101
+ else {
102
+ slice[canonical] = { native: null, source: "none" };
265
103
  }
266
104
  }
267
- // Reuse already-loaded config for argv preview
268
- const tiers = {};
269
- if (loadedTiers.user)
270
- tiers.user = loadedTiers.user;
271
- if (loadedTiers.project)
272
- tiers.project = loadedTiers.project;
273
- let resolved;
274
- try {
275
- resolved = resolveEffectiveOptions(h, { ...turnOpts, prompt }, tiers);
276
- }
277
- catch (resErr) {
278
- if (resErr instanceof FloorExceededError) {
279
- process.stderr.write(`${resErr.message}\n`);
280
- process.exitCode = 2;
281
- return;
282
- }
283
- if (resErr instanceof ArgvRefusalError) {
284
- refuse(refusalOf(resErr), false);
285
- return;
286
- }
287
- throw resErr;
288
- }
289
- const { writeProvenance } = await import("./provenance.js");
290
- writeProvenance(h.name, resolved.provenance, resolved.unrenderable);
291
- const { prompt: _p, ...effectiveRest } = resolved.options;
292
- const fullOpts = {
293
- ...effectiveRest,
294
- prompt,
295
- ...(promptSource !== "positional" ? { __explicitPrompt: true } : {}),
105
+ const out = {
106
+ name: h.name,
107
+ bin: h.bin,
108
+ verifiedAgainst: h.verifiedAgainst,
109
+ versionSource: h.versionSource,
110
+ launch: {
111
+ baseFlags: h.launch.baseFlags,
112
+ subcommands: h.launch.subcommands,
113
+ streamFlags: h.launch.streamFlags,
114
+ promptStyle: h.launch.promptStyle,
115
+ toolsFlag: h.tools.includeFlag,
116
+ idFlag: h.launch.idFlag,
117
+ },
118
+ resume: h.resume,
119
+ sessionMode: h.sessionMode,
120
+ vocabulary: {
121
+ models: h.vocabulary.models,
122
+ aliases: h.vocabulary.aliases,
123
+ efforts: h.vocabulary.efforts,
124
+ effortsByModel: h.vocabulary.effortsByModel,
125
+ extensible: h.vocabulary.extensible,
126
+ modelFlag: h.vocabulary.modelFlag,
127
+ },
128
+ turnOptions: h.turnOptions,
129
+ limitMatchers: h.limitMatchers,
130
+ authMatchers: h.authMatchers,
131
+ toolVocabulary: slice,
296
132
  };
297
- let argv;
298
- try {
299
- argv = buildLaunchArgv(h, fullOpts);
300
- const skillTokens = effectiveRest.__skillTokens;
301
- if (skillTokens !== undefined && skillTokens.length > 0)
302
- argv.push(...skillTokens);
303
- }
304
- catch (err) {
305
- if (err instanceof ArgvRefusalError) {
306
- refuse(refusalOf(err), false);
307
- return;
308
- }
309
- throw err;
310
- }
311
- // Redact prompt for display, but keep structure
312
- const redacted = redactArgv(argv, prompt);
313
- process.stdout.write(`${JSON.stringify(redacted)}\n`);
314
- process.stderr.write(`argv: ${redacted.join(" ")}\n`);
133
+ process.stdout.write(`${JSON.stringify(out, null, 2)}\n`);
315
134
  };
316
135
  export const inspectCommand = inspect;
317
136
  //# sourceMappingURL=inspect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/cli/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/cli/inspect.ts"],"names":[],"mappings":"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"}