@gajae-code/coding-agent 0.13.2 → 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 (610) hide show
  1. package/CHANGELOG.md +215 -8
  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 +10 -1
  35. package/dist/types/config/models-config-schema.d.ts +2 -0
  36. package/dist/types/config/settings-schema.d.ts +73 -9
  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 +2 -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/dynamic-theme-text.d.ts +9 -0
  87. package/dist/types/modes/components/gajae-pet-widget.d.ts +6 -28
  88. package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
  89. package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
  90. package/dist/types/modes/components/oauth-selector.d.ts +10 -4
  91. package/dist/types/modes/components/pet-capability.d.ts +7 -21
  92. package/dist/types/modes/components/settings-selector.d.ts +5 -0
  93. package/dist/types/modes/components/status-line/gh.d.ts +6 -2
  94. package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
  95. package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
  96. package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
  97. package/dist/types/modes/interactive-mode.d.ts +1 -0
  98. package/dist/types/modes/theme/defaults/index.d.ts +118 -0
  99. package/dist/types/modes/types.d.ts +1 -0
  100. package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
  101. package/dist/types/runtime-mcp/config.d.ts +9 -0
  102. package/dist/types/runtime-mcp/manager.d.ts +26 -1
  103. package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
  104. package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
  105. package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
  106. package/dist/types/runtime-mcp/protocol.d.ts +278 -0
  107. package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
  108. package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
  109. package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
  110. package/dist/types/runtime-mcp/types.d.ts +102 -10
  111. package/dist/types/sdk/acp/adapter.d.ts +26 -5
  112. package/dist/types/sdk/broker/broker.d.ts +3 -55
  113. package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
  114. package/dist/types/sdk/broker/session-index.d.ts +14 -5
  115. package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
  116. package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
  117. package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
  118. package/dist/types/sdk/bus/config.d.ts +11 -0
  119. package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
  120. package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
  121. package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
  122. package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
  123. package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
  124. package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
  125. package/dist/types/sdk/bus/index.d.ts +85 -99
  126. package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
  127. package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
  128. package/dist/types/sdk/bus/notification-service.d.ts +52 -0
  129. package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
  130. package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
  131. package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
  132. package/dist/types/sdk/bus/session-control.d.ts +25 -1
  133. package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
  134. package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
  135. package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
  136. package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
  137. package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
  138. package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
  139. package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
  140. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
  141. package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
  142. package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
  143. package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
  144. package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
  145. package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
  146. package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
  147. package/dist/types/sdk/cli/rows.d.ts +2 -11
  148. package/dist/types/sdk/cli/session-cli.d.ts +15 -25
  149. package/dist/types/sdk/client/client.d.ts +97 -1
  150. package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
  151. package/dist/types/sdk/host/control/index.d.ts +1 -1
  152. package/dist/types/sdk/host/control/operations.d.ts +18 -5
  153. package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
  154. package/dist/types/sdk/host/host.d.ts +15 -1
  155. package/dist/types/sdk/host/query/handlers.d.ts +5 -0
  156. package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
  157. package/dist/types/sdk/host/session-runtime.d.ts +127 -7
  158. package/dist/types/sdk/host/types.d.ts +1 -1
  159. package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
  160. package/dist/types/sdk/index.d.ts +2 -1
  161. package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
  162. package/dist/types/sdk/lifecycle/client.d.ts +59 -0
  163. package/dist/types/sdk/lifecycle/index.d.ts +3 -0
  164. package/dist/types/sdk/lifecycle/service.d.ts +232 -0
  165. package/dist/types/sdk/mcp/server.d.ts +9 -6
  166. package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
  167. package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
  168. package/dist/types/sdk/prompt-status.d.ts +10 -3
  169. package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
  170. package/dist/types/sdk/receipt-state.d.ts +17 -0
  171. package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
  172. package/dist/types/sdk/router/index.d.ts +1 -0
  173. package/dist/types/sdk/router/session-router.d.ts +152 -0
  174. package/dist/types/sdk/session-list.d.ts +22 -0
  175. package/dist/types/sdk/session-reconnect.d.ts +43 -1
  176. package/dist/types/sdk/session.d.ts +34 -1
  177. package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
  178. package/dist/types/session/account-inventory.d.ts +86 -0
  179. package/dist/types/session/agent-session.d.ts +145 -6
  180. package/dist/types/session/agent-storage.d.ts +10 -0
  181. package/dist/types/session/coordinator-tool-label.d.ts +28 -0
  182. package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
  183. package/dist/types/session/messages.d.ts +1 -1
  184. package/dist/types/session/secure-token-file.d.ts +3 -0
  185. package/dist/types/session/session-manager.d.ts +47 -1
  186. package/dist/types/session/startup-auth-config.d.ts +44 -0
  187. package/dist/types/session/terminal-abort.d.ts +378 -0
  188. package/dist/types/session/yield-queue.d.ts +7 -0
  189. package/dist/types/session-import/claude.d.ts +26 -0
  190. package/dist/types/session-import/codex.d.ts +88 -0
  191. package/dist/types/session-import/command.d.ts +35 -0
  192. package/dist/types/session-import/detect.d.ts +22 -0
  193. package/dist/types/session-import/index.d.ts +7 -0
  194. package/dist/types/session-import/provider-codex.d.ts +22 -0
  195. package/dist/types/session-import/provider-service.d.ts +38 -0
  196. package/dist/types/session-import/redact.d.ts +23 -0
  197. package/dist/types/session-import/service.d.ts +47 -0
  198. package/dist/types/session-import/types.d.ts +120 -0
  199. package/dist/types/setup/paseo/check.d.ts +16 -0
  200. package/dist/types/setup/paseo/install-saga.d.ts +115 -0
  201. package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
  202. package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
  203. package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
  204. package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
  205. package/dist/types/setup/paseo/provider-config.d.ts +35 -0
  206. package/dist/types/setup/paseo/remove.d.ts +14 -0
  207. package/dist/types/setup/paseo/result-types.d.ts +59 -0
  208. package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
  209. package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
  210. package/dist/types/skill-state/active-state.d.ts +5 -1
  211. package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
  212. package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
  213. package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
  214. package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
  215. package/dist/types/slash-commands/types.d.ts +7 -1
  216. package/dist/types/task/executor.d.ts +10 -0
  217. package/dist/types/task/index.d.ts +3 -1
  218. package/dist/types/tools/ask-answer-registry.d.ts +6 -3
  219. package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
  220. package/dist/types/tools/bash.d.ts +2 -6
  221. package/dist/types/tools/browser/attach.d.ts +11 -0
  222. package/dist/types/tools/browser/launch.d.ts +20 -0
  223. package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
  224. package/dist/types/tools/browser/render.d.ts +1 -0
  225. package/dist/types/tools/browser.d.ts +3 -1
  226. package/dist/types/tools/image-gen.d.ts +10 -2
  227. package/dist/types/tools/index.d.ts +8 -0
  228. package/dist/types/tools/monitor.d.ts +1 -1
  229. package/dist/types/tools/skill-discovery.d.ts +8 -1
  230. package/dist/types/tools/subagent.d.ts +2 -0
  231. package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
  232. package/dist/types/utils/herdr-pane.d.ts +76 -0
  233. package/package.json +19 -9
  234. package/scripts/build-binary.ts +2 -1
  235. package/scripts/build-sdk-package-smoke.ts +2 -13
  236. package/scripts/capture-sticky-viewport-showcase.ts +0 -1
  237. package/scripts/compile-args.ts +2 -0
  238. package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
  239. package/scripts/generate-sdk-operation-inventory.ts +28 -0
  240. package/scripts/generate-telegram-baseline-manifest.ts +1 -0
  241. package/scripts/generate-tool-catalog.ts +6 -4
  242. package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
  243. package/src/async/job-manager.ts +352 -17
  244. package/src/async/support.ts +25 -0
  245. package/src/autoresearch/dashboard.ts +28 -13
  246. package/src/capability/index.ts +3 -1
  247. package/src/capability/mcp.ts +6 -0
  248. package/src/capability/types.ts +6 -0
  249. package/src/cli/accounts-cli.ts +395 -0
  250. package/src/cli/args.ts +23 -0
  251. package/src/cli/auth-broker-cli.ts +136 -66
  252. package/src/cli/auth-gateway-cli.ts +94 -70
  253. package/src/cli/config-cli.ts +27 -2
  254. package/src/cli/crash-cli.ts +78 -0
  255. package/src/cli/customize-doctor.ts +1605 -0
  256. package/src/cli/daemon-cli.ts +12 -3
  257. package/src/cli/fast-help.ts +1 -0
  258. package/src/cli/mcp-cli.ts +128 -60
  259. package/src/cli/notify-cli.ts +8 -14
  260. package/src/cli/root-flags.ts +8 -0
  261. package/src/cli/setup-cli.ts +145 -0
  262. package/src/cli/skills-cli.ts +38 -2
  263. package/src/cli/update-cli.ts +167 -12
  264. package/src/cli.ts +4 -0
  265. package/src/commands/accounts.ts +71 -0
  266. package/src/commands/crash.ts +35 -0
  267. package/src/commands/customize.ts +84 -0
  268. package/src/commands/daemon.ts +2 -2
  269. package/src/commands/deep-interview.ts +2 -0
  270. package/src/commands/launch.ts +1 -0
  271. package/src/commands/mcp.ts +12 -7
  272. package/src/commands/ralplan.ts +2 -0
  273. package/src/commands/sdk.ts +65 -32
  274. package/src/commands/setup.ts +5 -0
  275. package/src/commands/skills.ts +14 -4
  276. package/src/commands/ultragoal.ts +10 -1
  277. package/src/commands/update.ts +26 -15
  278. package/src/config/atomic-yaml-patch-worker.ts +57 -0
  279. package/src/config/atomic-yaml-patch.ts +769 -29
  280. package/src/config/config-schema-version.ts +10 -0
  281. package/src/config/file-lock.ts +70 -1
  282. package/src/config/mcp-schema.json +52 -14
  283. package/src/config/model-profile-activation.ts +23 -2
  284. package/src/config/model-profiles.ts +88 -21
  285. package/src/config/model-registry.ts +147 -21
  286. package/src/config/models-config-schema.ts +1 -1
  287. package/src/config/settings-schema.ts +77 -7
  288. package/src/config/settings.ts +4038 -199
  289. package/src/config/skill-settings-defaults.ts +41 -3
  290. package/src/config/task-delegation.ts +87 -0
  291. package/src/config/update-channel.ts +23 -0
  292. package/src/coordinator-mcp/server.ts +377 -308
  293. package/src/crash/index-store.ts +723 -0
  294. package/src/crash/nudge.ts +89 -0
  295. package/src/crash/record-loader.ts +149 -0
  296. package/src/crash/report.ts +551 -0
  297. package/src/crash/sanitize.ts +129 -0
  298. package/src/cursor.ts +36 -10
  299. package/src/customization/import.ts +946 -0
  300. package/src/customization/index.ts +4 -0
  301. package/src/customization/inventory.ts +335 -0
  302. package/src/customization/mutations.ts +141 -0
  303. package/src/customization/types.ts +223 -0
  304. package/src/daemon/control-types.ts +8 -1
  305. package/src/daemon/operator-contract.ts +6 -6
  306. package/src/defaults/gjc/extensions/grok-cli-vendor/src/models/catalog.ts +31 -6
  307. package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
  308. package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
  309. package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
  310. package/src/discovery/claude-hooks.ts +38 -0
  311. package/src/discovery/claude.ts +142 -209
  312. package/src/discovery/codex-hooks.ts +38 -0
  313. package/src/discovery/codex.ts +132 -198
  314. package/src/discovery/helpers.ts +8 -1
  315. package/src/discovery/index.ts +2 -0
  316. package/src/discovery/mcp-compat.ts +234 -0
  317. package/src/discovery/mcp-json.ts +6 -0
  318. package/src/edit/renderer.ts +40 -0
  319. package/src/edit/streaming.ts +4 -2
  320. package/src/exec/bash-executor.ts +24 -20
  321. package/src/export/html/index.ts +51 -2
  322. package/src/extensibility/extensions/loader.ts +9 -1
  323. package/src/extensibility/extensions/runner.ts +17 -4
  324. package/src/extensibility/extensions/types.ts +31 -6
  325. package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
  326. package/src/extensibility/gjc-plugins/installer.ts +9 -5
  327. package/src/extensibility/gjc-plugins/observability.ts +8 -2
  328. package/src/extensibility/gjc-plugins/registry.ts +13 -2
  329. package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
  330. package/src/extensibility/gjc-plugins/schema.ts +222 -39
  331. package/src/extensibility/hooks/loader.ts +154 -10
  332. package/src/extensibility/runtime-skill-discovery.ts +257 -60
  333. package/src/extensibility/skill-management.ts +368 -0
  334. package/src/extensibility/skills.ts +52 -16
  335. package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
  336. package/src/gjc-runtime/launch-worktree.ts +56 -2
  337. package/src/gjc-runtime/linux-proc.ts +7 -1
  338. package/src/gjc-runtime/ralplan-runtime.ts +100 -164
  339. package/src/gjc-runtime/session-state-lock.ts +992 -0
  340. package/src/gjc-runtime/session-state-sidecar.ts +644 -142
  341. package/src/gjc-runtime/state-writer.ts +39 -14
  342. package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
  343. package/src/gjc-runtime/ultragoal-guard.ts +11 -4
  344. package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
  345. package/src/gjc-runtime/workflow-settings.ts +596 -0
  346. package/src/goals/tools/goal-tool.ts +6 -1
  347. package/src/hooks/events.ts +291 -0
  348. package/src/hooks/native-skill-hook.ts +4 -0
  349. package/src/hooks/normalize.ts +369 -0
  350. package/src/hooks/skill-state.ts +165 -46
  351. package/src/internal-urls/docs-index.generated.ts +41 -32
  352. package/src/main.ts +36 -5
  353. package/src/migrate/mcp-mapper.ts +25 -2
  354. package/src/modes/acp/abort-scope.ts +29 -0
  355. package/src/modes/acp/acp-agent.ts +423 -98
  356. package/src/modes/components/assistant-message.ts +6 -1
  357. package/src/modes/components/chrome.ts +4 -3
  358. package/src/modes/components/customization/customization-dashboard.ts +443 -0
  359. package/src/modes/components/customization/import-wizard.ts +372 -0
  360. package/src/modes/components/customization/index.ts +1 -0
  361. package/src/modes/components/dynamic-theme-text.ts +22 -0
  362. package/src/modes/components/gajae-pet-widget.ts +607 -193
  363. package/src/modes/components/irc-sidebar.ts +11 -0
  364. package/src/modes/components/iterm-pet-transport.ts +585 -0
  365. package/src/modes/components/model-selector.ts +1 -6
  366. package/src/modes/components/oauth-selector.ts +277 -86
  367. package/src/modes/components/pet-capability.ts +35 -31
  368. package/src/modes/components/settings-selector.ts +29 -5
  369. package/src/modes/components/status-line/gh.ts +45 -1
  370. package/src/modes/components/status-line/segments.ts +19 -4
  371. package/src/modes/components/tool-status-header.ts +13 -3
  372. package/src/modes/controllers/command-controller.ts +20 -8
  373. package/src/modes/controllers/extension-ui-controller.ts +56 -257
  374. package/src/modes/controllers/input-controller.ts +10 -0
  375. package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
  376. package/src/modes/controllers/selector-controller.ts +238 -77
  377. package/src/modes/controllers/stt-controller.ts +3 -3
  378. package/src/modes/interactive-mode.ts +88 -16
  379. package/src/modes/print-mode.ts +35 -6
  380. package/src/modes/runtime-init.ts +21 -68
  381. package/src/modes/theme/defaults/index.ts +2 -0
  382. package/src/modes/theme/defaults/ouroboros.json +118 -0
  383. package/src/modes/types.ts +1 -0
  384. package/src/modes/utils/injected-user-submission.ts +25 -0
  385. package/src/modes/utils/terminal-bell.ts +15 -1
  386. package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
  387. package/src/prompts/agent-fragments/restricted-bash.md +1 -1
  388. package/src/prompts/agents/critic.md +1 -1
  389. package/src/prompts/system/rlm-research.md +1 -1
  390. package/src/prompts/system/system-prompt.md +0 -2
  391. package/src/prompts/tools/bash.md +7 -1
  392. package/src/prompts/tools/browser.md +1 -1
  393. package/src/prompts/tools/cron.md +6 -6
  394. package/src/prompts/tools/read.md +0 -2
  395. package/src/prompts/tools/skill-discovery.md +4 -2
  396. package/src/runtime-mcp/client.ts +427 -23
  397. package/src/runtime-mcp/config.ts +37 -5
  398. package/src/runtime-mcp/manager-pool.test.ts +56 -0
  399. package/src/runtime-mcp/manager.ts +52 -2
  400. package/src/runtime-mcp/oauth-discovery.ts +13 -0
  401. package/src/runtime-mcp/oauth-flow.ts +46 -1
  402. package/src/runtime-mcp/pool-key.ts +5 -1
  403. package/src/runtime-mcp/pool.test.ts +9 -0
  404. package/src/runtime-mcp/protocol.test.ts +353 -0
  405. package/src/runtime-mcp/protocol.ts +624 -0
  406. package/src/runtime-mcp/scope-config.ts +78 -0
  407. package/src/runtime-mcp/tool-bridge.ts +44 -10
  408. package/src/runtime-mcp/transports/http.ts +84 -13
  409. package/src/runtime-mcp/types.ts +123 -12
  410. package/src/sdk/acp/adapter.ts +328 -97
  411. package/src/sdk/broker/broker.ts +160 -741
  412. package/src/sdk/broker/ensure.ts +9 -1
  413. package/src/sdk/broker/lifecycle.ts +510 -116
  414. package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
  415. package/src/sdk/broker/process-incarnation.ts +19 -0
  416. package/src/sdk/broker/session-index.ts +516 -117
  417. package/src/sdk/broker/startup-failure.ts +28 -5
  418. package/src/sdk/broker/transport.ts +1 -13
  419. package/src/sdk/bus/chat-daemon-cli.ts +4 -2
  420. package/src/sdk/bus/chat-daemon-control.ts +67 -6
  421. package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
  422. package/src/sdk/bus/config.ts +13 -0
  423. package/src/sdk/bus/conversation-store.ts +59 -171
  424. package/src/sdk/bus/daemon-paths.ts +20 -0
  425. package/src/sdk/bus/discord-conversation.ts +2 -0
  426. package/src/sdk/bus/discord-daemon.ts +524 -126
  427. package/src/sdk/bus/discord-live-provider.ts +206 -79
  428. package/src/sdk/bus/existing-thread-readiness.ts +4 -97
  429. package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
  430. package/src/sdk/bus/index.ts +2480 -456
  431. package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
  432. package/src/sdk/bus/lifecycle-commands.ts +2 -2
  433. package/src/sdk/bus/managed-daemon.ts +2 -145
  434. package/src/sdk/bus/notification-service.ts +196 -0
  435. package/src/sdk/bus/operator-runtime.ts +1 -1
  436. package/src/sdk/bus/prompt-reconciliation.ts +24 -15
  437. package/src/sdk/bus/reconciliation-store.ts +553 -24
  438. package/src/sdk/bus/session-control.ts +49 -3
  439. package/src/sdk/bus/slack-conversation.ts +4 -0
  440. package/src/sdk/bus/slack-daemon.ts +733 -134
  441. package/src/sdk/bus/slack-live-provider.ts +65 -15
  442. package/src/sdk/bus/slack-provider.ts +4 -0
  443. package/src/sdk/bus/slack-thread-binding.ts +9 -104
  444. package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
  445. package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
  446. package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
  447. package/src/sdk/bus/telegram-daemon-control.ts +3 -13
  448. package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
  449. package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
  450. package/src/sdk/bus/telegram-daemon.ts +2552 -2280
  451. package/src/sdk/bus/telegram-reference.ts +1 -226
  452. package/src/sdk/bus/telegram-setup.ts +2 -2
  453. package/src/sdk/bus/threaded-render.ts +1 -0
  454. package/src/sdk/bus/topic-registry.ts +279 -146
  455. package/src/sdk/cli/rows.ts +2 -35
  456. package/src/sdk/cli/session-cli.ts +776 -700
  457. package/src/sdk/client/client.ts +892 -1
  458. package/src/sdk/host/control/dispatch.ts +93 -58
  459. package/src/sdk/host/control/index.ts +1 -1
  460. package/src/sdk/host/control/operations.ts +18 -10
  461. package/src/sdk/host/control/runtime-gate.ts +40 -0
  462. package/src/sdk/host/host.ts +63 -12
  463. package/src/sdk/host/query/handlers.ts +66 -7
  464. package/src/sdk/host/reverse-leases.ts +2 -2
  465. package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
  466. package/src/sdk/host/session-runtime.test.ts +2787 -34
  467. package/src/sdk/host/session-runtime.ts +1489 -101
  468. package/src/sdk/host/surface-policy.ts +12 -8
  469. package/src/sdk/host/types.ts +1 -1
  470. package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
  471. package/src/sdk/host/websocket-transport.ts +85 -50
  472. package/src/sdk/index.ts +2 -1
  473. package/src/sdk/lifecycle/broker-client.ts +53 -0
  474. package/src/sdk/lifecycle/client.ts +234 -0
  475. package/src/sdk/lifecycle/index.ts +3 -0
  476. package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
  477. package/src/sdk/lifecycle/service.ts +720 -0
  478. package/src/sdk/mcp/server.ts +226 -188
  479. package/src/sdk/prompt-deadline-lease.ts +55 -0
  480. package/src/sdk/prompt-deadline-manager.ts +148 -0
  481. package/src/sdk/prompt-status.ts +11 -3
  482. package/src/sdk/protocol/operation-inventory.generated.json +272 -129
  483. package/src/sdk/protocol/operation-registry.ts +71 -8
  484. package/src/sdk/receipt-state.ts +43 -0
  485. package/src/sdk/reconciliation-extensions.ts +14 -0
  486. package/src/sdk/router/index.ts +1 -0
  487. package/src/sdk/router/session-router.ts +1658 -0
  488. package/src/sdk/session-list.ts +93 -0
  489. package/src/sdk/session-reconnect.ts +45 -1
  490. package/src/sdk/session.ts +716 -120
  491. package/src/sdk/transport/serve-cli.ts +18 -34
  492. package/src/session/account-inventory.ts +603 -0
  493. package/src/session/agent-session.ts +2873 -559
  494. package/src/session/agent-storage.ts +35 -0
  495. package/src/session/blob-store.ts +32 -1
  496. package/src/session/coordinator-tool-label.ts +40 -0
  497. package/src/session/internal/managed-session-scope.ts +4 -0
  498. package/src/session/internal/managed-session-storage.ts +199 -31
  499. package/src/session/messages.ts +1 -1
  500. package/src/session/secure-token-file.ts +80 -0
  501. package/src/session/session-manager.ts +757 -57
  502. package/src/session/session-storage.ts +25 -16
  503. package/src/session/startup-auth-config.ts +297 -0
  504. package/src/session/terminal-abort.ts +1253 -0
  505. package/src/session/yield-queue.ts +57 -15
  506. package/src/session-import/claude.ts +334 -0
  507. package/src/session-import/codex.ts +1033 -0
  508. package/src/session-import/command.ts +77 -0
  509. package/src/session-import/detect.ts +133 -0
  510. package/src/session-import/index.ts +7 -0
  511. package/src/session-import/provider-codex.ts +327 -0
  512. package/src/session-import/provider-service.ts +457 -0
  513. package/src/session-import/redact.ts +128 -0
  514. package/src/session-import/service.ts +1264 -0
  515. package/src/session-import/types.ts +148 -0
  516. package/src/setup/paseo/check.ts +213 -0
  517. package/src/setup/paseo/install-saga.ts +293 -0
  518. package/src/setup/paseo/json-publisher.ts +263 -0
  519. package/src/setup/paseo/orchestration-preferences.ts +86 -0
  520. package/src/setup/paseo/paseo-ownership.ts +224 -0
  521. package/src/setup/paseo/paseo-setup.ts +253 -0
  522. package/src/setup/paseo/provider-config.ts +139 -0
  523. package/src/setup/paseo/remove.ts +183 -0
  524. package/src/setup/paseo/result-types.ts +79 -0
  525. package/src/setup/paseo/setup-deps.ts +175 -0
  526. package/src/setup/paseo/skills-bridge.ts +260 -0
  527. package/src/skill-state/active-state.ts +21 -11
  528. package/src/slash-commands/acp-builtins.ts +9 -1
  529. package/src/slash-commands/builtin-registry.ts +117 -19
  530. package/src/slash-commands/helpers/credential-switch.ts +143 -0
  531. package/src/slash-commands/helpers/mcp.ts +9 -3
  532. package/src/slash-commands/helpers/usage-report.ts +61 -56
  533. package/src/slash-commands/types.ts +7 -2
  534. package/src/task/executor.ts +30 -11
  535. package/src/task/index.ts +66 -7
  536. package/src/task/render.ts +23 -9
  537. package/src/tools/ask-answer-registry.ts +23 -7
  538. package/src/tools/ask.ts +8 -4
  539. package/src/tools/bash-sleep-advisory.ts +115 -0
  540. package/src/tools/bash.ts +98 -18
  541. package/src/tools/browser/attach.ts +71 -3
  542. package/src/tools/browser/launch.ts +86 -13
  543. package/src/tools/browser/profile-discovery.ts +57 -7
  544. package/src/tools/browser/render.ts +8 -1
  545. package/src/tools/browser.ts +130 -21
  546. package/src/tools/computer.enforcement.test.ts +1 -1
  547. package/src/tools/computer.ts +3 -2
  548. package/src/tools/cron.ts +12 -1
  549. package/src/tools/image-gen.ts +349 -142
  550. package/src/tools/index.ts +8 -0
  551. package/src/tools/job.ts +33 -6
  552. package/src/tools/monitor.ts +41 -2
  553. package/src/tools/skill-discovery.ts +21 -29
  554. package/src/tools/subagent.ts +142 -24
  555. package/src/tools/todo-contract.ts +55 -3
  556. package/src/tools/todo-write.ts +4 -3
  557. package/src/tools/tool-catalog.generated.ts +6 -6
  558. package/src/tools/ultragoal-ask-guard.ts +10 -3
  559. package/src/utils/herdr-pane.ts +345 -0
  560. package/src/utils/title-generator.ts +2 -0
  561. package/src/web/scrapers/index.ts +6 -4
  562. package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
  563. package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
  564. package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
  565. package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
  566. package/dist/types/runtime/lazy-service.test.d.ts +0 -1
  567. package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
  568. package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
  569. package/dist/types/runtime-mcp/config.test.d.ts +0 -1
  570. package/dist/types/runtime-mcp/http.test.d.ts +0 -1
  571. package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
  572. package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
  573. package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
  574. package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
  575. package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
  576. package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
  577. package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
  578. package/dist/types/sdk/elevation/audit.d.ts +0 -93
  579. package/dist/types/sdk/elevation/capability.d.ts +0 -3
  580. package/dist/types/sdk/elevation/digest.d.ts +0 -72
  581. package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
  582. package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
  583. package/dist/types/sdk/elevation/owner.d.ts +0 -48
  584. package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
  585. package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
  586. package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
  587. package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
  588. package/dist/types/session/auth-broker-config.d.ts +0 -13
  589. package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
  590. package/dist/types/skills/skills.test.d.ts +0 -1
  591. package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
  592. package/dist/types/task/token-log.test.d.ts +0 -1
  593. package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
  594. package/dist/types/tools/descriptors.test.d.ts +0 -1
  595. package/scripts/g005-daemon-smoke.ts +0 -180
  596. package/scripts/g011-daemon-path-smoke.ts +0 -153
  597. package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
  598. package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
  599. package/src/sdk/bus/telegram-cli.ts +0 -212
  600. package/src/sdk/elevation/allowlist.ts +0 -54
  601. package/src/sdk/elevation/audit.ts +0 -208
  602. package/src/sdk/elevation/capability.ts +0 -41
  603. package/src/sdk/elevation/digest.ts +0 -129
  604. package/src/sdk/elevation/dispatch-receipt.ts +0 -184
  605. package/src/sdk/elevation/grant-ledger.ts +0 -1142
  606. package/src/sdk/elevation/owner.ts +0 -109
  607. package/src/session/auth-broker-config.ts +0 -109
  608. /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
  609. /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
  610. /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
