@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
@@ -0,0 +1,27 @@
1
+ import { type BrokerDiscovery } from "../broker/discovery";
2
+ export interface SdkSessionEndpoint {
3
+ sessionId: string;
4
+ url: string;
5
+ token: string;
6
+ path: string;
7
+ }
8
+ export interface SdkDiscoveryWarning {
9
+ code: "discovery_error";
10
+ path: string;
11
+ message: string;
12
+ }
13
+ export interface SdkSessionEndpointList {
14
+ endpoints: SdkSessionEndpoint[];
15
+ warnings: SdkDiscoveryWarning[];
16
+ }
17
+ export declare class SdkDiscoveryError extends Error {
18
+ readonly path: string;
19
+ readonly code = "discovery_error";
20
+ constructor(path: string, message: string);
21
+ }
22
+ /** Lists endpoint files and returns individual malformed or unreadable records as warnings. */
23
+ export declare function listSdkSessionEndpoints(repo: string): Promise<SdkSessionEndpointList>;
24
+ /** Resolves one per-session SDK endpoint discovery file. */
25
+ export declare function readSdkSessionEndpoint(repo: string, sessionId: string): Promise<SdkSessionEndpoint | null>;
26
+ /** Reads the agent-global broker discovery record. */
27
+ export declare function readSdkBrokerDiscovery(agentDir: string): Promise<BrokerDiscovery | null>;
@@ -0,0 +1,2 @@
1
+ export * from "./client";
2
+ export * from "./discovery";
@@ -0,0 +1,34 @@
1
+ import { type Operation } from "../../protocol/operation-registry";
2
+ import type { ControlSurface, ControlValue } from "./operations";
3
+ export interface ControlRequest {
4
+ id: string;
5
+ operation: string;
6
+ input: unknown;
7
+ expectedRevision?: string;
8
+ idempotencyKey?: string;
9
+ confirm?: boolean;
10
+ }
11
+ export type ControlErrorCode = string;
12
+ export interface ControlError {
13
+ code: ControlErrorCode;
14
+ message: string;
15
+ currentRevision?: string;
16
+ details?: ControlValue;
17
+ }
18
+ export interface ControlResponse {
19
+ id: string;
20
+ ok: boolean;
21
+ result?: ControlValue;
22
+ error?: ControlError;
23
+ }
24
+ /** An error whose code is intentionally safe to expose on the control protocol. */
25
+ export declare class TypedControlError extends Error {
26
+ readonly code: ControlErrorCode;
27
+ constructor(code: ControlErrorCode, message: string);
28
+ }
29
+ /** Busy is reserved for explicitly typed transient unavailability. */
30
+ export declare class BusyError extends TypedControlError {
31
+ constructor(message?: string);
32
+ }
33
+ /** Dispatches a registry-defined per-session control operation. */
34
+ export declare function dispatchControl(surface: ControlSurface, registryRow: Operation | undefined, request: ControlRequest): Promise<ControlResponse>;
@@ -0,0 +1,2 @@
1
+ export { BusyError, type ControlError, type ControlErrorCode, type ControlRequest, type ControlResponse, dispatchControl, TypedControlError, } from "./dispatch";
2
+ export type { ControlInput, ControlSurface, ControlValue } from "./operations";
@@ -0,0 +1,65 @@
1
+ export type ControlValue = unknown;
2
+ export type ControlInput = Record<string, unknown>;
3
+ /**
4
+ * Narrow host contract used by control dispatch. Implementations adapt an
5
+ * AgentSession and its controllers without exposing those concrete types here.
6
+ */
7
+ export interface ControlSurface {
8
+ prompt(text: string, images?: ControlValue): Promise<ControlValue> | ControlValue;
9
+ steer(text: string): Promise<ControlValue> | ControlValue;
10
+ followUp(text: string): Promise<ControlValue> | ControlValue;
11
+ abort(): Promise<ControlValue> | ControlValue;
12
+ abortAndPrompt(text: string): Promise<ControlValue> | ControlValue;
13
+ answerAsk(id: string, answer: ControlValue): Promise<ControlValue> | ControlValue;
14
+ answerGate(id: string, response: ControlValue, expectedSessionId?: string): Promise<ControlValue> | ControlValue;
15
+ approvePlan(id: string, choice: ControlValue, expectedSessionId?: string): Promise<ControlValue> | ControlValue;
16
+ invokeSkill(name: string, args: ControlValue): Promise<ControlValue> | ControlValue;
17
+ setPlanMode(on: boolean): Promise<ControlValue> | ControlValue;
18
+ operateGoal(op: string, objective?: string): Promise<ControlValue> | ControlValue;
19
+ replaceTodo(items: ControlValue): Promise<ControlValue> | ControlValue;
20
+ setModel(id: string, thinkingLevel?: ControlValue): Promise<ControlValue> | ControlValue;
21
+ cycleModel(): Promise<ControlValue> | ControlValue;
22
+ setThinking(level: ControlValue): Promise<ControlValue> | ControlValue;
23
+ cycleThinking(): Promise<ControlValue> | ControlValue;
24
+ setPermissionMode(mode: ControlValue): Promise<ControlValue> | ControlValue;
25
+ setQueueMode(kind: string, mode: ControlValue): Promise<ControlValue> | ControlValue;
26
+ runCompaction(): Promise<ControlValue> | ControlValue;
27
+ setAutoCompaction(on: boolean): Promise<ControlValue> | ControlValue;
28
+ setAutoRetry(on: boolean): Promise<ControlValue> | ControlValue;
29
+ abortRetry(): Promise<ControlValue> | ControlValue;
30
+ executeBash(cmd: string): Promise<ControlValue> | ControlValue;
31
+ abortBash(): Promise<ControlValue> | ControlValue;
32
+ newSession(): Promise<ControlValue> | ControlValue;
33
+ forkSession(): Promise<ControlValue> | ControlValue;
34
+ resumeSession(id: string): Promise<ControlValue> | ControlValue;
35
+ closeSession(): Promise<ControlValue> | ControlValue;
36
+ switchSession(id: string): Promise<ControlValue> | ControlValue;
37
+ branchSession(entryId: string): Promise<ControlValue> | ControlValue;
38
+ renameSession(name: string): Promise<ControlValue> | ControlValue;
39
+ handoffSession(target: ControlValue): Promise<ControlValue> | ControlValue;
40
+ exportHtml(): Promise<ControlValue> | ControlValue;
41
+ patchConfig(patch: ControlValue): Promise<ControlValue> | ControlValue;
42
+ reloadRuntime(components: ControlValue): Promise<ControlValue> | ControlValue;
43
+ login(provider: string): Promise<ControlValue> | ControlValue;
44
+ registerHostTools(defs: ControlValue): Promise<ControlValue> | ControlValue;
45
+ registerHostUri(defs: ControlValue): Promise<ControlValue> | ControlValue;
46
+ setServiceTier(tier: ControlValue): Promise<ControlValue> | ControlValue;
47
+ setActiveTools(names: ControlValue): Promise<ControlValue> | ControlValue;
48
+ removeQueueMessage(id: string): Promise<ControlValue> | ControlValue;
49
+ moveQueueMessage(id: string, position: {
50
+ before?: string;
51
+ after?: string;
52
+ }): Promise<ControlValue> | ControlValue;
53
+ updateQueueMessage(id: string, patch: ControlValue): Promise<ControlValue> | ControlValue;
54
+ setExtensionEnabled(id: string, on: boolean): Promise<ControlValue> | ControlValue;
55
+ clearContext(confirm: boolean): Promise<ControlValue> | ControlValue;
56
+ deleteSession(id: string, confirm: boolean): Promise<ControlValue> | ControlValue;
57
+ moveCwd(path: string): Promise<ControlValue> | ControlValue;
58
+ retryLast(): Promise<ControlValue> | ControlValue;
59
+ retryNow(): Promise<ControlValue> | ControlValue;
60
+ backgroundBash(): Promise<ControlValue> | ControlValue;
61
+ /** Returns the current revision for a registry revision resource. */
62
+ /** Installed per-session registry rows. Dispatch rejects other rows before invoking a surface method. */
63
+ installedOperations?: ReadonlySet<string>;
64
+ revisionProvider?(resource: string): Promise<string | undefined> | string | undefined;
65
+ }
@@ -0,0 +1,35 @@
1
+ import type { SdkFrame } from "./types";
2
+ export interface EventFrame extends SdkFrame {
3
+ type: "event";
4
+ generation: number;
5
+ seq: number;
6
+ }
7
+ export type EventReplayGap = {
8
+ kind: "generation_reset";
9
+ fromGeneration: number;
10
+ toGeneration: number;
11
+ resyncQueries: string[];
12
+ } | {
13
+ kind: "sequence_gap";
14
+ fromSeq: number;
15
+ toSeq: number;
16
+ resyncQueries: string[];
17
+ };
18
+ export interface EventReplay {
19
+ events: EventFrame[];
20
+ gap?: EventReplayGap;
21
+ }
22
+ export declare class SessionEventStream {
23
+ #private;
24
+ constructor(options?: {
25
+ generation?: number;
26
+ ringSize?: number;
27
+ resyncQueryIds?: string[];
28
+ });
29
+ get generation(): number;
30
+ get sequence(): number;
31
+ restart(): number;
32
+ emit(frame: SdkFrame): EventFrame;
33
+ /** Replays retained current-generation events and reports any required resynchronization. */
34
+ replay(lastSeq: number, generation?: number): EventReplay;
35
+ }
@@ -0,0 +1,35 @@
1
+ import { type EventFrame, SessionEventStream } from "./events";
2
+ import { ReverseLeaseRuntime } from "./reverse-leases";
3
+ import type { BrokerIndexWriter, HostEndpointAdapters, SdkFrame } from "./types";
4
+ export type SdkRequestObserver = (kind: "control" | "query", connectionId: string, frame: SdkFrame) => void;
5
+ export interface SessionSdkHostOptions extends HostEndpointAdapters {
6
+ control?: (connectionId: string, frame: SdkFrame) => unknown | Promise<unknown>;
7
+ query?: (connectionId: string, frame: SdkFrame) => unknown | Promise<unknown>;
8
+ /** Best-effort diagnostic observation of accepted control/query frames. */
9
+ onRequest?: SdkRequestObserver;
10
+ /** Runs only after a successful control response has been sent to the client. */
11
+ afterControlResponse?: (connectionId: string, request: SdkFrame, response: SdkFrame) => void | Promise<void>;
12
+ installProviderDefinitions?: (capability: string, definitions: unknown) => void;
13
+ onProviderDefinitionsRemoved?: (capability: string) => void;
14
+ onReverseCancel?: (requestId: string, reason: "provider_disconnected" | "lease_released") => void;
15
+ }
16
+ /** SDK hosting is independent of notification configuration. Only root sessions host an endpoint. */
17
+ export declare function shouldHostSdk(_settings: unknown, isTopLevel: boolean, env?: NodeJS.ProcessEnv): boolean;
18
+ /** Adapter-based session host; bus wiring owns NotificationServer creation and transport framing. */
19
+ export declare class SessionSdkHost {
20
+ #private;
21
+ readonly events: SessionEventStream;
22
+ readonly reverse: ReverseLeaseRuntime;
23
+ constructor(options: SessionSdkHostOptions);
24
+ get started(): boolean;
25
+ get generation(): number;
26
+ /** Current installed definitions for a live provider capability. */
27
+ getProviderDefinitions(capability: string): unknown | undefined;
28
+ /** Release reverse leases after the transport reports a WebSocket disconnect. */
29
+ handleDisconnect(connectionId: string): void;
30
+ /** Adds an event to the resumable event ring. Transport delivery is owned by bus wiring. */
31
+ emitEvent(frame: SdkFrame): EventFrame;
32
+ start(): Promise<"started" | "already">;
33
+ stop(): Promise<"stopped" | "already">;
34
+ registerWithBroker(writer: BrokerIndexWriter): Promise<void>;
35
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./events";
2
+ export * from "./host";
3
+ export * from "./reverse-leases";
4
+ export * from "./types";
@@ -0,0 +1,62 @@
1
+ import { type RevisionStore } from "./revision-store.js";
2
+ export declare const CURSOR_TTL_MS: number;
3
+ export declare const MAX_CURSORS_PER_CONNECTION = 32;
4
+ export declare const MAX_CURSORS_PER_SESSION = 128;
5
+ export interface CursorEnvelope {
6
+ cursorVersion: 1;
7
+ protocolMajor: 3;
8
+ sessionId: string;
9
+ resource: string;
10
+ revision: string;
11
+ highWatermark?: unknown;
12
+ position: unknown;
13
+ direction: string;
14
+ pageShape: unknown;
15
+ }
16
+ export interface CursorSelector {
17
+ queryId: string;
18
+ entryId?: string;
19
+ field?: string;
20
+ fileId?: string;
21
+ hunkId?: string;
22
+ resourceKind?: string;
23
+ resourceId?: string;
24
+ itemId?: string;
25
+ }
26
+ export interface CursorPosition {
27
+ offset?: number;
28
+ byteOffset?: number;
29
+ selector?: CursorSelector;
30
+ }
31
+ export declare function cursorSelector(position: unknown): CursorSelector | undefined;
32
+ export declare function assertCursorSelector(cursor: CursorSelector | undefined, requested: Partial<CursorSelector>): CursorSelector;
33
+ export interface CursorQueryContext {
34
+ sessionId: string;
35
+ resource?: string;
36
+ resourceId?: string;
37
+ direction: string;
38
+ pageShape: unknown;
39
+ }
40
+ export declare class CursorError extends Error {
41
+ readonly code: "cursor_expired" | "invalid_cursor" | "invalid_input" | "resource_gone" | "snapshot_capacity_exceeded";
42
+ readonly restartQuery: boolean;
43
+ constructor(code: "cursor_expired" | "invalid_cursor" | "invalid_input" | "resource_gone" | "snapshot_capacity_exceeded", restartQuery?: boolean, message?: string);
44
+ }
45
+ export declare function canonicalCursorJson(envelope: CursorEnvelope): string;
46
+ export declare function cursorMac(envelope: CursorEnvelope, sessionToken: string | Uint8Array): string;
47
+ export declare function signCursor(envelope: CursorEnvelope, sessionToken: string | Uint8Array): string;
48
+ export declare function verifyCursor(cursor: string, sessionToken: string | Uint8Array): CursorEnvelope | undefined;
49
+ /** Tracks cursor budgets and binds snapshot pins to authenticated cursor strings. */
50
+ export declare class CursorRegistry {
51
+ #private;
52
+ private readonly sessionToken;
53
+ private readonly revisions;
54
+ private readonly now;
55
+ constructor(sessionToken: string | Uint8Array, revisions: RevisionStore, now?: () => number);
56
+ grant(connectionId: string, envelope: CursorEnvelope, resourceKind: string, resourceId: string): Promise<string>;
57
+ consume(cursor: string, connectionId: string, expected: CursorQueryContext): CursorEnvelope;
58
+ release(cursor: string): void;
59
+ close(): void;
60
+ sweep(): void;
61
+ get size(): number;
62
+ }
@@ -0,0 +1,70 @@
1
+ import { type CursorRegistry } from "./cursor.js";
2
+ import type { RevisionStore } from "./revision-store.js";
3
+ export declare const TARGET_PAGE_BYTES: number;
4
+ export declare const RESPONSE_CEILING_BYTES: number;
5
+ export interface SessionSurface {
6
+ getTranscriptEntries(): unknown[] | Promise<unknown[]>;
7
+ getContextSnapshot(): unknown | Promise<unknown>;
8
+ getGoalState(): unknown | Promise<unknown>;
9
+ getTodoState(): unknown | Promise<unknown>;
10
+ getDiff(): unknown | Promise<unknown>;
11
+ getUsage(): unknown | Promise<unknown>;
12
+ getModels(): unknown | Promise<unknown>;
13
+ getSkillState(): unknown | Promise<unknown>;
14
+ /** Q12 rows preserve workflow gate fields and include stable durable gate metadata. */
15
+ getGates(): unknown | Promise<unknown>;
16
+ getConfigItems(): unknown | Promise<unknown>;
17
+ getSessionMetadata(): unknown | Promise<unknown>;
18
+ getStats(): unknown | Promise<unknown>;
19
+ getBranchCandidates(): unknown | Promise<unknown>;
20
+ getLastAssistant(): unknown | Promise<unknown>;
21
+ getCapabilities(): unknown | Promise<unknown>;
22
+ getAuthProviders(): unknown | Promise<unknown>;
23
+ getTools(): unknown | Promise<unknown>;
24
+ getQueueMessages(): unknown | Promise<unknown>;
25
+ getExtensions(): unknown | Promise<unknown>;
26
+ getArtifactRange?(id: string, offset: number, length: number): {
27
+ bytes: Uint8Array;
28
+ totalBytes: number;
29
+ } | undefined | Promise<{
30
+ bytes: Uint8Array;
31
+ totalBytes: number;
32
+ } | undefined>;
33
+ getJobs(): unknown | Promise<unknown>;
34
+ /** Query rows backed by the session's installed binding map. */
35
+ installedQueries?: ReadonlySet<string>;
36
+ }
37
+ export interface QueryRequest {
38
+ id?: string;
39
+ query: string;
40
+ input?: Record<string, unknown>;
41
+ cursor?: string;
42
+ connectionId: string;
43
+ }
44
+ export interface QueryPage {
45
+ items: unknown[];
46
+ complete: boolean;
47
+ continuationCursor?: string;
48
+ revision: string;
49
+ preview?: boolean;
50
+ }
51
+ export interface QueryResponse {
52
+ id?: string;
53
+ ok: boolean;
54
+ page?: QueryPage;
55
+ result?: unknown;
56
+ error?: {
57
+ code: string;
58
+ message: string;
59
+ restartQuery?: boolean;
60
+ };
61
+ }
62
+ export declare class QueryHandlers {
63
+ #private;
64
+ private readonly surface;
65
+ private readonly sessionId;
66
+ private readonly revisions;
67
+ private readonly cursors;
68
+ constructor(surface: SessionSurface, sessionId: string, revisions: RevisionStore, cursors: CursorRegistry);
69
+ dispatch(request: QueryRequest): Promise<QueryResponse>;
70
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./cursor.js";
2
+ export * from "./handlers.js";
3
+ export * from "./revision-store.js";
@@ -0,0 +1,60 @@
1
+ export declare const MAX_REVISIONS_PER_RESOURCE = 8;
2
+ export declare const MAX_PINNED_REVISIONS = 128;
3
+ export declare const MAX_MEMORY_BYTES: number;
4
+ export declare const SNAPSHOT_TTL_MS: number;
5
+ export declare class RevisionStoreError extends Error {
6
+ readonly code: "resource_gone" | "snapshot_capacity_exceeded";
7
+ constructor(code: "resource_gone" | "snapshot_capacity_exceeded", message?: string);
8
+ }
9
+ /** Per-session MVCC snapshots. Payloads hold canonical JSON UTF-8. */
10
+ export declare class RevisionStore {
11
+ #private;
12
+ readonly sessionId: string;
13
+ private readonly now;
14
+ constructor(sessionId: string, now?: () => number, options?: {
15
+ storageDir?: string;
16
+ onReadRange?: (start: number, end: number) => void;
17
+ });
18
+ createRevision(resourceKind: string, resourceId: string, payload: unknown): Promise<string>;
19
+ readRevision(resourceKind: string, resourceId: string, id: string): Promise<unknown>;
20
+ revisionByteLength(resourceKind: string, resourceId: string, id: string): Promise<number | undefined>;
21
+ readPage(resourceKind: string, resourceId: string, id: string, offset: number, targetBytes: number): Promise<{
22
+ items: unknown[];
23
+ complete: boolean;
24
+ } | undefined>;
25
+ /** Returns canonical root JSON in a UTF-8-safe bounded range without parsing it. */
26
+ readRootRange(resourceKind: string, resourceId: string, id: string, offset: number, length: number): Promise<{
27
+ body: string;
28
+ complete: boolean;
29
+ offset: number;
30
+ } | undefined>;
31
+ readStringRange(resourceKind: string, resourceId: string, id: string, field: string, offset: number, length: number): Promise<{
32
+ body: string;
33
+ complete: boolean;
34
+ offset: number;
35
+ } | undefined>;
36
+ readIndexedStringRange(resourceKind: string, resourceId: string, id: string, itemId: string, field: string, offset: number, length: number): Promise<{
37
+ body: string;
38
+ complete: boolean;
39
+ offset: number;
40
+ } | undefined>;
41
+ describeIndexedItem(resourceKind: string, resourceId: string, id: string, offset: number): Promise<{
42
+ itemId?: string;
43
+ fields: string[];
44
+ } | undefined>;
45
+ readTranscriptBodyRange(resourceId: string, id: string, entryId: string, offset: number, length: number): Promise<{
46
+ body: string;
47
+ complete: boolean;
48
+ offset: number;
49
+ } | undefined>;
50
+ pin(cursorId: string, resourceKind: string, resourceId: string, id: string): Promise<void>;
51
+ unpin(cursorId: string): void;
52
+ sweep(): void;
53
+ close(): Promise<void>;
54
+ get pinnedCount(): number;
55
+ get memoryBytes(): number;
56
+ /** Test-only accounting for the bounded serializer's staging buffer. */
57
+ get peakBufferedBytes(): number;
58
+ /** Test-only accounting for a spilled reader's raw chunk and decoded-text buffers. */
59
+ get peakReadBufferedBytes(): number;
60
+ }
@@ -0,0 +1,45 @@
1
+ import type { SdkFrame } from "./types";
2
+ export declare const REVERSE_HEARTBEAT_MS = 5000;
3
+ export declare const REVERSE_LEASE_TTL_MS = 15000;
4
+ export declare const REVERSE_RECLAIM_GRACE_MS = 15000;
5
+ export declare const MAX_REVERSE_OUTSTANDING = 64;
6
+ export declare const MAX_REVERSE_PAYLOAD_BYTES: number;
7
+ export declare class ReverseLeaseError extends Error {
8
+ readonly code: "lease_unavailable" | "lease_expired" | "provider_lease_conflict" | "provider_required" | "not_lease_owner" | "payload_too_large" | "too_many_outstanding" | "unknown_request" | "idempotency_conflict";
9
+ constructor(code: "lease_unavailable" | "lease_expired" | "provider_lease_conflict" | "provider_required" | "not_lease_owner" | "payload_too_large" | "too_many_outstanding" | "unknown_request" | "idempotency_conflict", message?: "idempotency_conflict" | "lease_expired" | "lease_unavailable" | "not_lease_owner" | "payload_too_large" | "provider_lease_conflict" | "provider_required" | "too_many_outstanding" | "unknown_request");
10
+ }
11
+ export interface ProviderLease {
12
+ leaseId: string;
13
+ connectionId: string;
14
+ capability: string;
15
+ definitions: unknown;
16
+ expiresAt: number;
17
+ graceUntil?: number;
18
+ active: boolean;
19
+ }
20
+ export interface ReverseLeaseOptions {
21
+ now?: () => number;
22
+ leaseTtlMs?: number;
23
+ sendFrame: (connectionId: string, frame: SdkFrame) => void | Promise<void>;
24
+ installDefinitions?: (capability: string, definitions: unknown) => void;
25
+ onCancel?: (requestId: string, reason: "provider_disconnected" | "lease_released") => void;
26
+ onDefinitionsRemoved?: (capability: string) => void;
27
+ }
28
+ /** Session-local directed reverse RPC lease registry. */
29
+ export declare class ReverseLeaseRuntime {
30
+ #private;
31
+ constructor(options: ReverseLeaseOptions);
32
+ registerProvider(connectionId: string, capability: string, definitions: unknown, expectedLeaseId?: string, idempotencyKey?: string): ProviderLease;
33
+ heartbeat(connectionId: string, leaseId: string): ProviderLease;
34
+ release(connectionId: string, leaseId: string, handoffTo?: string): ProviderLease;
35
+ disconnect(connectionId: string): void;
36
+ request(capability: string, method: string, payload: unknown): Promise<unknown>;
37
+ respond(connectionId: string, id: string, leaseId: string, result: unknown, error?: {
38
+ code: string;
39
+ message: string;
40
+ }): void;
41
+ getLease(capability: string): ProviderLease | undefined;
42
+ /** Installed definitions are observable only while their provider lease is live. */
43
+ getInstalledDefinitions(capability: string): unknown | undefined;
44
+ dispose(): void;
45
+ }
@@ -0,0 +1,32 @@
1
+ export type SdkFrame = Record<string, unknown>;
2
+ /** Narrow common surface shared by control and query adapters. */
3
+ export interface SessionSurface {
4
+ sessionId: string;
5
+ }
6
+ export interface SessionOperationSurface extends SessionSurface {
7
+ /** Query rows backed by this session's installed binding map. */
8
+ installedQueries?: ReadonlySet<string>;
9
+ }
10
+ /** Operations the neutral control dispatcher may require from a session. */
11
+ export interface ControlSurface extends SessionSurface {
12
+ [key: string]: unknown;
13
+ }
14
+ export interface HostEndpointAdapters {
15
+ sessionId: string;
16
+ stateRoot: string;
17
+ token: string;
18
+ sendFrame: (connectionId: string, frame: SdkFrame) => void | Promise<void>;
19
+ onFrame: (handler: (connectionId: string, frame: SdkFrame) => void) => undefined | (() => void);
20
+ }
21
+ export interface BrokerIndexWriter {
22
+ register(input: {
23
+ sessionId: string;
24
+ stateRoot: string;
25
+ endpointGeneration: number;
26
+ }): void | Promise<void>;
27
+ unregister?(input: {
28
+ sessionId: string;
29
+ stateRoot: string;
30
+ endpointGeneration: number;
31
+ }): void | Promise<void>;
32
+ }
@@ -0,0 +1,6 @@
1
+ export * as bus from "./bus";
2
+ export * from "./client";
3
+ export * as host from "./host";
4
+ export * as mcp from "./mcp";
5
+ export type { Q10CurrentThinkingLevel, Q10Model, Q10SettableThinkingLevel, Q10ThinkingCapabilities, Q10ThinkingEffort, Q10ThinkingMode, } from "./models";
6
+ export * from "./session";
@@ -0,0 +1,14 @@
1
+ import type { AgentSession } from "../session/agent-session";
2
+ import { type CreateAgentSessionOptions } from "./session";
3
+ import { SdkStartupCapability, type SdkStartupFailure, SdkStartupRollbackTracker } from "./startup-capability";
4
+ export type CreateLifecycleAgentSessionResult = {
5
+ session: AgentSession;
6
+ capability: SdkStartupCapability;
7
+ rollback: SdkStartupRollbackTracker;
8
+ } | {
9
+ capability: SdkStartupCapability;
10
+ rollback: SdkStartupRollbackTracker;
11
+ failure: SdkStartupFailure;
12
+ };
13
+ /** Internal lifecycle-only session construction with an owner-bound SDK startup result. */
14
+ export declare function createLifecycleAgentSession(options?: CreateAgentSessionOptions): Promise<CreateLifecycleAgentSessionResult>;
@@ -0,0 +1 @@
1
+ export * from "./server";
@@ -0,0 +1,37 @@
1
+ import { SdkClient } from "../client/client";
2
+ type Arguments = Record<string, unknown>;
3
+ type JsonRpcRequest = {
4
+ jsonrpc: "2.0";
5
+ id?: string | number | null;
6
+ method: string;
7
+ params?: unknown;
8
+ };
9
+ type JsonRpcResponse = {
10
+ jsonrpc: "2.0";
11
+ id: string | number | null;
12
+ result?: unknown;
13
+ error?: {
14
+ code: number;
15
+ message: string;
16
+ };
17
+ };
18
+ export interface SdkMcpServerOptions {
19
+ repo?: string;
20
+ agentDir?: string;
21
+ connect?: (url: string, token: string) => Promise<SdkClient>;
22
+ }
23
+ export declare const SDK_MCP_TOOL_NAMES: readonly ["gjc_session_control", "gjc_session_query", "gjc_session_global", "gjc_session_list"];
24
+ /** Creates the model-facing MCP adapter using only SDK discovery records and v3 WebSockets. */
25
+ export declare function createSdkMcpServer(options?: SdkMcpServerOptions): {
26
+ callTool: (name: string, args?: Arguments) => Promise<unknown>;
27
+ handleJsonRpc: (request: JsonRpcRequest) => Promise<JsonRpcResponse>;
28
+ handle: (request: JsonRpcRequest) => Promise<JsonRpcResponse>;
29
+ tools: Record<string, unknown>[];
30
+ };
31
+ /**
32
+ * Runs the SDK MCP server over stdio (newline-delimited JSON-RPC), the shipped
33
+ * `gjc mcp-serve sdk` entrypoint. Pure SDK client: session control/query flows
34
+ * through discovery records and v3 WebSockets only.
35
+ */
36
+ export declare function runSdkMcpStdio(options?: SdkMcpServerOptions): Promise<void>;
37
+ export {};
@@ -0,0 +1,44 @@
1
+ import { ThinkingLevel } from "@gajae-code/agent-core";
2
+ import { type Api, type Effort, type Model, type ThinkingControlMode } from "@gajae-code/ai";
3
+ export type Q10ThinkingEffort = Effort;
4
+ export type Q10SettableThinkingLevel = typeof ThinkingLevel.Off | Q10ThinkingEffort;
5
+ export type Q10CurrentThinkingLevel = Q10SettableThinkingLevel | typeof ThinkingLevel.Inherit;
6
+ export type Q10ThinkingMode = ThinkingControlMode;
7
+ export interface Q10ThinkingCapabilities {
8
+ validLevels: readonly Q10SettableThinkingLevel[];
9
+ minLevel?: Q10ThinkingEffort;
10
+ maxLevel?: Q10ThinkingEffort;
11
+ mode?: Q10ThinkingMode;
12
+ defaultLevel?: Q10ThinkingEffort;
13
+ /** Fresh raw explicit descriptor copy; source order retained. */
14
+ levels?: readonly Q10ThinkingEffort[];
15
+ }
16
+ export interface Q10Model {
17
+ provider: string;
18
+ id: string;
19
+ name: string;
20
+ contextWindow: number;
21
+ maxTokens: number;
22
+ reasoning: boolean;
23
+ thinking: Q10ThinkingCapabilities;
24
+ current: boolean;
25
+ currentThinkingLevel?: Q10CurrentThinkingLevel;
26
+ }
27
+ export type Q10ThinkingMetadataReason = "missing_thinking" | "unknown_min_level" | "unknown_max_level" | "inverted_range" | "unknown_mode" | "empty_levels" | "unknown_level" | "level_out_of_range" | "lower_bound_mismatch" | "upper_bound_mismatch" | "supported_membership_mismatch" | "empty_supported_levels" | "unknown_default_level" | "default_not_supported";
28
+ /** An intentionally safe error for malformed model thinking metadata. */
29
+ export declare class Q10ThinkingMetadataError extends Error {
30
+ readonly reason: Q10ThinkingMetadataReason;
31
+ readonly code = "internal";
32
+ constructor(provider: string, id: string, reason: Q10ThinkingMetadataReason);
33
+ }
34
+ export interface Q10ModelProjectionInput {
35
+ models: readonly Model<Api>[];
36
+ currentModel?: Model<Api>;
37
+ currentThinkingLevel?: Q10CurrentThinkingLevel;
38
+ resolveSupportedEfforts?: (model: Model<Api>) => readonly Effort[];
39
+ }
40
+ /**
41
+ * Projects model registry entries into the Q10 public DTO without exposing
42
+ * transport, credentials, pricing, or other registry internals.
43
+ */
44
+ export declare function projectQ10Models(input: Q10ModelProjectionInput): Q10Model[];
@@ -0,0 +1,14 @@
1
+ type Input = Record<string, unknown>;
2
+ type SecretInputError = {
3
+ code: "secret_field_forbidden";
4
+ message: string;
5
+ };
6
+ /** Rejects secret-bearing config patches from model-facing adapter inputs. */
7
+ export declare function validateAdapterSecretFields(operation: string, input: Input): SecretInputError | undefined;
8
+ export type AdapterValidationError = {
9
+ code: "invalid_reload_component" | "invalid_input";
10
+ message: string;
11
+ };
12
+ /** Validates controls that adapters must reject before forwarding them to a host. */
13
+ export declare function validateAdapterControl(operation: string, input: Input): AdapterValidationError | undefined;
14
+ export {};
@@ -0,0 +1,24 @@
1
+ export declare const ADAPTERS: readonly ["telegram", "discord", "slack", "mcp", "acp", "daemonCli"];
2
+ export type Adapter = (typeof ADAPTERS)[number];
3
+ export type AdapterDisposition = "native_alias" | "generic_safe" | "machine_only" | "provider_only" | "prohibited";
4
+ export type OperationKind = "control" | "global" | "query" | "reverse";
5
+ export type Idempotency = "idempotent" | "ordered" | "fast_lane";
6
+ export type QueryContinuityClass = "stable_prefix" | "retained_revision" | "scalar_snapshot" | "content_addressed";
7
+ export interface Operation {
8
+ id: string;
9
+ sdkId: string;
10
+ kind: OperationKind;
11
+ description: string;
12
+ idempotency: Idempotency;
13
+ errorCodes: string[];
14
+ revisionResource?: string;
15
+ continuityClass?: QueryContinuityClass;
16
+ adapterDispositions: Record<Adapter, AdapterDisposition>;
17
+ testIds: string[];
18
+ }
19
+ export declare function findOperation(kind: OperationKind, sdkId: string): Operation | undefined;
20
+ export declare function adapterDispositionError(adapter: Adapter, kind: OperationKind, sdkId: string, modelFacing?: boolean): {
21
+ code: string;
22
+ message: string;
23
+ } | undefined;
24
+ export declare const OPERATIONS: readonly Operation[];