@gajae-code/coding-agent 0.13.2 → 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 (610) hide show
  1. package/CHANGELOG.md +215 -8
  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 +10 -1
  35. package/dist/types/config/models-config-schema.d.ts +2 -0
  36. package/dist/types/config/settings-schema.d.ts +73 -9
  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 +2 -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/dynamic-theme-text.d.ts +9 -0
  87. package/dist/types/modes/components/gajae-pet-widget.d.ts +6 -28
  88. package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
  89. package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
  90. package/dist/types/modes/components/oauth-selector.d.ts +10 -4
  91. package/dist/types/modes/components/pet-capability.d.ts +7 -21
  92. package/dist/types/modes/components/settings-selector.d.ts +5 -0
  93. package/dist/types/modes/components/status-line/gh.d.ts +6 -2
  94. package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
  95. package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
  96. package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
  97. package/dist/types/modes/interactive-mode.d.ts +1 -0
  98. package/dist/types/modes/theme/defaults/index.d.ts +118 -0
  99. package/dist/types/modes/types.d.ts +1 -0
  100. package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
  101. package/dist/types/runtime-mcp/config.d.ts +9 -0
  102. package/dist/types/runtime-mcp/manager.d.ts +26 -1
  103. package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
  104. package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
  105. package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
  106. package/dist/types/runtime-mcp/protocol.d.ts +278 -0
  107. package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
  108. package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
  109. package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
  110. package/dist/types/runtime-mcp/types.d.ts +102 -10
  111. package/dist/types/sdk/acp/adapter.d.ts +26 -5
  112. package/dist/types/sdk/broker/broker.d.ts +3 -55
  113. package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
  114. package/dist/types/sdk/broker/session-index.d.ts +14 -5
  115. package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
  116. package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
  117. package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
  118. package/dist/types/sdk/bus/config.d.ts +11 -0
  119. package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
  120. package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
  121. package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
  122. package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
  123. package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
  124. package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
  125. package/dist/types/sdk/bus/index.d.ts +85 -99
  126. package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
  127. package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
  128. package/dist/types/sdk/bus/notification-service.d.ts +52 -0
  129. package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
  130. package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
  131. package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
  132. package/dist/types/sdk/bus/session-control.d.ts +25 -1
  133. package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
  134. package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
  135. package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
  136. package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
  137. package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
  138. package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
  139. package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
  140. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
  141. package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
  142. package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
  143. package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
  144. package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
  145. package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
  146. package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
  147. package/dist/types/sdk/cli/rows.d.ts +2 -11
  148. package/dist/types/sdk/cli/session-cli.d.ts +15 -25
  149. package/dist/types/sdk/client/client.d.ts +97 -1
  150. package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
  151. package/dist/types/sdk/host/control/index.d.ts +1 -1
  152. package/dist/types/sdk/host/control/operations.d.ts +18 -5
  153. package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
  154. package/dist/types/sdk/host/host.d.ts +15 -1
  155. package/dist/types/sdk/host/query/handlers.d.ts +5 -0
  156. package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
  157. package/dist/types/sdk/host/session-runtime.d.ts +127 -7
  158. package/dist/types/sdk/host/types.d.ts +1 -1
  159. package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
  160. package/dist/types/sdk/index.d.ts +2 -1
  161. package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
  162. package/dist/types/sdk/lifecycle/client.d.ts +59 -0
  163. package/dist/types/sdk/lifecycle/index.d.ts +3 -0
  164. package/dist/types/sdk/lifecycle/service.d.ts +232 -0
  165. package/dist/types/sdk/mcp/server.d.ts +9 -6
  166. package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
  167. package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
  168. package/dist/types/sdk/prompt-status.d.ts +10 -3
  169. package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
  170. package/dist/types/sdk/receipt-state.d.ts +17 -0
  171. package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
  172. package/dist/types/sdk/router/index.d.ts +1 -0
  173. package/dist/types/sdk/router/session-router.d.ts +152 -0
  174. package/dist/types/sdk/session-list.d.ts +22 -0
  175. package/dist/types/sdk/session-reconnect.d.ts +43 -1
  176. package/dist/types/sdk/session.d.ts +34 -1
  177. package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
  178. package/dist/types/session/account-inventory.d.ts +86 -0
  179. package/dist/types/session/agent-session.d.ts +145 -6
  180. package/dist/types/session/agent-storage.d.ts +10 -0
  181. package/dist/types/session/coordinator-tool-label.d.ts +28 -0
  182. package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
  183. package/dist/types/session/messages.d.ts +1 -1
  184. package/dist/types/session/secure-token-file.d.ts +3 -0
  185. package/dist/types/session/session-manager.d.ts +47 -1
  186. package/dist/types/session/startup-auth-config.d.ts +44 -0
  187. package/dist/types/session/terminal-abort.d.ts +378 -0
  188. package/dist/types/session/yield-queue.d.ts +7 -0
  189. package/dist/types/session-import/claude.d.ts +26 -0
  190. package/dist/types/session-import/codex.d.ts +88 -0
  191. package/dist/types/session-import/command.d.ts +35 -0
  192. package/dist/types/session-import/detect.d.ts +22 -0
  193. package/dist/types/session-import/index.d.ts +7 -0
  194. package/dist/types/session-import/provider-codex.d.ts +22 -0
  195. package/dist/types/session-import/provider-service.d.ts +38 -0
  196. package/dist/types/session-import/redact.d.ts +23 -0
  197. package/dist/types/session-import/service.d.ts +47 -0
  198. package/dist/types/session-import/types.d.ts +120 -0
  199. package/dist/types/setup/paseo/check.d.ts +16 -0
  200. package/dist/types/setup/paseo/install-saga.d.ts +115 -0
  201. package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
  202. package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
  203. package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
  204. package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
  205. package/dist/types/setup/paseo/provider-config.d.ts +35 -0
  206. package/dist/types/setup/paseo/remove.d.ts +14 -0
  207. package/dist/types/setup/paseo/result-types.d.ts +59 -0
  208. package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
  209. package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
  210. package/dist/types/skill-state/active-state.d.ts +5 -1
  211. package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
  212. package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
  213. package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
  214. package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
  215. package/dist/types/slash-commands/types.d.ts +7 -1
  216. package/dist/types/task/executor.d.ts +10 -0
  217. package/dist/types/task/index.d.ts +3 -1
  218. package/dist/types/tools/ask-answer-registry.d.ts +6 -3
  219. package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
  220. package/dist/types/tools/bash.d.ts +2 -6
  221. package/dist/types/tools/browser/attach.d.ts +11 -0
  222. package/dist/types/tools/browser/launch.d.ts +20 -0
  223. package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
  224. package/dist/types/tools/browser/render.d.ts +1 -0
  225. package/dist/types/tools/browser.d.ts +3 -1
  226. package/dist/types/tools/image-gen.d.ts +10 -2
  227. package/dist/types/tools/index.d.ts +8 -0
  228. package/dist/types/tools/monitor.d.ts +1 -1
  229. package/dist/types/tools/skill-discovery.d.ts +8 -1
  230. package/dist/types/tools/subagent.d.ts +2 -0
  231. package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
  232. package/dist/types/utils/herdr-pane.d.ts +76 -0
  233. package/package.json +19 -9
  234. package/scripts/build-binary.ts +2 -1
  235. package/scripts/build-sdk-package-smoke.ts +2 -13
  236. package/scripts/capture-sticky-viewport-showcase.ts +0 -1
  237. package/scripts/compile-args.ts +2 -0
  238. package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
  239. package/scripts/generate-sdk-operation-inventory.ts +28 -0
  240. package/scripts/generate-telegram-baseline-manifest.ts +1 -0
  241. package/scripts/generate-tool-catalog.ts +6 -4
  242. package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
  243. package/src/async/job-manager.ts +352 -17
  244. package/src/async/support.ts +25 -0
  245. package/src/autoresearch/dashboard.ts +28 -13
  246. package/src/capability/index.ts +3 -1
  247. package/src/capability/mcp.ts +6 -0
  248. package/src/capability/types.ts +6 -0
  249. package/src/cli/accounts-cli.ts +395 -0
  250. package/src/cli/args.ts +23 -0
  251. package/src/cli/auth-broker-cli.ts +136 -66
  252. package/src/cli/auth-gateway-cli.ts +94 -70
  253. package/src/cli/config-cli.ts +27 -2
  254. package/src/cli/crash-cli.ts +78 -0
  255. package/src/cli/customize-doctor.ts +1605 -0
  256. package/src/cli/daemon-cli.ts +12 -3
  257. package/src/cli/fast-help.ts +1 -0
  258. package/src/cli/mcp-cli.ts +128 -60
  259. package/src/cli/notify-cli.ts +8 -14
  260. package/src/cli/root-flags.ts +8 -0
  261. package/src/cli/setup-cli.ts +145 -0
  262. package/src/cli/skills-cli.ts +38 -2
  263. package/src/cli/update-cli.ts +167 -12
  264. package/src/cli.ts +4 -0
  265. package/src/commands/accounts.ts +71 -0
  266. package/src/commands/crash.ts +35 -0
  267. package/src/commands/customize.ts +84 -0
  268. package/src/commands/daemon.ts +2 -2
  269. package/src/commands/deep-interview.ts +2 -0
  270. package/src/commands/launch.ts +1 -0
  271. package/src/commands/mcp.ts +12 -7
  272. package/src/commands/ralplan.ts +2 -0
  273. package/src/commands/sdk.ts +65 -32
  274. package/src/commands/setup.ts +5 -0
  275. package/src/commands/skills.ts +14 -4
  276. package/src/commands/ultragoal.ts +10 -1
  277. package/src/commands/update.ts +26 -15
  278. package/src/config/atomic-yaml-patch-worker.ts +57 -0
  279. package/src/config/atomic-yaml-patch.ts +769 -29
  280. package/src/config/config-schema-version.ts +10 -0
  281. package/src/config/file-lock.ts +70 -1
  282. package/src/config/mcp-schema.json +52 -14
  283. package/src/config/model-profile-activation.ts +23 -2
  284. package/src/config/model-profiles.ts +88 -21
  285. package/src/config/model-registry.ts +147 -21
  286. package/src/config/models-config-schema.ts +1 -1
  287. package/src/config/settings-schema.ts +77 -7
  288. package/src/config/settings.ts +4038 -199
  289. package/src/config/skill-settings-defaults.ts +41 -3
  290. package/src/config/task-delegation.ts +87 -0
  291. package/src/config/update-channel.ts +23 -0
  292. package/src/coordinator-mcp/server.ts +377 -308
  293. package/src/crash/index-store.ts +723 -0
  294. package/src/crash/nudge.ts +89 -0
  295. package/src/crash/record-loader.ts +149 -0
  296. package/src/crash/report.ts +551 -0
  297. package/src/crash/sanitize.ts +129 -0
  298. package/src/cursor.ts +36 -10
  299. package/src/customization/import.ts +946 -0
  300. package/src/customization/index.ts +4 -0
  301. package/src/customization/inventory.ts +335 -0
  302. package/src/customization/mutations.ts +141 -0
  303. package/src/customization/types.ts +223 -0
  304. package/src/daemon/control-types.ts +8 -1
  305. package/src/daemon/operator-contract.ts +6 -6
  306. package/src/defaults/gjc/extensions/grok-cli-vendor/src/models/catalog.ts +31 -6
  307. package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
  308. package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
  309. package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
  310. package/src/discovery/claude-hooks.ts +38 -0
  311. package/src/discovery/claude.ts +142 -209
  312. package/src/discovery/codex-hooks.ts +38 -0
  313. package/src/discovery/codex.ts +132 -198
  314. package/src/discovery/helpers.ts +8 -1
  315. package/src/discovery/index.ts +2 -0
  316. package/src/discovery/mcp-compat.ts +234 -0
  317. package/src/discovery/mcp-json.ts +6 -0
  318. package/src/edit/renderer.ts +40 -0
  319. package/src/edit/streaming.ts +4 -2
  320. package/src/exec/bash-executor.ts +24 -20
  321. package/src/export/html/index.ts +51 -2
  322. package/src/extensibility/extensions/loader.ts +9 -1
  323. package/src/extensibility/extensions/runner.ts +17 -4
  324. package/src/extensibility/extensions/types.ts +31 -6
  325. package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
  326. package/src/extensibility/gjc-plugins/installer.ts +9 -5
  327. package/src/extensibility/gjc-plugins/observability.ts +8 -2
  328. package/src/extensibility/gjc-plugins/registry.ts +13 -2
  329. package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
  330. package/src/extensibility/gjc-plugins/schema.ts +222 -39
  331. package/src/extensibility/hooks/loader.ts +154 -10
  332. package/src/extensibility/runtime-skill-discovery.ts +257 -60
  333. package/src/extensibility/skill-management.ts +368 -0
  334. package/src/extensibility/skills.ts +52 -16
  335. package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
  336. package/src/gjc-runtime/launch-worktree.ts +56 -2
  337. package/src/gjc-runtime/linux-proc.ts +7 -1
  338. package/src/gjc-runtime/ralplan-runtime.ts +100 -164
  339. package/src/gjc-runtime/session-state-lock.ts +992 -0
  340. package/src/gjc-runtime/session-state-sidecar.ts +644 -142
  341. package/src/gjc-runtime/state-writer.ts +39 -14
  342. package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
  343. package/src/gjc-runtime/ultragoal-guard.ts +11 -4
  344. package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
  345. package/src/gjc-runtime/workflow-settings.ts +596 -0
  346. package/src/goals/tools/goal-tool.ts +6 -1
  347. package/src/hooks/events.ts +291 -0
  348. package/src/hooks/native-skill-hook.ts +4 -0
  349. package/src/hooks/normalize.ts +369 -0
  350. package/src/hooks/skill-state.ts +165 -46
  351. package/src/internal-urls/docs-index.generated.ts +41 -32
  352. package/src/main.ts +36 -5
  353. package/src/migrate/mcp-mapper.ts +25 -2
  354. package/src/modes/acp/abort-scope.ts +29 -0
  355. package/src/modes/acp/acp-agent.ts +423 -98
  356. package/src/modes/components/assistant-message.ts +6 -1
  357. package/src/modes/components/chrome.ts +4 -3
  358. package/src/modes/components/customization/customization-dashboard.ts +443 -0
  359. package/src/modes/components/customization/import-wizard.ts +372 -0
  360. package/src/modes/components/customization/index.ts +1 -0
  361. package/src/modes/components/dynamic-theme-text.ts +22 -0
  362. package/src/modes/components/gajae-pet-widget.ts +607 -193
  363. package/src/modes/components/irc-sidebar.ts +11 -0
  364. package/src/modes/components/iterm-pet-transport.ts +585 -0
  365. package/src/modes/components/model-selector.ts +1 -6
  366. package/src/modes/components/oauth-selector.ts +277 -86
  367. package/src/modes/components/pet-capability.ts +35 -31
  368. package/src/modes/components/settings-selector.ts +29 -5
  369. package/src/modes/components/status-line/gh.ts +45 -1
  370. package/src/modes/components/status-line/segments.ts +19 -4
  371. package/src/modes/components/tool-status-header.ts +13 -3
  372. package/src/modes/controllers/command-controller.ts +20 -8
  373. package/src/modes/controllers/extension-ui-controller.ts +56 -257
  374. package/src/modes/controllers/input-controller.ts +10 -0
  375. package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
  376. package/src/modes/controllers/selector-controller.ts +238 -77
  377. package/src/modes/controllers/stt-controller.ts +3 -3
  378. package/src/modes/interactive-mode.ts +88 -16
  379. package/src/modes/print-mode.ts +35 -6
  380. package/src/modes/runtime-init.ts +21 -68
  381. package/src/modes/theme/defaults/index.ts +2 -0
  382. package/src/modes/theme/defaults/ouroboros.json +118 -0
  383. package/src/modes/types.ts +1 -0
  384. package/src/modes/utils/injected-user-submission.ts +25 -0
  385. package/src/modes/utils/terminal-bell.ts +15 -1
  386. package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
  387. package/src/prompts/agent-fragments/restricted-bash.md +1 -1
  388. package/src/prompts/agents/critic.md +1 -1
  389. package/src/prompts/system/rlm-research.md +1 -1
  390. package/src/prompts/system/system-prompt.md +0 -2
  391. package/src/prompts/tools/bash.md +7 -1
  392. package/src/prompts/tools/browser.md +1 -1
  393. package/src/prompts/tools/cron.md +6 -6
  394. package/src/prompts/tools/read.md +0 -2
  395. package/src/prompts/tools/skill-discovery.md +4 -2
  396. package/src/runtime-mcp/client.ts +427 -23
  397. package/src/runtime-mcp/config.ts +37 -5
  398. package/src/runtime-mcp/manager-pool.test.ts +56 -0
  399. package/src/runtime-mcp/manager.ts +52 -2
  400. package/src/runtime-mcp/oauth-discovery.ts +13 -0
  401. package/src/runtime-mcp/oauth-flow.ts +46 -1
  402. package/src/runtime-mcp/pool-key.ts +5 -1
  403. package/src/runtime-mcp/pool.test.ts +9 -0
  404. package/src/runtime-mcp/protocol.test.ts +353 -0
  405. package/src/runtime-mcp/protocol.ts +624 -0
  406. package/src/runtime-mcp/scope-config.ts +78 -0
  407. package/src/runtime-mcp/tool-bridge.ts +44 -10
  408. package/src/runtime-mcp/transports/http.ts +84 -13
  409. package/src/runtime-mcp/types.ts +123 -12
  410. package/src/sdk/acp/adapter.ts +328 -97
  411. package/src/sdk/broker/broker.ts +160 -741
  412. package/src/sdk/broker/ensure.ts +9 -1
  413. package/src/sdk/broker/lifecycle.ts +510 -116
  414. package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
  415. package/src/sdk/broker/process-incarnation.ts +19 -0
  416. package/src/sdk/broker/session-index.ts +516 -117
  417. package/src/sdk/broker/startup-failure.ts +28 -5
  418. package/src/sdk/broker/transport.ts +1 -13
  419. package/src/sdk/bus/chat-daemon-cli.ts +4 -2
  420. package/src/sdk/bus/chat-daemon-control.ts +67 -6
  421. package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
  422. package/src/sdk/bus/config.ts +13 -0
  423. package/src/sdk/bus/conversation-store.ts +59 -171
  424. package/src/sdk/bus/daemon-paths.ts +20 -0
  425. package/src/sdk/bus/discord-conversation.ts +2 -0
  426. package/src/sdk/bus/discord-daemon.ts +524 -126
  427. package/src/sdk/bus/discord-live-provider.ts +206 -79
  428. package/src/sdk/bus/existing-thread-readiness.ts +4 -97
  429. package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
  430. package/src/sdk/bus/index.ts +2480 -456
  431. package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
  432. package/src/sdk/bus/lifecycle-commands.ts +2 -2
  433. package/src/sdk/bus/managed-daemon.ts +2 -145
  434. package/src/sdk/bus/notification-service.ts +196 -0
  435. package/src/sdk/bus/operator-runtime.ts +1 -1
  436. package/src/sdk/bus/prompt-reconciliation.ts +24 -15
  437. package/src/sdk/bus/reconciliation-store.ts +553 -24
  438. package/src/sdk/bus/session-control.ts +49 -3
  439. package/src/sdk/bus/slack-conversation.ts +4 -0
  440. package/src/sdk/bus/slack-daemon.ts +733 -134
  441. package/src/sdk/bus/slack-live-provider.ts +65 -15
  442. package/src/sdk/bus/slack-provider.ts +4 -0
  443. package/src/sdk/bus/slack-thread-binding.ts +9 -104
  444. package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
  445. package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
  446. package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
  447. package/src/sdk/bus/telegram-daemon-control.ts +3 -13
  448. package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
  449. package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
  450. package/src/sdk/bus/telegram-daemon.ts +2552 -2280
  451. package/src/sdk/bus/telegram-reference.ts +1 -226
  452. package/src/sdk/bus/telegram-setup.ts +2 -2
  453. package/src/sdk/bus/threaded-render.ts +1 -0
  454. package/src/sdk/bus/topic-registry.ts +279 -146
  455. package/src/sdk/cli/rows.ts +2 -35
  456. package/src/sdk/cli/session-cli.ts +776 -700
  457. package/src/sdk/client/client.ts +892 -1
  458. package/src/sdk/host/control/dispatch.ts +93 -58
  459. package/src/sdk/host/control/index.ts +1 -1
  460. package/src/sdk/host/control/operations.ts +18 -10
  461. package/src/sdk/host/control/runtime-gate.ts +40 -0
  462. package/src/sdk/host/host.ts +63 -12
  463. package/src/sdk/host/query/handlers.ts +66 -7
  464. package/src/sdk/host/reverse-leases.ts +2 -2
  465. package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
  466. package/src/sdk/host/session-runtime.test.ts +2787 -34
  467. package/src/sdk/host/session-runtime.ts +1489 -101
  468. package/src/sdk/host/surface-policy.ts +12 -8
  469. package/src/sdk/host/types.ts +1 -1
  470. package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
  471. package/src/sdk/host/websocket-transport.ts +85 -50
  472. package/src/sdk/index.ts +2 -1
  473. package/src/sdk/lifecycle/broker-client.ts +53 -0
  474. package/src/sdk/lifecycle/client.ts +234 -0
  475. package/src/sdk/lifecycle/index.ts +3 -0
  476. package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
  477. package/src/sdk/lifecycle/service.ts +720 -0
  478. package/src/sdk/mcp/server.ts +226 -188
  479. package/src/sdk/prompt-deadline-lease.ts +55 -0
  480. package/src/sdk/prompt-deadline-manager.ts +148 -0
  481. package/src/sdk/prompt-status.ts +11 -3
  482. package/src/sdk/protocol/operation-inventory.generated.json +272 -129
  483. package/src/sdk/protocol/operation-registry.ts +71 -8
  484. package/src/sdk/receipt-state.ts +43 -0
  485. package/src/sdk/reconciliation-extensions.ts +14 -0
  486. package/src/sdk/router/index.ts +1 -0
  487. package/src/sdk/router/session-router.ts +1658 -0
  488. package/src/sdk/session-list.ts +93 -0
  489. package/src/sdk/session-reconnect.ts +45 -1
  490. package/src/sdk/session.ts +716 -120
  491. package/src/sdk/transport/serve-cli.ts +18 -34
  492. package/src/session/account-inventory.ts +603 -0
  493. package/src/session/agent-session.ts +2873 -559
  494. package/src/session/agent-storage.ts +35 -0
  495. package/src/session/blob-store.ts +32 -1
  496. package/src/session/coordinator-tool-label.ts +40 -0
  497. package/src/session/internal/managed-session-scope.ts +4 -0
  498. package/src/session/internal/managed-session-storage.ts +199 -31
  499. package/src/session/messages.ts +1 -1
  500. package/src/session/secure-token-file.ts +80 -0
  501. package/src/session/session-manager.ts +757 -57
  502. package/src/session/session-storage.ts +25 -16
  503. package/src/session/startup-auth-config.ts +297 -0
  504. package/src/session/terminal-abort.ts +1253 -0
  505. package/src/session/yield-queue.ts +57 -15
  506. package/src/session-import/claude.ts +334 -0
  507. package/src/session-import/codex.ts +1033 -0
  508. package/src/session-import/command.ts +77 -0
  509. package/src/session-import/detect.ts +133 -0
  510. package/src/session-import/index.ts +7 -0
  511. package/src/session-import/provider-codex.ts +327 -0
  512. package/src/session-import/provider-service.ts +457 -0
  513. package/src/session-import/redact.ts +128 -0
  514. package/src/session-import/service.ts +1264 -0
  515. package/src/session-import/types.ts +148 -0
  516. package/src/setup/paseo/check.ts +213 -0
  517. package/src/setup/paseo/install-saga.ts +293 -0
  518. package/src/setup/paseo/json-publisher.ts +263 -0
  519. package/src/setup/paseo/orchestration-preferences.ts +86 -0
  520. package/src/setup/paseo/paseo-ownership.ts +224 -0
  521. package/src/setup/paseo/paseo-setup.ts +253 -0
  522. package/src/setup/paseo/provider-config.ts +139 -0
  523. package/src/setup/paseo/remove.ts +183 -0
  524. package/src/setup/paseo/result-types.ts +79 -0
  525. package/src/setup/paseo/setup-deps.ts +175 -0
  526. package/src/setup/paseo/skills-bridge.ts +260 -0
  527. package/src/skill-state/active-state.ts +21 -11
  528. package/src/slash-commands/acp-builtins.ts +9 -1
  529. package/src/slash-commands/builtin-registry.ts +117 -19
  530. package/src/slash-commands/helpers/credential-switch.ts +143 -0
  531. package/src/slash-commands/helpers/mcp.ts +9 -3
  532. package/src/slash-commands/helpers/usage-report.ts +61 -56
  533. package/src/slash-commands/types.ts +7 -2
  534. package/src/task/executor.ts +30 -11
  535. package/src/task/index.ts +66 -7
  536. package/src/task/render.ts +23 -9
  537. package/src/tools/ask-answer-registry.ts +23 -7
  538. package/src/tools/ask.ts +8 -4
  539. package/src/tools/bash-sleep-advisory.ts +115 -0
  540. package/src/tools/bash.ts +98 -18
  541. package/src/tools/browser/attach.ts +71 -3
  542. package/src/tools/browser/launch.ts +86 -13
  543. package/src/tools/browser/profile-discovery.ts +57 -7
  544. package/src/tools/browser/render.ts +8 -1
  545. package/src/tools/browser.ts +130 -21
  546. package/src/tools/computer.enforcement.test.ts +1 -1
  547. package/src/tools/computer.ts +3 -2
  548. package/src/tools/cron.ts +12 -1
  549. package/src/tools/image-gen.ts +349 -142
  550. package/src/tools/index.ts +8 -0
  551. package/src/tools/job.ts +33 -6
  552. package/src/tools/monitor.ts +41 -2
  553. package/src/tools/skill-discovery.ts +21 -29
  554. package/src/tools/subagent.ts +142 -24
  555. package/src/tools/todo-contract.ts +55 -3
  556. package/src/tools/todo-write.ts +4 -3
  557. package/src/tools/tool-catalog.generated.ts +6 -6
  558. package/src/tools/ultragoal-ask-guard.ts +10 -3
  559. package/src/utils/herdr-pane.ts +345 -0
  560. package/src/utils/title-generator.ts +2 -0
  561. package/src/web/scrapers/index.ts +6 -4
  562. package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
  563. package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
  564. package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
  565. package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
  566. package/dist/types/runtime/lazy-service.test.d.ts +0 -1
  567. package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
  568. package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
  569. package/dist/types/runtime-mcp/config.test.d.ts +0 -1
  570. package/dist/types/runtime-mcp/http.test.d.ts +0 -1
  571. package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
  572. package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
  573. package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
  574. package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
  575. package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
  576. package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
  577. package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
  578. package/dist/types/sdk/elevation/audit.d.ts +0 -93
  579. package/dist/types/sdk/elevation/capability.d.ts +0 -3
  580. package/dist/types/sdk/elevation/digest.d.ts +0 -72
  581. package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
  582. package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
  583. package/dist/types/sdk/elevation/owner.d.ts +0 -48
  584. package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
  585. package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
  586. package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
  587. package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
  588. package/dist/types/session/auth-broker-config.d.ts +0 -13
  589. package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
  590. package/dist/types/skills/skills.test.d.ts +0 -1
  591. package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
  592. package/dist/types/task/token-log.test.d.ts +0 -1
  593. package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
  594. package/dist/types/tools/descriptors.test.d.ts +0 -1
  595. package/scripts/g005-daemon-smoke.ts +0 -180
  596. package/scripts/g011-daemon-path-smoke.ts +0 -153
  597. package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
  598. package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
  599. package/src/sdk/bus/telegram-cli.ts +0 -212
  600. package/src/sdk/elevation/allowlist.ts +0 -54
  601. package/src/sdk/elevation/audit.ts +0 -208
  602. package/src/sdk/elevation/capability.ts +0 -41
  603. package/src/sdk/elevation/digest.ts +0 -129
  604. package/src/sdk/elevation/dispatch-receipt.ts +0 -184
  605. package/src/sdk/elevation/grant-ledger.ts +0 -1142
  606. package/src/sdk/elevation/owner.ts +0 -109
  607. package/src/session/auth-broker-config.ts +0 -109
  608. /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
  609. /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
  610. /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
