@gajae-code/coding-agent 0.10.1 → 0.11.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 (474) hide show
  1. package/CHANGELOG.md +70 -2
  2. package/dist/types/append-only-mode.d.ts +1 -1
  3. package/dist/types/cli/args.d.ts +4 -5
  4. package/dist/types/cli/daemon-cli.d.ts +12 -1
  5. package/dist/types/cli/notify-cli.d.ts +21 -1
  6. package/dist/types/cli.d.ts +3 -0
  7. package/dist/types/commands/daemon.d.ts +39 -0
  8. package/dist/types/commands/launch.d.ts +3 -0
  9. package/dist/types/commands/notify.d.ts +28 -1
  10. package/dist/types/commands/sdk.d.ts +33 -0
  11. package/dist/types/config/atomic-yaml-patch.d.ts +85 -0
  12. package/dist/types/config/model-profile-activation.d.ts +35 -15
  13. package/dist/types/config/model-profiles.d.ts +11 -5
  14. package/dist/types/config/model-registry.d.ts +3 -3
  15. package/dist/types/config/model-resolver.d.ts +39 -6
  16. package/dist/types/config/model-selector-value.d.ts +17 -0
  17. package/dist/types/config/models-config-schema.d.ts +10 -6
  18. package/dist/types/config/settings-schema.d.ts +133 -6
  19. package/dist/types/config/settings.d.ts +63 -35
  20. package/dist/types/coordinator-mcp/model-preset.d.ts +7 -6
  21. package/dist/types/coordinator-mcp/server.d.ts +6 -49
  22. package/dist/types/daemon/builtin.d.ts +6 -5
  23. package/dist/types/daemon/control-types.d.ts +1 -1
  24. package/dist/types/discovery/mcp-json.d.ts +12 -1
  25. package/dist/types/extensibility/custom-tools/types.d.ts +1 -1
  26. package/dist/types/extensibility/extensions/compact-handler.d.ts +4 -2
  27. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +2 -2
  28. package/dist/types/extensibility/extensions/loader.d.ts +10 -1
  29. package/dist/types/extensibility/extensions/runner.d.ts +3 -3
  30. package/dist/types/extensibility/extensions/types.d.ts +141 -16
  31. package/dist/types/extensibility/hooks/types.d.ts +1 -1
  32. package/dist/types/gjc-runtime/launch-tmux.d.ts +3 -2
  33. package/dist/types/gjc-runtime/psmux-detect.d.ts +3 -0
  34. package/dist/types/gjc-runtime/session-state-sidecar.d.ts +3 -0
  35. package/dist/types/gjc-runtime/team-runtime.d.ts +3 -4
  36. package/dist/types/gjc-runtime/tmux-owner-isolation-cli.d.ts +13 -0
  37. package/dist/types/gjc-runtime/tmux-sessions.d.ts +4 -1
  38. package/dist/types/gjc-runtime/windows-powershell-command.d.ts +9 -0
  39. package/dist/types/harness-control-plane/operate.d.ts +5 -5
  40. package/dist/types/harness-control-plane/owner.d.ts +18 -4
  41. package/dist/types/harness-control-plane/receipts.d.ts +0 -1
  42. package/dist/types/harness-control-plane/sdk-transport.d.ts +43 -0
  43. package/dist/types/harness-control-plane/session-transport.d.ts +48 -0
  44. package/dist/types/harness-control-plane/types.d.ts +3 -4
  45. package/dist/types/lsp/index.d.ts +1 -1
  46. package/dist/types/main.d.ts +32 -38
  47. package/dist/types/modes/acp/acp-agent.d.ts +224 -53
  48. package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -0
  49. package/dist/types/modes/acp/acp-mode.d.ts +6 -15
  50. package/dist/types/modes/acp/permission-mode.d.ts +4 -0
  51. package/dist/types/modes/acp/startup-options.d.ts +6 -0
  52. package/dist/types/modes/components/agent-dashboard.d.ts +3 -0
  53. package/dist/types/modes/components/gajae-pet-widget.d.ts +1 -0
  54. package/dist/types/modes/components/model-selector.d.ts +1 -0
  55. package/dist/types/modes/components/notifications-settings-editor.d.ts +135 -0
  56. package/dist/types/modes/components/pet-capability.d.ts +37 -0
  57. package/dist/types/modes/components/pet-selector.d.ts +1 -1
  58. package/dist/types/modes/components/settings-selector.d.ts +15 -4
  59. package/dist/types/modes/components/welcome.d.ts +1 -1
  60. package/dist/types/modes/controllers/selector-controller.d.ts +35 -1
  61. package/dist/types/modes/index.d.ts +0 -4
  62. package/dist/types/modes/interactive-mode.d.ts +5 -1
  63. package/dist/types/modes/runtime-init.d.ts +2 -2
  64. package/dist/types/modes/shared/agent-wire/approval-gate.d.ts +6 -9
  65. package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +4 -6
  66. package/dist/types/modes/shared/agent-wire/event-contract.d.ts +6 -6
  67. package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +4 -9
  68. package/dist/types/modes/shared/agent-wire/event-observation.d.ts +1 -1
  69. package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +169 -30
  70. package/dist/types/modes/shared/agent-wire/workflow-gate-schema.d.ts +7 -7
  71. package/dist/types/modes/shared/agent-wire/workflow-gate-types.d.ts +105 -0
  72. package/dist/types/modes/types.d.ts +16 -1
  73. package/dist/types/runtime-mcp/client.d.ts +2 -0
  74. package/dist/types/runtime-mcp/config.d.ts +5 -1
  75. package/dist/types/runtime-mcp/manager.d.ts +8 -1
  76. package/dist/types/runtime-mcp/types.d.ts +4 -0
  77. package/dist/types/sdk/acp/adapter.d.ts +67 -0
  78. package/dist/types/sdk/acp/index.d.ts +2 -0
  79. package/dist/types/sdk/broker/broker.d.ts +53 -0
  80. package/dist/types/sdk/broker/discovery.d.ts +30 -0
  81. package/dist/types/sdk/broker/ensure.d.ts +33 -0
  82. package/dist/types/sdk/broker/identity.d.ts +3 -0
  83. package/dist/types/sdk/broker/index.d.ts +8 -0
  84. package/dist/types/sdk/broker/lifecycle-ledger.d.ts +95 -0
  85. package/dist/types/sdk/broker/lifecycle.d.ts +85 -0
  86. package/dist/types/sdk/broker/process-incarnation.d.ts +14 -0
  87. package/dist/types/sdk/broker/runtime.d.ts +33 -0
  88. package/dist/types/sdk/broker/session-index.d.ts +57 -0
  89. package/dist/types/sdk/broker/state-version.d.ts +8 -0
  90. package/dist/types/sdk/broker/transport.d.ts +9 -0
  91. package/dist/types/sdk/bus/chat-command-policy.d.ts +49 -0
  92. package/dist/types/sdk/bus/chat-daemon-cli.d.ts +21 -0
  93. package/dist/types/sdk/bus/chat-daemon-control.d.ts +111 -0
  94. package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +77 -0
  95. package/dist/types/sdk/bus/chat-effect-journal.d.ts +84 -0
  96. package/dist/types/{notifications → sdk/bus}/config-commands.d.ts +7 -2
  97. package/dist/types/sdk/bus/config.d.ts +274 -0
  98. package/dist/types/sdk/bus/conversation-store.d.ts +72 -0
  99. package/dist/types/sdk/bus/discord-conversation.d.ts +58 -0
  100. package/dist/types/sdk/bus/discord-daemon.d.ts +45 -0
  101. package/dist/types/sdk/bus/discord-live-provider.d.ts +70 -0
  102. package/dist/types/sdk/bus/discord-provider.d.ts +85 -0
  103. package/dist/types/{notifications → sdk/bus}/html-format.d.ts +2 -2
  104. package/dist/types/{notifications → sdk/bus}/index.d.ts +113 -13
  105. package/dist/types/{notifications → sdk/bus}/lifecycle-control-runtime.d.ts +4 -2
  106. package/dist/types/{notifications → sdk/bus}/lifecycle-orchestrator.d.ts +18 -21
  107. package/dist/types/{notifications → sdk/bus}/managed-daemon.d.ts +1 -1
  108. package/dist/types/sdk/bus/native-runtime-compatibility.d.ts +13 -0
  109. package/dist/types/sdk/bus/notification-orchestration.d.ts +170 -0
  110. package/dist/types/{notifications → sdk/bus}/notification-service.d.ts +7 -1
  111. package/dist/types/sdk/bus/session-control.d.ts +83 -0
  112. package/dist/types/sdk/bus/slack-conversation.d.ts +56 -0
  113. package/dist/types/sdk/bus/slack-daemon.d.ts +60 -0
  114. package/dist/types/sdk/bus/slack-live-provider.d.ts +59 -0
  115. package/dist/types/sdk/bus/slack-provider.d.ts +55 -0
  116. package/dist/types/{notifications → sdk/bus}/telegram-cli.d.ts +4 -4
  117. package/dist/types/{notifications → sdk/bus}/telegram-daemon-cli.d.ts +14 -5
  118. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +12 -0
  119. package/dist/types/{notifications → sdk/bus}/telegram-daemon-control.d.ts +2 -2
  120. package/dist/types/{notifications → sdk/bus}/telegram-daemon.d.ts +55 -17
  121. package/dist/types/{notifications → sdk/bus}/telegram-reference.d.ts +2 -2
  122. package/dist/types/sdk/bus/telegram-setup.d.ts +128 -0
  123. package/dist/types/{notifications → sdk/bus}/topic-registry.d.ts +11 -0
  124. package/dist/types/sdk/cli/index.d.ts +1 -0
  125. package/dist/types/sdk/cli/session-cli.d.ts +19 -0
  126. package/dist/types/sdk/client/client.d.ts +1 -0
  127. package/dist/types/sdk/client/discovery.d.ts +27 -0
  128. package/dist/types/sdk/client/index.d.ts +2 -0
  129. package/dist/types/sdk/host/control/dispatch.d.ts +34 -0
  130. package/dist/types/sdk/host/control/index.d.ts +2 -0
  131. package/dist/types/sdk/host/control/operations.d.ts +65 -0
  132. package/dist/types/sdk/host/events.d.ts +35 -0
  133. package/dist/types/sdk/host/host.d.ts +35 -0
  134. package/dist/types/sdk/host/index.d.ts +4 -0
  135. package/dist/types/sdk/host/query/cursor.d.ts +62 -0
  136. package/dist/types/sdk/host/query/handlers.d.ts +70 -0
  137. package/dist/types/sdk/host/query/index.d.ts +3 -0
  138. package/dist/types/sdk/host/query/revision-store.d.ts +60 -0
  139. package/dist/types/sdk/host/reverse-leases.d.ts +45 -0
  140. package/dist/types/sdk/host/types.d.ts +32 -0
  141. package/dist/types/sdk/index.d.ts +6 -0
  142. package/dist/types/sdk/lifecycle-session.d.ts +14 -0
  143. package/dist/types/sdk/mcp/index.d.ts +1 -0
  144. package/dist/types/sdk/mcp/server.d.ts +37 -0
  145. package/dist/types/sdk/models.d.ts +44 -0
  146. package/dist/types/sdk/protocol/adapter-validation.d.ts +14 -0
  147. package/dist/types/sdk/protocol/operation-registry.d.ts +24 -0
  148. package/dist/types/{sdk.d.ts → sdk/session.d.ts} +44 -38
  149. package/dist/types/sdk/startup-capability.d.ts +50 -0
  150. package/dist/types/session/agent-session.d.ts +114 -21
  151. package/dist/types/session/default-model-selection.d.ts +25 -0
  152. package/dist/types/session/fallback-chain-controller.d.ts +52 -0
  153. package/dist/types/session/session-manager.d.ts +58 -1
  154. package/dist/types/setup/credential-auto-import.d.ts +36 -6
  155. package/dist/types/tools/ask-answer-registry.d.ts +1 -1
  156. package/dist/types/tools/browser/benchmark/detector-report.d.ts +63 -0
  157. package/dist/types/tools/browser/benchmark/run-suite.d.ts +18 -0
  158. package/dist/types/tools/browser/launch.d.ts +22 -0
  159. package/dist/types/tools/browser/profile-discovery.d.ts +31 -0
  160. package/dist/types/tools/browser/profile-posture.d.ts +37 -0
  161. package/dist/types/tools/browser/profile-reuse.d.ts +39 -0
  162. package/dist/types/tools/browser/profile-warmup.d.ts +39 -0
  163. package/dist/types/tools/browser/registry.d.ts +19 -0
  164. package/dist/types/tools/browser/tab-protocol.d.ts +4 -0
  165. package/dist/types/tools/index.d.ts +8 -8
  166. package/package.json +34 -13
  167. package/scripts/build-sdk-package-smoke.ts +94 -0
  168. package/scripts/capture-notifications-settings-showcase.ts +435 -0
  169. package/scripts/compile-args.ts +4 -2
  170. package/scripts/g005-daemon-smoke.ts +4 -5
  171. package/scripts/g011-daemon-path-smoke.ts +5 -5
  172. package/scripts/generate-sdk-adapter-parity-manifest.ts +163 -0
  173. package/scripts/generate-sdk-operation-inventory.ts +867 -0
  174. package/scripts/generate-telegram-baseline-manifest.ts +128 -0
  175. package/scripts/manifest-schema.ts +124 -0
  176. package/scripts/run-test-manifest.ts +153 -0
  177. package/scripts/run-threat-model-check.ts +157 -0
  178. package/scripts/verify-gjc-sdk-canonicalization.ts +3467 -0
  179. package/scripts/verify-gjc-sdk-rename.ts +90 -0
  180. package/src/append-only-mode.ts +1 -1
  181. package/src/cli/args.ts +43 -12
  182. package/src/cli/auth-gateway-cli.ts +2 -2
  183. package/src/cli/config-cli.ts +2 -1
  184. package/src/cli/daemon-cli.ts +63 -14
  185. package/src/cli/list-models.ts +1 -1
  186. package/src/cli/notify-cli.ts +288 -286
  187. package/src/cli.ts +21 -2
  188. package/src/commands/daemon.ts +50 -6
  189. package/src/commands/harness.ts +93 -36
  190. package/src/commands/launch.ts +5 -2
  191. package/src/commands/mcp-serve.ts +19 -12
  192. package/src/commands/notify.ts +36 -3
  193. package/src/commands/sdk.ts +426 -0
  194. package/src/commit/agentic/agent.ts +1 -0
  195. package/src/config/atomic-yaml-patch.ts +423 -0
  196. package/src/config/model-profile-activation.ts +240 -89
  197. package/src/config/model-profiles.ts +37 -34
  198. package/src/config/model-registry.ts +51 -26
  199. package/src/config/model-resolver.ts +138 -51
  200. package/src/config/model-selector-value.ts +50 -0
  201. package/src/config/models-config-schema.ts +14 -21
  202. package/src/config/settings-schema.ts +128 -10
  203. package/src/config/settings.ts +1120 -158
  204. package/src/coordinator-mcp/model-preset.ts +74 -20
  205. package/src/coordinator-mcp/server.ts +1597 -3052
  206. package/src/daemon/builtin.ts +8 -5
  207. package/src/daemon/control-types.ts +1 -1
  208. package/src/defaults/gjc/skills/team/SKILL.md +4 -4
  209. package/src/discovery/mcp-json.ts +327 -20
  210. package/src/extensibility/custom-tools/types.ts +1 -1
  211. package/src/extensibility/extensions/compact-handler.ts +3 -3
  212. package/src/extensibility/extensions/get-commands-handler.ts +2 -2
  213. package/src/extensibility/extensions/loader.ts +69 -5
  214. package/src/extensibility/extensions/runner.ts +112 -4
  215. package/src/extensibility/extensions/types.ts +176 -17
  216. package/src/extensibility/hooks/types.ts +1 -1
  217. package/src/extensibility/slash-commands.ts +3 -3
  218. package/src/gjc-runtime/launch-tmux.ts +170 -86
  219. package/src/gjc-runtime/psmux-detect.ts +82 -4
  220. package/src/gjc-runtime/session-state-sidecar.ts +41 -31
  221. package/src/gjc-runtime/team-runtime.ts +54 -35
  222. package/src/gjc-runtime/tmux-owner-isolation-cli.ts +53 -17
  223. package/src/gjc-runtime/tmux-owner-isolation.ts +5 -2
  224. package/src/gjc-runtime/tmux-sessions.ts +19 -13
  225. package/src/gjc-runtime/ultragoal-guard.ts +53 -6
  226. package/src/gjc-runtime/ultragoal-runtime.ts +155 -3
  227. package/src/gjc-runtime/windows-powershell-command.ts +58 -0
  228. package/src/harness-control-plane/operate.ts +9 -9
  229. package/src/harness-control-plane/owner.ts +283 -39
  230. package/src/harness-control-plane/receipts.ts +0 -1
  231. package/src/harness-control-plane/sdk-transport.ts +395 -0
  232. package/src/harness-control-plane/session-transport.ts +94 -0
  233. package/src/harness-control-plane/types.ts +1 -1
  234. package/src/internal-urls/docs-index.generated.ts +36 -37
  235. package/src/lsp/client.ts +42 -6
  236. package/src/lsp/index.ts +2 -2
  237. package/src/main.ts +299 -204
  238. package/src/modes/DESIGN.md +258 -0
  239. package/src/modes/acp/acp-agent.ts +1228 -2612
  240. package/src/modes/acp/acp-client-bridge.ts +2 -20
  241. package/src/modes/acp/acp-event-mapper.ts +18 -2
  242. package/src/modes/acp/acp-mode.ts +8 -36
  243. package/src/modes/acp/permission-mode.ts +25 -0
  244. package/src/modes/acp/startup-options.ts +6 -0
  245. package/src/modes/components/agent-dashboard.ts +37 -17
  246. package/src/modes/components/custom-editor.ts +1 -0
  247. package/src/modes/components/gajae-pet-widget.ts +169 -20
  248. package/src/modes/components/model-selector.ts +93 -35
  249. package/src/modes/components/notifications-settings-editor.ts +1379 -0
  250. package/src/modes/components/pet-capability.ts +115 -0
  251. package/src/modes/components/pet-selector.ts +4 -6
  252. package/src/modes/components/settings-selector.ts +86 -11
  253. package/src/modes/components/welcome.ts +4 -4
  254. package/src/modes/controllers/command-controller.ts +1 -2
  255. package/src/modes/controllers/event-controller.ts +11 -16
  256. package/src/modes/controllers/extension-ui-controller.ts +357 -12
  257. package/src/modes/controllers/input-controller.ts +43 -13
  258. package/src/modes/controllers/selector-controller.ts +671 -44
  259. package/src/modes/index.ts +0 -22
  260. package/src/modes/interactive-mode.ts +108 -24
  261. package/src/modes/runtime-init.ts +298 -6
  262. package/src/modes/shared/agent-wire/approval-gate.ts +9 -11
  263. package/src/modes/shared/agent-wire/deep-interview-gate.ts +10 -11
  264. package/src/modes/shared/agent-wire/event-contract.ts +7 -8
  265. package/src/modes/shared/agent-wire/event-envelope.ts +9 -17
  266. package/src/modes/shared/agent-wire/event-observation.ts +16 -7
  267. package/src/modes/shared/agent-wire/workflow-gate-broker.ts +1254 -87
  268. package/src/modes/shared/agent-wire/workflow-gate-schema.ts +15 -15
  269. package/src/modes/shared/agent-wire/workflow-gate-types.ts +113 -0
  270. package/src/modes/types.ts +16 -1
  271. package/src/runtime-mcp/client.ts +94 -19
  272. package/src/runtime-mcp/config.ts +27 -15
  273. package/src/runtime-mcp/manager.ts +343 -105
  274. package/src/runtime-mcp/oauth-flow.ts +42 -12
  275. package/src/runtime-mcp/transports/http.ts +49 -19
  276. package/src/runtime-mcp/transports/stdio.ts +47 -28
  277. package/src/runtime-mcp/types.ts +10 -0
  278. package/src/sdk/acp/adapter.ts +418 -0
  279. package/src/sdk/acp/index.ts +2 -0
  280. package/src/sdk/broker/broker.ts +642 -0
  281. package/src/sdk/broker/discovery.ts +94 -0
  282. package/src/sdk/broker/ensure.ts +249 -0
  283. package/src/sdk/broker/identity.ts +42 -0
  284. package/src/sdk/broker/index.ts +8 -0
  285. package/src/sdk/broker/internal-source-marker-2178.txt +1 -0
  286. package/src/sdk/broker/internal-source.bunfig.toml +1 -0
  287. package/src/sdk/broker/lifecycle-ledger.ts +286 -0
  288. package/src/sdk/broker/lifecycle.ts +2157 -0
  289. package/src/sdk/broker/process-incarnation.ts +159 -0
  290. package/src/sdk/broker/runtime.ts +164 -0
  291. package/src/sdk/broker/session-index.ts +318 -0
  292. package/src/sdk/broker/state-version.ts +23 -0
  293. package/src/sdk/broker/transport.ts +125 -0
  294. package/src/sdk/bus/chat-command-policy.ts +107 -0
  295. package/src/sdk/bus/chat-daemon-cli.ts +214 -0
  296. package/src/sdk/bus/chat-daemon-control.ts +713 -0
  297. package/src/sdk/bus/chat-daemon-runtime.ts +526 -0
  298. package/src/sdk/bus/chat-effect-journal.ts +353 -0
  299. package/src/{notifications → sdk/bus}/config-commands.ts +39 -10
  300. package/src/sdk/bus/config.ts +433 -0
  301. package/src/sdk/bus/conversation-store.ts +391 -0
  302. package/src/sdk/bus/discord-conversation.ts +85 -0
  303. package/src/sdk/bus/discord-daemon.ts +2275 -0
  304. package/src/sdk/bus/discord-live-provider.ts +521 -0
  305. package/src/sdk/bus/discord-provider.ts +56 -0
  306. package/src/{notifications → sdk/bus}/html-format.ts +2 -2
  307. package/src/sdk/bus/index.ts +3943 -0
  308. package/src/{notifications → sdk/bus}/lifecycle-commands.ts +2 -0
  309. package/src/{notifications → sdk/bus}/lifecycle-control-runtime.ts +225 -196
  310. package/src/{notifications → sdk/bus}/lifecycle-orchestrator.ts +161 -74
  311. package/src/{notifications → sdk/bus}/managed-daemon.ts +2 -2
  312. package/src/sdk/bus/native-runtime-compatibility.ts +42 -0
  313. package/src/sdk/bus/natives-augment.d.ts +38 -0
  314. package/src/sdk/bus/notification-orchestration.ts +535 -0
  315. package/src/{notifications → sdk/bus}/notification-service.ts +106 -12
  316. package/src/sdk/bus/session-control.ts +333 -0
  317. package/src/sdk/bus/slack-conversation.ts +74 -0
  318. package/src/sdk/bus/slack-daemon.ts +2144 -0
  319. package/src/sdk/bus/slack-live-provider.ts +380 -0
  320. package/src/sdk/bus/slack-provider.ts +76 -0
  321. package/src/{notifications → sdk/bus}/telegram-cli.ts +8 -8
  322. package/src/sdk/bus/telegram-daemon-cli.ts +330 -0
  323. package/src/sdk/bus/telegram-daemon-contract.ts +14 -0
  324. package/src/{notifications → sdk/bus}/telegram-daemon-control.ts +4 -4
  325. package/src/{notifications → sdk/bus}/telegram-daemon.ts +502 -54
  326. package/src/{notifications → sdk/bus}/telegram-reference.ts +2 -2
  327. package/src/sdk/bus/telegram-setup.ts +663 -0
  328. package/src/{notifications → sdk/bus}/topic-registry.ts +32 -0
  329. package/src/sdk/cli/index.ts +1 -0
  330. package/src/sdk/cli/session-cli.ts +275 -0
  331. package/src/sdk/client/client.ts +1 -0
  332. package/src/sdk/client/discovery.ts +108 -0
  333. package/src/sdk/client/index.ts +2 -0
  334. package/src/sdk/host/control/dispatch.ts +367 -0
  335. package/src/sdk/host/control/index.ts +10 -0
  336. package/src/sdk/host/control/operations.ts +63 -0
  337. package/src/sdk/host/events.ts +91 -0
  338. package/src/sdk/host/host.ts +296 -0
  339. package/src/sdk/host/index.ts +4 -0
  340. package/src/sdk/host/query/cursor.ts +189 -0
  341. package/src/sdk/host/query/handlers.ts +533 -0
  342. package/src/sdk/host/query/index.ts +3 -0
  343. package/src/sdk/host/query/revision-store.ts +1126 -0
  344. package/src/sdk/host/reverse-leases.ts +325 -0
  345. package/src/sdk/host/types.ts +29 -0
  346. package/src/sdk/index.ts +13 -0
  347. package/src/sdk/lifecycle-session.ts +39 -0
  348. package/src/sdk/mcp/index.ts +1 -0
  349. package/src/sdk/mcp/server.ts +332 -0
  350. package/src/sdk/models.ts +168 -0
  351. package/src/sdk/protocol/adapter-validation.ts +48 -0
  352. package/src/sdk/protocol/operation-inventory.generated.json +5654 -0
  353. package/src/sdk/protocol/operation-registry.ts +312 -0
  354. package/src/{sdk.ts → sdk/session.ts} +339 -212
  355. package/src/sdk/startup-capability.ts +189 -0
  356. package/src/session/agent-session.ts +2470 -866
  357. package/src/session/default-model-selection.ts +93 -0
  358. package/src/session/fallback-chain-controller.ts +136 -0
  359. package/src/session/session-manager.ts +447 -13
  360. package/src/session/session-storage.ts +8 -1
  361. package/src/setup/credential-auto-import.ts +290 -35
  362. package/src/setup/hermes/templates/operator-instructions.v1.md +3 -5
  363. package/src/slash-commands/builtin-registry.ts +33 -30
  364. package/src/task/executor.ts +62 -13
  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/telegram-send.ts +2 -2
  384. package/vendor/insane-search/MANIFEST.json +2 -1
  385. package/vendor/insane-search/engine/bias_check.py +4 -1
  386. package/vendor/insane-search/engine/phase0.py +26 -1
  387. package/dist/types/harness-control-plane/rpc-adapter.d.ts +0 -69
  388. package/dist/types/modes/bridge/auth.d.ts +0 -12
  389. package/dist/types/modes/bridge/bridge-client-bridge.d.ts +0 -9
  390. package/dist/types/modes/bridge/bridge-mode.d.ts +0 -47
  391. package/dist/types/modes/bridge/bridge-ui-context.d.ts +0 -88
  392. package/dist/types/modes/bridge/event-stream.d.ts +0 -8
  393. package/dist/types/modes/rpc/host-tools.d.ts +0 -1
  394. package/dist/types/modes/rpc/host-uris.d.ts +0 -1
  395. package/dist/types/modes/rpc/rpc-client.d.ts +0 -299
  396. package/dist/types/modes/rpc/rpc-mode.d.ts +0 -86
  397. package/dist/types/modes/rpc/rpc-socket-security.d.ts +0 -10
  398. package/dist/types/modes/rpc/rpc-types.d.ts +0 -810
  399. package/dist/types/modes/shared/agent-wire/command-contract.d.ts +0 -18
  400. package/dist/types/modes/shared/agent-wire/command-dispatch.d.ts +0 -37
  401. package/dist/types/modes/shared/agent-wire/command-validation.d.ts +0 -2
  402. package/dist/types/modes/shared/agent-wire/handshake.d.ts +0 -56
  403. package/dist/types/modes/shared/agent-wire/host-tool-bridge.d.ts +0 -16
  404. package/dist/types/modes/shared/agent-wire/host-uri-bridge.d.ts +0 -17
  405. package/dist/types/modes/shared/agent-wire/protocol.d.ts +0 -25
  406. package/dist/types/modes/shared/agent-wire/responses.d.ts +0 -4
  407. package/dist/types/modes/shared/agent-wire/scopes.d.ts +0 -18
  408. package/dist/types/modes/shared/agent-wire/session-registry.d.ts +0 -25
  409. package/dist/types/modes/shared/agent-wire/ui-request-broker.d.ts +0 -42
  410. package/dist/types/modes/shared/agent-wire/ui-result.d.ts +0 -27
  411. package/dist/types/modes/shared/agent-wire/unattended-action-policy.d.ts +0 -29
  412. package/dist/types/modes/shared/agent-wire/unattended-audit.d.ts +0 -68
  413. package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +0 -166
  414. package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +0 -127
  415. package/dist/types/notifications/config.d.ts +0 -132
  416. package/src/harness-control-plane/rpc-adapter.ts +0 -290
  417. package/src/modes/bridge/auth.ts +0 -41
  418. package/src/modes/bridge/bridge-client-bridge.ts +0 -47
  419. package/src/modes/bridge/bridge-mode.ts +0 -675
  420. package/src/modes/bridge/bridge-ui-context.ts +0 -200
  421. package/src/modes/bridge/event-stream.ts +0 -70
  422. package/src/modes/rpc/host-tools.ts +0 -1
  423. package/src/modes/rpc/host-uris.ts +0 -1
  424. package/src/modes/rpc/rpc-client.ts +0 -1166
  425. package/src/modes/rpc/rpc-mode.ts +0 -1029
  426. package/src/modes/rpc/rpc-socket-security.ts +0 -115
  427. package/src/modes/rpc/rpc-types.ts +0 -637
  428. package/src/modes/shared/agent-wire/command-contract.ts +0 -18
  429. package/src/modes/shared/agent-wire/command-dispatch.ts +0 -498
  430. package/src/modes/shared/agent-wire/command-validation.ts +0 -181
  431. package/src/modes/shared/agent-wire/handshake.ts +0 -157
  432. package/src/modes/shared/agent-wire/host-tool-bridge.ts +0 -197
  433. package/src/modes/shared/agent-wire/host-uri-bridge.ts +0 -236
  434. package/src/modes/shared/agent-wire/protocol.ts +0 -46
  435. package/src/modes/shared/agent-wire/responses.ts +0 -17
  436. package/src/modes/shared/agent-wire/scopes.ts +0 -94
  437. package/src/modes/shared/agent-wire/session-registry.ts +0 -109
  438. package/src/modes/shared/agent-wire/ui-request-broker.ts +0 -150
  439. package/src/modes/shared/agent-wire/ui-result.ts +0 -48
  440. package/src/modes/shared/agent-wire/unattended-action-policy.ts +0 -365
  441. package/src/modes/shared/agent-wire/unattended-audit.ts +0 -176
  442. package/src/modes/shared/agent-wire/unattended-run-controller.ts +0 -426
  443. package/src/modes/shared/agent-wire/unattended-session.ts +0 -528
  444. package/src/notifications/config.ts +0 -219
  445. package/src/notifications/index.ts +0 -1835
  446. package/src/notifications/telegram-daemon-cli.ts +0 -243
  447. package/src/tools/puppeteer/09_stealth_locale.txt +0 -46
  448. /package/dist/types/{notifications → sdk/bus}/attachment-registry.d.ts +0 -0
  449. /package/dist/types/{notifications → sdk/bus}/chat-adapters.d.ts +0 -0
  450. /package/dist/types/{notifications → sdk/bus}/daemon-paths.d.ts +0 -0
  451. /package/dist/types/{notifications → sdk/bus}/engine.d.ts +0 -0
  452. /package/dist/types/{notifications → sdk/bus}/helpers.d.ts +0 -0
  453. /package/dist/types/{notifications → sdk/bus}/lifecycle-commands.d.ts +0 -0
  454. /package/dist/types/{notifications → sdk/bus}/operator-runtime.d.ts +0 -0
  455. /package/dist/types/{notifications → sdk/bus}/rate-limit-pool.d.ts +0 -0
  456. /package/dist/types/{notifications → sdk/bus}/recent-activity.d.ts +0 -0
  457. /package/dist/types/{notifications → sdk/bus}/reply-sent-store.d.ts +0 -0
  458. /package/dist/types/{notifications → sdk/bus}/rich-draft.d.ts +0 -0
  459. /package/dist/types/{notifications → sdk/bus}/rich-render.d.ts +0 -0
  460. /package/dist/types/{notifications → sdk/bus}/threaded-inbound.d.ts +0 -0
  461. /package/dist/types/{notifications → sdk/bus}/threaded-render.d.ts +0 -0
  462. /package/src/{notifications → sdk/bus}/attachment-registry.ts +0 -0
  463. /package/src/{notifications → sdk/bus}/chat-adapters.ts +0 -0
  464. /package/src/{notifications → sdk/bus}/daemon-paths.ts +0 -0
  465. /package/src/{notifications → sdk/bus}/engine.ts +0 -0
  466. /package/src/{notifications → sdk/bus}/helpers.ts +0 -0
  467. /package/src/{notifications → sdk/bus}/operator-runtime.ts +0 -0
  468. /package/src/{notifications → sdk/bus}/rate-limit-pool.ts +0 -0
  469. /package/src/{notifications → sdk/bus}/recent-activity.ts +0 -0
  470. /package/src/{notifications → sdk/bus}/reply-sent-store.ts +0 -0
  471. /package/src/{notifications → sdk/bus}/rich-draft.ts +0 -0
  472. /package/src/{notifications → sdk/bus}/rich-render.ts +0 -0
  473. /package/src/{notifications → sdk/bus}/threaded-inbound.ts +0 -0
  474. /package/src/{notifications → sdk/bus}/threaded-render.ts +0 -0
