@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,9 +1,9 @@
1
1
  import { type ThinkingLevel as ThinkingLevelValue } from "@gajae-code/agent-core";
2
2
  import type { Effort } from "@gajae-code/ai";
3
- import { Container, SettingsList } from "@gajae-code/tui";
3
+ import { type Component, Container } from "@gajae-code/tui";
4
4
  import { type SettingPath } from "../../config/settings";
5
5
  import type { StatusLinePreset, StatusLineSegmentId, StatusLineSeparatorStyle } from "../../config/settings-schema";
6
- import { PluginSettingsComponent } from "./plugin-settings";
6
+ import { type NotificationsEditorOperations } from "./notifications-settings-editor";
7
7
  import type { StatusLineSegmentOptions } from "./status-line";
8
8
  /**
9
9
  * Dynamic context for settings that need runtime data.
@@ -67,7 +67,9 @@ export declare class SettingsSelectorComponent extends Container {
67
67
  #private;
68
68
  private readonly context;
69
69
  private readonly callbacks;
70
- constructor(context: SettingsRuntimeContext, callbacks: SettingsCallbacks);
71
- getFocusComponent(): SettingsList | PluginSettingsComponent;
70
+ private readonly notificationsOperations?;
71
+ constructor(context: SettingsRuntimeContext, callbacks: SettingsCallbacks, notificationsOperations?: NotificationsEditorOperations | undefined);
72
+ getFocusComponent(): Component;
73
+ dispose(): void;
72
74
  handleInput(data: string): void;
73
75
  }
@@ -5,7 +5,7 @@ export interface RecentSession {
5
5
  }
6
6
  export interface LspServerInfo {
7
7
  name: string;
8
- status: "ready" | "error" | "connecting";
8
+ status: "idle" | "ready" | "error" | "connecting";
9
9
  fileTypes: string[];
10
10
  }
11
11
  export type WelcomeLogoMode = "unicode" | "square" | "ascii";
@@ -22,9 +22,9 @@ export declare class CommandController {
22
22
  handleToolsCommand(): void;
23
23
  handleContextCommand(): void;
24
24
  handleMemoryCommand(text: string): Promise<void>;
25
- handleClearCommand(): Promise<void>;
25
+ handleClearCommand(): Promise<boolean>;
26
26
  handleContextClearCommand(): Promise<void>;
27
- handleDropCommand(): Promise<void>;
27
+ handleDropCommand(): Promise<boolean>;
28
28
  handleForkCommand(): Promise<void>;
29
29
  handleMoveCommand(targetPath: string): Promise<void>;
30
30
  handleRenameCommand(title: string): Promise<void>;
@@ -7,6 +7,7 @@ export declare class ExtensionUiController {
7
7
  #private;
8
8
  private ctx;
9
9
  constructor(ctx: InteractiveModeContext);
10
+ captureSessionUiCleanup(): () => void;
10
11
  /**
11
12
  * Initialize the hook system with TUI-based UI context.
12
13
  */
@@ -2,6 +2,13 @@ import type { Component } from "@gajae-code/tui";
2
2
  import type { ModelProfileConfig } from "../../config/models-config-schema";
3
3
  import { type Settings } from "../../config/settings";
4
4
  import type { InteractiveModeContext, OAuthSelectorOptions } from "../../modes/types";
5
+ import { getNotificationConfig, maskToken } from "../../sdk/bus/config";
6
+ import { proposedTelegramIdentity, reconcileCommittedTelegramConfiguration, removeTelegramConfiguration, saveTelegramInactive } from "../../sdk/bus/notification-orchestration";
7
+ import { buildNotificationStatusReport, checkNotificationHealth, recoverNotifications, sanitizeDiagnostic, sendNotificationTest } from "../../sdk/bus/notification-service";
8
+ import { ensureTelegramDaemonRunningDetailed, unregisterNotificationRoot } from "../../sdk/bus/telegram-daemon";
9
+ import { runTelegramSetup } from "../../sdk/bus/telegram-setup";
10
+ import { type CredentialAutoImportStateStore } from "../../setup/credential-auto-import";
11
+ import type { NotificationsEditorOperations } from "../components/notifications-settings-editor";
5
12
  import type { StatusLineSettings } from "../components/status-line";
6
13
  import type { JobsObserver } from "../jobs-observer";
7
14
  import type { SessionObserverRegistry } from "../session-observer-registry";
@@ -11,10 +18,37 @@ import type { SessionObserverRegistry } from "../session-observer-registry";
11
18
  * previewed row count (and every other field) can never drift out of sync.
12
19
  */
13
20
  export declare function buildStatusLineSettings(settingsInstance: Settings): StatusLineSettings;
