@gajae-code/coding-agent 0.13.3 → 0.14.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 (599) hide show
  1. package/CHANGELOG.md +184 -2
  2. package/README.md +2 -0
  3. package/bin/gajaessi.js +4 -0
  4. package/dist/types/async/job-manager.d.ts +55 -2
  5. package/dist/types/async/support.d.ts +14 -0
  6. package/dist/types/capability/mcp.d.ts +6 -0
  7. package/dist/types/capability/types.d.ts +6 -0
  8. package/dist/types/cli/accounts-cli.d.ts +19 -0
  9. package/dist/types/cli/args.d.ts +3 -0
  10. package/dist/types/cli/config-cli.d.ts +6 -0
  11. package/dist/types/cli/crash-cli.d.ts +10 -0
  12. package/dist/types/cli/customize-doctor.d.ts +145 -0
  13. package/dist/types/cli/daemon-cli.d.ts +3 -1
  14. package/dist/types/cli/mcp-cli.d.ts +11 -0
  15. package/dist/types/cli/notify-cli.d.ts +1 -1
  16. package/dist/types/cli/root-flags.d.ts +12 -0
  17. package/dist/types/cli/setup-cli.d.ts +3 -1
  18. package/dist/types/cli/skills-cli.d.ts +2 -1
  19. package/dist/types/cli/update-cli.d.ts +19 -1
  20. package/dist/types/cli.d.ts +6 -0
  21. package/dist/types/commands/accounts.d.ts +40 -0
  22. package/dist/types/commands/crash.d.ts +24 -0
  23. package/dist/types/commands/customize.d.ts +22 -0
  24. package/dist/types/commands/daemon.d.ts +1 -1
  25. package/dist/types/commands/launch.d.ts +6 -0
  26. package/dist/types/commands/setup.d.ts +6 -0
  27. package/dist/types/commands/skills.d.ts +6 -1
  28. package/dist/types/commands/update.d.ts +7 -0
  29. package/dist/types/config/atomic-yaml-patch-worker.d.ts +25 -0
  30. package/dist/types/config/atomic-yaml-patch.d.ts +62 -2
  31. package/dist/types/config/config-schema-version.d.ts +10 -0
  32. package/dist/types/config/file-lock.d.ts +18 -0
  33. package/dist/types/config/model-profile-activation.d.ts +3 -1
  34. package/dist/types/config/model-registry.d.ts +9 -1
  35. package/dist/types/config/models-config-schema.d.ts +2 -0
  36. package/dist/types/config/settings-schema.d.ts +70 -6
  37. package/dist/types/config/settings.d.ts +63 -0
  38. package/dist/types/config/skill-settings-defaults.d.ts +26 -0
  39. package/dist/types/config/task-delegation.d.ts +39 -0
  40. package/dist/types/config/update-channel.d.ts +10 -0
  41. package/dist/types/coordinator-mcp/server.d.ts +5 -1
  42. package/dist/types/crash/index-store.d.ts +87 -0
  43. package/dist/types/crash/nudge.d.ts +50 -0
  44. package/dist/types/crash/record-loader.d.ts +17 -0
  45. package/dist/types/crash/report.d.ts +134 -0
  46. package/dist/types/crash/sanitize.d.ts +25 -0
  47. package/dist/types/cursor.d.ts +13 -2
  48. package/dist/types/customization/import.d.ts +37 -0
  49. package/dist/types/customization/index.d.ts +4 -0
  50. package/dist/types/customization/inventory.d.ts +25 -0
  51. package/dist/types/customization/mutations.d.ts +32 -0
  52. package/dist/types/customization/types.d.ts +115 -0
  53. package/dist/types/daemon/control-types.d.ts +8 -1
  54. package/dist/types/daemon/operator-contract.d.ts +4 -4
  55. package/dist/types/discovery/claude.d.ts +39 -1
  56. package/dist/types/discovery/codex.d.ts +39 -1
  57. package/dist/types/discovery/index.d.ts +2 -0
  58. package/dist/types/discovery/mcp-compat.d.ts +30 -0
  59. package/dist/types/edit/renderer.d.ts +23 -0
  60. package/dist/types/extensibility/extensions/runner.d.ts +3 -0
  61. package/dist/types/extensibility/extensions/types.d.ts +21 -4
  62. package/dist/types/extensibility/gjc-plugins/observability.d.ts +6 -1
  63. package/dist/types/extensibility/gjc-plugins/registry.d.ts +8 -1
  64. package/dist/types/extensibility/hooks/loader.d.ts +19 -5
  65. package/dist/types/extensibility/runtime-skill-discovery.d.ts +22 -1
  66. package/dist/types/extensibility/skill-management.d.ts +107 -0
  67. package/dist/types/gjc-runtime/deep-interview-runtime.d.ts +3 -1
  68. package/dist/types/gjc-runtime/launch-worktree.d.ts +8 -0
  69. package/dist/types/gjc-runtime/linux-proc.d.ts +3 -0
  70. package/dist/types/gjc-runtime/ralplan-runtime.d.ts +10 -6
  71. package/dist/types/gjc-runtime/session-state-lock.d.ts +104 -0
  72. package/dist/types/gjc-runtime/session-state-sidecar.d.ts +120 -2
  73. package/dist/types/gjc-runtime/state-writer.d.ts +10 -1
  74. package/dist/types/gjc-runtime/ultragoal-guard.d.ts +4 -2
  75. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +8 -6
  76. package/dist/types/gjc-runtime/workflow-settings.d.ts +109 -0
  77. package/dist/types/hooks/events.d.ts +60 -0
  78. package/dist/types/hooks/normalize.d.ts +83 -0
  79. package/dist/types/hooks/skill-state.d.ts +9 -2
  80. package/dist/types/main.d.ts +1 -1
  81. package/dist/types/modes/acp/abort-scope.d.ts +13 -0
  82. package/dist/types/modes/acp/acp-agent.d.ts +7 -4
  83. package/dist/types/modes/components/customization/customization-dashboard.d.ts +44 -0
  84. package/dist/types/modes/components/customization/import-wizard.d.ts +21 -0
  85. package/dist/types/modes/components/customization/index.d.ts +1 -0
  86. package/dist/types/modes/components/gajae-pet-widget.d.ts +8 -30
  87. package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
  88. package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
  89. package/dist/types/modes/components/oauth-selector.d.ts +10 -4
  90. package/dist/types/modes/components/pet-capability.d.ts +11 -25
  91. package/dist/types/modes/components/status-line/gh.d.ts +6 -2
  92. package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
  93. package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
  94. package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
  95. package/dist/types/modes/interactive-mode.d.ts +1 -0
  96. package/dist/types/modes/types.d.ts +1 -0
  97. package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
  98. package/dist/types/runtime-mcp/config.d.ts +9 -0
  99. package/dist/types/runtime-mcp/manager.d.ts +26 -1
  100. package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
  101. package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
  102. package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
  103. package/dist/types/runtime-mcp/protocol.d.ts +278 -0
  104. package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
  105. package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
  106. package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
  107. package/dist/types/runtime-mcp/types.d.ts +102 -10
  108. package/dist/types/sdk/acp/adapter.d.ts +26 -5
  109. package/dist/types/sdk/broker/broker.d.ts +3 -55
  110. package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
  111. package/dist/types/sdk/broker/session-index.d.ts +14 -5
  112. package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
  113. package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
  114. package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
  115. package/dist/types/sdk/bus/config.d.ts +11 -0
  116. package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
  117. package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
  118. package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
  119. package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
  120. package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
  121. package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
  122. package/dist/types/sdk/bus/index.d.ts +85 -99
  123. package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
  124. package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
  125. package/dist/types/sdk/bus/notification-service.d.ts +52 -0
  126. package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
  127. package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
  128. package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
  129. package/dist/types/sdk/bus/session-control.d.ts +25 -1
  130. package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
  131. package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
  132. package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
  133. package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
  134. package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
  135. package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
  136. package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
  137. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
  138. package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
  139. package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
  140. package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
  141. package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
  142. package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
  143. package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
  144. package/dist/types/sdk/cli/rows.d.ts +2 -11
  145. package/dist/types/sdk/cli/session-cli.d.ts +15 -25
  146. package/dist/types/sdk/client/client.d.ts +97 -1
  147. package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
  148. package/dist/types/sdk/host/control/index.d.ts +1 -1
  149. package/dist/types/sdk/host/control/operations.d.ts +18 -5
  150. package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
  151. package/dist/types/sdk/host/host.d.ts +15 -1
  152. package/dist/types/sdk/host/query/handlers.d.ts +5 -0
  153. package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
  154. package/dist/types/sdk/host/session-runtime.d.ts +127 -7
  155. package/dist/types/sdk/host/types.d.ts +1 -1
  156. package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
  157. package/dist/types/sdk/index.d.ts +2 -1
  158. package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
  159. package/dist/types/sdk/lifecycle/client.d.ts +59 -0
  160. package/dist/types/sdk/lifecycle/index.d.ts +3 -0
  161. package/dist/types/sdk/lifecycle/service.d.ts +232 -0
  162. package/dist/types/sdk/mcp/server.d.ts +9 -6
  163. package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
  164. package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
  165. package/dist/types/sdk/prompt-status.d.ts +10 -3
  166. package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
  167. package/dist/types/sdk/receipt-state.d.ts +17 -0
  168. package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
  169. package/dist/types/sdk/router/index.d.ts +1 -0
  170. package/dist/types/sdk/router/session-router.d.ts +152 -0
  171. package/dist/types/sdk/session-list.d.ts +22 -0
  172. package/dist/types/sdk/session-reconnect.d.ts +43 -1
  173. package/dist/types/sdk/session.d.ts +34 -1
  174. package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
  175. package/dist/types/session/account-inventory.d.ts +86 -0
  176. package/dist/types/session/agent-session.d.ts +145 -6
  177. package/dist/types/session/agent-storage.d.ts +10 -0
  178. package/dist/types/session/coordinator-tool-label.d.ts +28 -0
  179. package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
  180. package/dist/types/session/messages.d.ts +1 -1
  181. package/dist/types/session/secure-token-file.d.ts +3 -0
  182. package/dist/types/session/session-manager.d.ts +40 -1
  183. package/dist/types/session/startup-auth-config.d.ts +44 -0
  184. package/dist/types/session/terminal-abort.d.ts +378 -0
  185. package/dist/types/session/yield-queue.d.ts +7 -0
  186. package/dist/types/session-import/claude.d.ts +26 -0
  187. package/dist/types/session-import/codex.d.ts +88 -0
  188. package/dist/types/session-import/command.d.ts +35 -0
  189. package/dist/types/session-import/detect.d.ts +22 -0
  190. package/dist/types/session-import/index.d.ts +7 -0
  191. package/dist/types/session-import/provider-codex.d.ts +22 -0
  192. package/dist/types/session-import/provider-service.d.ts +38 -0
  193. package/dist/types/session-import/redact.d.ts +23 -0
  194. package/dist/types/session-import/service.d.ts +47 -0
  195. package/dist/types/session-import/types.d.ts +120 -0
  196. package/dist/types/setup/paseo/check.d.ts +16 -0
  197. package/dist/types/setup/paseo/install-saga.d.ts +115 -0
  198. package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
  199. package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
  200. package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
  201. package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
  202. package/dist/types/setup/paseo/provider-config.d.ts +35 -0
  203. package/dist/types/setup/paseo/remove.d.ts +14 -0
  204. package/dist/types/setup/paseo/result-types.d.ts +59 -0
  205. package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
  206. package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
  207. package/dist/types/skill-state/active-state.d.ts +5 -1
  208. package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
  209. package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
  210. package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
  211. package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
  212. package/dist/types/slash-commands/types.d.ts +7 -1
  213. package/dist/types/task/executor.d.ts +10 -0
  214. package/dist/types/task/index.d.ts +3 -1
  215. package/dist/types/tools/ask-answer-registry.d.ts +6 -3
  216. package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
  217. package/dist/types/tools/bash.d.ts +2 -6
  218. package/dist/types/tools/browser/attach.d.ts +11 -0
  219. package/dist/types/tools/browser/launch.d.ts +20 -0
  220. package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
  221. package/dist/types/tools/browser/render.d.ts +1 -0
  222. package/dist/types/tools/browser.d.ts +3 -1
  223. package/dist/types/tools/image-gen.d.ts +9 -2
  224. package/dist/types/tools/index.d.ts +8 -0
  225. package/dist/types/tools/monitor.d.ts +1 -1
  226. package/dist/types/tools/skill-discovery.d.ts +8 -1
  227. package/dist/types/tools/subagent.d.ts +2 -0
  228. package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
  229. package/dist/types/utils/herdr-pane.d.ts +76 -0
  230. package/package.json +19 -9
  231. package/scripts/build-binary.ts +2 -1
  232. package/scripts/build-sdk-package-smoke.ts +2 -13
  233. package/scripts/capture-sticky-viewport-showcase.ts +0 -1
  234. package/scripts/compile-args.ts +2 -0
  235. package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
  236. package/scripts/generate-sdk-operation-inventory.ts +28 -0
  237. package/scripts/generate-telegram-baseline-manifest.ts +1 -0
  238. package/scripts/generate-tool-catalog.ts +6 -4
  239. package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
  240. package/src/async/job-manager.ts +352 -17
  241. package/src/async/support.ts +25 -0
  242. package/src/autoresearch/dashboard.ts +28 -13
  243. package/src/capability/index.ts +3 -1
  244. package/src/capability/mcp.ts +6 -0
  245. package/src/capability/types.ts +6 -0
  246. package/src/cli/accounts-cli.ts +395 -0
  247. package/src/cli/args.ts +23 -0
  248. package/src/cli/auth-broker-cli.ts +136 -66
  249. package/src/cli/auth-gateway-cli.ts +94 -70
  250. package/src/cli/config-cli.ts +27 -2
  251. package/src/cli/crash-cli.ts +78 -0
  252. package/src/cli/customize-doctor.ts +1605 -0
  253. package/src/cli/daemon-cli.ts +12 -3
  254. package/src/cli/fast-help.ts +1 -0
  255. package/src/cli/mcp-cli.ts +128 -60
  256. package/src/cli/notify-cli.ts +8 -14
  257. package/src/cli/root-flags.ts +8 -0
  258. package/src/cli/setup-cli.ts +145 -0
  259. package/src/cli/skills-cli.ts +38 -2
  260. package/src/cli/update-cli.ts +167 -12
  261. package/src/cli.ts +4 -0
  262. package/src/commands/accounts.ts +71 -0
  263. package/src/commands/crash.ts +35 -0
  264. package/src/commands/customize.ts +84 -0
  265. package/src/commands/daemon.ts +2 -2
  266. package/src/commands/deep-interview.ts +2 -0
  267. package/src/commands/launch.ts +1 -0
  268. package/src/commands/mcp.ts +12 -7
  269. package/src/commands/ralplan.ts +2 -0
  270. package/src/commands/sdk.ts +65 -32
  271. package/src/commands/setup.ts +5 -0
  272. package/src/commands/skills.ts +14 -4
  273. package/src/commands/ultragoal.ts +10 -1
  274. package/src/commands/update.ts +26 -15
  275. package/src/config/atomic-yaml-patch-worker.ts +57 -0
  276. package/src/config/atomic-yaml-patch.ts +769 -29
  277. package/src/config/config-schema-version.ts +10 -0
  278. package/src/config/file-lock.ts +70 -1
  279. package/src/config/mcp-schema.json +52 -14
  280. package/src/config/model-profile-activation.ts +20 -1
  281. package/src/config/model-profiles.ts +29 -19
  282. package/src/config/model-registry.ts +132 -21
  283. package/src/config/models-config-schema.ts +1 -1
  284. package/src/config/settings-schema.ts +76 -6
  285. package/src/config/settings.ts +4038 -199
  286. package/src/config/skill-settings-defaults.ts +41 -3
  287. package/src/config/task-delegation.ts +87 -0
  288. package/src/config/update-channel.ts +23 -0
  289. package/src/coordinator-mcp/server.ts +377 -308
  290. package/src/crash/index-store.ts +723 -0
  291. package/src/crash/nudge.ts +89 -0
  292. package/src/crash/record-loader.ts +149 -0
  293. package/src/crash/report.ts +551 -0
  294. package/src/crash/sanitize.ts +129 -0
  295. package/src/cursor.ts +36 -10
  296. package/src/customization/import.ts +946 -0
  297. package/src/customization/index.ts +4 -0
  298. package/src/customization/inventory.ts +335 -0
  299. package/src/customization/mutations.ts +141 -0
  300. package/src/customization/types.ts +223 -0
  301. package/src/daemon/control-types.ts +8 -1
  302. package/src/daemon/operator-contract.ts +6 -6
  303. package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
  304. package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
  305. package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
  306. package/src/discovery/claude-hooks.ts +38 -0
  307. package/src/discovery/claude.ts +142 -209
  308. package/src/discovery/codex-hooks.ts +38 -0
  309. package/src/discovery/codex.ts +132 -198
  310. package/src/discovery/helpers.ts +8 -1
  311. package/src/discovery/index.ts +2 -0
  312. package/src/discovery/mcp-compat.ts +234 -0
  313. package/src/discovery/mcp-json.ts +6 -0
  314. package/src/edit/renderer.ts +40 -0
  315. package/src/edit/streaming.ts +4 -2
  316. package/src/exec/bash-executor.ts +24 -20
  317. package/src/export/html/index.ts +51 -2
  318. package/src/extensibility/extensions/loader.ts +9 -1
  319. package/src/extensibility/extensions/runner.ts +17 -4
  320. package/src/extensibility/extensions/types.ts +31 -6
  321. package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
  322. package/src/extensibility/gjc-plugins/installer.ts +9 -5
  323. package/src/extensibility/gjc-plugins/observability.ts +8 -2
  324. package/src/extensibility/gjc-plugins/registry.ts +13 -2
  325. package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
  326. package/src/extensibility/gjc-plugins/schema.ts +222 -39
  327. package/src/extensibility/hooks/loader.ts +154 -10
  328. package/src/extensibility/runtime-skill-discovery.ts +257 -60
  329. package/src/extensibility/skill-management.ts +368 -0
  330. package/src/extensibility/skills.ts +52 -16
  331. package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
  332. package/src/gjc-runtime/launch-worktree.ts +56 -2
  333. package/src/gjc-runtime/linux-proc.ts +7 -1
  334. package/src/gjc-runtime/ralplan-runtime.ts +100 -164
  335. package/src/gjc-runtime/session-state-lock.ts +992 -0
  336. package/src/gjc-runtime/session-state-sidecar.ts +644 -142
  337. package/src/gjc-runtime/state-writer.ts +39 -14
  338. package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
  339. package/src/gjc-runtime/ultragoal-guard.ts +11 -4
  340. package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
  341. package/src/gjc-runtime/workflow-settings.ts +596 -0
  342. package/src/goals/tools/goal-tool.ts +6 -1
  343. package/src/hooks/events.ts +291 -0
  344. package/src/hooks/native-skill-hook.ts +4 -0
  345. package/src/hooks/normalize.ts +369 -0
  346. package/src/hooks/skill-state.ts +165 -46
  347. package/src/internal-urls/docs-index.generated.ts +40 -32
  348. package/src/main.ts +32 -5
  349. package/src/migrate/mcp-mapper.ts +25 -2
  350. package/src/modes/acp/abort-scope.ts +29 -0
  351. package/src/modes/acp/acp-agent.ts +423 -98
  352. package/src/modes/components/assistant-message.ts +6 -1
  353. package/src/modes/components/customization/customization-dashboard.ts +443 -0
  354. package/src/modes/components/customization/import-wizard.ts +372 -0
  355. package/src/modes/components/customization/index.ts +1 -0
  356. package/src/modes/components/gajae-pet-widget.ts +539 -213
  357. package/src/modes/components/irc-sidebar.ts +11 -0
  358. package/src/modes/components/iterm-pet-transport.ts +585 -0
  359. package/src/modes/components/oauth-selector.ts +277 -86
  360. package/src/modes/components/pet-capability.ts +39 -40
  361. package/src/modes/components/settings-selector.ts +9 -0
  362. package/src/modes/components/status-line/gh.ts +45 -1
  363. package/src/modes/components/status-line/segments.ts +16 -1
  364. package/src/modes/components/tool-status-header.ts +13 -3
  365. package/src/modes/controllers/command-controller.ts +20 -8
  366. package/src/modes/controllers/extension-ui-controller.ts +56 -257
  367. package/src/modes/controllers/input-controller.ts +10 -0
  368. package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
  369. package/src/modes/controllers/selector-controller.ts +177 -72
  370. package/src/modes/controllers/stt-controller.ts +3 -3
  371. package/src/modes/interactive-mode.ts +88 -16
  372. package/src/modes/print-mode.ts +35 -6
  373. package/src/modes/runtime-init.ts +21 -68
  374. package/src/modes/types.ts +1 -0
  375. package/src/modes/utils/injected-user-submission.ts +25 -0
  376. package/src/modes/utils/terminal-bell.ts +15 -1
  377. package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
  378. package/src/prompts/agent-fragments/restricted-bash.md +1 -1
  379. package/src/prompts/agents/critic.md +1 -1
  380. package/src/prompts/system/rlm-research.md +1 -1
  381. package/src/prompts/system/system-prompt.md +0 -2
  382. package/src/prompts/tools/bash.md +7 -1
  383. package/src/prompts/tools/browser.md +1 -1
  384. package/src/prompts/tools/cron.md +6 -6
  385. package/src/prompts/tools/read.md +0 -2
  386. package/src/prompts/tools/skill-discovery.md +4 -2
  387. package/src/runtime-mcp/client.ts +427 -23
  388. package/src/runtime-mcp/config.ts +37 -5
  389. package/src/runtime-mcp/manager-pool.test.ts +56 -0
  390. package/src/runtime-mcp/manager.ts +52 -2
  391. package/src/runtime-mcp/oauth-discovery.ts +13 -0
  392. package/src/runtime-mcp/oauth-flow.ts +46 -1
  393. package/src/runtime-mcp/pool-key.ts +5 -1
  394. package/src/runtime-mcp/pool.test.ts +9 -0
  395. package/src/runtime-mcp/protocol.test.ts +353 -0
  396. package/src/runtime-mcp/protocol.ts +624 -0
  397. package/src/runtime-mcp/scope-config.ts +78 -0
  398. package/src/runtime-mcp/tool-bridge.ts +44 -10
  399. package/src/runtime-mcp/transports/http.ts +84 -13
  400. package/src/runtime-mcp/types.ts +123 -12
  401. package/src/sdk/acp/adapter.ts +328 -97
  402. package/src/sdk/broker/broker.ts +160 -741
  403. package/src/sdk/broker/ensure.ts +9 -1
  404. package/src/sdk/broker/lifecycle.ts +510 -116
  405. package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
  406. package/src/sdk/broker/process-incarnation.ts +19 -0
  407. package/src/sdk/broker/session-index.ts +516 -117
  408. package/src/sdk/broker/startup-failure.ts +28 -5
  409. package/src/sdk/broker/transport.ts +1 -13
  410. package/src/sdk/bus/chat-daemon-cli.ts +4 -2
  411. package/src/sdk/bus/chat-daemon-control.ts +67 -6
  412. package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
  413. package/src/sdk/bus/config.ts +13 -0
  414. package/src/sdk/bus/conversation-store.ts +59 -171
  415. package/src/sdk/bus/daemon-paths.ts +20 -0
  416. package/src/sdk/bus/discord-conversation.ts +2 -0
  417. package/src/sdk/bus/discord-daemon.ts +524 -126
  418. package/src/sdk/bus/discord-live-provider.ts +206 -79
  419. package/src/sdk/bus/existing-thread-readiness.ts +4 -97
  420. package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
  421. package/src/sdk/bus/index.ts +2480 -456
  422. package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
  423. package/src/sdk/bus/lifecycle-commands.ts +2 -2
  424. package/src/sdk/bus/managed-daemon.ts +2 -145
  425. package/src/sdk/bus/notification-service.ts +196 -0
  426. package/src/sdk/bus/operator-runtime.ts +1 -1
  427. package/src/sdk/bus/prompt-reconciliation.ts +24 -15
  428. package/src/sdk/bus/reconciliation-store.ts +553 -24
  429. package/src/sdk/bus/session-control.ts +49 -3
  430. package/src/sdk/bus/slack-conversation.ts +4 -0
  431. package/src/sdk/bus/slack-daemon.ts +733 -134
  432. package/src/sdk/bus/slack-live-provider.ts +65 -15
  433. package/src/sdk/bus/slack-provider.ts +4 -0
  434. package/src/sdk/bus/slack-thread-binding.ts +9 -104
  435. package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
  436. package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
  437. package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
  438. package/src/sdk/bus/telegram-daemon-control.ts +3 -13
  439. package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
  440. package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
  441. package/src/sdk/bus/telegram-daemon.ts +2552 -2280
  442. package/src/sdk/bus/telegram-reference.ts +1 -226
  443. package/src/sdk/bus/telegram-setup.ts +2 -2
  444. package/src/sdk/bus/threaded-render.ts +1 -0
  445. package/src/sdk/bus/topic-registry.ts +279 -146
  446. package/src/sdk/cli/rows.ts +2 -35
  447. package/src/sdk/cli/session-cli.ts +776 -700
  448. package/src/sdk/client/client.ts +892 -1
  449. package/src/sdk/host/control/dispatch.ts +93 -58
  450. package/src/sdk/host/control/index.ts +1 -1
  451. package/src/sdk/host/control/operations.ts +18 -10
  452. package/src/sdk/host/control/runtime-gate.ts +40 -0
  453. package/src/sdk/host/host.ts +63 -12
  454. package/src/sdk/host/query/handlers.ts +66 -7
  455. package/src/sdk/host/reverse-leases.ts +2 -2
  456. package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
  457. package/src/sdk/host/session-runtime.test.ts +2787 -34
  458. package/src/sdk/host/session-runtime.ts +1489 -101
  459. package/src/sdk/host/surface-policy.ts +12 -8
  460. package/src/sdk/host/types.ts +1 -1
  461. package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
  462. package/src/sdk/host/websocket-transport.ts +85 -50
  463. package/src/sdk/index.ts +2 -1
  464. package/src/sdk/lifecycle/broker-client.ts +53 -0
  465. package/src/sdk/lifecycle/client.ts +234 -0
  466. package/src/sdk/lifecycle/index.ts +3 -0
  467. package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
  468. package/src/sdk/lifecycle/service.ts +720 -0
  469. package/src/sdk/mcp/server.ts +226 -188
  470. package/src/sdk/prompt-deadline-lease.ts +55 -0
  471. package/src/sdk/prompt-deadline-manager.ts +148 -0
  472. package/src/sdk/prompt-status.ts +11 -3
  473. package/src/sdk/protocol/operation-inventory.generated.json +272 -129
  474. package/src/sdk/protocol/operation-registry.ts +71 -8
  475. package/src/sdk/receipt-state.ts +43 -0
  476. package/src/sdk/reconciliation-extensions.ts +14 -0
  477. package/src/sdk/router/index.ts +1 -0
  478. package/src/sdk/router/session-router.ts +1658 -0
  479. package/src/sdk/session-list.ts +93 -0
  480. package/src/sdk/session-reconnect.ts +45 -1
  481. package/src/sdk/session.ts +716 -120
  482. package/src/sdk/transport/serve-cli.ts +18 -34
  483. package/src/session/account-inventory.ts +603 -0
  484. package/src/session/agent-session.ts +2857 -582
  485. package/src/session/agent-storage.ts +35 -0
  486. package/src/session/blob-store.ts +32 -1
  487. package/src/session/coordinator-tool-label.ts +40 -0
  488. package/src/session/internal/managed-session-scope.ts +4 -0
  489. package/src/session/internal/managed-session-storage.ts +173 -12
  490. package/src/session/messages.ts +1 -1
  491. package/src/session/secure-token-file.ts +80 -0
  492. package/src/session/session-manager.ts +730 -58
  493. package/src/session/session-storage.ts +25 -16
  494. package/src/session/startup-auth-config.ts +297 -0
  495. package/src/session/terminal-abort.ts +1253 -0
  496. package/src/session/yield-queue.ts +57 -15
  497. package/src/session-import/claude.ts +334 -0
  498. package/src/session-import/codex.ts +1033 -0
  499. package/src/session-import/command.ts +77 -0
  500. package/src/session-import/detect.ts +133 -0
  501. package/src/session-import/index.ts +7 -0
  502. package/src/session-import/provider-codex.ts +327 -0
  503. package/src/session-import/provider-service.ts +457 -0
  504. package/src/session-import/redact.ts +128 -0
  505. package/src/session-import/service.ts +1264 -0
  506. package/src/session-import/types.ts +148 -0
  507. package/src/setup/paseo/check.ts +213 -0
  508. package/src/setup/paseo/install-saga.ts +293 -0
  509. package/src/setup/paseo/json-publisher.ts +263 -0
  510. package/src/setup/paseo/orchestration-preferences.ts +86 -0
  511. package/src/setup/paseo/paseo-ownership.ts +224 -0
  512. package/src/setup/paseo/paseo-setup.ts +253 -0
  513. package/src/setup/paseo/provider-config.ts +139 -0
  514. package/src/setup/paseo/remove.ts +183 -0
  515. package/src/setup/paseo/result-types.ts +79 -0
  516. package/src/setup/paseo/setup-deps.ts +175 -0
  517. package/src/setup/paseo/skills-bridge.ts +260 -0
  518. package/src/skill-state/active-state.ts +21 -11
  519. package/src/slash-commands/acp-builtins.ts +9 -1
  520. package/src/slash-commands/builtin-registry.ts +98 -16
  521. package/src/slash-commands/helpers/credential-switch.ts +143 -0
  522. package/src/slash-commands/helpers/mcp.ts +9 -3
  523. package/src/slash-commands/helpers/usage-report.ts +61 -56
  524. package/src/slash-commands/types.ts +7 -2
  525. package/src/task/executor.ts +30 -11
  526. package/src/task/index.ts +66 -7
  527. package/src/task/render.ts +23 -9
  528. package/src/tools/ask-answer-registry.ts +23 -7
  529. package/src/tools/ask.ts +8 -4
  530. package/src/tools/bash-sleep-advisory.ts +115 -0
  531. package/src/tools/bash.ts +98 -18
  532. package/src/tools/browser/attach.ts +71 -3
  533. package/src/tools/browser/launch.ts +86 -13
  534. package/src/tools/browser/profile-discovery.ts +57 -7
  535. package/src/tools/browser/render.ts +8 -1
  536. package/src/tools/browser.ts +130 -21
  537. package/src/tools/computer.enforcement.test.ts +1 -1
  538. package/src/tools/computer.ts +3 -2
  539. package/src/tools/cron.ts +12 -1
  540. package/src/tools/image-gen.ts +27 -16
  541. package/src/tools/index.ts +8 -0
  542. package/src/tools/job.ts +33 -6
  543. package/src/tools/monitor.ts +41 -2
  544. package/src/tools/skill-discovery.ts +21 -29
  545. package/src/tools/subagent.ts +142 -24
  546. package/src/tools/tool-catalog.generated.ts +6 -6
  547. package/src/tools/ultragoal-ask-guard.ts +10 -3
  548. package/src/utils/herdr-pane.ts +345 -0
  549. package/src/utils/title-generator.ts +2 -0
  550. package/src/web/scrapers/index.ts +6 -4
  551. package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
  552. package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
  553. package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
  554. package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
  555. package/dist/types/runtime/lazy-service.test.d.ts +0 -1
  556. package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
  557. package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
  558. package/dist/types/runtime-mcp/config.test.d.ts +0 -1
  559. package/dist/types/runtime-mcp/http.test.d.ts +0 -1
  560. package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
  561. package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
  562. package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
  563. package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
  564. package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
  565. package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
  566. package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
  567. package/dist/types/sdk/elevation/audit.d.ts +0 -93
  568. package/dist/types/sdk/elevation/capability.d.ts +0 -3
  569. package/dist/types/sdk/elevation/digest.d.ts +0 -72
  570. package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
  571. package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
  572. package/dist/types/sdk/elevation/owner.d.ts +0 -48
  573. package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
  574. package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
  575. package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
  576. package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
  577. package/dist/types/session/auth-broker-config.d.ts +0 -13
  578. package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
  579. package/dist/types/skills/skills.test.d.ts +0 -1
  580. package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
  581. package/dist/types/task/token-log.test.d.ts +0 -1
  582. package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
  583. package/dist/types/tools/descriptors.test.d.ts +0 -1
  584. package/scripts/g005-daemon-smoke.ts +0 -180
  585. package/scripts/g011-daemon-path-smoke.ts +0 -153
  586. package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
  587. package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
  588. package/src/sdk/bus/telegram-cli.ts +0 -212
  589. package/src/sdk/elevation/allowlist.ts +0 -54
  590. package/src/sdk/elevation/audit.ts +0 -208
  591. package/src/sdk/elevation/capability.ts +0 -41
  592. package/src/sdk/elevation/digest.ts +0 -129
  593. package/src/sdk/elevation/dispatch-receipt.ts +0 -184
  594. package/src/sdk/elevation/grant-ledger.ts +0 -1142
  595. package/src/sdk/elevation/owner.ts +0 -109
  596. package/src/session/auth-broker-config.ts +0 -109
  597. /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
  598. /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
  599. /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ import type { NativeExactFileIdentity, NativeExactUnlinkResult, NativeNoReplaceResult } from "@gajae-code/natives";