@@ -1,117 +0,0 @@
1
- import { type OwnerIsolationProbe } from "../../gjc-runtime/tmux-owner-isolation";
2
- import { type GjcTmuxSessionStatus } from "../../gjc-runtime/tmux-sessions";
3
- import type { ResumeCandidate, SessionCreateFrame, SessionLifecycleRequest, SessionLifecycleResponse } from "./index";
4
- import { type AuditEvent, type CreateEffectResult, type LedgerStore, type LifecycleOutcome, type OrchestratorDeps, type ResumeEffectResult } from "./lifecycle-orchestrator";
5
- /** Minimal view of the native control server this runtime depends on. */
6
- export interface ControlServerLike {
7
- onLifecycleRequest(cb: (err: Error | null, req: {
8
- kind: string;
9
- requestId: string;
10
- payloadJson: string;
11
- }) => void): void;
12
- respond(responseJson: string): void;
13
- }
14
- /**
15
- * A startable control server (the native NotificationControlServer, or a fake in
16
- * tests). Extends {@link ControlServerLike} with the start/stop lifecycle the
17
- * daemon owns.
18
- */
19
- export interface LifecycleControlServer extends ControlServerLike {
20
- start(): Promise<unknown>;
21
- stop(): void;
22
- }
23
- /** Factory the daemon uses to construct a control server bound to its ownership. */
24
- export type LifecycleControlServerFactory = (input: {
25
- token: string;
26
- ownerId: string;
27
- agentDir: string;
28
- }) => LifecycleControlServer;
29
- export declare function fileLedgerStore(idempotencyFile: string): LedgerStore;
30
- /** Append-only JSONL audit sink (0600). Never receives tokens or raw prompts. */
31
- export declare function fileAudit(auditPath: string): (e: AuditEvent) => void;
32
- /** Simple per-chat sliding-window create rate limiter. */
33
- export declare function createRateLimiter(maxPerWindow: number, windowMs: number): (chatId: string, nowMs: number) => boolean;
34
- /** Build the `gjc` argv for a create target (existing path / worktree / dir).
35
- *
36
- * The launched session id is carried via `GJC_SESSION_ID` in the child env (see
37
- * {@link daemonSpawnCreate}); the root `gjc` launcher has no `--session-id`
38
- * flag, so it must never appear in argv. Only flags the launch parser actually
39
- * supports are emitted (`--worktree <branch>` for worktree targets,
40
- * `--mpreset <profile>` for model presets). */
41
- export declare function buildCreateArgv(frame: SessionCreateFrame, _ids: {
42
- intendedSessionId: string;
43
- startupPromptRef?: string;
44
- }): {
45
- cwd: string;
46
- args: string[];
47
- };
48
- /** Real daemon-safe tmux launcher: canonical owner-isolation plan + GJC tags. */
49
- export declare function daemonSpawnCreate(env?: NodeJS.ProcessEnv, opts?: {
50
- ownerIsolationProbe?: OwnerIsolationProbe;
51
- platform?: NodeJS.Platform;
52
- processIncarnation?: (pid: number) => string | undefined;
53
- }): (frame: SessionCreateFrame, ids: {
54
- lifecycleRequestId: string;
55
- intendedSessionId: string;
56
- startupPromptRef?: string;
57
- }) => Promise<CreateEffectResult>;
58
- /** Real force-close effect (GJC-managed only, id-matched). */
59
- export declare function daemonCloseSession(env?: NodeJS.ProcessEnv, deps?: {
60
- forceClose?: (name: string, env: NodeJS.ProcessEnv, expectedSessionId?: string, sessionStateFile?: string) => Promise<void>;
61
- findSession?: (name: string, env: NodeJS.ProcessEnv) => GjcTmuxSessionStatus | undefined;
62
- }): (target: {
63
- sessionId: string;
64
- tmuxSession?: string;
65
- sessionStateFile?: string;
66
- }) => Promise<{
67
- processGone: boolean;
68
- }>;
69
- /** Real resume effect: reattach if a live GJC session matches; else resolve the
70
- * prefix against saved history and fail closed (`ambiguous`/`notFound`) before
71
- * cold-restarting exactly one resolved session via the daemon-safe launcher. */
72
- export declare function daemonResumeSession(env?: NodeJS.ProcessEnv, opts?: {
73
- agentDir?: string;
74
- /** Explicit managed root for isolated tests. */
75
- sessionsRoot?: string;
76
- listSessions?: (env: NodeJS.ProcessEnv) => GjcTmuxSessionStatus[];
77
- ownerIsolationProbe?: OwnerIsolationProbe;
78
- platform?: NodeJS.Platform;
79
- processIncarnation?: (pid: number) => string | undefined;
80
- }): (target: {
81
- sessionIdOrPrefix: string;
82
- path?: string;
83
- }) => Promise<ResumeEffectResult | {
84
- ambiguous: ResumeCandidate[];
85
- } | {
86
- notFound: true;
87
- }>;
88
- /** Translate an orchestrator outcome into a wire response frame. */
89
- export declare function outcomeToResponse(frame: SessionLifecycleRequest, outcome: LifecycleOutcome): SessionLifecycleResponse;
90
- /**
91
- * Wire a control server's lifecycle requests through the orchestrator.
92
- *
93
- * Handlers run on a single serial queue (a promise chain): the daemon owns the
94
- * one control endpoint, so serializing here makes each request's ledger
95
- * read -> classify -> write atomic with respect to every other request. Two
96
- * identical updates that arrive nearly simultaneously can no longer both
97
- * classify as `new` and both spawn — the second sees the first's persisted
98
- * `in_progress`/`success` entry and re-acks instead.
99
- */
100
- export declare function attachLifecycleControl(server: ControlServerLike, deps: OrchestratorDeps): void;
101
- /** Assemble real orchestrator deps for the daemon (ledger/audit under agentDir). */
102
- export declare function buildOrchestratorDeps(input: {
103
- pairedChatId: string;
104
- agentNotificationsDir: string;
105
- /** Required in-memory, 32-byte audit-v2 redaction key. */
106
- auditRedactionKey: Uint8Array;
107
- /** Root of saved session histories (`<agentDir>/sessions`), for resume resolution. */
108
- sessionsRoot?: string;
109
- /** Agent directory used for readonly managed-session resume resolution. */
110
- agentDir?: string;
111
- env?: NodeJS.ProcessEnv;
112
- }): OrchestratorDeps;
113
- /**
114
- * Default production factory: a real native NotificationControlServer bound to
115
- * the daemon's control token, owner id, and agent dir.
116
- */
117
- export declare const createNativeControlServer: LifecycleControlServerFactory;
@@ -1,141 +0,0 @@
1
- import type { LifecycleErrorReason, ResumeCandidate, SessionCreateFrame, SessionLifecycleRequest } from "./index";
2
- /** Durable idempotency state for a single lifecycle request. */
3
- export type LedgerState = "in_progress" | "success" | "failure" | "terminal_uncertain";
4
- /** One persisted idempotency entry, keyed by `chatId:updateId`. */
5
- export interface LedgerEntry {
6
- requestHash: string;
7
- state: LedgerState;
8
- requestId: string;
9
- verb: SessionLifecycleRequest["type"];
10
- intendedSessionId?: string;
11
- startupPromptRef?: string;
12
- createdAt: number;
13
- updatedAt: number;
14
- targetSummary: Record<string, unknown>;
15
- sessionId?: string;
16
- tmuxSession?: string;
17
- sessionStateFile?: string;
18
- endpointUrl?: string;
19
- /** Close effect outcome: whether the tmux process is confirmed gone. */
20
- processGone?: boolean;
21
- reason?: LifecycleErrorReason;
22
- resumeMode?: ResumeEffectResult["mode"];
23
- }
24
- /** The full on-disk ledger document. */
25
- export interface LedgerDoc {
26
- version: 1;
27
- entries: Record<string, LedgerEntry>;
28
- }
29
- /** Persistence boundary: atomic + fsynced read/write of the ledger document. */
30
- export interface LedgerStore {
31
- read(): Promise<LedgerDoc>;
32
- /** Write atomically (temp + fsync + rename) under a per-ledger lock. */
33
- write(doc: LedgerDoc): Promise<void>;
34
- }
35
- /** Redacted audit-v2 event. */
36
- export interface AuditEvent {
37
- schemaVersion: 2;
38
- ts: string;
39
- event: "accepted" | "rejected" | "duplicate_reack" | "rate_limited" | "spawn_started" | "recovered_in_progress" | "success" | "failure" | "terminal_uncertain";
40
- chatRef: string;
41
- updateId: number;
42
- requestRef: string;
43
- verb: SessionLifecycleRequest["type"];
44
- targetKind: CanonicalTargetKind;
45
- targetRef: string;
46
- reason?: LifecycleErrorReason;
47
- }
48
- export interface CreateEffectResult {
49
- sessionId: string;
50
- tmuxSession: string;
51
- sessionStateFile?: string;
52
- endpointUrl: string;
53
- topicThreadId: string;
54
- }
55
- export interface ResumeEffectResult extends CreateEffectResult {
56
- mode: "reattached" | "cold_restarted";
57
- }
58
- /** Injected effects + policy. Pure orchestration calls into these. */
59
- export interface OrchestratorDeps {
60
- /** The single paired chat id. Anything else is rejected before parsing. */
61
- pairedChatId: string;
62
- /** In-memory, derived 32-byte audit-v2 HMAC key. */
63
- auditRedactionKey: Uint8Array;
64
- now: () => number;
65
- store: LedgerStore;
66
- audit: (event: AuditEvent) => Promise<void> | void;
67
- /** Resolves the returned tmux provider once per request for psmux preflight. */
68
- isPsmuxProvider: () => boolean;
69
- /** Per-chat create rate limiter: returns true when allowed. */
70
- allowCreate: (chatId: string, nowMs: number) => boolean;
71
- /** Persist the once-consumed 0600 startup-prompt file after durably recording its ref. */
72
- writeStartupPrompt: (requestId: string, prompt: string | undefined, persistRef: (ref: string) => Promise<void>) => Promise<string | undefined>;
73
- /** Spawn a session for a create/cold-restart. */
74
- spawnCreate: (frame: SessionCreateFrame, ids: {
75
- lifecycleRequestId: string;
76
- intendedSessionId: string;
77
- startupPromptRef?: string;
78
- }) => Promise<CreateEffectResult>;
79
- closeSession: (target: {
80
- sessionId: string;
81
- tmuxSession?: string;
82
- sessionStateFile?: string;
83
- }) => Promise<{
84
- processGone: boolean;
85
- }>;
86
- resumeSession: (target: {
87
- sessionIdOrPrefix: string;
88
- path?: string;
89
- }) => Promise<ResumeEffectResult | {
90
- ambiguous: ResumeCandidate[];
91
- } | {
92
- notFound: true;
93
- }>;
94
- }
95
- export type CanonicalTargetKind = "existing_path" | "worktree" | "plain_dir" | "session_close" | "session_resume";
96
- export declare function canonicalTarget(frame: SessionLifecycleRequest): string;
97
- export declare function canonicalRequest(frame: SessionLifecycleRequest): string;
98
- export declare function requestHash(frame: SessionLifecycleRequest): string;
99
- export declare function auditRedactionRef(key: Uint8Array, domain: string, value: string): string;
100
- export declare function summarizeTarget(frame: SessionLifecycleRequest): Record<string, unknown>;
101
- export declare function ledgerKey(chatId: string, updateId: number): string;
102
- /** How a freshly-arrived request relates to the durable ledger. */
103
- export type DuplicateClass = {
104
- kind: "new";
105
- } | {
106
- kind: "reack_success";
107
- entry: LedgerEntry;
108
- } | {
109
- kind: "reack_failure";
110
- entry: LedgerEntry;
111
- } | {
112
- kind: "in_progress";
113
- entry: LedgerEntry;
114
- } | {
115
- kind: "terminal_uncertain";
116
- entry: LedgerEntry;
117
- } | {
118
- kind: "conflict";
119
- entry: LedgerEntry;
120
- };
121
- /** Classify a request against an existing ledger entry (pure). */
122
- export declare function classifyDuplicate(existing: LedgerEntry | undefined, hash: string): DuplicateClass;
123
- /** The structured outcome the daemon translates into a wire response frame. */
124
- export type LifecycleOutcome = {
125
- status: "ok";
126
- entry: LedgerEntry;
127
- mode?: "reattached" | "cold_restarted";
128
- } | {
129
- status: "error";
130
- reason: LifecycleErrorReason;
131
- message: string;
132
- candidates?: ResumeCandidate[];
133
- } | {
134
- status: "pending";
135
- entry: LedgerEntry;
136
- };
137
- /**
138
- * Handle one authenticated lifecycle request. Enforces paired-chat gating,
139
- * idempotency, and rate limiting BEFORE any side effect, then dispatches.
140
- */
141
- export declare function handleLifecycleRequest(frame: SessionLifecycleRequest, deps: OrchestratorDeps): Promise<LifecycleOutcome>;
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env bun
2
- /**
3
- * Reference CLI for the Gajae-Code SDK Telegram client.
4
- *
5
- * Bridges a running GJC session's notification endpoint to a Telegram bot so you
6
- * can answer asks / see idle pings from your phone — no RPC mode required. This
7
- * is an EXAMPLE/template (the SDK contract is in `docs/sdk.md`);
8
- * Discord/Slack clients are written the same way.
9
- *
10
- * Usage:
11
- * bun run packages/coding-agent/src/sdk/bus/telegram-cli.ts \
12
- * --bot-token <token> [--chat-id <id>] [--endpoint-file <path> | --session-id <id>] [--repo <dir>]
13
- *
14
- * Env fallbacks: GJC_TG_BOT_TOKEN, GJC_TG_CHAT_ID.
15
- * If --chat-id is omitted it is auto-resolved from getUpdates (message the bot once).
16
- * If neither --endpoint-file nor --session-id is given, the newest endpoint file
17
- * under <repo>/.gjc/state/sdk/ is used.
18
- */
19
- import { type TelegramNotificationSound } from "./telegram-reference";
20
- interface CliArgs {
21
- botToken?: string;
22
- chatId?: string;
23
- endpointFile?: string;
24
- sessionId?: string;
25
- repo: string;
26
- apiBase?: string;
27
- sound: TelegramNotificationSound;
28
- force: boolean;
29
- }
30
- export declare function parseArgs(argv: string[]): CliArgs;
31
- export {};
@@ -1,20 +0,0 @@
1
- /**
2
- * Exact elevation-gated allowlist, fully qualified and enumerative.
3
- *
4
- * The elevation allowlist is the exact set of registry operations below (the
5
- * raw destructive lifecycle and workflow-approval operations). It is declared
6
- * ONCE here as a `Set<string>` of `"kind:sdkId"` keys and mechanically pinned
7
- * against `operation-registry.ts` by the allowlist unit test: every key must
8
- * resolve via `findOperation(kind, sdkId)` and no elevatable operation may be
9
- * silently missing. Any operation NOT in this set is rejected at issue with
10
- * `elevation_not_allowlisted` before any ledger reservation. There is no
11
- * generalized policy engine: this is the deterministic predicate.
12
- */
13
- export declare const ELEVATION_ALLOWLIST_KEYS: readonly ["global:session.close", "global:session.delete", "control:session.delete", "control:session.close", "control:context.clear", "control:session.cwd.move", "control:compaction.run", "control:bash.execute", "control:bash.background", "control:queue.message.remove", "control:queue.message.update", "control:retry.abort", "control:retry.now", "control:bash.abort", "control:retry.auto.set", "control:compaction.auto.set", "control:extension.set_enabled", "control:queue.interrupt_mode.set", "control:queue.follow_up_mode.set", "control:queue.steering_mode.set", "control:tools.active.set", "control:permission_mode.set", "control:service_tier.set", "control:workflow.gate_answer", "control:workflow.plan_approve"];
14
- /**
15
- * Whether `(kind, sdkId)` is the fully qualified identity of an allowlisted
16
- * elevation-gated operation. The pair is validated against the operation
17
- * registry before any elevation is admitted, so a key can never name an
18
- * operation that does not exist.
19
- */
20
- export declare function isElevationAllowlisted(kind: unknown, sdkId: unknown): boolean;
@@ -1,93 +0,0 @@
1
- import { SDK_STATE_VERSION } from "../broker/state-version";
2
- import { classifyProcessIncarnationLiveness } from "./owner";
3
- /**
4
- * Durable elevation audit trail.
5
- *
6
- * Append-only JSONL under the same elevation-local lock as the grant ledger,
7
- * mode 0600. Every state transition of a grant — issue, operator answer,
8
- * expiry, misuse, duplicate answer, claim, and dispatch outcome — is
9
- * recorded with the exact identity evidence the transition consumed, so an
10
- * auditor can reproduce why a grant reached its terminal state without
11
- * trusting in-memory state.
12
- *
13
- * The audit stream is an evidence trail, never an authority: audit rows are
14
- * append-only, are never re-read to drive decisions, and a corrupted row is
15
- * quarantined (like ledger rows) instead of failing the ledger.
16
- */
17
- export type ElevationAuditEvent = {
18
- kind: "issued";
19
- } | {
20
- kind: "answered";
21
- outcome: "granted" | "denied" | "expired" | "misused" | "target_unavailable" | "duplicate_answer";
22
- } | {
23
- kind: "expired";
24
- } | {
25
- kind: "misused";
26
- } | {
27
- kind: "duplicate_answer";
28
- } | {
29
- kind: "claimed";
30
- claim: {
31
- ownerId: string;
32
- epoch: number;
33
- pid: number;
34
- incarnation: string;
35
- };
36
- } | {
37
- kind: "dispatched";
38
- dispatch: {
39
- ownerId: string;
40
- epoch: number;
41
- dispatchedAt: number;
42
- };
43
- outcome: {
44
- status: "ok" | "failed";
45
- code?: string;
46
- message?: string;
47
- dispatchedAt: number;
48
- };
49
- } | {
50
- kind: "consumed";
51
- message: string;
52
- } | {
53
- kind: "unavailable";
54
- reason: string;
55
- };
56
- export interface ElevationAuditEntry {
57
- version: typeof SDK_STATE_VERSION;
58
- ts: number;
59
- elevationRequestId: string;
60
- issueIndex: number;
61
- event: ElevationAuditEvent;
62
- }
63
- export type ElevationAuditEventName = ElevationAuditEvent["kind"];
64
- export declare function isElevationAuditEntry(value: unknown): value is ElevationAuditEntry;
65
- export interface ElevationAuditOptions {
66
- /** Injectable clock. */
67
- now?: () => number;
68
- /**
69
- * Injectable tri-state process-incarnation liveness classifier, defaulting
70
- * to `classifyProcessIncarnationLiveness`. The audit trail records the
71
- * liveness verdict behind `consumed`/`unavailable` settlements so the
72
- * crash-truth settlement is reproducible; the verdict never drives the
73
- * settlement itself (that lives in the ledger).
74
- */
75
- classifyLiveness?: typeof classifyProcessIncarnationLiveness;
76
- }
77
- export declare class ElevationAudit {
78
- #private;
79
- constructor(agentDir: string, options?: ElevationAuditOptions);
80
- get warnings(): readonly string[];
81
- /**
82
- * Appends one audit row for an elevation grant transition. Callers MUST
83
- * hold the same elevation-local lock that guards the grant ledger; the
84
- * audit row and the grant row therefore commit together.
85
- */
86
- append(entry: Omit<ElevationAuditEntry, "version">): Promise<void>;
87
- /**
88
- * Opens the audit stream: creates the 0600 directory/file if absent and
89
- * quarantines any corrupt tail so subsequent appends are always readable.
90
- * Called under the same lock as `ElevationLedger.open()`.
91
- */
92
- open(): Promise<this>;
93
- }
@@ -1,3 +0,0 @@
1
- export declare function signElevationCapability(authorityToken: string, requestId: string, sdkId: string, input: Record<string, unknown>): string;
2
- export declare function verifyElevationCapability(authorityToken: string, capability: string, sdkId: string, input: Record<string, unknown>): boolean;
3
- export declare function elevationAuthorityPath(stateRoot: string, sessionId: string): string;
@@ -1,72 +0,0 @@
1
- /**
2
- * Fully qualified elevation request digest.
3
- *
4
- * An elevation grant binds the exact operation the operator approved. The
5
- * digest covers the complete `{kind, sdkId, input}` triple so substituting a
6
- * different operation or different input bytes changes the digest and the
7
- * gate presentation fails closed (`misused`). The top-level
8
- * `elevationRequestId` correlation field is deliberately excluded: it is the
9
- * durable correlation ID assigned to a request, not part of the approved
10
- * content, and the same content re-issued under a new ID must produce the
11
- * same digest.
12
- *
13
- * Only allowlisted operations can be elevated; anything else is refused so a
14
- * caller cannot mint a grant for an operation outside the elevation policy.
15
- */
16
- export declare const ELEVATION_OPERATION_KINDS: readonly ["control", "query", "global"];
17
- export type ElevationOperationKind = (typeof ELEVATION_OPERATION_KINDS)[number];
18
- export interface ElevationOperation {
19
- kind: ElevationOperationKind;
20
- sdkId: string;
21
- }
22
- /**
23
- * Operations that require an elevation grant. Default SDK scope
24
- * (list/query/send/tail) stays grant-free; destructive lifecycle operations
25
- * and workflow approval operations are elevatable and therefore gated.
26
- */
27
- export declare const ELEVATION_ALLOWLIST: readonly {
28
- kind: ElevationOperationKind;
29
- sdkId: string;
30
- }[];
31
- export declare function isElevatableOperation(kind: unknown, sdkId: unknown): boolean;
32
- /**
33
- * Whether the `(kind, sdkId)` pair names a registry operation that the
34
- * elevation allowlist recognizes. Used by the ledger row validator so a
35
- * persisted row can never bind an operation outside the allowlist.
36
- */
37
- export declare function isKnownElevationOperation(kind: unknown, sdkId: unknown): boolean;
38
- /**
39
- * Canonical JSON encoding for elevation digest leaves.
40
- *
41
- * Intentionally byte-compatible with the broker's identity canonicalization
42
- * (`canonicalJson` in `sdk/broker/broker.ts`): object keys sorted, compact
43
- * separators, `undefined` fields preserved verbatim, arrays joined without
44
- * separators. The broker computes the request digest at issue time and the
45
- * ledger recomputes/compares the same encoding, so digest verification is
46
- * stable across issue, gate presentation, and answer.
47
- */
48
- export declare function canonicalElevationJson(value: unknown): string;
49
- export type ElevationDigestResult = {
50
- ok: true;
51
- digest: string;
52
- } | {
53
- ok: false;
54
- error: {
55
- code: string;
56
- message: string;
57
- };
58
- };
59
- /**
60
- * Computes the fully qualified digest for an elevation request.
61
- *
62
- * `input` is digested exactly as supplied except that a top-level
63
- * `elevationRequestId` field is removed first (it is the correlation ID, not
64
- * approved content). Operations outside `ELEVATION_ALLOWLIST` are refused
65
- * with `elevation_not_required` so the broker never mints a grant for an
66
- * operation that does not need one.
67
- */
68
- export declare function elevationRequestDigest(request: {
69
- kind: unknown;
70
- sdkId: unknown;
71
- input: unknown;
72
- }): ElevationDigestResult;
@@ -1,85 +0,0 @@
1
- export declare const ELEVATION_RECEIPT_VERSION = 1;
2
- /**
3
- * Identity of the broker tenure that claims a grant and dispatches it.
4
- *
5
- * `ownerId` is the broker instance owner id and `epoch` increments per broker
6
- * start, so a restart (even of the same object) yields a new tenure. `pid` and
7
- * `incarnation` are retained for truthful tri-state liveness replay.
8
- */
9
- export interface ElevationClaimIdentity {
10
- ownerId: string;
11
- epoch: number;
12
- pid: number;
13
- incarnation: string;
14
- }
15
- export type ElevationReceiptState = "claimed" | "dispatched" | "uncertain";
16
- /**
17
- * Durable dispatch outcome. `unknown` is the crash truth: the grant was
18
- * consumed by a claim but the dispatch outcome is not knowable, so retry
19
- * requires a new grant.
20
- */
21
- export type ElevationDispatchOutcome = {
22
- status: "ok";
23
- dispatchedAt: number;
24
- } | {
25
- status: "failed";
26
- code: string;
27
- message: string;
28
- dispatchedAt: number;
29
- } | {
30
- status: "unknown";
31
- message: string;
32
- dispatchedAt: number;
33
- };
34
- /**
35
- * Owner/epoch-bound dispatch receipt.
36
- *
37
- * State machine: `claimed` (grant spent, dispatch in flight, bound to the
38
- * claiming broker tenure) -> `dispatched` (terminal, outcome recorded) or
39
- * `uncertain` (terminal truth: the claim's outcome is unknowable after its
40
- * broker tenure died). Replay never fabricates an outcome: a receipt left in
41
- * `claimed` by a dead tenure is truthfully terminalized to `uncertain`.
42
- */
43
- export interface ElevationDispatchReceipt {
44
- version: typeof ELEVATION_RECEIPT_VERSION;
45
- elevationRequestId: string;
46
- issueIndex: number;
47
- state: ElevationReceiptState;
48
- claim: ElevationClaimIdentity & {
49
- claimedAt: number;
50
- };
51
- dispatch?: {
52
- ownerId: string;
53
- epoch: number;
54
- dispatchedAt: number;
55
- };
56
- outcome?: ElevationDispatchOutcome;
57
- ts: number;
58
- }
59
- export declare function isElevationRequestId(value: unknown): value is string;
60
- export declare function isElevationClaimIdentity(value: unknown): value is ElevationClaimIdentity;
61
- export declare function isElevationDispatchOutcome(value: unknown): value is ElevationDispatchOutcome;
62
- export declare function isElevationDispatchReceipt(value: unknown): value is ElevationDispatchReceipt;
63
- export declare function claimReceipt(requestId: string, issueIndex: number, claim: ElevationClaimIdentity, claimedAt: number): ElevationDispatchReceipt;
64
- export declare function dispatchReceipt(receipt: ElevationDispatchReceipt, dispatch: {
65
- ownerId: string;
66
- epoch: number;
67
- dispatchedAt: number;
68
- }, outcome: ElevationDispatchOutcome): ElevationDispatchReceipt;
69
- export declare function uncertainReceipt(receipt: ElevationDispatchReceipt, at: number): ElevationDispatchReceipt;
70
- export declare function receiptClaimMatches(receipt: ElevationDispatchReceipt, identity: ElevationClaimIdentity): boolean;
71
- /**
72
- * Who may answer an elevation gate.
73
- *
74
- * Internal operator-only: the answer boundary is the broker's internal
75
- * operator attestation (`local_operator`), reached only through broker-owned
76
- * surfaces. There is no public `elevation.answer` operation and no
77
- * requester-correlation check: the answerer is structurally an operator
78
- * attestation, so requester self-approval is impossible by construction.
79
- */
80
- export type ElevationAnswerAuthority = {
81
- source: "local_operator";
82
- attestedBy: string;
83
- };
84
- /** Structural guard for the internal operator attestation. */
85
- export declare function isElevationAnswerAuthority(value: unknown): value is ElevationAnswerAuthority;