@gajae-code/coding-agent 0.13.3 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/CHANGELOG.md +184 -2
  2. package/README.md +2 -0
  3. package/bin/gajaessi.js +4 -0
  4. package/dist/types/async/job-manager.d.ts +55 -2
  5. package/dist/types/async/support.d.ts +14 -0
  6. package/dist/types/capability/mcp.d.ts +6 -0
  7. package/dist/types/capability/types.d.ts +6 -0
  8. package/dist/types/cli/accounts-cli.d.ts +19 -0
  9. package/dist/types/cli/args.d.ts +3 -0
  10. package/dist/types/cli/config-cli.d.ts +6 -0
  11. package/dist/types/cli/crash-cli.d.ts +10 -0
  12. package/dist/types/cli/customize-doctor.d.ts +145 -0
  13. package/dist/types/cli/daemon-cli.d.ts +3 -1
  14. package/dist/types/cli/mcp-cli.d.ts +11 -0
  15. package/dist/types/cli/notify-cli.d.ts +1 -1
  16. package/dist/types/cli/root-flags.d.ts +12 -0
  17. package/dist/types/cli/setup-cli.d.ts +3 -1
  18. package/dist/types/cli/skills-cli.d.ts +2 -1
  19. package/dist/types/cli/update-cli.d.ts +19 -1
  20. package/dist/types/cli.d.ts +6 -0
  21. package/dist/types/commands/accounts.d.ts +40 -0
  22. package/dist/types/commands/crash.d.ts +24 -0
  23. package/dist/types/commands/customize.d.ts +22 -0
  24. package/dist/types/commands/daemon.d.ts +1 -1
  25. package/dist/types/commands/launch.d.ts +6 -0
  26. package/dist/types/commands/setup.d.ts +6 -0
  27. package/dist/types/commands/skills.d.ts +6 -1
  28. package/dist/types/commands/update.d.ts +7 -0
  29. package/dist/types/config/atomic-yaml-patch-worker.d.ts +25 -0
  30. package/dist/types/config/atomic-yaml-patch.d.ts +62 -2
  31. package/dist/types/config/config-schema-version.d.ts +10 -0
  32. package/dist/types/config/file-lock.d.ts +18 -0
  33. package/dist/types/config/model-profile-activation.d.ts +3 -1
  34. package/dist/types/config/model-registry.d.ts +9 -1
  35. package/dist/types/config/models-config-schema.d.ts +2 -0
  36. package/dist/types/config/settings-schema.d.ts +70 -6
  37. package/dist/types/config/settings.d.ts +63 -0
  38. package/dist/types/config/skill-settings-defaults.d.ts +26 -0
  39. package/dist/types/config/task-delegation.d.ts +39 -0
  40. package/dist/types/config/update-channel.d.ts +10 -0
  41. package/dist/types/coordinator-mcp/server.d.ts +5 -1
  42. package/dist/types/crash/index-store.d.ts +87 -0
  43. package/dist/types/crash/nudge.d.ts +50 -0
  44. package/dist/types/crash/record-loader.d.ts +17 -0
  45. package/dist/types/crash/report.d.ts +134 -0
  46. package/dist/types/crash/sanitize.d.ts +25 -0
  47. package/dist/types/cursor.d.ts +13 -2
  48. package/dist/types/customization/import.d.ts +37 -0
  49. package/dist/types/customization/index.d.ts +4 -0
  50. package/dist/types/customization/inventory.d.ts +25 -0
  51. package/dist/types/customization/mutations.d.ts +32 -0
  52. package/dist/types/customization/types.d.ts +115 -0
  53. package/dist/types/daemon/control-types.d.ts +8 -1
  54. package/dist/types/daemon/operator-contract.d.ts +4 -4
  55. package/dist/types/discovery/claude.d.ts +39 -1
  56. package/dist/types/discovery/codex.d.ts +39 -1
  57. package/dist/types/discovery/index.d.ts +2 -0
  58. package/dist/types/discovery/mcp-compat.d.ts +30 -0
  59. package/dist/types/edit/renderer.d.ts +23 -0
  60. package/dist/types/extensibility/extensions/runner.d.ts +3 -0
  61. package/dist/types/extensibility/extensions/types.d.ts +21 -4
  62. package/dist/types/extensibility/gjc-plugins/observability.d.ts +6 -1
  63. package/dist/types/extensibility/gjc-plugins/registry.d.ts +8 -1
  64. package/dist/types/extensibility/hooks/loader.d.ts +19 -5
  65. package/dist/types/extensibility/runtime-skill-discovery.d.ts +22 -1
  66. package/dist/types/extensibility/skill-management.d.ts +107 -0
  67. package/dist/types/gjc-runtime/deep-interview-runtime.d.ts +3 -1
  68. package/dist/types/gjc-runtime/launch-worktree.d.ts +8 -0
  69. package/dist/types/gjc-runtime/linux-proc.d.ts +3 -0
  70. package/dist/types/gjc-runtime/ralplan-runtime.d.ts +10 -6
  71. package/dist/types/gjc-runtime/session-state-lock.d.ts +104 -0
  72. package/dist/types/gjc-runtime/session-state-sidecar.d.ts +120 -2
  73. package/dist/types/gjc-runtime/state-writer.d.ts +10 -1
  74. package/dist/types/gjc-runtime/ultragoal-guard.d.ts +4 -2
  75. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +8 -6
  76. package/dist/types/gjc-runtime/workflow-settings.d.ts +109 -0
  77. package/dist/types/hooks/events.d.ts +60 -0
  78. package/dist/types/hooks/normalize.d.ts +83 -0
  79. package/dist/types/hooks/skill-state.d.ts +9 -2
  80. package/dist/types/main.d.ts +1 -1
  81. package/dist/types/modes/acp/abort-scope.d.ts +13 -0
  82. package/dist/types/modes/acp/acp-agent.d.ts +7 -4
  83. package/dist/types/modes/components/customization/customization-dashboard.d.ts +44 -0
  84. package/dist/types/modes/components/customization/import-wizard.d.ts +21 -0
  85. package/dist/types/modes/components/customization/index.d.ts +1 -0
  86. package/dist/types/modes/components/gajae-pet-widget.d.ts +8 -30
  87. package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
  88. package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
  89. package/dist/types/modes/components/oauth-selector.d.ts +10 -4
  90. package/dist/types/modes/components/pet-capability.d.ts +11 -25
  91. package/dist/types/modes/components/status-line/gh.d.ts +6 -2
  92. package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
  93. package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
  94. package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
  95. package/dist/types/modes/interactive-mode.d.ts +1 -0
  96. package/dist/types/modes/types.d.ts +1 -0
  97. package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
  98. package/dist/types/runtime-mcp/config.d.ts +9 -0
  99. package/dist/types/runtime-mcp/manager.d.ts +26 -1
  100. package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
  101. package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
  102. package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
  103. package/dist/types/runtime-mcp/protocol.d.ts +278 -0
  104. package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
  105. package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
  106. package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
  107. package/dist/types/runtime-mcp/types.d.ts +102 -10
  108. package/dist/types/sdk/acp/adapter.d.ts +26 -5
  109. package/dist/types/sdk/broker/broker.d.ts +3 -55
  110. package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
  111. package/dist/types/sdk/broker/session-index.d.ts +14 -5
  112. package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
  113. package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
  114. package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
  115. package/dist/types/sdk/bus/config.d.ts +11 -0
  116. package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
  117. package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
  118. package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
  119. package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
  120. package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
  121. package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
  122. package/dist/types/sdk/bus/index.d.ts +85 -99
  123. package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
  124. package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
  125. package/dist/types/sdk/bus/notification-service.d.ts +52 -0
  126. package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
  127. package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
  128. package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
  129. package/dist/types/sdk/bus/session-control.d.ts +25 -1
  130. package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
  131. package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
  132. package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
  133. package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
  134. package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
  135. package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
  136. package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
  137. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
  138. package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
  139. package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
  140. package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
  141. package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
  142. package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
  143. package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
  144. package/dist/types/sdk/cli/rows.d.ts +2 -11
  145. package/dist/types/sdk/cli/session-cli.d.ts +15 -25
  146. package/dist/types/sdk/client/client.d.ts +97 -1
  147. package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
  148. package/dist/types/sdk/host/control/index.d.ts +1 -1
  149. package/dist/types/sdk/host/control/operations.d.ts +18 -5
  150. package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
  151. package/dist/types/sdk/host/host.d.ts +15 -1
  152. package/dist/types/sdk/host/query/handlers.d.ts +5 -0
  153. package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
  154. package/dist/types/sdk/host/session-runtime.d.ts +127 -7
  155. package/dist/types/sdk/host/types.d.ts +1 -1
  156. package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
  157. package/dist/types/sdk/index.d.ts +2 -1
  158. package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
  159. package/dist/types/sdk/lifecycle/client.d.ts +59 -0
  160. package/dist/types/sdk/lifecycle/index.d.ts +3 -0
  161. package/dist/types/sdk/lifecycle/service.d.ts +232 -0
  162. package/dist/types/sdk/mcp/server.d.ts +9 -6
  163. package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
  164. package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
  165. package/dist/types/sdk/prompt-status.d.ts +10 -3
  166. package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
  167. package/dist/types/sdk/receipt-state.d.ts +17 -0
  168. package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
  169. package/dist/types/sdk/router/index.d.ts +1 -0
  170. package/dist/types/sdk/router/session-router.d.ts +152 -0
  171. package/dist/types/sdk/session-list.d.ts +22 -0
  172. package/dist/types/sdk/session-reconnect.d.ts +43 -1
  173. package/dist/types/sdk/session.d.ts +34 -1
  174. package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
  175. package/dist/types/session/account-inventory.d.ts +86 -0
  176. package/dist/types/session/agent-session.d.ts +145 -6
  177. package/dist/types/session/agent-storage.d.ts +10 -0
  178. package/dist/types/session/coordinator-tool-label.d.ts +28 -0
  179. package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
  180. package/dist/types/session/messages.d.ts +1 -1
  181. package/dist/types/session/secure-token-file.d.ts +3 -0
  182. package/dist/types/session/session-manager.d.ts +40 -1
  183. package/dist/types/session/startup-auth-config.d.ts +44 -0
  184. package/dist/types/session/terminal-abort.d.ts +378 -0
  185. package/dist/types/session/yield-queue.d.ts +7 -0
  186. package/dist/types/session-import/claude.d.ts +26 -0
  187. package/dist/types/session-import/codex.d.ts +88 -0
  188. package/dist/types/session-import/command.d.ts +35 -0
  189. package/dist/types/session-import/detect.d.ts +22 -0
  190. package/dist/types/session-import/index.d.ts +7 -0
  191. package/dist/types/session-import/provider-codex.d.ts +22 -0
  192. package/dist/types/session-import/provider-service.d.ts +38 -0
  193. package/dist/types/session-import/redact.d.ts +23 -0
  194. package/dist/types/session-import/service.d.ts +47 -0
  195. package/dist/types/session-import/types.d.ts +120 -0
  196. package/dist/types/setup/paseo/check.d.ts +16 -0
  197. package/dist/types/setup/paseo/install-saga.d.ts +115 -0
  198. package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
  199. package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
  200. package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
  201. package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
  202. package/dist/types/setup/paseo/provider-config.d.ts +35 -0
  203. package/dist/types/setup/paseo/remove.d.ts +14 -0
  204. package/dist/types/setup/paseo/result-types.d.ts +59 -0
  205. package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
  206. package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
  207. package/dist/types/skill-state/active-state.d.ts +5 -1
  208. package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
  209. package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
  210. package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
  211. package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
  212. package/dist/types/slash-commands/types.d.ts +7 -1
  213. package/dist/types/task/executor.d.ts +10 -0
  214. package/dist/types/task/index.d.ts +3 -1
  215. package/dist/types/tools/ask-answer-registry.d.ts +6 -3
  216. package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
  217. package/dist/types/tools/bash.d.ts +2 -6
  218. package/dist/types/tools/browser/attach.d.ts +11 -0
  219. package/dist/types/tools/browser/launch.d.ts +20 -0
  220. package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
  221. package/dist/types/tools/browser/render.d.ts +1 -0
  222. package/dist/types/tools/browser.d.ts +3 -1
  223. package/dist/types/tools/image-gen.d.ts +9 -2
  224. package/dist/types/tools/index.d.ts +8 -0
  225. package/dist/types/tools/monitor.d.ts +1 -1
  226. package/dist/types/tools/skill-discovery.d.ts +8 -1
  227. package/dist/types/tools/subagent.d.ts +2 -0
  228. package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
  229. package/dist/types/utils/herdr-pane.d.ts +76 -0
  230. package/package.json +19 -9
  231. package/scripts/build-binary.ts +2 -1
  232. package/scripts/build-sdk-package-smoke.ts +2 -13
  233. package/scripts/capture-sticky-viewport-showcase.ts +0 -1
  234. package/scripts/compile-args.ts +2 -0
  235. package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
  236. package/scripts/generate-sdk-operation-inventory.ts +28 -0
  237. package/scripts/generate-telegram-baseline-manifest.ts +1 -0
  238. package/scripts/generate-tool-catalog.ts +6 -4
  239. package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
  240. package/src/async/job-manager.ts +352 -17
  241. package/src/async/support.ts +25 -0
  242. package/src/autoresearch/dashboard.ts +28 -13
  243. package/src/capability/index.ts +3 -1
  244. package/src/capability/mcp.ts +6 -0
  245. package/src/capability/types.ts +6 -0
  246. package/src/cli/accounts-cli.ts +395 -0
  247. package/src/cli/args.ts +23 -0
  248. package/src/cli/auth-broker-cli.ts +136 -66
  249. package/src/cli/auth-gateway-cli.ts +94 -70
  250. package/src/cli/config-cli.ts +27 -2
  251. package/src/cli/crash-cli.ts +78 -0
  252. package/src/cli/customize-doctor.ts +1605 -0
  253. package/src/cli/daemon-cli.ts +12 -3
  254. package/src/cli/fast-help.ts +1 -0
  255. package/src/cli/mcp-cli.ts +128 -60
  256. package/src/cli/notify-cli.ts +8 -14
  257. package/src/cli/root-flags.ts +8 -0
  258. package/src/cli/setup-cli.ts +145 -0
  259. package/src/cli/skills-cli.ts +38 -2
  260. package/src/cli/update-cli.ts +167 -12
  261. package/src/cli.ts +4 -0
  262. package/src/commands/accounts.ts +71 -0
  263. package/src/commands/crash.ts +35 -0
  264. package/src/commands/customize.ts +84 -0
  265. package/src/commands/daemon.ts +2 -2
  266. package/src/commands/deep-interview.ts +2 -0
  267. package/src/commands/launch.ts +1 -0
  268. package/src/commands/mcp.ts +12 -7
  269. package/src/commands/ralplan.ts +2 -0
  270. package/src/commands/sdk.ts +65 -32
  271. package/src/commands/setup.ts +5 -0
  272. package/src/commands/skills.ts +14 -4
  273. package/src/commands/ultragoal.ts +10 -1
  274. package/src/commands/update.ts +26 -15
  275. package/src/config/atomic-yaml-patch-worker.ts +57 -0
  276. package/src/config/atomic-yaml-patch.ts +769 -29
  277. package/src/config/config-schema-version.ts +10 -0
  278. package/src/config/file-lock.ts +70 -1
  279. package/src/config/mcp-schema.json +52 -14
  280. package/src/config/model-profile-activation.ts +20 -1
  281. package/src/config/model-profiles.ts +29 -19
  282. package/src/config/model-registry.ts +132 -21
  283. package/src/config/models-config-schema.ts +1 -1
  284. package/src/config/settings-schema.ts +76 -6
  285. package/src/config/settings.ts +4038 -199
  286. package/src/config/skill-settings-defaults.ts +41 -3
  287. package/src/config/task-delegation.ts +87 -0
  288. package/src/config/update-channel.ts +23 -0
  289. package/src/coordinator-mcp/server.ts +377 -308
  290. package/src/crash/index-store.ts +723 -0
  291. package/src/crash/nudge.ts +89 -0
  292. package/src/crash/record-loader.ts +149 -0
  293. package/src/crash/report.ts +551 -0
  294. package/src/crash/sanitize.ts +129 -0
  295. package/src/cursor.ts +36 -10
  296. package/src/customization/import.ts +946 -0
  297. package/src/customization/index.ts +4 -0
  298. package/src/customization/inventory.ts +335 -0
  299. package/src/customization/mutations.ts +141 -0
  300. package/src/customization/types.ts +223 -0
  301. package/src/daemon/control-types.ts +8 -1
  302. package/src/daemon/operator-contract.ts +6 -6
  303. package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
  304. package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
  305. package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
  306. package/src/discovery/claude-hooks.ts +38 -0
  307. package/src/discovery/claude.ts +142 -209
  308. package/src/discovery/codex-hooks.ts +38 -0
  309. package/src/discovery/codex.ts +132 -198
  310. package/src/discovery/helpers.ts +8 -1
  311. package/src/discovery/index.ts +2 -0
  312. package/src/discovery/mcp-compat.ts +234 -0
  313. package/src/discovery/mcp-json.ts +6 -0
  314. package/src/edit/renderer.ts +40 -0
  315. package/src/edit/streaming.ts +4 -2
  316. package/src/exec/bash-executor.ts +24 -20
  317. package/src/export/html/index.ts +51 -2
  318. package/src/extensibility/extensions/loader.ts +9 -1
  319. package/src/extensibility/extensions/runner.ts +17 -4
  320. package/src/extensibility/extensions/types.ts +31 -6
  321. package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
  322. package/src/extensibility/gjc-plugins/installer.ts +9 -5
  323. package/src/extensibility/gjc-plugins/observability.ts +8 -2
  324. package/src/extensibility/gjc-plugins/registry.ts +13 -2
  325. package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
  326. package/src/extensibility/gjc-plugins/schema.ts +222 -39
  327. package/src/extensibility/hooks/loader.ts +154 -10
  328. package/src/extensibility/runtime-skill-discovery.ts +257 -60
  329. package/src/extensibility/skill-management.ts +368 -0
  330. package/src/extensibility/skills.ts +52 -16
  331. package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
  332. package/src/gjc-runtime/launch-worktree.ts +56 -2
  333. package/src/gjc-runtime/linux-proc.ts +7 -1
  334. package/src/gjc-runtime/ralplan-runtime.ts +100 -164
  335. package/src/gjc-runtime/session-state-lock.ts +992 -0
  336. package/src/gjc-runtime/session-state-sidecar.ts +644 -142
  337. package/src/gjc-runtime/state-writer.ts +39 -14
  338. package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
  339. package/src/gjc-runtime/ultragoal-guard.ts +11 -4
  340. package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
  341. package/src/gjc-runtime/workflow-settings.ts +596 -0
  342. package/src/goals/tools/goal-tool.ts +6 -1
  343. package/src/hooks/events.ts +291 -0
  344. package/src/hooks/native-skill-hook.ts +4 -0
  345. package/src/hooks/normalize.ts +369 -0
  346. package/src/hooks/skill-state.ts +165 -46
  347. package/src/internal-urls/docs-index.generated.ts +40 -32
  348. package/src/main.ts +32 -5
  349. package/src/migrate/mcp-mapper.ts +25 -2
  350. package/src/modes/acp/abort-scope.ts +29 -0
  351. package/src/modes/acp/acp-agent.ts +423 -98
  352. package/src/modes/components/assistant-message.ts +6 -1
  353. package/src/modes/components/customization/customization-dashboard.ts +443 -0
  354. package/src/modes/components/customization/import-wizard.ts +372 -0
  355. package/src/modes/components/customization/index.ts +1 -0
  356. package/src/modes/components/gajae-pet-widget.ts +539 -213
  357. package/src/modes/components/irc-sidebar.ts +11 -0
  358. package/src/modes/components/iterm-pet-transport.ts +585 -0
  359. package/src/modes/components/oauth-selector.ts +277 -86
  360. package/src/modes/components/pet-capability.ts +39 -40
  361. package/src/modes/components/settings-selector.ts +9 -0
  362. package/src/modes/components/status-line/gh.ts +45 -1
  363. package/src/modes/components/status-line/segments.ts +16 -1
  364. package/src/modes/components/tool-status-header.ts +13 -3
  365. package/src/modes/controllers/command-controller.ts +20 -8
  366. package/src/modes/controllers/extension-ui-controller.ts +56 -257
  367. package/src/modes/controllers/input-controller.ts +10 -0
  368. package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
  369. package/src/modes/controllers/selector-controller.ts +177 -72
  370. package/src/modes/controllers/stt-controller.ts +3 -3
  371. package/src/modes/interactive-mode.ts +88 -16
  372. package/src/modes/print-mode.ts +35 -6
  373. package/src/modes/runtime-init.ts +21 -68
  374. package/src/modes/types.ts +1 -0
  375. package/src/modes/utils/injected-user-submission.ts +25 -0
  376. package/src/modes/utils/terminal-bell.ts +15 -1
  377. package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
  378. package/src/prompts/agent-fragments/restricted-bash.md +1 -1
  379. package/src/prompts/agents/critic.md +1 -1
  380. package/src/prompts/system/rlm-research.md +1 -1
  381. package/src/prompts/system/system-prompt.md +0 -2
  382. package/src/prompts/tools/bash.md +7 -1
  383. package/src/prompts/tools/browser.md +1 -1
  384. package/src/prompts/tools/cron.md +6 -6
  385. package/src/prompts/tools/read.md +0 -2
  386. package/src/prompts/tools/skill-discovery.md +4 -2
  387. package/src/runtime-mcp/client.ts +427 -23
  388. package/src/runtime-mcp/config.ts +37 -5
  389. package/src/runtime-mcp/manager-pool.test.ts +56 -0
  390. package/src/runtime-mcp/manager.ts +52 -2
  391. package/src/runtime-mcp/oauth-discovery.ts +13 -0
  392. package/src/runtime-mcp/oauth-flow.ts +46 -1
  393. package/src/runtime-mcp/pool-key.ts +5 -1
  394. package/src/runtime-mcp/pool.test.ts +9 -0
  395. package/src/runtime-mcp/protocol.test.ts +353 -0
  396. package/src/runtime-mcp/protocol.ts +624 -0
  397. package/src/runtime-mcp/scope-config.ts +78 -0
  398. package/src/runtime-mcp/tool-bridge.ts +44 -10
  399. package/src/runtime-mcp/transports/http.ts +84 -13
  400. package/src/runtime-mcp/types.ts +123 -12
  401. package/src/sdk/acp/adapter.ts +328 -97
  402. package/src/sdk/broker/broker.ts +160 -741
  403. package/src/sdk/broker/ensure.ts +9 -1
  404. package/src/sdk/broker/lifecycle.ts +510 -116
  405. package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
  406. package/src/sdk/broker/process-incarnation.ts +19 -0
  407. package/src/sdk/broker/session-index.ts +516 -117
  408. package/src/sdk/broker/startup-failure.ts +28 -5
  409. package/src/sdk/broker/transport.ts +1 -13
  410. package/src/sdk/bus/chat-daemon-cli.ts +4 -2
  411. package/src/sdk/bus/chat-daemon-control.ts +67 -6
  412. package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
  413. package/src/sdk/bus/config.ts +13 -0
  414. package/src/sdk/bus/conversation-store.ts +59 -171
  415. package/src/sdk/bus/daemon-paths.ts +20 -0
  416. package/src/sdk/bus/discord-conversation.ts +2 -0
  417. package/src/sdk/bus/discord-daemon.ts +524 -126
  418. package/src/sdk/bus/discord-live-provider.ts +206 -79
  419. package/src/sdk/bus/existing-thread-readiness.ts +4 -97
  420. package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
  421. package/src/sdk/bus/index.ts +2480 -456
  422. package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
  423. package/src/sdk/bus/lifecycle-commands.ts +2 -2
  424. package/src/sdk/bus/managed-daemon.ts +2 -145
  425. package/src/sdk/bus/notification-service.ts +196 -0
  426. package/src/sdk/bus/operator-runtime.ts +1 -1
  427. package/src/sdk/bus/prompt-reconciliation.ts +24 -15
  428. package/src/sdk/bus/reconciliation-store.ts +553 -24
  429. package/src/sdk/bus/session-control.ts +49 -3
  430. package/src/sdk/bus/slack-conversation.ts +4 -0
  431. package/src/sdk/bus/slack-daemon.ts +733 -134
  432. package/src/sdk/bus/slack-live-provider.ts +65 -15
  433. package/src/sdk/bus/slack-provider.ts +4 -0
  434. package/src/sdk/bus/slack-thread-binding.ts +9 -104
  435. package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
  436. package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
  437. package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
  438. package/src/sdk/bus/telegram-daemon-control.ts +3 -13
  439. package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
  440. package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
  441. package/src/sdk/bus/telegram-daemon.ts +2552 -2280
  442. package/src/sdk/bus/telegram-reference.ts +1 -226
  443. package/src/sdk/bus/telegram-setup.ts +2 -2
  444. package/src/sdk/bus/threaded-render.ts +1 -0
  445. package/src/sdk/bus/topic-registry.ts +279 -146
  446. package/src/sdk/cli/rows.ts +2 -35
  447. package/src/sdk/cli/session-cli.ts +776 -700
  448. package/src/sdk/client/client.ts +892 -1
  449. package/src/sdk/host/control/dispatch.ts +93 -58
  450. package/src/sdk/host/control/index.ts +1 -1
  451. package/src/sdk/host/control/operations.ts +18 -10
  452. package/src/sdk/host/control/runtime-gate.ts +40 -0
  453. package/src/sdk/host/host.ts +63 -12
  454. package/src/sdk/host/query/handlers.ts +66 -7
  455. package/src/sdk/host/reverse-leases.ts +2 -2
  456. package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
  457. package/src/sdk/host/session-runtime.test.ts +2787 -34
  458. package/src/sdk/host/session-runtime.ts +1489 -101
  459. package/src/sdk/host/surface-policy.ts +12 -8
  460. package/src/sdk/host/types.ts +1 -1
  461. package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
  462. package/src/sdk/host/websocket-transport.ts +85 -50
  463. package/src/sdk/index.ts +2 -1
  464. package/src/sdk/lifecycle/broker-client.ts +53 -0
  465. package/src/sdk/lifecycle/client.ts +234 -0
  466. package/src/sdk/lifecycle/index.ts +3 -0
  467. package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
  468. package/src/sdk/lifecycle/service.ts +720 -0
  469. package/src/sdk/mcp/server.ts +226 -188
  470. package/src/sdk/prompt-deadline-lease.ts +55 -0
  471. package/src/sdk/prompt-deadline-manager.ts +148 -0
  472. package/src/sdk/prompt-status.ts +11 -3
  473. package/src/sdk/protocol/operation-inventory.generated.json +272 -129
  474. package/src/sdk/protocol/operation-registry.ts +71 -8
  475. package/src/sdk/receipt-state.ts +43 -0
  476. package/src/sdk/reconciliation-extensions.ts +14 -0
  477. package/src/sdk/router/index.ts +1 -0
  478. package/src/sdk/router/session-router.ts +1658 -0
  479. package/src/sdk/session-list.ts +93 -0
  480. package/src/sdk/session-reconnect.ts +45 -1
  481. package/src/sdk/session.ts +716 -120
  482. package/src/sdk/transport/serve-cli.ts +18 -34
  483. package/src/session/account-inventory.ts +603 -0
  484. package/src/session/agent-session.ts +2857 -582
  485. package/src/session/agent-storage.ts +35 -0
  486. package/src/session/blob-store.ts +32 -1
  487. package/src/session/coordinator-tool-label.ts +40 -0
  488. package/src/session/internal/managed-session-scope.ts +4 -0
  489. package/src/session/internal/managed-session-storage.ts +173 -12
  490. package/src/session/messages.ts +1 -1
  491. package/src/session/secure-token-file.ts +80 -0
  492. package/src/session/session-manager.ts +730 -58
  493. package/src/session/session-storage.ts +25 -16
  494. package/src/session/startup-auth-config.ts +297 -0
  495. package/src/session/terminal-abort.ts +1253 -0
  496. package/src/session/yield-queue.ts +57 -15
  497. package/src/session-import/claude.ts +334 -0
  498. package/src/session-import/codex.ts +1033 -0
  499. package/src/session-import/command.ts +77 -0
  500. package/src/session-import/detect.ts +133 -0
  501. package/src/session-import/index.ts +7 -0
  502. package/src/session-import/provider-codex.ts +327 -0
  503. package/src/session-import/provider-service.ts +457 -0
  504. package/src/session-import/redact.ts +128 -0
  505. package/src/session-import/service.ts +1264 -0
  506. package/src/session-import/types.ts +148 -0
  507. package/src/setup/paseo/check.ts +213 -0
  508. package/src/setup/paseo/install-saga.ts +293 -0
  509. package/src/setup/paseo/json-publisher.ts +263 -0
  510. package/src/setup/paseo/orchestration-preferences.ts +86 -0
  511. package/src/setup/paseo/paseo-ownership.ts +224 -0
  512. package/src/setup/paseo/paseo-setup.ts +253 -0
  513. package/src/setup/paseo/provider-config.ts +139 -0
  514. package/src/setup/paseo/remove.ts +183 -0
  515. package/src/setup/paseo/result-types.ts +79 -0
  516. package/src/setup/paseo/setup-deps.ts +175 -0
  517. package/src/setup/paseo/skills-bridge.ts +260 -0
  518. package/src/skill-state/active-state.ts +21 -11
  519. package/src/slash-commands/acp-builtins.ts +9 -1
  520. package/src/slash-commands/builtin-registry.ts +98 -16
  521. package/src/slash-commands/helpers/credential-switch.ts +143 -0
  522. package/src/slash-commands/helpers/mcp.ts +9 -3
  523. package/src/slash-commands/helpers/usage-report.ts +61 -56
  524. package/src/slash-commands/types.ts +7 -2
  525. package/src/task/executor.ts +30 -11
  526. package/src/task/index.ts +66 -7
  527. package/src/task/render.ts +23 -9
  528. package/src/tools/ask-answer-registry.ts +23 -7
  529. package/src/tools/ask.ts +8 -4
  530. package/src/tools/bash-sleep-advisory.ts +115 -0
  531. package/src/tools/bash.ts +98 -18
  532. package/src/tools/browser/attach.ts +71 -3
  533. package/src/tools/browser/launch.ts +86 -13
  534. package/src/tools/browser/profile-discovery.ts +57 -7
  535. package/src/tools/browser/render.ts +8 -1
  536. package/src/tools/browser.ts +130 -21
  537. package/src/tools/computer.enforcement.test.ts +1 -1
  538. package/src/tools/computer.ts +3 -2
  539. package/src/tools/cron.ts +12 -1
  540. package/src/tools/image-gen.ts +27 -16
  541. package/src/tools/index.ts +8 -0
  542. package/src/tools/job.ts +33 -6
  543. package/src/tools/monitor.ts +41 -2
  544. package/src/tools/skill-discovery.ts +21 -29
  545. package/src/tools/subagent.ts +142 -24
  546. package/src/tools/tool-catalog.generated.ts +6 -6
  547. package/src/tools/ultragoal-ask-guard.ts +10 -3
  548. package/src/utils/herdr-pane.ts +345 -0
  549. package/src/utils/title-generator.ts +2 -0
  550. package/src/web/scrapers/index.ts +6 -4
  551. package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
  552. package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
  553. package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
  554. package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
  555. package/dist/types/runtime/lazy-service.test.d.ts +0 -1
  556. package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
  557. package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
  558. package/dist/types/runtime-mcp/config.test.d.ts +0 -1
  559. package/dist/types/runtime-mcp/http.test.d.ts +0 -1
  560. package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
  561. package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
  562. package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
  563. package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
  564. package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
  565. package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
  566. package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
  567. package/dist/types/sdk/elevation/audit.d.ts +0 -93
  568. package/dist/types/sdk/elevation/capability.d.ts +0 -3
  569. package/dist/types/sdk/elevation/digest.d.ts +0 -72
  570. package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
  571. package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
  572. package/dist/types/sdk/elevation/owner.d.ts +0 -48
  573. package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
  574. package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
  575. package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
  576. package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
  577. package/dist/types/session/auth-broker-config.d.ts +0 -13
  578. package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
  579. package/dist/types/skills/skills.test.d.ts +0 -1
  580. package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
  581. package/dist/types/task/token-log.test.d.ts +0 -1
  582. package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
  583. package/dist/types/tools/descriptors.test.d.ts +0 -1
  584. package/scripts/g005-daemon-smoke.ts +0 -180
  585. package/scripts/g011-daemon-path-smoke.ts +0 -153
  586. package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
  587. package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
  588. package/src/sdk/bus/telegram-cli.ts +0 -212
  589. package/src/sdk/elevation/allowlist.ts +0 -54
  590. package/src/sdk/elevation/audit.ts +0 -208
  591. package/src/sdk/elevation/capability.ts +0 -41
  592. package/src/sdk/elevation/digest.ts +0 -129
  593. package/src/sdk/elevation/dispatch-receipt.ts +0 -184
  594. package/src/sdk/elevation/grant-ledger.ts +0 -1142
  595. package/src/sdk/elevation/owner.ts +0 -109
  596. package/src/session/auth-broker-config.ts +0 -109
  597. /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
  598. /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
  599. /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
