@sayknow-cli/coding-agent 0.3.16 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1474) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/package.json +133 -116
  3. package/scripts/build-sdk-package-smoke.ts +132 -0
  4. package/scripts/capture-notifications-settings-showcase.ts +435 -0
  5. package/scripts/compile-args.ts +5 -2
  6. package/scripts/g005-daemon-smoke.ts +4 -5
  7. package/scripts/g011-daemon-path-smoke.ts +5 -5
  8. package/scripts/generate-hotkeys-docs.ts +74 -0
  9. package/scripts/generate-sdk-adapter-parity-manifest.ts +163 -0
  10. package/scripts/generate-sdk-operation-inventory.ts +914 -0
  11. package/scripts/generate-telegram-baseline-manifest.ts +128 -0
  12. package/scripts/manifest-schema.ts +124 -0
  13. package/scripts/run-test-manifest.ts +153 -0
  14. package/scripts/run-threat-model-check.ts +217 -0
  15. package/scripts/verify-skc-sdk-canonicalization.ts +3647 -0
  16. package/scripts/verify-skc-sdk-rename.ts +90 -0
  17. package/src/append-only-mode.ts +1 -1
  18. package/src/async/job-manager.ts +455 -69
  19. package/src/cli/args.ts +43 -12
  20. package/src/cli/auth-gateway-cli.ts +2 -2
  21. package/src/cli/config-cli.ts +77 -3
  22. package/src/cli/daemon-cli.ts +63 -14
  23. package/src/cli/launch-disposition.ts +42 -0
  24. package/src/cli/list-models.ts +1 -1
  25. package/src/cli/notify-cli.ts +373 -283
  26. package/src/cli/session-picker.ts +20 -3
  27. package/src/cli/setup-cli.ts +1 -1
  28. package/src/cli/worktree-cli.ts +9 -287
  29. package/src/cli.ts +31 -11
  30. package/src/commands/config.ts +1 -1
  31. package/src/commands/daemon.ts +50 -6
  32. package/src/commands/gc.ts +11 -1
  33. package/src/commands/harness.ts +127 -142
  34. package/src/commands/launch.ts +11 -6
  35. package/src/commands/mcp-serve.ts +97 -13
  36. package/src/commands/mcp.ts +2 -2
  37. package/src/commands/notify.ts +44 -7
  38. package/src/commands/sdk.ts +453 -0
  39. package/src/commands/ultragoal.ts +4 -1
  40. package/src/commands/worktree.ts +10 -53
  41. package/src/commit/agentic/agent.ts +1 -0
  42. package/src/config/atomic-yaml-patch.ts +490 -0
  43. package/src/config/file-lock.ts +105 -43
  44. package/src/config/keybindings.ts +64 -20
  45. package/src/config/model-auth.ts +9 -0
  46. package/src/config/model-bindings-applier.ts +139 -0
  47. package/src/config/model-discovery-manager.ts +224 -0
  48. package/src/config/model-equivalence.ts +66 -0
  49. package/src/config/model-profile-activation.ts +233 -86
  50. package/src/config/model-profiles.ts +52 -49
  51. package/src/config/model-registry.ts +5 -4
  52. package/src/config/model-resolver.ts +487 -410
  53. package/src/config/model-selector-value.ts +50 -0
  54. package/src/config/models-config-schema.ts +17 -23
  55. package/src/config/settings-schema.ts +372 -21
  56. package/src/config/settings.ts +1120 -182
  57. package/src/coordinator-mcp/model-preset.ts +74 -20
  58. package/src/coordinator-mcp/policy.ts +76 -11
  59. package/src/coordinator-mcp/question-gate-codec.ts +274 -0
  60. package/src/coordinator-mcp/question-state.ts +778 -0
  61. package/src/coordinator-mcp/server.ts +3120 -3111
  62. package/src/daemon/builtin.ts +8 -5
  63. package/src/daemon/control-types.ts +1 -1
  64. package/src/daemon/runtime.ts +2 -2
  65. package/src/debug/index.ts +1 -1
  66. package/src/defaults/skc/skills/team/SKILL.md +27 -13
  67. package/src/defaults/skc/skills/ultragoal/SKILL.md +0 -2
  68. package/src/discovery/helpers.ts +1 -50
  69. package/src/discovery/mcp-json.ts +327 -20
  70. package/src/edit/index.ts +64 -0
  71. package/src/eval/js/shared/runtime.ts +1 -1
  72. package/src/eval/py/env.ts +26 -0
  73. package/src/eval/py/index.ts +2 -2
  74. package/src/eval/py/kernel.ts +5 -3
  75. package/src/export/html/template.generated.ts +1 -1
  76. package/src/export/html/template.js +52 -18
  77. package/src/extensibility/custom-tools/types.ts +1 -1
  78. package/src/extensibility/extensions/compact-handler.ts +3 -3
  79. package/src/extensibility/extensions/get-commands-handler.ts +2 -2
  80. package/src/extensibility/extensions/loader.ts +77 -5
  81. package/src/extensibility/extensions/runner.ts +124 -7
  82. package/src/extensibility/extensions/types.ts +215 -18
  83. package/src/extensibility/hooks/runner.ts +2 -2
  84. package/src/extensibility/hooks/types.ts +1 -1
  85. package/src/extensibility/plugins/marketplace/manager.ts +94 -10
  86. package/src/extensibility/runtime-skill-discovery.ts +33 -13
  87. package/src/extensibility/shared-events.ts +2 -0
  88. package/src/extensibility/skc-plugins/installer.ts +16 -16
  89. package/src/extensibility/slash-commands.ts +3 -3
  90. package/src/goals/continuation-timeout-guard.ts +79 -0
  91. package/src/goals/runtime.ts +7 -5
  92. package/src/goals/state.ts +18 -0
  93. package/src/harness-control-plane/lifecycle-reconciliation.ts +64 -0
  94. package/src/harness-control-plane/operate.ts +9 -9
  95. package/src/harness-control-plane/owner.ts +341 -41
  96. package/src/harness-control-plane/phase-rollup.ts +4 -7
  97. package/src/harness-control-plane/receipt-ingest.ts +5 -0
  98. package/src/harness-control-plane/receipt-spool.ts +51 -7
  99. package/src/harness-control-plane/receipts.ts +0 -1
  100. package/src/harness-control-plane/sdk-transport.ts +395 -0
  101. package/src/harness-control-plane/session-lease.ts +12 -130
  102. package/src/harness-control-plane/session-transport.ts +94 -0
  103. package/src/harness-control-plane/types.ts +1 -1
  104. package/src/hindsight/backend.ts +26 -27
  105. package/src/hindsight/client.ts +65 -2
  106. package/src/hindsight/state.ts +101 -32
  107. package/src/hooks/skill-state.ts +17 -11
  108. package/src/i18n/messages/en.ts +1 -0
  109. package/src/internal-urls/agent-protocol.ts +76 -5
  110. package/src/internal-urls/docs-index.generated.ts +44 -37
  111. package/src/internal-urls/local-protocol.ts +420 -18
  112. package/src/lsp/client.ts +43 -7
  113. package/src/lsp/config.ts +145 -26
  114. package/src/lsp/index.ts +7 -91
  115. package/src/lsp/lspmux.ts +39 -10
  116. package/src/lsp/path-trust.ts +81 -0
  117. package/src/main.ts +451 -236
  118. package/src/memories/index.ts +1 -0
  119. package/src/memories/storage.ts +6 -2
  120. package/src/modes/DESIGN.md +258 -0
  121. package/src/modes/acp/acp-agent.ts +1236 -2612
  122. package/src/modes/acp/acp-client-bridge.ts +2 -20
  123. package/src/modes/acp/acp-event-mapper.ts +18 -2
  124. package/src/modes/acp/acp-mode.ts +8 -36
  125. package/src/modes/acp/permission-mode.ts +25 -0
  126. package/src/modes/acp/startup-options.ts +6 -0
  127. package/src/modes/action-registry.ts +165 -0
  128. package/src/modes/bridge/bridge-mode.ts +6 -4
  129. package/src/modes/components/agent-dashboard.ts +37 -17
  130. package/src/modes/components/ansi-display-validator.ts +54 -0
  131. package/src/modes/components/chrome.ts +40 -0
  132. package/src/modes/components/command-palette.ts +168 -0
  133. package/src/modes/components/custom-editor.ts +105 -33
  134. package/src/modes/components/custom-provider-wizard.ts +77 -15
  135. package/src/modes/components/index.ts +2 -1
  136. package/src/modes/components/model-selector.ts +93 -35
  137. package/src/modes/components/notifications-settings-editor.ts +1403 -0
  138. package/src/modes/components/pet-capability.ts +115 -0
  139. package/src/modes/components/pet-selector.ts +15 -23
  140. package/src/modes/components/plan-preview-overlay.ts +295 -0
  141. package/src/modes/components/queue-mode-selector.ts +10 -27
  142. package/src/modes/components/queue-pane.ts +79 -0
  143. package/src/modes/components/read-tool-group.ts +13 -0
  144. package/src/modes/components/sayknow-pet-widget.ts +169 -20
  145. package/src/modes/components/session-observer-overlay.ts +213 -775
  146. package/src/modes/components/sessions-dashboard.ts +181 -0
  147. package/src/modes/components/settings-selector.ts +89 -12
  148. package/src/modes/components/show-images-selector.ts +10 -24
  149. package/src/modes/components/status-line/types.ts +1 -1
  150. package/src/modes/components/status-line.ts +1 -969
  151. package/src/modes/components/tasks-pane.ts +73 -0
  152. package/src/modes/components/theme-selector.ts +11 -31
  153. package/src/modes/components/tool-execution.ts +22 -0
  154. package/src/modes/components/tool-status-header.ts +1056 -0
  155. package/src/modes/components/tool-transcript-format.ts +393 -0
  156. package/src/modes/components/transcript-viewer-overlay.ts +446 -0
  157. package/src/modes/components/welcome.ts +4 -4
  158. package/src/modes/controllers/btw-controller.ts +1 -0
  159. package/src/modes/controllers/command-controller.ts +25 -17
  160. package/src/modes/controllers/event-controller.ts +14 -18
  161. package/src/modes/controllers/extension-ui-controller.ts +441 -37
  162. package/src/modes/controllers/goal-mode-controller.ts +493 -0
  163. package/src/modes/controllers/input-controller.ts +889 -263
  164. package/src/modes/controllers/mode-gate.ts +24 -0
  165. package/src/modes/controllers/plan-mode-controller.ts +519 -0
  166. package/src/modes/controllers/runtime-mcp-command-controller.ts +3 -0
  167. package/src/modes/controllers/selector-controller.ts +957 -54
  168. package/src/modes/controllers/stt-controller.ts +125 -0
  169. package/src/modes/index.ts +0 -22
  170. package/src/modes/interactive-mode.ts +376 -1130
  171. package/src/modes/jobs-observer.ts +3 -0
  172. package/src/modes/prompt-action-autocomplete.ts +7 -0
  173. package/src/modes/rpc/rpc-mode.ts +3 -1
  174. package/src/modes/runtime-init.ts +320 -6
  175. package/src/modes/shared/agent-wire/approval-gate.ts +9 -11
  176. package/src/modes/shared/agent-wire/command-dispatch.ts +3 -1
  177. package/src/modes/shared/agent-wire/deep-interview-gate.ts +65 -111
  178. package/src/modes/shared/agent-wire/event-contract.ts +7 -8
  179. package/src/modes/shared/agent-wire/event-envelope.ts +9 -17
  180. package/src/modes/shared/agent-wire/event-observation.ts +16 -7
  181. package/src/modes/shared/agent-wire/workflow-gate-broker.ts +1331 -89
  182. package/src/modes/shared/agent-wire/workflow-gate-schema.ts +19 -17
  183. package/src/modes/shared/agent-wire/workflow-gate-types.ts +407 -0
  184. package/src/modes/tasks-aggregator.ts +199 -0
  185. package/src/modes/transcript-item-registry.ts +229 -0
  186. package/src/modes/types.ts +63 -21
  187. package/src/modes/utils/ui-helpers.ts +17 -9
  188. package/src/notifications/index.ts +8 -2
  189. package/src/plan-mode/approved-plan.ts +3 -1
  190. package/src/prompts/agent-fragments/ralplan-persistence.md +6 -0
  191. package/src/prompts/agent-fragments/restricted-bash.md +1 -0
  192. package/src/prompts/agents/architect.md +3 -8
  193. package/src/prompts/agents/critic.md +3 -8
  194. package/src/prompts/agents/executor.md +3 -0
  195. package/src/prompts/agents/planner.md +4 -12
  196. package/src/prompts/system/custom-system-prompt.md +2 -24
  197. package/src/prompts/system/plan-mode-approved.md +8 -0
  198. package/src/prompts/system/system-prompt.md +18 -94
  199. package/src/prompts/tools/bash.md +4 -4
  200. package/src/prompts/tools/browser.md +15 -52
  201. package/src/prompts/tools/find.md +2 -2
  202. package/src/prompts/tools/hashline.md +13 -55
  203. package/src/prompts/tools/lsp.md +3 -3
  204. package/src/prompts/tools/read.md +3 -6
  205. package/src/prompts/tools/search-tool-bm25.md +0 -2
  206. package/src/prompts/tools/search.md +2 -4
  207. package/src/prompts/tools/skill-discovery.md +1 -2
  208. package/src/prompts/tools/task.md +1 -1
  209. package/src/runtime-mcp/client.ts +94 -19
  210. package/src/runtime-mcp/config.ts +27 -15
  211. package/src/runtime-mcp/discoverable-tool-metadata.ts +16 -13
  212. package/src/runtime-mcp/manager.ts +359 -106
  213. package/src/runtime-mcp/oauth-discovery.ts +116 -26
  214. package/src/runtime-mcp/oauth-flow.ts +42 -12
  215. package/src/runtime-mcp/transports/http.ts +49 -19
  216. package/src/runtime-mcp/transports/stdio.ts +47 -28
  217. package/src/runtime-mcp/types.ts +10 -0
  218. package/src/sdk/acp/adapter.ts +418 -0
  219. package/src/sdk/acp/index.ts +2 -0
  220. package/src/sdk/broker/broker.ts +877 -0
  221. package/src/sdk/broker/discovery.ts +238 -0
  222. package/src/sdk/broker/ensure.ts +393 -0
  223. package/src/sdk/broker/identity.ts +42 -0
  224. package/src/sdk/broker/index.ts +8 -0
  225. package/src/sdk/broker/internal-source-marker-2178.txt +1 -0
  226. package/src/sdk/broker/internal-source.bunfig.toml +1 -0
  227. package/src/sdk/broker/internal.ts +10 -0
  228. package/src/sdk/broker/lifecycle-codec.ts +11 -0
  229. package/src/sdk/broker/lifecycle-ledger.ts +583 -0
  230. package/src/sdk/broker/lifecycle.ts +3413 -0
  231. package/src/sdk/broker/process-incarnation.ts +151 -0
  232. package/src/sdk/broker/runtime.ts +164 -0
  233. package/src/sdk/broker/session-index.ts +678 -0
  234. package/src/sdk/broker/state-version.ts +47 -0
  235. package/src/sdk/broker/transport.ts +125 -0
  236. package/src/sdk/bus/attachment-registry.ts +23 -0
  237. package/src/sdk/bus/chat-adapters.ts +147 -0
  238. package/src/sdk/bus/chat-command-policy.ts +107 -0
  239. package/src/sdk/bus/chat-daemon-cli.ts +278 -0
  240. package/src/sdk/bus/chat-daemon-control.ts +1101 -0
  241. package/src/sdk/bus/chat-daemon-runtime.ts +527 -0
  242. package/src/sdk/bus/chat-effect-journal.ts +363 -0
  243. package/src/sdk/bus/config-commands.ts +192 -0
  244. package/src/sdk/bus/config.ts +568 -0
  245. package/src/sdk/bus/conversation-store.ts +367 -0
  246. package/src/sdk/bus/daemon-paths.ts +34 -0
  247. package/src/sdk/bus/discord-conversation.ts +85 -0
  248. package/src/sdk/bus/discord-daemon.ts +2292 -0
  249. package/src/sdk/bus/discord-live-provider.ts +521 -0
  250. package/src/sdk/bus/discord-provider.ts +56 -0
  251. package/src/sdk/bus/engine.ts +100 -0
  252. package/src/sdk/bus/helpers.ts +135 -0
  253. package/src/sdk/bus/html-format.ts +518 -0
  254. package/src/sdk/bus/index.ts +4961 -0
  255. package/src/sdk/bus/lifecycle-commands.ts +291 -0
  256. package/src/sdk/bus/lifecycle-control-runtime.ts +1409 -0
  257. package/src/sdk/bus/lifecycle-orchestrator.ts +458 -0
  258. package/src/sdk/bus/managed-daemon.ts +163 -0
  259. package/src/sdk/bus/native-runtime-compatibility.ts +42 -0
  260. package/src/sdk/bus/natives-augment.d.ts +63 -0
  261. package/src/sdk/bus/notification-orchestration.ts +535 -0
  262. package/src/sdk/bus/notification-service.ts +1174 -0
  263. package/src/sdk/bus/operator-runtime.ts +171 -0
  264. package/src/sdk/bus/rate-limit-pool.ts +276 -0
  265. package/src/sdk/bus/recent-activity.ts +279 -0
  266. package/src/sdk/bus/reply-sent-store.ts +134 -0
  267. package/src/sdk/bus/rich-document.ts +258 -0
  268. package/src/sdk/bus/rich-draft.ts +107 -0
  269. package/src/sdk/bus/rich-render.ts +135 -0
  270. package/src/sdk/bus/session-control.ts +439 -0
  271. package/src/sdk/bus/slack-conversation.ts +74 -0
  272. package/src/sdk/bus/slack-daemon.ts +2144 -0
  273. package/src/sdk/bus/slack-live-provider.ts +380 -0
  274. package/src/sdk/bus/slack-provider.ts +76 -0
  275. package/src/sdk/bus/telegram-cli.ts +194 -0
  276. package/src/sdk/bus/telegram-daemon-cli.ts +292 -0
  277. package/src/sdk/bus/telegram-daemon-contract.ts +27 -0
  278. package/src/sdk/bus/telegram-daemon-control.ts +642 -0
  279. package/src/sdk/bus/telegram-daemon.ts +6675 -0
  280. package/src/sdk/bus/telegram-reference.ts +436 -0
  281. package/src/sdk/bus/telegram-setup.ts +663 -0
  282. package/src/sdk/bus/threaded-inbound.ts +141 -0
  283. package/src/sdk/bus/threaded-render.ts +294 -0
  284. package/src/sdk/bus/topic-registry.ts +364 -0
  285. package/src/sdk/cli/index.ts +1 -0
  286. package/src/sdk/cli/session-cli.ts +275 -0
  287. package/src/sdk/client/client.ts +1 -0
  288. package/src/sdk/client/discovery.ts +108 -0
  289. package/src/sdk/client/index.ts +2 -0
  290. package/src/sdk/host/control/dispatch.ts +388 -0
  291. package/src/sdk/host/control/index.ts +10 -0
  292. package/src/sdk/host/control/operations.ts +68 -0
  293. package/src/sdk/host/events.ts +91 -0
  294. package/src/sdk/host/host.ts +338 -0
  295. package/src/sdk/host/index.ts +4 -0
  296. package/src/sdk/host/query/cursor.ts +189 -0
  297. package/src/sdk/host/query/handlers.ts +531 -0
  298. package/src/sdk/host/query/index.ts +3 -0
  299. package/src/sdk/host/query/revision-store.ts +1149 -0
  300. package/src/sdk/host/reverse-leases.ts +325 -0
  301. package/src/sdk/host/types.ts +29 -0
  302. package/src/sdk/index.ts +14 -0
  303. package/src/sdk/lifecycle-session.ts +39 -0
  304. package/src/sdk/mcp/index.ts +1 -0
  305. package/src/sdk/mcp/server.ts +332 -0
  306. package/src/sdk/models.ts +168 -0
  307. package/src/sdk/protocol/adapter-validation.ts +48 -0
  308. package/src/sdk/protocol/operation-inventory.generated.json +4719 -0
  309. package/src/sdk/protocol/operation-registry.ts +312 -0
  310. package/src/sdk/session-directory.ts +141 -0
  311. package/src/sdk/session.ts +2869 -0
  312. package/src/sdk/startup-capability.ts +189 -0
  313. package/src/secrets/index.ts +53 -10
  314. package/src/secrets/obfuscator.ts +21 -18
  315. package/src/secrets/regex.ts +2 -0
  316. package/src/session/agent-session.ts +5602 -2138
  317. package/src/session/agent-storage.ts +18 -0
  318. package/src/session/artifacts.ts +188 -23
  319. package/src/session/cache-economics.ts +25 -8
  320. package/src/session/context-estimation.ts +7 -2
  321. package/src/session/default-model-selection.ts +93 -0
  322. package/src/session/fallback-chain-controller.ts +186 -0
  323. package/src/session/internal/managed-session-scope.ts +2402 -0
  324. package/src/session/internal/managed-session-storage.ts +1559 -0
  325. package/src/session/messages.ts +91 -2
  326. package/src/session/session-manager-internal.ts +33 -0
  327. package/src/session/session-manager.ts +2578 -392
  328. package/src/session/session-storage.ts +550 -40
  329. package/src/session/streaming-output.ts +6 -0
  330. package/src/session/volatile-context-pruning.ts +78 -0
  331. package/src/session/yield-queue.ts +20 -0
  332. package/src/setup/credential-auto-import.ts +291 -35
  333. package/src/setup/hermes/templates/operator-instructions.v1.md +4 -6
  334. package/src/setup/provider-onboarding.ts +36 -61
  335. package/src/setup/provider-presets.json +5 -0
  336. package/src/skc-runtime/deep-interview-recorder.ts +70 -3
  337. package/src/skc-runtime/deep-interview-state.ts +441 -5
  338. package/src/skc-runtime/gc-render.ts +19 -1
  339. package/src/skc-runtime/gc-runtime.ts +68 -3
  340. package/src/skc-runtime/goal-mode-request.ts +55 -8
  341. package/src/skc-runtime/launch-worktree.ts +5 -5
  342. package/src/skc-runtime/linux-proc.ts +71 -0
  343. package/src/skc-runtime/managed-owner-admission.ts +352 -0
  344. package/src/skc-runtime/managed-owner-supervisor.ts +162 -0
  345. package/src/skc-runtime/psmux-detect.ts +82 -4
  346. package/src/skc-runtime/ralplan-runtime.ts +74 -90
  347. package/src/skc-runtime/session-resolution.ts +18 -3
  348. package/src/skc-runtime/session-state-sidecar.ts +47 -138
  349. package/src/skc-runtime/state-argv.ts +292 -0
  350. package/src/skc-runtime/state-migrations.ts +1 -1
  351. package/src/skc-runtime/state-runtime.ts +387 -451
  352. package/src/skc-runtime/state-writer.ts +36 -40
  353. package/src/skc-runtime/team-launch.ts +319 -0
  354. package/src/skc-runtime/team-notify.ts +326 -0
  355. package/src/skc-runtime/team-runtime.ts +8 -2
  356. package/src/skc-runtime/team-store.ts +828 -0
  357. package/src/skc-runtime/team-workers.ts +962 -0
  358. package/src/skc-runtime/tmux-owner-isolation-cli.ts +55 -28
  359. package/src/skc-runtime/tmux-owner-isolation.ts +136 -11
  360. package/src/skc-runtime/tmux-sessions.ts +23 -34
  361. package/src/skc-runtime/ultragoal-change-set.ts +172 -0
  362. package/src/skc-runtime/ultragoal-evidence.ts +874 -0
  363. package/src/skc-runtime/ultragoal-guard.ts +136 -18
  364. package/src/skc-runtime/ultragoal-owner-loss-recovery.ts +328 -0
  365. package/src/skc-runtime/ultragoal-pipeline.ts +306 -0
  366. package/src/skc-runtime/ultragoal-receipt-freshness.ts +102 -1
  367. package/src/skc-runtime/ultragoal-runtime.ts +325 -1322
  368. package/src/skc-runtime/windows-powershell-command.ts +58 -0
  369. package/src/skc-runtime/workflow-cli-common.ts +30 -0
  370. package/src/skc-runtime/workflow-manifest.generated.json +58 -0
  371. package/src/skc-runtime/workflow-manifest.ts +18 -0
  372. package/src/skill-state/active-state.ts +3 -13
  373. package/src/skill-state/workflow-mutation-guard.ts +661 -0
  374. package/src/skill-state/workflow-state-contract.ts +6 -41
  375. package/src/slash-commands/builtin-registry.ts +115 -41
  376. package/src/system-prompt.ts +37 -44
  377. package/src/task/agents.ts +19 -1
  378. package/src/task/executor.ts +223 -45
  379. package/src/task/index.ts +124 -56
  380. package/src/thinking.ts +21 -6
  381. package/src/tool-discovery/tool-index.ts +20 -134
  382. package/src/tools/ask-answer-registry.ts +16 -2
  383. package/src/tools/ast-edit.ts +1 -1
  384. package/src/tools/bash-allowed-prefixes.ts +79 -29
  385. package/src/tools/bash-skill-urls.ts +14 -3
  386. package/src/tools/bash.ts +40 -2
  387. package/src/tools/browser/STEALTH-THIRD-PARTY-NOTICES.md +26 -0
  388. package/src/tools/browser/benchmark/detector-report.ts +157 -0
  389. package/src/tools/browser/benchmark/run-suite.ts +39 -0
  390. package/src/tools/browser/dead-tab-recovery.ts +78 -0
  391. package/src/tools/browser/launch.ts +127 -20
  392. package/src/tools/browser/profile-discovery.ts +63 -0
  393. package/src/tools/browser/profile-posture.ts +59 -0
  394. package/src/tools/browser/profile-reuse.ts +102 -0
  395. package/src/tools/browser/profile-warmup.ts +109 -0
  396. package/src/tools/browser/readable.ts +1 -1
  397. package/src/tools/browser/registry.ts +87 -11
  398. package/src/tools/browser/screenshot-format.ts +34 -0
  399. package/src/tools/browser/tab-protocol.ts +4 -0
  400. package/src/tools/browser/tab-supervisor.ts +392 -142
  401. package/src/tools/browser/tab-worker-entry.ts +33 -14
  402. package/src/tools/browser/tab-worker-path-resolver.ts +67 -0
  403. package/src/tools/browser/tab-worker-smoke.ts +87 -0
  404. package/src/tools/browser/tab-worker.ts +8 -6
  405. package/src/tools/browser.ts +6 -0
  406. package/src/tools/computer.ts +10 -3
  407. package/src/tools/cron.ts +30 -16
  408. package/src/tools/fetch.ts +11 -4
  409. package/src/tools/index.ts +88 -32
  410. package/src/tools/output-meta.ts +19 -7
  411. package/src/tools/path-utils.ts +42 -35
  412. package/src/tools/plan-mode-guard.ts +1 -0
  413. package/src/tools/puppeteer/14_stealth_permissions.txt +57 -0
  414. package/src/tools/puppeteer/15_stealth_webrtc.txt +60 -0
  415. package/src/tools/read.ts +226 -65
  416. package/src/tools/resource-gc.ts +125 -36
  417. package/src/tools/search-tool-bm25.ts +11 -74
  418. package/src/tools/sqlite-reader.ts +3 -2
  419. package/src/tools/subagent-render.ts +19 -8
  420. package/src/tools/subagent.ts +129 -34
  421. package/src/tools/telegram-send.ts +2 -2
  422. package/src/utils/event-bus.ts +9 -4
  423. package/src/utils/file-mentions.ts +4 -4
  424. package/src/utils/image-loading.ts +85 -34
  425. package/src/utils/image-resize.ts +16 -9
  426. package/src/utils/pasted-image-loading.ts +514 -0
  427. package/src/utils/pasted-image-path.ts +223 -98
  428. package/src/web/scrapers/html-to-markdown.ts +68 -0
  429. package/src/web/scrapers/readthedocs.ts +1 -1
  430. package/src/web/scrapers/types.ts +1 -68
  431. package/src/web/search/index.ts +3 -3
  432. package/src/web/search/providers/openai-compatible.ts +76 -23
  433. package/dist/types/append-only-mode.d.ts +0 -31
  434. package/dist/types/async/index.d.ts +0 -2
  435. package/dist/types/async/job-manager.d.ts +0 -328
  436. package/dist/types/async/support.d.ts +0 -2
  437. package/dist/types/autoresearch/dashboard.d.ts +0 -4
  438. package/dist/types/autoresearch/git.d.ts +0 -36
  439. package/dist/types/autoresearch/helpers.d.ts +0 -24
  440. package/dist/types/autoresearch/index.d.ts +0 -2
  441. package/dist/types/autoresearch/state.d.ts +0 -17
  442. package/dist/types/autoresearch/storage.d.ts +0 -142
  443. package/dist/types/autoresearch/tools/init-experiment.d.ts +0 -31
  444. package/dist/types/autoresearch/tools/log-experiment.d.ts +0 -23
  445. package/dist/types/autoresearch/tools/run-experiment.d.ts +0 -8
  446. package/dist/types/autoresearch/tools/update-notes.d.ts +0 -12
  447. package/dist/types/autoresearch/types.d.ts +0 -154
  448. package/dist/types/build-metadata.d.ts +0 -7
  449. package/dist/types/capability/context-file.d.ts +0 -17
  450. package/dist/types/capability/extension-module.d.ts +0 -15
  451. package/dist/types/capability/extension.d.ts +0 -28
  452. package/dist/types/capability/fs.d.ts +0 -20
  453. package/dist/types/capability/hook.d.ts +0 -19
  454. package/dist/types/capability/index.d.ts +0 -80
  455. package/dist/types/capability/instruction.d.ts +0 -17
  456. package/dist/types/capability/mcp.d.ts +0 -49
  457. package/dist/types/capability/prompt.d.ts +0 -15
  458. package/dist/types/capability/rule.d.ts +0 -69
  459. package/dist/types/capability/settings.d.ts +0 -15
  460. package/dist/types/capability/skill.d.ts +0 -36
  461. package/dist/types/capability/slash-command.d.ts +0 -17
  462. package/dist/types/capability/ssh.d.ts +0 -23
  463. package/dist/types/capability/system-prompt.d.ts +0 -15
  464. package/dist/types/capability/tool.d.ts +0 -19
  465. package/dist/types/capability/types.d.ts +0 -154
  466. package/dist/types/cli/agents-cli.d.ts +0 -12
  467. package/dist/types/cli/args.d.ts +0 -57
  468. package/dist/types/cli/auth-broker-cli.d.ts +0 -25
  469. package/dist/types/cli/auth-gateway-cli.d.ts +0 -18
  470. package/dist/types/cli/classify-install-target.d.ts +0 -8
  471. package/dist/types/cli/commands/init-xdg.d.ts +0 -1
  472. package/dist/types/cli/completion-cli.d.ts +0 -41
  473. package/dist/types/cli/config-cli.d.ts +0 -23
  474. package/dist/types/cli/daemon-cli.d.ts +0 -27
  475. package/dist/types/cli/fast-help.d.ts +0 -1
  476. package/dist/types/cli/file-processor.d.ts +0 -11
  477. package/dist/types/cli/fixture-report.d.ts +0 -20
  478. package/dist/types/cli/fixture-report.test.d.ts +0 -1
  479. package/dist/types/cli/grep-cli.d.ts +0 -17
  480. package/dist/types/cli/initial-message.d.ts +0 -17
  481. package/dist/types/cli/list-models.d.ts +0 -36
  482. package/dist/types/cli/local-provider-smoke.d.ts +0 -59
  483. package/dist/types/cli/malloc-env-guard.d.ts +0 -65
  484. package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
  485. package/dist/types/cli/mcp-cli.d.ts +0 -25
  486. package/dist/types/cli/migrate-cli.d.ts +0 -20
  487. package/dist/types/cli/nofile-limit.d.ts +0 -11
  488. package/dist/types/cli/notify-cli.d.ts +0 -39
  489. package/dist/types/cli/plugin-cli.d.ts +0 -34
  490. package/dist/types/cli/read-cli.d.ts +0 -4
  491. package/dist/types/cli/session-picker.d.ts +0 -4
  492. package/dist/types/cli/setup-cli.d.ts +0 -73
  493. package/dist/types/cli/shell-cli.d.ts +0 -8
  494. package/dist/types/cli/skills-cli.d.ts +0 -9
  495. package/dist/types/cli/ssh-cli.d.ts +0 -21
  496. package/dist/types/cli/stats-cli.d.ts +0 -17
  497. package/dist/types/cli/telegram-cli.d.ts +0 -13
  498. package/dist/types/cli/update-cli.d.ts +0 -108
  499. package/dist/types/cli/web-search-cli.d.ts +0 -32
  500. package/dist/types/cli/worktree-cli.d.ts +0 -26
  501. package/dist/types/cli.d.ts +0 -140
  502. package/dist/types/commands/acp.d.ts +0 -12
  503. package/dist/types/commands/agents.d.ts +0 -34
  504. package/dist/types/commands/auth-broker.d.ts +0 -54
  505. package/dist/types/commands/auth-gateway.d.ts +0 -32
  506. package/dist/types/commands/codex-native-hook.d.ts +0 -6
  507. package/dist/types/commands/commit.d.ts +0 -27
  508. package/dist/types/commands/completion.d.ts +0 -29
  509. package/dist/types/commands/config.d.ts +0 -33
  510. package/dist/types/commands/contribution-prep.d.ts +0 -18
  511. package/dist/types/commands/coordinator.d.ts +0 -19
  512. package/dist/types/commands/daemon.d.ts +0 -45
  513. package/dist/types/commands/deep-interview.d.ts +0 -54
  514. package/dist/types/commands/gc.d.ts +0 -26
  515. package/dist/types/commands/grep.d.ts +0 -42
  516. package/dist/types/commands/harness.d.ts +0 -43
  517. package/dist/types/commands/launch.d.ts +0 -131
  518. package/dist/types/commands/local-provider.d.ts +0 -34
  519. package/dist/types/commands/mcp-serve.d.ts +0 -24
  520. package/dist/types/commands/mcp.d.ts +0 -70
  521. package/dist/types/commands/migrate.d.ts +0 -33
  522. package/dist/types/commands/notify.d.ts +0 -47
  523. package/dist/types/commands/plugin.d.ts +0 -58
  524. package/dist/types/commands/ralplan.d.ts +0 -7
  525. package/dist/types/commands/read.d.ts +0 -15
  526. package/dist/types/commands/rlm.d.ts +0 -10
  527. package/dist/types/commands/session.d.ts +0 -30
  528. package/dist/types/commands/setup.d.ts +0 -105
  529. package/dist/types/commands/shell.d.ts +0 -21
  530. package/dist/types/commands/skills.d.ts +0 -26
  531. package/dist/types/commands/ssh.d.ts +0 -48
  532. package/dist/types/commands/state.d.ts +0 -7
  533. package/dist/types/commands/stats.d.ts +0 -25
  534. package/dist/types/commands/team.d.ts +0 -24
  535. package/dist/types/commands/telegram.d.ts +0 -22
  536. package/dist/types/commands/ultragoal.d.ts +0 -8
  537. package/dist/types/commands/update.d.ts +0 -20
  538. package/dist/types/commands/web-search.d.ts +0 -87
  539. package/dist/types/commands/worktree.d.ts +0 -34
  540. package/dist/types/commit/agentic/agent.d.ts +0 -31
  541. package/dist/types/commit/agentic/fallback.d.ts +0 -5
  542. package/dist/types/commit/agentic/index.d.ts +0 -2
  543. package/dist/types/commit/agentic/state.d.ts +0 -58
  544. package/dist/types/commit/agentic/tools/analyze-file.d.ts +0 -19
  545. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +0 -10
  546. package/dist/types/commit/agentic/tools/git-hunk.d.ts +0 -9
  547. package/dist/types/commit/agentic/tools/git-overview.d.ts +0 -9
  548. package/dist/types/commit/agentic/tools/index.d.ts +0 -16
  549. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +0 -28
  550. package/dist/types/commit/agentic/tools/propose-commit.d.ts +0 -36
  551. package/dist/types/commit/agentic/tools/recent-commits.d.ts +0 -7
  552. package/dist/types/commit/agentic/tools/schemas.d.ts +0 -27
  553. package/dist/types/commit/agentic/tools/split-commit.d.ts +0 -53
  554. package/dist/types/commit/agentic/topo-sort.d.ts +0 -4
  555. package/dist/types/commit/agentic/trivial.d.ts +0 -7
  556. package/dist/types/commit/agentic/validation.d.ts +0 -20
  557. package/dist/types/commit/analysis/conventional.d.ts +0 -22
  558. package/dist/types/commit/analysis/index.d.ts +0 -4
  559. package/dist/types/commit/analysis/scope.d.ts +0 -6
  560. package/dist/types/commit/analysis/summary.d.ts +0 -19
  561. package/dist/types/commit/analysis/validation.d.ts +0 -8
  562. package/dist/types/commit/changelog/detect.d.ts +0 -2
  563. package/dist/types/commit/changelog/generate.d.ts +0 -30
  564. package/dist/types/commit/changelog/index.d.ts +0 -30
  565. package/dist/types/commit/changelog/parse.d.ts +0 -2
  566. package/dist/types/commit/cli.d.ts +0 -3
  567. package/dist/types/commit/git/diff.d.ts +0 -5
  568. package/dist/types/commit/index.d.ts +0 -4
  569. package/dist/types/commit/map-reduce/index.d.ts +0 -28
  570. package/dist/types/commit/map-reduce/map-phase.d.ts +0 -17
  571. package/dist/types/commit/map-reduce/reduce-phase.d.ts +0 -13
  572. package/dist/types/commit/map-reduce/utils.d.ts +0 -2
  573. package/dist/types/commit/message.d.ts +0 -2
  574. package/dist/types/commit/model-selection.d.ts +0 -15
  575. package/dist/types/commit/pipeline.d.ts +0 -5
  576. package/dist/types/commit/shared-llm.d.ts +0 -54
  577. package/dist/types/commit/types.d.ts +0 -78
  578. package/dist/types/commit/utils/exclusions.d.ts +0 -4
  579. package/dist/types/commit/utils.d.ts +0 -20
  580. package/dist/types/config/config-file.d.ts +0 -58
  581. package/dist/types/config/file-lock-gc.d.ts +0 -5
  582. package/dist/types/config/file-lock.d.ts +0 -36
  583. package/dist/types/config/keybindings.d.ts +0 -364
  584. package/dist/types/config/model-equivalence.d.ts +0 -24
  585. package/dist/types/config/model-profile-activation.d.ts +0 -65
  586. package/dist/types/config/model-profiles.d.ts +0 -39
  587. package/dist/types/config/model-registry.d.ts +0 -473
  588. package/dist/types/config/model-resolver.d.ts +0 -217
  589. package/dist/types/config/models-config-schema.d.ts +0 -700
  590. package/dist/types/config/prompt-templates.d.ts +0 -32
  591. package/dist/types/config/resolve-config-value.d.ts +0 -17
  592. package/dist/types/config/settings-schema.d.ts +0 -4223
  593. package/dist/types/config/settings.d.ts +0 -158
  594. package/dist/types/config/skill-settings-defaults.d.ts +0 -14
  595. package/dist/types/config/telegram-autostart.d.ts +0 -14
  596. package/dist/types/config/telegram-env-bridge.d.ts +0 -18
  597. package/dist/types/config.d.ts +0 -66
  598. package/dist/types/coordinator/contract.d.ts +0 -4
  599. package/dist/types/coordinator-mcp/model-preset.d.ts +0 -45
  600. package/dist/types/coordinator-mcp/policy.d.ts +0 -27
  601. package/dist/types/coordinator-mcp/safety.d.ts +0 -26
  602. package/dist/types/coordinator-mcp/server.d.ts +0 -139
  603. package/dist/types/coordinator-mcp/session-reaper.d.ts +0 -53
  604. package/dist/types/cursor.d.ts +0 -24
  605. package/dist/types/daemon/builtin.d.ts +0 -20
  606. package/dist/types/daemon/control-types.d.ts +0 -67
  607. package/dist/types/daemon/operator-contract.d.ts +0 -47
  608. package/dist/types/daemon/runtime.d.ts +0 -25
  609. package/dist/types/dap/client.d.ts +0 -39
  610. package/dist/types/dap/config.d.ts +0 -6
  611. package/dist/types/dap/index.d.ts +0 -4
  612. package/dist/types/dap/session.d.ts +0 -108
  613. package/dist/types/dap/types.d.ts +0 -524
  614. package/dist/types/debug/crash-diagnostics.d.ts +0 -45
  615. package/dist/types/debug/index.d.ts +0 -15
  616. package/dist/types/debug/log-formatting.d.ts +0 -4
  617. package/dist/types/debug/log-viewer.d.ts +0 -68
  618. package/dist/types/debug/profiler.d.ts +0 -24
  619. package/dist/types/debug/raw-sse-buffer.d.ts +0 -44
  620. package/dist/types/debug/raw-sse.d.ts +0 -16
  621. package/dist/types/debug/report-bundle.d.ts +0 -55
  622. package/dist/types/debug/runtime-gauges.d.ts +0 -6
  623. package/dist/types/debug/system-info.d.ts +0 -26
  624. package/dist/types/deep-interview/plaintext-gate-guard.d.ts +0 -11
  625. package/dist/types/deep-interview/render-middleware.d.ts +0 -6
  626. package/dist/types/defaults/skc/extensions/grok-build/index.d.ts +0 -1
  627. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/index.d.ts +0 -1
  628. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.d.ts +0 -29
  629. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/payload/sanitize.d.ts +0 -27
  630. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/billing.d.ts +0 -8
  631. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/register.d.ts +0 -5
  632. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/stream.d.ts +0 -10
  633. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/usage.d.ts +0 -2
  634. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/base-url.d.ts +0 -2
  635. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/errors.d.ts +0 -38
  636. package/dist/types/defaults/skc-defaults.d.ts +0 -64
  637. package/dist/types/defaults/skc-grok-cli.d.ts +0 -5
  638. package/dist/types/discovery/agents-md.d.ts +0 -1
  639. package/dist/types/discovery/agents.d.ts +0 -12
  640. package/dist/types/discovery/builtin.d.ts +0 -1
  641. package/dist/types/discovery/claude-plugins.d.ts +0 -1
  642. package/dist/types/discovery/claude.d.ts +0 -1
  643. package/dist/types/discovery/cline.d.ts +0 -1
  644. package/dist/types/discovery/codex.d.ts +0 -1
  645. package/dist/types/discovery/cursor.d.ts +0 -19
  646. package/dist/types/discovery/gemini.d.ts +0 -1
  647. package/dist/types/discovery/github.d.ts +0 -1
  648. package/dist/types/discovery/helpers.d.ts +0 -271
  649. package/dist/types/discovery/index.d.ts +0 -48
  650. package/dist/types/discovery/mcp-json.d.ts +0 -1
  651. package/dist/types/discovery/opencode.d.ts +0 -1
  652. package/dist/types/discovery/plugin-dir-roots.d.ts +0 -15
  653. package/dist/types/discovery/ssh.d.ts +0 -1
  654. package/dist/types/discovery/substitute-plugin-root.d.ts +0 -1
  655. package/dist/types/discovery/vscode.d.ts +0 -1
  656. package/dist/types/discovery/windsurf.d.ts +0 -15
  657. package/dist/types/edit/apply-patch/index.d.ts +0 -35
  658. package/dist/types/edit/apply-patch/parser.d.ts +0 -34
  659. package/dist/types/edit/diff.d.ts +0 -75
  660. package/dist/types/edit/file-read-cache.d.ts +0 -25
  661. package/dist/types/edit/index.d.ts +0 -58
  662. package/dist/types/edit/modes/apply-patch.d.ts +0 -24
  663. package/dist/types/edit/modes/patch.d.ts +0 -99
  664. package/dist/types/edit/modes/replace.d.ts +0 -149
  665. package/dist/types/edit/normalize.d.ts +0 -43
  666. package/dist/types/edit/notebook.d.ts +0 -26
  667. package/dist/types/edit/read-file.d.ts +0 -8
  668. package/dist/types/edit/renderer.d.ts +0 -110
  669. package/dist/types/edit/streaming.d.ts +0 -66
  670. package/dist/types/eval/backend.d.ts +0 -40
  671. package/dist/types/eval/index.d.ts +0 -4
  672. package/dist/types/eval/js/context-manager.d.ts +0 -27
  673. package/dist/types/eval/js/executor.d.ts +0 -29
  674. package/dist/types/eval/js/index.d.ts +0 -10
  675. package/dist/types/eval/js/shared/helpers.d.ts +0 -38
  676. package/dist/types/eval/js/shared/indirect-eval.d.ts +0 -14
  677. package/dist/types/eval/js/shared/prelude.d.ts +0 -1
  678. package/dist/types/eval/js/shared/rewrite-imports.d.ts +0 -6
  679. package/dist/types/eval/js/shared/runtime.d.ts +0 -47
  680. package/dist/types/eval/js/shared/types.d.ts +0 -24
  681. package/dist/types/eval/js/tool-bridge.d.ts +0 -18
  682. package/dist/types/eval/js/worker-core.d.ts +0 -5
  683. package/dist/types/eval/js/worker-entry.d.ts +0 -1
  684. package/dist/types/eval/js/worker-protocol.d.ts +0 -77
  685. package/dist/types/eval/py/display.d.ts +0 -25
  686. package/dist/types/eval/py/executor.d.ts +0 -88
  687. package/dist/types/eval/py/index.d.ts +0 -10
  688. package/dist/types/eval/py/kernel.d.ts +0 -65
  689. package/dist/types/eval/py/prelude.d.ts +0 -1
  690. package/dist/types/eval/py/runtime.d.ts +0 -29
  691. package/dist/types/eval/py/tool-bridge.d.ts +0 -20
  692. package/dist/types/eval/types.d.ts +0 -52
  693. package/dist/types/exa/factory.d.ts +0 -13
  694. package/dist/types/exa/index.d.ts +0 -20
  695. package/dist/types/exa/mcp-client.d.ts +0 -45
  696. package/dist/types/exa/render.d.ts +0 -19
  697. package/dist/types/exa/researcher.d.ts +0 -9
  698. package/dist/types/exa/search.d.ts +0 -9
  699. package/dist/types/exa/types.d.ts +0 -155
  700. package/dist/types/exa/websets.d.ts +0 -9
  701. package/dist/types/exec/bash-executor.d.ts +0 -64
  702. package/dist/types/exec/exec.d.ts +0 -25
  703. package/dist/types/exec/idle-timeout-watchdog.d.ts +0 -18
  704. package/dist/types/exec/non-interactive-env.d.ts +0 -1
  705. package/dist/types/export/custom-share.d.ts +0 -20
  706. package/dist/types/export/html/index.d.ts +0 -10
  707. package/dist/types/export/html/template.generated.d.ts +0 -1
  708. package/dist/types/export/html/template.macro.d.ts +0 -5
  709. package/dist/types/export/ttsr.d.ts +0 -55
  710. package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +0 -9
  711. package/dist/types/extensibility/custom-commands/index.d.ts +0 -2
  712. package/dist/types/extensibility/custom-commands/loader.d.ts +0 -29
  713. package/dist/types/extensibility/custom-commands/types.d.ts +0 -106
  714. package/dist/types/extensibility/custom-tools/index.d.ts +0 -6
  715. package/dist/types/extensibility/custom-tools/loader.d.ts +0 -69
  716. package/dist/types/extensibility/custom-tools/types.d.ts +0 -229
  717. package/dist/types/extensibility/custom-tools/wrapper.d.ts +0 -24
  718. package/dist/types/extensibility/extensions/compact-handler.d.ts +0 -26
  719. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +0 -29
  720. package/dist/types/extensibility/extensions/index.d.ts +0 -9
  721. package/dist/types/extensibility/extensions/loader.d.ts +0 -43
  722. package/dist/types/extensibility/extensions/prefix-command-bridge.d.ts +0 -35
  723. package/dist/types/extensibility/extensions/runner.d.ts +0 -135
  724. package/dist/types/extensibility/extensions/types.d.ts +0 -920
  725. package/dist/types/extensibility/extensions/wrapper.d.ts +0 -55
  726. package/dist/types/extensibility/hooks/index.d.ts +0 -5
  727. package/dist/types/extensibility/hooks/loader.d.ts +0 -89
  728. package/dist/types/extensibility/hooks/runner.d.ts +0 -126
  729. package/dist/types/extensibility/hooks/tool-wrapper.d.ts +0 -25
  730. package/dist/types/extensibility/hooks/types.d.ts +0 -431
  731. package/dist/types/extensibility/plugins/doctor.d.ts +0 -3
  732. package/dist/types/extensibility/plugins/git-url.d.ts +0 -34
  733. package/dist/types/extensibility/plugins/index.d.ts +0 -8
  734. package/dist/types/extensibility/plugins/installer.d.ts +0 -5
  735. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +0 -2
  736. package/dist/types/extensibility/plugins/loader.d.ts +0 -31
  737. package/dist/types/extensibility/plugins/manager.d.ts +0 -65
  738. package/dist/types/extensibility/plugins/marketplace/cache.d.ts +0 -41
  739. package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +0 -48
  740. package/dist/types/extensibility/plugins/marketplace/index.d.ts +0 -6
  741. package/dist/types/extensibility/plugins/marketplace/manager.d.ts +0 -57
  742. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +0 -34
  743. package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +0 -28
  744. package/dist/types/extensibility/plugins/marketplace/types.d.ts +0 -130
  745. package/dist/types/extensibility/plugins/parser.d.ts +0 -52
  746. package/dist/types/extensibility/plugins/security-scanner.d.ts +0 -31
  747. package/dist/types/extensibility/plugins/types.d.ts +0 -149
  748. package/dist/types/extensibility/runtime-skill-discovery.d.ts +0 -20
  749. package/dist/types/extensibility/shared-events.d.ts +0 -281
  750. package/dist/types/extensibility/skc-plugins/activation.d.ts +0 -14
  751. package/dist/types/extensibility/skc-plugins/compiler.d.ts +0 -19
  752. package/dist/types/extensibility/skc-plugins/constrained-hooks.d.ts +0 -29
  753. package/dist/types/extensibility/skc-plugins/index.d.ts +0 -18
  754. package/dist/types/extensibility/skc-plugins/injection.d.ts +0 -40
  755. package/dist/types/extensibility/skc-plugins/installer.d.ts +0 -13
  756. package/dist/types/extensibility/skc-plugins/loader.d.ts +0 -3
  757. package/dist/types/extensibility/skc-plugins/mcp-policy.d.ts +0 -26
  758. package/dist/types/extensibility/skc-plugins/observability.d.ts +0 -27
  759. package/dist/types/extensibility/skc-plugins/paths.d.ts +0 -8
  760. package/dist/types/extensibility/skc-plugins/prompt-appendix.d.ts +0 -16
  761. package/dist/types/extensibility/skc-plugins/registry.d.ts +0 -32
  762. package/dist/types/extensibility/skc-plugins/runtime-adapters.d.ts +0 -64
  763. package/dist/types/extensibility/skc-plugins/schema.d.ts +0 -3
  764. package/dist/types/extensibility/skc-plugins/session-validation.d.ts +0 -42
  765. package/dist/types/extensibility/skc-plugins/state.d.ts +0 -9
  766. package/dist/types/extensibility/skc-plugins/tools.d.ts +0 -8
  767. package/dist/types/extensibility/skc-plugins/types.d.ts +0 -220
  768. package/dist/types/extensibility/skc-plugins/validation.d.ts +0 -11
  769. package/dist/types/extensibility/skills.d.ts +0 -82
  770. package/dist/types/extensibility/slash-commands.d.ts +0 -48
  771. package/dist/types/extensibility/tool-proxy.d.ts +0 -4
  772. package/dist/types/extensibility/typebox.d.ts +0 -155
  773. package/dist/types/extensibility/utils.d.ts +0 -12
  774. package/dist/types/goals/index.d.ts +0 -3
  775. package/dist/types/goals/runtime.d.ts +0 -63
  776. package/dist/types/goals/state.d.ts +0 -32
  777. package/dist/types/goals/tools/goal-tool.d.ts +0 -62
  778. package/dist/types/harness-control-plane/classifier.d.ts +0 -13
  779. package/dist/types/harness-control-plane/control-endpoint.d.ts +0 -31
  780. package/dist/types/harness-control-plane/finalize.d.ts +0 -60
  781. package/dist/types/harness-control-plane/gc-adapter.d.ts +0 -3
  782. package/dist/types/harness-control-plane/operate.d.ts +0 -35
  783. package/dist/types/harness-control-plane/owner.d.ts +0 -53
  784. package/dist/types/harness-control-plane/phase-rollup.d.ts +0 -23
  785. package/dist/types/harness-control-plane/preserve.d.ts +0 -19
  786. package/dist/types/harness-control-plane/receipt-ingest.d.ts +0 -19
  787. package/dist/types/harness-control-plane/receipt-spool.d.ts +0 -19
  788. package/dist/types/harness-control-plane/receipts.d.ts +0 -149
  789. package/dist/types/harness-control-plane/rpc-adapter.d.ts +0 -69
  790. package/dist/types/harness-control-plane/seams.d.ts +0 -21
  791. package/dist/types/harness-control-plane/session-lease.d.ts +0 -65
  792. package/dist/types/harness-control-plane/state-machine.d.ts +0 -24
  793. package/dist/types/harness-control-plane/storage.d.ts +0 -81
  794. package/dist/types/harness-control-plane/types.d.ts +0 -187
  795. package/dist/types/hashline/anchors.d.ts +0 -20
  796. package/dist/types/hashline/apply.d.ts +0 -14
  797. package/dist/types/hashline/constants.d.ts +0 -19
  798. package/dist/types/hashline/diff-preview.d.ts +0 -2
  799. package/dist/types/hashline/diff.d.ts +0 -17
  800. package/dist/types/hashline/execute.d.ts +0 -4
  801. package/dist/types/hashline/hash.d.ts +0 -123
  802. package/dist/types/hashline/index.d.ts +0 -13
  803. package/dist/types/hashline/input.d.ts +0 -11
  804. package/dist/types/hashline/parser.d.ts +0 -7
  805. package/dist/types/hashline/prefixes.d.ts +0 -7
  806. package/dist/types/hashline/recovery.d.ts +0 -27
  807. package/dist/types/hashline/stream.d.ts +0 -2
  808. package/dist/types/hashline/types.d.ts +0 -77
  809. package/dist/types/hindsight/backend.d.ts +0 -13
  810. package/dist/types/hindsight/bank.d.ts +0 -54
  811. package/dist/types/hindsight/client.d.ts +0 -224
  812. package/dist/types/hindsight/config.d.ts +0 -51
  813. package/dist/types/hindsight/content.d.ts +0 -70
  814. package/dist/types/hindsight/index.d.ts +0 -8
  815. package/dist/types/hindsight/mental-models.d.ts +0 -125
  816. package/dist/types/hindsight/state.d.ts +0 -99
  817. package/dist/types/hindsight/transcript.d.ts +0 -28
  818. package/dist/types/hooks/codex-native-hooks-config.d.ts +0 -29
  819. package/dist/types/hooks/native-skill-hook.d.ts +0 -28
  820. package/dist/types/hooks/skill-keywords.d.ts +0 -18
  821. package/dist/types/hooks/skill-state.d.ts +0 -93
  822. package/dist/types/i18n/index.d.ts +0 -38
  823. package/dist/types/i18n/messages/de.d.ts +0 -2
  824. package/dist/types/i18n/messages/de.messages.d.ts +0 -1
  825. package/dist/types/i18n/messages/de.settings.d.ts +0 -1
  826. package/dist/types/i18n/messages/en.d.ts +0 -81
  827. package/dist/types/i18n/messages/es.d.ts +0 -2
  828. package/dist/types/i18n/messages/es.messages.d.ts +0 -1
  829. package/dist/types/i18n/messages/es.settings.d.ts +0 -1
  830. package/dist/types/i18n/messages/fr.d.ts +0 -2
  831. package/dist/types/i18n/messages/fr.messages.d.ts +0 -1
  832. package/dist/types/i18n/messages/fr.settings.d.ts +0 -1
  833. package/dist/types/i18n/messages/ja.d.ts +0 -2
  834. package/dist/types/i18n/messages/ja.messages.d.ts +0 -1
  835. package/dist/types/i18n/messages/ja.settings.d.ts +0 -1
  836. package/dist/types/i18n/messages/ko.d.ts +0 -2
  837. package/dist/types/i18n/messages/ko.messages.d.ts +0 -1
  838. package/dist/types/i18n/messages/ko.settings.d.ts +0 -1
  839. package/dist/types/i18n/messages/zh.d.ts +0 -2
  840. package/dist/types/i18n/messages/zh.messages.d.ts +0 -1
  841. package/dist/types/i18n/messages/zh.settings.d.ts +0 -1
  842. package/dist/types/index.d.ts +0 -33
  843. package/dist/types/internal-urls/agent-protocol.d.ts +0 -12
  844. package/dist/types/internal-urls/artifact-protocol.d.ts +0 -6
  845. package/dist/types/internal-urls/docs-index.generated.d.ts +0 -2
  846. package/dist/types/internal-urls/index.d.ts +0 -20
  847. package/dist/types/internal-urls/issue-pr-protocol.d.ts +0 -17
  848. package/dist/types/internal-urls/json-query.d.ts +0 -30
  849. package/dist/types/internal-urls/local-protocol.d.ts +0 -43
  850. package/dist/types/internal-urls/mcp-protocol.d.ts +0 -12
  851. package/dist/types/internal-urls/memory-protocol.d.ts +0 -23
  852. package/dist/types/internal-urls/parse.d.ts +0 -19
  853. package/dist/types/internal-urls/registry-helpers.d.ts +0 -11
  854. package/dist/types/internal-urls/router.d.ts +0 -14
  855. package/dist/types/internal-urls/rule-protocol.d.ts +0 -6
  856. package/dist/types/internal-urls/skc-protocol.d.ts +0 -12
  857. package/dist/types/internal-urls/skill-protocol.d.ts +0 -13
  858. package/dist/types/internal-urls/types.d.ts +0 -109
  859. package/dist/types/lsp/client.d.ts +0 -66
  860. package/dist/types/lsp/clients/biome-client.d.ts +0 -16
  861. package/dist/types/lsp/clients/index.d.ts +0 -19
  862. package/dist/types/lsp/clients/lsp-linter-client.d.ts +0 -16
  863. package/dist/types/lsp/clients/swiftlint-client.d.ts +0 -20
  864. package/dist/types/lsp/config.d.ts +0 -65
  865. package/dist/types/lsp/edits.d.ts +0 -23
  866. package/dist/types/lsp/index.d.ts +0 -130
  867. package/dist/types/lsp/lspmux.d.ts +0 -58
  868. package/dist/types/lsp/render.d.ts +0 -32
  869. package/dist/types/lsp/startup-events.d.ts +0 -12
  870. package/dist/types/lsp/types.d.ts +0 -306
  871. package/dist/types/lsp/utils.d.ts +0 -108
  872. package/dist/types/main.d.ts +0 -139
  873. package/dist/types/memories/index.d.ts +0 -28
  874. package/dist/types/memories/storage.d.ts +0 -110
  875. package/dist/types/memory-backend/index.d.ts +0 -4
  876. package/dist/types/memory-backend/local-backend.d.ts +0 -9
  877. package/dist/types/memory-backend/off-backend.d.ts +0 -7
  878. package/dist/types/memory-backend/resolve.d.ts +0 -15
  879. package/dist/types/memory-backend/types.d.ts +0 -61
  880. package/dist/types/migrate/action-planner.d.ts +0 -11
  881. package/dist/types/migrate/adapters/claude-code.d.ts +0 -2
  882. package/dist/types/migrate/adapters/codex.d.ts +0 -5
  883. package/dist/types/migrate/adapters/index.d.ts +0 -45
  884. package/dist/types/migrate/adapters/opencode.d.ts +0 -2
  885. package/dist/types/migrate/executor.d.ts +0 -2
  886. package/dist/types/migrate/mcp-mapper.d.ts +0 -20
  887. package/dist/types/migrate/report.d.ts +0 -18
  888. package/dist/types/migrate/skill-normalizer.d.ts +0 -27
  889. package/dist/types/migrate/types.d.ts +0 -126
  890. package/dist/types/modes/acp/acp-agent.d.ts +0 -78
  891. package/dist/types/modes/acp/acp-client-bridge.d.ts +0 -9
  892. package/dist/types/modes/acp/acp-event-mapper.d.ts +0 -36
  893. package/dist/types/modes/acp/acp-mode.d.ts +0 -17
  894. package/dist/types/modes/acp/index.d.ts +0 -2
  895. package/dist/types/modes/acp/terminal-auth.d.ts +0 -6
  896. package/dist/types/modes/bridge/auth.d.ts +0 -12
  897. package/dist/types/modes/bridge/bridge-client-bridge.d.ts +0 -9
  898. package/dist/types/modes/bridge/bridge-mode.d.ts +0 -47
  899. package/dist/types/modes/bridge/bridge-ui-context.d.ts +0 -88
  900. package/dist/types/modes/bridge/event-stream.d.ts +0 -8
  901. package/dist/types/modes/components/agent-dashboard.d.ts +0 -21
  902. package/dist/types/modes/components/assistant-message.d.ts +0 -20
  903. package/dist/types/modes/components/bash-execution.d.ts +0 -29
  904. package/dist/types/modes/components/bordered-loader.d.ts +0 -11
  905. package/dist/types/modes/components/branch-summary-message.d.ts +0 -13
  906. package/dist/types/modes/components/btw-panel.d.ts +0 -16
  907. package/dist/types/modes/components/compaction-summary-message.d.ts +0 -13
  908. package/dist/types/modes/components/countdown-timer.d.ts +0 -14
  909. package/dist/types/modes/components/custom-editor.d.ts +0 -69
  910. package/dist/types/modes/components/custom-message.d.ts +0 -15
  911. package/dist/types/modes/components/custom-model-preset-wizard.d.ts +0 -12
  912. package/dist/types/modes/components/custom-provider-wizard.d.ts +0 -10
  913. package/dist/types/modes/components/diff.d.ts +0 -11
  914. package/dist/types/modes/components/dynamic-border.d.ts +0 -14
  915. package/dist/types/modes/components/eval-execution.d.ts +0 -23
  916. package/dist/types/modes/components/execution-shared.d.ts +0 -46
  917. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +0 -26
  918. package/dist/types/modes/components/extensions/extension-list.d.ts +0 -39
  919. package/dist/types/modes/components/extensions/index.d.ts +0 -8
  920. package/dist/types/modes/components/extensions/inspector-panel.d.ts +0 -8
  921. package/dist/types/modes/components/extensions/state-manager.d.ts +0 -50
  922. package/dist/types/modes/components/extensions/types.d.ts +0 -151
  923. package/dist/types/modes/components/footer.d.ts +0 -30
  924. package/dist/types/modes/components/history-search.d.ts +0 -7
  925. package/dist/types/modes/components/hook-editor.d.ts +0 -18
  926. package/dist/types/modes/components/hook-input.d.ts +0 -15
  927. package/dist/types/modes/components/hook-message.d.ts +0 -15
  928. package/dist/types/modes/components/hook-selector.d.ts +0 -59
  929. package/dist/types/modes/components/index.d.ts +0 -35
  930. package/dist/types/modes/components/irc-sidebar.d.ts +0 -32
  931. package/dist/types/modes/components/jobs-overlay-model.d.ts +0 -31
  932. package/dist/types/modes/components/jobs-overlay.d.ts +0 -30
  933. package/dist/types/modes/components/keybinding-hints.d.ts +0 -40
  934. package/dist/types/modes/components/login-dialog.d.ts +0 -32
  935. package/dist/types/modes/components/message-frame.d.ts +0 -42
  936. package/dist/types/modes/components/model-selector.d.ts +0 -60
  937. package/dist/types/modes/components/oauth-selector.d.ts +0 -17
  938. package/dist/types/modes/components/pet-selector.d.ts +0 -11
  939. package/dist/types/modes/components/plugin-selector.d.ts +0 -26
  940. package/dist/types/modes/components/plugin-settings.d.ts +0 -66
  941. package/dist/types/modes/components/provider-onboarding-selector.d.ts +0 -7
  942. package/dist/types/modes/components/queue-mode-selector.d.ts +0 -9
  943. package/dist/types/modes/components/queued-message-selector.d.ts +0 -12
  944. package/dist/types/modes/components/read-tool-group.d.ts +0 -30
  945. package/dist/types/modes/components/runtime-mcp-add-wizard.d.ts +0 -26
  946. package/dist/types/modes/components/sayknow-pet-widget.d.ts +0 -59
  947. package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
  948. package/dist/types/modes/components/session-selector.d.ts +0 -43
  949. package/dist/types/modes/components/settings-defs.d.ts +0 -50
  950. package/dist/types/modes/components/settings-selector.d.ts +0 -64
  951. package/dist/types/modes/components/show-images-selector.d.ts +0 -9
  952. package/dist/types/modes/components/skill-hud/render.d.ts +0 -2
  953. package/dist/types/modes/components/skill-message.d.ts +0 -10
  954. package/dist/types/modes/components/status-line/context-thresholds.d.ts +0 -4
  955. package/dist/types/modes/components/status-line/git-utils.d.ts +0 -28
  956. package/dist/types/modes/components/status-line/index.d.ts +0 -4
  957. package/dist/types/modes/components/status-line/presets.d.ts +0 -3
  958. package/dist/types/modes/components/status-line/segments.d.ts +0 -5
  959. package/dist/types/modes/components/status-line/separators.d.ts +0 -3
  960. package/dist/types/modes/components/status-line/token-rate.d.ts +0 -10
  961. package/dist/types/modes/components/status-line/types.d.ts +0 -83
  962. package/dist/types/modes/components/status-line.d.ts +0 -94
  963. package/dist/types/modes/components/theme-selector.d.ts +0 -10
  964. package/dist/types/modes/components/thinking-selector.d.ts +0 -15
  965. package/dist/types/modes/components/todo-reminder.d.ts +0 -13
  966. package/dist/types/modes/components/tool-execution.d.ts +0 -55
  967. package/dist/types/modes/components/tree-selector.d.ts +0 -31
  968. package/dist/types/modes/components/ttsr-notification.d.ts +0 -13
  969. package/dist/types/modes/components/two-column-body.d.ts +0 -9
  970. package/dist/types/modes/components/user-message-selector.d.ts +0 -28
  971. package/dist/types/modes/components/user-message.d.ts +0 -8
  972. package/dist/types/modes/components/visual-truncate.d.ts +0 -19
  973. package/dist/types/modes/components/welcome.d.ts +0 -46
  974. package/dist/types/modes/controllers/btw-controller.d.ts +0 -10
  975. package/dist/types/modes/controllers/command-controller-shared.d.ts +0 -47
  976. package/dist/types/modes/controllers/command-controller.d.ts +0 -40
  977. package/dist/types/modes/controllers/event-controller.d.ts +0 -21
  978. package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -80
  979. package/dist/types/modes/controllers/input-controller.d.ts +0 -42
  980. package/dist/types/modes/controllers/runtime-mcp-command-controller.d.ts +0 -10
  981. package/dist/types/modes/controllers/selector-controller.d.ts +0 -68
  982. package/dist/types/modes/controllers/ssh-command-controller.d.ts +0 -10
  983. package/dist/types/modes/controllers/todo-command-controller.d.ts +0 -7
  984. package/dist/types/modes/emoji-autocomplete.d.ts +0 -16
  985. package/dist/types/modes/index.d.ts +0 -10
  986. package/dist/types/modes/interactive-mode.d.ts +0 -297
  987. package/dist/types/modes/irc-observation-ledger.d.ts +0 -22
  988. package/dist/types/modes/jobs-observer.d.ts +0 -57
  989. package/dist/types/modes/oauth-manual-input.d.ts +0 -8
  990. package/dist/types/modes/print-mode.d.ts +0 -44
  991. package/dist/types/modes/prompt-action-autocomplete.d.ts +0 -50
  992. package/dist/types/modes/rpc/host-tools.d.ts +0 -1
  993. package/dist/types/modes/rpc/host-uris.d.ts +0 -1
  994. package/dist/types/modes/rpc/rpc-client.d.ts +0 -299
  995. package/dist/types/modes/rpc/rpc-mode.d.ts +0 -86
  996. package/dist/types/modes/rpc/rpc-socket-security.d.ts +0 -10
  997. package/dist/types/modes/rpc/rpc-types.d.ts +0 -810
  998. package/dist/types/modes/runtime-init.d.ts +0 -21
  999. package/dist/types/modes/session-observer-registry.d.ts +0 -26
  1000. package/dist/types/modes/shared/agent-wire/approval-gate.d.ts +0 -57
  1001. package/dist/types/modes/shared/agent-wire/command-contract.d.ts +0 -18
  1002. package/dist/types/modes/shared/agent-wire/command-dispatch.d.ts +0 -37
  1003. package/dist/types/modes/shared/agent-wire/command-validation.d.ts +0 -2
  1004. package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +0 -102
  1005. package/dist/types/modes/shared/agent-wire/event-contract.d.ts +0 -103
  1006. package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +0 -60
  1007. package/dist/types/modes/shared/agent-wire/event-observation.d.ts +0 -37
  1008. package/dist/types/modes/shared/agent-wire/handshake.d.ts +0 -56
  1009. package/dist/types/modes/shared/agent-wire/host-tool-bridge.d.ts +0 -16
  1010. package/dist/types/modes/shared/agent-wire/host-uri-bridge.d.ts +0 -17
  1011. package/dist/types/modes/shared/agent-wire/protocol.d.ts +0 -25
  1012. package/dist/types/modes/shared/agent-wire/responses.d.ts +0 -4
  1013. package/dist/types/modes/shared/agent-wire/scopes.d.ts +0 -18
  1014. package/dist/types/modes/shared/agent-wire/session-registry.d.ts +0 -25
  1015. package/dist/types/modes/shared/agent-wire/ui-request-broker.d.ts +0 -42
  1016. package/dist/types/modes/shared/agent-wire/ui-result.d.ts +0 -27
  1017. package/dist/types/modes/shared/agent-wire/unattended-action-policy.d.ts +0 -29
  1018. package/dist/types/modes/shared/agent-wire/unattended-audit.d.ts +0 -68
  1019. package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +0 -166
  1020. package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +0 -127
  1021. package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +0 -154
  1022. package/dist/types/modes/shared/agent-wire/workflow-gate-schema.d.ts +0 -39
  1023. package/dist/types/modes/shared.d.ts +0 -15
  1024. package/dist/types/modes/slash-command-visibility.d.ts +0 -1
  1025. package/dist/types/modes/theme/defaults/index.d.ts +0 -652
  1026. package/dist/types/modes/theme/mermaid-cache.d.ts +0 -9
  1027. package/dist/types/modes/theme/shimmer.d.ts +0 -38
  1028. package/dist/types/modes/theme/theme.d.ts +0 -275
  1029. package/dist/types/modes/tmux-scroll.d.ts +0 -18
  1030. package/dist/types/modes/types.d.ts +0 -318
  1031. package/dist/types/modes/utils/abort-message.d.ts +0 -4
  1032. package/dist/types/modes/utils/context-usage.d.ts +0 -36
  1033. package/dist/types/modes/utils/hotkeys-markdown.d.ts +0 -5
  1034. package/dist/types/modes/utils/injected-user-submission.d.ts +0 -52
  1035. package/dist/types/modes/utils/irc-message.d.ts +0 -38
  1036. package/dist/types/modes/utils/keybinding-matchers.d.ts +0 -10
  1037. package/dist/types/modes/utils/terminal-bell.d.ts +0 -3
  1038. package/dist/types/modes/utils/tools-markdown.d.ts +0 -5
  1039. package/dist/types/modes/utils/ui-helpers.d.ts +0 -75
  1040. package/dist/types/notifications/attachment-registry.d.ts +0 -17
  1041. package/dist/types/notifications/chat-adapters.d.ts +0 -9
  1042. package/dist/types/notifications/config-commands.d.ts +0 -64
  1043. package/dist/types/notifications/config.d.ts +0 -132
  1044. package/dist/types/notifications/daemon-paths.d.ts +0 -17
  1045. package/dist/types/notifications/engine.d.ts +0 -59
  1046. package/dist/types/notifications/helpers.d.ts +0 -55
  1047. package/dist/types/notifications/html-format.d.ts +0 -75
  1048. package/dist/types/notifications/index.d.ts +0 -219
  1049. package/dist/types/notifications/lifecycle-commands.d.ts +0 -69
  1050. package/dist/types/notifications/lifecycle-control-runtime.d.ts +0 -107
  1051. package/dist/types/notifications/lifecycle-orchestrator.d.ts +0 -144
  1052. package/dist/types/notifications/managed-daemon.d.ts +0 -48
  1053. package/dist/types/notifications/notification-service.d.ts +0 -144
  1054. package/dist/types/notifications/operator-runtime.d.ts +0 -52
  1055. package/dist/types/notifications/rate-limit-pool.d.ts +0 -113
  1056. package/dist/types/notifications/recent-activity.d.ts +0 -39
  1057. package/dist/types/notifications/reply-sent-store.d.ts +0 -53
  1058. package/dist/types/notifications/rich-draft.d.ts +0 -68
  1059. package/dist/types/notifications/rich-render.d.ts +0 -90
  1060. package/dist/types/notifications/telegram-cli.d.ts +0 -19
  1061. package/dist/types/notifications/telegram-daemon-cli.d.ts +0 -28
  1062. package/dist/types/notifications/telegram-daemon-control.d.ts +0 -70
  1063. package/dist/types/notifications/telegram-daemon.d.ts +0 -558
  1064. package/dist/types/notifications/telegram-reference.d.ts +0 -136
  1065. package/dist/types/notifications/threaded-inbound.d.ts +0 -77
  1066. package/dist/types/notifications/threaded-render.d.ts +0 -88
  1067. package/dist/types/notifications/topic-registry.d.ts +0 -89
  1068. package/dist/types/plan-mode/approved-plan.d.ts +0 -49
  1069. package/dist/types/plan-mode/state.d.ts +0 -6
  1070. package/dist/types/registry/agent-registry.d.ts +0 -64
  1071. package/dist/types/reminders/star-reminder.d.ts +0 -115
  1072. package/dist/types/research-plan/index.d.ts +0 -1
  1073. package/dist/types/research-plan/ledger.d.ts +0 -33
  1074. package/dist/types/rlm/artifacts.d.ts +0 -9
  1075. package/dist/types/rlm/complete-research-tool.d.ts +0 -35
  1076. package/dist/types/rlm/data-context.d.ts +0 -6
  1077. package/dist/types/rlm/index.d.ts +0 -47
  1078. package/dist/types/rlm/notebook.d.ts +0 -12
  1079. package/dist/types/rlm/preset.d.ts +0 -23
  1080. package/dist/types/rlm/python-tool.d.ts +0 -16
  1081. package/dist/types/rlm/report.d.ts +0 -14
  1082. package/dist/types/rlm/types.d.ts +0 -37
  1083. package/dist/types/runtime/process-lifecycle.d.ts +0 -108
  1084. package/dist/types/runtime-api-key.d.ts +0 -7
  1085. package/dist/types/runtime-credential-selector.d.ts +0 -7
  1086. package/dist/types/runtime-mcp/client.d.ts +0 -74
  1087. package/dist/types/runtime-mcp/config-writer.d.ts +0 -89
  1088. package/dist/types/runtime-mcp/config.d.ts +0 -77
  1089. package/dist/types/runtime-mcp/discoverable-tool-metadata.d.ts +0 -7
  1090. package/dist/types/runtime-mcp/index.d.ts +0 -18
  1091. package/dist/types/runtime-mcp/json-rpc.d.ts +0 -22
  1092. package/dist/types/runtime-mcp/loader.d.ts +0 -45
  1093. package/dist/types/runtime-mcp/manager.d.ts +0 -195
  1094. package/dist/types/runtime-mcp/oauth-discovery.d.ts +0 -40
  1095. package/dist/types/runtime-mcp/oauth-flow.d.ts +0 -59
  1096. package/dist/types/runtime-mcp/render.d.ts +0 -25
  1097. package/dist/types/runtime-mcp/smithery-auth.d.ts +0 -16
  1098. package/dist/types/runtime-mcp/smithery-connect.d.ts +0 -38
  1099. package/dist/types/runtime-mcp/smithery-registry.d.ts +0 -51
  1100. package/dist/types/runtime-mcp/tool-bridge.d.ts +0 -86
  1101. package/dist/types/runtime-mcp/tool-cache.d.ts +0 -8
  1102. package/dist/types/runtime-mcp/transports/http.d.ts +0 -36
  1103. package/dist/types/runtime-mcp/transports/index.d.ts +0 -5
  1104. package/dist/types/runtime-mcp/transports/stdio.d.ts +0 -29
  1105. package/dist/types/runtime-mcp/types.d.ts +0 -349
  1106. package/dist/types/sdk.d.ts +0 -256
  1107. package/dist/types/secrets/index.d.ts +0 -9
  1108. package/dist/types/secrets/obfuscator.d.ts +0 -23
  1109. package/dist/types/secrets/regex.d.ts +0 -2
  1110. package/dist/types/session/agent-session.d.ts +0 -1238
  1111. package/dist/types/session/agent-storage.d.ts +0 -101
  1112. package/dist/types/session/artifacts.d.ts +0 -64
  1113. package/dist/types/session/auth-broker-config.d.ts +0 -13
  1114. package/dist/types/session/auth-storage.d.ts +0 -6
  1115. package/dist/types/session/blob-store.d.ts +0 -160
  1116. package/dist/types/session/cache-economics.d.ts +0 -79
  1117. package/dist/types/session/client-bridge.d.ts +0 -88
  1118. package/dist/types/session/context-estimation.d.ts +0 -31
  1119. package/dist/types/session/contribution-prep.d.ts +0 -47
  1120. package/dist/types/session/file-mention-pruning.d.ts +0 -8
  1121. package/dist/types/session/history-storage.d.ts +0 -16
  1122. package/dist/types/session/messages.d.ts +0 -169
  1123. package/dist/types/session/provider-safety-stop.d.ts +0 -5
  1124. package/dist/types/session/session-dump-format.d.ts +0 -22
  1125. package/dist/types/session/session-manager.d.ts +0 -781
  1126. package/dist/types/session/session-storage.d.ts +0 -230
  1127. package/dist/types/session/streaming-output.d.ts +0 -209
  1128. package/dist/types/session/tool-choice-queue.d.ts +0 -84
  1129. package/dist/types/session/yield-queue.d.ts +0 -24
  1130. package/dist/types/setup/credential-auto-import.d.ts +0 -63
  1131. package/dist/types/setup/credential-import.d.ts +0 -82
  1132. package/dist/types/setup/hermes-setup.d.ts +0 -78
  1133. package/dist/types/setup/host-plugin-setup.d.ts +0 -39
  1134. package/dist/types/setup/model-onboarding-guidance.d.ts +0 -9
  1135. package/dist/types/setup/provider-onboarding.d.ts +0 -52
  1136. package/dist/types/skc-runtime/cli-write-receipt.d.ts +0 -24
  1137. package/dist/types/skc-runtime/deep-interview-ambiguity.d.ts +0 -39
  1138. package/dist/types/skc-runtime/deep-interview-recorder.d.ts +0 -114
  1139. package/dist/types/skc-runtime/deep-interview-runtime.d.ts +0 -36
  1140. package/dist/types/skc-runtime/deep-interview-state.d.ts +0 -127
  1141. package/dist/types/skc-runtime/gc-render.d.ts +0 -6
  1142. package/dist/types/skc-runtime/gc-runtime.d.ts +0 -134
  1143. package/dist/types/skc-runtime/goal-mode-request.d.ts +0 -53
  1144. package/dist/types/skc-runtime/launch-tmux.d.ts +0 -78
  1145. package/dist/types/skc-runtime/launch-worktree.d.ts +0 -46
  1146. package/dist/types/skc-runtime/ledger-event-renderer.d.ts +0 -68
  1147. package/dist/types/skc-runtime/psmux-detect.d.ts +0 -78
  1148. package/dist/types/skc-runtime/ralplan-runtime.d.ts +0 -26
  1149. package/dist/types/skc-runtime/restricted-role-agent-bash.d.ts +0 -3
  1150. package/dist/types/skc-runtime/session-layout.d.ts +0 -59
  1151. package/dist/types/skc-runtime/session-resolution.d.ts +0 -47
  1152. package/dist/types/skc-runtime/session-state-sidecar.d.ts +0 -70
  1153. package/dist/types/skc-runtime/state-graph.d.ts +0 -4
  1154. package/dist/types/skc-runtime/state-migrations.d.ts +0 -33
  1155. package/dist/types/skc-runtime/state-renderer.d.ts +0 -70
  1156. package/dist/types/skc-runtime/state-runtime.d.ts +0 -38
  1157. package/dist/types/skc-runtime/state-schema.d.ts +0 -319
  1158. package/dist/types/skc-runtime/state-validation.d.ts +0 -6
  1159. package/dist/types/skc-runtime/state-writer.d.ts +0 -244
  1160. package/dist/types/skc-runtime/team-gc.d.ts +0 -7
  1161. package/dist/types/skc-runtime/team-runtime.d.ts +0 -355
  1162. package/dist/types/skc-runtime/tmux-common.d.ts +0 -111
  1163. package/dist/types/skc-runtime/tmux-gc.d.ts +0 -7
  1164. package/dist/types/skc-runtime/tmux-owner-isolation-cli.d.ts +0 -5
  1165. package/dist/types/skc-runtime/tmux-owner-isolation.d.ts +0 -309
  1166. package/dist/types/skc-runtime/tmux-sessions.d.ts +0 -94
  1167. package/dist/types/skc-runtime/ultragoal-guard.d.ts +0 -93
  1168. package/dist/types/skc-runtime/ultragoal-receipt-freshness.d.ts +0 -42
  1169. package/dist/types/skc-runtime/ultragoal-runtime.d.ts +0 -410
  1170. package/dist/types/skc-runtime/workflow-command-ref.d.ts +0 -43
  1171. package/dist/types/skc-runtime/workflow-manifest.d.ts +0 -54
  1172. package/dist/types/skill-state/active-state.d.ts +0 -126
  1173. package/dist/types/skill-state/canonical-skills.d.ts +0 -3
  1174. package/dist/types/skill-state/deep-interview-mutation-guard.d.ts +0 -38
  1175. package/dist/types/skill-state/initial-phase.d.ts +0 -12
  1176. package/dist/types/skill-state/workflow-hud.d.ts +0 -83
  1177. package/dist/types/skill-state/workflow-state-contract.d.ts +0 -57
  1178. package/dist/types/skill-state/workflow-state-version.d.ts +0 -3
  1179. package/dist/types/slash-commands/acp-builtins.d.ts +0 -18
  1180. package/dist/types/slash-commands/builtin-registry.d.ts +0 -24
  1181. package/dist/types/slash-commands/helpers/context-report.d.ts +0 -7
  1182. package/dist/types/slash-commands/helpers/fast-status-report.d.ts +0 -82
  1183. package/dist/types/slash-commands/helpers/format.d.ts +0 -10
  1184. package/dist/types/slash-commands/helpers/mcp.d.ts +0 -3
  1185. package/dist/types/slash-commands/helpers/parse.d.ts +0 -33
  1186. package/dist/types/slash-commands/helpers/ssh.d.ts +0 -3
  1187. package/dist/types/slash-commands/helpers/todo.d.ts +0 -3
  1188. package/dist/types/slash-commands/helpers/usage-report.d.ts +0 -7
  1189. package/dist/types/slash-commands/types.d.ts +0 -120
  1190. package/dist/types/ssh/config-writer.d.ts +0 -49
  1191. package/dist/types/ssh/connection-manager.d.ts +0 -33
  1192. package/dist/types/ssh/ssh-executor.d.ts +0 -37
  1193. package/dist/types/ssh/sshfs-mount.d.ts +0 -6
  1194. package/dist/types/ssh/utils.d.ts +0 -2
  1195. package/dist/types/stt/downloader.d.ts +0 -9
  1196. package/dist/types/stt/index.d.ts +0 -3
  1197. package/dist/types/stt/recorder.d.ts +0 -13
  1198. package/dist/types/stt/setup.d.ts +0 -18
  1199. package/dist/types/stt/stt-controller.d.ts +0 -16
  1200. package/dist/types/stt/transcriber.d.ts +0 -16
  1201. package/dist/types/system-prompt.d.ts +0 -118
  1202. package/dist/types/task/agents.d.ts +0 -28
  1203. package/dist/types/task/commands.d.ts +0 -35
  1204. package/dist/types/task/discovery.d.ts +0 -19
  1205. package/dist/types/task/executor.d.ts +0 -127
  1206. package/dist/types/task/fork-context-advisory.d.ts +0 -13
  1207. package/dist/types/task/fork-context-budget.d.ts +0 -7
  1208. package/dist/types/task/id.d.ts +0 -7
  1209. package/dist/types/task/index.d.ts +0 -43
  1210. package/dist/types/task/name-generator.d.ts +0 -16
  1211. package/dist/types/task/output-manager.d.ts +0 -36
  1212. package/dist/types/task/parallel.d.ts +0 -34
  1213. package/dist/types/task/receipt.d.ts +0 -89
  1214. package/dist/types/task/render.d.ts +0 -28
  1215. package/dist/types/task/roi-reconciliation.d.ts +0 -27
  1216. package/dist/types/task/simple-mode.d.ts +0 -8
  1217. package/dist/types/task/skc-command.d.ts +0 -7
  1218. package/dist/types/task/spawn-gate.d.ts +0 -29
  1219. package/dist/types/task/subprocess-tool-registry.d.ts +0 -72
  1220. package/dist/types/task/token-log.d.ts +0 -30
  1221. package/dist/types/task/token-log.test.d.ts +0 -1
  1222. package/dist/types/task/types.d.ts +0 -516
  1223. package/dist/types/task/worktree.d.ts +0 -94
  1224. package/dist/types/thinking-metadata.d.ts +0 -16
  1225. package/dist/types/thinking.d.ts +0 -22
  1226. package/dist/types/tool-discovery/tool-index.d.ts +0 -112
  1227. package/dist/types/tools/archive-reader.d.ts +0 -40
  1228. package/dist/types/tools/ask-answer-registry.d.ts +0 -18
  1229. package/dist/types/tools/ask.d.ts +0 -123
  1230. package/dist/types/tools/ast-edit.d.ts +0 -77
  1231. package/dist/types/tools/ast-grep.d.ts +0 -69
  1232. package/dist/types/tools/auto-generated-guard.d.ts +0 -17
  1233. package/dist/types/tools/bash-allowed-prefixes.d.ts +0 -10
  1234. package/dist/types/tools/bash-command-fixup.d.ts +0 -11
  1235. package/dist/types/tools/bash-interactive.d.ts +0 -16
  1236. package/dist/types/tools/bash-interceptor.d.ts +0 -24
  1237. package/dist/types/tools/bash-pty-selection.d.ts +0 -7
  1238. package/dist/types/tools/bash-skill-urls.d.ts +0 -31
  1239. package/dist/types/tools/bash.d.ts +0 -157
  1240. package/dist/types/tools/bisect.d.ts +0 -81
  1241. package/dist/types/tools/browser/actions.d.ts +0 -54
  1242. package/dist/types/tools/browser/attach.d.ts +0 -50
  1243. package/dist/types/tools/browser/launch.d.ts +0 -62
  1244. package/dist/types/tools/browser/readable.d.ts +0 -17
  1245. package/dist/types/tools/browser/registry.d.ts +0 -57
  1246. package/dist/types/tools/browser/render.d.ts +0 -53
  1247. package/dist/types/tools/browser/tab-protocol.d.ts +0 -144
  1248. package/dist/types/tools/browser/tab-supervisor.d.ts +0 -109
  1249. package/dist/types/tools/browser/tab-worker-entry.d.ts +0 -1
  1250. package/dist/types/tools/browser/tab-worker.d.ts +0 -19
  1251. package/dist/types/tools/browser.d.ts +0 -211
  1252. package/dist/types/tools/calculator.d.ts +0 -76
  1253. package/dist/types/tools/checkpoint.d.ts +0 -63
  1254. package/dist/types/tools/composer-bash-policy.d.ts +0 -14
  1255. package/dist/types/tools/computer/render.d.ts +0 -17
  1256. package/dist/types/tools/computer-gc.d.ts +0 -23
  1257. package/dist/types/tools/computer.d.ts +0 -465
  1258. package/dist/types/tools/conflict-detect.d.ts +0 -205
  1259. package/dist/types/tools/context.d.ts +0 -19
  1260. package/dist/types/tools/cron.d.ts +0 -91
  1261. package/dist/types/tools/debug.d.ts +0 -209
  1262. package/dist/types/tools/eval.d.ts +0 -108
  1263. package/dist/types/tools/fetch.d.ts +0 -84
  1264. package/dist/types/tools/file-recorder.d.ts +0 -13
  1265. package/dist/types/tools/find.d.ts +0 -95
  1266. package/dist/types/tools/fs-cache-invalidation.d.ts +0 -15
  1267. package/dist/types/tools/gh-format.d.ts +0 -6
  1268. package/dist/types/tools/gh-renderer.d.ts +0 -25
  1269. package/dist/types/tools/gh.d.ts +0 -356
  1270. package/dist/types/tools/github-cache.d.ts +0 -103
  1271. package/dist/types/tools/grouped-file-output.d.ts +0 -36
  1272. package/dist/types/tools/hindsight-recall.d.ts +0 -21
  1273. package/dist/types/tools/hindsight-reflect.d.ts +0 -23
  1274. package/dist/types/tools/hindsight-retain.d.ts +0 -27
  1275. package/dist/types/tools/image-gen.d.ts +0 -79
  1276. package/dist/types/tools/index.d.ts +0 -371
  1277. package/dist/types/tools/irc.d.ts +0 -79
  1278. package/dist/types/tools/job.d.ts +0 -78
  1279. package/dist/types/tools/json-tree.d.ts +0 -23
  1280. package/dist/types/tools/jtd-to-json-schema.d.ts +0 -29
  1281. package/dist/types/tools/jtd-to-typescript.d.ts +0 -26
  1282. package/dist/types/tools/jtd-utils.d.ts +0 -42
  1283. package/dist/types/tools/list-limit.d.ts +0 -12
  1284. package/dist/types/tools/match-line-format.d.ts +0 -11
  1285. package/dist/types/tools/monitor.d.ts +0 -54
  1286. package/dist/types/tools/output-meta.d.ts +0 -204
  1287. package/dist/types/tools/path-utils.d.ts +0 -147
  1288. package/dist/types/tools/plan-mode-guard.d.ts +0 -18
  1289. package/dist/types/tools/read.d.ts +0 -85
  1290. package/dist/types/tools/recipe/index.d.ts +0 -45
  1291. package/dist/types/tools/recipe/render.d.ts +0 -36
  1292. package/dist/types/tools/recipe/runner.d.ts +0 -60
  1293. package/dist/types/tools/recipe/runners/cargo.d.ts +0 -16
  1294. package/dist/types/tools/recipe/runners/index.d.ts +0 -2
  1295. package/dist/types/tools/recipe/runners/just.d.ts +0 -2
  1296. package/dist/types/tools/recipe/runners/make.d.ts +0 -2
  1297. package/dist/types/tools/recipe/runners/pkg.d.ts +0 -2
  1298. package/dist/types/tools/recipe/runners/task.d.ts +0 -2
  1299. package/dist/types/tools/render-mermaid.d.ts +0 -37
  1300. package/dist/types/tools/render-utils.d.ts +0 -158
  1301. package/dist/types/tools/renderers.d.ts +0 -26
  1302. package/dist/types/tools/resolve.d.ts +0 -80
  1303. package/dist/types/tools/resource-gc.d.ts +0 -54
  1304. package/dist/types/tools/review.d.ts +0 -63
  1305. package/dist/types/tools/search-tool-bm25.d.ts +0 -65
  1306. package/dist/types/tools/search.d.ts +0 -93
  1307. package/dist/types/tools/skill-discovery.d.ts +0 -40
  1308. package/dist/types/tools/skill.d.ts +0 -48
  1309. package/dist/types/tools/sqlite-reader.d.ts +0 -94
  1310. package/dist/types/tools/ssh.d.ts +0 -67
  1311. package/dist/types/tools/subagent-render.d.ts +0 -31
  1312. package/dist/types/tools/subagent.d.ts +0 -117
  1313. package/dist/types/tools/telegram-send.d.ts +0 -39
  1314. package/dist/types/tools/todo-write.d.ts +0 -120
  1315. package/dist/types/tools/tool-errors.d.ts +0 -33
  1316. package/dist/types/tools/tool-result.d.ts +0 -30
  1317. package/dist/types/tools/tool-timeouts.d.ts +0 -56
  1318. package/dist/types/tools/ultragoal-ask-guard.d.ts +0 -12
  1319. package/dist/types/tools/vim.d.ts +0 -58
  1320. package/dist/types/tools/write.d.ts +0 -59
  1321. package/dist/types/tools/yield.d.ts +0 -25
  1322. package/dist/types/tui/code-cell.d.ts +0 -32
  1323. package/dist/types/tui/file-list.d.ts +0 -22
  1324. package/dist/types/tui/hyperlink.d.ts +0 -42
  1325. package/dist/types/tui/index.d.ts +0 -11
  1326. package/dist/types/tui/output-block.d.ts +0 -28
  1327. package/dist/types/tui/status-line.d.ts +0 -18
  1328. package/dist/types/tui/tree-list.d.ts +0 -19
  1329. package/dist/types/tui/types.d.ts +0 -13
  1330. package/dist/types/tui/utils.d.ts +0 -36
  1331. package/dist/types/utils/changelog.d.ts +0 -37
  1332. package/dist/types/utils/clipboard.d.ts +0 -22
  1333. package/dist/types/utils/cmux-workspace.d.ts +0 -52
  1334. package/dist/types/utils/command-args.d.ts +0 -9
  1335. package/dist/types/utils/commit-message-generator.d.ts +0 -7
  1336. package/dist/types/utils/edit-mode.d.ts +0 -13
  1337. package/dist/types/utils/event-bus.d.ts +0 -6
  1338. package/dist/types/utils/external-editor.d.ts +0 -19
  1339. package/dist/types/utils/file-display-mode.d.ts +0 -27
  1340. package/dist/types/utils/file-mentions.d.ts +0 -25
  1341. package/dist/types/utils/git.d.ts +0 -393
  1342. package/dist/types/utils/image-loading.d.ts +0 -26
  1343. package/dist/types/utils/image-resize.d.ts +0 -39
  1344. package/dist/types/utils/lang-from-path.d.ts +0 -8
  1345. package/dist/types/utils/linkedom.d.ts +0 -4
  1346. package/dist/types/utils/markit.d.ts +0 -7
  1347. package/dist/types/utils/open.d.ts +0 -2
  1348. package/dist/types/utils/pasted-image-path.d.ts +0 -32
  1349. package/dist/types/utils/session-color.d.ts +0 -10
  1350. package/dist/types/utils/shell-snapshot.d.ts +0 -5
  1351. package/dist/types/utils/sixel.d.ts +0 -21
  1352. package/dist/types/utils/title-generator.d.ts +0 -31
  1353. package/dist/types/utils/tool-choice.d.ts +0 -20
  1354. package/dist/types/utils/tools-manager.d.ts +0 -9
  1355. package/dist/types/vim/buffer.d.ts +0 -41
  1356. package/dist/types/vim/commands.d.ts +0 -6
  1357. package/dist/types/vim/engine.d.ts +0 -47
  1358. package/dist/types/vim/parser.d.ts +0 -3
  1359. package/dist/types/vim/render.d.ts +0 -25
  1360. package/dist/types/vim/types.d.ts +0 -182
  1361. package/dist/types/web/insane/bridge.d.ts +0 -103
  1362. package/dist/types/web/insane/url-guard.d.ts +0 -25
  1363. package/dist/types/web/kagi.d.ts +0 -23
  1364. package/dist/types/web/parallel.d.ts +0 -58
  1365. package/dist/types/web/scrapers/artifacthub.d.ts +0 -6
  1366. package/dist/types/web/scrapers/arxiv.d.ts +0 -5
  1367. package/dist/types/web/scrapers/aur.d.ts +0 -5
  1368. package/dist/types/web/scrapers/biorxiv.d.ts +0 -5
  1369. package/dist/types/web/scrapers/bluesky.d.ts +0 -5
  1370. package/dist/types/web/scrapers/brew.d.ts +0 -5
  1371. package/dist/types/web/scrapers/cheatsh.d.ts +0 -8
  1372. package/dist/types/web/scrapers/chocolatey.d.ts +0 -5
  1373. package/dist/types/web/scrapers/choosealicense.d.ts +0 -2
  1374. package/dist/types/web/scrapers/cisa-kev.d.ts +0 -5
  1375. package/dist/types/web/scrapers/clojars.d.ts +0 -5
  1376. package/dist/types/web/scrapers/coingecko.d.ts +0 -5
  1377. package/dist/types/web/scrapers/crates-io.d.ts +0 -5
  1378. package/dist/types/web/scrapers/crossref.d.ts +0 -2
  1379. package/dist/types/web/scrapers/devto.d.ts +0 -5
  1380. package/dist/types/web/scrapers/discogs.d.ts +0 -8
  1381. package/dist/types/web/scrapers/discourse.d.ts +0 -5
  1382. package/dist/types/web/scrapers/dockerhub.d.ts +0 -5
  1383. package/dist/types/web/scrapers/docs-rs.d.ts +0 -2
  1384. package/dist/types/web/scrapers/fdroid.d.ts +0 -5
  1385. package/dist/types/web/scrapers/firefox-addons.d.ts +0 -2
  1386. package/dist/types/web/scrapers/flathub.d.ts +0 -2
  1387. package/dist/types/web/scrapers/github-gist.d.ts +0 -5
  1388. package/dist/types/web/scrapers/github.d.ts +0 -12
  1389. package/dist/types/web/scrapers/gitlab.d.ts +0 -5
  1390. package/dist/types/web/scrapers/go-pkg.d.ts +0 -5
  1391. package/dist/types/web/scrapers/hackage.d.ts +0 -5
  1392. package/dist/types/web/scrapers/hackernews.d.ts +0 -2
  1393. package/dist/types/web/scrapers/hex.d.ts +0 -5
  1394. package/dist/types/web/scrapers/huggingface.d.ts +0 -2
  1395. package/dist/types/web/scrapers/iacr.d.ts +0 -5
  1396. package/dist/types/web/scrapers/index.d.ts +0 -84
  1397. package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +0 -2
  1398. package/dist/types/web/scrapers/lemmy.d.ts +0 -2
  1399. package/dist/types/web/scrapers/lobsters.d.ts +0 -5
  1400. package/dist/types/web/scrapers/mastodon.d.ts +0 -5
  1401. package/dist/types/web/scrapers/maven.d.ts +0 -6
  1402. package/dist/types/web/scrapers/mdn.d.ts +0 -2
  1403. package/dist/types/web/scrapers/metacpan.d.ts +0 -5
  1404. package/dist/types/web/scrapers/musicbrainz.d.ts +0 -5
  1405. package/dist/types/web/scrapers/npm.d.ts +0 -5
  1406. package/dist/types/web/scrapers/nuget.d.ts +0 -5
  1407. package/dist/types/web/scrapers/nvd.d.ts +0 -5
  1408. package/dist/types/web/scrapers/ollama.d.ts +0 -2
  1409. package/dist/types/web/scrapers/open-vsx.d.ts +0 -5
  1410. package/dist/types/web/scrapers/opencorporates.d.ts +0 -5
  1411. package/dist/types/web/scrapers/openlibrary.d.ts +0 -5
  1412. package/dist/types/web/scrapers/orcid.d.ts +0 -5
  1413. package/dist/types/web/scrapers/osv.d.ts +0 -5
  1414. package/dist/types/web/scrapers/packagist.d.ts +0 -5
  1415. package/dist/types/web/scrapers/pub-dev.d.ts +0 -5
  1416. package/dist/types/web/scrapers/pubmed.d.ts +0 -5
  1417. package/dist/types/web/scrapers/pypi.d.ts +0 -5
  1418. package/dist/types/web/scrapers/rawg.d.ts +0 -2
  1419. package/dist/types/web/scrapers/readthedocs.d.ts +0 -2
  1420. package/dist/types/web/scrapers/reddit.d.ts +0 -5
  1421. package/dist/types/web/scrapers/repology.d.ts +0 -5
  1422. package/dist/types/web/scrapers/rfc.d.ts +0 -5
  1423. package/dist/types/web/scrapers/rubygems.d.ts +0 -5
  1424. package/dist/types/web/scrapers/searchcode.d.ts +0 -2
  1425. package/dist/types/web/scrapers/sec-edgar.d.ts +0 -5
  1426. package/dist/types/web/scrapers/semantic-scholar.d.ts +0 -2
  1427. package/dist/types/web/scrapers/snapcraft.d.ts +0 -2
  1428. package/dist/types/web/scrapers/sourcegraph.d.ts +0 -2
  1429. package/dist/types/web/scrapers/spdx.d.ts +0 -5
  1430. package/dist/types/web/scrapers/spotify.d.ts +0 -8
  1431. package/dist/types/web/scrapers/stackoverflow.d.ts +0 -6
  1432. package/dist/types/web/scrapers/terraform.d.ts +0 -5
  1433. package/dist/types/web/scrapers/tldr.d.ts +0 -7
  1434. package/dist/types/web/scrapers/twitter.d.ts +0 -5
  1435. package/dist/types/web/scrapers/types.d.ts +0 -83
  1436. package/dist/types/web/scrapers/utils.d.ts +0 -32
  1437. package/dist/types/web/scrapers/vimeo.d.ts +0 -5
  1438. package/dist/types/web/scrapers/vscode-marketplace.d.ts +0 -5
  1439. package/dist/types/web/scrapers/w3c.d.ts +0 -2
  1440. package/dist/types/web/scrapers/wikidata.d.ts +0 -5
  1441. package/dist/types/web/scrapers/wikipedia.d.ts +0 -5
  1442. package/dist/types/web/scrapers/youtube.d.ts +0 -13
  1443. package/dist/types/web/search/index.d.ts +0 -118
  1444. package/dist/types/web/search/provider.d.ts +0 -55
  1445. package/dist/types/web/search/providers/anthropic.d.ts +0 -32
  1446. package/dist/types/web/search/providers/base.d.ts +0 -90
  1447. package/dist/types/web/search/providers/brave.d.ts +0 -27
  1448. package/dist/types/web/search/providers/codex.d.ts +0 -35
  1449. package/dist/types/web/search/providers/duckduckgo.d.ts +0 -57
  1450. package/dist/types/web/search/providers/exa.d.ts +0 -52
  1451. package/dist/types/web/search/providers/gemini.d.ts +0 -57
  1452. package/dist/types/web/search/providers/insane.d.ts +0 -53
  1453. package/dist/types/web/search/providers/jina.d.ts +0 -26
  1454. package/dist/types/web/search/providers/kagi.d.ts +0 -24
  1455. package/dist/types/web/search/providers/kimi.d.ts +0 -27
  1456. package/dist/types/web/search/providers/openai-compatible.d.ts +0 -9
  1457. package/dist/types/web/search/providers/parallel.d.ts +0 -15
  1458. package/dist/types/web/search/providers/perplexity.d.ts +0 -38
  1459. package/dist/types/web/search/providers/searxng.d.ts +0 -44
  1460. package/dist/types/web/search/providers/synthetic.d.ts +0 -21
  1461. package/dist/types/web/search/providers/tavily.d.ts +0 -29
  1462. package/dist/types/web/search/providers/text-citations.d.ts +0 -23
  1463. package/dist/types/web/search/providers/utils.d.ts +0 -88
  1464. package/dist/types/web/search/providers/xai.d.ts +0 -64
  1465. package/dist/types/web/search/providers/zai.d.ts +0 -28
  1466. package/dist/types/web/search/render.d.ts +0 -36
  1467. package/dist/types/web/search/types.d.ts +0 -372
  1468. package/dist/types/web/search/utils.d.ts +0 -4
  1469. package/dist/types/workflow/workflow-intent-diff.d.ts +0 -25
  1470. package/dist/types/workflow/workflow-intent-report-consumer.d.ts +0 -50
  1471. package/dist/types/workflow/workflow-intent-report-schema.d.ts +0 -2
  1472. package/dist/types/workflow/workflow-intent-report.d.ts +0 -48
  1473. package/dist/types/workspace-tree.d.ts +0 -42
  1474. package/src/sdk.ts +0 -2623