@@ -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 const CONFIG_SCHEMA_VERSION = 1;
@@ -260,6 +260,27 @@ async function removeStaleLockForAcquire(lockPath: string, snapshot: LockStaleSn
260
260
  }
261
261
  }
262
262
 
263
+ /**
264
+ * @internal
265
+ * READ-ONLY verdict on an EXISTING generic `<file>.lock/` directory that another lock
266
+ * protocol has collided with: is its owner gone, by this protocol's own rules?
267
+ *
268
+ * Exposed so a foreign holder of the same path never has to reimplement this protocol's
269
+ * owner parsing or liveness rules. Reusing them is what makes the two implementations
270
+ * agree: `processStartTime` here is the portable `ps` value that `info.start_time` was
271
+ * written from, so a live owner is proved live rather than compared against a value from a
272
+ * different clock source and then reaped. A live owner is never reported stale by elapsed
273
+ * time alone.
274
+ *
275
+ * Deletion is deliberately NOT offered. This protocol can only re-read an owner token and
276
+ * then unlink a pathname, which a successor can take over in between; a caller that must
277
+ * remove the directory has to do it under an identity-bound primitive that refuses when
278
+ * the object is no longer the one that was judged.
279
+ */
280
+ export async function genericFileLockDirIsStale(lockDir: string, staleMs: number): Promise<boolean> {
281
+ return (await staleLockSnapshot(lockDir, staleMs)).stale;
282
+ }
283
+
263
284
  async function tryAcquireLock(
264
285
  lockPath: string,
265
286
  ownerHostId?: string,
@@ -310,6 +331,51 @@ async function releaseLock(lockPath: string, owner: FileLockOwnerToken): Promise
310
331
  const outcome = await removeFileLockDirForGc(lockPath, owner);
311
332
  if (outcome !== "removed") throw new Error(`Failed to release file lock: ${outcome}.`);
312
333
  }
