@sayknow-cli/coding-agent 0.3.16 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1474) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/package.json +127 -110
  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
@@ -1,3 +1,4 @@
1
+ import { createHash } from "node:crypto";
1
2
  import * as fs from "node:fs/promises";
2
3
  import * as path from "node:path";
3
4
  import type { WorkflowHudSummary } from "../skill-state/active-state";
@@ -27,7 +28,17 @@ import {
27
28
  } from "../skill-state/workflow-state-contract";
28
29
  import { renderCliWriteReceipt } from "./cli-write-receipt";
29
30
  import { applyAmbiguityFloorToEnvelope } from "./deep-interview-ambiguity";
30
- import { mergeDeepInterviewEnvelope, normalizeDeepInterviewEnvelope } from "./deep-interview-state";
31
+ import {
32
+ assertDeepInterviewEnvelopeInputLimits,
33
+ assertDeepInterviewInputWithinLimit,
34
+ assertDeepInterviewIntentManifest,
35
+ assertDeepInterviewIntentReview,
36
+ assertDeepInterviewStructuredResponseWithinLimit,
37
+ type DeepInterviewIntentManifest,
38
+ MAX_DEEP_INTERVIEW_STRUCTURED_RESPONSE_LENGTH,
39
+ mergeDeepInterviewEnvelope,
40
+ normalizeDeepInterviewEnvelope,
41
+ } from "./deep-interview-state";
31
42
  import { activeSnapshotPath, auditPath, modeStatePath, sessionStateDir } from "./session-layout";