1
2
  export interface AtomicYamlExpectedPrecondition {
2
3
  path: string;
3
4
  hash: string;
@@ -37,6 +38,8 @@ export type CasRestoreResult = {
37
38
  paths: readonly string[];
38
39
  } | {
39
40
  status: "discarded";
41
+ } | {
42
+ status: "not-restorable";
40
43
  };
41
44
  /**
42
45
  * A receipt intentionally exposes only path-level hashes and opaque revisions.
@@ -55,6 +58,10 @@ export interface AtomicYamlUpdate<T> {
55
58
  export interface AtomicYamlPatchOptions {
56
59
  /** Test seam for deterministic pre-rename and Windows sharing-violation failures. */
57
60
  rename?: (from: string, to: string) => Promise<void>;
61
+ /** Test seam for an identity-checked atomic replacement. */
62
+ exactReplace?: (sourcePath: string, destinationPath: string, expectedSource: NativeExactFileIdentity, expectedDestination: NativeExactFileIdentity) => NativeExactUnlinkResult | Promise<NativeExactUnlinkResult>;
63
+ /** Test seam for an atomic no-replace publication. */
64
+ noReplace?: (sourcePath: string, destinationPath: string) => NativeNoReplaceResult | Promise<NativeNoReplaceResult>;
58
65
  /** Test seam for bounded retry timing. */
59
66
  sleep?: (ms: number) => Promise<void>;
60
67
  /** Test seam for Windows rename retry behavior. */
@@ -69,8 +76,24 @@ export declare class AtomicYamlReplaceError extends Error {
69
76
  readonly configPath: string;
70
77
  readonly attempts: number;
71
78
  readonly cause: unknown;
79
+ readonly preserveTempPath: boolean;
72
80
  readonly code = "ATOMIC_YAML_REPLACE_FAILED";
73
- constructor(configPath: string, attempts: number, cause: unknown);
81
+ constructor(configPath: string, attempts: number, cause: unknown, preserveTempPath?: boolean);
82
+ }
83
+ /**
84
+ * Raised when the LEXICAL config path no longer resolves to the canonical
85
+ * target an operation is about to write: e.g. a `config.yml` symlink was
86
+ * repointed while the operation waited in the per-file queue or ran. The
87
+ * native identity check protects only the previously resolved destination, so
88
+ * without this guard the write would modify an unrelated prior target and
89
+ * report success while the now-active configuration is left unchanged.
90
+ */
91
+ export declare class AtomicYamlRetargetError extends Error {
92
+ readonly lexicalPath: string;
93
+ readonly expectedCanonicalPath: string;
94
+ readonly actualCanonicalPath: string;
95
+ readonly code = "ATOMIC_YAML_RETARGETED";
96
+ constructor(lexicalPath: string, expectedCanonicalPath: string, actualCanonicalPath: string);
74
97
  }
75
98
  /** Set a dotted YAML path, creating object intermediates as needed. */
76
99
  export declare function setByPath(value: Record<string, unknown>, segments: readonly string[], nextValue: unknown): void;
@@ -80,12 +103,49 @@ export declare function deleteByPath(value: Record<string, unknown>, segments: r
80
103
  export declare function atomicYamlPathHash(value: Record<string, unknown>, path: string): string;
81
104
  /** Build patches from current durable YAML while holding the shared queue and file lock. */
82
105
  export declare function applyAtomicYamlPatchesWithCurrent(configPath: string, buildPatches: (current: Readonly<Record<string, unknown>>) => Promise<readonly AtomicYamlPatch[]> | readonly AtomicYamlPatch[], options?: AtomicYamlPatchOptions): Promise<CasReceipt>;
106
+ export interface AtomicYamlConfigTransaction {
107
+ configPath: string;
108
+ root: unknown;
109
+ current: Readonly<Record<string, unknown>>;
110
+ /** True once any write op has durably committed (a later CAS rejection then
111
+ * leaves the target with partial writes, so recovery artifacts must stay). */
112
+ written: boolean;
113
+ applyPatches(patches: readonly AtomicYamlPatch[], options?: AtomicYamlPatchOptions): Promise<CasReceipt>;
114
+ /**
115
+ * Delete top-level keys verbatim, including dotted key names (e.g. a flat
116
+ * `"gjc.ralplan.maxIterations"` key that the patch grammar would otherwise
117
+ * interpret as a nested path). Writes atomically under the same lock.
118
+ */
119
+ removeTopLevelKeys(keys: readonly string[], options?: AtomicYamlPatchOptions): Promise<CasReceipt>;
120
+ /**
121
+ * Apply patches AND delete top-level keys verbatim in a SINGLE atomic
122
+ * write, so an external editor's change cannot land between the two
123
+ * operations (external editors do not participate in the file lock). The
124
+ * returned receipt is not restorable (the deletions are not journaled).
125
+ */
126
+ applyPatchesAndRemoveTopLevelKeys(patches: readonly AtomicYamlPatch[], topLevelKeys: readonly string[], options?: AtomicYamlPatchOptions): Promise<CasReceipt>;
127
+ /**
128
+ * Replace the whole document (used to revert the target when a later
129
+ * verification fails). Writes atomically under the same lock; the returned
130
+ * receipt is not restorable.
131
+ */
132
+ replaceCurrent(next: Readonly<Record<string, unknown>>, options?: AtomicYamlPatchOptions): Promise<CasReceipt>;
133
+ }
134
+ /**
135
+ * Run a caller-owned multi-step mutation under the config file's per-file queue
136
+ * and cross-process lock. The current YAML is read once and exposed as
137
+ * `root`/`current`; the callback may inspect it, decide patches, and apply them
138
+ * (or perform adjacent durable actions such as marker/source transitions)
139
+ * without re-acquiring the lock. A YAML parse failure surfaces before the
140
+ * callback runs, so no migration action can execute against a malformed target.
141
+ */
142
+ export declare function withAtomicYamlConfigTransaction<T>(configPath: string, operation: (transaction: AtomicYamlConfigTransaction) => Promise<T>): Promise<T>;
83
143
  /**
84
144
  * Reserve a FIFO operation for a config file immediately. The patch supplier runs
85
145
  * only when this operation reaches the front of the in-process queue, which lets
86
146
  * Settings debounce/coalesce inside its already-reserved causal slot.
87
147
  */
88
- export declare function enqueueAtomicYamlOperation<T>(configPath: string, operation: (canonicalConfigPath: string) => Promise<T>): Promise<T>;
148
+ export declare function enqueueAtomicYamlOperation<T>(configPath: string, operation: (canonicalConfigPath: string, lexicalConfigPath: string) => Promise<T>): Promise<T>;
89
149
  /**
90
150
  * Reserve an atomic patch slot now, producing patches only after earlier slots
91
151
  * complete. Writers with state-aware merges use {@link reserveAtomicYamlUpdateSlot}.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The current settings/config schema version. A `config.yml` whose
3
+ * `configSchemaVersion` is newer is treated as read-only by Settings migrations
4
+ * (a future schema must not inherit stale keys); the workflow-settings
5
+ * resolver mirrors that guard when deciding whether a migration target is
6
+ * non-publishable (so the retained legacy fallback still applies). Defined in
7
+ * this dependency-light module so the resolver can import it without pulling in
8
+ * the TUI/AI-heavy settings schema.
9
+ */
10
+ export declare const CONFIG_SCHEMA_VERSION = 1;
@@ -45,6 +45,24 @@ export type FileLockGcRemoval = "removed" | "owner_changed" | "missing";
45
45
  * but the reclaim-after-stale scenario the issue describes is now guarded.
46
46
  */
47
47
  export declare function removeFileLockDirForGc(lockDir: string, expected: FileLockOwnerToken): Promise<FileLockGcRemoval>;
48
+ /**
49
+ * @internal
50
+ * READ-ONLY verdict on an EXISTING generic `<file>.lock/` directory that another lock
51
+ * protocol has collided with: is its owner gone, by this protocol's own rules?
52
+ *
53
+ * Exposed so a foreign holder of the same path never has to reimplement this protocol's
54
+ * owner parsing or liveness rules. Reusing them is what makes the two implementations
55
+ * agree: `processStartTime` here is the portable `ps` value that `info.start_time` was
56
+ * written from, so a live owner is proved live rather than compared against a value from a
57
+ * different clock source and then reaped. A live owner is never reported stale by elapsed
58
+ * time alone.
59
+ *
60
+ * Deletion is deliberately NOT offered. This protocol can only re-read an owner token and
61
+ * then unlink a pathname, which a successor can take over in between; a caller that must
62
+ * remove the directory has to do it under an identity-bound primitive that refuses when
63
+ * the object is no longer the one that was judged.
64
+ */
65
+ export declare function genericFileLockDirIsStale(lockDir: string, staleMs: number): Promise<boolean>;
48
66
  /**
49
67
  * Serializes all contenders, including callers in the same process. Because this
50
68
  * API exposes no ownership token, recursive acquisition is indistinguishable
@@ -19,6 +19,8 @@ type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel
19
19
  modelRoles: readonly string[];
20
20
  agentModelOverrides: readonly string[];
21
21
  };
22
+ /** Re-apply vendor-separated delegation (task tool + prompt) after the role layer changed. */
23
+ syncEagerDelegation?: () => Promise<void>;
22
24
  getSessionDefaultModelSelector?: () => string | undefined;
23
25
  recordResumeDefaultModel?: (selector: string | undefined) => void;
24
26
  seedDefaultFallbackResolution?: (activeIndex: number, skips: Array<{
@@ -39,7 +41,7 @@ type ConfiguredModelChainState = {
39
41
  };
40
42
  export interface PrepareModelProfileActivationOptions {
41
43
  session: ModelProfileActivationSession;
42
- modelRegistry: Pick<ModelRegistry, "getModelProfile" | "getModelProfiles" | "getAvailableModelProfileNames" | "getApiKeyForProvider" | "getAll" | "resolveCanonicalModel" | "getCanonicalVariants" | "getCanonicalId"> & Partial<Pick<ModelRegistry, "getAvailable" | "resolveModelByLookupAlias" | "lookupAliasExists" | "clearCanonicalVariant" | "seedCanonicalVariant" | "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "getConfiguredProviderIds">> & {
44
+ modelRegistry: Pick<ModelRegistry, "getModelProfile" | "getModelProfiles" | "getAvailableModelProfileNames" | "getApiKeyForProvider" | "getAll" | "resolveCanonicalModel" | "getCanonicalVariants" | "getCanonicalId"> & Partial<Pick<ModelRegistry, "getAvailable" | "getAvailableForProfileActivation" | "resolveModelByLookupAlias" | "lookupAliasExists" | "clearCanonicalVariant" | "seedCanonicalVariant" | "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "getConfiguredProviderIds">> & {
43
45
  getError?: ModelRegistry["getError"];
44
46
  };
45
47
  settings: Pick<Settings, "get" | "getGlobal" | "getOverride">;
@@ -107,7 +107,7 @@ export declare const ModelsConfigFile: ConfigFile<{
107
107
  authHeader?: boolean | undefined;
108
108
  auth?: "apiKey" | "none" | "oauth" | undefined;
109
109
  discovery?: {
110
- type: "llama.cpp" | "lm-studio" | "models-dev" | "ollama" | "openai-models-list";
110
+ type: "llama.cpp" | "lm-studio" | "models-dev" | "ollama" | "omlx" | "openai-models-list";
111
111
  apiByModelPrefix?: Record<string, "anthropic-messages" | "openai-completions"> | undefined;
112
112
  modelsDevProvider?: string | undefined;
113
113
  } | undefined;
@@ -454,6 +454,12 @@ export declare class ModelRegistry {
454
454
  * This is a fast check that doesn't refresh OAuth tokens.
455
455
  */
456
456
  getAvailable(): Model<Api>[];
457
+ /**
458
+ * Get authenticated models, excluding bundled entries that a fresh provider
459
+ * catalog has positively shown to be unavailable. Bundled entries remain
460
+ * usable until live catalog evidence exists so offline startup is unchanged.
461
+ */
462
+ getAvailableForProfileActivation(): Model<Api>[];
457
463
  getActiveProviders(): ActiveProviderDescriptor[];
458
464
  /**
459
465
  * Check whether auth is configured for a model's provider.
@@ -487,6 +493,7 @@ export declare class ModelRegistry {
487
493
  */
488
494
  getApiKey(model: Model<Api>, sessionId?: string, options?: {
489
495
  credentialSelector?: AuthCredentialSelector;
496
+ preferredCredentialSelector?: AuthCredentialSelector;
490
497
  signal?: AbortSignal;
491
498
  }): Promise<string | undefined>;
492
499
  /**
@@ -494,6 +501,7 @@ export declare class ModelRegistry {
494
501
  */
495
502
  getApiKeyForProvider(provider: string, sessionId?: string, baseUrl?: string, options?: {
496
503
  credentialSelector?: AuthCredentialSelector;
504
+ preferredCredentialSelector?: AuthCredentialSelector;
497
505
  signal?: AbortSignal;
498
506
  }): Promise<string | undefined>;
499
507
  /**
@@ -353,6 +353,7 @@ export declare const ProviderDiscoverySchema: z.ZodObject<{
353
353
  "lm-studio": "lm-studio";
354
354
  "models-dev": "models-dev";
355
355
  ollama: "ollama";
356
+ omlx: "omlx";
356
357
  "openai-models-list": "openai-models-list";
357
358
  }>;
358
359
  apiByModelPrefix: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
@@ -475,6 +476,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
475
476
  "lm-studio": "lm-studio";
476
477
  "models-dev": "models-dev";
477
478
  ollama: "ollama";
479
+ omlx: "omlx";
478
480
  "openai-models-list": "openai-models-list";
479
481
  }>;
480
482
  apiByModelPrefix: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
@@ -103,6 +103,8 @@ type RecordValueDef = {
103
103
  } | {
104
104
  type: "string-enum";
105
105
  values: readonly string[];
106
+ } | {
107
+ type: "credential-selector";
106
108
  };
107
109
  interface RecordDef<T> {
108
110
  type: "record";
@@ -132,6 +134,27 @@ export declare const SETTINGS_SCHEMA: {
132
134
  readonly type: "string";
133
135
  readonly default: undefined;
134
136
  };
137
+ readonly "auth.credentialRankingMode": {
138
+ readonly type: "enum";
139
+ readonly values: readonly ["balanced", "earliest-reset"];
140
+ readonly default: "balanced";
141
+ readonly ui: {
142
+ readonly tab: "providers";
143
+ readonly label: "Credential Ranking";
144
+ readonly description: "Choose balanced distribution or earliest-reset-first OAuth account selection.";
145
+ };
146
+ };
147
+ readonly "auth.credentialPins": {
148
+ readonly type: "record";
149
+ readonly default: Record<string, string>;
150
+ readonly valueSchema: {
151
+ readonly type: "credential-selector";
152
+ };
153
+ };
154
+ readonly "auth.credentialPinStoreIdentity": {
155
+ readonly type: "string";
156
+ readonly default: undefined;
157
+ };
135
158
  readonly "session.directoryMigration": {
136
159
  readonly type: "enum";
137
160
  readonly values: readonly ["copy-retain", "disabled"];
@@ -154,6 +177,12 @@ export declare const SETTINGS_SCHEMA: {
154
177
  readonly description: "SDK-owned prompt deadline; ACP has no separate timeout.";
155
178
  readonly validate: (value: number) => boolean;
156
179
  };
180
+ readonly "sdk.promptMaxRuntimeMs": {
181
+ readonly type: "number";
182
+ readonly default: 21600000;
183
+ readonly description: "Hard maximum runtime for an SDK prompt from acceptance, bounding progress-aware renewals.";
184
+ readonly validate: (value: number) => boolean;
185
+ };
157
186
  readonly "notifications.enabled": {
158
187
  readonly type: "boolean";
159
188
  readonly default: false;
@@ -330,7 +359,7 @@ export declare const SETTINGS_SCHEMA: {
330
359
  readonly ui: {
331
360
  readonly tab: "interaction";
332
361
  readonly label: "Terminal Bell";
333
- readonly description: "Emit a BEL character for local terminal notifications. Windows Terminal may keep BEL silent depending on profile/system sound settings; use completion.notifyCommand for a PowerShell Console.Beep workaround.";
362
+ readonly description: "Emit a BEL character for local terminal notifications. macOS enables this by default unless explicitly disabled. Windows Terminal may keep BEL silent depending on profile/system sound settings; use completion.notifyCommand for a PowerShell Console.Beep workaround.";
334
363
  };
335
364
  };
336
365
  readonly "notifications.bellOnComplete": {
@@ -532,6 +561,11 @@ export declare const SETTINGS_SCHEMA: {
532
561
  readonly default: 1;
533
562
  readonly validate: (value: number) => boolean;
534
563
  };
564
+ readonly "gjc.ultragoal.nudgeBudget": {
565
+ readonly type: "number";
566
+ readonly default: 10;
567
+ readonly validate: (value: number) => boolean;
568
+ };
535
569
  readonly "theme.dark": {
536
570
  readonly type: "string";
537
571
  readonly default: "red-claw";
@@ -1798,6 +1832,15 @@ export declare const SETTINGS_SCHEMA: {
1798
1832
  readonly description: "Show the interactive GitHub star reminder when gh is authenticated";
1799
1833
  };
1800
1834
  };
1835
+ readonly "crashReport.nudge": {
1836
+ readonly type: "boolean";
1837
+ readonly default: true;
1838
+ readonly ui: {
1839
+ readonly tab: "interaction";
1840
+ readonly label: "Crash Report Nudge";
1841
+ readonly description: "At interactive startup, show one rate-limited line when unreported crash signatures exist. Reads local state only; nothing is ever transmitted without the explicit consent flow in `gjc crash report`.";
1842
+ };
1843
+ };
1801
1844
  readonly collapseChangelog: {
1802
1845
  readonly type: "boolean";
1803
1846
  readonly default: false;
@@ -3752,7 +3795,7 @@ export declare const SETTINGS_SCHEMA: {
3752
3795
  readonly ui: {
3753
3796
  readonly tab: "tasks";
3754
3797
  readonly label: "Prefer Task Delegation";
3755
- readonly description: "Encourage the agent to delegate work to subagents unless changes are trivial";
3798
+ readonly description: "Encourage the agent to delegate work to subagents unless changes are trivial (on by default when executor/planner run on a different provider than the default role)";
3756
3799
  };
3757
3800
  };
3758
3801
  readonly "task.simple": {
@@ -3962,13 +4005,35 @@ export declare const SETTINGS_SCHEMA: {
3962
4005
  readonly type: "boolean";
3963
4006
  readonly default: boolean | undefined;
3964
4007
  };
4008
+ readonly "skills.trustProjectSkills": {
4009
+ readonly type: "boolean";
4010
+ readonly ui: {
4011
+ readonly tab: "customization";
4012
+ readonly label: "Trust Project Skills";
4013
+ readonly description: "Load skills from project .gjc/skills, .claude/skills, and .codex/skills. Set to false to ignore project-controlled skills while keeping user skills.";
4014
+ };
4015
+ };
4016
+ readonly "skills.trustUserSkills": {
4017
+ readonly type: "boolean";
4018
+ readonly ui: {
4019
+ readonly tab: "customization";
4020
+ readonly label: "Trust User Skills";
4021
+ readonly description: "Load skills from ~/.gjc/agent/skills (and legacy ~/.gjc/skills / <config>/skills). Set to false to ignore user-installed skills while keeping project skills.";
4022
+ };
4023
+ };
3965
4024
  readonly "skills.enablePiUser": {
3966
4025
  readonly type: "boolean";
3967
- readonly default: boolean | undefined;
4026
+ readonly ui: {
4027
+ readonly tab: "customization";
4028
+ readonly label: "Trust User Skills (legacy)";
4029
+ };
3968
4030
  };
3969
4031
  readonly "skills.enablePiProject": {
3970
4032
  readonly type: "boolean";
3971
- readonly default: boolean | undefined;
4033
+ readonly ui: {
4034
+ readonly tab: "customization";
4035
+ readonly label: "Trust Project Skills (legacy)";
4036
+ };
3972
4037
  };
3973
4038
  readonly "skills.customDirectories": {
3974
4039
  readonly type: "array";
@@ -4313,7 +4378,7 @@ export declare function getPathsForTab(tab: SettingTab): SettingPath[];
4313
4378
  export declare function getType(path: SettingPath): SettingDef["type"];
4314
4379
  /** Get enum values for an enum setting */
4315
4380
  export declare function getEnumValues(path: SettingPath): readonly string[] | undefined;
4316
- export declare const CONFIG_SCHEMA_VERSION = 1;
4381
+ export { CONFIG_SCHEMA_VERSION } from "./config-schema-version";
4317
4382
  export type SettingsSchemaIssue = {
4318
4383
  path: string;
4319
4384
  kind: "unknown" | "invalid" | "coerced" | "pending-migration";
@@ -4549,4 +4614,3 @@ export interface GroupTypeMap {
4549
4614
  notifications: NotificationsSettings;
4550
4615
  }
4551
4616
  export type GroupPrefix = keyof GroupTypeMap;
4552
- export {};
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Settings singleton with sync get/set and background persistence.
3
+ *
4
+ * Usage:
5
+ * import { settings } from "./settings";
6
+ *
7
+ * const enabled = settings.get("compaction.enabled"); // sync read
8
+ * settings.set("theme.dark", "red-claw"); // sync write, saves in background
9
+ *
10
+ * For tests, `Settings.isolated()` seeds explicit user/global settings:
11
+ * const isolated = Settings.isolated({ "compaction.enabled": false });
12
+ */
1
13
  import type { ModelRole } from "../config/model-registry";
2
14
  import { type NotificationSettingsReader, type NotificationSettingsSnapshot } from "../sdk/bus/config";
3
15
  import { AgentStorage } from "../session/agent-storage";
@@ -11,6 +23,25 @@ export * from "./settings-schema";
11
23
  export interface RawSettings {
12
24
  [key: string]: unknown;
13
25
  }
26
+ /**
27
+ * Test-only seams for the config-root workflow migration. Production code
28
+ * never sets these; tests use them to interleave external filesystem changes
29
+ * at exact points of the migration state machine (mirroring
30
+ * `FileLockTestHooks` in file-lock.ts).
31
+ */
32
+ export declare const SettingsMigrationTestHooks: {
33
+ /** Fires after the no-replace backup copy is created and its identity
34
+ * (inode + sha256) has been captured, immediately before the source is
35
+ * re-hashed for the move verification. */
36
+ afterBackupIdentityCaptured?: (backupPath: string) => void | Promise<void>;
37
+ /** Fires after a quarantined backup is verified as this run's file,
38
+ * immediately before the quarantined entry is unlinked. */
39
+ beforeQuarantineRemoval?: (backupPath: string) => void | Promise<void>;
40
+ /** Fires immediately before the project migration's POST-publication marker
41
+ * re-read, after the migrated values already committed: test seams use it
42
+ * to make the marker unreadable so the rollback path is exercised. */
43
+ beforeProjectMarkerMerge?: () => void | Promise<void>;
44
+ };
14
45
  export type SettingsAtomicPatch = {
15
46
  path: SettingPath;
16
47
  op: "set";
@@ -29,6 +60,13 @@ export interface SettingsOptions {
29
60
  inMemory?: boolean;
30
61
  /** Initial overrides */
31
62
  overrides?: Partial<Record<SettingPath, unknown>>;
63
+ /**
64
+ * Read the canonical config.yml from disk but never persist: no DB open,
65
+ * no legacy/config-root/project migrations, no file writes, renames, locks,
66
+ * or mtime changes. Used by read-only inspection surfaces (`gjc customize
67
+ * doctor`). When true, inMemory must be false so config.yml is still read.
68
+ */
69
+ readonly?: boolean;
32
70
  }
33
71
  /** Additional layer setup for {@link Settings.isolated}. */
34
72
  export interface IsolatedSettingsOptions {
@@ -56,6 +94,19 @@ export declare class Settings implements NotificationSettingsReader {
56
94
  cwd: string;
57
95
  agentDir?: string;
58
96
  }): Promise<Settings>;
97
+ /**
98
+ * Load settings for read-only inspection without any persistence side-effects:
99
+ * no DB open, no legacy/config-root/project migrations, no file writes,
100
+ * renames, locks, or mtime changes. Reads the canonical config.yml and
101
+ * discovers/merges project settings exactly like the durable path, but the
102
+ * result is a transient snapshot. Does not affect the global singleton.
103
+ *
104
+ * Used by `gjc customize doctor` to honor the read-only product contract.
105
+ */
106
+ static loadReadonly(options: {
107
+ cwd?: string;
108
+ agentDir?: string;
109
+ }): Promise<Settings>;
59
110
  /**
60
111
  * Create an isolated instance for testing with explicit user/global settings.
61
112
  * Does not affect the global singleton.
@@ -195,6 +246,18 @@ export declare function isSettingsInitialized(): boolean;
195
246
  * @internal
196
247
  */
197
248
  export declare function resetSettingsForTest(): void;
249
+ /**
250
+ * Ensure the one-time legacy workflow settings migrations have run for `cwd`
251
+ * before a workflow runtime resolves settings. The direct CLI commands
252
+ * (`gjc ralplan`, `gjc deep-interview`, `gjc ultragoal`) never initialize
253
+ * Settings, so without this the project `.gjc/settings.json` and config-root
254
+ * `settings.json` workflow keys would silently fall back to defaults after the
255
+ * resolver stopped reading settings.json. No-op when the global Settings
256
+ * singleton is already initialized (session path). Best-effort: a settings
257
+ * load failure must not block the native command, whose resolver falls back to
258
+ * defaults exactly as before.
259
+ */
260
+ export declare function ensureWorkflowSettingsMigrated(cwd: string): Promise<void>;
198
261
  /**
199
262
  * The global settings singleton.
200
263
  * Must call `Settings.init()` before using.
@@ -4,11 +4,37 @@ export interface SkillDiscoverySettings {
4
4
  enableCodexUser?: boolean;
5
5
  enableClaudeUser?: boolean;
6
6
  enableClaudeProject?: boolean;
7
+ /**
8
+ * User-facing trust controls for filesystem-discovered skills. Discovery is
9
+ * on by default: a valid skill placed in a documented project or user
10
+ * location is loaded without extra configuration ceremony. Setting either of
11
+ * these to `false` disables that scope while leaving the other scope (and
12
+ * the `skills.enabled` master switch) intact.
13
+ *
14
+ * `enablePiUser` / `enablePiProject` are deprecated legacy aliases for the
15
+ * same effective setting: an explicitly configured legacy value is honored
16
+ * only when the corresponding trust flag is not configured.
17
+ */
18
+ trustProjectSkills?: boolean;
19
+ trustUserSkills?: boolean;
20
+ /** @deprecated Legacy alias for `trustUserSkills`. */
7
21
  enablePiUser?: boolean;
22
+ /** @deprecated Legacy alias for `trustProjectSkills`. */
8
23
  enablePiProject?: boolean;
9
24
  customDirectories?: string[];
10
25
  ignoredSkills?: string[];
11
26
  includeSkills?: string[];
12
27
  }
28
+ /** Default trust for a skill scope when neither the trust flag nor its legacy alias is configured. */
29
+ export declare const DEFAULT_SKILL_SCOPE_TRUST = true;
30
+ /**
31
+ * Resolve whether a skill scope is trusted, honoring the user-facing trust flag
32
+ * first and the deprecated `enablePiUser` / `enablePiProject` aliases second.
33
+ *
34
+ * Because both settings are optional (`undefined` when unconfigured), an
35
+ * explicitly configured legacy value keeps working, and a fresh install with no
36
+ * configuration resolves to the zero-config default (`true`).
37
+ */
38
+ export declare function resolveSkillScopeTrust(settings: Pick<SkillDiscoverySettings, "trustProjectSkills" | "trustUserSkills" | "enablePiUser" | "enablePiProject">, scope: "project" | "user"): boolean;
13
39
  export declare const DEFAULT_SKILL_DISCOVERY_SETTINGS: SkillDiscoverySettings;
14
40
  export declare const DEFAULT_DISABLED_EXTENSIONS: string[];
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Vendor-separated delegation policy.
3
+ *
4
+ * A model profile that pins worker roles (`executor`, `planner`) to a provider
5
+ * other than the main `default` role exists to move heavy implementation onto
6
+ * that other provider's quota. That only pays off when the main agent actually
7
+ * delegates, and the strong delegation directive is gated behind `task.eager`,
8
+ * whose schema default is `false`. Such a layout therefore used to run
9
+ * everything on the main provider with no signal at all.
10
+ *
11
+ * Vendor separation now implies eager delegation unless `task.eager` is
12
+ * configured explicitly, in which case the user's value always wins.
13
+ */
14
+ import type { ModelProfileDefinition, ModelProfileRole } from "./model-profiles";
15
+ import { type ModelSelectorValue } from "./model-selector-value";
16
+ import type { Settings } from "./settings";
17
+ /** Worker roles whose provider separation expresses delegation intent. */
18
+ export declare const VENDOR_SEPARATION_WORKER_ROLES: readonly ["executor", "planner"];
19
+ export type VendorSeparationWorkerRole = (typeof VENDOR_SEPARATION_WORKER_ROLES)[number];
20
+ export type RoleSelectorMap = Partial<Record<ModelProfileRole, ModelSelectorValue>>;
21
+ /** Worker roles pinned to a provider other than the `default` role's provider. */
22
+ export declare function findVendorSeparatedWorkerRoles(mapping: RoleSelectorMap): VendorSeparationWorkerRole[];
23
+ export interface EagerTaskDelegationInput {
24
+ settings: Settings;
25
+ /** Active profile, when its bindings are not (yet) installed into settings. */
26
+ profile?: ModelProfileDefinition;
27
+ }
28
+ /**
29
+ * Effective role selectors: profile mapping as the baseline, installed settings
30
+ * bindings on top, since profile activation writes into those same settings.
31
+ */
32
+ export declare function collectEffectiveRoleSelectors(input: EagerTaskDelegationInput): RoleSelectorMap;
33
+ export interface EagerTaskDelegation {
34
+ eagerTasks: boolean;
35
+ vendorSeparatedRoles: VendorSeparationWorkerRole[];
36
+ /** Vendor-separated workers that an explicit `task.eager false` keeps unused. */
37
+ suppressedByExplicitSetting: boolean;
38
+ }
39
+ export declare function resolveEagerTaskDelegation(input: EagerTaskDelegationInput): EagerTaskDelegation;
@@ -6,8 +6,18 @@
6
6
  * startup path in main.ts can resolve the channel without pulling in the
7
7
  * updater implementation.
8
8
  */
9
+ import type { Settings } from "./settings";
9
10
  export declare const UPDATE_CHANNELS: readonly ["stable", "nightly"];
10
11
  export type UpdateChannel = (typeof UPDATE_CHANNELS)[number];
11
12
  export declare function isUpdateChannel(value: string): value is UpdateChannel;
12
13
  /** npm dist-tag backing each release channel. `latest` is the stable tag; nightly publishes never move it. */
13
14
  export declare function distTagForChannel(channel: UpdateChannel): string;
15
+ /**
16
+ * Resolve the machine-local update channel: read the user/global layer only (a
17
+ * project `.gjc/config.yml` `startup.updateChannel` override must never pick
18
+ * the global release channel) and fall back to the stable schema default when
19
+ * the global value is unset or invalid. Used by both the `gjc update` command
20
+ * and the startup update check so a nightly notification can always be
21
+ * satisfied by the same default invocation.
22
+ */
23
+ export declare function resolveMachineLocalUpdateChannel(settings: Settings): UpdateChannel;
@@ -2,6 +2,7 @@ import { COORDINATOR_MCP_PROTOCOL_VERSION, COORDINATOR_MCP_SERVER_NAME, COORDINA
2
2
  import type { BrokerDiscovery } from "../sdk/broker/discovery";
3
3
  import { type EnsureBrokerSettings } from "../sdk/broker/ensure";
4
4
  import { SdkClient } from "../sdk/client/client";
5
+ import { SessionRouter, type SessionRouterDeps } from "../sdk/router";
5
6
  import { type CodexTransportFactory } from "./codex-wake-publisher";
6
7
  import { type CoordinatorModelProfileLoader } from "./model-preset";
7
8
  import { type CoordinatorMcpConfig } from "./policy";
@@ -26,7 +27,8 @@ interface JsonRpcResponse {
26
27
  };
27
28
  }
28
29
  interface CoordinatorServices {
29
- connectSdk?: (url: string, token: string) => Promise<SdkClient>;
30
+ connectBroker?: (url: string, token: string) => Promise<SdkClient>;
31
+ routerDeps?: SessionRouterDeps;
30
32
  ensureBroker?: (settings: EnsureBrokerSettings) => Promise<BrokerDiscovery>;
31
33
  readSdkBrokerDiscovery?: (agentDir: string) => Promise<BrokerDiscovery | null>;
32
34
  getAgentDir?: () => string;
@@ -98,6 +100,8 @@ export declare function createCoordinatorMcpServer(options?: CoordinatorMcpServe
98
100
  detail?: string;
99
101
  }>;
100
102
  sessionReaper: SessionReaper;
103
+ router: SessionRouter;
104
+ close: () => Promise<void>;
101
105
  };
102
106
  export declare function handleCoordinatorMcpRequest(request: JsonRpcRequest, options?: LegacyHandlerOptions): Promise<JsonRpcResponse>;
103
107
  export interface PumpCoordinatorOptions {