334
+ /**
335
+ * Bounded, actionable description of who holds `lockPath` at exhaustion time.
336
+ * Never a stealing authority: purely diagnostic, read once after the last retry.
337
+ */
338
+ async function lockHolderDescription(lockPath: string): Promise<string> {
339
+ try {
340
+ const info = await readLockInfo(lockPath);
341
+ if (info) {
342
+ // A lock record carrying a foreign owner_host_id belongs to another
343
+ // machine (shared-volume topic registry): its pid is meaningful only
344
+ // on that host, so probing the same numeric pid here could mislabel a
345
+ // coincident local process as the holder. Report the owner host with
346
+ // unknown liveness instead.
347
+ if (info.owner_host_id !== undefined) {
348
+ return (
349
+ `held by pid ${info.pid} on host ${info.owner_host_id} (liveness unknown from this host)` +
350
+ ` since ${new Date(info.timestamp).toISOString()}`
351
+ );
352
+ }
353
+ // Same-host holder: use the full liveness proof (pid alive AND, when the
354
+ // record carries a start_time, the start-time identity match) so a dead
355
+ // holder whose pid was already reused is not mislabeled "(live)".
356
+ const alive = ownerIsAlive(info);
357
+ return (
358
+ `held by pid ${info.pid}` +
359
+ (alive
360
+ ? " (live)"
361
+ : ownerLiveness(info.pid) === "dead"
362
+ ? " (dead but not reaped)"
363
+ : " (liveness unknown)") +
364
+ ` since ${new Date(info.timestamp).toISOString()}`
365
+ );
366
+ }
367
+ try {
368
+ await fs.stat(path.join(lockPath, "info"));
369
+ return "held by an owner whose metadata is not yet readable";
370
+ } catch (error) {
371
+ if (!isEnoent(error)) throw error;
372
+ }
373
+ return "held by an unrecognized owner record";
374
+ } catch (error) {
375
+ return `held by an unreadable owner (${(error as Error).message})`;
376
+ }
377
+ }
378
+
313
379
  async function acquireLock(filePath: string, options: FileLockOptions = {}): Promise<() => Promise<void>> {
314
380
  if (options.ownerHostId !== undefined && !options.ownerHostId) throw new Error("ownerHostId must be non-empty");
315
381
  const opts = { ...DEFAULT_OPTIONS, ...options };
@@ -335,7 +401,10 @@ async function acquireLock(filePath: string, options: FileLockOptions = {}): Pro
335
401
  opts.signal.removeEventListener("abort", onAbort);
336
402
  }
