@gajae-code/coding-agent 0.18.11 → 0.19.0

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 (462) hide show
  1. package/CHANGELOG.md +760 -0
  2. package/dist/types/async/job-manager.d.ts +7 -3
  3. package/dist/types/async/result-formatting.d.ts +2 -0
  4. package/dist/types/autoresearch/git.d.ts +1 -1
  5. package/dist/types/capability/fs.d.ts +2 -2
  6. package/dist/types/capability/rule.d.ts +7 -2
  7. package/dist/types/cli/accounts-cli.d.ts +2 -2
  8. package/dist/types/cli/append-system-prompt.d.ts +6 -0
  9. package/dist/types/cli/args.d.ts +7 -2
  10. package/dist/types/cli/customize-doctor-precedence.d.ts +16 -0
  11. package/dist/types/cli/customize-doctor.d.ts +4 -3
  12. package/dist/types/cli/doctor/install-repairs.d.ts +4 -1
  13. package/dist/types/cli/install-activation.d.ts +10 -4
  14. package/dist/types/cli/public-command-errors.d.ts +2 -0
  15. package/dist/types/cli/root-flags.d.ts +0 -12
  16. package/dist/types/cli/update-cli.d.ts +21 -3
  17. package/dist/types/cli-main.d.ts +0 -6
  18. package/dist/types/cli-ordinary.d.ts +2 -2
  19. package/dist/types/commands/accounts.d.ts +2 -1
  20. package/dist/types/commands/launch.d.ts +0 -6
  21. package/dist/types/commands/migrate.d.ts +1 -1
  22. package/dist/types/commands/sdk.d.ts +13 -0
  23. package/dist/types/commit/changelog/index.d.ts +1 -0
  24. package/dist/types/commit/map-reduce/index.d.ts +4 -4
  25. package/dist/types/config/autorouting-tier-map.d.ts +53 -1
  26. package/dist/types/config/config-hot-reload-trust.d.ts +12 -0
  27. package/dist/types/config/config-hot-reload.d.ts +44 -0
  28. package/dist/types/config/file-lock.d.ts +52 -3
  29. package/dist/types/config/model-discovery-manager.d.ts +2 -0
  30. package/dist/types/config/model-profile-activation.d.ts +79 -9
  31. package/dist/types/config/model-registry.d.ts +72 -8
  32. package/dist/types/config/model-resolver.d.ts +7 -4
  33. package/dist/types/config/models-config-schema.d.ts +10 -0
  34. package/dist/types/config/settings-schema.d.ts +57 -4
  35. package/dist/types/config/settings.d.ts +33 -1
  36. package/dist/types/coordinator-mcp/server.d.ts +4 -0
  37. package/dist/types/customization/import.d.ts +2 -0
  38. package/dist/types/customization/types.d.ts +1 -1
  39. package/dist/types/dap/config.d.ts +8 -4
  40. package/dist/types/dap/session.d.ts +11 -2
  41. package/dist/types/debug/system-info.d.ts +6 -1
  42. package/dist/types/discovery/helpers.d.ts +7 -2
  43. package/dist/types/discovery/mcp-compat.d.ts +3 -1
  44. package/dist/types/edit/index.d.ts +5 -0
  45. package/dist/types/edit/modes/patch.d.ts +14 -0
  46. package/dist/types/edit/modes/replace.d.ts +3 -0
  47. package/dist/types/eval/py/runtime.d.ts +9 -0
  48. package/dist/types/exec/bash-executor.d.ts +12 -0
  49. package/dist/types/export/ttsr.d.ts +19 -0
  50. package/dist/types/extensibility/extensions/types.d.ts +5 -1
  51. package/dist/types/extensibility/slash-commands.d.ts +1 -0
  52. package/dist/types/gjc-runtime/managed-owner-admission.d.ts +3 -0
  53. package/dist/types/gjc-runtime/ralplan-current-final.d.ts +54 -0
  54. package/dist/types/gjc-runtime/ralplan-runtime.d.ts +5 -0
  55. package/dist/types/gjc-runtime/session-state-lock.d.ts +2 -0
  56. package/dist/types/gjc-runtime/state-runtime.d.ts +0 -2
  57. package/dist/types/gjc-runtime/tmux-sessions.d.ts +24 -0
  58. package/dist/types/gjc-runtime/ultragoal-change-set.d.ts +6 -0
  59. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +1 -0
  60. package/dist/types/harness-control-plane/receipt-spool.d.ts +4 -0
  61. package/dist/types/hindsight/content.d.ts +5 -6
  62. package/dist/types/internal-urls/types.d.ts +2 -0
  63. package/dist/types/lsp/clients/swiftlint-client.d.ts +0 -4
  64. package/dist/types/main.d.ts +23 -18
  65. package/dist/types/migrate/action-planner.d.ts +10 -1
  66. package/dist/types/migrate/adapters/codex.d.ts +2 -1
  67. package/dist/types/migrate/adapters/index.d.ts +42 -1
  68. package/dist/types/migrate/executor.d.ts +3 -1
  69. package/dist/types/migrate/hook-module.d.ts +23 -0
  70. package/dist/types/migrate/report.d.ts +2 -1
  71. package/dist/types/migrate/types.d.ts +82 -3
  72. package/dist/types/modes/components/agent-dashboard.d.ts +1 -1
  73. package/dist/types/modes/components/model-selector.d.ts +43 -0
  74. package/dist/types/modes/components/settings-selector.d.ts +6 -0
  75. package/dist/types/modes/controllers/selector-controller.d.ts +2 -0
  76. package/dist/types/modes/prompt-suggestion-controller.d.ts +1 -1
  77. package/dist/types/modes/theme/theme.d.ts +1 -0
  78. package/dist/types/modes/utils/host-status.d.ts +15 -11
  79. package/dist/types/runtime-mcp/content-limits.d.ts +4 -0
  80. package/dist/types/runtime-mcp/manager.d.ts +7 -0
  81. package/dist/types/runtime-mcp/plugin-mcp-name-filter.d.ts +22 -0
  82. package/dist/types/runtime-mcp/project-host-values.d.ts +11 -5
  83. package/dist/types/runtime-mcp/tool-bridge.d.ts +4 -0
  84. package/dist/types/sdk/broker/broker-exit.d.ts +3 -3
  85. package/dist/types/sdk/broker/broker.d.ts +29 -2
  86. package/dist/types/sdk/broker/daemon-entry.d.ts +11 -1
  87. package/dist/types/sdk/broker/doctor-restart.d.ts +1 -1
  88. package/dist/types/sdk/broker/ensure.d.ts +141 -9
  89. package/dist/types/sdk/broker/hop.d.ts +45 -0
  90. package/dist/types/sdk/broker/lifecycle-ledger.d.ts +18 -10
  91. package/dist/types/sdk/broker/lifecycle.d.ts +22 -0
  92. package/dist/types/sdk/broker/lock-host-identity.d.ts +5 -0
  93. package/dist/types/sdk/broker/session-index.d.ts +6 -1
  94. package/dist/types/sdk/broker/transport.d.ts +2 -0
  95. package/dist/types/sdk/bus/chat-command-policy.d.ts +2 -1
  96. package/dist/types/sdk/bus/index.d.ts +44 -0
  97. package/dist/types/sdk/bus/reconciliation-store.d.ts +10 -0
  98. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +9 -1
  99. package/dist/types/sdk/bus/telegram-daemon.d.ts +2 -0
  100. package/dist/types/sdk/bus/threaded-render.d.ts +2 -1
  101. package/dist/types/sdk/cli/session-cli.d.ts +0 -1
  102. package/dist/types/sdk/host/control/operations.d.ts +5 -1
  103. package/dist/types/sdk/host/events.d.ts +4 -0
  104. package/dist/types/sdk/host/host.d.ts +2 -1
  105. package/dist/types/sdk/host/prompt-image-upload.d.ts +43 -0
  106. package/dist/types/sdk/host/session-runtime.d.ts +40 -8
  107. package/dist/types/sdk/host/surface-policy.d.ts +2 -1
  108. package/dist/types/sdk/lifecycle/service.d.ts +12 -0
  109. package/dist/types/sdk/prompt-deadline-flush.d.ts +42 -4
  110. package/dist/types/sdk/prompt-deadline-manager.d.ts +2 -0
  111. package/dist/types/sdk/prompt-status.d.ts +11 -4
  112. package/dist/types/sdk/protocol/adapter-validation.d.ts +10 -4
  113. package/dist/types/sdk/reconciliation-extensions.d.ts +1 -1
  114. package/dist/types/sdk/session-list.d.ts +1 -1
  115. package/dist/types/session/agent-session.d.ts +107 -9
  116. package/dist/types/session/internal/managed-session-scope.d.ts +2 -2
  117. package/dist/types/session/internal/managed-session-storage.d.ts +1 -1
  118. package/dist/types/session/internal/native-publish-outcome.d.ts +1 -1
  119. package/dist/types/session/messages.d.ts +5 -1
  120. package/dist/types/session/session-manager.d.ts +29 -3
  121. package/dist/types/session/startup-auth-config.d.ts +24 -2
  122. package/dist/types/session/streaming-output.d.ts +11 -0
  123. package/dist/types/session/terminal-abort.d.ts +3 -1
  124. package/dist/types/session-import/service.d.ts +1 -1
  125. package/dist/types/skill-state/workflow-mutation-guard.d.ts +20 -4
  126. package/dist/types/slash-commands/helpers/mcp.d.ts +5 -0
  127. package/dist/types/slash-commands/helpers/provider-auth-status.d.ts +8 -0
  128. package/dist/types/ssh/ssh-executor.d.ts +8 -1
  129. package/dist/types/system-prompt.d.ts +3 -2
  130. package/dist/types/task/executor.d.ts +19 -2
  131. package/dist/types/task/role-body.d.ts +11 -0
  132. package/dist/types/tools/ast-edit-write-path.d.ts +10 -0
  133. package/dist/types/tools/atomic-file-write.d.ts +9 -7
  134. package/dist/types/tools/awaiting-input.d.ts +28 -0
  135. package/dist/types/tools/bash-allowed-prefixes.d.ts +17 -0
  136. package/dist/types/tools/bash-skill-urls.d.ts +4 -0
  137. package/dist/types/tools/bash.d.ts +7 -0
  138. package/dist/types/tools/descriptors.d.ts +15 -2
  139. package/dist/types/tools/fetch.d.ts +7 -1
  140. package/dist/types/tools/index.d.ts +2 -0
  141. package/dist/types/tools/irc.d.ts +5 -3
  142. package/dist/types/tools/python.d.ts +1 -1
  143. package/dist/types/tools/report-issue.d.ts +41 -0
  144. package/dist/types/tools/subagent.d.ts +23 -0
  145. package/dist/types/tools/tmux-self-injection-guard.d.ts +2 -0
  146. package/dist/types/tools/ultragoal-ask-guard.d.ts +1 -1
  147. package/dist/types/tools/write.d.ts +2 -0
  148. package/dist/types/utils/file-mentions.d.ts +5 -0
  149. package/dist/types/utils/image-limits.d.ts +7 -0
  150. package/dist/types/utils/image-loading.d.ts +0 -1
  151. package/dist/types/utils/open.d.ts +0 -1
  152. package/dist/types/utils/pasted-image-loading.d.ts +1 -5
  153. package/dist/types/utils/prompt-suggestion.d.ts +2 -2
  154. package/dist/types/utils/shell-snapshot.d.ts +2 -0
  155. package/dist/types/utils/title-generator.d.ts +13 -3
  156. package/dist/types/web/scrapers/types.d.ts +8 -1
  157. package/dist/types/web/search/providers/codex.d.ts +6 -7
  158. package/dist/types/web/search/providers/insane.d.ts +7 -1
  159. package/dist/types/web/search/providers/searxng.d.ts +5 -0
  160. package/package.json +10 -9
  161. package/scripts/acp-conformance-agent.ts +12 -2
  162. package/scripts/build-binary.ts +2 -1
  163. package/scripts/capture-subagent-compact-panel-showcase.ts +105 -0
  164. package/scripts/generate-docs-index.ts +8 -1
  165. package/scripts/generate-sdk-operation-inventory.ts +38 -4
  166. package/src/async/job-manager.ts +356 -56
  167. package/src/async/result-formatting.ts +40 -0
  168. package/src/autoresearch/git.ts +9 -2
  169. package/src/autoresearch/prompts/prompt-setup.md +1 -1
  170. package/src/capability/fs.ts +58 -22
  171. package/src/capability/index.ts +2 -2
  172. package/src/capability/rule.ts +11 -2
  173. package/src/cli/accounts-cli.ts +176 -8
  174. package/src/cli/append-system-prompt.ts +12 -0
  175. package/src/cli/args.ts +11 -7
  176. package/src/cli/auth-broker-cli.ts +21 -11
  177. package/src/cli/customize-doctor-precedence.ts +31 -0
  178. package/src/cli/customize-doctor.ts +49 -39
  179. package/src/cli/doctor/install-repairs.ts +35 -5
  180. package/src/cli/fast-help.ts +1 -3
  181. package/src/cli/install-activation.ts +47 -4
  182. package/src/cli/migrate-cli.ts +19 -6
  183. package/src/cli/public-command-errors.ts +6 -0
  184. package/src/cli/root-flags.ts +2 -4
  185. package/src/cli/stats-cli.ts +9 -5
  186. package/src/cli/update-cli.ts +471 -13
  187. package/src/cli-ordinary.ts +7 -2
  188. package/src/commands/accounts.ts +10 -5
  189. package/src/commands/harness.ts +25 -15
  190. package/src/commands/migrate.ts +3 -3
  191. package/src/commands/sdk.ts +277 -50
  192. package/src/commands/ultragoal.ts +16 -8
  193. package/src/commit/agentic/agent.ts +6 -6
  194. package/src/commit/analysis/conventional.ts +14 -5
  195. package/src/commit/changelog/index.ts +39 -1
  196. package/src/commit/map-reduce/index.ts +7 -7
  197. package/src/commit/message.ts +10 -3
  198. package/src/commit/pipeline.ts +12 -12
  199. package/src/config/autorouting-tier-map.ts +50 -1
  200. package/src/config/config-file.ts +106 -3
  201. package/src/config/config-hot-reload-trust.ts +148 -0
  202. package/src/config/config-hot-reload.ts +742 -0
  203. package/src/config/file-lock.ts +1615 -328
  204. package/src/config/keybindings.ts +154 -7
  205. package/src/config/model-bindings-applier.ts +85 -47
  206. package/src/config/model-discovery-manager.ts +10 -0
  207. package/src/config/model-profile-activation.ts +889 -148
  208. package/src/config/model-registry.ts +1706 -205
  209. package/src/config/model-resolver.ts +52 -22
  210. package/src/config/models-config-schema.ts +6 -0
  211. package/src/config/settings-schema.ts +73 -4
  212. package/src/config/settings.ts +460 -24
  213. package/src/coordinator-mcp/policy.ts +26 -1
  214. package/src/coordinator-mcp/server.ts +37 -2
  215. package/src/crash/sanitize.ts +7 -1
  216. package/src/customization/import.ts +279 -8
  217. package/src/customization/inventory.ts +24 -8
  218. package/src/customization/types.ts +1 -0
  219. package/src/dap/client.ts +3 -2
  220. package/src/dap/config.ts +31 -11
  221. package/src/dap/defaults.json +1 -1
  222. package/src/dap/session.ts +161 -36
  223. package/src/debug/crash-diagnostics.ts +89 -6
  224. package/src/debug/report-bundle.ts +90 -2
  225. package/src/debug/system-info.ts +8 -3
  226. package/src/defaults/gjc/extensions/grok-cli-vendor/src/shared/base-url.ts +21 -7
  227. package/src/discovery/agents-md.ts +1 -1
  228. package/src/discovery/builtin.ts +4 -3
  229. package/src/discovery/helpers.ts +25 -16
  230. package/src/discovery/mcp-compat.ts +120 -17
  231. package/src/edit/apply-patch/index.ts +12 -1
  232. package/src/edit/index.ts +204 -22
  233. package/src/edit/modes/patch.ts +214 -8
  234. package/src/edit/modes/replace.ts +136 -0
  235. package/src/eval/js/context-manager.ts +29 -3
  236. package/src/eval/js/worker-entry.ts +51 -18
  237. package/src/eval/py/executor.ts +14 -4
  238. package/src/eval/py/runner.py +144 -5
  239. package/src/eval/py/runtime.ts +44 -4
  240. package/src/exec/bash-executor.ts +81 -4
  241. package/src/exec/bash-shell-guardian.ts +4 -1
  242. package/src/exec/bash-shell-supervisor.ts +8 -4
  243. package/src/exec/isolated-shell.ts +5 -1
  244. package/src/exec/non-interactive-env.ts +0 -1
  245. package/src/export/html/index.ts +86 -6
  246. package/src/export/ttsr.ts +176 -1
  247. package/src/extensibility/custom-tools/wrapper.ts +3 -1
  248. package/src/extensibility/extensions/loader.ts +10 -1
  249. package/src/extensibility/extensions/ouroboros-ooo-bridge.ts +63 -1
  250. package/src/extensibility/extensions/types.ts +5 -1
  251. package/src/extensibility/hooks/loader.ts +10 -2
  252. package/src/extensibility/plugins/marketplace/fetcher.ts +2 -2
  253. package/src/extensibility/plugins/marketplace/manager.ts +36 -10
  254. package/src/extensibility/slash-commands.ts +5 -0
  255. package/src/gjc-runtime/gc-runtime.ts +37 -7
  256. package/src/gjc-runtime/launch-tmux.ts +30 -15
  257. package/src/gjc-runtime/launch-worktree.test.ts +148 -0
  258. package/src/gjc-runtime/launch-worktree.ts +101 -14
  259. package/src/gjc-runtime/managed-owner-admission.ts +46 -2
  260. package/src/gjc-runtime/ralplan-current-final.ts +294 -0
  261. package/src/gjc-runtime/ralplan-runtime.ts +95 -1
  262. package/src/gjc-runtime/session-resolution.ts +38 -6
  263. package/src/gjc-runtime/session-state-lock.ts +59 -14
  264. package/src/gjc-runtime/state-runtime.ts +23 -19
  265. package/src/gjc-runtime/state-writer.ts +109 -5
  266. package/src/gjc-runtime/tmux-sessions.ts +93 -13
  267. package/src/gjc-runtime/ultragoal-change-set.ts +90 -11
  268. package/src/gjc-runtime/ultragoal-guard.ts +9 -1
  269. package/src/gjc-runtime/ultragoal-runtime.ts +15 -5
  270. package/src/harness-control-plane/finalize.ts +11 -0
  271. package/src/harness-control-plane/receipt-spool.ts +105 -28
  272. package/src/harness-control-plane/storage.ts +124 -6
  273. package/src/hindsight/content.ts +116 -16
  274. package/src/hindsight/mental-models.ts +22 -10
  275. package/src/hindsight/state.ts +7 -4
  276. package/src/hooks/native-skill-hook.ts +17 -12
  277. package/src/internal-urls/artifact-protocol.ts +3 -1
  278. package/src/internal-urls/docs-index.generated.ts +23 -22
  279. package/src/internal-urls/local-protocol.ts +167 -8
  280. package/src/internal-urls/types.ts +2 -0
  281. package/src/lsp/client.ts +2 -1
  282. package/src/lsp/clients/biome-client.ts +2 -0
  283. package/src/lsp/clients/swiftlint-client.ts +2 -0
  284. package/src/lsp/index.ts +29 -0
  285. package/src/lsp/workspace-path.ts +23 -0
  286. package/src/main.ts +330 -92
  287. package/src/memories/index.ts +25 -2
  288. package/src/migrate/action-planner.ts +574 -2
  289. package/src/migrate/adapters/claude-code.ts +162 -5
  290. package/src/migrate/adapters/codex.ts +77 -7
  291. package/src/migrate/adapters/index.ts +258 -5
  292. package/src/migrate/adapters/opencode.ts +10 -1
  293. package/src/migrate/executor.ts +222 -7
  294. package/src/migrate/hook-module.ts +193 -0
  295. package/src/migrate/report.ts +63 -2
  296. package/src/migrate/types.ts +84 -4
  297. package/src/modes/DESIGN.md +51 -0
  298. package/src/modes/acp/acp-agent.ts +10 -1
  299. package/src/modes/acp/permission-mode.ts +18 -1
  300. package/src/modes/components/agent-dashboard.ts +20 -4
  301. package/src/modes/components/assistant-message.ts +55 -1
  302. package/src/modes/components/customization/customization-dashboard.ts +7 -0
  303. package/src/modes/components/customization/import-wizard.ts +29 -3
  304. package/src/modes/components/model-selector.ts +157 -103
  305. package/src/modes/components/settings-selector.ts +103 -37
  306. package/src/modes/components/welcome.ts +3 -1
  307. package/src/modes/controllers/command-controller.ts +300 -9
  308. package/src/modes/controllers/event-controller.ts +1 -1
  309. package/src/modes/controllers/extension-ui-controller.ts +31 -1
  310. package/src/modes/controllers/goal-mode-controller.ts +79 -10
  311. package/src/modes/controllers/input-controller.ts +2 -0
  312. package/src/modes/controllers/plan-mode-controller.ts +66 -11
  313. package/src/modes/controllers/runtime-mcp-command-controller.ts +7 -6
  314. package/src/modes/controllers/selector-controller.ts +76 -7
  315. package/src/modes/interactive-mode.ts +123 -4
  316. package/src/modes/prompt-suggestion-controller.ts +1 -1
  317. package/src/modes/runtime-init.ts +5 -1
  318. package/src/modes/theme/theme.ts +15 -0
  319. package/src/modes/utils/host-status.ts +21 -10
  320. package/src/prompts/agent-fragments/browser-aside.md +2 -2
  321. package/src/prompts/system/irc-incoming.md +3 -1
  322. package/src/prompts/tools/debug.md +1 -1
  323. package/src/prompts/tools/irc.md +1 -1
  324. package/src/prompts/tools/read.md +1 -1
  325. package/src/prompts/tools/report-issue.md +13 -0
  326. package/src/prompts/tools/task.md +1 -1
  327. package/src/runtime-credential-selector.ts +2 -2
  328. package/src/runtime-mcp/content-limits.ts +7 -0
  329. package/src/runtime-mcp/manager-pool.test.ts +5 -4
  330. package/src/runtime-mcp/manager.ts +40 -3
  331. package/src/runtime-mcp/oauth-flow.ts +32 -6
  332. package/src/runtime-mcp/plugin-mcp-name-filter.ts +62 -0
  333. package/src/runtime-mcp/project-host-values.ts +12 -8
  334. package/src/runtime-mcp/render.ts +16 -1
  335. package/src/runtime-mcp/tool-bridge.ts +194 -21
  336. package/src/runtime-mcp/transports/stdio.ts +2 -1
  337. package/src/sdk/broker/broker-exit.ts +10 -5
  338. package/src/sdk/broker/broker.ts +484 -85
  339. package/src/sdk/broker/daemon-entry.ts +338 -116
  340. package/src/sdk/broker/doctor-restart.ts +2 -1
  341. package/src/sdk/broker/ensure.ts +1214 -268
  342. package/src/sdk/broker/hop.ts +286 -0
  343. package/src/sdk/broker/lifecycle-ledger.ts +38 -11
  344. package/src/sdk/broker/lifecycle.ts +102 -6
  345. package/src/sdk/broker/lock-host-identity.ts +29 -0
  346. package/src/sdk/broker/session-index.ts +91 -16
  347. package/src/sdk/broker/transport.ts +17 -1
  348. package/src/sdk/bus/chat-command-policy.ts +16 -3
  349. package/src/sdk/bus/chat-daemon-control.ts +2 -2
  350. package/src/sdk/bus/index.ts +460 -35
  351. package/src/sdk/bus/reconciliation-store.ts +201 -8
  352. package/src/sdk/bus/session-control.ts +2 -0
  353. package/src/sdk/bus/slack-daemon.ts +105 -9
  354. package/src/sdk/bus/telegram-daemon-contract.ts +9 -1
  355. package/src/sdk/bus/telegram-daemon.ts +10 -2
  356. package/src/sdk/bus/threaded-render.ts +20 -1
  357. package/src/sdk/cli/session-cli.ts +23 -6
  358. package/src/sdk/host/control/dispatch.ts +13 -1
  359. package/src/sdk/host/control/operations.ts +10 -1
  360. package/src/sdk/host/events.ts +67 -4
  361. package/src/sdk/host/host.ts +8 -2
  362. package/src/sdk/host/prompt-image-upload.ts +438 -0
  363. package/src/sdk/host/sdk-surface-parity.test.ts +15 -0
  364. package/src/sdk/host/session-runtime.test.ts +1737 -129
  365. package/src/sdk/host/session-runtime.ts +684 -83
  366. package/src/sdk/host/surface-policy.ts +4 -0
  367. package/src/sdk/host/websocket-transport.lifecycle.test.ts +90 -2
  368. package/src/sdk/host/websocket-transport.ts +19 -7
  369. package/src/sdk/lifecycle/service.ts +15 -1
  370. package/src/sdk/prompt-deadline-flush.ts +78 -5
  371. package/src/sdk/prompt-deadline-manager.ts +68 -14
  372. package/src/sdk/prompt-status.ts +6 -4
  373. package/src/sdk/protocol/adapter-validation.ts +81 -12
  374. package/src/sdk/protocol/operation-inventory.generated.json +261 -2
  375. package/src/sdk/protocol/operation-registry.ts +33 -3
  376. package/src/sdk/reconciliation-extensions.ts +1 -0
  377. package/src/sdk/session-list.ts +1 -0
  378. package/src/sdk/session.ts +237 -97
  379. package/src/session/agent-session.ts +2726 -479
  380. package/src/session/history-storage.ts +182 -12
  381. package/src/session/internal/managed-session-scope.ts +173 -57
  382. package/src/session/internal/managed-session-storage.ts +85 -12
  383. package/src/session/internal/native-publish-outcome.ts +5 -1
  384. package/src/session/messages.ts +47 -6
  385. package/src/session/session-manager.ts +326 -19
  386. package/src/session/startup-auth-config.ts +116 -8
  387. package/src/session/streaming-output.ts +262 -4
  388. package/src/session/terminal-abort.ts +14 -2
  389. package/src/session-import/redact.ts +53 -2
  390. package/src/session-import/service.ts +1 -0
  391. package/src/skill-state/workflow-mutation-guard.ts +2145 -206
  392. package/src/slash-commands/builtin-registry.ts +21 -6
  393. package/src/slash-commands/helpers/credential-switch.ts +10 -5
  394. package/src/slash-commands/helpers/mcp.ts +11 -3
  395. package/src/slash-commands/helpers/provider-auth-status.ts +456 -0
  396. package/src/ssh/ssh-executor.ts +9 -2
  397. package/src/stt/recorder.ts +26 -9
  398. package/src/system-prompt.ts +61 -16
  399. package/src/task/executor.ts +115 -20
  400. package/src/task/index.ts +389 -175
  401. package/src/task/role-body.ts +84 -0
  402. package/src/task/token-log-mode.test.ts +162 -0
  403. package/src/task/token-log.ts +91 -2
  404. package/src/tools/archive-reader.ts +650 -37
  405. package/src/tools/ask.ts +1 -0
  406. package/src/tools/ast-edit-write-path.ts +64 -0
  407. package/src/tools/ast-edit.ts +18 -1
  408. package/src/tools/ast-grep.ts +7 -2
  409. package/src/tools/atomic-file-write.ts +46 -15
  410. package/src/tools/auto-generated-guard.ts +15 -3
  411. package/src/tools/awaiting-input.ts +114 -0
  412. package/src/tools/bash-allowed-prefixes.ts +214 -6
  413. package/src/tools/bash-interactive.ts +14 -2
  414. package/src/tools/bash-skill-urls.ts +58 -5
  415. package/src/tools/bash.ts +113 -26
  416. package/src/tools/browser/tab-worker.ts +39 -13
  417. package/src/tools/browser.ts +17 -7
  418. package/src/tools/cron.ts +10 -1
  419. package/src/tools/debug.ts +16 -8
  420. package/src/tools/descriptors.test.ts +44 -0
  421. package/src/tools/descriptors.ts +50 -6
  422. package/src/tools/eval.ts +15 -0
  423. package/src/tools/fetch.ts +93 -4
  424. package/src/tools/gh.ts +27 -12
  425. package/src/tools/image-gen.ts +20 -6
  426. package/src/tools/index.ts +2 -0
  427. package/src/tools/irc.ts +5 -3
  428. package/src/tools/monitor.ts +9 -1
  429. package/src/tools/output-meta.ts +74 -5
  430. package/src/tools/python.ts +1 -1
  431. package/src/tools/read.ts +26 -37
  432. package/src/tools/recipe/runner.ts +23 -12
  433. package/src/tools/render-utils.ts +2 -2
  434. package/src/tools/report-issue.ts +184 -0
  435. package/src/tools/search.ts +3 -2
  436. package/src/tools/ssh.ts +274 -8
  437. package/src/tools/subagent-render.ts +114 -12
  438. package/src/tools/subagent.ts +118 -5
  439. package/src/tools/tmux-self-injection-guard.ts +3301 -122
  440. package/src/tools/todo-write.ts +41 -3
  441. package/src/tools/tool-catalog.generated.ts +32 -4
  442. package/src/tools/ultragoal-ask-guard.ts +13 -1
  443. package/src/tools/write.ts +42 -3
  444. package/src/tui/tree-list.ts +15 -1
  445. package/src/utils/commit-message-generator.ts +12 -4
  446. package/src/utils/external-editor.ts +21 -7
  447. package/src/utils/file-mentions.ts +75 -7
  448. package/src/utils/git.ts +38 -7
  449. package/src/utils/image-limits.ts +8 -0
  450. package/src/utils/image-loading.ts +1 -1
  451. package/src/utils/open.ts +73 -4
  452. package/src/utils/pasted-image-loading.ts +9 -8
  453. package/src/utils/prompt-suggestion.ts +5 -4
  454. package/src/utils/shell-snapshot.ts +9 -1
  455. package/src/utils/title-generator.ts +72 -22
  456. package/src/web/scrapers/index.ts +3 -1
  457. package/src/web/scrapers/types.ts +8 -0
  458. package/src/web/scrapers/youtube.ts +3 -2
  459. package/src/web/search/index.ts +2 -1
  460. package/src/web/search/providers/codex.ts +29 -32
  461. package/src/web/search/providers/insane.ts +91 -28
  462. package/src/web/search/providers/searxng.ts +62 -10