@@ -0,0 +1,1403 @@
1
+ import {
2
+ type Component,
3
+ type Focusable,
4
+ getKeybindings,
5
+ Input,
6
+ SecretInput,
7
+ type SecretValue,
8
+ truncateToWidth,
9
+ wrapTextWithAnsi,
10
+ } from "@sayknow-cli/tui";
11
+ import type { CasReceipt } from "../../config/atomic-yaml-patch";
12
+ import type {
13
+ BlockedTelegramRestoreResult,
14
+ ProposedTelegramIdentity,
15
+ TelegramDaemonReconnectOutcome,
16
+ } from "../../sdk/bus/notification-orchestration";
17
+ import type {
18
+ NotificationHealthReport,
19
+ NotificationRecoveryReport,
20
+ NotificationStatusReport,
21
+ NotificationTestResult,
22
+ } from "../../sdk/bus/notification-service";
23
+ import type { NotificationSessionReconcileResult, NotificationSessionStatus } from "../../sdk/bus/session-control";
24
+ import { theme } from "../theme/theme";
25
+
26
+ /** Safe scalar notification preferences. Credentials and destination IDs are deliberately absent. */
27
+ export interface NotificationsEditorPreferences {
28
+ redact: boolean;
29
+ verbosity: "lean" | "verbose";
30
+ sessionScope: "all" | "primary";
31
+ richEnabled: boolean;
32
+ richDraftEnabled: boolean;
33
+ toolActivityEnabled: boolean;
34
+ streamingEnabled: boolean;
35
+ }
36
+
37
+ /** Secret-safe snapshot used to render the Notifications tab. */
38
+ export interface NotificationsEditorState {
39
+ status: NotificationStatusReport;
40
+ session: NotificationSessionStatus;
41
+ preferences: NotificationsEditorPreferences;
42
+ health?: NotificationHealthReport;
43
+ }
44
+
45
+ /**
46
+ * A one-way setup value accepted from the masked input. The operation adapter
47
+ * consumes the secret and returns a safe-to-render prepared draft.
48
+ */
49
+ export interface NotificationsEditorSetupInput {
50
+ token: SecretValue;
51
+ /** Optional: omit to use daemon-aware private-chat discovery when polling is safe. */
52
+ chatId?: string;
53
+ richEnabled: boolean;
54
+ richDraftEnabled: boolean;
55
+ streamingEnabled: boolean;
56
+ }
57
+
58
+ /**
59
+ * Secret-safe setup draft. The adapter may retain its private credential while
60
+ * this object is live, but no raw token is exposed through this contract.
61
+ */
62
+ export interface PreparedTelegramConfiguration {
63
+ chatId: string;
64
+ tokenMask: string;
65
+ tokenFingerprint?: string;
66
+ richEnabled: boolean;
67
+ richDraftEnabled: boolean;
68
+ streamingEnabled: boolean;
69
+ }
70
+
71
+ export interface NotificationsPreflightResult {
72
+ status: "ready" | "aborted" | "cancelled" | "error";
73
+ identity: ProposedTelegramIdentity;
74
+ message: string;
75
+ pairingSource?: "discovered" | "provided" | "reused";
76
+ draft?: PreparedTelegramConfiguration;
77
+ }
78
+
79
+ /** A successful configuration save always carries an opaque CAS receipt. */
80
+ export type NotificationsConfigureCommitResult =
81
+ | { status: "saved"; receipt: CasReceipt; message: string }
82
+ | {
83
+ status: "blocked_identity";
84
+ receipt: CasReceipt;
85
+ message: string;
86
+ restore(): Promise<BlockedTelegramRestoreResult>;
87
+ retainCommitted(): void;
88
+ };
89
+
90
+ export interface NotificationsMutationResult {
91
+ message: string;
92
+ receipt?: CasReceipt;
93
+ }
94
+
95
+ export type NotificationsSaveInactiveResult =
96
+ | { status: "saved_inactive"; receipt: CasReceipt; message: string }
97
+ | { status: "unavailable"; guidance: string };
98
+
99
+ /**
100
+ * Controller-injected boundary for the direct Notifications editor.
101
+ *
102
+ * The component only renders this contract and sends user intent through it:
103
+ * it never reads Settings, starts a daemon, or calls notification services.
104
+ */
105
+ export interface NotificationsEditorOperations {
106
+ /** Combines a buildNotificationStatusReport-shaped status snapshot with the current session-control query. */
107
+ loadState(): Promise<NotificationsEditorState>;
108
+ /** Performs offline health refreshes and a non-cancellable reachability probe when requested. */
109
+ refreshHealth(input: { probe: boolean; signal?: AbortSignal }): Promise<NotificationHealthReport>;
110
+ sendTest(): Promise<NotificationTestResult>;
111
+ recover(): Promise<NotificationRecoveryReport>;
112
+ reconnect(): Promise<TelegramDaemonReconnectOutcome>;
113
+ /** Validates/discovers a Telegram destination and returns a secret-safe prepared draft. */
114
+ preflightProposedIdentity(
115
+ input: NotificationsEditorSetupInput,
116
+ signal: AbortSignal,
117
+ ): Promise<NotificationsPreflightResult>;
118
+ /** Atomically persists a prepared Telegram configuration and returns its CAS-backed receipt. */
119
+ commitConfigure(draft: PreparedTelegramConfiguration): Promise<NotificationsConfigureCommitResult>;
120
+ /** Stores a prepared Telegram configuration inactive when the mixed-adapter rule permits it. */
121
+ saveInactive(draft: PreparedTelegramConfiguration): Promise<NotificationsSaveInactiveResult>;
122
+ /** Clears adapter-local ephemeral credential material for a prepared setup draft. Idempotent. */
123
+ discardConfigureDraft(draft: PreparedTelegramConfiguration): void;
124
+ /** Enables globally without requesting or exposing a credential. */
125
+ enableGlobally(): Promise<NotificationsMutationResult>;
126
+ disableGlobally(): Promise<NotificationsMutationResult>;
127
+ /** Removes only Telegram configuration; the adapter preserves Discord/Slack when configured. */
128
+ removeTelegram(): Promise<NotificationsMutationResult & { globallyDisabled?: boolean }>;
129
+ setSessionLocal(enabled: boolean): Promise<NotificationSessionReconcileResult>;
130
+ /** Atomically persists the scalar preference draft. */
131
+ commitPreferences(preferences: NotificationsEditorPreferences): Promise<NotificationsMutationResult>;
132
+ /** Reconciles the current session after durable global configuration changes. */
133
+ reconcileCurrentSession(): Promise<NotificationSessionReconcileResult>;
134
+ }
135
+
136
+ export interface NotificationsSettingsEditorCallbacks {
137
+ onCancel?: () => void;
138
+ }
139
+
140
+ type EditorMode =
141
+ | "home"
142
+ | "provider-selection"
143
+ | "chat-entry"
144
+ | "token-entry"
145
+ | "pairing"
146
+ | "review"
147
+ | "preferences"
148
+ | "confirmation";
149
+ type ConfirmationAction = "disable" | "remove" | "blocked_identity";
150
+
151
+ type HomeActionId =
152
+ | "configure"
153
+ | "enable"
154
+ | "disable"
155
+ | "session"
156
+ | "refresh"
157
+ | "probe"
158
+ | "test"
159
+ | "recover"
160
+ | "reconnect"
161
+ | "remove"
162
+ | "preferences"
163
+ | "tool-activity";
164
+
165
+ interface Action {
166
+ id: HomeActionId | "telegram" | "external" | "save" | "save-inactive" | "cancel" | "confirm";
167
+ label: string;
168
+ description: string;
169
+ }
170
+
171
+ const TOKEN_PATTERN = /\d{6,}:[A-Za-z0-9_-]{20,}/g;
172
+ const VISIBLE_ACTIONS = 5;
173
+
174
+ function emptyState(): NotificationsEditorState {
175
+ return {
176
+ status: {
177
+ enabled: false,
178
+ redact: false,
179
+ verbosity: "lean",
180
+ globallyConfigured: false,
181
+ telegram: { botTokenMasked: "(not set)", channel: undefined, configured: false, tokenFingerprint: undefined },
182
+ discord: { botTokenMasked: "(not set)", channel: undefined, configured: false },
183
+ slack: { botTokenMasked: "(not set)", channel: undefined, configured: false },
184
+ },
185
+ session: {
186
+ eligible: false,
187
+ locallyEnabled: false,
188
+ effectiveEnabled: false,
189
+ running: false,
190
+ environment: "default",
191
+ },
192
+ preferences: {
193
+ redact: false,
194
+ verbosity: "lean",
195
+ sessionScope: "all",
196
+ richEnabled: true,
197
+ richDraftEnabled: false,
198
+ toolActivityEnabled: true,
199
+ streamingEnabled: true,
200
+ },
201
+ };
202
+ }
203
+
204
+ function statusLabel(level: "ok" | "warn" | "error"): "OK" | "WARNING" | "ERROR" {
205
+ return level === "ok" ? "OK" : level === "warn" ? "WARNING" : "ERROR";
206
+ }
207
+
208
+ function safeDetail(value: string | undefined, fallback: string): string {
209
+ const detail = (value ?? fallback)
210
+ .replace(TOKEN_PATTERN, "<redacted>")
211
+ .replace(/[\r\n]+/g, " ")
212
+ .trim();
213
+ return detail || fallback;
214
+ }
215
+
216
+ function formatAge(ageMs: number | undefined): string {
217
+ if (ageMs === undefined || !Number.isFinite(ageMs) || ageMs < 0) return "unknown";
218
+ if (ageMs < 1_000) return "just now";
219
+ if (ageMs < 60_000) return `${Math.floor(ageMs / 1_000)}s ago`;
220
+ if (ageMs < 3_600_000) return `${Math.floor(ageMs / 60_000)}m ago`;
221
+ return `${Math.floor(ageMs / 3_600_000)}h ago`;
222
+ }
223
+
224
+ function formatTimestamp(timestamp: number | undefined): string {
225
+ if (timestamp === undefined || !Number.isFinite(timestamp) || timestamp < 0) return "unknown";
226
+ return new Date(timestamp).toISOString();
227
+ }
228
+
229
+ function maskedToken(value: string | undefined, fallback: string): string {
230
+ if (!value) return fallback;
231
+ const maskLength = [...value].filter(character => character === "•" || character === "*").length;
232
+ return "•".repeat(Math.max(4, maskLength));
233
+ }
234
+
235
+ function copyPreferences(preferences: NotificationsEditorPreferences): NotificationsEditorPreferences {
236
+ return { ...preferences };
237
+ }
238
+
239
+ /**
240
+ * Direct tab content for notification setup and operations. It is deliberately
241
+ * independent of Settings and notification services; WI7b injects the adapter.
242
+ */
243
+ export class NotificationsSettingsEditorComponent implements Component, Focusable {
244
+ focused = false;
245
+ #state = emptyState();
246
+ #mode: EditorMode = "home";
247
+ #selectedIndex = 0;
248
+ #status = "INFO — Loading notification status…";
249
+ #lastTest: NotificationTestResult | undefined;
250
+ #prepared: PreparedTelegramConfiguration | undefined;
251
+ #preflightIdentity: ProposedTelegramIdentity["status"] | undefined;
252
+ #preferencesDraft: NotificationsEditorPreferences | undefined;
253
+ #confirmation: ConfirmationAction | undefined;
254
+ #blockedCommit: Extract<NotificationsConfigureCommitResult, { status: "blocked_identity" }> | undefined;
255
+ #pairingPhase: "discovery" | "validation" = "discovery";
256
+ #chatInput = new Input();
257
+ #tokenInput = new SecretInput();
258
+ #abortController = new AbortController();
259
+ #cancellableWork: Promise<void> | undefined;
260
+ #guarded = false;
261
+ #disposed = false;
262
+ #loadSequence = 0;
263
+
264
+ constructor(
265
+ private readonly operations: NotificationsEditorOperations,
266
+ private readonly callbacks: NotificationsSettingsEditorCallbacks = {},
267
+ ) {
268
+ this.#chatInput.onSubmit = () => {
269
+ this.#mode = "token-entry";
270
+ this.#status = "INFO — Paste the Telegram bot token. It is masked and never shown again.";
271
+ };
272
+ this.#chatInput.onEscape = () => this.#cancelCurrentMode();
273
+ this.#tokenInput.onSubmit = token => this.#startPreflight(token);
274
+ this.#tokenInput.onEscape = () => this.#cancelCurrentMode();
275
+ void this.#loadState();
276
+ }
277
+
278
+ /** True while a guarded operation or blocked restore/retain decision owns the editor. */
279
+ get navigationLocked(): boolean {
280
+ return this.#guarded || this.#blockedCommit !== undefined;
281
+ }
282
+
283
+ /** Current state is exposed for selector lifecycle coordination and focused tests. */
284
+ get mode(): EditorMode {
285
+ return this.#mode;
286
+ }
287
+
288
+ invalidate(): void {
289
+ this.#chatInput.invalidate();
290
+ this.#tokenInput.invalidate();
291
+ }
292
+
293
+ dispose(): void {
294
+ if (this.#disposed || this.navigationLocked) return;
295
+ this.#disposed = true;
296
+ this.#abortController.abort();
297
+ this.#clearDrafts(true);
298
+ }
299
+
300
+ render(width: number): string[] {
301
+ if (this.#mode === "provider-selection") return this.#renderProviderSelection(width);
302
+ if (this.#mode === "chat-entry") return this.#renderChatEntry(width);
303
+ if (this.#mode === "token-entry") return this.#renderTokenEntry(width);
304
+ if (this.#mode === "pairing") return this.#renderPairing(width);
305
+ if (this.#mode === "review") return this.#renderReview(width);
306
+ if (this.#mode === "preferences") return this.#renderPreferences(width);
307
+ if (this.#mode === "confirmation") return this.#renderConfirmation(width);
308
+ return this.#renderHome(width);
309
+ }
310
+
311
+ handleInput(data: string): void {
312
+ if (this.#disposed) return;
313
+ if (this.#guarded) {
314
+ this.#status =
315
+ "WARNING — Request in progress; it may already have been delivered or started. Navigation is locked.";
316
+ return;
317
+ }
318
+ if (this.#cancellableWork) {
319
+ if (this.#matchesCancel(data)) {
320
+ this.#cancelCancellableWork(
321
+ "Cancellable notification operation cancelled; saved configuration is unchanged.",
322
+ );
323
+ } else {
324
+ this.#status = "PENDING — Cancellable notification operation in progress. Press Esc to cancel it.";
325
+ }
326
+ return;
327
+ }
328
+ if (this.#mode === "chat-entry") {
329
+ this.#chatInput.handleInput(data);
330
+ return;
331
+ }
332
+ if (this.#mode === "token-entry") {
333
+ this.#tokenInput.handleInput(data);
334
+ return;
335
+ }
336
+ if (this.#mode === "pairing") {
337
+ if (this.#matchesCancel(data))
338
+ this.#cancelCancellableWork("Pairing cancelled; no notification configuration was changed.");
339
+ return;
340
+ }
341
+ if (this.#mode === "provider-selection") {
342
+ this.#handleListInput(data, this.#providerActions());
343
+ return;
344
+ }
345
+ if (this.#mode === "review") {
346
+ this.#handleListInput(data, this.#reviewActions());
347
+ return;
348
+ }
349
+ if (this.#mode === "preferences") {
350
+ this.#handlePreferencesInput(data);
351
+ return;
352
+ }
353
+ if (this.#mode === "confirmation") {
354
+ this.#handleConfirmationInput(data);
355
+ return;
356
+ }
357
+ this.#handleListInput(data, this.#homeActions());
358
+ }
359
+
360
+ #matchesCancel(data: string): boolean {
361
+ return getKeybindings().matches(data, "tui.select.cancel");
362
+ }
363
+
364
+ #handleListInput(data: string, actions: readonly Action[]): void {
365
+ if (this.#matchesCancel(data)) {
366
+ this.#cancelCurrentMode();
367
+ return;
368
+ }
369
+ const keybindings = getKeybindings();
370
+ if (keybindings.matches(data, "tui.select.up")) {
371
+ this.#selectedIndex = this.#selectedIndex === 0 ? actions.length - 1 : this.#selectedIndex - 1;
372
+ return;
373
+ }
374
+ if (keybindings.matches(data, "tui.select.down")) {
375
+ this.#selectedIndex = this.#selectedIndex === actions.length - 1 ? 0 : this.#selectedIndex + 1;
376
+ return;
377
+ }
378
+ if (keybindings.matches(data, "tui.select.confirm") || data === " " || data === "\n") {
379
+ const action = actions[this.#selectedIndex];
380
+ if (action) this.#activate(action.id);
381
+ }
382
+ }
383
+
384
+ #handlePreferencesInput(data: string): void {
385
+ const actions = this.#preferenceActions();
386
+ if (this.#matchesCancel(data)) {
387
+ this.#preferencesDraft = undefined;
388
+ this.#mode = "home";
389
+ this.#selectedIndex = 0;
390
+ this.#status = "INFO — Preference changes discarded.";
391
+ return;
392
+ }
393
+ const keybindings = getKeybindings();
394
+ if (keybindings.matches(data, "tui.select.up")) {
395
+ this.#selectedIndex = this.#selectedIndex === 0 ? actions.length - 1 : this.#selectedIndex - 1;
396
+ return;
397
+ }
398
+ if (keybindings.matches(data, "tui.select.down")) {
399
+ this.#selectedIndex = this.#selectedIndex === actions.length - 1 ? 0 : this.#selectedIndex + 1;
400
+ return;
401
+ }
402
+ if (keybindings.matches(data, "tui.select.confirm") || data === " " || data === "\n") {
403
+ const action = actions[this.#selectedIndex];
404
+ if (!action) return;
405
+ if (action.id === "save") {
406
+ this.#savePreferences();
407
+ return;
408
+ }
409
+ if (action.id === "cancel") {
410
+ this.#preferencesDraft = undefined;
411
+ this.#mode = "home";
412
+ this.#selectedIndex = 0;
413
+ this.#status = "INFO — Preference changes discarded.";
414
+ return;
415
+ }
416
+ this.#togglePreference(action.id);
417
+ }
418
+ }
419
+
420
+ #handleConfirmationInput(data: string): void {
421
+ const blocked = this.#confirmation === "blocked_identity";
422
+ if (this.#matchesCancel(data)) {
423
+ if (blocked) this.#retainBlockedConfiguration();
424
+ else {
425
+ this.#confirmation = undefined;
426
+ this.#mode = "home";
427
+ this.#selectedIndex = 0;
428
+ this.#status = "INFO — Confirmation cancelled; configuration is unchanged.";
429
+ }
430
+ return;
431
+ }
432
+ const keybindings = getKeybindings();
433
+ if (keybindings.matches(data, "tui.select.up") || keybindings.matches(data, "tui.select.down")) {
434
+ this.#selectedIndex = this.#selectedIndex === 0 ? 1 : 0;
435
+ return;
436
+ }
437
+ if (keybindings.matches(data, "tui.select.confirm") || data === " " || data === "\n") {
438
+ if (blocked) {
439
+ if (this.#selectedIndex === 0) this.#restoreBlockedConfiguration();
440
+ else this.#retainBlockedConfiguration();
441
+ return;
442
+ }
443
+ if (this.#selectedIndex === 0) this.#confirmDestructiveAction();
444
+ else {
445
+ this.#confirmation = undefined;
446
+ this.#mode = "home";
447
+ this.#selectedIndex = 0;
448
+ this.#status = "INFO — Confirmation cancelled; configuration is unchanged.";
449
+ }
450
+ }
451
+ }
452
+
453
+ #activate(id: Action["id"]): void {
454
+ switch (id) {
455
+ case "configure":
456
+ this.#mode = "provider-selection";
457
+ this.#selectedIndex = 0;
458
+ this.#status = "INFO — Select a notification provider to begin setup.";
459
+ return;
460
+ case "telegram":
461
+ this.#mode = "chat-entry";
462
+ this.#selectedIndex = 0;
463
+ this.#chatInput.setValue("");
464
+ this.#tokenInput.clear();
465
+ this.#status = "INFO — Enter a private chat ID, or leave it blank for guided pairing discovery.";
466
+ return;
467
+ case "external":
468
+ this.#status = "INFO — Discord and Slack credentials are managed in their respective provider settings.";
469
+ return;
470
+ case "enable":
471
+ this.#enableGlobally();
472
+ return;
473
+ case "disable":
474
+ this.#openConfirmation("disable");
475
+ return;
476
+ case "session":
477
+ this.#setSessionLocal(!this.#state.session.locallyEnabled);
478
+ return;
479
+ case "refresh":
480
+ this.#refreshHealth(false);
481
+ return;
482
+ case "probe":
483
+ this.#refreshHealth(true);
484
+ return;
485
+ case "test":
486
+ this.#sendTest();
487
+ return;
488
+ case "recover":
489
+ this.#recover();
490
+ return;
491
+ case "reconnect":
492
+ this.#reconnect();
493
+ return;
494
+ case "remove":
495
+ this.#openConfirmation("remove");
496
+ return;
497
+ case "preferences":
498
+ this.#preferencesDraft = copyPreferences(this.#state.preferences);
499
+ this.#selectedIndex = 0;
500
+ this.#mode = "preferences";
501
+ this.#status = "INFO — Edit the draft, then explicitly save it atomically.";
502
+ return;
503
+ case "save":
504
+ this.#commitConfiguration();
505
+ return;
506
+ case "save-inactive":
507
+ this.#saveInactive();
508
+ return;
509
+ case "cancel":
510
+ this.#cancelCurrentMode();
511
+ return;
512
+ default:
513
+ return;
514
+ }
515
+ }
516
+
517
+ #cancelCurrentMode(): void {
518
+ if (this.#mode === "home") {
519
+ this.callbacks.onCancel?.();
520
+ return;
521
+ }
522
+ if (this.#mode === "pairing") {
523
+ this.#cancelCancellableWork("Pairing cancelled; no notification configuration was changed.");
524
+ return;
525
+ }
526
+ this.#clearDrafts();
527
+ this.#mode = "home";
528
+ this.#selectedIndex = 0;
529
+ this.#status = "INFO — Setup cancelled; saved notification configuration is unchanged.";
530
+ }
531
+
532
+ #clearDrafts(disposeSecret = false): void {
533
+ if (this.#prepared) this.operations.discardConfigureDraft(this.#prepared);
534
+ this.#prepared = undefined;
535
+ this.#preflightIdentity = undefined;
536
+ this.#pairingPhase = "discovery";
537
+ this.#preferencesDraft = undefined;
538
+ this.#chatInput.setValue("");
539
+ this.#tokenInput.clear();
540
+ if (disposeSecret) this.#tokenInput.dispose();
541
+ }
542
+
543
+ #startPreflight(token: SecretValue): void {
544
+ const chatId = this.#chatInput.getValue().trim() || undefined;
545
+ const preferences = this.#state.preferences;
546
+ this.#pairingPhase = chatId ? "validation" : "discovery";
547
+ this.#mode = "pairing";
548
+ this.#status = chatId
549
+ ? "PENDING — Private-chat validation in progress. Escape cancels before configuration changes."
550
+ : "PENDING — Pairing discovery in progress. Escape cancels before configuration changes.";
551
+ this.#runCancellable(
552
+ signal =>
553
+ this.operations.preflightProposedIdentity(
554
+ {
555
+ token,
556
+ chatId,
557
+ richEnabled: preferences.richEnabled,
558
+ richDraftEnabled: preferences.richDraftEnabled,
559
+ streamingEnabled: preferences.streamingEnabled,
560
+ },
561
+ signal,
562
+ ),
563
+ result => {
564
+ this.#tokenInput.clear();
565
+ if (result.status === "aborted" || result.status === "cancelled") {
566
+ this.#clearDrafts();
567
+ this.#mode = "home";
568
+ this.#selectedIndex = 0;
569
+ this.#status = "ABORTED — Pairing cancelled; saved notification configuration is unchanged.";
570
+ return;
571
+ }
572
+ if (result.status !== "ready" || !result.draft) {
573
+ this.#clearDrafts();
574
+ this.#mode = "home";
575
+ this.#selectedIndex = 0;
576
+ this.#status = `ERROR — ${safeDetail(result.message, "Telegram setup could not be completed.")}`;
577
+ return;
578
+ }
579
+ this.#prepared = result.draft;
580
+ this.#preflightIdentity = result.identity.status;
581
+ this.#mode = "review";
582
+ this.#selectedIndex = 0;
583
+ const identity = result.identity.status;
584
+ this.#status =
585
+ identity === "foreign" || identity === "unknown"
586
+ ? `WARNING — ${safeDetail(result.message, "A foreign or unknown Telegram daemon identity blocks activation.")}`
587
+ : `OK — ${safeDetail(result.message, "Telegram setup is ready to save.")}`;
588
+ },
589
+ );
590
+ }
591
+
592
+ #cancelCancellableWork(message: string): void {
593
+ this.#abortController.abort();
594
+ this.#clearDrafts();
595
+ this.#mode = "home";
596
+ this.#selectedIndex = 0;
597
+ this.#status = `ABORTED — ${message}`;
598
+ }
599
+
600
+ #runCancellable<T>(work: (signal: AbortSignal) => Promise<T>, complete: (result: T) => void): void {
601
+ if (this.#abortController.signal.aborted) this.#abortController = new AbortController();
602
+ const controller = this.#abortController;
603
+ let pending!: Promise<void>;
604
+ pending = (async () => {
605
+ try {
606
+ const result = await work(controller.signal);
607
+ if (this.#disposed || controller.signal.aborted || controller !== this.#abortController) return;
608
+ complete(result);
609
+ } catch {
610
+ if (this.#disposed || controller.signal.aborted || controller !== this.#abortController) return;
611
+ this.#mode = "home";
612
+ this.#selectedIndex = 0;
613
+ this.#status = "ERROR — Cancellable notification operation failed safely; retry when ready.";
614
+ } finally {
615
+ if (this.#cancellableWork === pending) this.#cancellableWork = undefined;
616
+ }
617
+ })();
618
+ this.#cancellableWork = pending;
619
+ }
620
+
621
+ #refreshHealth(probe: boolean): void {
622
+ if (probe) {
623
+ this.#runGuarded(
624
+ "Health probe in progress. It cannot be cancelled once started.",
625
+ () => this.operations.refreshHealth({ probe: true }),
626
+ health => {
627
+ this.#state = { ...this.#state, health };
628
+ this.#status = `${statusLabel(health.overall)} — ${this.#healthSummary(health)}`;
629
+ },
630
+ );
631
+ return;
632
+ }
633
+ this.#status = "PENDING — Refreshing notification health.";
634
+ this.#runCancellable(
635
+ signal => this.operations.refreshHealth({ probe: false, signal }),
636
+ health => {
637
+ this.#state = { ...this.#state, health };
638
+ this.#status = `${statusLabel(health.overall)} — ${this.#healthSummary(health)}`;
639
+ },
640
+ );
641
+ }
642
+
643
+ #runGuarded<T>(pending: string, work: () => Promise<T>, complete: (result: T) => Promise<void> | void): void {
644
+ if (this.#guarded || this.#disposed) return;
645
+ this.#guarded = true;
646
+ this.#status = `PENDING — ${pending} Navigation is locked; it may already have started or delivered.`;
647
+ void (async () => {
648
+ try {
649
+ const result = await work();
650
+ if (this.#disposed) return;
651
+ await complete(result);
652
+ } catch {
653
+ if (!this.#disposed) {
654
+ this.#status = "ERROR — Notification action failed safely. Retry when ready; no credential is shown.";
655
+ }
656
+ } finally {
657
+ if (!this.#disposed) this.#guarded = false;
658
+ }
659
+ })();
660
+ }
661
+
662
+ async #afterDurableMutation(): Promise<boolean> {
663
+ await this.operations.reconcileCurrentSession();
664
+ const health = await this.operations.refreshHealth({ probe: false });
665
+ if (this.#disposed) return false;
666
+ this.#state = { ...this.#state, health };
667
+ await this.#loadState();
668
+ return !this.#disposed;
669
+ }
670
+
671
+ async #refreshAfterOperation(): Promise<boolean> {
672
+ const health = await this.operations.refreshHealth({ probe: false });
673
+ if (this.#disposed) return false;
674
+ this.#state = { ...this.#state, health };
675
+ await this.#loadState();
676
+ return !this.#disposed;
677
+ }
678
+
679
+ #enableGlobally(): void {
680
+ this.#runGuarded(
681
+ "Enabling global notifications.",
682
+ () => this.operations.enableGlobally(),
683
+ async result => {
684
+ if (!(await this.#afterDurableMutation())) return;
685
+
686
+ this.#status = `OK — ${safeDetail(result.message, "Global notifications enabled using stored credentials.")}`;
687
+ },
688
+ );
689
+ }
690
+
691
+ #confirmDestructiveAction(): void {
692
+ const action = this.#confirmation;
693
+ this.#confirmation = undefined;
694
+ if (action === "disable") {
695
+ this.#runGuarded(
696
+ "Disabling notifications globally.",
697
+ () => this.operations.disableGlobally(),
698
+ async result => {
699
+ if (!(await this.#afterDurableMutation())) return;
700
+ this.#mode = "home";
701
+ this.#selectedIndex = 0;
702
+ this.#status = `OK — ${safeDetail(result.message, "Notifications disabled globally.")}`;
703
+ },
704
+ );
705
+ return;
706
+ }
707
+ if (action === "remove") {
708
+ this.#runGuarded(
709
+ "Removing Telegram configuration.",
710
+ () => this.operations.removeTelegram(),
711
+ async result => {
712
+ if (!(await this.#afterDurableMutation())) return;
713
+ this.#mode = "home";
714
+ this.#selectedIndex = 0;
715
+ this.#status = `OK — ${safeDetail(
716
+ result.message,
717
+ result.globallyDisabled
718
+ ? "Telegram removed and global notifications disabled."
719
+ : "Telegram removed; other adapters remain enabled.",
720
+ )}`;
721
+ },
722
+ );
723
+ }
724
+ }
725
+
726
+ #restoreBlockedConfiguration(): void {
727
+ const blocked = this.#blockedCommit;
728
+ if (!blocked) return;
729
+ this.#runGuarded(
730
+ "Restoring the previous Telegram configuration.",
731
+ () => blocked.restore(),
732
+ async result => {
733
+ this.#blockedCommit = undefined;
734
+ this.#confirmation = undefined;
735
+ if (!(await this.#refreshAfterOperation())) return;
736
+ this.#mode = "home";
737
+ this.#selectedIndex = 0;
738
+ switch (result.status) {
739
+ case "restored":
740
+ this.#status = "OK — Previous Telegram configuration restored after the blocked activation.";
741
+ return;
742
+ case "conflict":
743
+ this.#status = `ERROR — Previous configuration was not restored because settings changed at: ${result.paths.join(", ")}. Saved configuration remains inactive.`;
744
+ return;
745
+ case "still_blocked":
746
+ this.#status =
747
+ "ERROR — Previous configuration restored, but activation remains blocked by a foreign daemon. Current session remains inactive.";
748
+ return;
749
+ case "discarded":
750
+ this.#status =
751
+ "WARNING — Previous configuration was not restored. Saved configuration remains inactive.";
752
+ return;
753
+ }
754
+ },
755
+ );
756
+ }
757
+
758
+ #retainBlockedConfiguration(): void {
759
+ const blocked = this.#blockedCommit;
760
+ if (!blocked) return;
761
+ this.#runGuarded(
762
+ "Keeping saved Telegram configuration inactive.",
763
+ async () => blocked.retainCommitted(),
764
+ async () => {
765
+ this.#blockedCommit = undefined;
766
+ this.#confirmation = undefined;
767
+ if (!(await this.#refreshAfterOperation())) return;
768
+ this.#mode = "home";
769
+ this.#selectedIndex = 0;
770
+ this.#status =
771
+ "WARNING — Configuration saved but activation blocked by a foreign daemon. Saved configuration remains inactive.";
772
+ },
773
+ );
774
+ }
775
+
776
+ #openConfirmation(action: Exclude<ConfirmationAction, "blocked_identity">): void {
777
+ this.#confirmation = action;
778
+ this.#mode = "confirmation";
779
+ this.#selectedIndex = 1;
780
+ this.#status =
781
+ action === "disable"
782
+ ? "WARNING — Disable globally stops configured adapters. Confirm explicitly to continue."
783
+ : "WARNING — Remove only Telegram credentials. Discord and Slack remain unchanged.";
784
+ }
785
+
786
+ #setSessionLocal(enabled: boolean): void {
787
+ this.#runGuarded(
788
+ enabled ? "Enabling notifications for this session." : "Disabling notifications for this session.",
789
+ () => this.operations.setSessionLocal(enabled),
790
+ async result => {
791
+ if (!(await this.#refreshAfterOperation())) return;
792
+
793
+ if (!result.status.eligible) {
794
+ this.#status = "WARNING — Session notification controls are unavailable in this host session.";
795
+ return;
796
+ }
797
+ this.#status = `OK — Session notifications ${result.status.locallyEnabled ? "enabled" : "disabled"}; runtime is ${
798
+ result.status.running ? "active" : "inactive"
799
+ }.`;
800
+ },
801
+ );
802
+ }
803
+
804
+ #sendTest(): void {
805
+ this.#runGuarded(
806
+ "Sending a notification test.",
807
+ () => this.operations.sendTest(),
808
+ async result => {
809
+ this.#lastTest = result;
810
+ if (!(await this.#refreshAfterOperation())) return;
811
+
812
+ this.#status = `${result.ok ? "OK" : "ERROR"} — Test ${result.ok ? "delivered" : "failed"}: ${safeDetail(
813
+ result.detail,
814
+ "No delivery detail returned.",
815
+ )}`;
816
+ },
817
+ );
818
+ }
819
+
820
+ #recover(): void {
821
+ this.#runGuarded(
822
+ "Recovering notification delivery.",
823
+ () => this.operations.recover(),
824
+ async result => {
825
+ if (!(await this.#refreshAfterOperation())) return;
826
+
827
+ this.#status = `OK — Recovery scanned ${result.endpointsScanned} endpoint(s); removed ${result.endpointsRemoved.length}. ${safeDetail(
828
+ result.daemon.detail,
829
+ "Daemon recovery completed.",
830
+ )}`;
831
+ },
832
+ );
833
+ }
834
+
835
+ #reconnect(): void {
836
+ this.#runGuarded(
837
+ "Reconnecting the Telegram runtime.",
838
+ () => this.operations.reconnect(),
839
+ async result => {
840
+ if (!(await this.#refreshAfterOperation())) return;
841
+
842
+ this.#status =
843
+ result === "blocked_identity"
844
+ ? "ERROR — Telegram activation is blocked by a foreign daemon. Current session is stopped; foreign daemon untouched."
845
+ : `OK — Telegram daemon ${result}.`;
846
+ },
847
+ );
848
+ }
849
+
850
+ #commitConfiguration(): void {
851
+ const draft = this.#prepared;
852
+ if (!draft) {
853
+ this.#mode = "home";
854
+ this.#status = "ERROR — The setup draft expired. Re-enter the masked Telegram token.";
855
+ return;
856
+ }
857
+ this.#runGuarded(
858
+ "Saving Telegram configuration.",
859
+ () => this.operations.commitConfigure(draft),
860
+ async result => {
861
+ this.#clearDrafts();
862
+ if (result.status === "blocked_identity") {
863
+ this.#blockedCommit = result;
864
+ if (!(await this.#refreshAfterOperation())) return;
865
+ this.#confirmation = "blocked_identity";
866
+ this.#mode = "confirmation";
867
+ this.#selectedIndex = 0;
868
+ this.#status = `ERROR — ${safeDetail(
869
+ result.message,
870
+ "Configuration saved but activation blocked by a foreign daemon.",
871
+ )}`;
872
+ return;
873
+ }
874
+ if (!(await this.#afterDurableMutation())) return;
875
+ this.#mode = "home";
876
+ this.#selectedIndex = 0;
877
+ this.#status = `OK — ${safeDetail(result.message, "Telegram configuration saved and reconciled.")}`;
878
+ },
879
+ );
880
+ }
881
+
882
+ #saveInactive(): void {
883
+ const draft = this.#prepared;
884
+ if (!draft) return;
885
+ this.#runGuarded(
886
+ "Saving Telegram configuration inactive for later.",
887
+ () => this.operations.saveInactive(draft),
888
+ async result => {
889
+ if (result.status === "unavailable") {
890
+ this.#mode = "review";
891
+ this.#status = `WARNING — ${safeDetail(result.guidance, "Save inactive is unavailable while another adapter is globally enabled.")}`;
892
+ return;
893
+ }
894
+ if (!(await this.#afterDurableMutation())) return;
895
+
896
+ this.#clearDrafts();
897
+ this.#mode = "home";
898
+ this.#selectedIndex = 0;
899
+ this.#status = `OK — ${safeDetail(result.message, "Telegram configuration saved inactive; foreign daemon untouched.")}`;
900
+ },
901
+ );
902
+ }
903
+
904
+ #savePreferences(): void {
905
+ const preferences = this.#preferencesDraft;
906
+ if (!preferences) return;
907
+ this.#runGuarded(
908
+ "Saving notification preferences.",
909
+ () => this.operations.commitPreferences(preferences),
910
+ async result => {
911
+ if (!(await this.#afterDurableMutation())) return;
912
+ this.#preferencesDraft = undefined;
913
+ this.#mode = "home";
914
+ this.#selectedIndex = 0;
915
+ this.#status = `OK — ${safeDetail(result.message, "Notification preferences saved atomically.")}`;
916
+ },
917
+ );
918
+ }
919
+
920
+ #togglePreference(id: Action["id"]): void {
921
+ const draft = this.#preferencesDraft;
922
+ if (!draft) return;
923
+ switch (id) {
924
+ case "configure":
925
+ draft.redact = !draft.redact;
926
+ return;
927
+ case "enable":
928
+ draft.verbosity = draft.verbosity === "lean" ? "verbose" : "lean";
929
+ return;
930
+ case "disable":
931
+ draft.sessionScope = draft.sessionScope === "all" ? "primary" : "all";
932
+ return;
933
+ case "session":
934
+ draft.richEnabled = !draft.richEnabled;
935
+ return;
936
+ case "refresh":
937
+ draft.richDraftEnabled = !draft.richDraftEnabled;
938
+ return;
939
+ case "tool-activity":
940
+ draft.toolActivityEnabled = !draft.toolActivityEnabled;
941
+ return;
942
+ case "test":
943
+ draft.streamingEnabled = !draft.streamingEnabled;
944
+ return;
945
+ default:
946
+ return;
947
+ }
948
+ }
949
+
950
+ #providerActions(): readonly Action[] {
951
+ return [
952
+ {
953
+ id: "telegram",
954
+ label: "Telegram",
955
+ description: "Configure a masked bot token and optionally validate or discover a private-chat destination.",
956
+ },
957
+ {
958
+ id: "external",
959
+ label: "Discord (managed elsewhere)",
960
+ description:
961
+ "Discord credentials are configured by the Discord provider integration, not this Telegram setup flow.",
962
+ },
963
+ {
964
+ id: "external",
965
+ label: "Slack (managed elsewhere)",
966
+ description:
967
+ "Slack credentials are configured by the Slack provider integration, not this Telegram setup flow.",
968
+ },
969
+ ];
970
+ }
971
+
972
+ #homeActions(): readonly Action[] {
973
+ return [
974
+ {
975
+ id: "configure",
976
+ label: this.#state.status.telegram.configured ? "Reconfigure Telegram" : "Configure Telegram",
977
+ description:
978
+ "Enter a masked Telegram credential and optionally a private-chat destination; guided discovery is available.",
979
+ },
980
+ {
981
+ id: "enable",
982
+ label: "Enable globally",
983
+ description: "Use stored complete credentials without showing a token.",
984
+ },
985
+ {
986
+ id: "disable",
987
+ label: "Disable globally",
988
+ description: "Stops all globally configured notification adapters after confirmation.",
989
+ },
990
+ {
991
+ id: "session",
992
+ label: this.#state.session.locallyEnabled
993
+ ? "Turn session notifications off"
994
+ : "Turn session notifications on",
995
+ description: "Changes only the current session-local notification gate.",
996
+ },
997
+ {
998
+ id: "refresh",
999
+ label: "Refresh health",
1000
+ description: "Read the current local health and daemon ownership state.",
1001
+ },
1002
+ {
1003
+ id: "probe",
1004
+ label: "Probe health",
1005
+ description: "Optionally check Telegram reachability; once started, the probe runs to completion.",
1006
+ },
1007
+ {
1008
+ id: "test",
1009
+ label: "Send test notification",
1010
+ description: "Sends one test; it may already be delivered once started.",
1011
+ },
1012
+ {
1013
+ id: "recover",
1014
+ label: "Recover notification delivery",
1015
+ description: "Safely remove only dead-owner artifacts.",
1016
+ },
1017
+ {
1018
+ id: "reconnect",
1019
+ label: "Reconnect Telegram runtime",
1020
+ description: "Reconcile the daemon identity without disturbing a foreign owner.",
1021
+ },
1022
+ {
1023
+ id: "remove",
1024
+ label: "Remove Telegram",
1025
+ description: "Removes Telegram only; Discord and Slack remain unchanged.",
1026
+ },
1027
+ {
1028
+ id: "preferences",
1029
+ label: "Notification preferences",
1030
+ description: "Draft safe scalar preferences, then save them atomically.",
1031
+ },
1032
+ ];
1033
+ }
1034
+
1035
+ #reviewActions(): readonly Action[] {
1036
+ const foreignOrUnknown = this.#preflightIdentity === "foreign" || this.#preflightIdentity === "unknown";
1037
+ if (foreignOrUnknown) {
1038
+ return [
1039
+ {
1040
+ id: "save-inactive",
1041
+ label: "Save inactive for later",
1042
+ description: "Store Telegram only when no enabled Discord or Slack adapter would be disabled.",
1043
+ },
1044
+ { id: "cancel", label: "Cancel setup", description: "Discard this transient setup draft." },
1045
+ ];
1046
+ }
1047
+ return [
1048
+ {
1049
+ id: "save",
1050
+ label: "Save configuration",
1051
+ description: "Atomically save this reviewed Telegram configuration.",
1052
+ },
1053
+ { id: "cancel", label: "Cancel setup", description: "Discard this transient setup draft." },
1054
+ ];
1055
+ }
1056
+
1057
+ #preferenceActions(): readonly Action[] {
1058
+ const draft = this.#preferencesDraft ?? this.#state.preferences;
1059
+ return [
1060
+ {
1061
+ id: "configure",
1062
+ label: `Redact notification content: ${draft.redact ? "on" : "off"}`,
1063
+ description: "Toggle the unsaved redaction preference.",
1064
+ },
1065
+ {
1066
+ id: "enable",
1067
+ label: `Notification verbosity: ${draft.verbosity}`,
1068
+ description: "Toggle between lean and verbose drafts.",
1069
+ },
1070
+ {
1071
+ id: "disable",
1072
+ label: `Session scope: ${draft.sessionScope}`,
1073
+ description: "Toggle between all and primary sessions.",
1074
+ },
1075
+ {
1076
+ id: "session",
1077
+ label: `Telegram rich messages: ${draft.richEnabled ? "on" : "off"}`,
1078
+ description: "Toggle the unsaved rich-message preference.",
1079
+ },
1080
+ {
1081
+ id: "refresh",
1082
+ label: `Telegram rich drafts: ${draft.richDraftEnabled ? "on" : "off"}`,
1083
+ description: "Toggle the unsaved rich-draft preference.",
1084
+ },
1085
+ {
1086
+ id: "tool-activity",
1087
+ label: `Telegram tool activity: ${draft.toolActivityEnabled ? "on" : "off"}`,
1088
+ description: "Toggle tool start and completion notifications.",
1089
+ },
1090
+ {
1091
+ id: "test",
1092
+ label: `Telegram streaming: ${draft.streamingEnabled ? "on" : "off"}`,
1093
+ description: "Toggle the unsaved Telegram streaming preference.",
1094
+ },
1095
+ { id: "save", label: "Save preferences", description: "Atomically persist this preference draft." },
1096
+ { id: "cancel", label: "Cancel and discard draft", description: "Leave saved preferences unchanged." },
1097
+ ];
1098
+ }
1099
+
1100
+ #renderHome(width: number): string[] {
1101
+ const lines = this.#renderSummary(width);
1102
+ lines.push("");
1103
+ this.#renderActionList(lines, width, this.#homeActions());
1104
+ return lines;
1105
+ }
1106
+
1107
+ #renderProviderSelection(width: number): string[] {
1108
+ const lines = [theme.bold(theme.fg("accent", "Choose a notification provider"))];
1109
+ this.#appendWrapped(
1110
+ lines,
1111
+ "Select a provider to configure. Telegram setup uses a masked token and an optional private-chat ID; Discord and Slack credentials are managed by their provider integrations.",
1112
+ width,
1113
+ "muted",
1114
+ );
1115
+ lines.push("");
1116
+ this.#renderActionList(lines, width, this.#providerActions());
1117
+ return lines;
1118
+ }
1119
+
1120
+ #renderChatEntry(width: number): string[] {
1121
+ const lines = [theme.bold(theme.fg("accent", "Telegram setup — private chat ID (optional)"))];
1122
+ this.#appendWrapped(
1123
+ lines,
1124
+ "Enter a Telegram private chat ID to validate it, or leave this blank for guided private-chat discovery when polling is safe. A live same-token daemon reuses and validates its stored chat without polling.",
1125
+ width,
1126
+ "muted",
1127
+ );
1128
+ lines.push("");
1129
+ this.#chatInput.focused = this.focused;
1130
+ for (const line of this.#chatInput.render(width)) lines.push(line);
1131
+ lines.push("");
1132
+ this.#appendStatus(lines, width);
1133
+ lines.push(theme.fg("dim", " Enter to continue · Esc to cancel setup"));
1134
+ return lines;
1135
+ }
1136
+
1137
+ #renderTokenEntry(width: number): string[] {
1138
+ const lines = [theme.bold(theme.fg("accent", "Telegram setup — masked bot token"))];
1139
+ this.#appendWrapped(
1140
+ lines,
1141
+ "Paste the bot token. Only bullets render; the saved token is never prefilled or displayed.",
1142
+ width,
1143
+ "muted",
1144
+ );
1145
+ lines.push("");
1146
+ this.#tokenInput.focused = this.focused;
1147
+ for (const line of this.#tokenInput.render(width)) lines.push(line);
1148
+ lines.push("");
1149
+ this.#appendStatus(lines, width);
1150
+ lines.push(theme.fg("dim", " Enter to validate · Esc to discard setup"));
1151
+ return lines;
1152
+ }
1153
+
1154
+ #renderPairing(width: number): string[] {
1155
+ const validating = this.#pairingPhase === "validation";
1156
+ const lines = [
1157
+ theme.bold(
1158
+ theme.fg(
1159
+ "accent",
1160
+ validating ? "Telegram setup — private-chat validation" : "Telegram setup — pairing discovery",
1161
+ ),
1162
+ ),
1163
+ ];
1164
+ this.#appendWrapped(
1165
+ lines,
1166
+ validating
1167
+ ? "Validating the supplied private-chat destination. This is cancellable and has not changed configuration."
1168
+ : "Discovering a private chat when polling is safe. A live same-token daemon reuses and validates its stored chat without polling. This is cancellable and has not changed configuration.",
1169
+ width,
1170
+ "muted",
1171
+ );
1172
+ lines.push("");
1173
+ this.#appendStatus(lines, width);
1174
+ lines.push(theme.fg("dim", " Esc to cancel pairing · No configuration is saved until review confirms it"));
1175
+ return lines;
1176
+ }
1177
+
1178
+ #renderReview(width: number): string[] {
1179
+ const draft = this.#prepared;
1180
+ const lines = [theme.bold(theme.fg("accent", "Review Telegram notification setup"))];
1181
+ lines.push(
1182
+ this.#truncate(
1183
+ ` Token: ${maskedToken(draft?.tokenMask, "(expired)")} fingerprint: ${draft?.tokenFingerprint ?? "(not available)"}`,
1184
+ width,
1185
+ ),
1186
+ );
1187
+ lines.push(
1188
+ this.#truncate(
1189
+ ` Private chat: ${draft?.chatId ?? "(expired)"} rich: ${draft?.richEnabled ? "on" : "off"} drafts: ${draft?.richDraftEnabled ? "on" : "off"} streaming: ${draft?.streamingEnabled ? "on" : "off"}`,
1190
+ width,
1191
+ ),
1192
+ );
1193
+ lines.push("");
1194
+ this.#renderActionList(lines, width, this.#reviewActions());
1195
+ return lines;
1196
+ }
1197
+
1198
+ #renderPreferences(width: number): string[] {
1199
+ const lines = [theme.bold(theme.fg("accent", "Notification preferences — unsaved draft"))];
1200
+ this.#appendWrapped(
1201
+ lines,
1202
+ "These safe scalar changes do not affect settings until Save preferences completes atomically.",
1203
+ width,
1204
+ "muted",
1205
+ );
1206
+ lines.push("");
1207
+ this.#renderActionList(lines, width, this.#preferenceActions());
1208
+ return lines;
1209
+ }
1210
+
1211
+ #renderConfirmation(width: number): string[] {
1212
+ const blocked = this.#confirmation === "blocked_identity";
1213
+ const removing = this.#confirmation === "remove";
1214
+ const lines = [
1215
+ theme.bold(
1216
+ theme.fg(
1217
+ "accent",
1218
+ blocked
1219
+ ? "Telegram activation blocked by foreign daemon"
1220
+ : removing
1221
+ ? "Remove Telegram configuration?"
1222
+ : "Disable notifications globally?",
1223
+ ),
1224
+ ),
1225
+ ];
1226
+ this.#appendWrapped(
1227
+ lines,
1228
+ blocked
1229
+ ? "Configuration saved but activation blocked by a foreign daemon. Restore the CAS-protected previous configuration, or keep the saved configuration inactive."
1230
+ : removing
1231
+ ? "This removes only Telegram credentials. Configured Discord and Slack adapters remain unchanged."
1232
+ : "This disables all globally configured notification adapters. It does not change a session-local preference.",
1233
+ width,
1234
+ "muted",
1235
+ );
1236
+ lines.push("");
1237
+ this.#renderActionList(
1238
+ lines,
1239
+ width,
1240
+ blocked
1241
+ ? [
1242
+ {
1243
+ id: "confirm",
1244
+ label: "Restore previous configuration",
1245
+ description: "Safest default: restore only if the CAS receipt still matches.",
1246
+ },
1247
+ {
1248
+ id: "cancel",
1249
+ label: "Keep saved (inactive)",
1250
+ description: "Keep the saved configuration while this session remains blocked from activation.",
1251
+ },
1252
+ ]
1253
+ : [
1254
+ { id: "confirm", label: "Confirm", description: "Apply this explicit destructive action." },
1255
+ { id: "cancel", label: "Cancel", description: "Return without changing configuration." },
1256
+ ],
1257
+ );
1258
+ return lines;
1259
+ }
1260
+
1261
+ #renderSummary(width: number): string[] {
1262
+ const { status, session, health } = this.#state;
1263
+ const lines = [theme.bold(theme.fg("accent", "Notifications"))];
1264
+ lines.push(
1265
+ this.#truncate(
1266
+ ` Global: ${status.enabled ? "enabled" : "disabled"} · configured: ${status.globallyConfigured ? "yes" : "no"} · Telegram: ${
1267
+ status.telegram.configured ? "configured" : "not configured"
1268
+ }`,
1269
+ width,
1270
+ ),
1271
+ );
1272
+ lines.push(
1273
+ this.#truncate(
1274
+ ` Session: ${session.effectiveEnabled ? "ACTIVE" : "inactive"} · local: ${session.locallyEnabled ? "on" : "off"} · runtime: ${
1275
+ session.running ? "running" : "stopped"
1276
+ } · environment: ${session.environment}`,
1277
+ width,
1278
+ ),
1279
+ );
1280
+ if (width >= 100) {
1281
+ lines.push(
1282
+ this.#truncate(
1283
+ ` Telegram identity: ${status.telegram.botTokenMasked} · fingerprint: ${status.telegram.tokenFingerprint ?? "(not set)"} · chat: ${
1284
+ status.telegram.channel ?? "(not set)"
1285
+ }`,
1286
+ width,
1287
+ ),
1288
+ );
1289
+ }
1290
+ if (health && width >= 120) {
1291
+ lines.push(
1292
+ this.#truncate(
1293
+ ` Health: ${statusLabel(health.overall)} · heartbeat: ${formatTimestamp(health.daemon.heartbeatAt)} (${formatAge(
1294
+ health.daemon.heartbeatAgeMs,
1295
+ )})`,
1296
+ width,
1297
+ ),
1298
+ );
1299
+ lines.push(
1300
+ this.#truncate(
1301
+ ` Daemon: ${health.daemon.ownerId ?? "none"} pid ${health.daemon.pid ?? "unknown"} · generation ${
1302
+ health.daemon.generation ?? "unknown"
1303
+ }/${health.daemon.currentGeneration} (${health.daemon.generationRelation})`,
1304
+ width,
1305
+ ),
1306
+ );
1307
+ lines.push(
1308
+ this.#truncate(
1309
+ ` Endpoints: ${health.endpoints.total} total, ${health.endpoints.live} live, ${health.endpoints.dead} dead, ${
1310
+ health.endpoints.unknown
1311
+ } unknown · reachability: ${health.reachability.probed ? (health.reachability.ok ? "OK" : "ERROR") : "not probed"}`,
1312
+ width,
1313
+ ),
1314
+ );
1315
+ }
1316
+ if (this.#lastTest && width >= 120) {
1317
+ lines.push(
1318
+ this.#truncate(
1319
+ ` Last in-editor test: ${this.#lastTest.ok ? "OK" : "ERROR"} — ${safeDetail(this.#lastTest.detail, "No detail returned.")}`,
1320
+ width,
1321
+ ),
1322
+ );
1323
+ }
1324
+ return lines;
1325
+ }
1326
+
1327
+ #renderActionList(lines: string[], width: number, actions: readonly Action[]): void {
1328
+ if (actions.length === 0) return;
1329
+ this.#selectedIndex = Math.max(0, Math.min(this.#selectedIndex, actions.length - 1));
1330
+ const start = Math.max(
1331
+ 0,
1332
+ Math.min(this.#selectedIndex - Math.floor(VISIBLE_ACTIONS / 2), actions.length - VISIBLE_ACTIONS),
1333
+ );
1334
+ const end = Math.min(actions.length, start + VISIBLE_ACTIONS);
1335
+ for (let index = start; index < end; index += 1) {
1336
+ const action = actions[index];
1337
+ if (!action) continue;
1338
+ const selected = index === this.#selectedIndex;
1339
+ const prefix = selected ? `${theme.symbol("nav.cursor")} ` : " ";
1340
+ const label = selected ? theme.bold(theme.fg("accent", action.label)) : theme.fg("text", action.label);
1341
+ lines.push(this.#truncate(prefix + label, width));
1342
+ }
1343
+ if (start > 0 || end < actions.length)
1344
+ lines.push(theme.fg("dim", this.#truncate(` (${this.#selectedIndex + 1}/${actions.length})`, width)));
1345
+ const selected = actions[this.#selectedIndex];
1346
+ if (selected) this.#appendWrapped(lines, selected.description, width, "dim", 1);
1347
+ this.#appendStatus(lines, width);
1348
+ lines.push(theme.fg("dim", this.#truncate(" Enter/Space action · ↑↓ move · Esc cancel", width)));
1349
+ }
1350
+
1351
+ #appendStatus(lines: string[], width: number): void {
1352
+ const separator = " — ";
1353
+ const separatorIndex = this.#status.indexOf(separator);
1354
+ const label = separatorIndex === -1 ? this.#status : this.#status.slice(0, separatorIndex);
1355
+ const guidance = separatorIndex === -1 ? "" : this.#status.slice(separatorIndex + separator.length).trim();
1356
+ const color = this.#status.startsWith("OK")
1357
+ ? "success"
1358
+ : this.#status.startsWith("WARNING") || this.#status.startsWith("ABORTED")
1359
+ ? "warning"
1360
+ : this.#status.startsWith("ERROR")
1361
+ ? "error"
1362
+ : "muted";
1363
+
1364
+ lines.push(theme.fg(color, this.#truncate(` ${label}`, width)));
1365
+ if (!guidance) return;
1366
+ for (const line of wrapTextWithAnsi(guidance, Math.max(1, width - 4))) {
1367
+ lines.push(theme.fg(color, ` ${line}`));
1368
+ }
1369
+ }
1370
+
1371
+ #appendWrapped(
1372
+ lines: string[],
1373
+ text: string,
1374
+ width: number,
1375
+ color: "muted" | "dim",
1376
+ maxLines = Number.POSITIVE_INFINITY,
1377
+ ): void {
1378
+ const wrapped = wrapTextWithAnsi(text, Math.max(1, width - 4));
1379
+ for (const line of wrapped.slice(0, maxLines)) lines.push(theme.fg(color, ` ${line}`));
1380
+ }
1381
+
1382
+ #truncate(text: string, width: number): string {
1383
+ return truncateToWidth(text, Math.max(1, width));
1384
+ }
1385
+
1386
+ #healthSummary(health: NotificationHealthReport): string {
1387
+ const first = health.checks.find(check => check.level === health.overall) ?? health.checks[0];
1388
+ return safeDetail(first?.detail, "Health refreshed.");
1389
+ }
1390
+
1391
+ async #loadState(): Promise<void> {
1392
+ const sequence = ++this.#loadSequence;
1393
+ try {
1394
+ const state = await this.operations.loadState();
1395
+ if (this.#disposed || sequence !== this.#loadSequence) return;
1396
+ this.#state = state;
1397
+ if (state.health) this.#status = `${statusLabel(state.health.overall)} — ${this.#healthSummary(state.health)}`;
1398
+ } catch {
1399
+ if (this.#disposed || sequence !== this.#loadSequence) return;
1400
+ this.#status = "WARNING — Notification status is temporarily unavailable; refresh health to retry.";
1401
+ }
1402
+ }
1403
+ }