337
403
  }
338
- throw new Error(`Failed to acquire lock for ${filePath} after ${opts.retries} attempts`);
404
+ throw new Error(
405
+ `Failed to acquire lock for ${filePath} after ${opts.retries} attempts: ${await lockHolderDescription(lockPath)} (${lockPath}); ` +
406
+ `a live owner is never displaced — if this is an SDK broker (gjc sdk status), it must finish or be stopped before retrying`,
407
+ );
339
408
  }
340
409
 
341
410
  /**
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/packages/coding-agent/src/config/mcp-schema.json",
4
4
  "title": "GJC MCP configuration",
5
- "description": "Schema for stored MCP server definitions in mcp.json, .mcp.json, .gjc/mcp.json, and ~/.gjc/agent/mcp.json. Normal standalone gjc sessions do not consume gjc mcp registrations as runtime tools today.",
5
+ "description": "Schema for stored MCP server definitions in mcp.json, .mcp.json, .gjc/mcp.json, and ~/.gjc/agent/mcp.json. Ordinary standalone gjc sessions consume enabled registrations at startup (conventional autoload); --no-mcp opts a session out.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "properties": {
@@ -40,11 +40,16 @@
40
40
  "authConfig": {
41
41
  "type": "object",
42
42
  "additionalProperties": false,
43
- "required": ["type"],
43
+ "required": [
44
+ "type"
45
+ ],
44
46
  "properties": {
45
47
  "type": {
46
48
  "type": "string",
47
- "enum": ["oauth", "apikey"],
49
+ "enum": [
50
+ "oauth",
51
+ "apikey"
52
+ ],
48
53
  "description": "Auth strategy understood by GJC."
49
54
  },
50
55
  "credentialId": {
@@ -98,11 +103,14 @@
98
103
  },
99
104
  "autoload": {
100
105
  "type": "boolean",
101
- "description": "Whether an explicit runtime MCP consumer should connect this server automatically when that consumer starts (default: true). Normal standalone gjc, gjc --tmux, and print-mode sessions do not consume gjc mcp registrations today; false keeps the server configured for consumers that support explicit connection."
106
+ "description": "Whether an explicit runtime MCP consumer should connect this server automatically when that consumer starts (default: true). Ordinary standalone gjc, gjc --tmux, and print-mode sessions honor autoload for conventional registrations; false keeps the server configured for on-demand /mcp connection, and --no-mcp opts a session out."
102
107
  },
103
108
  "sharing": {
104
109
  "type": "string",
105
- "enum": ["per-session", "shared"],
110
+ "enum": [
111
+ "per-session",
112
+ "shared"
113
+ ],
106
114
  "default": "per-session",
107
115
  "description": "MCP connection pool identity mode; W2 defaults to one connection per session."
108
116
  },
@@ -111,6 +119,16 @@
111
119
  "exclusiveMinimum": 0,
112
120
  "description": "Connection timeout in milliseconds."
113
121
  },
122
+ "protocol": {
123
+ "type": "string",
124
+ "enum": [
125
+ "auto",
126
+ "2026-07-28",
127
+ "legacy"
128
+ ],
129
+ "default": "auto",
130
+ "description": "Protocol preference for remote (http/sse) servers: auto negotiates MCP 2026-07-28 (stateless) first with a bounded observable legacy fallback; 2026-07-28 is strict modern-only; legacy forces the bounded compatibility handshake. Ignored by stdio servers."
131
+ },
114
132
  "auth": {
115
133
  "$ref": "#/$defs/authConfig"
116
134
  },
@@ -127,11 +145,15 @@
127
145
  "$ref": "#/$defs/serverBase"
128
146
  },
129
147
  {
130
- "required": ["command"],
148
+ "required": [
149
+ "command"
150
+ ],
131
151
  "properties": {
132
152
  "type": {
133
153
  "type": "string",
134
- "enum": ["stdio"],
154
+ "enum": [
155
+ "stdio"
156
+ ],
135
157
  "description": "Default transport when omitted."
136
158
  },
137
159
  "command": {
@@ -160,7 +182,9 @@
160
182
  }
161
183
  },
162
184
  "not": {
163
- "required": ["url"]
185
+ "required": [
186
+ "url"
187
+ ]
164
188
  }
165
189
  }
166
190
  ]
@@ -173,11 +197,16 @@
173
197
  "$ref": "#/$defs/serverBase"
174
198
  },
175
199
  {
176
- "required": ["type", "url"],
200
+ "required": [
201
+ "type",
202
+ "url"
203
+ ],
177
204
  "properties": {
178
205
  "type": {
179
206
  "type": "string",
180
- "enum": ["http"],
207
+ "enum": [
208
+ "http"
209
+ ],
181
210
  "description": "Streamable HTTP transport."
182
211
  },
183
212
  "url": {
@@ -191,7 +220,9 @@
191
220
  }
192
221
  },
193
222
  "not": {
194
- "required": ["command"]
223
+ "required": [
224
+ "command"
225
+ ]
195
226
  }
196
227
  }
197
228
  ]
@@ -204,11 +235,16 @@
204
235
  "$ref": "#/$defs/serverBase"
205
236
  },
206
237
  {
207
- "required": ["type", "url"],
238
+ "required": [
239
+ "type",
240
+ "url"
241
+ ],
208
242
  "properties": {
209
243
  "type": {
210
244
  "type": "string",
211
- "enum": ["sse"],
245
+ "enum": [
246
+ "sse"
247
+ ],
212
248
  "description": "Legacy SSE transport kept for compatibility. Prefer http for new configs."
213
249
  },
214
250
  "url": {
@@ -222,7 +258,9 @@
222
258
  }
223
259
  },
224
260
  "not": {
225
- "required": ["command"]
261
+ "required": [
262
+ "command"
263
+ ]
226
264
  }
227
265
  }
228
266
  ]
@@ -1,5 +1,6 @@
1
1
  import { ThinkingLevel } from "@gajae-code/agent-core";
2
2
  import type { Api, Model } from "@gajae-code/ai/core";
3
+ import { logger } from "@gajae-code/utils";
3
4
  import type { AgentSession, DefaultFallbackRuntimeState } from "../session/agent-session";
4
5
  import { clampExplicitThinkingLevelForModel, formatClampedModelSelector } from "../thinking";
5
6
  import { validateModelProfileName } from "./model-profile-contract";
@@ -48,6 +49,8 @@ type ModelProfileActivationSession = Pick<
48
49
  clearProfileInstalledOverrides?: () => void;
49
50
  /** Current profile-installed override keys, for deriving the activation base. */
