@gajae-code/coding-agent 0.10.2 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/CHANGELOG.md +58 -2
  2. package/dist/types/append-only-mode.d.ts +1 -1
  3. package/dist/types/async/job-manager.d.ts +46 -7
  4. package/dist/types/cli/args.d.ts +4 -5
  5. package/dist/types/cli/daemon-cli.d.ts +12 -1
  6. package/dist/types/cli/notify-cli.d.ts +21 -1
  7. package/dist/types/cli.d.ts +3 -0
  8. package/dist/types/commands/daemon.d.ts +39 -0
  9. package/dist/types/commands/launch.d.ts +3 -0
  10. package/dist/types/commands/notify.d.ts +28 -1
  11. package/dist/types/commands/sdk.d.ts +33 -0
  12. package/dist/types/config/atomic-yaml-patch.d.ts +85 -0
  13. package/dist/types/config/model-profile-activation.d.ts +35 -15
  14. package/dist/types/config/model-profiles.d.ts +11 -5
  15. package/dist/types/config/model-registry.d.ts +3 -3
  16. package/dist/types/config/model-resolver.d.ts +39 -6
  17. package/dist/types/config/model-selector-value.d.ts +17 -0
  18. package/dist/types/config/models-config-schema.d.ts +10 -6
  19. package/dist/types/config/settings-schema.d.ts +133 -6
  20. package/dist/types/config/settings.d.ts +63 -35
  21. package/dist/types/coordinator-mcp/model-preset.d.ts +7 -6
  22. package/dist/types/coordinator-mcp/server.d.ts +6 -49
  23. package/dist/types/daemon/builtin.d.ts +6 -5
  24. package/dist/types/daemon/control-types.d.ts +1 -1
  25. package/dist/types/discovery/mcp-json.d.ts +12 -1
  26. package/dist/types/extensibility/custom-tools/types.d.ts +1 -1
  27. package/dist/types/extensibility/extensions/compact-handler.d.ts +4 -2
  28. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +2 -2
  29. package/dist/types/extensibility/extensions/loader.d.ts +10 -1
  30. package/dist/types/extensibility/extensions/runner.d.ts +3 -3
  31. package/dist/types/extensibility/extensions/types.d.ts +141 -16
  32. package/dist/types/extensibility/hooks/types.d.ts +1 -1
  33. package/dist/types/gjc-runtime/launch-tmux.d.ts +3 -2
  34. package/dist/types/gjc-runtime/psmux-detect.d.ts +3 -0
  35. package/dist/types/gjc-runtime/session-state-sidecar.d.ts +3 -0
  36. package/dist/types/gjc-runtime/team-runtime.d.ts +3 -4
  37. package/dist/types/gjc-runtime/tmux-owner-isolation-cli.d.ts +13 -0
  38. package/dist/types/gjc-runtime/tmux-sessions.d.ts +4 -1
  39. package/dist/types/gjc-runtime/ultragoal-receipt-freshness.d.ts +11 -0
  40. package/dist/types/gjc-runtime/windows-powershell-command.d.ts +9 -0
  41. package/dist/types/harness-control-plane/operate.d.ts +5 -5
  42. package/dist/types/harness-control-plane/owner.d.ts +18 -4
  43. package/dist/types/harness-control-plane/receipts.d.ts +0 -1
  44. package/dist/types/harness-control-plane/sdk-transport.d.ts +43 -0
  45. package/dist/types/harness-control-plane/session-transport.d.ts +48 -0
  46. package/dist/types/harness-control-plane/types.d.ts +3 -4
  47. package/dist/types/lsp/index.d.ts +1 -1
  48. package/dist/types/main.d.ts +32 -38
  49. package/dist/types/modes/acp/acp-agent.d.ts +224 -53
  50. package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -0
  51. package/dist/types/modes/acp/acp-mode.d.ts +6 -15
  52. package/dist/types/modes/acp/permission-mode.d.ts +4 -0
  53. package/dist/types/modes/acp/startup-options.d.ts +6 -0
  54. package/dist/types/modes/components/agent-dashboard.d.ts +3 -0
  55. package/dist/types/modes/components/model-selector.d.ts +1 -0
  56. package/dist/types/modes/components/notifications-settings-editor.d.ts +135 -0
  57. package/dist/types/modes/components/settings-selector.d.ts +6 -4
  58. package/dist/types/modes/components/welcome.d.ts +1 -1
  59. package/dist/types/modes/controllers/command-controller.d.ts +2 -2
  60. package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -0
  61. package/dist/types/modes/controllers/selector-controller.d.ts +35 -1
  62. package/dist/types/modes/index.d.ts +0 -4
  63. package/dist/types/modes/interactive-mode.d.ts +5 -2
  64. package/dist/types/modes/runtime-init.d.ts +2 -2
  65. package/dist/types/modes/shared/agent-wire/approval-gate.d.ts +6 -9
  66. package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +4 -6
  67. package/dist/types/modes/shared/agent-wire/event-contract.d.ts +6 -6
  68. package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +4 -9
  69. package/dist/types/modes/shared/agent-wire/event-observation.d.ts +1 -1
  70. package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +170 -30
  71. package/dist/types/modes/shared/agent-wire/workflow-gate-schema.d.ts +7 -7
  72. package/dist/types/modes/shared/agent-wire/workflow-gate-types.d.ts +105 -0
  73. package/dist/types/modes/types.d.ts +7 -2
  74. package/dist/types/runtime-mcp/client.d.ts +2 -0
  75. package/dist/types/runtime-mcp/config.d.ts +5 -1
  76. package/dist/types/runtime-mcp/manager.d.ts +8 -1
  77. package/dist/types/runtime-mcp/types.d.ts +4 -0
  78. package/dist/types/sdk/acp/adapter.d.ts +67 -0
  79. package/dist/types/sdk/acp/index.d.ts +2 -0
  80. package/dist/types/sdk/broker/broker.d.ts +53 -0
  81. package/dist/types/sdk/broker/discovery.d.ts +30 -0
  82. package/dist/types/sdk/broker/ensure.d.ts +42 -0
  83. package/dist/types/sdk/broker/identity.d.ts +3 -0
  84. package/dist/types/sdk/broker/index.d.ts +8 -0
  85. package/dist/types/sdk/broker/lifecycle-ledger.d.ts +95 -0
  86. package/dist/types/sdk/broker/lifecycle.d.ts +85 -0
  87. package/dist/types/sdk/broker/process-incarnation.d.ts +14 -0
  88. package/dist/types/sdk/broker/runtime.d.ts +33 -0
  89. package/dist/types/sdk/broker/session-index.d.ts +57 -0
  90. package/dist/types/sdk/broker/state-version.d.ts +8 -0
  91. package/dist/types/sdk/broker/transport.d.ts +9 -0
  92. package/dist/types/sdk/bus/chat-command-policy.d.ts +49 -0
  93. package/dist/types/sdk/bus/chat-daemon-cli.d.ts +21 -0
  94. package/dist/types/sdk/bus/chat-daemon-control.d.ts +111 -0
  95. package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +77 -0
  96. package/dist/types/sdk/bus/chat-effect-journal.d.ts +84 -0
  97. package/dist/types/{notifications → sdk/bus}/config-commands.d.ts +7 -2
  98. package/dist/types/sdk/bus/config.d.ts +274 -0
  99. package/dist/types/sdk/bus/conversation-store.d.ts +72 -0
  100. package/dist/types/sdk/bus/discord-conversation.d.ts +58 -0
  101. package/dist/types/sdk/bus/discord-daemon.d.ts +50 -0
  102. package/dist/types/sdk/bus/discord-live-provider.d.ts +70 -0
  103. package/dist/types/sdk/bus/discord-provider.d.ts +85 -0
  104. package/dist/types/{notifications → sdk/bus}/html-format.d.ts +2 -2
  105. package/dist/types/{notifications → sdk/bus}/index.d.ts +113 -13
  106. package/dist/types/{notifications → sdk/bus}/lifecycle-control-runtime.d.ts +4 -2
  107. package/dist/types/{notifications → sdk/bus}/lifecycle-orchestrator.d.ts +18 -21
  108. package/dist/types/{notifications → sdk/bus}/managed-daemon.d.ts +1 -1
  109. package/dist/types/sdk/bus/native-runtime-compatibility.d.ts +13 -0
  110. package/dist/types/sdk/bus/notification-orchestration.d.ts +170 -0
  111. package/dist/types/{notifications → sdk/bus}/notification-service.d.ts +7 -1
  112. package/dist/types/sdk/bus/session-control.d.ts +83 -0
  113. package/dist/types/sdk/bus/slack-conversation.d.ts +56 -0
  114. package/dist/types/sdk/bus/slack-daemon.d.ts +60 -0
  115. package/dist/types/sdk/bus/slack-live-provider.d.ts +59 -0
  116. package/dist/types/sdk/bus/slack-provider.d.ts +55 -0
  117. package/dist/types/{notifications → sdk/bus}/telegram-cli.d.ts +4 -4
  118. package/dist/types/{notifications → sdk/bus}/telegram-daemon-cli.d.ts +14 -5
  119. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +12 -0
  120. package/dist/types/{notifications → sdk/bus}/telegram-daemon-control.d.ts +2 -2
  121. package/dist/types/{notifications → sdk/bus}/telegram-daemon.d.ts +78 -17
  122. package/dist/types/{notifications → sdk/bus}/telegram-reference.d.ts +2 -2
  123. package/dist/types/sdk/bus/telegram-setup.d.ts +128 -0
  124. package/dist/types/{notifications → sdk/bus}/topic-registry.d.ts +11 -0
  125. package/dist/types/sdk/cli/index.d.ts +1 -0
  126. package/dist/types/sdk/cli/session-cli.d.ts +19 -0
  127. package/dist/types/sdk/client/client.d.ts +1 -0
  128. package/dist/types/sdk/client/discovery.d.ts +27 -0
  129. package/dist/types/sdk/client/index.d.ts +2 -0
  130. package/dist/types/sdk/host/control/dispatch.d.ts +34 -0
  131. package/dist/types/sdk/host/control/index.d.ts +2 -0
  132. package/dist/types/sdk/host/control/operations.d.ts +65 -0
  133. package/dist/types/sdk/host/events.d.ts +35 -0
  134. package/dist/types/sdk/host/host.d.ts +35 -0
  135. package/dist/types/sdk/host/index.d.ts +4 -0
  136. package/dist/types/sdk/host/query/cursor.d.ts +62 -0
  137. package/dist/types/sdk/host/query/handlers.d.ts +70 -0
  138. package/dist/types/sdk/host/query/index.d.ts +3 -0
  139. package/dist/types/sdk/host/query/revision-store.d.ts +60 -0
  140. package/dist/types/sdk/host/reverse-leases.d.ts +45 -0
  141. package/dist/types/sdk/host/types.d.ts +32 -0
  142. package/dist/types/sdk/index.d.ts +6 -0
  143. package/dist/types/sdk/lifecycle-session.d.ts +14 -0
  144. package/dist/types/sdk/mcp/index.d.ts +1 -0
  145. package/dist/types/sdk/mcp/server.d.ts +37 -0
  146. package/dist/types/sdk/models.d.ts +44 -0
  147. package/dist/types/sdk/protocol/adapter-validation.d.ts +14 -0
  148. package/dist/types/sdk/protocol/operation-registry.d.ts +24 -0
  149. package/dist/types/{sdk.d.ts → sdk/session.d.ts} +44 -38
  150. package/dist/types/sdk/startup-capability.d.ts +50 -0
  151. package/dist/types/session/agent-session.d.ts +114 -21
  152. package/dist/types/session/default-model-selection.d.ts +25 -0
  153. package/dist/types/session/fallback-chain-controller.d.ts +52 -0
  154. package/dist/types/session/session-manager.d.ts +58 -1
  155. package/dist/types/setup/credential-auto-import.d.ts +36 -6
  156. package/dist/types/tools/ask-answer-registry.d.ts +1 -1
  157. package/dist/types/tools/browser/benchmark/detector-report.d.ts +63 -0
  158. package/dist/types/tools/browser/benchmark/run-suite.d.ts +18 -0
  159. package/dist/types/tools/browser/launch.d.ts +22 -0
  160. package/dist/types/tools/browser/profile-discovery.d.ts +31 -0
  161. package/dist/types/tools/browser/profile-posture.d.ts +37 -0
  162. package/dist/types/tools/browser/profile-reuse.d.ts +39 -0
  163. package/dist/types/tools/browser/profile-warmup.d.ts +39 -0
  164. package/dist/types/tools/browser/registry.d.ts +19 -0
  165. package/dist/types/tools/browser/tab-protocol.d.ts +4 -0
  166. package/dist/types/tools/index.d.ts +8 -8
  167. package/dist/types/tools/subagent-render.d.ts +1 -0
  168. package/dist/types/tools/subagent.d.ts +6 -1
  169. package/package.json +34 -13
  170. package/scripts/build-sdk-package-smoke.ts +99 -0
  171. package/scripts/capture-notifications-settings-showcase.ts +435 -0
  172. package/scripts/compile-args.ts +4 -2
  173. package/scripts/g005-daemon-smoke.ts +4 -5
  174. package/scripts/g011-daemon-path-smoke.ts +5 -5
  175. package/scripts/generate-sdk-adapter-parity-manifest.ts +163 -0
  176. package/scripts/generate-sdk-operation-inventory.ts +867 -0
  177. package/scripts/generate-telegram-baseline-manifest.ts +128 -0
  178. package/scripts/manifest-schema.ts +124 -0
  179. package/scripts/run-test-manifest.ts +153 -0
  180. package/scripts/run-threat-model-check.ts +157 -0
  181. package/scripts/verify-gjc-sdk-canonicalization.ts +3467 -0
  182. package/scripts/verify-gjc-sdk-rename.ts +90 -0
  183. package/src/append-only-mode.ts +1 -1
  184. package/src/async/job-manager.ts +406 -63
  185. package/src/cli/args.ts +43 -12
  186. package/src/cli/auth-gateway-cli.ts +2 -2
  187. package/src/cli/config-cli.ts +2 -1
  188. package/src/cli/daemon-cli.ts +63 -14
  189. package/src/cli/list-models.ts +1 -1
  190. package/src/cli/notify-cli.ts +288 -286
  191. package/src/cli.ts +21 -2
  192. package/src/commands/daemon.ts +50 -6
  193. package/src/commands/harness.ts +93 -36
  194. package/src/commands/launch.ts +5 -2
  195. package/src/commands/mcp-serve.ts +19 -12
  196. package/src/commands/notify.ts +36 -3
  197. package/src/commands/sdk.ts +426 -0
  198. package/src/commit/agentic/agent.ts +1 -0
  199. package/src/config/atomic-yaml-patch.ts +423 -0
  200. package/src/config/model-profile-activation.ts +240 -89
  201. package/src/config/model-profiles.ts +18 -15
  202. package/src/config/model-registry.ts +51 -26
  203. package/src/config/model-resolver.ts +138 -51
  204. package/src/config/model-selector-value.ts +50 -0
  205. package/src/config/models-config-schema.ts +14 -21
  206. package/src/config/settings-schema.ts +128 -10
  207. package/src/config/settings.ts +1120 -158
  208. package/src/coordinator-mcp/model-preset.ts +74 -20
  209. package/src/coordinator-mcp/server.ts +1597 -3052
  210. package/src/daemon/builtin.ts +8 -5
  211. package/src/daemon/control-types.ts +1 -1
  212. package/src/defaults/gjc/skills/team/SKILL.md +4 -4
  213. package/src/discovery/mcp-json.ts +327 -20
  214. package/src/extensibility/custom-tools/types.ts +1 -1
  215. package/src/extensibility/extensions/compact-handler.ts +3 -3
  216. package/src/extensibility/extensions/get-commands-handler.ts +2 -2
  217. package/src/extensibility/extensions/loader.ts +69 -5
  218. package/src/extensibility/extensions/runner.ts +112 -4
  219. package/src/extensibility/extensions/types.ts +176 -17
  220. package/src/extensibility/hooks/types.ts +1 -1
  221. package/src/gjc-runtime/launch-tmux.ts +170 -86
  222. package/src/gjc-runtime/psmux-detect.ts +82 -4
  223. package/src/gjc-runtime/session-state-sidecar.ts +41 -31
  224. package/src/gjc-runtime/team-runtime.ts +54 -35
  225. package/src/gjc-runtime/tmux-owner-isolation-cli.ts +53 -17
  226. package/src/gjc-runtime/tmux-owner-isolation.ts +1 -1
  227. package/src/gjc-runtime/tmux-sessions.ts +19 -13
  228. package/src/gjc-runtime/ultragoal-guard.ts +108 -14
  229. package/src/gjc-runtime/ultragoal-receipt-freshness.ts +102 -1
  230. package/src/gjc-runtime/ultragoal-runtime.ts +227 -11
  231. package/src/gjc-runtime/windows-powershell-command.ts +58 -0
  232. package/src/harness-control-plane/operate.ts +9 -9
  233. package/src/harness-control-plane/owner.ts +283 -39
  234. package/src/harness-control-plane/receipts.ts +0 -1
  235. package/src/harness-control-plane/sdk-transport.ts +395 -0
  236. package/src/harness-control-plane/session-transport.ts +94 -0
  237. package/src/harness-control-plane/types.ts +1 -1
  238. package/src/internal-urls/docs-index.generated.ts +34 -35
  239. package/src/lsp/client.ts +42 -6
  240. package/src/lsp/index.ts +2 -2
  241. package/src/main.ts +299 -204
  242. package/src/modes/DESIGN.md +258 -0
  243. package/src/modes/acp/acp-agent.ts +1228 -2612
  244. package/src/modes/acp/acp-client-bridge.ts +2 -20
  245. package/src/modes/acp/acp-event-mapper.ts +18 -2
  246. package/src/modes/acp/acp-mode.ts +8 -36
  247. package/src/modes/acp/permission-mode.ts +25 -0
  248. package/src/modes/acp/startup-options.ts +6 -0
  249. package/src/modes/components/agent-dashboard.ts +37 -17
  250. package/src/modes/components/model-selector.ts +93 -35
  251. package/src/modes/components/notifications-settings-editor.ts +1379 -0
  252. package/src/modes/components/settings-selector.ts +60 -11
  253. package/src/modes/components/welcome.ts +4 -4
  254. package/src/modes/controllers/command-controller.ts +10 -17
  255. package/src/modes/controllers/event-controller.ts +11 -16
  256. package/src/modes/controllers/extension-ui-controller.ts +396 -28
  257. package/src/modes/controllers/selector-controller.ts +674 -36
  258. package/src/modes/index.ts +0 -22
  259. package/src/modes/interactive-mode.ts +87 -36
  260. package/src/modes/runtime-init.ts +298 -6
  261. package/src/modes/shared/agent-wire/approval-gate.ts +9 -11
  262. package/src/modes/shared/agent-wire/deep-interview-gate.ts +10 -11
  263. package/src/modes/shared/agent-wire/event-contract.ts +7 -8
  264. package/src/modes/shared/agent-wire/event-envelope.ts +9 -17
  265. package/src/modes/shared/agent-wire/event-observation.ts +16 -7
  266. package/src/modes/shared/agent-wire/workflow-gate-broker.ts +1258 -87
  267. package/src/modes/shared/agent-wire/workflow-gate-schema.ts +15 -15
  268. package/src/modes/shared/agent-wire/workflow-gate-types.ts +113 -0
  269. package/src/modes/types.ts +7 -2
  270. package/src/runtime-mcp/client.ts +94 -19
  271. package/src/runtime-mcp/config.ts +27 -15
  272. package/src/runtime-mcp/manager.ts +343 -105
  273. package/src/runtime-mcp/oauth-flow.ts +42 -12
  274. package/src/runtime-mcp/transports/http.ts +49 -19
  275. package/src/runtime-mcp/transports/stdio.ts +47 -28
  276. package/src/runtime-mcp/types.ts +10 -0
  277. package/src/sdk/acp/adapter.ts +418 -0
  278. package/src/sdk/acp/index.ts +2 -0
  279. package/src/sdk/broker/broker.ts +642 -0
  280. package/src/sdk/broker/discovery.ts +113 -0
  281. package/src/sdk/broker/ensure.ts +307 -0
  282. package/src/sdk/broker/identity.ts +42 -0
  283. package/src/sdk/broker/index.ts +8 -0
  284. package/src/sdk/broker/internal-source-marker-2178.txt +1 -0
  285. package/src/sdk/broker/internal-source.bunfig.toml +1 -0
  286. package/src/sdk/broker/lifecycle-ledger.ts +286 -0
  287. package/src/sdk/broker/lifecycle.ts +2157 -0
  288. package/src/sdk/broker/process-incarnation.ts +159 -0
  289. package/src/sdk/broker/runtime.ts +164 -0
  290. package/src/sdk/broker/session-index.ts +318 -0
  291. package/src/sdk/broker/state-version.ts +23 -0
  292. package/src/sdk/broker/transport.ts +125 -0
  293. package/src/sdk/bus/chat-command-policy.ts +107 -0
  294. package/src/sdk/bus/chat-daemon-cli.ts +214 -0
  295. package/src/sdk/bus/chat-daemon-control.ts +713 -0
  296. package/src/sdk/bus/chat-daemon-runtime.ts +526 -0
  297. package/src/sdk/bus/chat-effect-journal.ts +355 -0
  298. package/src/{notifications → sdk/bus}/config-commands.ts +39 -10
  299. package/src/sdk/bus/config.ts +433 -0
  300. package/src/sdk/bus/conversation-store.ts +391 -0
  301. package/src/sdk/bus/discord-conversation.ts +85 -0
  302. package/src/sdk/bus/discord-daemon.ts +2292 -0
  303. package/src/sdk/bus/discord-live-provider.ts +521 -0
  304. package/src/sdk/bus/discord-provider.ts +56 -0
  305. package/src/{notifications → sdk/bus}/html-format.ts +2 -2
  306. package/src/sdk/bus/index.ts +3979 -0
  307. package/src/{notifications → sdk/bus}/lifecycle-commands.ts +2 -0
  308. package/src/{notifications → sdk/bus}/lifecycle-control-runtime.ts +225 -196
  309. package/src/{notifications → sdk/bus}/lifecycle-orchestrator.ts +161 -74
  310. package/src/{notifications → sdk/bus}/managed-daemon.ts +2 -2
  311. package/src/sdk/bus/native-runtime-compatibility.ts +42 -0
  312. package/src/sdk/bus/natives-augment.d.ts +38 -0
  313. package/src/sdk/bus/notification-orchestration.ts +535 -0
  314. package/src/{notifications → sdk/bus}/notification-service.ts +106 -12
  315. package/src/sdk/bus/session-control.ts +333 -0
  316. package/src/sdk/bus/slack-conversation.ts +74 -0
  317. package/src/sdk/bus/slack-daemon.ts +2144 -0
  318. package/src/sdk/bus/slack-live-provider.ts +380 -0
  319. package/src/sdk/bus/slack-provider.ts +76 -0
  320. package/src/{notifications → sdk/bus}/telegram-cli.ts +8 -8
  321. package/src/sdk/bus/telegram-daemon-cli.ts +330 -0
  322. package/src/sdk/bus/telegram-daemon-contract.ts +14 -0
  323. package/src/{notifications → sdk/bus}/telegram-daemon-control.ts +4 -4
  324. package/src/{notifications → sdk/bus}/telegram-daemon.ts +603 -63
  325. package/src/{notifications → sdk/bus}/telegram-reference.ts +2 -2
  326. package/src/sdk/bus/telegram-setup.ts +663 -0
  327. package/src/{notifications → sdk/bus}/topic-registry.ts +32 -0
  328. package/src/sdk/cli/index.ts +1 -0
  329. package/src/sdk/cli/session-cli.ts +275 -0
  330. package/src/sdk/client/client.ts +1 -0
  331. package/src/sdk/client/discovery.ts +108 -0
  332. package/src/sdk/client/index.ts +2 -0
  333. package/src/sdk/host/control/dispatch.ts +367 -0
  334. package/src/sdk/host/control/index.ts +10 -0
  335. package/src/sdk/host/control/operations.ts +63 -0
  336. package/src/sdk/host/events.ts +91 -0
  337. package/src/sdk/host/host.ts +296 -0
  338. package/src/sdk/host/index.ts +4 -0
  339. package/src/sdk/host/query/cursor.ts +189 -0
  340. package/src/sdk/host/query/handlers.ts +533 -0
  341. package/src/sdk/host/query/index.ts +3 -0
  342. package/src/sdk/host/query/revision-store.ts +1126 -0
  343. package/src/sdk/host/reverse-leases.ts +325 -0
  344. package/src/sdk/host/types.ts +29 -0
  345. package/src/sdk/index.ts +13 -0
  346. package/src/sdk/lifecycle-session.ts +39 -0
  347. package/src/sdk/mcp/index.ts +1 -0
  348. package/src/sdk/mcp/server.ts +332 -0
  349. package/src/sdk/models.ts +168 -0
  350. package/src/sdk/protocol/adapter-validation.ts +48 -0
  351. package/src/sdk/protocol/operation-inventory.generated.json +5654 -0
  352. package/src/sdk/protocol/operation-registry.ts +312 -0
  353. package/src/{sdk.ts → sdk/session.ts} +339 -212
  354. package/src/sdk/startup-capability.ts +189 -0
  355. package/src/session/agent-session.ts +2650 -944
  356. package/src/session/default-model-selection.ts +93 -0
  357. package/src/session/fallback-chain-controller.ts +136 -0
  358. package/src/session/session-manager.ts +438 -11
  359. package/src/session/session-storage.ts +8 -1
  360. package/src/setup/credential-auto-import.ts +290 -35
  361. package/src/setup/hermes/templates/operator-instructions.v1.md +3 -5
  362. package/src/slash-commands/builtin-registry.ts +2 -1
  363. package/src/task/executor.ts +62 -13
  364. package/src/task/index.ts +26 -16
  365. package/src/tools/ask-answer-registry.ts +1 -1
  366. package/src/tools/ask.ts +13 -8
  367. package/src/tools/browser/STEALTH-THIRD-PARTY-NOTICES.md +26 -0
  368. package/src/tools/browser/benchmark/detector-report.ts +157 -0
  369. package/src/tools/browser/benchmark/run-suite.ts +39 -0
  370. package/src/tools/browser/launch.ts +124 -19
  371. package/src/tools/browser/profile-discovery.ts +63 -0
  372. package/src/tools/browser/profile-posture.ts +59 -0
  373. package/src/tools/browser/profile-reuse.ts +102 -0
  374. package/src/tools/browser/profile-warmup.ts +109 -0
  375. package/src/tools/browser/registry.ts +87 -11
  376. package/src/tools/browser/tab-protocol.ts +1 -0
  377. package/src/tools/browser/tab-supervisor.ts +1 -0
  378. package/src/tools/browser/tab-worker.ts +1 -1
  379. package/src/tools/browser.ts +6 -0
  380. package/src/tools/index.ts +8 -8
  381. package/src/tools/puppeteer/14_stealth_permissions.txt +57 -0
  382. package/src/tools/puppeteer/15_stealth_webrtc.txt +60 -0
  383. package/src/tools/subagent-render.ts +19 -8
  384. package/src/tools/subagent.ts +84 -32
  385. package/src/tools/telegram-send.ts +2 -2
  386. package/vendor/insane-search/MANIFEST.json +2 -1
  387. package/vendor/insane-search/engine/bias_check.py +4 -1
  388. package/vendor/insane-search/engine/phase0.py +26 -1
  389. package/dist/types/harness-control-plane/rpc-adapter.d.ts +0 -69
  390. package/dist/types/modes/bridge/auth.d.ts +0 -12
  391. package/dist/types/modes/bridge/bridge-client-bridge.d.ts +0 -9
  392. package/dist/types/modes/bridge/bridge-mode.d.ts +0 -47
  393. package/dist/types/modes/bridge/bridge-ui-context.d.ts +0 -88
  394. package/dist/types/modes/bridge/event-stream.d.ts +0 -8
  395. package/dist/types/modes/rpc/host-tools.d.ts +0 -1
  396. package/dist/types/modes/rpc/host-uris.d.ts +0 -1
  397. package/dist/types/modes/rpc/rpc-client.d.ts +0 -299
  398. package/dist/types/modes/rpc/rpc-mode.d.ts +0 -86
  399. package/dist/types/modes/rpc/rpc-socket-security.d.ts +0 -10
  400. package/dist/types/modes/rpc/rpc-types.d.ts +0 -810
  401. package/dist/types/modes/shared/agent-wire/command-contract.d.ts +0 -18
  402. package/dist/types/modes/shared/agent-wire/command-dispatch.d.ts +0 -37
  403. package/dist/types/modes/shared/agent-wire/command-validation.d.ts +0 -2
  404. package/dist/types/modes/shared/agent-wire/handshake.d.ts +0 -56
  405. package/dist/types/modes/shared/agent-wire/host-tool-bridge.d.ts +0 -16
  406. package/dist/types/modes/shared/agent-wire/host-uri-bridge.d.ts +0 -17
  407. package/dist/types/modes/shared/agent-wire/protocol.d.ts +0 -25
  408. package/dist/types/modes/shared/agent-wire/responses.d.ts +0 -4
  409. package/dist/types/modes/shared/agent-wire/scopes.d.ts +0 -18
  410. package/dist/types/modes/shared/agent-wire/session-registry.d.ts +0 -25
  411. package/dist/types/modes/shared/agent-wire/ui-request-broker.d.ts +0 -42
  412. package/dist/types/modes/shared/agent-wire/ui-result.d.ts +0 -27
  413. package/dist/types/modes/shared/agent-wire/unattended-action-policy.d.ts +0 -29
  414. package/dist/types/modes/shared/agent-wire/unattended-audit.d.ts +0 -68
  415. package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +0 -166
  416. package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +0 -127
  417. package/dist/types/notifications/config.d.ts +0 -132
  418. package/src/harness-control-plane/rpc-adapter.ts +0 -290
  419. package/src/modes/bridge/auth.ts +0 -41
  420. package/src/modes/bridge/bridge-client-bridge.ts +0 -47
  421. package/src/modes/bridge/bridge-mode.ts +0 -675
  422. package/src/modes/bridge/bridge-ui-context.ts +0 -200
  423. package/src/modes/bridge/event-stream.ts +0 -70
  424. package/src/modes/rpc/host-tools.ts +0 -1
  425. package/src/modes/rpc/host-uris.ts +0 -1
  426. package/src/modes/rpc/rpc-client.ts +0 -1166
  427. package/src/modes/rpc/rpc-mode.ts +0 -1029
  428. package/src/modes/rpc/rpc-socket-security.ts +0 -115
  429. package/src/modes/rpc/rpc-types.ts +0 -637
  430. package/src/modes/shared/agent-wire/command-contract.ts +0 -18
  431. package/src/modes/shared/agent-wire/command-dispatch.ts +0 -498
  432. package/src/modes/shared/agent-wire/command-validation.ts +0 -181
  433. package/src/modes/shared/agent-wire/handshake.ts +0 -157
  434. package/src/modes/shared/agent-wire/host-tool-bridge.ts +0 -197
  435. package/src/modes/shared/agent-wire/host-uri-bridge.ts +0 -236
  436. package/src/modes/shared/agent-wire/protocol.ts +0 -46
  437. package/src/modes/shared/agent-wire/responses.ts +0 -17
  438. package/src/modes/shared/agent-wire/scopes.ts +0 -94
  439. package/src/modes/shared/agent-wire/session-registry.ts +0 -109
  440. package/src/modes/shared/agent-wire/ui-request-broker.ts +0 -150
  441. package/src/modes/shared/agent-wire/ui-result.ts +0 -48
  442. package/src/modes/shared/agent-wire/unattended-action-policy.ts +0 -365
  443. package/src/modes/shared/agent-wire/unattended-audit.ts +0 -176
  444. package/src/modes/shared/agent-wire/unattended-run-controller.ts +0 -426
  445. package/src/modes/shared/agent-wire/unattended-session.ts +0 -528
  446. package/src/notifications/config.ts +0 -219
  447. package/src/notifications/index.ts +0 -1835
  448. package/src/notifications/telegram-daemon-cli.ts +0 -243
  449. package/src/tools/puppeteer/09_stealth_locale.txt +0 -46
  450. /package/dist/types/{notifications → sdk/bus}/attachment-registry.d.ts +0 -0
  451. /package/dist/types/{notifications → sdk/bus}/chat-adapters.d.ts +0 -0
  452. /package/dist/types/{notifications → sdk/bus}/daemon-paths.d.ts +0 -0
  453. /package/dist/types/{notifications → sdk/bus}/engine.d.ts +0 -0
  454. /package/dist/types/{notifications → sdk/bus}/helpers.d.ts +0 -0
  455. /package/dist/types/{notifications → sdk/bus}/lifecycle-commands.d.ts +0 -0
  456. /package/dist/types/{notifications → sdk/bus}/operator-runtime.d.ts +0 -0
  457. /package/dist/types/{notifications → sdk/bus}/rate-limit-pool.d.ts +0 -0
  458. /package/dist/types/{notifications → sdk/bus}/recent-activity.d.ts +0 -0
  459. /package/dist/types/{notifications → sdk/bus}/reply-sent-store.d.ts +0 -0
  460. /package/dist/types/{notifications → sdk/bus}/rich-draft.d.ts +0 -0
  461. /package/dist/types/{notifications → sdk/bus}/rich-render.d.ts +0 -0
  462. /package/dist/types/{notifications → sdk/bus}/threaded-inbound.d.ts +0 -0
  463. /package/dist/types/{notifications → sdk/bus}/threaded-render.d.ts +0 -0
  464. /package/src/{notifications → sdk/bus}/attachment-registry.ts +0 -0
  465. /package/src/{notifications → sdk/bus}/chat-adapters.ts +0 -0
  466. /package/src/{notifications → sdk/bus}/daemon-paths.ts +0 -0
  467. /package/src/{notifications → sdk/bus}/engine.ts +0 -0
  468. /package/src/{notifications → sdk/bus}/helpers.ts +0 -0
  469. /package/src/{notifications → sdk/bus}/operator-runtime.ts +0 -0
  470. /package/src/{notifications → sdk/bus}/rate-limit-pool.ts +0 -0
  471. /package/src/{notifications → sdk/bus}/recent-activity.ts +0 -0
  472. /package/src/{notifications → sdk/bus}/reply-sent-store.ts +0 -0
  473. /package/src/{notifications → sdk/bus}/rich-draft.ts +0 -0
  474. /package/src/{notifications → sdk/bus}/rich-render.ts +0 -0
  475. /package/src/{notifications → sdk/bus}/threaded-inbound.ts +0 -0
  476. /package/src/{notifications → sdk/bus}/threaded-render.ts +0 -0