@@ -1,637 +0,0 @@
1
- /**
2
- * RPC protocol types for headless operation.
3
- *
4
- * Commands are sent as JSON lines on stdin.
5
- * Responses and events are emitted as JSON lines on stdout.
6
- */
7
- import type { AgentMessage, AgentToolResult, ResolvedThinkingLevel, ThinkingLevel } from "@gajae-code/agent-core";
8
- import type { CompactionResult } from "@gajae-code/agent-core/compaction";
9
- import type { Effort, ImageContent, Model } from "@gajae-code/ai";
10
- import type { BashResult } from "../../exec/bash-executor";
11
- import type { ContextUsage } from "../../extensibility/extensions/types";
12
- import type { SessionStats } from "../../session/agent-session";
13
- import type { TodoPhase } from "../../tools/todo-write";
14
-
15
- export type RpcGetStateInclude = "tools" | "dumpTools" | "systemPrompt";
16
- export type RpcCapability = "compact_message_update";
17
-
18
- // ============================================================================
19
- // RPC Commands (stdin)
20
- // ============================================================================
21
-
22
- export type RpcCommand =
23
- // Prompting
24
- | { id?: string; type: "prompt"; message: string; images?: ImageContent[]; streamingBehavior?: "steer" | "followUp" }
25
- | { id?: string; type: "steer"; message: string; images?: ImageContent[] }
26
- | { id?: string; type: "follow_up"; message: string; images?: ImageContent[] }
27
- | { id?: string; type: "abort" }
28
- | { id?: string; type: "abort_and_prompt"; message: string; images?: ImageContent[] }
29
- | { id?: string; type: "new_session"; parentSession?: string }
30
-
31
- // State
32
- | { id?: string; type: "get_state"; include?: RpcGetStateInclude[] }
33
- | { id?: string; type: "set_todos"; phases: TodoPhase[] }
34
- | { id?: string; type: "set_host_tools"; tools: RpcHostToolDefinition[] }
35
- | { id?: string; type: "set_host_uri_schemes"; schemes: RpcHostUriSchemeDefinition[] }
36
- | { id?: string; type: "get_pending_workflow_gates" }
37
- | { id?: string; type: "set_capabilities"; capabilities: RpcCapability[] }
38
-
39
- // Model
40
- | { id?: string; type: "set_model"; provider: string; modelId: string }
41
- | {
42
- id?: string;
43
- type: "set_default_model_selection";
44
- provider: string;
45
- modelId: string;
46
- thinkingLevel?: ResolvedThinkingLevel;
47
- }
48
- | { id?: string; type: "cycle_model" }
49
- | { id?: string; type: "get_available_models" }
50
-
51
- // Thinking
52
- | { id?: string; type: "set_thinking_level"; level: ThinkingLevel }
53
- | { id?: string; type: "cycle_thinking_level" }
54
-
55
- // Queue modes
56
- | { id?: string; type: "set_steering_mode"; mode: "all" | "one-at-a-time" }
57
- | { id?: string; type: "set_follow_up_mode"; mode: "all" | "one-at-a-time" }
58
- | { id?: string; type: "set_interrupt_mode"; mode: "immediate" | "wait" }
59
-
60
- // Compaction
61
- | { id?: string; type: "compact"; customInstructions?: string }
62
- | { id?: string; type: "set_auto_compaction"; enabled: boolean }
63
-
64
- // Retry
65
- | { id?: string; type: "set_auto_retry"; enabled: boolean }
66
- | { id?: string; type: "abort_retry" }
67
-
68
- // Bash
69
- | { id?: string; type: "bash"; command: string }
70
- | { id?: string; type: "abort_bash" }
71
-
72
- // Session
73
- | { id?: string; type: "get_session_stats" }
74
- | { id?: string; type: "export_html"; outputPath?: string }
75
- | { id?: string; type: "switch_session"; sessionPath: string }
76
- | { id?: string; type: "branch"; entryId: string }
77
- | { id?: string; type: "get_branch_messages" }
78
- | { id?: string; type: "get_last_assistant_text" }
79
- | { id?: string; type: "set_session_name"; name: string }
80
- | { id?: string; type: "handoff"; customInstructions?: string }
81
-
82
- // Messages
83
- | { id?: string; type: "get_messages" }
84
-
85
- // Login
86
- | { id?: string; type: "get_login_providers" }
87
- | { id?: string; type: "login"; providerId: string }
88
-
89
- // Unattended control plane (#318/#319 declaration handled here at #315 contract level)
90
- | { id?: string; type: "negotiate_unattended"; declaration: RpcUnattendedDeclaration }
91
-
92
- // Workflow gate answer (inbound response to a workflow_gate event)
93
- | ({ id?: string; type: "workflow_gate_response" } & RpcWorkflowGateResponse);
94
-
95
- // ============================================================================
96
- // RPC State
97
- // ============================================================================
98
-
99
- export interface RpcSessionState {
100
- model?: Model;
101
- thinkingLevel: ThinkingLevel | undefined;
102
- isStreaming: boolean;
103
- isCompacting: boolean;
104
- steeringMode: "all" | "one-at-a-time";
105
- followUpMode: "all" | "one-at-a-time";
106
- interruptMode: "immediate" | "wait";
107
- sessionFile?: string;
108
- sessionId: string;
109
- sessionName?: string;
110
- autoCompactionEnabled: boolean;
111
- messageCount: number;
112
- queuedMessageCount: number;
113
- todoPhases: TodoPhase[];
114
- /** Optional static system prompt blocks. Omitted by default; request with get_state include ["systemPrompt"]. */
115
- systemPrompt?: string[];
116
- /** Optional static tool schemas. Omitted by default; request with get_state include ["tools"]. */
117
- dumpTools?: Array<{ name: string; description: string; parameters: unknown }>;
118
- /** Current context window usage. Null tokens/percent when unknown (e.g. right after compaction). */
119
- contextUsage?: ContextUsage;
120
- }
121
-
122
- export interface RpcHandoffResult {
123
- savedPath?: string;
124
- }
125
-
126
- // ============================================================================
127
- // RPC Responses (stdout)
128
- // ============================================================================
129
-
130
- // Success responses with data
131
- export type RpcResponse =
132
- // Prompting (async - events follow)
133
- | { id?: string; type: "response"; command: "prompt"; success: true }
134
- | { id?: string; type: "response"; command: "steer"; success: true }
135
- | { id?: string; type: "response"; command: "follow_up"; success: true }
136
- | { id?: string; type: "response"; command: "abort"; success: true }
137
- | { id?: string; type: "response"; command: "abort_and_prompt"; success: true }
138
- | { id?: string; type: "response"; command: "new_session"; success: true; data: { cancelled: boolean } }
139
-
140
- // State
141
- | { id?: string; type: "response"; command: "get_state"; success: true; data: RpcSessionState }
142
- | { id?: string; type: "response"; command: "set_todos"; success: true; data: { todoPhases: TodoPhase[] } }
143
- | { id?: string; type: "response"; command: "set_host_tools"; success: true; data: { toolNames: string[] } }
144
- | { id?: string; type: "response"; command: "set_host_uri_schemes"; success: true; data: { schemes: string[] } }
145
- | {
146
- id?: string;
147
- type: "response";
148
- command: "get_pending_workflow_gates";
149
- success: true;
150
- data: { gates: RpcWorkflowGate[] };
151
- }
152
- | {
153
- id?: string;
154
- type: "response";
155
- command: "set_capabilities";
156
- success: true;
157
- data: { acceptedCapabilities: RpcCapability[]; unsupported: string[] };
158
- }
159
-
160
- // Model
161
- | {
162
- id?: string;
163
- type: "response";
164
- command: "set_model";
165
- success: true;
166
- data: Model;
167
- }
168
- | {
169
- id?: string;
170
- type: "response";
171
- command: "set_default_model_selection";
172
- success: true;
173
- data: { provider: string; modelId: string; thinkingLevel: ResolvedThinkingLevel };
174
- }
175
- | {
176
- id?: string;
177
- type: "response";
178
- command: "cycle_model";
179
- success: true;
180
- data: { model: Model; thinkingLevel: ThinkingLevel | undefined; isScoped: boolean } | null;
181
- }
182
- | {
183
- id?: string;
184
- type: "response";
185
- command: "get_available_models";
186
- success: true;
187
- data: { models: Model[] };
188
- }
189
-
190
- // Thinking
191
- | { id?: string; type: "response"; command: "set_thinking_level"; success: true }
192
- | {
193
- id?: string;
194
- type: "response";
195
- command: "cycle_thinking_level";
196
- success: true;
197
- data: { level: Effort } | null;
198
- }
199
-
200
- // Queue modes
201
- | { id?: string; type: "response"; command: "set_steering_mode"; success: true }
202
- | { id?: string; type: "response"; command: "set_follow_up_mode"; success: true }
203
- | { id?: string; type: "response"; command: "set_interrupt_mode"; success: true }
204
-
205
- // Compaction
206
- | { id?: string; type: "response"; command: "compact"; success: true; data: CompactionResult }
207
- | { id?: string; type: "response"; command: "set_auto_compaction"; success: true }
208
-
209
- // Retry
210
- | { id?: string; type: "response"; command: "set_auto_retry"; success: true }
211
- | { id?: string; type: "response"; command: "abort_retry"; success: true }
212
-
213
- // Bash
214
- | { id?: string; type: "response"; command: "bash"; success: true; data: BashResult }
215
- | { id?: string; type: "response"; command: "abort_bash"; success: true }
216
-
217
- // Session
218
- | { id?: string; type: "response"; command: "get_session_stats"; success: true; data: SessionStats }
219
- | { id?: string; type: "response"; command: "export_html"; success: true; data: { path: string } }
220
- | { id?: string; type: "response"; command: "switch_session"; success: true; data: { cancelled: boolean } }
221
- | { id?: string; type: "response"; command: "branch"; success: true; data: { text: string; cancelled: boolean } }
222
- | {
223
- id?: string;
224
- type: "response";
225
- command: "get_branch_messages";
226
- success: true;
227
- data: { messages: Array<{ entryId: string; text: string }> };
228
- }
229
- | {
230
- id?: string;
231
- type: "response";
232
- command: "get_last_assistant_text";
233
- success: true;
234
- data: { text: string | null };
235
- }
236
- | { id?: string; type: "response"; command: "set_session_name"; success: true }
237
- | { id?: string; type: "response"; command: "handoff"; success: true; data: RpcHandoffResult | null }
238
-
239
- // Messages
240
- | { id?: string; type: "response"; command: "get_messages"; success: true; data: { messages: AgentMessage[] } }
241
-
242
- // Login
243
- | {
244
- id?: string;
245
- type: "response";
246
- command: "get_login_providers";
247
- success: true;
248
- data: { providers: Array<{ id: string; name: string; available: boolean; authenticated: boolean }> };
249
- }
250
- | { id?: string; type: "response"; command: "login"; success: true; data: { providerId: string } }
251
-
252
- // Unattended + workflow gates
253
- | { id?: string; type: "response"; command: "negotiate_unattended"; success: true; data: RpcUnattendedAccepted }
254
- | {
255
- id?: string;
256
- type: "response";
257
- command: "workflow_gate_response";
258
- success: true;
259
- data: RpcWorkflowGateResolution;
260
- }
261
-
262
- // Error response (any command can fail)
263
- | { id?: string; type: "response"; command: string; success: false; error: string | object };
264
-
265
- // ============================================================================
266
- // Extension UI Events (stdout)
267
- // ============================================================================
268
-
269
- /** Emitted when an extension needs user input */
270
- export type RpcExtensionUIRequest =
271
- | { type: "extension_ui_request"; id: string; method: "select"; title: string; options: string[]; timeout?: number }
272
- | { type: "extension_ui_request"; id: string; method: "confirm"; title: string; message: string; timeout?: number }
273
- | {
274
- type: "extension_ui_request";
275
- id: string;
276
- method: "input";
277
- title: string;
278
- placeholder?: string;
279
- timeout?: number;
280
- }
281
- | {
282
- type: "extension_ui_request";
283
- id: string;
284
- method: "editor";
285
- title: string;
286
- prefill?: string;
287
- promptStyle?: boolean;
288
- }
289
- | { type: "extension_ui_request"; id: string; method: "cancel"; targetId: string }
290
- | {
291
- type: "extension_ui_request";
292
- id: string;
293
- method: "notify";
294
- message: string;
295
- notifyType?: "info" | "warning" | "error";
296
- }
297
- | {
298
- type: "extension_ui_request";
299
- id: string;
300
- method: "setStatus";
301
- statusKey: string;
302
- statusText: string | undefined;
303
- }
304
- | {
305
- type: "extension_ui_request";
306
- id: string;
307
- method: "setWidget";
308
- widgetKey: string;
309
- widgetLines: string[] | undefined;
310
- widgetPlacement?: "aboveEditor" | "belowEditor";
311
- }
312
- | { type: "extension_ui_request"; id: string; method: "setTitle"; title: string }
313
- | { type: "extension_ui_request"; id: string; method: "set_editor_text"; text: string }
314
- | { type: "extension_ui_request"; id: string; method: "open_url"; url: string; instructions?: string };
315
-
316
- // ============================================================================
317
- // Host Tool Frames (bidirectional)
318
- // ============================================================================
319
-
320
- export interface RpcHostToolDefinition {
321
- name: string;
322
- label?: string;
323
- description: string;
324
- parameters: Record<string, unknown>;
325
- hidden?: boolean;
326
- }
327
-
328
- /** Emitted by the RPC server when it needs the host to execute a registered tool. */
329
- export interface RpcHostToolCallRequest {
330
- type: "host_tool_call";
331
- id: string;
332
- toolCallId: string;
333
- toolName: string;
334
- arguments: Record<string, unknown>;
335
- }
336
-
337
- /** Emitted by the RPC server when a pending host tool call should be aborted. */
338
- export interface RpcHostToolCancelRequest {
339
- type: "host_tool_cancel";
340
- id: string;
341
- targetId: string;
342
- }
343
-
344
- /** Sent by the host to stream partial tool updates back to the RPC server. */
345
- export interface RpcHostToolUpdate {
346
- type: "host_tool_update";
347
- id: string;
348
- partialResult: AgentToolResult<unknown>;
349
- }
350
-
351
- /** Sent by the host to complete a pending tool call. */
352
- export interface RpcHostToolResult {
353
- type: "host_tool_result";
354
- id: string;
355
- result: AgentToolResult<unknown>;
356
- isError?: boolean;
357
- }
358
-
359
- // ============================================================================
360
- // Host URI Frames (bidirectional)
361
- // ============================================================================
362
-
363
- export interface RpcHostUriSchemeDefinition {
364
- /** URL scheme without trailing `://` (e.g. `db`, `notion`). */
365
- scheme: string;
366
- /** Optional human-readable description for logs/diagnostics. */
367
- description?: string;
368
- /** When true, the write tool is allowed to dispatch writes to this scheme. */
369
- writable?: boolean;
370
- /** When true, downstream callers suppress hashline anchors for resolved content. */
371
- immutable?: boolean;
372
- }
373
-
374
- export type RpcHostUriOperation = "read" | "write";
375
-
376
- /** Emitted by the RPC server when it needs the host to satisfy a URI operation. */
377
- export interface RpcHostUriRequest {
378
- type: "host_uri_request";
379
- id: string;
380
- operation: RpcHostUriOperation;
381
- url: string;
382
- /** Present for write operations. */
383
- content?: string;
384
- }
385
-
386
- /** Emitted by the RPC server when a pending URI request should be aborted. */
387
- export interface RpcHostUriCancelRequest {
388
- type: "host_uri_cancel";
389
- id: string;
390
- targetId: string;
391
- }
392
-
393
- /** Sent by the host to complete a pending URI request. */
394
- export interface RpcHostUriResult {
395
- type: "host_uri_result";
396
- id: string;
397
- /**
398
- * Required for successful `read` results. Ignored for `write` success.
399
- * Set on errors when a textual explanation accompanies `isError`.
400
- */
401
- content?: string;
402
- /** Defaults to `text/plain` when omitted. */
403
- contentType?: "text/markdown" | "application/json" | "text/plain";
404
- /** Optional resolution notes propagated to the read tool. */
405
- notes?: string[];
406
- /** Overrides the scheme-level `immutable` flag for this single resolution. */
407
- immutable?: boolean;
408
- /** When true, surface the result content as an error to the caller. */
409
- isError?: boolean;
410
- /** Optional error message; preferred over `content` for error surfacing. */
411
- error?: string;
412
- }
413
-
414
- // ============================================================================
415
- // Extension UI Commands (stdin)
416
- // ============================================================================
417
-
418
- /** Response to an extension UI request */
419
- export type RpcExtensionUIResponse =
420
- | { type: "extension_ui_response"; id: string; value: string }
421
- | { type: "extension_ui_response"; id: string; confirmed: boolean }
422
- | { type: "extension_ui_response"; id: string; cancelled: true; timedOut?: boolean };
423
-
424
- // ============================================================================
425
- // Helper type for extracting command types
426
- // ============================================================================
427
-
428
- export type RpcCommandType = RpcCommand["type"];
429
-
430
- // ============================================================================
431
- // Workflow Gate Contract (#315)
432
- // ============================================================================
433
-
434
- /**
435
- * Lifecycle stages that emit machine-addressable gates. v1 is single-agent;
436
- * `team` parallel execution over RPC is deferred, so it is intentionally absent
437
- * from this union. Gate construction rejects any other stage value.
438
- */
439
- export type RpcWorkflowStage = "deep-interview" | "ralplan" | "ultragoal";
440
-
441
- /** Reserved stage names that are explicitly not part of the v1 contract. */
442
- export const RESERVED_WORKFLOW_STAGES: readonly string[] = ["team"];
443
-
444
- export type RpcWorkflowGateKind = "question" | "approval" | "execution";
445
-
446
- /**
447
- * The documented JSON Schema 2020-12 subset supported by the gate validator.
448
- * Schemas containing any keyword outside this shape are rejected at gate
449
- * construction time so the server never advertises a schema it cannot validate.
450
- */
451
- export interface RpcJsonSchema {
452
- type?: "string" | "number" | "integer" | "boolean" | "object" | "array" | "null";
453
- enum?: unknown[];
454
- const?: unknown;
455
- properties?: Record<string, RpcJsonSchema>;
456
- required?: string[];
457
- additionalProperties?: boolean | RpcJsonSchema;
458
- items?: RpcJsonSchema;
459
- minLength?: number;
460
- maxLength?: number;
461
- pattern?: string;
462
- minItems?: number;
463
- maxItems?: number;
464
- uniqueItems?: boolean;
465
- minimum?: number;
466
- maximum?: number;
467
- title?: string;
468
- description?: string;
469
- oneOf?: RpcJsonSchema[];
470
- anyOf?: RpcJsonSchema[];
471
- }
472
-
473
- export interface RpcWorkflowGateOption {
474
- value: unknown;
475
- label: string;
476
- description?: string;
477
- }
478
-
479
- export interface RpcWorkflowGateContext {
480
- title?: string;
481
- plan?: string;
482
- source?: string;
483
- prompt?: string;
484
- summary?: string;
485
- stage_state?: Record<string, unknown>;
486
- artifact_refs?: Array<{ kind: string; path?: string; sha256?: string }>;
487
- language?: string;
488
- }
489
-
490
- /** Outbound event: a machine-addressable workflow gate awaiting an answer. */
491
- export interface RpcWorkflowGate {
492
- type: "workflow_gate";
493
- /** Run-scoped, monotonic, stable id (e.g. `wg_<run>_<stage>_000001`). */
494
- gate_id: string;
495
- stage: RpcWorkflowStage;
496
- kind: RpcWorkflowGateKind;
497
- schema: RpcJsonSchema;
498
- /** Canonical hash of `schema`; advertised hash must equal server validation hash. */
499
- schema_hash: string;
500
- options?: RpcWorkflowGateOption[];
501
- context: RpcWorkflowGateContext;
502
- created_at: string;
503
- required: true;
504
- }
505
-
506
- /** Inbound: the agent's answer to a workflow gate. */
507
- export interface RpcWorkflowGateResponse {
508
- gate_id: string;
509
- answer: unknown;
510
- /** Optional idempotency key; same key + body returns the cached resolution. */
511
- idempotency_key?: string;
512
- }
513
-
514
- /** Outcome of resolving a gate, surfaced back to the answering client. */
515
- export interface RpcWorkflowGateResolution {
516
- gate_id: string;
517
- status: "accepted" | "rejected";
518
- answer_hash: string;
519
- resolved_at: string;
520
- /** Present only when `status === "rejected"`. */
521
- error?: RpcWorkflowGateValidationError;
522
- }
523
-
524
- /** Typed error shape for schema validation failures (#315 acceptance). */
525
- export interface RpcWorkflowGateValidationError {
526
- code: "invalid_workflow_gate_answer";
527
- gate_id: string;
528
- schema_hash: string;
529
- errors: Array<{ path: string; keyword: string; message: string; expected?: unknown }>;
530
- }
531
-
532
- // ============================================================================
533
- // Unattended Declaration Contract (#318/#319 — declared at #315 boundary)
534
- // ============================================================================
535
-
536
- export interface RpcUnattendedBudget {
537
- max_tokens: number;
538
- max_tool_calls: number;
539
- max_wall_time_ms: number;
540
- max_cost_usd: number;
541
- }
542
-
543
- export interface RpcUnattendedDeclaration {
544
- /** Identity of the operating external agent, recorded in the audit trail. */
545
- actor: string;
546
- budget: RpcUnattendedBudget;
547
- /** Coarse command scopes the agent may use (maps to BridgeCommandScope). */
548
- scopes: string[];
549
- /** Action classes the agent is allowed to perform (default-deny otherwise). */
550
- action_allowlist: string[];
551
- }
552
-
553
- export interface RpcUnattendedAccepted {
554
- run_id: string;
555
- actor: string;
556
- budget: RpcUnattendedBudget;
557
- scopes: string[];
558
- action_allowlist: string[];
559
- accepted_at: string;
560
- }
561
-
562
- export type RpcBudgetMetric = "tokens" | "tool_calls" | "wall_time" | "cost";
563
-
564
- /** Typed payload emitted when a declared budget cap is breached (#318). */
565
- export interface RpcBudgetExceeded {
566
- code: "budget_exceeded";
567
- metric: RpcBudgetMetric;
568
- limit: number;
569
- observed: number;
570
- /** The accounting phase that detected the breach. */
571
- phase: string;
572
- run_id: string;
573
- session_id?: string;
574
- /** `aborting` = breach detected, async abort initiated; settled status follows in audit. */
575
- abort_status: "aborting" | "aborted" | "abort_failed";
576
- }
577
-
578
- export type RpcUnattendedRefusalCode =
579
- | "unattended_not_negotiated"
580
- | "incomplete_budget"
581
- | "unsupported_budget_metric"
582
- | "invalid_unattended_declaration"
583
- | "unattended_aborted";
584
-
585
- /** Typed refusal emitted when unattended mode cannot start or continue (fail-closed). */
586
- export interface RpcUnattendedRefused {
587
- code: RpcUnattendedRefusalCode;
588
- message: string;
589
- }
590
-
591
- // ============================================================================
592
- // Unattended Action Authorization Contract (#319)
593
- // ============================================================================
594
-
595
- /** v1 action taxonomy: every authorized operation maps to one of these classes. */
596
- export type RpcUnattendedActionClass =
597
- | "command.prompt"
598
- | "command.control"
599
- | "command.bash"
600
- | "command.export"
601
- | "command.session"
602
- | "command.model"
603
- | "command.message_read"
604
- | "command.host_tools"
605
- | "command.host_uri"
606
- | "command.admin"
607
- | "bash.readonly"
608
- | "bash.mutating"
609
- | "bash.destructive"
610
- | "git.force_push"
611
- | "file.delete"
612
- | "file.write"
613
- | "host_tool.invoke"
614
- | "host_uri.read"
615
- | "host_uri.write"
616
- | "auth.login";
617
-
618
- /** Typed error when a command's coarse scope is not in the declared allowlist. */
619
- export interface RpcScopeDenied {
620
- code: "scope_denied";
621
- scope: string;
622
- command?: string;
623
- run_id: string;
624
- session_id?: string;
625
- /** Always true: enforcement happens before the side effect runs. */
626
- pre_side_effect: true;
627
- }
628
-
629
- /** Typed error when an action class is not in the declared allowlist (default-deny). */
630
- export interface RpcActionDenied {
631
- code: "action_denied";
632
- action: string;
633
- command?: string;
634
- run_id: string;
635
- session_id?: string;
636
- pre_side_effect: true;
637
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * Canonical command-surface boundary for the agent-wire adapters.
3
- *
4
- * RPC and Bridge SHARE the JSONL `RpcCommand` grammar and dispatch it through
5
- * the single `dispatchRpcCommand` entry in `command-dispatch.ts`. This module
6
- * re-exports that command surface so the shared contract has one documented home.
7
- *
8
- * ACP does NOT use `RpcCommand`. It keeps its richer `@agentclientprotocol/sdk`
9
- * command surface (fork/resume/elicitation/session-mode/session-model) and only
10
- * shares the lower session/event layer (`AgentWireEventPayload`). ACP must never
11
- * import `dispatchRpcCommand`.
12
- *
13
- * Event semantics are intentionally elsewhere: `event-contract.ts` owns the event
14
- * types + registry and `event-observation.ts` owns the single semantic mapping.
15
- */
16
- export type { RpcCommand, RpcResponse } from "../../rpc/rpc-types";
17
- export { dispatchRpcCommand, type RpcCommandDispatchContext } from "./command-dispatch";
18
- export { isRpcCommandType, RPC_COMMAND_TYPES, type RpcCommandType } from "./scopes";