@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
@@ -0,0 +1,21 @@
1
+ import { Container } from "@gajae-code/tui";
2
+ import type { GjcScope, ImportPreview, ImportResult } from "../../../customization/types";
3
+ type WizardStep = "product" | "sourceScope" | "surfaces" | "collision" | "preview" | "result";
4
+ export declare class ImportWizard extends Container {
5
+ #private;
6
+ /** Called when the wizard finishes or is cancelled; `applied` is true only when an import succeeded. */
7
+ onClose: ((applied: boolean) => void) | undefined;
8
+ onRequestRender: (() => void) | undefined;
9
+ constructor(cwd: string, destinationScope: GjcScope, homeDir?: string);
10
+ /** Current step (test-visible). */
11
+ get step(): WizardStep;
12
+ /** Last built preview DTO — redacted and serialization-safe (test-visible). */
13
+ get preview(): ImportPreview | null;
14
+ /** Last apply result (test-visible). */
15
+ get result(): ImportResult | null;
16
+ /** Whether the wizard currently shows an attached selection list (test-visible). */
17
+ get hasVisibleSelector(): boolean;
18
+ handleInput(keyData: string): void;
19
+ render(width: number): string[];
20
+ }
21
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./customization-dashboard";
@@ -2,11 +2,7 @@ import { type Component, type Container, type PetMode, type PetSkinId, type TUI
2
2
  import type { CustomEditor } from "./custom-editor";
3
3
  /** Re-exported from the tui skin registry so widget-relative imports stay valid. */
4
4
  export type { PetMode, PetSkinId };
5
- /**
6
- * Wraps the composer editor, reserving a right-side area beside it where the
7
- * real-pixel pet is drawn. The editor just renders narrower; the pet pixels
8
- * are emitted separately as an absolute-positioned overlay.
9
- */
5
+ /** Reserve a right-side area beside the composer where the pixel pet is drawn. */
10
6
  export declare class PetFramedEditor implements Component {
11
7
  #private;
12
8
  constructor(editor: CustomEditor);
@@ -15,20 +11,7 @@ export declare class PetFramedEditor implements Component {
15
11
  invalidate(): void;
16
12
  render(width: number): string[];
17
13
  }
18
- /**
19
- * The gajae pet: a real-pixel sprite living in a reserved area beside the
20
- * composer. It is nearest-neighbor scaled to the two terminal rows occupied
21
- * by an empty one-line composer and lifted one row so its feet meet the input
22
- * box's bottom edge.
23
- *
24
- * Rendering has two paths that share one payload builder:
25
- * - a post-render emitter re-draws the sprite after every TUI write (line
26
- * renders clear the pet cells, so the overlay must be re-applied), and
27
- * - frame advances write the payload directly to the terminal, because the
28
- * TUI skips writes entirely when no component line changed.
29
- *
30
- * Requires a sixel- or kitty-graphics terminal (`pixelProtocol()`).
31
- */
14
+ /** The gajae pet pixel sprite and protocol-specific rendering lifecycle. */
32
15
  export declare class GajaePetWidget {
33
16
  #private;
34
17
  constructor(options: {
@@ -37,24 +20,19 @@ export declare class GajaePetWidget {
37
20
  editorContainer: Container;
38
21
  floorContainer: Container;
39
22
  isWorking: () => boolean;
40
- /** Rows rendered below the composer box (pet floor + hook widgets). */
41
23
  getComposerBottomOffset: () => number;
42
- forcePixelProtocol?: "sixel" | "kitty" | "iterm2";
43
- /** Random [min, max] ms between auto-flexes; null disables. */
24
+ syncManagedItermCursor: (row: number, column: number) => Promise<boolean>;
25
+ forcePixelProtocol?: "sixel" | "kitty";
44
26
  autoFlexGapMs?: [number, number] | null;
45
27
  });
46
- /** Protocol available for the real-pixel pet, if any. */
47
- static pixelProtocol(): "sixel" | "kitty" | "iterm2" | null;
28
+ static pixelProtocol(): "sixel" | "kitty" | "iterm" | null;
48
29
  get mode(): PetMode;
49
30
  get isFlexing(): boolean;
50
- setMode(mode: string): void;
51
- /** Live preview during a selector: change the sprite without re-mounting the
52
- * composer editor (that would tear down the open overlay). After a short idle
53
- * eye-roll it fires the signature burst once (RedGajae flex, BlueGajae para-para
54
- * then sob) so the selector demos the animation instead of waiting the random gap. */
31
+ setMode(mode: PetMode): void;
32
+ suspendItermCapability(): Promise<void>;
55
33
  previewMode(mode: PetMode): void;
56
34
  commitPreviewMode(mode: PetMode): void;
57
35
  dispose(): void;
58
- /** Re-mount the composer editor (framed when a skin is active) after an overlay. */
36
+ disposeAsync(): Promise<void>;
59
37
  remountComposer(): void;
60
38
  }
@@ -77,6 +77,7 @@ export declare class IrcSplitViewComponent implements ViewportAnchorProvider {
77
77
  private readonly ledger;
78
78
  private readonly componentTheme;
79
79
  constructor(leftPane: Component, ledger: IrcObservationLedger, componentTheme: IrcSidebarThemeSource);
80
+ getRenderRevision(): bigint;
80
81
  get visible(): boolean;
81
82
  effectiveSidebarVisible(width?: number): boolean;
82
83
  setVisible(visible: boolean): void;
@@ -0,0 +1,122 @@
1
+ export declare const PET_CAPABILITY_DRAIN_MAX_MS = 100;
2
+ export declare const PET_CAPABILITY_QUIESCENCE_MS = 25;
3
+ export declare const PET_CAPABILITY_QUERY_TIMEOUT_MS = 1000;
4
+ export declare const PET_TOPOLOGY_POLL_MS = 250;
5
+ export type PetTransportMode = "direct" | "managed";
6
+ export type PetUnavailableReason = "not-iterm2" | "tty-unavailable" | "missing-f" | "invalid-f" | "probe-timeout" | "topology-ineligible" | "topology-lost" | "zero-client-recovery" | "cleanup-failed";
7
+ export type PetTransportAvailability = Readonly<{
8
+ available: boolean;
9
+ mode: PetTransportMode;
10
+ reason?: PetUnavailableReason;
11
+ epoch: number;
12
+ }>;
13
+ export type PetTransportClock = Readonly<{
14
+ now(): number;
15
+ setTimeout(callback: () => void, ms: number): unknown;
16
+ clearTimeout(handle: unknown): void;
17
+ }>;
18
+ export type PetTransportInput = Readonly<{
19
+ drain(maxMs: number, quiescenceMs: number): Promise<void>;
20
+ onData(callback: (data: Uint8Array | string) => PetInputResult | undefined): () => void;
21
+ }>;
22
+ export type PetInputResult = Readonly<{
23
+ consume?: true;
24
+ data?: string;
25
+ }>;
26
+ export type NativePetUi = Readonly<{
27
+ drainPetProbeInput?(maxMs: number, quiescenceMs: number): Promise<void>;
28
+ drainInput(maxMs: number, quiescenceMs: number): Promise<void>;
29
+ addInputListener(callback: (data: string | Uint8Array) => unknown): () => void;
30
+ submitTerminalOutput(request: Readonly<{
31
+ operation: Readonly<{
32
+ type: "raster-probe";
33
+ bytes: Uint8Array;
34
+ }>;
35
+ }>): Promise<Readonly<{
36
+ status?: string;
37
+ written?: number;
38
+ }>>;
39
+ notifyTerminalLifecycle(event: Readonly<{
40
+ kind: "availability-restored" | "explicit-cleanup";
41
+ source: "transport";
42
+ terminalGeneration: number;
43
+ }>): Promise<unknown>;
44
+ readonly terminalGeneration: number;
45
+ }>;
46
+ export type PetTransportOutput = Readonly<{
47
+ write(bytes: Uint8Array): Promise<Readonly<{
48
+ status: "written" | "failed";
49
+ }>>;
50
+ notifyLifecycle?(event: Readonly<{
51
+ kind: "availability-restored" | "explicit-cleanup";
52
+ terminalGeneration: number;
53
+ }>): Promise<unknown>;
54
+ }>;
55
+ export type PetTmuxResult = Readonly<{
56
+ status: number;
57
+ stdout: string;
58
+ stderr?: string;
59
+ }>;
60
+ export type PetTmuxRunner = (argv: readonly string[]) => Promise<PetTmuxResult | string>;
61
+ export type PetTmuxTopology = Readonly<{
62
+ clients: number;
63
+ paneId?: string;
64
+ ownedPaneId?: string;
65
+ clientId?: string;
66
+ clientVersion?: string;
67
+ }>;
68
+ export declare function hasItermFileCapability(v: Uint8Array | string): boolean;
69
+ export declare function consumeCapabilityInput(callback: (data: Uint8Array | string) => void): (data: string | Uint8Array) => PetInputResult | undefined;
70
+ export declare function capabilityProbe(): NodeJS.NonSharedUint8Array;
71
+ export declare function isItermCandidate(env?: NodeJS.ProcessEnv, tty?: boolean): boolean;
72
+ export declare function createNativePetTransport(o: {
73
+ ui: NativePetUi;
74
+ env?: NodeJS.ProcessEnv;
75
+ topology?: () => Promise<PetTmuxTopology>;
76
+ }): ItermPetTransport | undefined;
77
+ export declare class ItermPetTransport {
78
+ #private;
79
+ constructor(o: Readonly<{
80
+ mode?: PetTransportMode;
81
+ ttyCandidate?: boolean;
82
+ clock: PetTransportClock;
83
+ input: PetTransportInput;
84
+ output: PetTransportOutput;
85
+ tmux?: PetTmuxRunner;
86
+ ownedPaneId?: string;
87
+ paneId?: string;
88
+ sessionTarget?: string;
89
+ topology?: () => Promise<PetTmuxTopology>;
90
+ expectedClientId?: string;
91
+ }>);
92
+ get availability(): {
93
+ available: boolean;
94
+ mode: PetTransportMode;
95
+ reason: PetUnavailableReason | undefined;
96
+ epoch: number;
97
+ };
98
+ refreshManagedClient(row: number, column: number): Promise<boolean>;
99
+ subscribe(cb: (a: PetTransportAvailability) => void): () => boolean;
100
+ probe(): Promise<Readonly<{
101
+ available: boolean;
102
+ mode: PetTransportMode;
103
+ reason?: PetUnavailableReason;
104
+ epoch: number;
105
+ }>>;
106
+ retry(): Promise<Readonly<{
107
+ available: boolean;
108
+ mode: PetTransportMode;
109
+ reason?: PetUnavailableReason;
110
+ epoch: number;
111
+ }>>;
112
+ revoke(reason?: PetUnavailableReason): Promise<PetTransportAvailability>;
113
+ inspectManagedTopology(): Promise<Readonly<{
114
+ available: boolean;
115
+ mode: PetTransportMode;
116
+ reason?: PetUnavailableReason;
117
+ epoch: number;
118
+ }>>;
119
+ startManagedPolling(): void;
120
+ stopManagedPolling(): void;
121
+ dispose(): Promise<void>;
122
+ }
@@ -1,16 +1,22 @@
1
+ import type { AuthCredentialSelector, CredentialRemovalTarget } from "@gajae-code/ai/core";
1
2
  import { Container } from "@gajae-code/tui";
2
3
  import type { AuthStorage } from "../../session/auth-storage";
3
4
  import type { ImportableCredential } from "../../setup/credential-import";
4
- /**
5
- * Component that renders an OAuth provider selector.
6
- */
5
+ export interface OAuthSelectorAccountOptions {
6
+ accountProviderId?: string;
7
+ onAccountSelect?: (selector: AuthCredentialSelector) => void | Promise<void>;
8
+ onAutoSelect?: () => void | Promise<void>;
9
+ onAddAccount?: () => void | Promise<void>;
10
+ onAccountRemove?: (targets: readonly CredentialRemovalTarget[]) => void | Promise<void>;
11
+ }
12
+ /** Component that renders an OAuth provider selector or a provider-scoped account selector. */
7
13
  export declare class OAuthSelectorComponent extends Container {
8
14
  #private;
9
15
  constructor(mode: "login" | "logout", authStorage: AuthStorage, onSelect: (providerId: string) => void, onCancel: () => void, options?: {
10
16
  validateAuth?: (providerId: string) => Promise<boolean>;
11
17
  requestRender?: () => void;
12
18
  externalCredentialCandidates?: ImportableCredential[];
13
- });
19
+ } & Partial<OAuthSelectorAccountOptions>);
14
20
  stopValidation(): void;
15
21
  dispose(): void;
16
22
  handleInput(keyData: string): void;
@@ -1,34 +1,20 @@
1
1
  import { type SelectItem } from "@gajae-code/tui";
2
- export type PetPixelProtocol = "sixel" | "kitty" | "iterm2";
3
- export declare const PET_UNAVAILABLE_DESCRIPTION = "Unavailable: requires compatible Kitty, iTerm2, or Sixel overlay rendering";
4
- export declare const PET_SAVED_UNAVAILABLE_DESCRIPTION = "Saved, unavailable \u2014 requires compatible Kitty, iTerm2, or Sixel overlay rendering";
5
- export declare const PET_UNAVAILABLE_WARNING = "\u26A0 Pets aren\u2019t available in this terminal. Its image support isn\u2019t compatible with Gajae Pet\u2019s overlay rendering yet. Try Kitty, Ghostty, WezTerm, iTerm2, or a terminal with compatible Sixel support.";
2
+ import type { PetTransportAvailability } from "./iterm-pet-transport";
3
+ export type PetPixelProtocol = "sixel" | "kitty" | "iterm";
4
+ export declare const PET_UNAVAILABLE_DESCRIPTION = "Unavailable: requires compatible Kitty or Sixel overlay rendering";
5
+ export declare const PET_SAVED_UNAVAILABLE_DESCRIPTION = "Saved, unavailable \u2014 requires compatible Kitty or Sixel overlay rendering";
6
+ export declare const PET_UNAVAILABLE_WARNING = "\u26A0 Pets aren\u2019t available in this terminal. Its image support isn\u2019t compatible with Gajae Pet\u2019s overlay rendering yet. Try Kitty, Ghostty, WezTerm, or a terminal with compatible Sixel support.";
6
7
  export declare function getPetUnavailableWarning(env?: NodeJS.ProcessEnv): string;
7
- export declare function getPetPixelProtocol(env?: NodeJS.ProcessEnv): PetPixelProtocol | null;
8
+ export declare function subscribeVerifiedItermPetAvailability(callback: (availability: PetTransportAvailability | undefined) => void): () => void;
9
+ export declare function setVerifiedItermPetAvailability(availability: PetTransportAvailability | undefined): void;
10
+ export declare function getItermPetAvailability(): PetTransportAvailability | undefined;
11
+ export declare function getVerifiedItermPetAvailability(): PetTransportAvailability | undefined;
12
+ export declare function getItermPetUnavailableReason(): string | undefined;
13
+ export declare function getPetPixelProtocol(): PetPixelProtocol | null;
8
14
  export declare function isPetAvailable(): boolean;
9
15
  export declare function createPetSelectItems(options: ReadonlyArray<SelectItem>, currentValue: string, available: boolean): SelectItem[];
10
- /**
11
- * Grace period before declaring the terminal pet-incapable at startup. The
12
- * asynchronous Sixel capability probe starts inside `TUI.start()` and answers
13
- * within its own 250 ms deadline; this margin covers probe scheduling so a
14
- * supported terminal is never told it is incompatible while the probe is
15
- * still in flight.
16
- */
17
16
  export declare const PET_CAPABILITY_SETTLE_MS = 1000;
18
- /**
19
- * Whether the asynchronous startup Sixel capability probe may still enable
20
- * graphics for this session, meaning current unavailability is not final.
21
- */
22
17
  export declare function isPetCapabilityProbePending(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): boolean;
23
- /**
24
- * Deliver the pet-unavailable startup warning only once the capability
25
- * question is settled. With no probe pending, unavailability is final and
26
- * `onUnavailable` fires immediately. While a probe may still enable
27
- * graphics, the warning is deferred: a protocol-change event cancels it (the
28
- * saved pet re-applies through the existing subscription), and only the
29
- * settle deadline passing with the terminal still unavailable emits it.
30
- * Returns a disposer that cancels the pending decision.
31
- */
32
18
  export declare function warnWhenPetCapabilitySettled(options: {
33
19
  probePending: boolean;
34
20
  isAvailable?: () => boolean;
@@ -1,5 +1,9 @@
1
1
  import { type RunGh } from "../../../utils/gh";
2
- export declare function lookupCurrentPr(runGh?: RunGh): Promise<{
2
+ type CurrentPr = {
3
3
  number: number;
4
4
  url: string;
5
- } | null>;
5
+ } | null;
6
+ export declare function lookupCurrentPr(runGh?: RunGh): Promise<CurrentPr>;
7
+ export declare function lookupCurrentPrCached(cacheKey: string, runGh?: RunGh, now?: () => number): Promise<CurrentPr>;
8
+ export declare function clearCurrentPrCache(): void;
9
+ export {};
@@ -2,7 +2,7 @@ import { type Component, type TUI } from "@gajae-code/tui";
2
2
  import { KeybindingsManager } from "../../config/keybindings";
3
3
  import type { ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetContent, ExtensionWidgetOptions, TerminalInputHandler } from "../../extensibility/extensions";
4
4
  import { type Theme } from "../../modes/theme/theme";
5
- import { type InteractiveModeContext } from "../../modes/types";
5
+ import type { InteractiveModeContext } from "../../modes/types";
6
6
  export declare class ExtensionUiController {
7
7
  #private;
8
8
  private ctx;
@@ -5,7 +5,7 @@ import { type InteractiveModeContext, type OAuthSelectorOptions } from "../../mo
5
5
  import { getCurrentTelegramActivationMarker, getNotificationConfig, maskToken } from "../../sdk/bus/config";
6
6
  import { type NotificationProviderRuntimeAuthority, proposedTelegramIdentity, reconcileCommittedTelegramConfiguration, removeTelegramConfiguration, saveTelegramInactive } from "../../sdk/bus/notification-orchestration";
7
7
  import { buildNotificationStatusReport, checkNotificationHealth, recoverNotifications, sanitizeDiagnostic, sendNotificationTest } from "../../sdk/bus/notification-service";
8
- import { ensureTelegramDaemonRunningDetailed, readNotificationRootRegistration, resolveTelegramSetupPreflight, unregisterNotificationRoot } from "../../sdk/bus/telegram-daemon";
8
+ import { ensureTelegramDaemonRunningDetailed, resolveTelegramSetupPreflight } from "../../sdk/bus/telegram-daemon";
9
9
  import { runTelegramSetup } from "../../sdk/bus/telegram-setup";
10
10
  import { type CredentialAutoImportStateStore } from "../../setup/credential-auto-import";
11
11
  import { type CommandPaletteAction } from "../components/command-palette";
@@ -51,13 +51,6 @@ export interface NotificationsEditorOperationDependencies {
51
51
  reconcileCommittedTelegramConfiguration: typeof reconcileCommittedTelegramConfiguration;
52
52
  saveTelegramInactive: typeof saveTelegramInactive;
53
53
  removeTelegramConfiguration: typeof removeTelegramConfiguration;
54
- readNotificationRootRegistration: typeof readNotificationRootRegistration;
55
- unregisterNotificationRoot: typeof unregisterNotificationRoot;
56
- stopTelegramDaemonIfRootRegistryFenceMatches(input: {
57
- settings: Settings;
58
- registryFingerprint: string;
59
- stop: () => Promise<TelegramDaemonStopResult>;
60
- }): Promise<boolean>;
61
54
  reloadTelegramDaemon(settings: Settings): Promise<{
62
55
  ok: boolean;
63
56
  message: string;
@@ -103,6 +96,12 @@ export declare class SelectorController {
103
96
  * Replaces /status with a unified view of all providers and extensions.
104
97
  */
105
98
  showExtensionsDashboard(): Promise<void>;
99
+ /**
100
+ * Show the `/extensions` umbrella local-customization dashboard (skills,
101
+ * hooks, MCPs, import) — a separate surface from the provider-focused
102
+ * Extension Control Center above (issue #4291).
103
+ */
104
+ showCustomizationDashboard(): Promise<void>;
106
105
  /**
107
106
  * Show the Agent Control Center dashboard.
108
107
  */
@@ -7,7 +7,7 @@ interface SttEditor {
7
7
  }
8
8
  interface SttUi {
9
9
  getShowHardwareCursor(): boolean;
10
- requestRender(): void;
10
+ requestLayoutRender(source?: string): void;
11
11
  setShowHardwareCursor(enabled: boolean): void;
12
12
  }
13
13
  export interface SttModeContext {
@@ -261,6 +261,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
261
261
  showPetSelector(): void;
262
262
  showHistorySearch(): Promise<void>;
263
263
  showExtensionsDashboard(): void;
264
+ showCustomizationDashboard(): void;
264
265
  showAgentsDashboard(): void;
265
266
  showModelSelector(options?: {
266
267
  temporaryOnly?: boolean;
@@ -302,6 +302,7 @@ export interface InteractiveModeContext {
302
302
  showPetSelector(): void;
303
303
  showHistorySearch(): Promise<void>;
304
304
  showExtensionsDashboard(): void;
305
+ showCustomizationDashboard(): void;
305
306
  showAgentsDashboard(): void;
306
307
  showModelSelector(options?: {
307
308
  temporaryOnly?: boolean;
@@ -6,6 +6,16 @@ import type { InteractiveModeContext } from "../types";
6
6
  * `AgentSession.sendUserMessage` (text parts joined with "\n") so the resulting
7
7
  * text matches the eventual user `message_start` payload.
8
8
  */
9
+ /**
10
+ * Validate extension `sendUserMessage` content at the owning interactive
11
+ * boundary, before session delivery and UI bookkeeping. Returns a typed
12
+ * `invalid_input` Error when the content container or any array element is
13
+ * absent/null/malformed — exactly the shapes that would make
14
+ * `normalizeInjectedUserContent`'s `for-of` dereference (`part.type`) throw an
15
+ * untyped TypeError synchronously before the caller's `send.catch` is attached
16
+ * (unhandled rejection → resident crash).
17
+ */
18
+ export declare function extensionUserMessageContentError(content: string | (TextContent | ImageContent)[]): Error | undefined;
9
19
  export declare function normalizeInjectedUserContent(content: string | (TextContent | ImageContent)[]): {
10
20
  text: string;
11
21
  images: ImageContent[];
@@ -15,6 +15,13 @@ export interface LoadMCPConfigsOptions {
15
15
  filterBrowser?: boolean;
16
16
  /** Only include startup-eligible servers; exact-config sessions always enforce autoload !== false. */
17
17
  autoloadOnly?: boolean;
18
+ /**
19
+ * Restrict discovery to GJC's own native config (`.gjc/` project and
20
+ * `~/.gjc/agent/` user scopes). Conventional standalone sessions use this
21
+ * mode: Claude Code/Codex project/global MCP files are explicit import
22
+ * sources into `.gjc`, not implicit competing runtime authorities.
23
+ */
24
+ nativeOnly?: boolean;
18
25
  /** Load only this explicit MCP config file. */
19
26
  configPath?: string;
20
27
  }
@@ -28,6 +35,8 @@ export interface LoadMCPConfigsResult {
28
35
  sources: Record<string, SourceMeta>;
29
36
  /** Whether the explicit configuration was unavailable or contained invalid entries. */
30
37
  configurationWarning: boolean;
38
+ /** Provider warnings surfaced during discovery (parse/skip diagnostics). */
39
+ warnings: string[];
31
40
  }
32
41
  /**
33
42
  * Load all MCP server configs from standard locations.
@@ -9,9 +9,10 @@ import type { SourceMeta } from "../capability/types";
9
9
  import type { CustomTool } from "../extensibility/custom-tools/types";
10
10
  import type { AuthStorage } from "../session/auth-storage";
11
11
  import { MCPConnectionPool, type MCPPoolLease } from "./pool";
12
+ import type { MCPProtocolObservation } from "./protocol";
12
13
  import type { MCPToolDetails } from "./tool-bridge";
13
14
  import type { MCPToolCache } from "./tool-cache";
14
- import type { MCPGetPromptResult, MCPPrompt, MCPRequestOptions, MCPResource, MCPResourceReadResult, MCPResourceTemplate, MCPServerConfig, MCPServerConnection } from "./types";
15
+ import type { MCPGetPromptResult, MCPInputRequestHandler, MCPPrompt, MCPRequestOptions, MCPResource, MCPResourceReadResult, MCPResourceTemplate, MCPServerConfig, MCPServerConnection } from "./types";
15
16
  export declare function resolveStartupTimeoutMs(configs: MCPServerConfig[], maxStartupTimeoutMs?: number): number;
16
17
  export declare function resolveExactConfigStartupTimeoutMs(configs: MCPServerConfig[]): number;
17
18
  export declare class MCPManagerLifecycleError extends Error {
@@ -54,6 +55,12 @@ export interface MCPDiscoverOptions {
54
55
  filterBrowser?: boolean;
55
56
  /** Only connect servers with autoload !== false (default: false) */
56
57
  autoloadOnly?: boolean;
58
+ /**
59
+ * Restrict discovery to GJC's native `.gjc` scopes (user + project).
60
+ * Runtime MCP authority for GJC sessions; Claude Code/Codex files are
61
+ * explicit import sources into `.gjc`, not implicit runtime authorities.
62
+ */
63
+ nativeOnly?: boolean;
57
64
  /** Called when starting to connect to servers */
58
65
  onConnecting?: (serverNames: string[]) => void;
59
66
  /** Load only this explicit MCP config file. */
@@ -125,6 +132,13 @@ export declare class MCPManager {
125
132
  * Set the auth storage for resolving OAuth credentials.
126
133
  */
127
134
  setAuthStorage(authStorage: AuthStorage): void;
135
+ /**
136
+ * Register the handler for modern MRTR `input_required` results (structured
137
+ * elicitation/roots/sampling input requests). Runtimes with an interactive
138
+ * question surface (e.g. ACP `elicitation/create`) register here; without a
139
+ * handler, `input_required` fails explicitly instead of hanging.
140
+ */
141
+ setInputRequestHandler(handler: MCPInputRequestHandler | null): void;
128
142
  /**
129
143
  * Discover and connect to all MCP servers from .mcp.json files.
130
144
  * Returns tools and any connection errors.
@@ -147,6 +161,17 @@ export declare class MCPManager {
147
161
  * Get current connection status for a server.
148
162
  */
149
163
  getConnectionStatus(name: string): "connected" | "connecting" | "disconnected";
164
+ /**
165
+ * Get the authoritative protocol observation for a connected server
166
+ * (preference, negotiated era/version, downgrade decision, deprecation state).
167
+ * Secret-free; the single observation model consumed by customization doctor
168
+ * (#4288) and /extensions (#4291). Returns undefined when not connected.
169
+ */
170
+ getProtocolObservation(name: string): MCPProtocolObservation | undefined;
171
+ /**
172
+ * Snapshot of protocol observations for all connected servers.
173
+ */
174
+ getProtocolObservations(): ReadonlyMap<string, MCPProtocolObservation>;
150
175
  /**
151
176
  * Get the source metadata for a server.
152
177
  */
@@ -10,6 +10,10 @@ export interface OAuthEndpoints {
10
10
  tokenUrl: string;
11
11
  clientId?: string;
12
12
  scopes?: string;
13
+ /** Issuer recorded from the validated metadata document (RFC 9207). */
14
+ issuer?: string;
15
+ /** `authorization_response_iss_parameter_supported` from the same metadata. */
16
+ authorizationResponseIssSupported?: boolean;
13
17
  }
14
18
  export interface AuthDetectionResult {
15
19
  requiresAuth: boolean;
@@ -6,12 +6,22 @@
6
6
  */
7
7
  import { OAuthCallbackFlow } from "@gajae-code/ai/utils/oauth/callback-server";
8
8
  import type { OAuthController, OAuthCredentials } from "@gajae-code/ai/utils/oauth/types";
9
+ /**
10
+ * Canonical MCP server resource URI per RFC 8707 §2: absolute URI, lowercase
11
+ * scheme/host, no fragment, no trailing slash on an empty path.
12
+ */
13
+ export declare function canonicalMCPResourceUri(raw: string): string | undefined;
9
14
  export interface MCPOAuthConfig {
10
15
  /** Authorization endpoint URL */
11
16
  authorizationUrl: string;
12
17
  /** Token endpoint URL */
13
18
  tokenUrl: string;
14
- /** Client ID (optional when already embedded in authorization URL) */
19
+ /**
20
+ * Client ID (optional when already embedded in authorization URL). An
21
+ * HTTPS URL here is a Client ID Metadata Document (CIMD) reference per
22
+ * MCP 2026-07-28 and is used as-is; Dynamic Client Registration is only a
23
+ * deprecated backwards-compatibility fallback when no client id exists.
24
+ */
15
25
  clientId?: string;
16
26
  /** Client secret (optional for PKCE flows) */
17
27
  clientSecret?: string;
@@ -23,6 +33,19 @@ export interface MCPOAuthConfig {
23
33
  callbackPort?: number;
24
34
  /** Custom callback path (default: /callback or redirectUri pathname) */
25
35
  callbackPath?: string;
36
+ /**
37
+ * Canonical URI of the target MCP server (RFC 8707). Sent as the `resource`
38
+ * parameter on BOTH the authorization and token requests, regardless of
39
+ * authorization-server support.
40
+ */
41
+ resource?: string;
42
+ /**
43
+ * Expected authorization-server issuer recorded from validated discovery
44
+ * metadata (RFC 9207 / MCP 2026-07-28). Validation fails closed on mismatch.
45
+ */
46
+ issuer?: string;
47
+ /** `authorization_response_iss_parameter_supported` from the same metadata. */
48
+ issuerResponseIssSupported?: boolean;
26
49
  }
27
50
  /**
28
51
  * Generic OAuth flow for MCP servers.
@@ -48,6 +48,8 @@ export interface MCPPoolKeyIdentity {
48
48
  authScopeId: string;
49
49
  pluginNetworkPolicyId: string;
50
50
  capabilityProfile: MCPPoolCapabilityProfile;
51
+ /** Resolved protocol preference (auto | 2026-07-28 | legacy); partitions protocol generations. */
52
+ protocolPreference: string;
51
53
  sessionId?: string;
52
54
  }
53
55
  /**