@@ -1,19 +1,10 @@
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:
11
- * const isolated = Settings.isolated({ "compaction.enabled": false });
12
- */
13
1
  import { procmgr } from "@gajae-code/utils";
14
2
  import type { ModelRole } from "../config/model-registry";
3
+ import type { NotificationSettingsReader, NotificationSettingsSnapshot } from "../sdk/bus/config";
15
4
  import { AgentStorage } from "../session/agent-storage";
16
5
  import { type EditMode } from "../utils/edit-mode";
6
+ import { type CasReceipt } from "./atomic-yaml-patch";
7
+ import { type ModelSelectorValue } from "./model-selector-value";
17
8
  import { type BashInterceptorRule, type GroupPrefix, type GroupTypeMap, type SettingPath, type SettingValue } from "./settings-schema";
18
9
  export type * from "./settings-schema";
19
10
  export * from "./settings-schema";
@@ -21,6 +12,22 @@ export * from "./settings-schema";
21
12
  export interface RawSettings {
22
13
  [key: string]: unknown;
23
14
  }
15
+ export type SettingsAtomicPatch = {
16
+ path: SettingPath;
17
+ op: "set";
18
+ value: unknown;
19
+ } | {
20
+ path: SettingPath;
21
+ op: "unset";
22
+ };
23
+ export type SettingsAtomicReceipt = CasReceipt;
24
+ export interface GlobalDefaultModelRoleCommit {
25
+ readonly previousDefault: ModelSelectorValue | undefined;
26
+ readonly previousModelRolesExisted: boolean;
27
+ readonly committedDefault: ModelSelectorValue | undefined;
28
+ readonly committedConfigVersion?: string;
29
+ readonly defaultRevision: number;
30
+ }
24
31
  export interface SettingsOptions {
25
32
  /** Current working directory for project settings discovery */
26
33
  cwd?: string;
@@ -31,7 +38,17 @@ export interface SettingsOptions {
31
38
  /** Initial overrides */
32
39
  overrides?: Partial<Record<SettingPath, unknown>>;
33
40
  }
34
- export declare class Settings {
41
+ /** Additional layer setup for {@link Settings.isolated}. */
42
+ export interface IsolatedSettingsOptions {
43
+ /** Initial runtime overrides. Notification paths are rejected. */
44
+ overrides?: Partial<Record<SettingPath, unknown>>;
45
+ }
46
+ /** Raised when an ephemeral override attempts to change global-only notification settings. */
47
+ export declare class NotificationSettingsOverrideError extends Error {
48
+ readonly path: SettingPath;
49
+ constructor(path: SettingPath);
50
+ }
51
+ export declare class Settings implements NotificationSettingsReader {
35
52
  #private;
36
53
  private constructor();
37
54
  /**
@@ -40,10 +57,10 @@ export declare class Settings {
40
57
  */
41
58
  static init(options?: SettingsOptions): Promise<Settings>;
42
59
  /**
43
- * Create an isolated instance for testing.
60
+ * Create an isolated instance for testing with explicit user/global settings.
44
61
  * Does not affect the global singleton.
45
62
  */
46
- static isolated(overrides?: Partial<Record<SettingPath, unknown>>): Settings;
63
+ static isolated(globalSettings?: Partial<Record<SettingPath, unknown>>, options?: IsolatedSettingsOptions): Settings;
47
64
  /**
48
65
  * Get the global singleton.
49
66
  * Throws if not initialized.
@@ -61,14 +78,32 @@ export declare class Settings {
61
78
  * activated by project-scoped config files.
62
79
  */
63
80
  getGlobal<P extends SettingPath>(path: P): SettingValue<P> | undefined;
81
+ /**
82
+ * Read the remote-notification settings from the user/global layer only.
83
+ * Schema defaults are applied per path; project settings and runtime overrides
84
+ * are deliberately excluded from this trust boundary.
85
+ */
86
+ getNotificationSettingsSnapshot(): NotificationSettingsSnapshot;
64
87
  /** Check whether a setting is present in loaded settings/overrides rather than coming from schema defaults. */
65
88
  has(path: SettingPath): boolean;
66
89
  /**
67
90
  * Set a setting value (sync).
68
- * Updates global settings and queues a background save.
69
- * Triggers hooks for settings that have side effects.
91
+ * Updates global settings and reserves its background persistence slot before
92
+ * returning, so later durable batches cannot overtake this mutation.
70
93
  */
71
- set<P extends SettingPath>(path: P, value: SettingValue<P>): void;
94
+ set<P extends SettingPath>(path: P, value: SettingValue<P> | undefined): void;
95
+ /**
96
+ * Delete a global setting (sync), rather than serializing an ambiguous YAML
97
+ * `undefined` value. Defaults/project settings become visible immediately.
98
+ */
99
+ unset<P extends SettingPath>(path: P): void;
100
+ /**
101
+ * Persist a tagged batch as one atomic YAML replacement. Unlike ordinary
102
+ * {@link set}, canonical state and hooks change only after the rename succeeds.
103
+ */
104
+ commitAtomicBatch(patches: readonly SettingsAtomicPatch[]): Promise<CasReceipt>;
105
+ /** Build a durable batch from the current on-disk YAML under the shared queue and file lock. */
106
+ commitAtomicBatchWithCurrent(buildPatches: (current: Readonly<RawSettings>) => Promise<readonly SettingsAtomicPatch[]> | readonly SettingsAtomicPatch[]): Promise<CasReceipt>;
72
107
  /**
73
108
  * Apply runtime overrides (not persisted).
74
109
  */
@@ -77,17 +112,9 @@ export declare class Settings {
77
112
  * Clear a runtime override.
78
113
  */
79
114
  clearOverride(path: SettingPath): void;
80
- /**
81
- * Flush any pending saves to disk.
82
- * Call before exit to ensure all changes are persisted.
83
- */
115
+ /** Flush a reserved debounced save without allowing it to be overtaken. */
84
116
  flush(): Promise<void>;
85
- /**
86
- * Like {@link flush}, but rejects if the durable save fails instead of
87
- * swallowing the error. Use where the caller must confirm persistence before
88
- * reporting success (e.g. the Telegram `/rich` toggle). In-memory instances
89
- * ({@link isolated}) short-circuit in {@link #saveNow} and never throw.
90
- */
117
+ /** Like {@link flush}, but reports a durable save failure to the caller. */
91
118
  flushOrThrow(): Promise<void>;
92
119
  cloneForCwd(cwd: string): Promise<Settings>;
93
120
  getStorage(): AgentStorage | null;
@@ -114,9 +141,10 @@ export declare class Settings {
114
141
  /**
115
142
  * Set a model role (helper for modelRoles record).
116
143
  */
117
- setModelRole(role: ModelRole | string, modelId: string): void;
118
- setGlobalModelRole(role: ModelRole | string, modelId: string | undefined): void;
119
- setGlobalModelRoleAndFlush(role: ModelRole | string, modelId: string | undefined): Promise<void>;
144
+ setModelRole(role: ModelRole | string, modelId: ModelSelectorValue): void;
145
+ setGlobalModelRole(role: ModelRole | string, modelId: ModelSelectorValue | undefined): void;
146
+ setGlobalModelRoleAndFlush(role: ModelRole | string, modelId: ModelSelectorValue | undefined): Promise<GlobalDefaultModelRoleCommit>;
147
+ restoreGlobalDefaultModelRoleIfCurrent(commit: GlobalDefaultModelRoleCommit): Promise<boolean>;
120
148
  /**
121
149
  * Set an agent model override while keeping any live runtime override aligned.
122
150
  *
@@ -124,16 +152,16 @@ export declare class Settings {
124
152
  * session. A user-selected role assignment must win immediately in that same
125
153
  * session, but only the explicit agent change should be persisted.
126
154
  */
127
- setAgentModelOverride(agentName: string, modelId: string): void;
155
+ setAgentModelOverride(agentName: string, modelId: ModelSelectorValue): void;
128
156
  /**
129
157
  * Get a model role (helper for modelRoles record).
130
158
  */
131
- getModelRole(role: ModelRole | string): string | undefined;
159
+ getModelRole(role: ModelRole | string): ModelSelectorValue | undefined;
132
160
  /**
133
161
  * Get all model roles (helper for modelRoles record).
134
162
  */
135
- getModelRoles(): ReadOnlyDict<string>;
136
- overrideModelRoles(roles: ReadOnlyDict<string>): void;
163
+ getModelRoles(): Readonly<Record<string, ModelSelectorValue>>;
164
+ overrideModelRoles(roles: Readonly<Record<string, ModelSelectorValue>>): void;
137
165
  /**
138
166
  * Set disabled providers (for compatibility with discovery system).
139
167
  */
@@ -1,11 +1,12 @@
1
- import { type ModelProfileDefinition } from "../config/model-profiles";
1
+ export interface CoordinatorModelProfile {
2
+ name: string;
3
+ }
2
4
  /**
3
- * Loads the merged built-in + custom model-profile registry the way the `gjc`
4
- * CLI resolves `--mpreset`, so coordinator MCP launches select the same
5
- * authoritative profile the spawned child will activate. Custom profiles live
6
- * in the shared models config, which the child inherits, so both sides agree.
5
+ * Loads the merged built-in + custom model-profile names from `models.yml`
6
+ * without loading the session-host model registry. The child still owns
7
+ * profile activation; this validates the selection before session creation.
7
8
  */
8
- export type CoordinatorModelProfileLoader = () => Map<string, ModelProfileDefinition> | Promise<Map<string, ModelProfileDefinition>>;
9
+ export type CoordinatorModelProfileLoader = () => Map<string, CoordinatorModelProfile> | Promise<Map<string, CoordinatorModelProfile>>;
9
10
  /**
10
11
  * Thrown by the default loader when `models.yml` exists but is invalid or
11
12
  * unreadable. This lets the resolver fail closed with a distinct, stable reason
@@ -1,5 +1,5 @@
1
1
  import { COORDINATOR_MCP_PROTOCOL_VERSION, COORDINATOR_MCP_SERVER_NAME, COORDINATOR_MCP_TOOL_NAMES, type CoordinatorToolName } from "../coordinator/contract";
2
- import { type OwnerIsolationProbe } from "../gjc-runtime/tmux-owner-isolation";
2
+ import { SdkClient } from "../sdk/client/client";
3
3
  import { type CoordinatorModelProfileLoader } from "./model-preset";
4
4
  import { type CoordinatorMcpConfig } from "./policy";
5
5
  import { type SessionReaper } from "./session-reaper";
@@ -22,71 +22,28 @@ interface JsonRpcResponse {
22
22
  data?: unknown;
23
23
  };
24
24
  }
25
- interface SessionStartInput {
26
- cwd: string;
27
- prompt?: string;
28
- mpreset?: string | null;
29
- namespace: {
30
- profile: string | null;
31
- repo: string | null;
32
- };
33
- worktree: true;
34
- sessionId: string;
35
- launchId: string;
36
- /** Canonical, coordinator-owned immutable readiness marker path. */
37
- readinessMarkerFile: string;
38
- /** @deprecated Compatibility alias for injected launch providers. */
39
- readinessFile: string;
40
- }
41
- interface CommandResult {
42
- exitCode: number;
43
- stdout: string;
44
- stderr: string;
45
- }
46
- type CommandRunner = (command: string[], stdinLine?: string) => Promise<CommandResult>;
47
25
  interface CoordinatorServices {
48
- listSessions?: () => unknown[] | Promise<unknown[]>;
49
- startSession?: (input: SessionStartInput) => unknown | Promise<unknown>;
50
- commandRunner?: CommandRunner;
51
- forceCloseSession?: (sessionName: string, env: NodeJS.ProcessEnv, expectedSessionId?: string, expectedStateFile?: string) => Promise<unknown>;
52
- ownerIsolationProbe?: OwnerIsolationProbe;
26
+ connectSdk?: (url: string, token: string) => Promise<SdkClient>;
27
+ getAgentDir?: () => string;
53
28
  resolveModelProfiles?: CoordinatorModelProfileLoader;
29
+ canonicalizePath?: (value: string) => Promise<string>;
54
30
  }
55
31
  interface CoordinatorMcpServerOptions {
56
32
  env?: NodeJS.ProcessEnv;
57
33
  services?: CoordinatorServices;
34
+ platform?: NodeJS.Platform;
58
35
  }
59
36
  interface LegacyHandlerOptions {
60
37
  env?: NodeJS.ProcessEnv;
61
- createSession?: (input: SessionStartInput) => unknown;
62
38
  }
63
- /**
64
- * Append an authoritative `--mpreset <profile>` to the coordinator child launch
65
- * command so the spawned GJC session activates the selected profile from its
66
- * first turn. The profile name is validated against the merged registry before
67
- * reaching here; it is still shell-quoted as defense in depth.
68
- *
69
- * Precedence note: this matches `gjc --mpreset <profile>` semantics exactly, so
70
- * an explicit model-affecting flag already present in the operator-configured
71
- * `sessionCommand` (e.g. a `--model`/`--thinking` baked into the launch command)
72
- * follows the same CLI precedence as a direct `gjc --mpreset ... --model ...`
73
- * invocation. The effective profile recorded on the session is the
74
- * coordinator-resolved request, not a child-attested activation receipt; a
75
- * cross-process activation receipt is a possible future enhancement and is out
76
- * of scope for the per-session selection contract here.
77
- */
78
- export declare function buildCoordinatorSessionCommand(sessionCommand: string, mpreset: string | null | undefined): string;
79
39
  export declare const COORDINATOR_AWAIT_TURN_TIMEOUT_MAX_MS: number;
80
40
  export declare const COORDINATOR_RUNTIME_PROMPT_ACK_TIMEOUT_MAX_MS: number;
81
- export declare const COORDINATOR_RUNTIME_READINESS_TIMEOUT_MAX_MS: number;
82
41
  export declare const COORDINATOR_EVENT_WATCH_TIMEOUT_MAX_MS = 30000;
83
42
  export declare const COORDINATOR_POLL_INTERVAL_MAX_MS = 10000;
84
43
  export declare function boundedAwaitTurnTimeoutMs(value: unknown): number;
85
44
  export declare function boundedRuntimePromptAckTimeoutMs(value: unknown): number;
86
- export declare function boundedRuntimeReadinessTimeoutMs(value: unknown): number;
87
45
  export declare function boundedEventWatchTimeoutMs(value: unknown): number;
88
46
  export declare function boundedPollIntervalMs(value: unknown): number;
89
- export declare function coordinatorOwnerIsolationProbe(runner: CommandRunner): Promise<OwnerIsolationProbe>;
90
47
  export declare function readCoordinatorArtifact(config: CoordinatorMcpConfig, args: {
91
48
  path: unknown;
92
49
  }): Promise<Record<string, unknown>>;
@@ -101,7 +58,7 @@ export declare function createCoordinatorMcpServer(options?: CoordinatorMcpServe
101
58
  }) => Promise<{
102
59
  ok: boolean;
103
60
  reason?: string;
104
- killed: boolean;
61
+ closed: boolean;
105
62
  active_turn_id?: string;
106
63
  detail?: string;
107
64
  }>;
@@ -1,16 +1,17 @@
1
1
  /**
2
2
  * Static built-in daemon controller map.
3
3
  *
4
- * Intentionally a static map keyed by daemon kind rather than a mutable plugin
5
- * registry: there is exactly one kind today (`telegram`). Promote to a richer
6
- * registry only when a second daemon kind exists.
4
+ * Controllers are deliberately static rather than a mutable plugin registry.
7
5
  */
8
6
  import type { Settings } from "../config/settings";
9
- import { type TelegramDaemonControlDeps } from "../notifications/telegram-daemon-control";
7
+ import { type ChatDaemonControlDeps } from "../sdk/bus/chat-daemon-control";
8
+ import { type TelegramDaemonControlDeps } from "../sdk/bus/telegram-daemon-control";
10
9
  import type { BuiltInDaemonController, DaemonKind } from "./control-types";
11
- export declare const BUILT_IN_DAEMON_KINDS: readonly ["telegram"];
10
+ export declare const BUILT_IN_DAEMON_KINDS: readonly ["telegram", "discord", "slack"];
12
11
  export interface BuiltInDaemonControllerDeps {
13
12
  telegram?: TelegramDaemonControlDeps;
13
+ discord?: ChatDaemonControlDeps;
14
+ slack?: ChatDaemonControlDeps;
14
15
  }
15
16
  export declare function createBuiltInDaemonControllers(settings: Settings, deps?: BuiltInDaemonControllerDeps): Record<DaemonKind, BuiltInDaemonController>;
16
17
  /**
@@ -5,7 +5,7 @@
5
5
  * controller contract. There is exactly one daemon kind today (`telegram`);
6
6
  * a richer registry is intentionally deferred until a second kind exists.
7
7
  */
8
- export type DaemonKind = "telegram";
8
+ export type DaemonKind = "telegram" | "discord" | "slack";
9
9
  export type DaemonAction = "list" | "status" | "stop" | "reload";
10
10
  export type DaemonHealth = "not_configured" | "stopped" | "running" | "stale" | "stopping" | "error";
11
11
  export interface DaemonRuntimeInfo {
@@ -1 +1,12 @@
1
- export {};
1
+ import { type MCPServer } from "../capability/mcp";
2
+ import type { LoadResult } from "../capability/types";
3
+ export interface MCPJsonLoadResult extends LoadResult<MCPServer> {
4
+ disabledServers: string[];
5
+ }
6
+ /**
7
+ * Load MCP servers from a JSON file.
8
+ */
9
+ export declare function loadMCPJsonFile(filePath: string, level: "user" | "project", options?: {
10
+ quiet?: boolean;
11
+ useCache?: boolean;
12
+ }): Promise<MCPJsonLoadResult>;
@@ -42,7 +42,7 @@ export interface CustomToolAPI {
42
42
  exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
43
43
  /** UI methods for user interaction (select, confirm, input, notify, custom) */
44
44
  ui: CustomToolUIContext;
45
- /** Whether UI is available (false in print/RPC mode) */
45
+ /** Whether an interactive UI is available */
46
46
  hasUI: boolean;
47
47
  /** File logger for error/warning/debug messages */
48
48
  logger: typeof import("@gajae-code/utils").logger;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Extension-facing APIs accept `string | CompactOptions`, but `AgentSession.compact`
5
5
  * takes two positional arguments `(instructions, options)`. This helper splits the
6
- * union so the same adapter can be reused by print-mode, rpc-mode, and the executor.
6
+ * union so the same adapter can be reused by print, SDK, ACP, and executor callers.
7
7
  */
8
8
  import type { Model } from "@gajae-code/ai";
9
9
  import type { CompactOptions } from "./types";
@@ -15,7 +15,9 @@ interface SetModelCapableSession {
15
15
  modelRegistry: {
16
16
  getApiKey(model: Model): Promise<string | undefined>;
17
17
  };
18
- setModel(model: Model): Promise<unknown>;
18
+ setModel(model: Model, role?: string, options?: {
19
+ cause?: string;
20
+ }): Promise<unknown>;
19
21
  }
20
22
  /**
21
23
  * Helper for wiring the `setModel` action of an {@link ExtensionContext}.
@@ -2,8 +2,8 @@
2
2
  * Helper for wiring the `getCommands` action of {@link ExtensionAPI}.
3
3
  *
4
4
  * Centralizes the union over the three slash-command sources the runtime
5
- * exposes so the five wiring sites (interactive UI, ACP, RPC, print, child
6
- * task executor) cannot drift:
5
+ * exposes so the interactive UI, ACP, SDK, print, and child task executor wiring
6
+ * sites cannot drift:
7
7
  * - extension-registered hook commands (`source: "extension"`)
8
8
  * - prompt commands loaded as `LoadedCustomCommand` — user/project/bundled
9
9
  * custom commands and MCP prompts (`source: "prompt"`)
@@ -1,4 +1,5 @@
1
1
  import type { ThinkingLevel } from "@gajae-code/agent-core";
2
+ import type { UsageReport } from "@gajae-code/ai";
2
3
  import { EventBus } from "../../utils/event-bus";
3
4
  import type { Extension, ExtensionFactory, ExtensionRuntime as IExtensionRuntime, LoadExtensionsResult } from "./types";
4
5
  export declare class ExtensionRuntimeNotInitializedError extends Error {
@@ -16,7 +17,7 @@ export declare class ExtensionRuntime implements IExtensionRuntime {
16
17
  sourceId: string;
17
18
  }>;
18
19
  sendMessage(): void;
19
- sendUserMessage(): void;
20
+ sendUserMessage(): Promise<void>;
20
21
  appendEntry(): void;
21
22
  setLabel(): void;
22
23
  getActiveTools(): string[];
@@ -26,6 +27,14 @@ export declare class ExtensionRuntime implements IExtensionRuntime {
26
27
  setModel(): Promise<boolean>;
27
28
  getThinkingLevel(): ThinkingLevel;
28
29
  setThinkingLevel(): void;
30
+ getThinkingVisibility(): "visible" | "hidden";
31
+ setThinkingVisibility(): void;
32
+ cycleThinkingLevel(): ThinkingLevel | undefined;
33
+ setThinkingLevelForControl(): Promise<void>;
34
+ setThinkingVisibilityForControl(): Promise<void>;
35
+ setModelTemporaryForControl(): Promise<boolean>;
36
+ fetchUsageReportsForControl(): Promise<UsageReport[] | null>;
37
+ getThinkingScopeForControl(): "session" | "global config";
29
38
  getSessionName(): string | undefined;
30
39
  setSessionName(): Promise<void>;
31
40
  }
@@ -68,8 +68,8 @@ export declare class ExtensionRunner {
68
68
  * Forward a `credential_disabled` event from `AuthStorage` to extension handlers.
69
69
  *
70
70
  * If {@link initialize} has not yet run, the event is buffered and replayed once
71
- * initialize wires the runtime/UI context. This matters because mode controllers
72
- * (interactive, RPC, ACP, print, subagent) call `initialize()` AFTER `createAgentSession`
71
+ * initialize wires the runtime/UI context. This matters because session frontends
72
+ * (interactive, ACP, print, and subagent) call `initialize()` AFTER `createAgentSession`
73
73
  * returns, but `AuthStorage` can fire `credential_disabled` during startup model probes
74
74
  * inside `createAgentSession()`. Without deferral, extension handlers would observe
75
75
  * `hasUI=false`, an unset model, and no-op runtime actions on exactly the headline
@@ -126,7 +126,7 @@ export declare class ExtensionRunner {
126
126
  }>;
127
127
  }>;
128
128
  /** Emit input event. Transforms chain, "handled" short-circuits. */
129
- emitInput(text: string, images: ImageContent[] | undefined, source: "interactive" | "rpc" | "extension"): Promise<InputEventResult>;
129
+ emitInput(text: string, images: ImageContent[] | undefined, source: "interactive" | "sdk" | "extension"): Promise<InputEventResult>;
130
130
  emitContext(messages: AgentMessage[]): Promise<AgentMessage[]>;
131
131
  emitBeforeProviderRequest(payload: unknown): Promise<BeforeProviderRequestEventResult>;
132
132
  emitAfterProviderResponse(response: ProviderResponseMetadata, _model?: Model): Promise<void>;