@@ -155,6 +155,8 @@ export interface SubagentRecord {
155
155
  seq: number;
156
156
  message?: string;
157
157
  resumeToolCallId?: string;
158
+ admissionEndpointId?: string;
159
+ ownedRegistrationEndpointId?: string;
158
160
  createdAt: number;
159
161
  };
160
162
  /** Last queued-resume seq for a CANCELLED queued resume (rec.queued is
@@ -187,7 +189,7 @@ export interface ResumeDescriptor {
187
189
  * In-memory resume runner bound to the session that originally launched a
188
190
  * subagent. Never serialized: process restart drops it so resume fails closed.
189
191
  */
190
- export type ResumeRunner = (subagentId: string, message?: string, descriptor?: ResumeDescriptor, resumeToolCallId?: string) => string | undefined;
192
+ export type ResumeRunner = (subagentId: string, message?: string, descriptor?: ResumeDescriptor, resumeToolCallId?: string, admissionEndpointId?: string, ownedRegistrationEndpointId?: string) => string | undefined;
191
193
  export interface AsyncJobManagerOptions {
192
194
  onJobComplete: (jobId: string, text: string, job?: AsyncJob) => void | Promise<void>;
193
195
  maxRunningJobs?: number;
@@ -361,7 +363,7 @@ export declare class AsyncJobManager {
361
363
  * resume can neither resolve its lineage nor register its owned tuple
362
364
  * (review thread P1). Returns TRUE when the mapping was moved (or no move
363
365
  * was needed); returns FALSE when the successor endpoint is owned by a
364
- * FOREIGN live manager — the transition must then abort or roll back
366
+ /**
365
367
  * BEFORE retiring predecessor state, because leaving this manager under
366
368
  * the predecessor while tools resolve the successor to the foreign
367
369
  * manager sends jobs to the wrong session and owned aborts lose their
@@ -447,7 +449,9 @@ export declare class AsyncJobManager {
447
449
  cancelAndProveOwnerSubagents(lease: OwnerSubagentShutdownLease, options?: {
448
450
  timeoutMs?: number;
449
451
  }): Promise<OwnerSubagentShutdownProof>;
450
- finishOwnerSubagentShutdown(lease: OwnerSubagentShutdownLease, outcome: "commit" | "release"): void;
452
+ finishOwnerSubagentShutdown(lease: OwnerSubagentShutdownLease, outcome: "commit" | "release", options?: {
453
+ drainResumeQueue?: boolean;
454
+ }): void;
451
455
  /** Request a graceful safe-boundary pause of a running subagent. */
452
456
  pauseSubagent(subagentId: string, filter?: AsyncJobFilter): {
453
457
  ok: boolean;
@@ -0,0 +1,2 @@
1
+ import type { SessionManager } from "../session/session-manager";
2
+ export declare function formatAsyncResultForFollowUp(sessionManager: SessionManager, result: string, allowArtifact?: boolean): Promise<string>;
@@ -21,7 +21,7 @@ export declare function getCurrentAutoresearchBranch(workDir: string): Promise<s
21
21
  * Mission state under `.gjc/**` is intentionally NOT listed here: it is
22
22
  * runtime-owned and only the sanctioned `gjc autoresearch` CLI writes it.
23
23
  */
24
- export declare function isAutoresearchAuthorizedResearchPath(_cwd: string, rawPath: string): boolean;
24
+ export declare function isAutoresearchAuthorizedResearchPath(cwd: string, rawPath: string): boolean;
25
25
  /**
26
26
  * Ensure the working tree is on an `autoresearch/*` branch when possible.
27
27
  *
@@ -2,8 +2,8 @@ import * as fs from "node:fs";
2
2
  /** Authority used when reading from an explicit-home discovery context. */
3
3
  export type ReadScope = "project" | "user" | "native";
4
4
  export interface FileIdentity {
5
- readonly dev: number;
6
- readonly ino: number;
5
+ readonly dev: bigint;
6
+ readonly ino: bigint;
7
7
  }
8
8
  export interface ReadFileOptions {
9
9
  /** Canonicalize the file and enforce the supplied home/profile boundary. */
@@ -8,6 +8,8 @@ export interface RuleFrontmatter {
8
8
  alwaysApply?: boolean;
9
9
  /** New key for TTSR match conditions. */
10
10
  condition?: string | string[];
11
+ /** AST-grep pattern(s) for TTSR AST matching (evaluated on completed tool args). */
12
+ astCondition?: string | string[];
11
13
  /** New key for TTSR stream scope. */
12
14
  scope?: string | string[];
13
15
  /** Per-rule TTSR interrupt mode override. */
@@ -36,6 +38,8 @@ export interface Rule {
36
38
  description?: string;
37
39
  /** Regex condition(s) that can trigger TTSR interruption. */
38
40
  condition?: string[];
41
+ /** AST-grep pattern(s) for TTSR AST matching (evaluated on completed tool args). */
42
+ astCondition?: string[];
39
43
  /** Optional stream scope tokens (for example: text, thinking, tool:edit(*.ts)). */
40
44
  scope?: string[];
41
45
  /** Per-rule TTSR interrupt mode override (falls back to global ttsr.interruptMode). */
@@ -48,15 +52,16 @@ export interface Rule {
48
52
  _source: SourceMeta;
49
53
  }
50
54
  /**
51
- * Parse `condition` + `scope` from rule frontmatter.
55
+ * Parse `condition`, `astCondition`, and `scope` from rule frontmatter.
52
56
  *
53
57
  * - `condition` accepts string or string[]
58
+ * - `astCondition` accepts string or string[] (ast-grep patterns)
54
59
  * - `scope` accepts string or string[]
55
60
  * - legacy `ttsr_trigger` / `ttsrTrigger` are accepted as a `condition` fallback
56
61
  * - condition tokens that look like file globs become scope shorthands:
57
62
  * `*.rs` => `tool:edit(*.rs)`, `tool:write(*.rs)` and a catch-all condition `.*`
58
63
  */
59
- export declare function parseRuleConditionAndScope(frontmatter: RuleFrontmatter): Pick<Rule, "condition" | "scope">;
64
+ export declare function parseRuleConditionAndScope(frontmatter: RuleFrontmatter): Pick<Rule, "condition" | "astCondition" | "scope">;
60
65
  /**
61
66
  * Process-global snapshot of rules the active session loaded.
62
67
  * Read by internal URL protocol handlers (rule://).
@@ -1,9 +1,9 @@
1
- export declare const ACCOUNTS_ACTIONS: readonly ["list", "check", "pin", "logout"];
1
+ export declare const ACCOUNTS_ACTIONS: readonly ["list", "check", "pin", "prefer", "logout"];
2
2
  export type AccountsAction = (typeof ACCOUNTS_ACTIONS)[number];
3
3
  export interface AccountsCommandArgs {
4
4
  action: AccountsAction;
5
5
  provider?: string;
6
- selector?: string;
6
+ selectors?: readonly string[];
7
7
  flags: {
8
8
  json?: boolean;
9
9
  persistent?: boolean;
@@ -0,0 +1,6 @@
1
+ export interface AppendSystemPromptCandidate {
2
+ level: "user" | "project";
3
+ path: string;
4
+ }
5
+ /** First user file. A repository copy is untrusted project text and is never selected. */
6
+ export declare function selectAppendSystemPromptFile(candidates: readonly AppendSystemPromptCandidate[]): string | undefined;
@@ -6,8 +6,6 @@ export interface Args {
6
6
  allowHome?: boolean;
7
7
  provider?: string;
8
8
  model?: string;
9
- smol?: string;
10
- slow?: string;
11
9
  plan?: string;
12
10
  mpreset?: string;
13
11
  default?: boolean;
@@ -62,3 +60,10 @@ export interface Args {
62
60
  export declare function parseArgs(args: string[], authority?: ParseArgsAuthority): Args;
63
61
  /** Reject flags whose only owners are non-local startup consumers. */
64
62
  export declare function assertLocalLaunchArgs(parsed: Args): void;
63
+ /**
64
+ * Resolve the ephemeral `plan` model-role override that plan mode switches to.
65
+ *
66
+ * Precedence is CLI `--plan` > `GJC_PLAN_MODEL` > legacy `PI_PLAN_MODEL`.
67
+ * `$pickenv` trims values and treats empty/whitespace as unset.
68
+ */
69
+ export declare function resolvePlanModelOverride(parsed: Pick<Args, "plan">): string | undefined;
@@ -0,0 +1,16 @@
1
+ export interface DiscoveryPrecedenceCandidate {
2
+ key: string | undefined;
3
+ provider: string;
4
+ scope: "user" | "project" | "native";
5
+ eligible: boolean;
6
+ enabled: boolean;
7
+ }
8
+ export interface DiscoveryPrecedenceResult {
9
+ shadowed: boolean;
10
+ shadowedBy?: {
11
+ provider: string;
12
+ scope: DiscoveryPrecedenceCandidate["scope"];
13
+ };
14
+ }
15
+ /** Resolve ordered discovery candidates without allowing ineligible or disabled entries to own keys. */
16
+ export declare function resolveDiscoveryPrecedence(candidates: readonly DiscoveryPrecedenceCandidate[]): DiscoveryPrecedenceResult[];
@@ -20,9 +20,10 @@ export type CustomizeSurfaceKind = "mcp" | "skill" | "hook" | "tool" | "extensio
20
20
  *
21
21
  * - `canonical`: project/global `.gjc` entries and GJC bundled defaults — the
22
22
  * primary load path and the persisted authority for sessions.
23
- * - `convention`: items from registered non-native conventions that are part of
24
- * the discovery load path (claude-plugins, claude/codex hooks, agents,
25
- * cursor, gemini, opencode, windsurf, cline, github, mcp-json, ssh).
23
+ * - `convention`: items exposed by registered non-native discovery providers
24
+ * (claude-plugins, claude/codex hooks, agents, cursor, gemini, opencode,
25
+ * windsurf, cline, github, mcp-json, ssh). The item status identifies whether
26
+ * a discovered item is active, stored-only, or otherwise excluded at runtime.
26
27
  * - `import-candidate`: Claude Code / Codex project (+ global) files on
27
28
  * surfaces GJC deliberately never loads. Reported for provenance only; never
28
29
  * active runtime authority. Candidates for a future import flow (#4291).
@@ -10,6 +10,7 @@
10
10
  * `reconcileActivationRecord`.
11
11
  */
12
12
  import { type DirectoryIdentity, type FileIdentity } from "../install-activation";
13
+ import { InstallationAccessDeniedError } from "../update-cli";
13
14
  export type InstallSourceKind = "standalone" | "source" | "npm-wrapper" | "unknown";
14
15
  /**
15
16
  * The trust anchor for "this target is the exact binary the current process
@@ -62,8 +63,10 @@ export interface InstallRepairResult {
62
63
  readonly reason?: string;
63
64
  readonly recordPath?: string;
64
65
  readonly sideEffectStarted: boolean;
65
- /** Present only for a pre-mutation Windows sharing violation (nothing was renamed). */
66
+ /** Native Windows status returned by exact replacement. */
66
67
  readonly windowsErrorCode?: string;
68
+ readonly stagingCleanupWarning?: string;
69
+ readonly retainedPaths?: InstallationAccessDeniedError["retainedPaths"];
67
70
  readonly before?: {
68
71
  readonly identity?: FileIdentity;
69
72
  readonly digest?: string;
@@ -134,8 +134,12 @@ export interface ReconcileResult {
134
134
  readonly record?: ActivationRecordV1;
135
135
  readonly recordIdentity?: FileIdentity;
136
136
  readonly reason?: string;
137
- /** Present only for a pre-mutation Windows sharing violation on the destination open. */
137
+ /** Present only for a pre-mutation Windows exact-replacement failure. */
138
138
  readonly windowsErrorCode?: string;
139
+ readonly detachedPath?: string;
140
+ readonly retainedSuccessorPath?: string;
141
+ readonly retainedPlaceholderPath?: string;
142
+ readonly retainedUnknownPath?: string;
139
143
  }
140
144
  /**
141
145
  * Reconcile the activation record for `targetPath` against durable state.
@@ -148,9 +152,11 @@ export interface ReconcileResult {
148
152
  * records are re-verified and advanced to `verified` once the target
149
153
  * digest/identity matches the candidate. `verified` records are read-only
150
154
  * re-confirmations. Anything else (target/parent drift, missing staged
151
- * candidate, an already-occupied backup name, a pre-mutation Windows
152
- * sharing violation) is reported as `conflict` with the exact reason and
153
- * never silently promoted.
155
+ * candidate, an already-occupied backup name) is reported as `conflict` with
156
+ * the exact reason and never silently promoted. A pre-mutation Windows
157
+ * sharing violation becomes `pending_activation`; an access-denied result is
158
+ * also recorded as pending for safe reuse but remains a `conflict` so the
159
+ * caller reports the publication failure.
154
160
  */
155
161
  export declare function reconcileActivationRecord(targetPath: string, options?: {
156
162
  readonly allowPromotion?: boolean;
@@ -81,6 +81,8 @@ export declare const PUBLIC_COMMAND_DIAGNOSTICS: {
81
81
  readonly router_cleanup_failed: "SDK session Router cleanup failed.";
82
82
  readonly broker_cleanup_failed: "SDK broker client cleanup failed.";
83
83
  readonly lifecycle_idempotency_conflict: "The broker reported an idempotency conflict. Reconcile existing lifecycle state before deciding whether another request is safe.";
84
+ readonly lifecycle_legacy_history_ambiguous: "The broker refused admission because legacy lifecycle history cannot prove this target is unrelated. This request was not dispatched; this refusal does not settle earlier effects. Preserve the ledger and original operation, request key, and target. For a prior session.create, use read-only session.lookup with its original key and create target; not_found is not proof of no effect. An empty transcript, stopped host, or fresh key does not resolve this fence. Do not edit the ledger, force deletion, or retry with another key; missing identity or terminal effect evidence requires operator investigation.";
85
+ readonly lifecycle_input_refused: "The broker refused the request as invalid input. Correct the request payload and reconcile existing lifecycle state before deciding whether another request is safe.";
84
86
  readonly usage_transport_exclusive: "Specify exactly one of --stdio or --socket <path>.";
85
87
  readonly usage_duplicate_option: "Each option on this command may occur at most once.";
86
88
  readonly usage_unknown_argument: "An unrecognized argument was supplied; re-read the command help for its accepted grammar.";
@@ -6,12 +6,6 @@ export declare const ROOT_LAUNCH_FLAGS: {
6
6
  model: FlagDescriptor<"string"> & {
7
7
  description: string;
8
8
  };
9
- smol: FlagDescriptor<"string"> & {
10
- description: string;
11
- };
12
- slow: FlagDescriptor<"string"> & {
13
- description: string;
14
- };
15
9
  plan: FlagDescriptor<"string"> & {
16
10
  description: string;
17
11
  };
@@ -141,12 +135,6 @@ export declare const LAUNCH_PARSE_FLAGS: {
141
135
  model: FlagDescriptor<"string"> & {
142
136
  description: string;
143
137
  };
144
- smol: FlagDescriptor<"string"> & {
145
- description: string;
146
- };
147
- slow: FlagDescriptor<"string"> & {
148
- description: string;
149
- };
150
138
  plan: FlagDescriptor<"string"> & {
151
139
  description: string;
152
140
  };
@@ -10,7 +10,7 @@ import { type UpdateChannel } from "../config/update-channel";
10
10
  import { type NotificationProvider } from "../sdk/bus/config";
11
11
  import type { TelemetryDetails, TelemetryEventName } from "../telemetry";
12
12
  import { type GithubReleaseLookupOptions } from "./github-release";
13
- import { type DirectoryIdentity, type FileIdentity } from "./install-activation";
13
+ import { type DirectoryIdentity, type FileIdentity, type ReconcileResult } from "./install-activation";
14
14
  import { offerMacosCommunityApp } from "./macos-community-app";
15
15
  export interface UpdateCommandOptions {
16
16
  force: boolean;
@@ -63,6 +63,19 @@ export interface BinaryReplacementOptions {
63
63
  verifyStagedVersion?: (stagingPath: string, expectedVersion: string) => Promise<void>;
64
64
  verifyInstalledVersion: (expectedVersion: string) => Promise<InstalledVersionVerification>;
65
65
  }
66
+ export declare class InstallationAccessDeniedError extends Error {
67
+ readonly targetPath: string;
68
+ readonly windowsErrorCode?: string | undefined;
69
+ readonly stagingCleanupWarning?: string | undefined;
70
+ readonly retainedPaths?: Pick<ReconcileResult, "detachedPath" | "retainedSuccessorPath" | "retainedPlaceholderPath" | "retainedUnknownPath"> | undefined;
71
+ readonly code = "access_denied";
72
+ constructor(targetPath: string, windowsErrorCode?: string | undefined, stagingCleanupWarning?: string | undefined, retainedPaths?: Pick<ReconcileResult, "detachedPath" | "retainedSuccessorPath" | "retainedPlaceholderPath" | "retainedUnknownPath"> | undefined);
73
+ }
74
+ export declare class ActivationRetryCandidateRepointError extends Error {
75
+ readonly candidatePath: string;
76
+ readonly reasonCode: string;
77
+ constructor(candidatePath: string, cause: unknown);
78
+ }
66
79
  /**
67
80
  * Parse update subcommand arguments.
68
81
  * Returns undefined if not an update command.
@@ -88,6 +101,9 @@ export type UpdateTarget = {
88
101
  } | MigrationUpdateTarget;
89
102
  type PathPlatform = NodeJS.Platform;
90
103
  type PackageExists = (packageName: string, packageRoot: string) => boolean;
104
+ export declare function resolveProjectLocalPackageInstallForTest(ompPath: string, platform: PathPlatform): {
105
+ packageRoot: string;
106
+ } | undefined;
91
107
  export declare function resolveUpdateMethodForTest(ompPath: string, bunBinDir: string | undefined): "bun" | "npm" | "binary";
92
108
  export declare function resolveNpmManagedTargetForTest(ompPath: string, platform: PathPlatform, packageExists: PackageExists): PackageManagerTarget | undefined;
93
109
  export declare function defaultUserBinaryPath(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv): string;
@@ -171,14 +187,16 @@ export interface BinaryUpdateFlow {
171
187
  /** Called once fsync has succeeded, right before replacement begins. */
172
188
  beforeReplace?(): void;
173
189
  }
190
+ export declare function isUpdateStagingNameForTest(targetPath: string, name: string): boolean;
191
+ export declare function isUpdateBackupNameForTest(targetPath: string, name: string): boolean;
174
192
  /**
175
193
  * Orchestrate download → fsync → replace → verify with a strict ordering
176
194
  * contract: the downloaded temp binary MUST be flushed to stable storage
177
195
  * before it is published (renamed into place) or exec'd for verification.
178
196
  *
179
197
  * If fsync fails the temp bytes are not durable, so we abort before
180
- * replacement/verification and retain the staging artifact rather than risk
181
- * deleting a substituted pathname or installing a possibly-truncated binary.
198
+ * replacement/verification. Final cleanup removes the exact staging identity
199
+ * only when no activation record still owns it.
182
200
  */
183
201
  export declare function runBinaryUpdateFlow(targetPath: string, url: string, expectedVersion: string, flow: BinaryUpdateFlow): Promise<InstalledVersionVerification>;
184
202
  export declare function acquireBinaryUpdateLock(targetPath: string): Promise<() => Promise<void>>;
@@ -27,12 +27,6 @@ export declare class RootHelpCommand extends Command {
27
27
  model: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
28
28
  description: string;
29
29
  };
30
- smol: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
31
- description: string;
32
- };
33
- slow: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
34
- description: string;
35
- };
36
30
  plan: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
37
31
  description: string;
38
32
  };
@@ -3,8 +3,8 @@
3
3
  * This module owns the effectful bootstrap (startup timing, stderr drainer,
4
4
  * bash-shell worker protocol) plus the unchanged ordinary routing order:
5
5
  * bash-shell workers -> darwin malloc re-exec -> internal smoke -> tmux owner
6
- * isolation -> managed-owner supervisor/admission/recovery -> private sdk
7
- * stderr drainer -> public family dispatch -> community app -> doctor worker /
6
+ * isolation -> managed-owner supervisor/admission/recovery -> broker hop ->
7
+ * private sdk stderr drainer -> public family dispatch -> community app -> doctor worker /
8
8
  * probe / cli -> full registry. `cli.ts` imports it lazily, only after argv has
9
9
  * been proven not to be a `sdk diagnostics` observation. */
10
10
  import { commands } from "./cli-commands";
@@ -7,7 +7,7 @@ export default class Accounts extends Command {
7
7
  action: import("@gajae-code/utils/cli").ArgDescriptor & {
8
8
  description: string;
9
9
  required: false;
10
- options: ("check" | "list" | "logout" | "pin")[];
10
+ options: ("check" | "list" | "logout" | "pin" | "prefer")[];
11
11
  };
12
12
  provider: import("@gajae-code/utils/cli").ArgDescriptor & {
13
13
  description: string;
@@ -16,6 +16,7 @@ export default class Accounts extends Command {
16
16
  selector: import("@gajae-code/utils/cli").ArgDescriptor & {
17
17
  description: string;
18
18
  required: false;
19
+ multiple: true;
19
20
  };
20
21
  };
21
22
  static flags: {
@@ -20,12 +20,6 @@ export default class Index extends Command {
20
20
  model: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
21
21
  description: string;
22
22
  };
23
- smol: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
24
- description: string;
25
- };
26
- slow: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
27
- description: string;
28
- };
29
23
  plan: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
30
24
  description: string;
31
25
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Import MCP servers and skills from other coding agents into GJC.
2
+ * Import MCP servers, skills, slash commands, and instructions from other coding agents into GJC.
3
3
  */
4
4
  import { Command } from "@gajae-code/utils/cli";
5
5
  export default class Migrate extends Command {
@@ -1,4 +1,5 @@
1
1
  import { Command } from "@gajae-code/utils/cli";
2
+ import { type ProjectEnvSnapshot } from "@gajae-code/utils/env-file";
2
3
  import type { Args as ParsedArgs } from "../cli/args";
3
4
  import { applyStartupModelProfiles } from "../main";
4
5
  import { initializeExtensions } from "../modes/runtime-init";
@@ -115,6 +116,13 @@ export declare function openLifecycleSessionManager(request: SessionLifecycleLau
115
116
  * logged and swallowed instead of surfacing as an unhandled rejection.
116
117
  */
117
118
  export declare function startMemoryBackendAfterReadiness(start: () => Promise<void>): void;
119
+ /**
120
+ * Cwd-equality test seams accept only an operator value. A project dotenv line,
121
+ * including one Bun expands from `$PWD`, never arms the seam.
122
+ */
123
+ export declare function sdkCwdEqualityTestSeamActive(name: string, cwd: string, env?: NodeJS.ProcessEnv, snapshots?: readonly ProjectEnvSnapshot[]): boolean;
124
+ /** Copy `env` without project-dotenv values for the four cwd-equality seams. */
125
+ export declare function omitUntrustedSdkCwdEqualitySeams(env: NodeJS.ProcessEnv, snapshots: readonly ProjectEnvSnapshot[]): NodeJS.ProcessEnv;
118
126
  /** Runs the same persisted AgentSession bootstrap used by the production CLI. */
119
127
  export declare function runSessionHost(timing?: {
120
128
  now?: () => number;
@@ -150,3 +158,8 @@ export default class Sdk extends Command {
150
158
  static delegateHelp: boolean;
151
159
  run(): Promise<void>;
152
160
  }
161
+ /** Captures and removes one-shot restart credentials before the broker forks descendants. */
162
+ export declare function consumeBrokerRestartEnvironment(environment: NodeJS.ProcessEnv): {
163
+ requestIdEnv: string | undefined;
164
+ restartDeadlineAt: number | undefined;
165
+ };
@@ -28,3 +28,4 @@ export declare function runChangelogFlow({ cwd, model, apiKey, thinkingLevel, st
28
28
  * Apply changelog entries provided by the commit agent.
29
29
  */
30
30
  export declare function applyChangelogProposals({ cwd, proposals, dryRun, onProgress, }: ChangelogProposalInput): Promise<string[]>;
31
+ export declare function redactChangelogEntry(text: string): string;
@@ -12,9 +12,9 @@ export interface MapReduceInput {
12
12
  model: Model<Api>;
13
13
  apiKey: string;
14
14
  thinkingLevel?: ThinkingLevel;
15
- smolModel: Model<Api>;
16
- smolApiKey: string;
17
- smolThinkingLevel?: ThinkingLevel;
15
+ secondaryModel: Model<Api>;
16
+ secondaryApiKey: string;
17
+ secondaryThinkingLevel?: ThinkingLevel;
18
18
  diff: string;
19
19
  stat: string;
20
20
  scopeCandidates: string;
@@ -23,6 +23,6 @@ export interface MapReduceInput {
23
23
  }
24
24
  export declare function shouldUseMapReduce(diff: string, settings?: MapReduceSettings): boolean;
25
25
  /**
26
- * Run map-reduce analysis for large diffs using smol + primary models.
26
+ * Run map-reduce analysis for large diffs using the secondary (map) and primary (reduce) models.
27
27
  */
28
28
  export declare function runMapReduceAnalysis(input: MapReduceInput): Promise<ConventionalAnalysis>;
@@ -29,10 +29,14 @@ export type AutoroutingCuratedTierMap = {
29
29
  };
30
30
  export declare const TIER_MAP_VERSION = 1;
31
31
  export declare const CURATED_TIER_LABELS: {
32
- readonly "anthropic/claude-haiku-4-5": readonly [{
32
+ readonly "anthropic/claude-haiku-5-5": readonly [{
33
33
  readonly tier: "fast";
34
34
  readonly rank: 1;
35
35
  }];
36
+ readonly "anthropic/claude-haiku-4-5": readonly [{
37
+ readonly tier: "fast";
38
+ readonly rank: 2;
39
+ }];
36
40
  readonly "anthropic/claude-sonnet-5-5": readonly [{
37
41
  readonly tier: "balanced";
38
42
  readonly rank: 1;
@@ -132,15 +136,63 @@ export declare const CURATED_TIER_LABELS: {
132
136
  };
133
137
  /** Generated from packages/ai/src/models.json at feature land: 3936 in-scope baseline skips. */
134
138
  export declare const TIER_MAP_SKIP_LIST: {
139
+ readonly "amazon-bedrock/anthropic.claude-haiku-5-5": {
140
+ readonly rationale: "Haiku 5.5 Bedrock catalog addition; not yet curated";
141
+ };
142
+ readonly "amazon-bedrock/au.anthropic.claude-haiku-5-5": {
143
+ readonly rationale: "Haiku 5.5 Bedrock catalog addition; not yet curated";
144
+ };
145
+ readonly "amazon-bedrock/eu.anthropic.claude-haiku-5-5": {
146
+ readonly rationale: "Haiku 5.5 Bedrock catalog addition; not yet curated";
147
+ };
148
+ readonly "amazon-bedrock/global.anthropic.claude-haiku-5-5": {
149
+ readonly rationale: "Haiku 5.5 Bedrock catalog addition; not yet curated";
150
+ };
151
+ readonly "amazon-bedrock/jp.anthropic.claude-haiku-5-5": {
152
+ readonly rationale: "Haiku 5.5 Bedrock catalog addition; not yet curated";
153
+ };
154
+ readonly "amazon-bedrock/us.anthropic.claude-haiku-5-5": {
155
+ readonly rationale: "Haiku 5.5 Bedrock catalog addition; not yet curated";
156
+ };
135
157
  readonly "amazon-bedrock/au.anthropic.claude-sonnet-5-5": {
136
158
  readonly rationale: "Sonnet 5.5 catalog addition (#6111); not yet curated";
137
159
  };
160
+ readonly "amazon-bedrock/in.anthropic.claude-haiku-4-5-20251001-v1:0": {
161
+ readonly rationale: "India-region Bedrock Anthropic catalog addition (#6731); not yet curated";
162
+ };
163
+ readonly "amazon-bedrock/in.anthropic.claude-opus-5": {
164
+ readonly rationale: "India-region Bedrock Anthropic catalog addition (#6731); not yet curated";
165
+ };
166
+ readonly "amazon-bedrock/in.anthropic.claude-sonnet-5": {
167
+ readonly rationale: "India-region Bedrock Anthropic catalog addition (#6731); not yet curated";
168
+ };
138
169
  readonly "amazon-bedrock/jp.anthropic.claude-sonnet-5-5": {
139
170
  readonly rationale: "Sonnet 5.5 catalog addition (#6111); not yet curated";
140
171
  };
141
172
  readonly "amazon-bedrock/us.anthropic.claude-sonnet-5-5": {
142
173
  readonly rationale: "Sonnet 5.5 catalog addition (#6111); not yet curated";
143
174
  };
175
+ readonly "github-copilot/gemini-4-argon": {
176
+ readonly rationale: "Gemini 4 Argon provider catalog addition (#6731); not yet curated";
177
+ };
178
+ readonly "google/gemini-4-argon": {
179
+ readonly rationale: "Gemini 4 Argon catalog addition (#6731); tier ordering not yet reviewed";
180
+ };
181
+ readonly "kilo/google/gemini-4-argon": {
182
+ readonly rationale: "Gemini 4 Argon provider catalog addition (#6731); not yet curated";
183
+ };
184
+ readonly "opencode-zen/gemini-4-argon": {
185
+ readonly rationale: "Gemini 4 Argon provider catalog addition (#6731); not yet curated";
186
+ };
187
+ readonly "openrouter/google/gemini-4-argon": {
188
+ readonly rationale: "Gemini 4 Argon provider catalog addition (#6731); not yet curated";
189
+ };
190
+ readonly "openrouter/google/gemini-4-argon:batch": {
191
+ readonly rationale: "Gemini 4 Argon batch provider catalog addition (#6731); not yet curated";
192
+ };
193
+ readonly "vercel-ai-gateway/google/gemini-4-argon": {
194
+ readonly rationale: "Gemini 4 Argon provider catalog addition (#6731); not yet curated";
195
+ };
144
196
  readonly "kiro/claude-opus-5-5": {
145
197
  readonly rationale: "post-rebase catalog addition from dev; not yet curated";
146
198
  };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Hot reload requires a privacy check that only Linux can perform: its
3
+ * directory modes include the POSIX ACL mask, so denying group/other access
4
+ * also denies named ACL grants. Node does not expose enough ACL state on other
5
+ * platforms to establish equivalent privacy, so they do not watch at all.
6
+ */
7
+ export declare function isConfigHotReloadSupported(): boolean;
8
+ /** Returns whether both configuration paths live in private, safely owned directories. */
9
+ export declare function isConfigHotReloadTrusted(paths: {
10
+ readonly configPath: string;
11
+ readonly modelsPath: string;
12
+ }): Promise<boolean>;
@@ -0,0 +1,44 @@
1
+ export interface ConfigHotReloadPaths {
2
+ readonly configPath: string;
3
+ readonly modelsPath: string;
4
+ }
5
+ export interface ConfigHotReloadFileSnapshot {
6
+ readonly path: string;
7
+ readonly text: string | null;
8
+ readonly identity: string;
9
+ }
10
+ export interface ConfigHotReloadCandidate {
11
+ readonly revision: number;
12
+ readonly config: ConfigHotReloadFileSnapshot;
13
+ readonly models: ConfigHotReloadFileSnapshot;
14
+ }
15
+ export type ConfigHotReloadErrorOperation = "watch" | "read" | "validate" | "apply";
16
+ /** A path-free diagnostic for watcher, snapshot, and callback failures. */
17
+ export declare class ConfigHotReloadError extends Error {
18
+ readonly operation: ConfigHotReloadErrorOperation;
19
+ readonly code: string | undefined;
20
+ constructor(operation: ConfigHotReloadErrorOperation, code?: string);
21
+ }
22
+ export interface ConfigHotReloadWatcherOptions {
23
+ /** Validate the snapshots without mutating live state before a candidate may supersede queued work. */
24
+ readonly onValidate: (candidate: ConfigHotReloadCandidate) => void | Promise<void>;
25
+ /** Apply these text snapshots, not a second read of their paths, and honor abort before commit. */
26
+ readonly onCandidate: (candidate: ConfigHotReloadCandidate, signal: AbortSignal) => void | Promise<void>;
27
+ readonly onError: (error: ConfigHotReloadError) => void;
28
+ }
29
+ /** Watches resolved config and models files and delivers immutable source snapshots. */
30
+ export declare class ConfigHotReloadWatcher {
31
+ #private;
32
+ constructor(options: ConfigHotReloadWatcherOptions);
33
+ /** Establishes the initial fingerprint baseline without emitting a candidate. */
34
+ start(paths: ConfigHotReloadPaths): Promise<void>;
35
+ /** Rebinds after session or configuration-root changes, fencing old work. */
36
+ rebind(paths: ConfigHotReloadPaths): Promise<void>;
37
+ /**
38
+ * Test-only: request the same scan an fs event would schedule. Tests that
39
+ * exercise the watcher cannot rely on platform fs-event delivery timing.
40
+ */
41
+ __testRequestScan(): void;
42
+ /** Closes all watches and cancels or fences pending and in-flight callbacks. */
43
+ dispose(): void;
44
+ }