@@ -9,7 +9,7 @@ export interface SessionSdkTransport {
9
9
  readonly sessionId: string;
10
10
  readonly stateRoot: string;
11
11
  readonly token: string;
12
- sendFrame(connectionId: string, frame: SdkFrame): void | Promise<void>;
12
+ sendFrame(connectionId: string, frame: SdkFrame): void | "written" | "dropped" | Promise<void> | Promise<"written" | "dropped">;
13
13
  onFrame(handler: (connectionId: string, frame: SdkFrame) => void): undefined | (() => void);
14
14
  onMalformedFrame?(handler: (connectionId: string, message: string) => void): undefined | (() => void);
15
15
  start(): Promise<{
@@ -27,6 +27,105 @@ export interface SessionSdkRuntimeOptions extends Omit<SessionSdkHostOptions, "s
27
27
  /** Mutable shadow of patched config values merged into query readback. */
28
28
  configOverrides?: Map<string, unknown>;
29
29
  }
30
+ export interface SdkOnlyInvocationRecord extends InvocationCorrelation {
31
+ kind: InvocationKind | "terminal" | "steer";
32
+ clientRef?: string;
33
+ status: InvocationStatus | "dispatching" | "rejected";
34
+ acceptedAt: number;
35
+ startedAt?: number;
36
+ terminalAt?: number;
37
+ error?: {
38
+ code: string;
39
+ message: string;
40
+ };
41
+ outcome?: unknown;
42
+ pendingOutcome?: unknown;
43
+ skillName?: string;
44
+ /** Steer records (origin/dev) carry their own dispatching lifecycle. */
45
+ textDigest?: string;
46
+ createdAt?: number;
47
+ settledAt?: number;
48
+ }
49
+ export interface SdkOnlyTerminalScopeRecord {
50
+ selection: "turn" | "owned";
51
+ idempotencyKeyHash?: string;
52
+ idempotencyInputHash?: string;
53
+ turnDisposition: "pending" | "stopped" | "uncertain" | "no_effect" | "no_effect_reserved" | "no_effect_marker_failure";
54
+ terminalPublished?: boolean;
55
+ ownedWorkDisposition: "not_requested" | "left_running" | "stopped" | "uncertain";
56
+ automaticDeliveryDisposition: "enabled" | "none";
57
+ resumeOnOwnedCompletion: boolean;
58
+ turnContinuationFence: {
59
+ state: "retained" | "released";
60
+ abortedAttemptEpoch: number;
61
+ blockedContinuationIds: string[];
62
+ predecessorTombstones: string[];
63
+ ownedCompletionPolicy: "enabled" | "disabled";
64
+ };
65
+ responseState: "pending" | "sent" | "delivered" | "failed";
66
+ responsePayloadHash: string;
67
+ replayPayloadHash?: string;
68
+ acceptedAt: number;
69
+ terminalAt?: number;
70
+ }
71
+ export interface SdkOnlyEvictedTerminalKeyEntry {
72
+ keyHash: string;
73
+ inputHash: string;
74
+ turnDisposition?: "stopped" | "uncertain" | "no_effect" | "no_effect_reserved" | "no_effect_marker_failure";
75
+ ownedWorkDisposition?: "not_requested" | "left_running" | "stopped" | "uncertain";
76
+ responseState?: "pending" | "sent" | "delivered" | "failed";
77
+ responsePayloadHash?: string;
78
+ replayPayloadHash?: string;
79
+ terminalPublished?: boolean;
80
+ }
81
+ export interface SdkOnlyReconciliationStore {
82
+ readonly path: string | null;
83
+ load(): Promise<unknown[]>;
84
+ transact(mutator: (records: SdkOnlyInvocationRecord[]) => SdkOnlyInvocationRecord[]): Promise<void>;
85
+ snapshotTerminalScopes(): SdkOnlyTerminalScopeRecord[];
86
+ snapshotTerminalKeys(): SdkOnlyEvictedTerminalKeyEntry[];
87
+ transactTerminalScopes(mutator: (scopes: SdkOnlyTerminalScopeRecord[]) => SdkOnlyTerminalScopeRecord[]): Promise<void>;
88
+ transactTerminalState(mutator: (state: {
89
+ scopes: SdkOnlyTerminalScopeRecord[];
90
+ keys: SdkOnlyEvictedTerminalKeyEntry[];
91
+ }) => {
92
+ scopes: SdkOnlyTerminalScopeRecord[];
93
+ keys: SdkOnlyEvictedTerminalKeyEntry[];
94
+ }): Promise<void>;
95
+ }
96
+ export interface SdkOnlyTerminalAbortSeams {
97
+ getReconciliationStore?: () => SdkOnlyReconciliationStore | undefined;
98
+ getTerminalTurnEpoch: () => number | undefined;
99
+ getActivePromptHandle: () => string | undefined;
100
+ /** Re-read the active prompt's owning SDK connection for the owner-mismatch
101
+ * recheck; falls back to the runtime-tracked owner when absent (review
102
+ * thread P1). */
103
+ getActivePromptOwnerConnectionId?: () => string | undefined;
104
+ cancelPendingPreflightForTerminalAbort: () => void;
105
+ /** Capture the steering admission snapshot at abort ADMISSION (before any
106
+ * durable transaction), so steers admitted while the abort is in flight
107
+ * classify as post-snapshot (review thread P1). */
108
+ captureTerminalAbortSteeringSnapshot?: () => number | undefined;
109
+ /** Discard the steering snapshot when a replay-only abort never settles
110
+ * (review thread P1). */
111
+ discardTerminalAbortSteeringSnapshot?: (token: number) => void;
112
+ /** Rebind the snapshot to the current turn when the requester's turn
113
+ * wins the race (review thread P1). */
114
+ rebindTerminalAbortSteeringSnapshot?: (token: number) => void;
115
+ abortPromptAndWaitWithTerminal: (handle: string, options: {
116
+ graceMs: number;
117
+ terminal?: {
118
+ scope: "turn" | "owned";
119
+ expectedEpoch?: number;
120
+ steeringSnapshotToken?: number;
121
+ };
122
+ }) => Promise<{
123
+ status: string;
124
+ terminalScope?: unknown;
125
+ }>;
126
+ /** Test override for the maximum durable terminal reservation rows. */
127
+ maxDurableTerminalReservationsForTests?: number;
128
+ }
30
129
  /**
31
130
  * The transport-neutral SDK session runtime.
32
131
  *
@@ -71,13 +170,20 @@ export interface CreateSdkSessionRuntimeOptions {
71
170
  settings?: Settings;
72
171
  /** Mutable shadow of patched config values merged into query readback. */
73
172
  configOverrides?: Map<string, unknown>;
173
+ /** Private session-owned terminal-abort capabilities; never exposed on ExtensionContext. */
174
+ terminalAbortSeams?: SdkOnlyTerminalAbortSeams;
175
+ /** Callback when a frame is admitted to the runtime (test harness). */
176
+ onFrameAdmitted?: () => void;
74
177
  }