50
51
  getProfileInstalledOverrideKeys?: () => { modelRoles: readonly string[]; agentModelOverrides: readonly string[] };
52
+ /** Re-apply vendor-separated delegation (task tool + prompt) after the role layer changed. */
53
+ syncEagerDelegation?: () => Promise<void>;
51
54
  getSessionDefaultModelSelector?: () => string | undefined;
52
55
  recordResumeDefaultModel?: (selector: string | undefined) => void;
53
56
  seedDefaultFallbackResolution?: (activeIndex: number, skips: Array<{ selector: string; reason: string }>) => void;
@@ -92,6 +95,7 @@ export interface PrepareModelProfileActivationOptions {
92
95
  Pick<
93
96
  ModelRegistry,
94
97
  | "getAvailable"
98
+ | "getAvailableForProfileActivation"
95
99
  | "resolveModelByLookupAlias"
96
100
  | "lookupAliasExists"
97
101
  | "clearCanonicalVariant"
@@ -572,7 +576,9 @@ function rewriteSelectorForProxy(
572
576
  const proxyModels = allModels.filter(model => model.provider === proxyProvider);
573
577
  if (slash < 0) {
574
578
  if (proxyMode === "fallback") return selector;
575
- const matches = proxyModels.filter(model => model.id === baseSelector);
579
+ const exactMatches = proxyModels.filter(model => model.id === baseSelector);
580
+ const finalSegmentMatches = proxyModels.filter(model => model.id.split("/").at(-1) === baseSelector);
581
+ const matches = exactMatches.length > 0 ? exactMatches : finalSegmentMatches;
576
582
  if (matches.length !== 1) {
577
583
  throw new Error(
578
584
  `Configured proxy "${proxyProvider}" does not expose an unambiguous model for "${baseSelector}"`,
@@ -950,7 +956,10 @@ export async function prepareModelProfileActivation(
950
956
  );
951
957
  }
952
958
 
953
- const availableModels = options.modelRegistry.getAvailable?.() ?? options.modelRegistry.getAll();
959
+ const availableModels =
960
+ options.modelRegistry.getAvailableForProfileActivation?.() ??
961
+ options.modelRegistry.getAvailable?.() ??
962
+ options.modelRegistry.getAll();
954
963
  let bindings = resolveProfileBindings(profile);
955
964
  if (missingProviders.length > 0 && alternativeGroups.length > 0) {
956
965
  bindings = rewriteBindingsProviders(bindings, new Set(authenticatedProviders), alternativeGroups);
@@ -1296,6 +1305,18 @@ export async function applyPreparedModelProfileActivation(
1296
1305
  }
1297
1306
  throw error;
1298
1307
  }
1308
+ // The installed role layer decides whether this profile is vendor-separated,
1309
+ // so delegation must be re-applied to the live session rather than only to
1310
+ // sessions started after activation. Activation itself already succeeded; a
1311
+ // failed refresh must not roll it back.
1312
+ try {
1313
+ await prepared.session.syncEagerDelegation?.();
1314
+ } catch (error) {
1315
+ logger.warn("Failed to sync eager delegation after model profile activation", {
1316
+ profile: prepared.profileName,
1317
+ error: error instanceof Error ? error.message : String(error),
1318
+ });
1319
+ }
1299
1320
  }
1300
1321
 
1301
1322
  export interface MaterializeModelProfileForDeletionResult {
@@ -106,6 +106,13 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
106
106
  critic: "opencode-go/mimo-v2.5-pro",
107
107
  architect: "opencode-go/deepseek-v4-pro",
108
108
  }),
109
+ profile("commandcode-goat", ["commandcode-goat"], {
110
+ default: "commandcode-goat/zai-org/GLM-5.3",
111
+ executor: "commandcode-goat/deepseek/deepseek-v4-flash",
112
+ planner: "commandcode-goat/moonshotai/Kimi-K3",
113
+ critic: "commandcode-goat/zai-org/GLM-5.2",
114
+ architect: "commandcode-goat/deepseek/deepseek-v4-pro",
115
+ }),
109
116
  profile("open-weights-glm", [], {
110
117
  default: "glm-5.2:medium",
111
118
  executor: "glm-5.2:low",
@@ -134,6 +141,27 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
134
141
  critic: "gpt-5.6-luna:xhigh",
135
142
  architect: "gpt-5.6-luna:xhigh",
136
143
  }),
144
+ profile("open-weights-spark", [], {
145
+ default: "muse-spark-1.2:medium",
146
+ executor: "muse-spark-1.2:low",
147
+ planner: "muse-spark-1.2:high",
148
+ critic: "muse-spark-1.2:high",
149
+ architect: "muse-spark-1.2:xhigh",
150
+ }),
151
+ profile("open-weights-spark-deepseek", [], {
152
+ default: "muse-spark-1.2:medium",
153
+ executor: "deepseek-v4-flash:high",
154
+ planner: "muse-spark-1.2:high",
155
+ critic: "muse-spark-1.2:high",
156
+ architect: "muse-spark-1.2:xhigh",
157
+ }),
158
+ profile("open-weights-spark-luna", [], {
159
+ default: "muse-spark-1.2:medium",
160
+ executor: "gpt-5.6-luna:high",
161
+ planner: "muse-spark-1.2:high",
162
+ critic: "muse-spark-1.2:high",
163
+ architect: "muse-spark-1.2:xhigh",
164
+ }),
137
165
  profile("open-weights-glm-deepseek", [], {
138
166
  default: "glm-5.2:medium",
139
167
  executor: "deepseek-v4-flash:high",
@@ -170,11 +198,11 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
170
198
  architect: "gpt-5.6-luna:xhigh",
171
199
  }),
172
200
  profile("claude-opus", ["anthropic"], {
173
- default: "anthropic/claude-opus-5:xhigh",
201
+ default: ["anthropic/claude-opus-5:xhigh", "anthropic/claude-opus-4-6:xhigh"],
174
202
  executor: "anthropic/claude-sonnet-5",
175
- planner: "anthropic/claude-opus-5:low",
176
- critic: "anthropic/claude-opus-5:high",
177
- architect: "anthropic/claude-opus-5:xhigh",
203
+ planner: ["anthropic/claude-opus-5:low", "anthropic/claude-opus-4-6:low"],
204
+ critic: ["anthropic/claude-opus-5:high", "anthropic/claude-opus-4-6:high"],
205
+ architect: ["anthropic/claude-opus-5:xhigh", "anthropic/claude-opus-4-6:xhigh"],
178
206
  }),
179
207
  profile("claude-fable", ["anthropic"], {
180
208
  default: "anthropic/claude-fable-5:xhigh",
@@ -184,25 +212,25 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
184
212
  architect: "anthropic/claude-fable-5:xhigh",
185
213
  }),
186
214
  profile("glm-eco", ["zai"], {
187
- default: "zai/glm-5.2:low",
188
- executor: "zai/glm-5.2:minimal",
189
- planner: "zai/glm-5.2:low",
190
- critic: "zai/glm-5.2:medium",
191
- architect: "zai/glm-5.2:high",
215
+ default: "zai/glm-5.3:low",
216
+ executor: "zai/glm-5.3:low",
217
+ planner: "zai/glm-5.3:low",
218
+ critic: "zai/glm-5.3:high",
219
+ architect: "zai/glm-5.3:high",
192
220
  }),
193
221
  profile("glm-medium", ["zai"], {
194
- default: "zai/glm-5.2:medium",
195
- executor: "zai/glm-5.2:low",
196
- planner: "zai/glm-5.2:medium",
197
- critic: "zai/glm-5.2:high",
198
- architect: "zai/glm-5.2:xhigh",
222
+ default: "zai/glm-5.3:high",
223
+ executor: "zai/glm-5.3:low",
224
+ planner: "zai/glm-5.3:high",
225
+ critic: "zai/glm-5.3:high",
226
+ architect: "zai/glm-5.3:max",
199
227
  }),
200
228
  profile("glm-pro", ["zai"], {
201
- default: "zai/glm-5.2:xhigh",
202
- executor: "zai/glm-5.2:medium",
203
- planner: "zai/glm-5.2:high",
204
- critic: "zai/glm-5.2:xhigh",
205
- architect: "zai/glm-5.2:xhigh",
229
+ default: "zai/glm-5.3:max",
230
+ executor: "zai/glm-5.3:high",
231
+ planner: "zai/glm-5.3:high",
232
+ critic: "zai/glm-5.3:max",
233
+ architect: "zai/glm-5.3:max",
206
234
  }),
207
235
  profile("kimi-coding-plan-eco", ["kimi-code"], {
208
236
  default: "kimi-code/k3:low",
@@ -279,7 +307,7 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
279
307
  }),
280
308
  profile("grok-45-eco", ["xai"], {
281
309
  default: "xai/grok-4.5:low",
282
- executor: "xai/grok-4.5:minimal",
310
+ executor: "xai/grok-4.5:low",
283
311
  planner: "xai/grok-4.5:low",
284
312
  critic: "xai/grok-4.5:medium",
285
313
  architect: "xai/grok-4.5:high",
@@ -298,6 +326,27 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
298
326
  critic: "xai/grok-4.5:high",
299
327
  architect: "xai/grok-4.5:high",
300
328
  }),
329
+ profile("grok-46-eco", ["xai"], {
330
+ default: "xai/grok-4.6:low",
331
+ executor: "xai/grok-4.6:low",
332
+ planner: "xai/grok-4.6:low",
333
+ critic: "xai/grok-4.6:medium",
334
+ architect: "xai/grok-4.6:high",
335
+ }),
336
+ profile("grok-46-medium", ["xai"], {
337
+ default: "xai/grok-4.6:medium",
338
+ executor: "xai/grok-4.6:low",
339
+ planner: "xai/grok-4.6:medium",
340
+ critic: "xai/grok-4.6:high",
341
+ architect: "xai/grok-4.6:high",
342
+ }),
343
+ profile("grok-46-pro", ["xai"], {
344
+ default: "xai/grok-4.6:xhigh",
345
+ executor: "xai/grok-4.6:medium",
346
+ planner: "xai/grok-4.6:high",
347
+ critic: "xai/grok-4.6:xhigh",
348
+ architect: "xai/grok-4.6:xhigh",
349
+ }),
301
350
  profile("grok-build-pro", ["grok-build"], {
302
351
  default: "grok-build/grok-composer-2.5-fast",
303
352
  executor: "grok-build/grok-build",
@@ -437,6 +486,7 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
437
486
  "codex-pro": { displayName: "Codex Pro", providerGroup: "CODEX" },
438
487
  lunamaxxing: { displayName: "LunaMaxxing", providerGroup: "CODEX" },
439
488
  opencodego: { displayName: "OpenCodeGo", providerGroup: "OPENCODEGO" },
489
+ "commandcode-goat": { displayName: "Command Code GOAT", providerGroup: "COMMAND CODE GOAT" },
440
490
  "open-weights-glm": { displayName: "GLM", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
441
491
  "open-weights-deepseek": {
442
492
  displayName: "DeepSeek",
@@ -444,6 +494,15 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
444
494
  },
445
495
  "open-weights-kimi": { displayName: "Kimi", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
446
496
  "open-weights-luna": { displayName: "Luna", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
497
+ "open-weights-spark": { displayName: "Muse Spark", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
498
+ "open-weights-spark-deepseek": {
499
+ displayName: "Muse Spark + DeepSeek",
500
+ providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
501
+ },
502
+ "open-weights-spark-luna": {
503
+ displayName: "Muse Spark + Luna",
504
+ providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
505
+ },
447
506
  "open-weights-glm-deepseek": {
448
507
  displayName: "GLM + DeepSeek",
449
508
  providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
@@ -481,6 +540,9 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
481
540
  "grok-45-eco": { displayName: "Grok 4.5 Eco", providerGroup: "GROK" },
482
541
  "grok-45-medium": { displayName: "Grok 4.5 Medium", providerGroup: "GROK" },
483
542
  "grok-45-pro": { displayName: "Grok 4.5 Pro", providerGroup: "GROK" },
543
+ "grok-46-eco": { displayName: "Grok 4.6 Eco", providerGroup: "GROK" },
544
+ "grok-46-medium": { displayName: "Grok 4.6 Medium", providerGroup: "GROK" },
545
+ "grok-46-pro": { displayName: "Grok 4.6 Pro", providerGroup: "GROK" },
484
546
  "grok-build-pro": { displayName: "Grok Build Pro", providerGroup: "GROK" },
485
547
  "cursor-eco": { displayName: "Cursor Eco", providerGroup: "CURSOR" },
486
548
  "cursor-medium": { displayName: "Cursor Medium", providerGroup: "CURSOR" },
@@ -501,6 +563,7 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
501
563
  const PROFILE_GROUP_ORDER = [
502
564
  "CODEX",
503
565
  "OPENCODEGO",
566
+ "COMMAND CODE GOAT",
504
567
  "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
505
568
  "CLAUDE",
506
569
  "GLM",
@@ -518,6 +581,9 @@ const OPEN_WEIGHT_PROFILE_ORDER = [
518
581
  "open-weights-deepseek",
519
582
  "open-weights-kimi",
520
583
  "open-weights-luna",
584
+ "open-weights-spark",
585
+ "open-weights-spark-deepseek",
586
+ "open-weights-spark-luna",
521
587
  "open-weights-glm-deepseek",
522
588
  "open-weights-kimi-deepseek",
523
589
  "open-weights-kimi-glm",
@@ -530,13 +596,14 @@ const PROFILE_RECOMMENDATIONS: Record<string, string> = {
530
596
  "openai-codex": "codex-medium",
531
597
  anthropic: "claude-opus",
532
598
  "opencode-go": "opencodego",
599
+ "commandcode-goat": "commandcode-goat",
533
600
  zai: "glm-medium",
534
601
  "kimi-code": "kimi-coding-plan-medium",
535
602
  xiaomi: "mimo-medium",
536
603
  "xiaomi-token-plan-sgp": "mimo-medium",
537
604
  "xiaomi-token-plan-ams": "mimo-medium",
538
605
  "xiaomi-token-plan-cn": "mimo-medium",
539
- xai: "grok-medium",
606
+ xai: "grok-46-medium",
540
607
  "grok-build": "grok-build-pro",
541
608
  cursor: "cursor-medium",
542
609
  "minimax-code": "minimax-medium",