32
43
  import {
33
44
  resolveSkcSessionForRead,
@@ -35,6 +46,7 @@ import {
35
46
  SessionResolutionError,
36
47
  writeSessionActivityMarker,
37
48
  } from "./session-resolution";
49
+ import { classifyStateArgv, firstStateFlagValue, type StateAction, type StateArgvClassification } from "./state-argv";
38
50
  import { renderStateGraph, type StateGraphFormat } from "./state-graph";
39
51
  import { migrateAndPersistLegacyState, migrateWorkflowState } from "./state-migrations";
40
52
  import {
@@ -61,9 +73,11 @@ import {
61
73
  softDelete,
62
74
  updateWorkflowTransactionJournal,
63
75
  type WorkflowEnvelopeIntegrityMismatch,
76
+ withWorkflowStateLock,
64
77
  writeGuardedWorkflowEnvelopeAtomic,
65
78
  } from "./state-writer";
66
- import { getSkillManifest, isKnownWorkflowState, isValidTransition, typedArgsFor } from "./workflow-manifest";
79
+ import { assertSafePathComponent, CommandError, flagValue, hasFlag, isPlainObject } from "./workflow-cli-common";
80
+ import { getSkillManifest, isKnownWorkflowState, isValidTransition } from "./workflow-manifest";
67
81
 
68
82
  /**
69
83
  * Native implementation of the `skc state read|write|clear` command surface.
@@ -80,168 +94,21 @@ export interface StateCommandResult {
80
94
  }
81
95
 
82
96
  const SKILL_ACTIVE_STATE_FILE = "skill-active-state.json";
83
- const TERMINAL_CLEAR_PHASES = new Set(["complete", "completed", "cancelled", "canceled", "failed"]);
84
- const PATH_COMPONENT_RE = /^[A-Za-z0-9_-][A-Za-z0-9._-]{0,63}$/;
85
97
  const KNOWN_MODES: readonly string[] = CANONICAL_SKC_WORKFLOW_SKILLS;
86
98
 
87
- class StateCommandError extends Error {
88
- constructor(
89
- public readonly exitStatus: number,
90
- message: string,
91
- ) {
92
- super(message);
99
+ class StateCommandError extends CommandError {
100
+ constructor(exitStatus: number, message: string) {
101
+ super(exitStatus, message);
93
102
  this.name = "StateCommandError";
94
103
  }
95
104
  }
96
105
 
97
- function flagValue(args: readonly string[], flag: string): string | undefined {
98
- const index = args.indexOf(flag);
99
- if (index < 0) return undefined;
100
- return args[index + 1];
101
- }
102
-
103
- function hasFlag(args: readonly string[], flag: string): boolean {
104
- return args.includes(flag);
105
- }
106
-
107
106
  const GRAPH_FORMATS = new Set(["ascii", "mermaid", "dot"]);
108
- const FLAGS_WITH_VALUES = new Set([
109
- "--input",
110
- "--mode",
111
- "--session-id",
112
- "--thread-id",
113
- "--turn-id",
114
- "--to",
115
- "--skill",
116
- "--format",
117
- "--older-than",
118
- "--status",
119
- "--fields",
120
- "--since",
121
- "--limit",
122
- ]);
123
- const ACTION_NAMES = new Set([
124
- "read",
125
- "write",
126
- "clear",
127
- "contract",
128
- "handoff",
129
- "graph",
130
- "prune",
131
- "gc",
132
- "migrate",
133
- "status",
134
- "doctor",
135
- ]);
136
- const BOOLEAN_FLAGS = new Set([
137
- "--json",
138
- "--replace",
139
- "--hard",
140
- "--dry-run",
141
- "--migrate",
142
- "--compact",
143
- "--history",
144
- "--force",
145
- ]);
146
- const VERB_SPECIFIC_FLAGS = new Set([
147
- "--skill",
148
- "--format",
149
- "--older-than",
150
- "--status",
151
- "--fields",
152
- "--since",
153
- "--limit",
154
- "--history",
155
- ]);
156
-
157
- function flagName(arg: string): string | undefined {
158
- if (!arg.startsWith("--")) return undefined;
159
- const equalsIndex = arg.indexOf("=");
160
- return equalsIndex >= 0 ? arg.slice(0, equalsIndex) : arg;
161
- }
162
-
163
- function manifestFlagNames(action: ParsedInvocation["action"], positionalSkill: string | undefined): Set<string> {
164
- const names = new Set<string>();
165
- const skills =
166
- positionalSkill && KNOWN_MODES.includes(positionalSkill)
167
- ? [positionalSkill as CanonicalSkcWorkflowSkill]
168
- : CANONICAL_SKC_WORKFLOW_SKILLS;
169
- for (const skill of skills) {
170
- for (const arg of typedArgsFor(skill, action)) names.add(`--${arg.name}`);
171
- }
172
- return names;
173
- }
174
-
175
- function assertKnownFlags(args: readonly string[], parsed: ParsedInvocation): void {
176
- const manifestFlags = manifestFlagNames(parsed.action, parsed.positionalSkill);
177
- for (const arg of args) {
178
- const flag = flagName(arg);
179
- if (!flag) continue;
180
- if (
181
- FLAGS_WITH_VALUES.has(flag) ||
182
- BOOLEAN_FLAGS.has(flag) ||
183
- VERB_SPECIFIC_FLAGS.has(flag) ||
184
- manifestFlags.has(flag)
185
- ) {
186
- continue;
187
- }
188
- throw new StateCommandError(2, `unknown skc state flag: ${flag}`);
189
- }
107
+ function assertKnownFlags(classification: StateArgvClassification): void {
108
+ const [unknownFlag] = classification.unknownFlags;
109
+ if (unknownFlag) throw new StateCommandError(2, `unknown skc state flag: ${unknownFlag}`);
190
110
  }
191
111
 
192
- interface ParsedInvocation {
193
- action:
194
- | "read"
195
- | "write"
196
- | "clear"
197
- | "contract"
198
- | "handoff"
199
- | "graph"
200
- | "prune"
201
- | "gc"
202
- | "migrate"
203
- | "status"
204
- | "doctor";
205
- positionalSkill?: string;
206
- }
207
-
208
- function parsePositionalArgs(args: readonly string[]): ParsedInvocation {
209
- let skipNext = false;
210
- const positional: string[] = [];
211
- for (const arg of args) {
212
- if (skipNext) {
213
- skipNext = false;
214
- continue;
215
- }
216
- if (FLAGS_WITH_VALUES.has(arg)) {
217
- skipNext = true;
218
- continue;
219
- }
220
- if (!arg.startsWith("-")) positional.push(arg);
221
- }
222
- // Documented argv shapes:
223
- // skc state read|write|clear|contract ...
224
- // skc state <skill> read|write|contract ...
225
- const first = positional[0];
226
- const second = positional[1];
227
- if (first && ACTION_NAMES.has(first)) {
228
- return { action: first as ParsedInvocation["action"], positionalSkill: second };
229
- }
230
- if (first && second && ACTION_NAMES.has(second)) {
231
- return { action: second as ParsedInvocation["action"], positionalSkill: first };
232
- }
233
- // `skc state <skill>` alone defaults to read for that skill.
234
- if (first && !second) {
235
- return { action: "read", positionalSkill: first };
236
- }
237
- return { action: "read" };
238
- }
239
-
240
- function assertSafePathComponent(value: string, label: string): void {
241
- if (!PATH_COMPONENT_RE.test(value) || value.includes("..")) {
242
- throw new StateCommandError(2, `invalid path component for --${label}: ${value}`);
243
- }
244
- }
245
112
  function isKnownMode(mode: string): mode is CanonicalSkcWorkflowSkill {
246
113
  return KNOWN_MODES.includes(mode);
247
114
  }
@@ -290,19 +157,16 @@ interface ResolvedSelectors {
290
157
  // `clear` resolves like a read (explicit -> payload -> env -> latest-activity marker)
291
158
  // per the spec: read/status/clear may fall back to the most-recent session. Commands
292
159
  // that create or mutate new state roots still require an explicit/env session id.
293
- const WRITE_SESSION_ACTIONS = new Set<ParsedInvocation["action"]>(["write", "handoff", "prune", "migrate"]);
160
+ const WRITE_SESSION_ACTIONS = new Set<StateAction>(["write", "handoff", "prune", "migrate"]);
294
161
 
295
- async function resolveSelectors(
296
- args: readonly string[],
297
- cwd: string,
298
- positionalSkill: string | undefined,
299
- action: ParsedInvocation["action"],
300
- ): Promise<ResolvedSelectors> {
301
- const payload = await readInputJson(flagValue(args, "--input"), cwd);
162
+ async function resolveSelectors(args: readonly string[], cwd: string, action: StateAction): Promise<ResolvedSelectors> {
163
+ const classification = classifyStateArgv(args);
164
+ const payload = await readInputJson(firstStateFlagValue(classification, "--input"), cwd);
302
165
 
166
+ const [modeCandidate, positionalCandidate] = classification.runtimeSelectorCandidates;
303
167
  const candidates: Array<string | undefined> = [
304
- flagValue(args, "--mode")?.trim() || undefined,
305
- positionalSkill?.trim() || undefined,
168
+ modeCandidate?.value,
169
+ positionalCandidate?.value,
306
170
  typeof payload?.mode === "string" ? (payload.mode as string).trim() || undefined : undefined,
307
171
  typeof payload?.skill === "string" ? (payload.skill as string).trim() || undefined : undefined,
308
172
  ];
@@ -391,7 +255,9 @@ async function describeStaleClearState(
391
255
  existing: Record<string, unknown>,
392
256
  ): Promise<string | undefined> {
393
257
  const phase = typeof existing.current_phase === "string" ? existing.current_phase.trim() : undefined;
394
- if (phase && TERMINAL_CLEAR_PHASES.has(phase)) return `mode-state is already terminal (${phase})`;
258
+ if (phase && getSkillManifest(mode).stopReleasingPhases.includes(phase) && phase !== "inactive") {
259
+ return `mode-state is already terminal (${phase})`;
260
+ }
395
261
  const activePhase = await readActivePhaseForSkill(cwd, sessionId, mode);
396
262
  if (activePhase && phase && activePhase !== phase) {
397
263
  return `active-state phase ${activePhase} differs from mode-state phase ${phase}`;
@@ -504,22 +370,11 @@ function phaseFromActiveValue(value: unknown): string | undefined {
504
370
  return phase || undefined;
505
371
  }
506
372
 
507
- const RALPLAN_CANONICAL_PHASE_OVERRIDES = new Set([
508
- "final",
509
- "handoff",
510
- "complete",
511
- "completed",
512
- "failed",
513
- "cancelled",
514
- "canceled",
515
- "inactive",
516
- ]);
517
-
518
373
  function modeStatePhase(value: unknown): string | undefined {
519
374
  if (!isPlainObject(value) || typeof value.current_phase !== "string") return undefined;
520
375
  const phase = value.current_phase.trim();
521
376
  if (!phase) return undefined;
522
- if (value.active === false && !RALPLAN_CANONICAL_PHASE_OVERRIDES.has(phase)) return undefined;
377
+ if (value.active === false && !getSkillManifest("ralplan").canonicalOverrides.includes(phase)) return undefined;
523
378
  return phase;
524
379
  }
525
380
 
@@ -821,6 +676,7 @@ async function writeJsonAtomic(
821
676
  fromPhase?: string;
822
677
  toPhase?: string;
823
678
  owner?: WorkflowStateMutationOwner;
679
+ lockHeld?: boolean;
824
680
  },
825
681
  ): Promise<{ warning?: string; stamped: Record<string, unknown>; revision: number }> {
826
682
  const warning = options?.skill
@@ -850,6 +706,7 @@ async function writeJsonAtomic(
850
706
  toPhase: options?.toPhase,
851
707
  forced: options?.force ?? false,
852
708
  },
709
+ lockHeld: options?.lockHeld ?? false,
853
710
  });
854
711
  // `writeResult.stamped` and `.revision` are computed inside the writer lock, so they are
855
712
  // the envelope/revision this write actually owns. Never post-lock re-read here: a concurrent
@@ -938,10 +795,6 @@ async function readAuditWindow(
938
795
  return { entries: selected.reverse(), limit, ...(since ? { since } : {}), truncated: matched > limit };
939
796
  }
940
797
 
941
- function isPlainObject(value: unknown): value is Record<string, unknown> {
942
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
943
- }
944
-
945
798
  /**
946
799
  * Shallow-merge `source` into `target`, with the convention that a `source` key whose value is
947
800
  * `null` deletes that key from `target`. Nested objects are replaced wholesale (not deep-merged)
@@ -1127,12 +980,23 @@ export async function reconcileWorkflowSkillState(options: {
1127
980
  payload: Record<string, unknown>;
1128
981
  sourceRevision?: number;
1129
982
  }): Promise<{ stateFile: string }> {
1130
- const { cwd, mode, threadId, turnId, active, payload } = options;
1131
- const { skcSessionId: sessionId } = resolveSkcSessionForWrite(cwd, {
983
+ const { skcSessionId: sessionId } = resolveSkcSessionForWrite(options.cwd, {
1132
984
  payloadSessionId: options.sessionId,
1133
985
  envSessionId: process.env.SKC_SESSION_ID,
1134
986
  });
987
+ return withWorkflowStateLock(
988
+ path.relative(options.cwd, modeStateFile(options.cwd, options.mode, sessionId)),
989
+ async () => reconcileWorkflowSkillStateUnlocked(options, sessionId),
990
+ );
991
+ }
992
+
993
+ async function reconcileWorkflowSkillStateUnlocked(
994
+ options: Parameters<typeof reconcileWorkflowSkillState>[0],
995
+ sessionId: string,
996
+ ): Promise<{ stateFile: string }> {
997
+ const { cwd, mode, threadId, turnId, active, payload } = options;
1135
998
  const filePath = modeStateFile(cwd, mode, sessionId);
999
+ if (mode === "deep-interview") assertDeepInterviewStructuredResponseWithinLimit(payload);
1136
1000
  const existingRead = await readExistingStateForMutation(filePath);
1137
1001
  const existingPayload = existingRead.kind === "valid" ? existingRead.value : {};
1138
1002
  const nowIsoStr = nowIso();
@@ -1169,6 +1033,7 @@ export async function reconcileWorkflowSkillState(options: {
1169
1033
  unknown
1170
1034
  >)
1171
1035
  : mergeWithNullDelete(existingPayload, payload);
1036
+ if (mode === "deep-interview") assertDeepInterviewEnvelopeInputLimits(merged);
1172
1037
  merged.skill = mode;
1173
1038
  merged.current_phase = trimmedPhase;
1174
1039
  merged.active = active;
@@ -1181,9 +1046,10 @@ export async function reconcileWorkflowSkillState(options: {
1181
1046
  if (!validation.valid) throw new StateCommandError(2, validation.error ?? `invalid ${mode} state envelope`);
1182
1047
 
1183
1048
  if (existingRead.kind === "corrupt") await fs.rm(filePath, { force: true });
1184
- await writeGuardedWorkflowEnvelopeAtomic(filePath, merged, {
1049
+ const writeResult = await writeGuardedWorkflowEnvelopeAtomic(filePath, merged, {
1185
1050
  cwd,
1186
1051
  policy: "source",
1052
+ lockHeld: true,
1187
1053
  receipt: {
1188
1054
  cwd,
1189
1055
  skill: mode,
@@ -1209,8 +1075,7 @@ export async function reconcileWorkflowSkillState(options: {
1209
1075
  toPhase: trimmedPhase,
1210
1076
  },
1211
1077
  });
1212
- const persisted = (await readJsonFile(filePath)) ?? {};
1213
- const sourceRevision = options.sourceRevision ?? existingStateRevision(persisted);
1078
+ const sourceRevision = options.sourceRevision ?? writeResult.revision;
1214
1079
 
1215
1080
  // Reconciliation drives the active-state/HUD update directly (not via the
1216
1081
  // best-effort syncWorkflowSkillState wrapper) so a failed HUD/active-state write
@@ -1244,12 +1109,8 @@ export async function readWorkflowStateJson(
1244
1109
  return (await readJsonFile(modeStateFile(cwd, skill, session.skcSessionId))) ?? {};
1245
1110
  }
1246
1111
 
1247
- async function handleRead(
1248
- args: readonly string[],
1249
- cwd: string,
1250
- positionalSkill: string | undefined,
1251
- ): Promise<StateCommandResult> {
1252
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "read");
1112
+ async function handleRead(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1113
+ const selectors = await resolveSelectors(args, cwd, "read");
1253
1114
  const mode = selectors.mode ?? (await inferModeFromActiveState(cwd, selectors.skcSessionId));
1254
1115
  const fields = parseFieldsFlag(args);
1255
1116
  if (mode) {
@@ -1288,12 +1149,8 @@ async function handleRead(
1288
1149
  return { status: 0, stdout: `${JSON.stringify(existing ?? {}, null, 2)}\n` };
1289
1150
  }
1290
1151
 
1291
- async function handleStatus(
1292
- args: readonly string[],
1293
- cwd: string,
1294
- positionalSkill: string | undefined,
1295
- ): Promise<StateCommandResult> {
1296
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "read");
1152
+ async function handleStatus(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1153
+ const selectors = await resolveSelectors(args, cwd, "read");
1297
1154
  const mode = selectors.mode ?? (await inferModeFromActiveState(cwd, selectors.skcSessionId));
1298
1155
  if (!mode) {
1299
1156
  throw new StateCommandError(
@@ -1315,12 +1172,8 @@ async function handleStatus(
1315
1172
  };
1316
1173
  }
1317
1174
 
1318
- async function handleWrite(
1319
- args: readonly string[],
1320
- cwd: string,
1321
- positionalSkill: string | undefined,
1322
- ): Promise<StateCommandResult> {
1323
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "write");
1175
+ async function handleWrite(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1176
+ const selectors = await resolveSelectors(args, cwd, "write");
1324
1177
  const { skcSessionId: sessionId, threadId, turnId, payload } = selectors;
1325
1178
  if (!payload) throw new StateCommandError(2, "skc state write requires --input '<json>'");
1326
1179
  const mode = selectors.mode ?? (await inferModeFromActiveState(cwd, sessionId));
@@ -1330,142 +1183,167 @@ async function handleWrite(
1330
1183
  "skc state write requires --mode <skill>, positional <skill>, input.skill, or an active workflow in the current session active state",
1331
1184
  );
1332
1185
 
1333
- const filePath = modeStateFile(cwd, mode, sessionId);
1334
- const forced = hasFlag(args, "--force");
1335
- const existingRead = await readExistingStateForMutation(filePath);
1336
- if (existingRead.kind === "corrupt" && !forced) {
1337
- throw new StateCommandError(
1338
- 2,
1339
- `existing state for ${mode} is corrupt or tampered (${existingRead.error}); use --force to overwrite`,
1340
- );
1341
- }
1342
- const existingPayload = existingRead.kind === "valid" ? existingRead.value : {};
1343
- const nowIsoStr = nowIso();
1344
- const mutationId = `${mode}:${nowIsoStr}`;
1345
- const receipt = buildWorkflowStateReceipt({
1346
- cwd,
1347
- skill: mode,
1348
- owner: "skc-state-cli",
1349
- command: `skc state ${mode} write`,
1350
- sessionId,
1351
- nowIso: nowIsoStr,
1352
- mutationId,
1353
- });
1354
- const innerState = (payload.state as Record<string, unknown> | undefined) ?? {};
1355
- const incomingPhase =
1356
- typeof payload.current_phase === "string" && payload.current_phase.trim()
1357
- ? payload.current_phase.trim()
1358
- : typeof payload.phase === "string" && payload.phase.trim()
1359
- ? payload.phase.trim()
1360
- : typeof innerState.current_phase === "string" && (innerState.current_phase as string).trim()
1361
- ? (innerState.current_phase as string).trim()
1362
- : undefined;
1363
- let merged: Record<string, unknown>;
1364
1186
  if (mode === "deep-interview") {
1365
- // Deep-interview keeps interview data nested under `state` and merges rounds
1366
- // losslessly by durable key; never flatten or delete `state` (that drops recorder history).
1367
- // The deterministic ambiguity floor is applied after the merge so a reported
1368
- // score written through the CLI can never undercut persisted contradiction evidence.
1369
- merged = applyAmbiguityFloorToEnvelope(
1370
- mergeDeepInterviewEnvelope(existingPayload, payload, { replace: hasFlag(args, "--replace") }),
1371
- ).envelope;
1372
- } else if (hasFlag(args, "--replace")) {
1373
- merged = { ...payload };
1374
- } else {
1375
- merged = mergeWithNullDelete(existingPayload, payload);
1376
- // Flatten payload.state.* into the top-level envelope so downstream consumers
1377
- // see a single canonical structure with the receipt at top level.
1378
- if (payload.state && typeof payload.state === "object" && !Array.isArray(payload.state)) {
1379
- merged = mergeWithNullDelete(merged, payload.state as Record<string, unknown>);
1380
- delete merged.state;
1381
- }
1382
- }
1383
- const preDefaultValidation = validateWorkflowStateEnvelope(mode, merged);
1384
- if (!preDefaultValidation.valid) {
1385
- throw new StateCommandError(2, preDefaultValidation.error ?? `invalid ${mode} state envelope`);
1386
- }
1387
- merged.skill = mode;
1388
- if (incomingPhase) {
1389
- merged.current_phase = incomingPhase;
1390
- } else if (typeof merged.current_phase !== "string" || !merged.current_phase.trim()) {
1391
- const retainedPhase =
1392
- typeof existingPayload.current_phase === "string" ? existingPayload.current_phase.trim() : "";
1393
- merged.current_phase = retainedPhase || initialPhaseForSkill(mode);
1394
- } else {
1395
- merged.current_phase = merged.current_phase.trim();
1396
- }
1397
- merged.version = WORKFLOW_STATE_VERSION;
1398
- if (typeof merged.active !== "boolean") merged.active = true;
1399
- merged.updated_at = nowIsoStr;
1400
- merged.receipt = receipt;
1401
- if (sessionId && typeof merged.session_id !== "string") merged.session_id = sessionId;
1402
-
1403
- const fromPhase =
1404
- typeof existingPayload.current_phase === "string" ? existingPayload.current_phase.trim() : undefined;
1405
- const toPhase = merged.current_phase as string;
1406
- const manifestStates = new Set(getSkillManifest(mode).states.map(state => state.id));
1407
- if (!manifestStates.has(toPhase) && !forced) {
1408
- throw new StateCommandError(2, `unknown ${mode} phase "${toPhase}"; use --force to bypass`);
1409
- }
1410
- if (fromPhase && toPhase && isKnownWorkflowState(mode, fromPhase) && isKnownWorkflowState(mode, toPhase)) {
1411
- if (!isValidTransition(mode, fromPhase, toPhase) && !forced) {
1412
- throw new StateCommandError(
1413
- 2,
1414
- `invalid ${mode} phase transition from ${fromPhase} to ${toPhase}; use --force to bypass`,
1415
- );
1187
+ try {
1188
+ assertDeepInterviewStructuredResponseWithinLimit(payload);
1189
+ } catch (error) {
1190
+ throw new StateCommandError(2, error instanceof Error ? error.message : String(error));
1416
1191
  }
1417
1192
  }
1193
+ const filePath = modeStateFile(cwd, mode, sessionId);
1194
+ const forced = hasFlag(args, "--force");
1195
+ return await withWorkflowStateLock(
1196
+ filePath,
1197
+ async () => {
1198
+ const existingRead = await readExistingStateForMutation(filePath);
1199
+ if (existingRead.kind === "corrupt" && !forced) {
1200
+ throw new StateCommandError(
1201
+ 2,
1202
+ `existing state for ${mode} is corrupt or tampered (${existingRead.error}); use --force to overwrite`,
1203
+ );
1204
+ }
1205
+ const existingPayload = existingRead.kind === "valid" ? existingRead.value : {};
1206
+ const nowIsoStr = nowIso();
1207
+ const mutationId = `${mode}:${nowIsoStr}`;
1208
+ const receipt = buildWorkflowStateReceipt({
1209
+ cwd,
1210
+ skill: mode,
1211
+ owner: "skc-state-cli",
1212
+ command: `skc state ${mode} write`,
1213
+ sessionId,
1214
+ nowIso: nowIsoStr,
1215
+ mutationId,
1216
+ });
1217
+ const innerState = (payload.state as Record<string, unknown> | undefined) ?? {};
1218
+ const incomingPhase =
1219
+ typeof payload.current_phase === "string" && payload.current_phase.trim()
1220
+ ? payload.current_phase.trim()
1221
+ : typeof payload.phase === "string" && payload.phase.trim()
1222
+ ? payload.phase.trim()
1223
+ : typeof innerState.current_phase === "string" && (innerState.current_phase as string).trim()
1224
+ ? (innerState.current_phase as string).trim()
1225
+ : undefined;
1226
+ let merged: Record<string, unknown>;
1227
+ if (mode === "deep-interview") {
1228
+ // Deep-interview keeps interview data nested under `state` and merges rounds
1229
+ // losslessly by durable key; never flatten or delete `state` (that drops recorder history).
1230
+ // The deterministic ambiguity floor is applied after the merge so a reported
1231
+ // score written through the CLI can never undercut persisted contradiction evidence.
1232
+ merged = applyAmbiguityFloorToEnvelope(
1233
+ mergeDeepInterviewEnvelope(existingPayload, payload, { replace: hasFlag(args, "--replace") }),
1234
+ ).envelope;
1235
+ try {
1236
+ assertDeepInterviewEnvelopeInputLimits(merged);
1237
+ } catch (error) {
1238
+ throw new StateCommandError(2, error instanceof Error ? error.message : String(error));
1239
+ }
1240
+ } else if (hasFlag(args, "--replace")) {
1241
+ merged = { ...payload };
1242
+ } else {
1243
+ merged = mergeWithNullDelete(existingPayload, payload);
1244
+ // Flatten payload.state.* into the top-level envelope so downstream consumers
1245
+ // see a single canonical structure with the receipt at top level.
1246
+ if (payload.state && typeof payload.state === "object" && !Array.isArray(payload.state)) {
1247
+ merged = mergeWithNullDelete(merged, payload.state as Record<string, unknown>);
1248
+ delete merged.state;
1249
+ }
1250
+ }
1251
+ const preDefaultValidation = validateWorkflowStateEnvelope(mode, merged);
1252
+ if (!preDefaultValidation.valid) {
1253
+ throw new StateCommandError(2, preDefaultValidation.error ?? `invalid ${mode} state envelope`);
1254
+ }
1255
+ merged.skill = mode;
1256
+ if (incomingPhase) {
1257
+ merged.current_phase = incomingPhase;
1258
+ } else if (typeof merged.current_phase !== "string" || !merged.current_phase.trim()) {
1259
+ const retainedPhase =
1260
+ typeof existingPayload.current_phase === "string" ? existingPayload.current_phase.trim() : "";
1261
+ merged.current_phase = retainedPhase || initialPhaseForSkill(mode);
1262
+ } else {
1263
+ merged.current_phase = merged.current_phase.trim();
1264
+ }
1265
+ merged.version = WORKFLOW_STATE_VERSION;
1266
+ if (typeof merged.active !== "boolean") merged.active = true;
1267
+ merged.updated_at = nowIsoStr;
1268
+ merged.receipt = receipt;
1269
+ if (sessionId && typeof merged.session_id !== "string") merged.session_id = sessionId;
1270
+
1271
+ const fromPhase =
1272
+ typeof existingPayload.current_phase === "string" ? existingPayload.current_phase.trim() : undefined;
1273
+ const toPhase = merged.current_phase as string;
1274
+ const manifestStates = new Set(getSkillManifest(mode).states.map(state => state.id));
1275
+ if (!manifestStates.has(toPhase) && !forced) {
1276
+ throw new StateCommandError(2, `unknown ${mode} phase "${toPhase}"; use --force to bypass`);
1277
+ }
1278
+ if (fromPhase && toPhase && isKnownWorkflowState(mode, fromPhase) && isKnownWorkflowState(mode, toPhase)) {
1279
+ if (!isValidTransition(mode, fromPhase, toPhase) && !forced) {
1280
+ throw new StateCommandError(
1281
+ 2,
1282
+ `invalid ${mode} phase transition from ${fromPhase} to ${toPhase}; use --force to bypass`,
1283
+ );
1284
+ }
1285
+ }
1418
1286
 
1419
- const validation = validateWorkflowStateEnvelope(mode, merged);
1420
- if (!validation.valid) throw new StateCommandError(2, validation.error ?? `invalid ${mode} state envelope`);
1421
-
1422
- const {
1423
- warning: outOfBandWarning,
1424
- stamped,
1425
- revision: stampedRevision,
1426
- } = await writeJsonAtomic(cwd, filePath, merged, "write", {
1427
- sessionId,
1428
- skill: mode,
1429
- mutationId,
1430
- force: forced,
1431
- fromPhase,
1432
- toPhase,
1433
- });
1434
- const stampedReceipt = isPlainObject(stamped.receipt) ? stamped.receipt : {};
1435
-
1436
- const phase = typeof merged.current_phase === "string" ? merged.current_phase : undefined;
1437
- const active = merged.active !== false;
1438
- // Reflect the lock-owned mode-state revision onto the in-memory payload so the active-state/HUD
1439
- // sync derives a `sourceRevision` from the revision this write actually owns (computed inside the
1440
- // writer lock), not the stale pre-write value or a post-lock re-read a concurrent writer could
1441
- // have advanced; otherwise the active-state writer stale-skips the update and the mirror keeps the
1442
- // prior phase (e.g. staying "interviewing" after a "handoff" write).
1443
- merged.state_revision = stampedRevision;
1444
- await syncWorkflowSkillState({ cwd, mode, sessionId, threadId, turnId, active, phase, payload: merged, receipt });
1445
- await touchStateActivityMarker(cwd, sessionId, filePath);
1287
+ const validation = validateWorkflowStateEnvelope(mode, merged);
1288
+ if (!validation.valid) throw new StateCommandError(2, validation.error ?? `invalid ${mode} state envelope`);
1289
+
1290
+ const {
1291
+ warning: outOfBandWarning,
1292
+ stamped,
1293
+ revision: stampedRevision,
1294
+ } = await writeJsonAtomic(cwd, filePath, merged, "write", {
1295
+ sessionId,
1296
+ skill: mode,
1297
+ mutationId,
1298
+ force: forced,
1299
+ fromPhase,
1300
+ toPhase,
1301
+ lockHeld: true,
1302
+ });
1303
+ const stampedReceipt = isPlainObject(stamped.receipt) ? stamped.receipt : {};
1304
+
1305
+ const phase = typeof merged.current_phase === "string" ? merged.current_phase : undefined;
1306
+ const active = merged.active !== false;
1307
+ // Reflect the lock-owned mode-state revision onto the in-memory payload so the active-state/HUD
1308
+ // sync derives a `sourceRevision` from the revision this write actually owns (computed inside the
1309
+ // writer lock), not the stale pre-write value or a post-lock re-read a concurrent writer could
1310
+ // have advanced; otherwise the active-state writer stale-skips the update and the mirror keeps the
1311
+ // prior phase (e.g. staying "interviewing" after a "handoff" write).
1312
+ merged.state_revision = stampedRevision;
1313
+ await syncWorkflowSkillState({
1314
+ cwd,
1315
+ mode,
1316
+ sessionId,
1317
+ threadId,
1318
+ turnId,
1319
+ active,
1320
+ phase,
1321
+ payload: merged,
1322
+ receipt,
1323
+ });
1324
+ await touchStateActivityMarker(cwd, sessionId, filePath);
1446
1325
 
1447
- return {
1448
- status: 0,
1449
- stdout: renderCliWriteReceipt({
1450
- ok: true,
1451
- skill: mode,
1452
- state_path: filePath,
1453
- current_phase: phase,
1454
- active,
1455
- mutation_id: typeof stampedReceipt.mutation_id === "string" ? stampedReceipt.mutation_id : mutationId,
1456
- status: typeof stampedReceipt.status === "string" ? stampedReceipt.status : undefined,
1457
- content_sha256: stampedReceipt.content_sha256,
1458
- }),
1459
- ...(outOfBandWarning ? { stderr: `${outOfBandWarning}\n` } : {}),
1460
- };
1326
+ return {
1327
+ status: 0,
1328
+ stdout: renderCliWriteReceipt({
1329
+ ok: true,
1330
+ skill: mode,
1331
+ state_path: receipt.state_path,
1332
+ current_phase: phase,
1333
+ active,
1334
+ mutation_id: typeof stampedReceipt.mutation_id === "string" ? stampedReceipt.mutation_id : mutationId,
1335
+ status: typeof stampedReceipt.status === "string" ? stampedReceipt.status : undefined,
1336
+ content_sha256: stampedReceipt.content_sha256,
1337
+ }),
1338
+ ...(outOfBandWarning ? { stderr: `${outOfBandWarning}\n` } : {}),
1339
+ };
1340
+ },
1341
+ { cwd },
1342
+ );
1461
1343
  }
1462
1344
 
1463
- async function handleClear(
1464
- args: readonly string[],
1465
- cwd: string,
1466
- positionalSkill: string | undefined,
1467
- ): Promise<StateCommandResult> {
1468
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "clear");
1345
+ async function handleClear(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1346
+ const selectors = await resolveSelectors(args, cwd, "clear");
1469
1347
  const { skcSessionId: sessionId, threadId, turnId } = selectors;
1470
1348
  const mode = selectors.mode ?? (await inferModeFromActiveState(cwd, sessionId));
1471
1349
  if (!mode)
@@ -1476,74 +1354,143 @@ async function handleClear(
1476
1354
 
1477
1355
  const filePath = modeStateFile(cwd, mode, sessionId);
1478
1356
  const forced = hasFlag(args, "--force");
1479
- const existingRead = await readExistingStateForMutation(filePath);
1480
- if (existingRead.kind === "corrupt" && !forced) {
1357
+ return await withWorkflowStateLock(
1358
+ filePath,
1359
+ async () => {
1360
+ const existingRead = await readExistingStateForMutation(filePath);
1361
+ if (existingRead.kind === "corrupt" && !forced) {
1362
+ throw new StateCommandError(
1363
+ 2,
1364
+ `existing state for ${mode} is corrupt or tampered (${existingRead.error}); use --force to overwrite`,
1365
+ );
1366
+ }
1367
+ const existing = existingRead.kind === "valid" ? existingRead.value : {};
1368
+ const staleReason = await describeStaleClearState(cwd, sessionId, mode, existing);
1369
+ if (staleReason && !forced) {
1370
+ throw new StateCommandError(
1371
+ 2,
1372
+ `existing state for ${mode} is stale (${staleReason}); use --force to clear`,
1373
+ );
1374
+ }
1375
+ const clearedAt = nowIso();
1376
+ const cleared: Record<string, unknown> = {
1377
+ skill: mode,
1378
+ ...existing,
1379
+ active: false,
1380
+ current_phase: "complete",
1381
+ updated_at: clearedAt,
1382
+ version: WORKFLOW_STATE_VERSION,
1383
+ };
1384
+ cleared.skill = mode;
1385
+ const mutationId = `${mode}:clear:${clearedAt}`;
1386
+ const receipt = buildWorkflowStateReceipt({
1387
+ cwd,
1388
+ skill: mode,
1389
+ owner: "skc-state-cli",
1390
+ command: `skc state ${mode} clear`,
1391
+ sessionId,
1392
+ nowIso: clearedAt,
1393
+ mutationId,
1394
+ });
1395
+ cleared.receipt = receipt;
1396
+ const { warning: outOfBandWarning, stamped } = await writeJsonAtomic(cwd, filePath, cleared, "clear", {
1397
+ sessionId,
1398
+ skill: mode,
1399
+ mutationId,
1400
+ force: forced,
1401
+ fromPhase: typeof existing.current_phase === "string" ? existing.current_phase : undefined,
1402
+ toPhase: "complete",
1403
+ lockHeld: true,
1404
+ });
1405
+ const stampedReceipt = isPlainObject(stamped.receipt) ? stamped.receipt : {};
1406
+
1407
+ await syncWorkflowSkillState({
1408
+ cwd,
1409
+ mode,
1410
+ sessionId,
1411
+ threadId,
1412
+ turnId,
1413
+ active: false,
1414
+ phase: "complete",
1415
+ payload: cleared,
1416
+ });
1417
+ await touchStateActivityMarker(cwd, sessionId, filePath);
1418
+ return {
1419
+ status: 0,
1420
+ stdout: renderCliWriteReceipt({
1421
+ ok: true,
1422
+ skill: mode,
1423
+ state_path: receipt.state_path,
1424
+ active: false,
1425
+ current_phase: typeof cleared.current_phase === "string" ? cleared.current_phase : undefined,
1426
+ mutation_id: typeof stampedReceipt.mutation_id === "string" ? stampedReceipt.mutation_id : mutationId,
1427
+ status: typeof stampedReceipt.status === "string" ? stampedReceipt.status : undefined,
1428
+ content_sha256: stampedReceipt.content_sha256,
1429
+ }),
1430
+ ...(outOfBandWarning ? { stderr: `${outOfBandWarning}\n` } : {}),
1431
+ };
1432
+ },
1433
+ { cwd },
1434
+ );
1435
+ }
1436
+
1437
+ const DEEP_INTERVIEW_INTENT_ID_RE = /(?:artifact|surface|integration|constraint):[a-z0-9][a-z0-9._/-]{0,127}/g;
1438
+
1439
+ async function assertDeepInterviewHandoffReady(state: Record<string, unknown>): Promise<void> {
1440
+ const specPath = typeof state.spec_path === "string" ? state.spec_path : undefined;
1441
+ const expectedSha = typeof state.spec_sha256 === "string" ? state.spec_sha256 : undefined;
1442
+ let content: string | undefined;
1443
+ if (specPath) {
1444
+ try {
1445
+ content = await fs.readFile(specPath, "utf-8");
1446
+ } catch (error) {
1447
+ throw new StateCommandError(
1448
+ 2,
1449
+ `deep-interview handoff cannot read persisted spec: ${error instanceof Error ? error.message : String(error)}`,
1450
+ );
1451
+ }
1452
+ const boundedContent = content.endsWith("\n") ? content.slice(0, -1) : content;
1453
+ assertDeepInterviewInputWithinLimit(
1454
+ boundedContent,
1455
+ MAX_DEEP_INTERVIEW_STRUCTURED_RESPONSE_LENGTH,
1456
+ "persisted deep-interview spec",
1457
+ );
1458
+ }
1459
+ const envelope = normalizeDeepInterviewEnvelope(state);
1460
+ const inner = envelope.state;
1461
+ if (!inner) return;
1462
+ if (inner.intent_contract === undefined) {
1463
+ if (inner.intent_contract_required === true)
1464
+ throw new StateCommandError(2, "deep-interview handoff requires a locked Round 0 intent contract");
1465
+ return;
1466
+ }
1467
+ assertDeepInterviewIntentManifest(inner.intent_contract);
1468
+ if (!specPath || !expectedSha || content === undefined)
1469
+ throw new StateCommandError(2, "deep-interview handoff requires a persisted intent-validated spec");
1470
+ if (createHash("sha256").update(content).digest("hex") !== expectedSha)
1471
+ throw new StateCommandError(2, "deep-interview handoff spec hash mismatch");
1472
+ const observedIds = [...new Set(content.match(DEEP_INTERVIEW_INTENT_ID_RE) ?? [])].sort();
1473
+ const rounds = Array.isArray(inner.rounds)
1474
+ ? inner.rounds
1475
+ .filter(
1476
+ (round): round is Record<string, unknown> =>
1477
+ Boolean(round) && typeof round === "object" && !Array.isArray(round),
1478
+ )
1479
+ .map(round => ({ round: round.round, answer_hash: round.answer_hash }))
1480
+ : [];
1481
+ try {
1482
+ assertDeepInterviewIntentReview(
1483
+ inner.intent_review,
1484
+ inner.intent_contract as DeepInterviewIntentManifest,
1485
+ observedIds,
1486
+ rounds,
1487
+ );
1488
+ } catch (error) {
1481
1489
  throw new StateCommandError(
1482
1490
  2,
1483
- `existing state for ${mode} is corrupt or tampered (${existingRead.error}); use --force to overwrite`,
1491
+ `deep-interview handoff intent validation failed: ${error instanceof Error ? error.message : String(error)}`,
1484
1492
  );
1485
1493
  }
1486
- const existing = existingRead.kind === "valid" ? existingRead.value : {};
1487
- const staleReason = await describeStaleClearState(cwd, sessionId, mode, existing);
1488
- if (staleReason && !forced) {
1489
- throw new StateCommandError(2, `existing state for ${mode} is stale (${staleReason}); use --force to clear`);
1490
- }
1491
- const clearedAt = nowIso();
1492
- const cleared: Record<string, unknown> = {
1493
- skill: mode,
1494
- ...existing,
1495
- active: false,
1496
- current_phase: "complete",
1497
- updated_at: clearedAt,
1498
- version: WORKFLOW_STATE_VERSION,
1499
- };
1500
- cleared.skill = mode;
1501
- const mutationId = `${mode}:clear:${clearedAt}`;
1502
- const receipt = buildWorkflowStateReceipt({
1503
- cwd,
1504
- skill: mode,
1505
- owner: "skc-state-cli",
1506
- command: `skc state ${mode} clear`,
1507
- sessionId,
1508
- nowIso: clearedAt,
1509
- mutationId,
1510
- });
1511
- cleared.receipt = receipt;
1512
- const { warning: outOfBandWarning, stamped } = await writeJsonAtomic(cwd, filePath, cleared, "clear", {
1513
- sessionId,
1514
- skill: mode,
1515
- mutationId,
1516
- force: forced,
1517
- fromPhase: typeof existing.current_phase === "string" ? existing.current_phase : undefined,
1518
- toPhase: "complete",
1519
- });
1520
- const stampedReceipt = isPlainObject(stamped.receipt) ? stamped.receipt : {};
1521
-
1522
- await syncWorkflowSkillState({
1523
- cwd,
1524
- mode,
1525
- sessionId,
1526
- threadId,
1527
- turnId,
1528
- active: false,
1529
- phase: "complete",
1530
- payload: cleared,
1531
- });
1532
- await touchStateActivityMarker(cwd, sessionId, filePath);
1533
- return {
1534
- status: 0,
1535
- stdout: renderCliWriteReceipt({
1536
- ok: true,
1537
- skill: mode,
1538
- state_path: filePath,
1539
- active: false,
1540
- current_phase: typeof cleared.current_phase === "string" ? cleared.current_phase : undefined,
1541
- mutation_id: typeof stampedReceipt.mutation_id === "string" ? stampedReceipt.mutation_id : mutationId,
1542
- status: typeof stampedReceipt.status === "string" ? stampedReceipt.status : undefined,
1543
- content_sha256: stampedReceipt.content_sha256,
1544
- }),
1545
- ...(outOfBandWarning ? { stderr: `${outOfBandWarning}\n` } : {}),
1546
- };
1547
1494
  }
1548
1495
 
1549
1496
  /**
@@ -1565,12 +1512,8 @@ async function handleClear(
1565
1512
  * the phase remains in `skill-active-state.json` until a chain call (or
1566
1513
  * explicit `clear`) demotes it.
1567
1514
  */
1568
- async function handleHandoff(
1569
- args: readonly string[],
1570
- cwd: string,
1571
- positionalSkill: string | undefined,
1572
- ): Promise<StateCommandResult> {
1573
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "handoff");
1515
+ async function handleHandoffUnlocked(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1516
+ const selectors = await resolveSelectors(args, cwd, "handoff");
1574
1517
  const { skcSessionId: sessionId, threadId, turnId } = selectors;
1575
1518
  const caller = selectors.mode ?? (await inferModeFromActiveState(cwd, sessionId));
1576
1519
  if (!caller) {
@@ -1619,18 +1562,19 @@ async function handleHandoff(
1619
1562
  nowIso: handoffAt,
1620
1563
  mutationId,
1621
1564
  });
1565
+ const normalizedCaller =
1566
+ caller === "deep-interview"
1567
+ ? (normalizeDeepInterviewEnvelope(migrateWorkflowState(existingCaller, caller).state) as Record<
1568
+ string,
1569
+ unknown
1570
+ >)
1571
+ : migrateWorkflowState(existingCaller, caller).state;
1572
+ if (caller === "deep-interview") await assertDeepInterviewHandoffReady(normalizedCaller);
1622
1573
 
1623
1574
  // Runtime callees have no native mode-state to clear later, so do not
1624
1575
  // persist them as active-state entries; the prompt observer tracks them
1625
1576
  // in memory the same way direct `/skill:<runtime>` invocation does.
1626
1577
  if (!calleeIsWorkflow) {
1627
- const normalizedCaller =
1628
- caller === "deep-interview"
1629
- ? (normalizeDeepInterviewEnvelope(migrateWorkflowState(existingCaller, caller).state) as Record<
1630
- string,
1631
- unknown
1632
- >)
1633
- : migrateWorkflowState(existingCaller, caller).state;
1634
1578
  const mergedCallerState: Record<string, unknown> = {
1635
1579
  ...normalizedCaller,
1636
1580
  skill: caller,
@@ -1727,13 +1671,6 @@ async function handleHandoff(
1727
1671
  });
1728
1672
 
1729
1673
  const calleeInitial = initialPhaseForSkill(callee);
1730
- const normalizedCaller =
1731
- caller === "deep-interview"
1732
- ? (normalizeDeepInterviewEnvelope(migrateWorkflowState(existingCaller, caller).state) as Record<
1733
- string,
1734
- unknown
1735
- >)
1736
- : migrateWorkflowState(existingCaller, caller).state;
1737
1674
  const normalizedCallee =
1738
1675
  callee === "deep-interview"
1739
1676
  ? (normalizeDeepInterviewEnvelope(migrateWorkflowState(existingCallee, callee).state) as Record<
@@ -1884,12 +1821,22 @@ async function handleHandoff(
1884
1821
  };
1885
1822
  }
1886
1823
 
1887
- async function handleContract(
1888
- args: readonly string[],
1889
- cwd: string,
1890
- positionalSkill: string | undefined,
1891
- ): Promise<StateCommandResult> {
1892
- const { mode } = await resolveSelectors(args, cwd, positionalSkill, "read");
1824
+ async function handleHandoff(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1825
+ const selectors = await resolveSelectors(args, cwd, "handoff");
1826
+ // Serialize concurrent handoffs on a dedicated sentinel lock, NOT on the
1827
+ // derived `skill-active-state.json` cache. The inner transaction
1828
+ // (applyHandoffToActiveState / syncSkillActiveState -> rebuildActiveSnapshot)
1829
+ // re-locks that cache file, and `withFileLock` is not reentrant: holding the
1830
+ // active-state lock here made the inner rebuild self-contend and fail after
1831
+ // all retries whenever `cwd === process.cwd()` (the real CLI case). Pass
1832
+ // `{ cwd }` so the sentinel resolves against the handoff cwd rather than
1833
+ // `process.cwd()`.
1834
+ const handoffLock = path.join(sessionStateDir(cwd, selectors.skcSessionId), "handoff");
1835
+ return withWorkflowStateLock(handoffLock, async () => handleHandoffUnlocked(args, cwd), { cwd });
1836
+ }
1837
+
1838
+ async function handleContract(args: readonly string[], cwd: string): Promise<StateCommandResult> {
1839
+ const { mode } = await resolveSelectors(args, cwd, "read");
1893
1840
  if (!mode) {
1894
1841
  throw new StateCommandError(2, "skc state contract requires --mode <skill>, positional <skill>, or input.skill");
1895
1842
  }
@@ -2117,12 +2064,8 @@ async function handleGraph(
2117
2064
  };
2118
2065
  }
2119
2066
 
2120
- async function handlePrune(
2121
- args: readonly string[],
2122
- cwd: string,
2123
- positionalSkill: string | undefined,
2124
- ): Promise<StateCommandResult> {
2125
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "prune");
2067
+ async function handlePrune(args: readonly string[], cwd: string): Promise<StateCommandResult> {
2068
+ const selectors = await resolveSelectors(args, cwd, "prune");
2126
2069
  const mode = selectors.mode ?? (await inferModeFromActiveState(cwd, selectors.skcSessionId));
2127
2070
  if (!mode) {
2128
2071
  throw new StateCommandError(
@@ -2187,12 +2130,8 @@ async function handleGc(
2187
2130
  return { status: 0, stdout: `${JSON.stringify(summary, null, 2)}\n` };
2188
2131
  }
2189
2132
 
2190
- async function handleMigrate(
2191
- args: readonly string[],
2192
- cwd: string,
2193
- positionalSkill: string | undefined,
2194
- ): Promise<StateCommandResult> {
2195
- const selectors = await resolveSelectors(args, cwd, positionalSkill, "migrate");
2133
+ async function handleMigrate(args: readonly string[], cwd: string): Promise<StateCommandResult> {
2134
+ const selectors = await resolveSelectors(args, cwd, "migrate");
2196
2135
  const mode = selectors.mode ?? (await inferModeFromActiveState(cwd, selectors.skcSessionId));
2197
2136
  if (!mode) {
2198
2137
  throw new StateCommandError(
@@ -2223,37 +2162,34 @@ async function handleMigrate(
2223
2162
 
2224
2163
  export async function runNativeStateCommand(args: string[], cwd = process.cwd()): Promise<StateCommandResult> {
2225
2164
  try {
2226
- const parsed = parsePositionalArgs(args);
2227
- assertKnownFlags(args, parsed);
2228
- switch (parsed.action) {
2165
+ const parsed = classifyStateArgv(args);
2166
+ assertKnownFlags(parsed);
2167
+ switch (parsed.effectiveAction) {
2229
2168
  case "read":
2230
- if (hasFlag(args, "--migrate")) return await handleMigrate(args, cwd, parsed.positionalSkill);
2231
- return await handleRead(args, cwd, parsed.positionalSkill);
2169
+ return await handleRead(args, cwd);
2232
2170
  case "write":
2233
- return await handleWrite(args, cwd, parsed.positionalSkill);
2171
+ return await handleWrite(args, cwd);
2234
2172
  case "clear":
2235
- return await handleClear(args, cwd, parsed.positionalSkill);
2173
+ return await handleClear(args, cwd);
2236
2174
  case "contract":
2237
- return await handleContract(args, cwd, parsed.positionalSkill);
2175
+ return await handleContract(args, cwd);
2238
2176
  case "status":
2239
- return await handleStatus(args, cwd, parsed.positionalSkill);
2177
+ return await handleStatus(args, cwd);
2240
2178
  case "doctor":
2241
2179
  return await handleDoctor(args, cwd, parsed.positionalSkill);
2242
2180
  case "handoff":
2243
- return await handleHandoff(args, cwd, parsed.positionalSkill);
2181
+ return await handleHandoff(args, cwd);
2244
2182
  case "graph":
2245
2183
  return await handleGraph(args, cwd, parsed.positionalSkill);
2246
2184
  case "prune":
2247
- return await handlePrune(args, cwd, parsed.positionalSkill);
2185
+ return await handlePrune(args, cwd);
2248
2186
  case "gc":
2249
2187
  return await handleGc(args, cwd, parsed.positionalSkill);
2250
2188
  case "migrate":
2251
- return await handleMigrate(args, cwd, parsed.positionalSkill);
2252
- default:
2253
- return { status: 2, stderr: `Unknown skc state command: ${parsed.action}\n` };
2189
+ return await handleMigrate(args, cwd);
2254
2190
  }
2255
2191
  } catch (error) {
2256
- if (error instanceof StateCommandError) return { status: error.exitStatus, stderr: `${error.message}\n` };
2192
+ if (error instanceof CommandError) return { status: error.exitStatus, stderr: `${error.message}\n` };
2257
2193
  if (error instanceof SessionResolutionError) return { status: 2, stderr: `${error.message}\n` };
2258
2194
  return { status: 1, stderr: `${error instanceof Error ? error.message : String(error)}\n` };
2259
2195
  }