75
178
  export interface InvocationCorrelation {
76
179
  commandId: string;
77
180
  turnId: string;
78
181
  }
79
- export type InvocationKind = "prompt" | "skill";
182
+ export type InvocationKind = "prompt" | "skill" | "steer";
183
+ type InvocationStatus = "accepted" | "in_flight" | "terminal_ok" | "failed" | "uncertain";
80
184
  export interface InvocationReconciliation {
185
+ /** Shared v2 reconciliation owner; present for durable terminal admission. */
186
+ readonly store?: SdkOnlyReconciliationStore;
81
187
  admit(kind: InvocationKind, clientRef?: string): void;
82
188
  release(kind: InvocationKind, clientRef?: string): void;
83
189
  noteAccepted(kind: InvocationKind, correlation: InvocationCorrelation, clientRef?: string): Promise<void>;
@@ -98,10 +204,23 @@ export interface InvocationReconciliation {
98
204
  clientRef?: string;
99
205
  }): unknown;
100
206
  hydrate(): Promise<void>;
207
+ claimPendingOutcome(kind: InvocationKind, correlation: InvocationCorrelation, outcome: {
208
+ kind: string;
209
+ code: string;
210
+ message: string;
211
+ provenance?: string;
212
+ }): Promise<unknown>;
213
+ finalizeOutcome(kind: InvocationKind, correlation: InvocationCorrelation, outcome?: {
214
+ kind: string;
215
+ code: string;
216
+ message: string;
217
+ provenance?: string;
218
+ }): Promise<void>;
101
219
  }