21
+ export interface NotificationsEditorAdapterContext {
22
+ settings: Settings;
23
+ session: Pick<InteractiveModeContext["session"], "notificationSessionController">;
24
+ sessionManager: Pick<InteractiveModeContext["sessionManager"], "getCwd" | "getSessionId">;
25
+ notifyConfigChanged?: () => Promise<void> | void;
26
+ }
27
+ export interface NotificationsEditorOperationDependencies {
28
+ getNotificationConfig: typeof getNotificationConfig;
29
+ maskToken: typeof maskToken;
30
+ buildNotificationStatusReport: typeof buildNotificationStatusReport;
31
+ checkNotificationHealth: typeof checkNotificationHealth;
32
+ sendNotificationTest: typeof sendNotificationTest;
33
+ recoverNotifications: typeof recoverNotifications;
34
+ sanitizeDiagnostic: typeof sanitizeDiagnostic;
35
+ ensureTelegramDaemonRunningDetailed: typeof ensureTelegramDaemonRunningDetailed;
36
+ runTelegramSetup: typeof runTelegramSetup;
37
+ proposedTelegramIdentity: typeof proposedTelegramIdentity;
38
+ reconcileCommittedTelegramConfiguration: typeof reconcileCommittedTelegramConfiguration;
39
+ saveTelegramInactive: typeof saveTelegramInactive;
40
+ removeTelegramConfiguration: typeof removeTelegramConfiguration;
41
+ unregisterNotificationRoot: typeof unregisterNotificationRoot;
42
+ }
43
+ /**
44
+ * Concrete service adapter for the direct Notifications settings tab. Secrets remain in this closure's
45
+ * WeakMap and are never exposed through the editor's safe draft contract.
46
+ */
47
+ export declare function createNotificationsEditorOperations(ctx: NotificationsEditorAdapterContext, overrides?: Partial<NotificationsEditorOperationDependencies>): NotificationsEditorOperations;
14
48
  export declare class SelectorController {
15
49
  #private;
16
50
  private ctx;
17
- constructor(ctx: InteractiveModeContext);
51
+ constructor(ctx: InteractiveModeContext, credentialAutoImportStateStore?: CredentialAutoImportStateStore);
18
52
  /**
19
53
  * Shows a selector component in place of the editor.
20
54
  * @param create Factory that receives a `done` callback and returns the component and focus target
@@ -2,9 +2,5 @@
2
2
  * Run modes for the coding agent.
3
3
  */
4
4
  export { runAcpMode } from "./acp";
5
- export { runBridgeMode } from "./bridge/bridge-mode";
6
5
  export { InteractiveMode, type InteractiveModeOptions } from "./interactive-mode";
7
6
  export { type PrintModeOptions, runPrintMode } from "./print-mode";
8
- export { defineRpcClientTool, type ModelInfo, RpcClient, type RpcClientCustomTool, type RpcClientOptions, type RpcClientToolContext, type RpcClientToolResult, type RpcEventListener, } from "./rpc/rpc-client";
9
- export { runRpcMode } from "./rpc/rpc-mode";
10
- export type { RpcCommand, RpcHostToolCallRequest, RpcHostToolCancelRequest, RpcHostToolDefinition, RpcHostToolResult, RpcHostToolUpdate, RpcResponse, RpcSessionState, } from "./rpc/rpc-types";
@@ -9,6 +9,7 @@ import type { ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetConte
9
9
  import type { CompactOptions } from "../extensibility/extensions/types";
10
10
  import { type Skill } from "../extensibility/skills";
11
11
  import { type PlanApprovalDetails } from "../plan-mode/approved-plan";
12
+ import type { NotificationSessionReconcileResult, NotificationSessionStatus } from "../sdk/bus/session-control";
12
13
  import type { AgentSession, AgentSessionEvent } from "../session/agent-session";
13
14
  import { HistoryStorage } from "../session/history-storage";
14
15
  import type { SessionContext, SessionManager } from "../session/session-manager";
@@ -119,6 +120,8 @@ export declare class InteractiveMode implements InteractiveModeContext {
119
120
  readonly lspServers: LspStartupServerInfo[] | undefined;
120
121
  mcpManager?: import("../runtime-mcp").MCPManager;
121
122
  constructor(session: AgentSession, version: string, changelogMarkdown?: string | undefined, setToolUIContext?: (uiContext: ExtensionUIContext, hasUI: boolean) => void, lspServers?: LspStartupServerInfo[] | undefined, mcpManager?: import("../runtime-mcp").MCPManager, eventBus?: EventBus);
123
+ getCurrentSessionNotificationStatus(): NotificationSessionStatus | undefined;
124
+ setCurrentSessionNotificationsEnabled(enabled: boolean): Promise<NotificationSessionReconcileResult | undefined>;
122
125
  init(): Promise<void>;
123
126
  /** Reload slash commands and autocomplete for the provided working directory. */
124
127
  refreshSlashCommandState(cwd?: string): Promise<void>;
@@ -208,9 +211,9 @@ export declare class InteractiveMode implements InteractiveModeContext {
208
211
  handleHelpCommand(): void;
209
212
  handleToolsCommand(): void;
210
213
  handleContextCommand(): void;
211
- handleClearCommand(): Promise<void>;
214
+ handleClearCommand(): Promise<boolean>;
212
215
  handleContextClearCommand(): Promise<void>;
213
- handleDropCommand(): Promise<void>;
216
+ handleDropCommand(): Promise<boolean>;
214
217
  handleForkCommand(): Promise<void>;
215
218
  handleMoveCommand(targetPath: string): Promise<void>;
216
219
  handleRenameCommand(title: string): Promise<void>;
@@ -7,9 +7,9 @@ export interface InitializeExtensionsOptions {
7
7
  reportSendError: (action: ExtensionSendAction, error: Error) => void;
8
8
  /** Reports a runtime error surfaced through {@link ExtensionRunner.onError}. */
9
9
  reportRuntimeError: (error: ExtensionError) => void;
10
- /** Optional shutdown hook (rpc mode signals its loop; print mode is a no-op). */
10
+ /** Optional shutdown hook for caller-specific lifecycle signaling. */
11
11
  onShutdown?: () => void;
12
- /** Optional UI context (rpc supplies one; print runs headless). */
12
+ /** Optional interactive UI context; omitted for headless callers. */
13
13
  uiContext?: ExtensionUIContext;
14
14
  }
15
15
  /**
@@ -7,16 +7,13 @@
7
7
  * - ultragoal execution sign-off -> `workflow_gate` { kind: "execution" } whose
8
8
  * answer is approve / decline (+ optional reason).
9
9
  *
10
- * Gates remain mandatory; the external agent substitutes for the human at the
11
- * answer boundary only. Declining / requesting changes is honored and is NEVER
12
- * silently treated as approval.
10
+ * Gates remain mandatory; the remote SDK client answers at the gate boundary.
11
+ * Declining / requesting changes is honored and is NEVER silently treated as approval.
13
12
  *
14
- * This is the pure mapping primitive; routing ralplan/ultragoal through it when
15
- * an unattended controller + gate broker are attached is wired with the transport
16
- * in #321 and exercised end-to-end by #323.
13
+ * This is the pure mapping primitive used by SDK-native workflow gate emitters.
17
14
  */
18
- import type { RpcWorkflowGateContext } from "../../rpc/rpc-types";
19
15
  import type { OpenGateInput } from "./workflow-gate-broker";
16
+ import type { WorkflowGateContext } from "./workflow-gate-types";
20
17
  export type ApprovalDecision = "approve" | "request-changes" | "reject";
21
18
  export type ExecutionDecision = "approve" | "decline";
22
19
  export interface ApprovalGateAnswer {
@@ -42,9 +39,9 @@ export declare class ApprovalGateError extends Error {
42
39
  constructor(code: "invalid_answer_shape" | "unknown_decision" | "missing_comments", message: string);
43
40
  }
44
41
  /** Build the ralplan `pending approval` -> `workflow_gate { kind: "approval" }` open-input. */
45
- export declare function approvalGate(context?: RpcWorkflowGateContext): OpenGateInput;
42
+ export declare function approvalGate(context?: WorkflowGateContext): OpenGateInput;
46
43
  /** Build the ultragoal execution sign-off -> `workflow_gate { kind: "execution" }` open-input. */
47
- export declare function executionGate(context?: RpcWorkflowGateContext): OpenGateInput;
44
+ export declare function executionGate(context?: WorkflowGateContext): OpenGateInput;
48
45
  /**
49
46
  * Decode a ralplan approval answer. `request-changes` requires comments and is
50
47
  * NEVER treated as approval; only an explicit `approve` advances.
@@ -7,12 +7,10 @@
7
7
  * back into the exact QuestionResult shape the human path produces, so ambiguity
8
8
  * scoring/state updates proceed identically whether a human or an agent answers.
9
9
  *
10
- * This is the pure mapping primitive. Routing the ask tool through it (instead of
11
- * the interactive select/editor UI) when an unattended controller + gate broker
12
- * are attached is wired with the transport in #321 and exercised by #323.
10
+ * This is the pure mapping primitive used by SDK-native workflow gate emitters.
13
11
  */
14
- import type { RpcWorkflowGateKind, RpcWorkflowStage } from "../../rpc/rpc-types";
15
12
  import type { OpenGateInput } from "./workflow-gate-broker";
13
+ import type { WorkflowGateKind, WorkflowStage } from "./workflow-gate-types";
16
14
  /** "Other (type your own)" sentinel, mirroring the interactive ask tool. */
17
15
  export declare const GATE_OTHER_OPTION = "Other (type your own)";
18
16
  /** Optional structured deep-interview round metadata supplied by the agent. */
@@ -24,8 +22,8 @@ export interface AskGateDeepInterviewState {
24
22
  ambiguity: number;
25
23
  }
26
24
  export interface AskGateWorkflowGateMeta {
27
- stage: RpcWorkflowStage;
28
- kind: RpcWorkflowGateKind;
25
+ stage: WorkflowStage;
26
+ kind: WorkflowGateKind;
29
27
  }
30
28
  export interface AskGateQuestion {
31
29
  id: string;
@@ -3,8 +3,8 @@
3
3
  * for AgentSession events and bounded owner observations.
4
4
  *
5
5
  * Two distinct consumer-facing shapes, deliberately NOT collapsed into one:
6
- * - `AgentWireEventPayload`: rich, full `AgentSessionEvent` for renderers
7
- * (ACP SDK notifications, RPC/Bridge event frames).
6
+ * - `AgentWireEventPayload`: rich, full `AgentSessionEvent` for event
7
+ * consumers on any agent-wire transport.
8
8
  * - `AgentWireOwnerObservation`: bounded/redacted owner evidence for control
9
9
  * planes (Harness). Never carries assistant text, message deltas, raw tool
10
10
  * args, raw command output, raw tool results, answers, or oversize strings.
@@ -23,8 +23,8 @@ export type AgentWireEventType = AgentSessionEvent["type"];
23
23
  /** Every agent-session event type, derived from the exhaustive registry. */
24
24
  export declare const AGENT_WIRE_EVENT_TYPES: readonly AgentWireEventType[];
25
25
  /**
26
- * Rich event payload. Carries the full `AgentSessionEvent` so renderers (ACP,
27
- * RPC, Bridge) can present message content, tool args/results, todo state, etc.
26
+ * Rich event payload. Carries the full `AgentSessionEvent` so event consumers
27
+ * can present message content, tool args/results, todo state, and related data.
28
28
  */
29
29
  export interface AgentWireEventPayload {
30
30
  event_type: AgentWireEventType;
@@ -35,7 +35,7 @@ export type AgentWireCompactAssistantMessageEvent = AssistantMessageEvent extend
35
35
  } ? Omit<TEvent, "partial" | "message" | "error"> : never : never;
36
36
  export interface AgentWireCompactMessageUpdatePayload {
37
37
  event_type: "message_update";
38
- /** Compact RPC opt-in payload: delta-only update plus minimal routing metadata. */
38
+ /** Compact opt-in payload: delta-only update plus minimal routing metadata. */
39
39
  compact: true;
40
40
  message_id: string | null;
41
41
  content_index: number | null;
@@ -66,7 +66,7 @@ export interface AgentWireOwnerObservation {
66
66
  eventType?: AgentWireEventType;
67
67
  /** Set when this observation derives from a non-event wire frame. */
68
68
  frameType?: string;
69
- /** Owner event kind (e.g. `rpc_tool_started`). */
69
+ /** Owner event kind (for example, a tool-started observation). */
70
70
  kind: string;
71
71
  /** Bounded observed signal, or null when the frame carries no signal. */
72
72
  signal: AgentWireObservedSignal | null;
@@ -21,9 +21,6 @@ export declare class AgentWireFrameSequencer {
21
21
  /** Build the next envelope of the given type with a fresh seq + frame id. */
22
22
  next<TType extends AgentWireFrameType, TPayload>(type: TType, payload: TPayload, correlationId?: string): AgentWireFrameEnvelope<TType, TPayload>;
23
23
  }
24
- /** Back-compat alias for {@link AgentWireFrameSequencer}. */
25
- export declare const BridgeFrameSequencer: typeof AgentWireFrameSequencer;
26
- export type BridgeFrameSequencer = AgentWireFrameSequencer;
27
24
  /** Serialize a single `AgentSessionEvent` into a canonical `event` wire frame. */
28
25
  export declare function toAgentWireEventFrame(event: AgentSessionEvent, sequencer: AgentWireFrameSequencer): AgentWireEventFrame;
29
26
  /** Build the rich event payload (renderer-facing) for an `AgentSessionEvent`. */
@@ -35,13 +32,13 @@ export interface AgentWireCompactMessageUpdateOptions {
35
32
  checkpointInterval?: number;
36
33
  }
37
34
  /**
38
- * Stateful compact event serializer for opt-in RPC clients.
35
+ * Stateful compact event serializer for opt-in wire clients (e.g. the SDK).
39
36
  *
40
37
  * Only `message_update` changes shape: it carries the immutable provider delta
41
38
  * plus message/content identifiers, with periodic full-message checkpoints that
42
39
  * are cloned synchronously before the caller returns to the event loop. All other
43
- * event variants remain canonical full event frames so legacy bridge/RPC behavior
44
- * and terminal `message_end` reconstruction are unchanged.
40
+ * event variants remain canonical full event frames so downstream consumers and
41
+ * terminal `message_end` reconstruction are unchanged.
45
42
  */
46
43
  export declare class AgentWireCompactEventEncoder {
47
44
  #private;
@@ -49,12 +46,10 @@ export declare class AgentWireCompactEventEncoder {
49
46
  frame(event: AgentSessionEvent): AgentWireCompactEventFrame;
50
47
  }
51
48
  export declare function toAgentWireCompactEventFrame(event: AgentSessionEvent, encoder: AgentWireCompactEventEncoder): AgentWireCompactEventFrame;
52
- /** Back-compat alias for {@link toAgentWireEventFrame}. */
53
- export declare const toBridgeEventFrame: typeof toAgentWireEventFrame;
54
49
  /**
55
50
  * Serialize a `workflow_gate` event into a sequenced wire frame (#321). The
56
51
  * gate_id is stamped as the correlation id so the answer (posted to the
57
52
  * ui-responses endpoint) can be matched, and the monotonic `seq` gives replay
58
53
  * while `frame_id` + gate_id give idempotency.
59
54
  */
60
- export declare function toBridgeWorkflowGateFrame(gate: import("../../rpc/rpc-types").RpcWorkflowGate, sequencer: AgentWireFrameSequencer): import("./protocol").BridgeWorkflowGateFrame;
55
+ export declare function toAgentWireWorkflowGateFrame(gate: import("./workflow-gate-types").WorkflowGate, sequencer: AgentWireFrameSequencer): AgentWireFrameEnvelope<"workflow_gate", import("./workflow-gate-types").WorkflowGate>;
@@ -34,4 +34,4 @@ export declare function observeAgentWireEventPayload(payload: AgentWireEventPayl
34
34
  * frames delegate to {@link observeAgentWireEventPayload}; non-event frames are
35
35
  * mapped here so owners never re-parse protocol semantics privately.
36
36
  */
37
- export declare function observeRpcOutboundFrame(frame: Record<string, unknown>): AgentWireOwnerObservation | null;
37
+ export declare function observeAgentWireFrame(frame: Record<string, unknown>): AgentWireOwnerObservation | null;
@@ -1,14 +1,12 @@
1
1
  import type { AskSelectedAckOutcome } from "../../../tools";
2
- import type { RpcWorkflowGate, RpcWorkflowGateContext, RpcWorkflowGateKind, RpcWorkflowGateOption, RpcWorkflowGateResolution, RpcWorkflowGateResponse, RpcWorkflowGateValidationError, RpcWorkflowStage } from "../../rpc/rpc-types";
2
+ import type { WorkflowGate, WorkflowGateContext, WorkflowGateDiagnostic, WorkflowGateKind, WorkflowGateOption, WorkflowGateQueryRecord, WorkflowGateResolution, WorkflowGateResponse, WorkflowGateValidationError, WorkflowStage } from "./workflow-gate-types";
3
3
  export type PersistedSemanticDisposition = "commit" | "resolve_without_commit";
4
4
  export type PersistedResolutionOrigin = {
5
5
  kind: "generic";
6
- channel: "rpc" | "bridge" | "other";
6
+ channel: "sdk" | "other";
7
7
  } | {
8
8
  kind: "telegram_notification";
9
9
  interactionActionId: string;
10
- } | {
11
- kind: "legacy_unknown";
12
10
  };
13
11
  export type PersistedAckPolicy = {
14
12
  kind: "none";
@@ -27,51 +25,154 @@ export interface GateResolutionOptions {
27
25
  ackPolicy?: PersistedAckPolicy;
28
26
  beforeAdvance?: () => Promise<void>;
29
27
  }
28
+ export type WorkflowGateTerminalProof = "retired" | "already_terminal" | "not_published";
29
+ export interface WorkflowGateTerminalController {
30
+ completeGateInteractions(gateId: string): WorkflowGateTerminalProof | Promise<WorkflowGateTerminalProof>;
31
+ cancelGateInteractions(gateId: string, reason: string): void | Promise<void>;
32
+ }
33
+ export interface NotificationGateResolutionOptions {
34
+ interactionActionId: string;
35
+ replyReceiptId: string;
36
+ answerJson: string;
37
+ idempotencyKey?: string;
38
+ requestSelectedAck(input: {
39
+ replyReceiptId: string;
40
+ actionId: string;
41
+ commitKey: string;
42
+ daemonDeadlineAt: number;
43
+ hostTimeoutMs: number;
44
+ }): Promise<AskSelectedAckOutcome>;
45
+ resolveClaim(): void;
46
+ closeClaimInvalid(reason: string): void;
47
+ }
48
+ export interface AskSelectedAckRecoveryParticipant {
49
+ requestRecoveredAskSelectedAck(input: {
50
+ sessionId: string;
51
+ actionId: string;
52
+ commitKey: string;
53
+ deadlineAt: number;
54
+ hostTimeoutMs: number;
55
+ }): Promise<AskSelectedAckOutcome>;
56
+ }
57
+ /** SDK-native surface for emitting a workflow gate and awaiting its answer. */
58
+ export interface WorkflowGateEmitter {
59
+ isUnattended(): boolean;
60
+ emitGate(input: OpenGateInput): Promise<unknown>;
61
+ onGateEmitted?(listener: (gate: WorkflowGate) => void): () => void;
62
+ resolveGate?(response: WorkflowGateResponse): Promise<WorkflowGateResolution>;
63
+ resolveGateFromNotification?(response: WorkflowGateResponse, options: NotificationGateResolutionOptions): Promise<WorkflowGateResolution>;
64
+ registerGateTerminalController?(controller: WorkflowGateTerminalController): () => void;
65
+ /** Records the exact terminalization proof established by direct control preparation. */
66
+ prepareTerminalization?(gateId: string, proof: WorkflowGateTerminalProof): boolean;
67
+ /** Discards a prepared proof when the gate remains pending after a rejected direct response. */
68
+ clearPreparedTerminalization?(gateId: string): void;
69
+ listPendingGates?(): WorkflowGate[];
70
+ listGateDiagnostics?(): WorkflowGateDiagnostic[];
71
+ listWorkflowGateQueryRecords?(): WorkflowGateQueryRecord[];
72
+ quarantineGate?(gateId: string): void;
73
+ setAckRecoveryParticipant?(participant: AskSelectedAckRecoveryParticipant | null): void;
74
+ /** Explicit host hook for same-process accepted-but-unadvanced recovery. */
75
+ recoverAcceptedGates?(): Promise<string[]>;
76
+ /** Permanently revoke all in-process continuation authority and reject their waiters. */
77
+ fence?(): void;
78
+ /** Temporarily make this emitter unavailable while a session transition is reversible. */
79
+ suspend?(): void;
80
+ resume?(): void;
81
+ }
82
+ /**
83
+ * SDK-native workflow-gate emitter backed by a durable broker/store pair.
84
+ *
85
+ * Answers are resolved by the broker, so validation and idempotency have one
86
+ * authority. Listeners replay durable pending gates when attached, allowing an
87
+ * SDK host that starts after a gate was opened to discover it.
88
+ */
89
+ export declare class BrokerWorkflowGateEmitter implements WorkflowGateEmitter {
90
+ #private;
91
+ constructor(runId: string, store: GateStore, emitterHooks?: Pick<BrokerHooks, "advance">);
92
+ isUnattended(): boolean;
93
+ emitGate(input: OpenGateInput): Promise<unknown>;
94
+ onGateEmitted(listener: (gate: WorkflowGate) => void): () => void;
95
+ resolveGate(response: WorkflowGateResponse): Promise<WorkflowGateResolution>;
96
+ prepareTerminalization(gateId: string, proof: WorkflowGateTerminalProof): boolean;
97
+ clearPreparedTerminalization(gateId: string): void;
98
+ listPendingGates(): WorkflowGate[];
99
+ listGateDiagnostics(): WorkflowGateDiagnostic[];
100
+ listWorkflowGateQueryRecords(): WorkflowGateQueryRecord[];
101
+ suspend(): void;
102
+ resume(): void;
103
+ fence(): void;
104
+ quarantineGate(gateId: string): void;
105
+ registerGateTerminalController(controller: WorkflowGateTerminalController): () => void;
106
+ setAckRecoveryParticipant(participant: AskSelectedAckRecoveryParticipant | null): void;
107
+ recoverAcceptedGates(): Promise<string[]>;
108
+ resolveGateFromNotification(response: WorkflowGateResponse, options: NotificationGateResolutionOptions): Promise<WorkflowGateResolution>;
109
+ }
30
110
  export interface PersistedGate {
31
- gate: RpcWorkflowGate;
32
- status: "pending" | "accepted";
111
+ gate: WorkflowGate;
112
+ status: "pending" | "accepted" | "quarantined";
113
+ ownerInstanceId?: string;
33
114
  idempotencyKey?: string;
34
115
  responseHash?: string;
35
- /** Raw accepted answer, retained so a crashed advance can be replayed. */
116
+ /** Raw accepted answer, retained so a same-process advance can be replayed. */
36
117
  answer?: unknown;
37
- resolution?: RpcWorkflowGateResolution;
118
+ resolution?: WorkflowGateResolution;
38
119
  advanced: boolean;
120
+ /** Exact presentation terminalization completed before workflow advancement. */
121
+ terminalized?: boolean;
122
+ /** Exact presentation terminalization proof recorded before workflow advancement. */
123
+ terminalProof?: WorkflowGateTerminalProof;
39
124
  semanticDisposition?: PersistedSemanticDisposition;
40
125
  resolutionOrigin?: PersistedResolutionOrigin;
41
126
  ackPolicy?: PersistedAckPolicy;
127
+ lifecycle?: WorkflowGateDiagnostic["lifecycle"];
42
128
  }
43
129
  export interface GateStore {
44
- nextSeq(stage: RpcWorkflowStage): number;
130
+ nextSeq(stage: WorkflowStage): number;
45
131
  put(record: PersistedGate): void;
46
132
  get(gateId: string): PersistedGate | undefined;
47
- /** All persisted gate records (used for crash recovery). */
133
+ /** Atomically quarantines records owned by a prior runtime before exposure. */
134
+ beginRuntimeInstance(instanceId: string): void;
135
+ /** All persisted gate records (used for same-process recovery and Q12). */
48
136
  list(): PersistedGate[];
49
137
  }
50
138
  export declare class MemoryGateStore implements GateStore {
51
139
  private counters;
52
140
  private gates;
53
- nextSeq(stage: RpcWorkflowStage): number;
141
+ private runtimeInstanceId;
142
+ nextSeq(stage: WorkflowStage): number;
54
143
  put(record: PersistedGate): void;
55
144
  get(gateId: string): PersistedGate | undefined;
145
+ beginRuntimeInstance(instanceId: string): void;
56
146
  list(): PersistedGate[];
57
147
  }
148
+ export declare function isUnsupportedWindowsDirectorySyncError(error: unknown, platform?: NodeJS.Platform): boolean;
149
+ /** A write may have reached `rename` but not the directory fsync durability barrier. */
150
+ export declare class GateStoreWriteError extends Error {
151
+ readonly certainty: "not_committed" | "uncertain";
152
+ constructor(certainty: "not_committed" | "uncertain", cause: unknown);
153
+ }
58
154
  /** Crash-durable JSON-file backed store. Writes the full state on every mutation. */
59
155
  export declare class FileGateStore implements GateStore {
60
156
  private readonly filePath;
157
+ private readonly sync;
61
158
  private state;
62
- constructor(filePath: string);
159
+ private certaintyUnknown;
160
+ constructor(filePath: string, sync?: (fd: number) => void);
63
161
  private load;
64
- private flush;
65
- nextSeq(stage: RpcWorkflowStage): number;
162
+ private flushState;
163
+ private commit;
164
+ private reconcileCertainty;
165
+ nextSeq(stage: WorkflowStage): number;
66
166
  put(record: PersistedGate): void;
67
167
  get(gateId: string): PersistedGate | undefined;
168
+ beginRuntimeInstance(instanceId: string): void;
68
169
  list(): PersistedGate[];
69
170
  }
70
171
  export type GateAuditEvent = {
71
172
  event: "gate_emitted";
72
173
  gate_id: string;
73
- stage: RpcWorkflowStage;
74
- kind: RpcWorkflowGateKind;
174
+ stage: WorkflowStage;
175
+ kind: WorkflowGateKind;
75
176
  } | {
76
177
  event: "gate_response_accepted";
77
178
  gate_id: string;
@@ -98,49 +199,88 @@ export type GateAuditEvent = {
98
199
  };
99
200
  export interface BrokerHooks {
100
201
  /** Called once when a pending gate has been persisted and should be emitted. */
101
- emit?(gate: RpcWorkflowGate): void;
202
+ emit?(gate: WorkflowGate): void;
102
203
  /**
103
204
  * Invoked to advance the workflow after an accepted resolution is durably
104
205
  * committed. MUST be idempotent keyed by `gate.gate_id`: `recover()` replays
105
206
  * it for any gate left `accepted` but not `advanced` by a crash.
106
207
  */
107
- advance?(gate: RpcWorkflowGate, answer: unknown): void | Promise<void>;
108
- /** Runs after durable acceptance and before advance, including crash recovery. */
208
+ advance?(gate: WorkflowGate, answer: unknown): void | Promise<void>;
209
+ /** Runs after durable acceptance and before presentation terminalization, including crash recovery. */
109
210
  finalizeAccepted?(record: PersistedGate): Promise<void>;
211
+ /**
212
+ * Terminalizes the exact presentation before `advance` can run and returns
213
+ * proof for the durable record. `not_published` explicitly proves that no
214
+ * presentation existed. On failure it MUST revoke authority or throw.
215
+ */
216
+ terminalizeAccepted?(record: PersistedGate): WorkflowGateTerminalProof | Promise<WorkflowGateTerminalProof>;
217
+ /** Runs only after a successful advance has been durably marked advanced. */
218
+ completeAccepted?(record: PersistedGate): void | Promise<void>;
110
219
  /** Append-only audit sink. */
111
220
  audit?(event: GateAuditEvent): void;
112
221
  }
222
+ /** Live in-process continuation authority for one emitted gate. */
223
+ export interface GateContinuation {
224
+ activate(gate: WorkflowGate): void;
225
+ isLive(gateId: string): boolean;
226
+ release?(gateId: string): void;
227
+ /** Explicitly declares that this direct continuation owns no presentation. */
228
+ terminalProof?: "not_published";
229
+ }
113
230
  export interface OpenGateInput {
114
- stage: RpcWorkflowStage;
115
- kind: RpcWorkflowGateKind;
116
- schema: RpcWorkflowGate["schema"];
117
- options?: RpcWorkflowGateOption[];
118
- context?: RpcWorkflowGateContext;
231
+ stage: WorkflowStage;
232
+ kind: WorkflowGateKind;
233
+ schema: WorkflowGate["schema"];
234
+ options?: WorkflowGateOption[];
235
+ context?: WorkflowGateContext;
236
+ /** Optional diagnostic gate replaced by this newly persisted gate. */
237
+ supersedesGateId?: string;
119
238
  }
120
239
  export declare class WorkflowGateBrokerError extends Error {
121
240
  readonly code: "unknown_gate" | "already_resolved" | "idempotency_conflict" | "invalid_workflow_stage";
122
241
  constructor(code: "unknown_gate" | "already_resolved" | "idempotency_conflict" | "invalid_workflow_stage", message: string);
123
242
  }
124
243
  export declare class WorkflowGateBroker {
244
+ #private;
125
245
  private readonly runId;
126
246
  private readonly store;
127
247
  private readonly hooks;
248
+ private readonly instanceId;
128
249
  private readonly recovering;
129
250
  private readonly gateLocks;
251
+ private readonly continuations;
130
252
  private withGateLock;
131
- constructor(runId: string, store: GateStore, hooks?: BrokerHooks);
253
+ constructor(runId: string, store: GateStore, hooks?: BrokerHooks, instanceId?: `${string}-${string}-${string}-${string}-${string}`);
132
254
  classifyDisposition(gateId: string, answer: unknown): PersistedSemanticDisposition;
133
- validationError(gateId: string, keyword: string, message: string): RpcWorkflowGateValidationError;
255
+ validationError(gateId: string, keyword: string, message: string): WorkflowGateValidationError;
134
256
  updateAckPolicy(gateId: string, ackPolicy: PersistedAckPolicy): void;
135
257
  private runShort;
258
+ private hasLiveContinuation;
259
+ hasRecoverableAcceptedGate(): boolean;
260
+ prepareTerminalization(gateId: string, proof: WorkflowGateTerminalProof): boolean;
261
+ clearPreparedTerminalization(gateId: string): void;
262
+ /**
263
+ * Fences a gate after an uncertain control outcome by deliberately releasing
264
+ * this runtime's continuation authority. The durable diagnostic is retained
265
+ * for recovery; it is never republished as a pending gate.
266
+ */
267
+ quarantineGate(gateId: string): void;
268
+ /** Revoke every live continuation, including accepted-but-unadvanced recovery authority. */
269
+ fenceContinuations(): void;
270
+ /** Fence a cancelled/lost continuation before it can be exposed or advanced. */
271
+ loseContinuation(gateId: string): void;
272
+ listPendingGates(): WorkflowGate[];
273
+ listGateDiagnostics(): WorkflowGateDiagnostic[];
274
+ listWorkflowGateQueryRecords(): WorkflowGateQueryRecord[];
136
275
  /** Open and emit a gate. The pending record is persisted BEFORE emission. */
137
- openGate(input: OpenGateInput): RpcWorkflowGate;
276
+ openGate(input: OpenGateInput, continuation?: GateContinuation): WorkflowGate;
138
277
  /**
139
278
  * Resolve a gate with an answer. Validates against the advertised schema.
140
- * On success the resolution is persisted BEFORE `advance` is invoked exactly
141
- * once. Invalid answers leave the gate pending (per #315 acceptance).
279
+ * Accepted answers are persisted first, then their presentation is terminalized,
280
+ * then the workflow advances and commits `advanced:true` exactly once. Invalid
281
+ * answers leave the gate pending (per #315 acceptance).
142
282
  */
143
- resolve(response: RpcWorkflowGateResponse, options?: GateResolutionOptions): Promise<RpcWorkflowGateResolution>;
283
+ resolve(response: WorkflowGateResponse, options?: GateResolutionOptions): Promise<WorkflowGateResolution>;
144
284
  private resolveUnlocked;
145
285
  /**
146
286
  * Recover any gate left `accepted` but not `advanced` by a crash between the
@@ -1,4 +1,4 @@
1
- import type { RpcJsonSchema, RpcWorkflowGateValidationError } from "../../rpc/rpc-types";
1
+ import type { JsonSchema, WorkflowGateValidationError } from "./workflow-gate-types";
2
2
  export declare const GATE_SCHEMA_LIMITS: {
3
3
  readonly maxSchemaBytes: number;
4
4
  readonly maxDepth: 16;
@@ -13,10 +13,10 @@ export declare class WorkflowGateSchemaError extends Error {
13
13
  }
14
14
  /** Canonical (stable-key-ordered) JSON serialization used for hashing. */
15
15
  export declare function canonicalJson(value: unknown): string;
16
- export declare function schemaHash(schema: RpcJsonSchema): string;
16
+ export declare function schemaHash(schema: JsonSchema): string;
17
17
  declare function answerHashOf(answer: unknown): string;
18
18
  /** Validate the schema *shape*. Throws WorkflowGateSchemaError on any problem. */
19
- export declare function assertSupportedGateSchema(schema: RpcJsonSchema): void;
19
+ export declare function assertSupportedGateSchema(schema: JsonSchema): void;
20
20
  type SchemaError = {
21
21
  path: string;
22
22
  keyword: string;
@@ -25,15 +25,15 @@ type SchemaError = {
25
25
  };
26
26
  /** A compiled, cached validator for one schema. */
27
27
  export interface CompiledGateSchema {
28
- readonly schema: RpcJsonSchema;
28
+ readonly schema: JsonSchema;
29
29
  readonly hash: string;
30
30
  validate(answer: unknown): SchemaError[];
31
31
  }
32
32
  /** Compile (and cache) a validator for a schema. Asserts shape on first compile. */
33
- export declare function compileGateSchema(schema: RpcJsonSchema): CompiledGateSchema;
33
+ export declare function compileGateSchema(schema: JsonSchema): CompiledGateSchema;
34
34
  /**
35
35
  * Validate an answer against a compiled gate schema. Returns `null` on success
36
- * or a typed {@link RpcWorkflowGateValidationError} on mismatch.
36
+ * or a typed {@link WorkflowGateValidationError} on mismatch.
37
37
  */
38
- export declare function validateGateAnswer(compiled: CompiledGateSchema, gateId: string, answer: unknown): RpcWorkflowGateValidationError | null;
38
+ export declare function validateGateAnswer(compiled: CompiledGateSchema, gateId: string, answer: unknown): WorkflowGateValidationError | null;
39
39
  export { answerHashOf };