102
220
  export declare function createInvocationReconciliation(options?: {
103
221
  stateRoot?: string;
104
222
  sessionId?: string;
223
+ store?: SdkOnlyReconciliationStore;
105
224
  }): InvocationReconciliation;
106
225
  export interface SdkSurfaceFactoryOptions {
107
226
  ctx: ExtensionContext;
@@ -123,12 +242,12 @@ export interface SdkSurfaceFactoryOptions {
123
242
  turnId?: string;
124
243
  clientRef?: string;
125
244
  }) => unknown;
245
+ steerStatusLookup?: (selector: {
246
+ commandId?: string;
247
+ turnId?: string;
248
+ clientRef?: string;
249
+ }) => unknown;
126
250
  hostTools?: boolean | (() => boolean);
127
- /** Q30 event-ring watermark source (the live session event stream); synchronous. */
128
- getEventWatermark?: () => {
129
- generation: number;
130
- seq: number;
131
- };
132
251
  }
133
252
  /** Shared policy, capability, and query-surface factory for every SDK transport. */
134
253
  export interface SdkSurfaceFactory {
@@ -148,3 +267,4 @@ export declare function createSdkSurfaceFactory(options: SdkSurfaceFactoryOption
148
267
  export declare function registerSdkOnlyNotificationCommand(api: ExtensionAPI): void;
149
268
  /** Install a complete SDK host for a session when notifications are inactive. */
150
269
  export declare function createSdkSessionRuntimeExtension(api: ExtensionAPI, options: CreateSdkSessionRuntimeOptions): void;
270
+ export {};
@@ -15,7 +15,7 @@ export interface HostEndpointAdapters {
15
15
  sessionId: string;
16
16
  stateRoot: string;
17
17
  token: string;
18
- sendFrame: (connectionId: string, frame: SdkFrame) => void | Promise<void>;
18
+ sendFrame: (connectionId: string, frame: SdkFrame) => "written" | "dropped" | Promise<"written" | "dropped">;
19
19
  onFrame: (handler: (connectionId: string, frame: SdkFrame) => void) => undefined | (() => void);
20
20
  }
21
21
  export interface BrokerIndexWriter {
@@ -1,7 +1,7 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import type { SessionSdkTransport } from "./session-runtime";
3
3
  export interface SdkWebSocketTransportDependencies {
4
- readonly filesystem?: Pick<typeof fs, "mkdir" | "writeFile" | "chmod" | "rename" | "readFile" | "rm">;
4
+ readonly filesystem?: Pick<typeof fs, "mkdir" | "writeFile" | "chmod" | "rename" | "rm" | "stat">;
5
5
  readonly serve?: typeof Bun.serve;
6
6
  }
7
7
  export type SdkTransportLifecycleErrorCode = "endpoint_write_failed" | "endpoint_chmod_failed" | "endpoint_remove_failed" | "server_stop_failed";
@@ -1,11 +1,12 @@
1
1
  export { MODEL_PROFILE_DISCOVERY_QUERY, MODEL_PROFILE_ERROR_DETAIL_MAX_BYTES, type ModelProfileCatalogItem, type ModelProfileErrorCode, type ModelProfileErrorDetails, ModelProfileRegistryError, type ModelProfileRegistryErrorDetails, type UnknownModelProfileDetails, UnknownModelProfileError, } from "../config/model-profile-contract";
2
2
  export * as bus from "./bus";
3
- export * from "./client";
4
3
  export * as host from "./host";
4
+ export * as lifecycle from "./lifecycle";
5
5
  export * as mcp from "./mcp";
6
6
  export type { Q10CurrentThinkingLevel, Q10Model, Q10SettableThinkingLevel, Q10ThinkingCapabilities, Q10ThinkingEffort, Q10ThinkingMode, } from "./models";
7
7
  export * from "./prompt-status";
8
8
  export type { ActiveProviderConnectionKind, ActiveProviderDescriptor } from "./providers";
9
+ export * as router from "./router";
9
10
  export * from "./session";
10
11
  export * from "./session-directory";
11
12
  export * from "./turn-result";
@@ -0,0 +1,8 @@
1
+ import { type SessionLifecycleClient, type SessionLifecycleClientRequestOptions, type SessionLifecycleOperation, SessionLifecycleService } from "./service";
2
+ /** SDK-core Broker client that keeps Broker credentials inside the lifecycle boundary. */
3
+ export declare class AgentDirSessionLifecycleClient implements SessionLifecycleClient {
4
+ #private;
5
+ constructor(agentDir: string);
6
+ global(operation: SessionLifecycleOperation, input: Record<string, unknown>, options: SessionLifecycleClientRequestOptions): Promise<unknown>;
7
+ }
8
+ export declare function createBrokerSessionLifecycleService(agentDir: string): SessionLifecycleService;
@@ -0,0 +1,59 @@
1
+ import { type ListRecentSessionsResult } from "./recent-sessions";
2
+ import { type SessionCreateOutcome, type SessionLifecycleActor, SessionLifecycleService, type SessionResumeOutcome } from "./service";
3
+ export type ExternalSessionCreateTarget = {
4
+ readonly kind: "existing_path";
5
+ readonly path: string;
6
+ } | {
7
+ readonly kind: "worktree";
8
+ readonly repo: string;
9
+ readonly branch: string;
10
+ } | {
11
+ readonly kind: "plain_dir";
12
+ readonly path: string;
13
+ };
14
+ export interface ExternalSessionResumeTarget {
15
+ readonly sessionIdOrPrefix: string;
16
+ readonly path?: string;
17
+ }
18
+ export type ExternalSessionResumeResult = {
19
+ readonly kind: "result";
20
+ readonly outcome: SessionResumeOutcome;
21
+ } | {
22
+ readonly kind: "not_found";
23
+ } | {
24
+ readonly kind: "ambiguous";
25
+ readonly candidates: readonly {
26
+ readonly sessionId: string;
27
+ readonly path?: string;
28
+ }[];
29
+ } | {
30
+ readonly kind: "unavailable";
31
+ readonly message: string;
32
+ };
33
+ export declare class AgentDirSessionLifecycleService extends SessionLifecycleService {
34
+ #private;
35
+ constructor(agentDir: string);
36
+ createExternal(request: {
37
+ readonly actor: SessionLifecycleActor;
38
+ readonly capability: "session.create";
39
+ readonly requestKey: string;
40
+ readonly target: ExternalSessionCreateTarget;
41
+ readonly modelPreset?: string;
42
+ readonly readinessTimeoutMs?: number;
43
+ }): Promise<SessionCreateOutcome>;
44
+ listRecent(input: {
45
+ readonly cwd: string;
46
+ readonly limit?: number;
47
+ readonly includeInternal?: boolean;
48
+ readonly allWorkspaces?: boolean;
49
+ }): Promise<ListRecentSessionsResult>;
50
+ resumeExternal(request: {
51
+ readonly actor: SessionLifecycleActor;
52
+ readonly capability: "session.resume";
53
+ readonly requestKey: string;
54
+ readonly target: ExternalSessionResumeTarget;
55
+ readonly modelPreset?: string;
56
+ readonly readinessTimeoutMs?: number;
57
+ }): Promise<ExternalSessionResumeResult>;
58
+ }
59
+ export declare function createSessionLifecycleService(agentDir: string): AgentDirSessionLifecycleService;
@@ -0,0 +1,3 @@
1
+ export * from "./client";
2
+ export * from "./recent-sessions";
3
+ export * from "./service";
@@ -0,0 +1,232 @@
1
+ export type SessionLifecycleOperation = "session.create" | "session.fork" | "session.resume" | "session.close" | "session.delete" | "session.list";
2
+ export interface SessionLifecycleActor {
3
+ readonly id: string;
4
+ readonly namespace: string;
5
+ }
6
+ export interface SessionLifecycleClientRequestOptions {
7
+ readonly idempotencyKey?: string;
8
+ readonly timeoutMs?: number;
9
+ }
10
+ /** The deliberately small client surface needed by the lifecycle facade. */
11
+ export interface SessionLifecycleClient {
12
+ global(operation: SessionLifecycleOperation, input: Record<string, unknown>, options: SessionLifecycleClientRequestOptions): Promise<unknown>;
13
+ }
14
+ export interface SessionLifecycleWorktreeTarget {
15
+ readonly enabled: true;
16
+ readonly name?: string;
17
+ }
18
+ export interface SessionLifecycleTranscriptIdentity {
19
+ readonly dev: string;
20
+ readonly ino: string;
21
+ readonly size: number;
22
+ readonly mtimeMs: number;
23
+ readonly mtimeNs: string;
24
+ readonly sha256: string;
25
+ }
26
+ export interface SessionLifecycleSavedSessionIdentity extends SessionLifecycleTranscriptIdentity {
27
+ readonly nlink: string;
28
+ readonly ctimeNs: string;
29
+ }
30
+ export interface SessionLifecycleSavedSession {
31
+ readonly id: string;
32
+ readonly path: string;
33
+ readonly identity: SessionLifecycleSavedSessionIdentity;
34
+ }
35
+ export interface SessionLifecycleCoordinatorTarget {
36
+ readonly coordinatorStateDir?: string;
37
+ readonly coordinatorSessionId?: string;
38
+ readonly coordinatorSessionBranch?: string;
39
+ }
40
+ export interface SessionCreateTarget extends SessionLifecycleCoordinatorTarget {
41
+ readonly cwd: string;
42
+ readonly stateRoot?: string;
43
+ readonly body?: string;
44
+ readonly modelPreset?: string;
45
+ readonly mcpServers?: readonly Record<string, unknown>[];
46
+ readonly worktree?: SessionLifecycleWorktreeTarget;
47
+ readonly readiness?: "immediate" | "deferred";
48
+ readonly readinessTimeoutMs?: number;
49
+ }
50
+ export interface SessionForkTarget extends SessionLifecycleCoordinatorTarget {
51
+ readonly cwd: string;
52
+ readonly stateRoot?: string;
53
+ readonly sourceSessionId?: string;
54
+ readonly sourceSessionPath?: string;
55
+ readonly sourceSessionIdentity?: SessionLifecycleTranscriptIdentity;
56
+ readonly body?: string;
57
+ readonly modelPreset?: string;
58
+ readonly mcpServers?: readonly Record<string, unknown>[];
59
+ readonly worktree?: SessionLifecycleWorktreeTarget;
60
+ readonly readinessTimeoutMs?: number;
61
+ }
62
+ export interface SessionResumeTarget extends SessionLifecycleCoordinatorTarget {
63
+ readonly sessionId: string;
64
+ readonly cwd?: string;
65
+ readonly stateRoot?: string;
66
+ readonly sessionPath?: string;
67
+ readonly sessionIdentity?: SessionLifecycleTranscriptIdentity;
68
+ readonly body?: string;
69
+ readonly modelPreset?: string;
70
+ readonly mcpServers?: readonly Record<string, unknown>[];
71
+ readonly worktree?: SessionLifecycleWorktreeTarget;
72
+ readonly readinessTimeoutMs?: number;
73
+ }
74
+ export interface SessionCloseTarget {
75
+ readonly sessionId: string;
76
+ readonly endpointGeneration?: number;
77
+ readonly endpointIncarnation?: string;
78
+ }
79
+ export interface SessionDeleteTarget {
80
+ readonly sessionId: string;
81
+ readonly cwd?: string;
82
+ readonly stateRoot?: string;
83
+ readonly sessionPath?: string;
84
+ }
85
+ export interface SessionListTarget {
86
+ readonly cwd?: string;
87
+ readonly resolveSessionId?: string;
88
+ }
89
+ interface SessionLifecycleMutationRequestBase<TOperation extends Exclude<SessionLifecycleOperation, "session.list">, TTarget> {
90
+ readonly operation: TOperation;
91
+ readonly actor: SessionLifecycleActor;
92
+ readonly capability: TOperation;
93
+ readonly requestKey: string;
94
+ readonly target: TTarget;
95
+ readonly timeoutMs?: number;
96
+ }
97
+ export type SessionCreateRequest = SessionLifecycleMutationRequestBase<"session.create", SessionCreateTarget>;
98
+ export type SessionForkRequest = SessionLifecycleMutationRequestBase<"session.fork", SessionForkTarget>;
99
+ export type SessionResumeRequest = SessionLifecycleMutationRequestBase<"session.resume", SessionResumeTarget>;
100
+ export type SessionCloseRequest = SessionLifecycleMutationRequestBase<"session.close", SessionCloseTarget>;
101
+ export type SessionDeleteRequest = SessionLifecycleMutationRequestBase<"session.delete", SessionDeleteTarget>;
102
+ export interface SessionListRequest {
103
+ readonly operation: "session.list";
104
+ readonly actor: SessionLifecycleActor;
105
+ readonly capability: "session.list";
106
+ readonly target?: SessionListTarget;
107
+ readonly timeoutMs?: number;
108
+ }
109
+ export type SessionLifecycleRequest = SessionLifecycleMutationRequest | SessionListRequest;
110
+ export type SessionLifecycleMutationRequest = SessionCreateRequest | SessionForkRequest | SessionResumeRequest | SessionCloseRequest | SessionDeleteRequest;
111
+ export type SessionLifecycleCertainty = "terminal" | "retryable" | "cleanup_pending" | "uncertain";
112
+ export interface SessionLifecycleSessionResult {
113
+ readonly sessionId: string;
114
+ readonly cwd?: string;
115
+ readonly endpointGeneration?: number;
116
+ readonly reused?: boolean;
117
+ readonly note?: string;
118
+ }
119
+ export interface SessionLifecycleListEntry {
120
+ readonly sessionId: string;
121
+ readonly live?: boolean;
122
+ readonly endpointGeneration?: number;
123
+ readonly terminalUncertain?: boolean;
124
+ readonly repo?: string;
125
+ }
126
+ export interface SessionLifecycleListResult {
127
+ readonly indexSeq: number;
128
+ readonly sessions: readonly SessionLifecycleListEntry[];
129
+ readonly warnings: readonly string[];
130
+ readonly savedSession?: SessionLifecycleSavedSession;
131
+ }
132
+ export interface SessionCreateResult {
133
+ readonly ok: true;
134
+ readonly operation: "session.create";
135
+ readonly result: SessionLifecycleSessionResult;
136
+ }
137
+ export interface SessionForkResult {
138
+ readonly ok: true;
139
+ readonly operation: "session.fork";
140
+ readonly result: SessionLifecycleSessionResult;
141
+ }
142
+ export interface SessionResumeResult {
143
+ readonly ok: true;
144
+ readonly operation: "session.resume";
145
+ readonly result: SessionLifecycleSessionResult;
146
+ }
147
+ export interface SessionCloseResult {
148
+ readonly ok: true;
149
+ readonly operation: "session.close";
150
+ readonly result: SessionLifecycleSessionResult;
151
+ }
152
+ export interface SessionDeleteResult {
153
+ readonly ok: true;
154
+ readonly operation: "session.delete";
155
+ readonly result: SessionLifecycleSessionResult;
156
+ }
157
+ export interface SessionListSuccessResult {
158
+ readonly ok: true;
159
+ readonly operation: "session.list";
160
+ readonly result: SessionLifecycleListResult;
161
+ }
162
+ export interface SessionLifecycleError {
163
+ readonly code: string;
164
+ readonly message: string;
165
+ }
166
+ export type SessionCreateFailure = {
167
+ readonly ok: false;
168
+ readonly operation: "session.create";
169
+ readonly certainty: SessionLifecycleCertainty;
170
+ readonly error: SessionLifecycleError;
171
+ };
172
+ export type SessionForkFailure = {
173
+ readonly ok: false;
174
+ readonly operation: "session.fork";
175
+ readonly certainty: SessionLifecycleCertainty;
176
+ readonly error: SessionLifecycleError;
177
+ };
178
+ export type SessionResumeFailure = {
179
+ readonly ok: false;
180
+ readonly operation: "session.resume";
181
+ readonly certainty: SessionLifecycleCertainty;
182
+ readonly error: SessionLifecycleError;
183
+ };
184
+ export type SessionCloseFailure = {
185
+ readonly ok: false;
186
+ readonly operation: "session.close";
187
+ readonly certainty: SessionLifecycleCertainty;
188
+ readonly error: SessionLifecycleError;
189
+ };
190
+ export type SessionDeleteFailure = {
191
+ readonly ok: false;
192
+ readonly operation: "session.delete";
193
+ readonly certainty: SessionLifecycleCertainty;
194
+ readonly error: SessionLifecycleError;
195
+ };
196
+ export type SessionListFailure = {
197
+ readonly ok: false;
198
+ readonly operation: "session.list";
199
+ readonly certainty: SessionLifecycleCertainty;
200
+ readonly error: SessionLifecycleError;
201
+ };
202
+ export type SessionCreateOutcome = SessionCreateResult | SessionCreateFailure;
203
+ export type SessionForkOutcome = SessionForkResult | SessionForkFailure;
204
+ export type SessionResumeOutcome = SessionResumeResult | SessionResumeFailure;
205
+ export type SessionCloseOutcome = SessionCloseResult | SessionCloseFailure;
206
+ export type SessionDeleteOutcome = SessionDeleteResult | SessionDeleteFailure;
207
+ export type SessionListOutcome = SessionListSuccessResult | SessionListFailure;
208
+ export type SessionLifecycleResult = SessionCreateOutcome | SessionForkOutcome | SessionResumeOutcome | SessionCloseOutcome | SessionDeleteOutcome | SessionListOutcome;
209
+ /** Shared, side-effect-free validation for lifecycle mutation requests. */
210
+ export type SessionLifecycleMutationValidation = {
211
+ readonly ok: true;
212
+ readonly operation: Exclude<SessionLifecycleOperation, "session.list">;
213
+ readonly actor: SessionLifecycleActor;
214
+ readonly requestKey: string;
215
+ readonly target: Readonly<Record<string, unknown>>;
216
+ } | SessionCreateFailure | SessionForkFailure | SessionResumeFailure | SessionCloseFailure | SessionDeleteFailure;
217
+ /** Derives a stable Broker idempotency key without exposing caller identity to Broker inputs. */
218
+ export declare function deriveSessionLifecycleIdempotencyKey(actor: SessionLifecycleActor, requestKey: string, operation: SessionLifecycleOperation): string;
219
+ /** Validates lifecycle authority and shape without contacting the Broker. */
220
+ export declare function validateSessionLifecycleMutationRequest(request: unknown): SessionLifecycleMutationValidation;
221
+ export declare class SessionLifecycleService {
222
+ #private;
223
+ constructor(client: SessionLifecycleClient);
224
+ execute(request: SessionLifecycleMutationRequest): Promise<SessionCreateOutcome | SessionForkOutcome | SessionResumeOutcome | SessionCloseOutcome | SessionDeleteOutcome>;
225
+ create(request: Omit<SessionCreateRequest, "operation">): Promise<SessionCreateOutcome>;
226
+ fork(request: Omit<SessionForkRequest, "operation">): Promise<SessionForkOutcome>;
227
+ resume(request: Omit<SessionResumeRequest, "operation">): Promise<SessionResumeOutcome>;
228
+ close(request: Omit<SessionCloseRequest, "operation">): Promise<SessionCloseOutcome>;
229
+ delete(request: Omit<SessionDeleteRequest, "operation">): Promise<SessionDeleteOutcome>;
230
+ list(request: Omit<SessionListRequest, "operation">): Promise<SessionListOutcome>;
231
+ }
232
+ export {};
@@ -1,4 +1,5 @@
1
- import { SdkClient } from "../client/client";
1
+ import type { SessionLifecycleService } from "../lifecycle/service";
2
+ import { SessionRouter } from "../router";
2
3
  type Arguments = Record<string, unknown>;
3
4
  type JsonRpcRequest = {
4
5
  jsonrpc: "2.0";
@@ -16,22 +17,24 @@ type JsonRpcResponse = {
16
17
  };
17
18
  };
18
19
  export interface SdkMcpServerOptions {
19
- repo?: string;
20
20
  agentDir?: string;
21
- connect?: (url: string, token: string) => Promise<SdkClient>;
21
+ router?: SessionRouter;
22
+ lifecycleService?: SessionLifecycleService;
22
23
  }
23
24
  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; session targeting is broker-bound (C10). */
25
+ /** Creates the model-facing MCP adapter with Router-owned live session authority. */
25
26
  export declare function createSdkMcpServer(options?: SdkMcpServerOptions): {
26
27
  callTool: (name: string, args?: Arguments) => Promise<unknown>;
27
28
  handleJsonRpc: (request: JsonRpcRequest) => Promise<JsonRpcResponse>;
28
29
  handle: (request: JsonRpcRequest) => Promise<JsonRpcResponse>;
30
+ start: () => Promise<void>;
31
+ close: () => Promise<void>;
29
32
  tools: Record<string, unknown>[];
30
33
  };
31
34
  /**
32
35
  * 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 the broker and v3 WebSockets only.
36
+ * `gjc mcp-serve sdk` entrypoint. SessionRouter owns live endpoint authority and starts lazily
37
+ * on the first live-session tool, then stops after stdin and in-flight requests drain.
35
38
  */
36
39
  export declare function runSdkMcpStdio(options?: SdkMcpServerOptions): Promise<void>;
37
40
  export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Bounded progress-aware lease for the SDK prompt terminal deadline (#4334).
3
+ *
4
+ * The accepted prompt deadline is no longer a fixed wall-clock window from
5
+ * acceptance: fresh *attributable* progress — tool/skill execution events
6
+ * correlated to the exact accepted `commandId`/`turnId` at the prompt/agent
7
+ * runtime boundary — renews the terminal deadline up to a deterministic hard
8
+ * maximum runtime. Unrelated session noise, heartbeats, other turns, streaming
9
+ * chatter, and retry bookkeeping never renew the lease, and there is no
10
+ * unbounded disable value: `maxMs` is always a finite bound.
11
+ */
12
+ export interface PromptDeadlineLease {
13
+ /** When the prompt was accepted; anchors the hard maximum runtime. */
14
+ readonly acceptedAt: number;
15
+ /** Last verified attributable progress (starts at acceptance). */
16
+ lastProgressAt: number;
17
+ /** Inactivity window: the deadline is this far past the last verified progress. */
18
+ readonly leaseMs: number;
19
+ /** Deterministic hard maximum runtime from acceptance; never unbounded. */
20
+ readonly maxMs: number;
21
+ }
22
+ export declare function createPromptDeadlineLease(input: {
23
+ now: number;
24
+ leaseMs: number;
25
+ maxMs: number;
26
+ }): PromptDeadlineLease;
27
+ /**
28
+ * Current terminal deadline: the inactivity lease from last verified progress,
29
+ * bounded by the hard maximum runtime from acceptance.
30
+ */
31
+ export declare function promptDeadlineAt(lease: PromptDeadlineLease): number;
32
+ /**
33
+ * Record fresh attributable progress. Monotonic: a stale or equal timestamp
34
+ * never moves the lease backwards, so out-of-order delivery cannot shorten it.
35
+ */
36
+ export declare function recordAttributableProgress(lease: PromptDeadlineLease, now: number): void;
37
+ /**
38
+ * Whether an agent session event at the prompt/agent runtime boundary is
39
+ * attributable progress for the accepted prompt. Only tool execution
40
+ * boundaries qualify: skills do their work through tools, so skill progress is
41
+ * covered; streaming text/thinking deltas, retries, and bookkeeping are not.
42
+ */
43
+ export declare function isAttributableProgressEventType(type: string): boolean;
@@ -0,0 +1,28 @@
1
+ import type { KindAwareReconciliation } from "./bus/kind-aware-reconciliation";
2
+ import type { InvocationCorrelation, InvocationReconciliation } from "./host/session-runtime";
3
+ type DeadlineReconciliation = InvocationReconciliation | KindAwareReconciliation;
4
+ export type PromptDeadlineOutcome = {
5
+ kind: "failed";
6
+ code: "prompt_deadline_exceeded";
7
+ message: string;
8
+ provenance: "deadline";
9
+ };
10
+ export declare class PromptDeadlineManager {
11
+ #private;
12
+ constructor(options: {
13
+ reconciliation: DeadlineReconciliation;
14
+ getLeaseMs: () => number;
15
+ getMaxMs: () => number;
16
+ now?: () => number;
17
+ });
18
+ onAccepted(correlation: InvocationCorrelation): void;
19
+ onProgress(correlation: InvocationCorrelation, now?: number): void;
20
+ onAttributableEvent(correlation: InvocationCorrelation, eventType: string, now?: number): void;
21
+ clear(correlation: InvocationCorrelation): void;
22
+ clearAll(): void;
23
+ /** For tests: current deadline or undefined if no lease. */
24
+ deadlineAt(correlation: InvocationCorrelation): number | undefined;
25
+ /** For tests: whether a lease exists. */
26
+ has(correlation: InvocationCorrelation): boolean;
27
+ }
28
+ export {};