@quantiya/codevibe-core 2.0.0 → 2.0.2

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 (416) hide show
  1. package/dist/__tests__/cp-5-baseline-invariants.test.d.ts +1 -0
  2. package/dist/__tests__/prompt-parser.test.d.ts +1 -0
  3. package/dist/adapter/__tests__/capabilities.test.d.ts +1 -0
  4. package/dist/adapter/__tests__/contract-conformance.test.d.ts +1 -0
  5. package/dist/adapter/__tests__/packets.test.d.ts +1 -0
  6. package/dist/adapter/__tests__/progress.test.d.ts +1 -0
  7. package/dist/adapter/__tests__/registry.test.d.ts +1 -0
  8. package/dist/adapter/__tests__/smoke/claude.smoke.test.d.ts +1 -0
  9. package/dist/adapter/__tests__/smoke/codex.smoke.test.d.ts +1 -0
  10. package/dist/adapter/__tests__/smoke/gemini.smoke.test.d.ts +1 -0
  11. package/dist/adapter/capabilities.d.ts +68 -0
  12. package/dist/adapter/index.d.ts +7 -0
  13. package/dist/adapter/packets.d.ts +129 -0
  14. package/dist/adapter/progress.d.ts +93 -0
  15. package/dist/adapter/registry.d.ts +91 -0
  16. package/dist/adapter/types.d.ts +22 -0
  17. package/dist/appsync/__tests__/appsync-client-apply-user-decision.test.d.ts +1 -0
  18. package/dist/appsync/__tests__/appsync-client-classb.test.d.ts +1 -0
  19. package/dist/appsync/__tests__/appsync-client-event-source-filter.test.d.ts +1 -0
  20. package/dist/appsync/__tests__/appsync-client-planner.test.d.ts +1 -0
  21. package/dist/appsync/__tests__/appsync-client-task-group.test.d.ts +1 -0
  22. package/dist/appsync/__tests__/appsync-client.test.d.ts +1 -0
  23. package/dist/appsync/__tests__/cleanup-subscription.test.d.ts +1 -0
  24. package/dist/appsync/__tests__/coerce-awsjson-and-review-summary.test.d.ts +1 -0
  25. package/dist/appsync/__tests__/cp1f-quorum-sdk.test.d.ts +1 -0
  26. package/dist/appsync/__tests__/event-throttle.test.d.ts +1 -0
  27. package/dist/appsync/appsync-client.d.ts +1025 -2
  28. package/dist/appsync/event-throttle.d.ts +28 -0
  29. package/dist/appsync/index.d.ts +4 -1
  30. package/dist/appsync/queries.d.ts +34 -0
  31. package/dist/audit-keys/index.d.ts +32 -0
  32. package/dist/auth/__tests__/auth-telemetry.test.d.ts +1 -0
  33. package/dist/auth/auth-service.d.ts +32 -2
  34. package/dist/auth/auth-telemetry.d.ts +117 -6
  35. package/dist/auth/index.d.ts +1 -0
  36. package/dist/companion-mode/__tests__/persist-preference.test.d.ts +1 -0
  37. package/dist/companion-mode/__tests__/resolve-agent.test.d.ts +1 -0
  38. package/dist/companion-mode/agent-picker.d.ts +9 -0
  39. package/dist/companion-mode/index.d.ts +55 -0
  40. package/dist/companion-mode/persist-preference.d.ts +24 -0
  41. package/dist/companion-mode/resolve-agent.d.ts +41 -0
  42. package/dist/config/config.d.ts +8 -1
  43. package/dist/continuation/__tests__/dirty-state-collector.test.d.ts +1 -0
  44. package/dist/continuation/__tests__/integration.test.d.ts +1 -0
  45. package/dist/continuation/__tests__/packet-reader.test.d.ts +1 -0
  46. package/dist/continuation/__tests__/packet-writer.test.d.ts +1 -0
  47. package/dist/continuation/__tests__/parity.test.d.ts +1 -0
  48. package/dist/continuation/__tests__/status-cli.test.d.ts +1 -0
  49. package/dist/continuation/dirty-state-collector.d.ts +46 -0
  50. package/dist/continuation/index.d.ts +8 -0
  51. package/dist/continuation/packet-reader.d.ts +33 -0
  52. package/dist/continuation/packet-writer.d.ts +86 -0
  53. package/dist/continuation/types.d.ts +239 -0
  54. package/dist/credential-broker/__tests__/broker.test.d.ts +1 -0
  55. package/dist/credential-broker/__tests__/canonical.test.d.ts +1 -0
  56. package/dist/credential-broker/__tests__/scrubber.test.d.ts +1 -0
  57. package/dist/credential-broker/__tests__/upstream-client.test.d.ts +1 -0
  58. package/dist/credential-broker/__tests__/vendor-key-store.test.d.ts +1 -0
  59. package/dist/credential-broker/audit-sink.d.ts +69 -0
  60. package/dist/credential-broker/broker-config.d.ts +39 -0
  61. package/dist/credential-broker/broker-token.d.ts +123 -0
  62. package/dist/credential-broker/broker.d.ts +165 -0
  63. package/dist/credential-broker/canonical.d.ts +119 -0
  64. package/dist/credential-broker/index.d.ts +15 -0
  65. package/dist/credential-broker/scrubber.d.ts +45 -0
  66. package/dist/credential-broker/types.d.ts +141 -0
  67. package/dist/credential-broker/upstream-client.d.ts +20 -0
  68. package/dist/credential-broker/vendor-key-store.d.ts +54 -0
  69. package/dist/index.d.ts +17 -4
  70. package/dist/index.js +559 -55
  71. package/dist/keychain/__tests__/keychain-backend.test.d.ts +1 -0
  72. package/dist/keychain/keychain-backend.d.ts +82 -0
  73. package/dist/keychain/keychain-manager.d.ts +16 -2
  74. package/dist/local-executor/__tests__/agentic-disposable-repo.test.d.ts +1 -0
  75. package/dist/local-executor/__tests__/agentic-resolve.test.d.ts +1 -0
  76. package/dist/local-executor/__tests__/agentic-resolver-flag.test.d.ts +1 -0
  77. package/dist/local-executor/__tests__/authority-symlink-fixture.d.ts +15 -0
  78. package/dist/local-executor/__tests__/authority.test.d.ts +1 -0
  79. package/dist/local-executor/__tests__/class-a-emit.test.d.ts +1 -0
  80. package/dist/local-executor/__tests__/class-a-sign.test.d.ts +1 -0
  81. package/dist/local-executor/__tests__/class-b-consumer.integration.test.d.ts +1 -0
  82. package/dist/local-executor/__tests__/class-b-consumer.test.d.ts +1 -0
  83. package/dist/local-executor/__tests__/class1-reconcilers.test.d.ts +1 -0
  84. package/dist/local-executor/__tests__/class2-resolver.test.d.ts +1 -0
  85. package/dist/local-executor/__tests__/confined-model-caller.test.d.ts +1 -0
  86. package/dist/local-executor/__tests__/conflict-classifier.test.d.ts +1 -0
  87. package/dist/local-executor/__tests__/conflict-resolution-durable-store.test.d.ts +1 -0
  88. package/dist/local-executor/__tests__/conflict-resolution-store.test.d.ts +1 -0
  89. package/dist/local-executor/__tests__/cp1f-quorum-consumer.test.d.ts +1 -0
  90. package/dist/local-executor/__tests__/cp7-audit-writer.test.d.ts +1 -0
  91. package/dist/local-executor/__tests__/durable-store.test.d.ts +1 -0
  92. package/dist/local-executor/__tests__/git-lock-retry.test.d.ts +1 -0
  93. package/dist/local-executor/__tests__/hook-bridge.test.d.ts +1 -0
  94. package/dist/local-executor/__tests__/implementor-argv.test.d.ts +1 -0
  95. package/dist/local-executor/__tests__/local-executor-teams.test.d.ts +1 -0
  96. package/dist/local-executor/__tests__/local-executor.integration.test.d.ts +1 -0
  97. package/dist/local-executor/__tests__/merge-conflict-extract.test.d.ts +1 -0
  98. package/dist/local-executor/__tests__/merge-conflict-git.integration.test.d.ts +1 -0
  99. package/dist/local-executor/__tests__/merge-conflict-resolve-agentic.integration.test.d.ts +1 -0
  100. package/dist/local-executor/__tests__/merge-conflict-resolve.integration.test.d.ts +1 -0
  101. package/dist/local-executor/__tests__/merge-journal-store.test.d.ts +1 -0
  102. package/dist/local-executor/__tests__/merge-train-agentic-recovery.integration.test.d.ts +1 -0
  103. package/dist/local-executor/__tests__/merge-train-w3.integration.test.d.ts +1 -0
  104. package/dist/local-executor/__tests__/merge-train-waveb.integration.test.d.ts +1 -0
  105. package/dist/local-executor/__tests__/merge-train.test.d.ts +1 -0
  106. package/dist/local-executor/__tests__/promote-wal-store.test.d.ts +1 -0
  107. package/dist/local-executor/__tests__/revert-reconcile.test.d.ts +1 -0
  108. package/dist/local-executor/__tests__/revert-runner.test.d.ts +1 -0
  109. package/dist/local-executor/__tests__/shared-contract-detector.test.d.ts +1 -0
  110. package/dist/local-executor/__tests__/spawn.test.d.ts +1 -0
  111. package/dist/local-executor/__tests__/substrate-engage.test.d.ts +1 -0
  112. package/dist/local-executor/__tests__/team-execution-flag.test.d.ts +1 -0
  113. package/dist/local-executor/__tests__/track-registry.test.d.ts +1 -0
  114. package/dist/local-executor/__tests__/verification-runner.test.d.ts +1 -0
  115. package/dist/local-executor/__tests__/wb2-review-bundle.test.d.ts +1 -0
  116. package/dist/local-executor/__tests__/wb2-substrate-spawn.live.test.d.ts +1 -0
  117. package/dist/local-executor/__tests__/workspace-shadow.test.d.ts +1 -0
  118. package/dist/local-executor/__tests__/worktree-merge.test.d.ts +1 -0
  119. package/dist/local-executor/agentic-disposable-repo.d.ts +52 -0
  120. package/dist/local-executor/agentic-resolve.d.ts +54 -0
  121. package/dist/local-executor/agentic-resolver-flag.d.ts +9 -0
  122. package/dist/local-executor/authority.d.ts +61 -0
  123. package/dist/local-executor/class-a-emit.d.ts +140 -0
  124. package/dist/local-executor/class-a-sign.d.ts +57 -0
  125. package/dist/local-executor/class-b-consumer.d.ts +276 -0
  126. package/dist/local-executor/class-b-verify.d.ts +30 -0
  127. package/dist/local-executor/class1-reconcilers.d.ts +58 -0
  128. package/dist/local-executor/class2-resolver.d.ts +74 -0
  129. package/dist/local-executor/confined-model-caller.d.ts +39 -0
  130. package/dist/local-executor/conflict-classifier.d.ts +21 -0
  131. package/dist/local-executor/conflict-resolution-durable-store.d.ts +61 -0
  132. package/dist/local-executor/conflict-resolution-store.d.ts +210 -0
  133. package/dist/local-executor/conflict-types.d.ts +86 -0
  134. package/dist/local-executor/cp7-audit-writer.d.ts +152 -0
  135. package/dist/local-executor/durable-store.d.ts +334 -0
  136. package/dist/local-executor/git-lock-retry.d.ts +40 -0
  137. package/dist/local-executor/hook-bridge.d.ts +36 -0
  138. package/dist/local-executor/implementor-argv.d.ts +183 -0
  139. package/dist/local-executor/index.d.ts +49 -0
  140. package/dist/local-executor/local-executor-impl.d.ts +724 -0
  141. package/dist/local-executor/merge-conflict-extract.d.ts +34 -0
  142. package/dist/local-executor/merge-conflict-resolve.d.ts +101 -0
  143. package/dist/local-executor/merge-journal-store.d.ts +311 -0
  144. package/dist/local-executor/merge-train.d.ts +713 -0
  145. package/dist/local-executor/promote-wal-store.d.ts +301 -0
  146. package/dist/local-executor/resolution-set-index.d.ts +51 -0
  147. package/dist/local-executor/revert-reconcile.d.ts +89 -0
  148. package/dist/local-executor/revert-runner.d.ts +17 -0
  149. package/dist/local-executor/shared-contract-detector.d.ts +57 -0
  150. package/dist/local-executor/spawn.d.ts +34 -0
  151. package/dist/local-executor/task-group-types.d.ts +346 -0
  152. package/dist/local-executor/team-execution-flag.d.ts +21 -0
  153. package/dist/local-executor/track-registry.d.ts +50 -0
  154. package/dist/local-executor/types.d.ts +417 -0
  155. package/dist/local-executor/verification-gates/build.d.ts +6 -0
  156. package/dist/local-executor/verification-gates/deploy-preflight.d.ts +6 -0
  157. package/dist/local-executor/verification-gates/diff-sanity.d.ts +6 -0
  158. package/dist/local-executor/verification-gates/hostile-grep.d.ts +6 -0
  159. package/dist/local-executor/verification-gates/lint.d.ts +6 -0
  160. package/dist/local-executor/verification-gates/shell-runner.d.ts +40 -0
  161. package/dist/local-executor/verification-gates/source-traceability.d.ts +6 -0
  162. package/dist/local-executor/verification-gates/tests.d.ts +6 -0
  163. package/dist/local-executor/verification-gates/typecheck.d.ts +6 -0
  164. package/dist/local-executor/verification-runner.d.ts +28 -0
  165. package/dist/local-executor/wb2-review-bundle.d.ts +59 -0
  166. package/dist/local-executor/workspace-shadow.d.ts +290 -0
  167. package/dist/local-executor/worktree-merge.d.ts +601 -0
  168. package/dist/local-model/__tests__/installer.test.d.ts +1 -0
  169. package/dist/local-model/__tests__/manager.test.d.ts +1 -0
  170. package/dist/local-model/__tests__/ollama.test.d.ts +1 -0
  171. package/dist/local-model/__tests__/runtime.test.d.ts +1 -0
  172. package/dist/local-model/__tests__/state.test.d.ts +1 -0
  173. package/dist/local-model/manager.d.ts +119 -0
  174. package/dist/local-model/ollama.d.ts +27 -0
  175. package/dist/local-model/runtime.d.ts +27 -0
  176. package/dist/local-model/state.d.ts +32 -0
  177. package/dist/orchestration/__tests__/setup-bootstrap.test.d.ts +1 -0
  178. package/dist/orchestration/__tests__/setup-failure-recourse.test.d.ts +1 -0
  179. package/dist/orchestration/__tests__/setup-save.test.d.ts +1 -0
  180. package/dist/orchestration/__tests__/setup-seat-picker.test.d.ts +1 -0
  181. package/dist/orchestration/__tests__/setup-telemetry.test.d.ts +1 -0
  182. package/dist/orchestration/__tests__/setup-test-agents.test.d.ts +1 -0
  183. package/dist/orchestration/__tests__/setup-types.test.d.ts +1 -0
  184. package/dist/orchestration/__tests__/setup-wizard.test.d.ts +1 -0
  185. package/dist/orchestration/__tests__/v1-options.test.d.ts +1 -0
  186. package/dist/orchestration/detect-agents.d.ts +16 -2
  187. package/dist/orchestration/index.d.ts +1 -0
  188. package/dist/orchestration/orchestration-cli.d.ts +4 -1
  189. package/dist/orchestration/setup-bootstrap.d.ts +146 -0
  190. package/dist/orchestration/setup-failure-recourse.d.ts +23 -0
  191. package/dist/orchestration/setup-save.d.ts +47 -0
  192. package/dist/orchestration/setup-seat-picker.d.ts +72 -0
  193. package/dist/orchestration/setup-telemetry.d.ts +54 -0
  194. package/dist/orchestration/setup-test-agents.d.ts +108 -0
  195. package/dist/orchestration/setup-types.d.ts +141 -0
  196. package/dist/orchestration/setup-wizard.d.ts +57 -0
  197. package/dist/orchestration/v1-options.d.ts +97 -0
  198. package/dist/orchestration-shell/__tests__/attachments.test.d.ts +1 -0
  199. package/dist/orchestration-shell/__tests__/audit-browser.test.d.ts +1 -0
  200. package/dist/orchestration-shell/__tests__/audited-path-fixes.test.d.ts +1 -0
  201. package/dist/orchestration-shell/__tests__/bracketed-paste.test.d.ts +1 -0
  202. package/dist/orchestration-shell/__tests__/cli-authority-bridge.test.d.ts +1 -0
  203. package/dist/orchestration-shell/__tests__/cli-group-halt-wiring.test.d.ts +1 -0
  204. package/dist/orchestration-shell/__tests__/cli-orchestration-session-bootstrap.test.d.ts +1 -0
  205. package/dist/orchestration-shell/__tests__/cli-planner-stack.test.d.ts +1 -0
  206. package/dist/orchestration-shell/__tests__/cli-probe-group-status.test.d.ts +1 -0
  207. package/dist/orchestration-shell/__tests__/cli-quorum-loop-tier.test.d.ts +1 -0
  208. package/dist/orchestration-shell/__tests__/cli-singleton-enforcement.test.d.ts +1 -0
  209. package/dist/orchestration-shell/__tests__/cli-stub-session-adapter.test.d.ts +1 -0
  210. package/dist/orchestration-shell/__tests__/cli-verdict-classifier-wiring.test.d.ts +1 -0
  211. package/dist/orchestration-shell/__tests__/components.test.d.ts +1 -0
  212. package/dist/orchestration-shell/__tests__/context-store.test.d.ts +1 -0
  213. package/dist/orchestration-shell/__tests__/cp10-585-accept-echo-target.test.d.ts +1 -0
  214. package/dist/orchestration-shell/__tests__/cp10-585-loop.test.d.ts +1 -0
  215. package/dist/orchestration-shell/__tests__/cp10-585-prompts.test.d.ts +1 -0
  216. package/dist/orchestration-shell/__tests__/cp12-w2b-team-loop.test.d.ts +1 -0
  217. package/dist/orchestration-shell/__tests__/cp12-w4-team-recovery.test.d.ts +1 -0
  218. package/dist/orchestration-shell/__tests__/cp1f-quorum-loop.test.d.ts +1 -0
  219. package/dist/orchestration-shell/__tests__/cp606-team-track-user-resolved.test.d.ts +1 -0
  220. package/dist/orchestration-shell/__tests__/cp7-reviewer-substrate.test.d.ts +1 -0
  221. package/dist/orchestration-shell/__tests__/declared-test-runner.test.d.ts +1 -0
  222. package/dist/orchestration-shell/__tests__/emit-shell-event.test.d.ts +1 -0
  223. package/dist/orchestration-shell/__tests__/familiarize-routing.test.d.ts +1 -0
  224. package/dist/orchestration-shell/__tests__/gate-decision-submit.test.d.ts +1 -0
  225. package/dist/orchestration-shell/__tests__/gate-details-panel.test.d.ts +1 -0
  226. package/dist/orchestration-shell/__tests__/gate-prompts.test.d.ts +1 -0
  227. package/dist/orchestration-shell/__tests__/gate-verdict-details-dispatch.test.d.ts +1 -0
  228. package/dist/orchestration-shell/__tests__/group-decision-submit.test.d.ts +1 -0
  229. package/dist/orchestration-shell/__tests__/hostile-grep.test.d.ts +1 -0
  230. package/dist/orchestration-shell/__tests__/image-attach-e2e.test.d.ts +1 -0
  231. package/dist/orchestration-shell/__tests__/input-bar-autocomplete.test.d.ts +1 -0
  232. package/dist/orchestration-shell/__tests__/live-region-cap.test.d.ts +1 -0
  233. package/dist/orchestration-shell/__tests__/live-static-order.test.d.ts +1 -0
  234. package/dist/orchestration-shell/__tests__/mode-selection.test.d.ts +1 -0
  235. package/dist/orchestration-shell/__tests__/model-cli.test.d.ts +1 -0
  236. package/dist/orchestration-shell/__tests__/non-gate-prompt-routing.test.d.ts +1 -0
  237. package/dist/orchestration-shell/__tests__/orchestration-app-group-decision-transport.test.d.ts +1 -0
  238. package/dist/orchestration-shell/__tests__/orchestration-app-layout.test.d.ts +1 -0
  239. package/dist/orchestration-shell/__tests__/process-markers.test.d.ts +1 -0
  240. package/dist/orchestration-shell/__tests__/reducer.test.d.ts +1 -0
  241. package/dist/orchestration-shell/__tests__/reissue-team-retained-spec.test.d.ts +1 -0
  242. package/dist/orchestration-shell/__tests__/review-summary-render.test.d.ts +1 -0
  243. package/dist/orchestration-shell/__tests__/reviewer-wizard.test.d.ts +1 -0
  244. package/dist/orchestration-shell/__tests__/reviewers-format.test.d.ts +1 -0
  245. package/dist/orchestration-shell/__tests__/root-discovery.test.d.ts +1 -0
  246. package/dist/orchestration-shell/__tests__/runOrchestrationShell-classify-dispatch.test.d.ts +1 -0
  247. package/dist/orchestration-shell/__tests__/runOrchestrationShell-planner-wiring.test.d.ts +1 -0
  248. package/dist/orchestration-shell/__tests__/runOrchestrationShell-signal.test.d.ts +1 -0
  249. package/dist/orchestration-shell/__tests__/runOrchestrationShell.test.d.ts +1 -0
  250. package/dist/orchestration-shell/__tests__/serialize-submissions.test.d.ts +1 -0
  251. package/dist/orchestration-shell/__tests__/slash-router.test.d.ts +1 -0
  252. package/dist/orchestration-shell/__tests__/slash-suggest.test.d.ts +1 -0
  253. package/dist/orchestration-shell/__tests__/status-format.test.d.ts +1 -0
  254. package/dist/orchestration-shell/__tests__/sticky-preference.test.d.ts +1 -0
  255. package/dist/orchestration-shell/__tests__/task-progress.test.d.ts +1 -0
  256. package/dist/orchestration-shell/__tests__/team-decompose-routing.test.d.ts +1 -0
  257. package/dist/orchestration-shell/__tests__/team-decompose-types.test.d.ts +1 -0
  258. package/dist/orchestration-shell/__tests__/team-decompose.test.d.ts +1 -0
  259. package/dist/orchestration-shell/__tests__/team-e2e-smoke.test.d.ts +1 -0
  260. package/dist/orchestration-shell/__tests__/tier2-reviewer-selection.test.d.ts +1 -0
  261. package/dist/orchestration-shell/__tests__/web-browsing.test.d.ts +1 -0
  262. package/dist/orchestration-shell/attachments.d.ts +152 -0
  263. package/dist/orchestration-shell/audit-browser.d.ts +115 -0
  264. package/dist/orchestration-shell/audit-runner.d.ts +59 -0
  265. package/dist/orchestration-shell/bracketed-paste.d.ts +26 -0
  266. package/dist/orchestration-shell/cli.d.ts +431 -0
  267. package/dist/orchestration-shell/cli.js +44191 -0
  268. package/dist/orchestration-shell/cohort-flag.d.ts +16 -0
  269. package/dist/orchestration-shell/components/AuditLogPanel.d.ts +11 -0
  270. package/dist/orchestration-shell/components/CodeVibeLogo.d.ts +2 -0
  271. package/dist/orchestration-shell/components/ConversationPane.d.ts +13 -0
  272. package/dist/orchestration-shell/components/GateDetailsPanel.d.ts +57 -0
  273. package/dist/orchestration-shell/components/GatePanelEntry.d.ts +9 -0
  274. package/dist/orchestration-shell/components/GatePromptEntry.d.ts +16 -0
  275. package/dist/orchestration-shell/components/InputBar.d.ts +55 -0
  276. package/dist/orchestration-shell/components/LiveProgressLine.d.ts +8 -0
  277. package/dist/orchestration-shell/components/MultiTrackStatusNode.d.ts +8 -0
  278. package/dist/orchestration-shell/components/OrchestrationApp.d.ts +129 -0
  279. package/dist/orchestration-shell/components/ReviewerSetupWizard.d.ts +24 -0
  280. package/dist/orchestration-shell/components/StatusBar.d.ts +20 -0
  281. package/dist/orchestration-shell/components/nodes/AdvisoryEntry.d.ts +8 -0
  282. package/dist/orchestration-shell/components/nodes/GateStatusNode.d.ts +8 -0
  283. package/dist/orchestration-shell/components/nodes/PlannerDecisionEntry.d.ts +8 -0
  284. package/dist/orchestration-shell/components/nodes/ReviewerQuorumStatusNode.d.ts +8 -0
  285. package/dist/orchestration-shell/components/nodes/SlashOutputEntry.d.ts +8 -0
  286. package/dist/orchestration-shell/components/nodes/SubagentEventEntry.d.ts +8 -0
  287. package/dist/orchestration-shell/components/nodes/UserMessageEntry.d.ts +8 -0
  288. package/dist/orchestration-shell/context-store.d.ts +389 -0
  289. package/dist/orchestration-shell/declared-test-runner.d.ts +84 -0
  290. package/dist/orchestration-shell/emit-shell-event.d.ts +64 -0
  291. package/dist/orchestration-shell/gate-decision-submit.d.ts +245 -0
  292. package/dist/orchestration-shell/gate-prompts.d.ts +481 -0
  293. package/dist/orchestration-shell/index.d.ts +712 -0
  294. package/dist/orchestration-shell/ink-runtime.d.ts +84 -0
  295. package/dist/orchestration-shell/live-region-cap.d.ts +70 -0
  296. package/dist/orchestration-shell/live-static-order.d.ts +22 -0
  297. package/dist/orchestration-shell/mode-selection.d.ts +46 -0
  298. package/dist/orchestration-shell/non-tty-fallback.d.ts +67 -0
  299. package/dist/orchestration-shell/process-markers.d.ts +12 -0
  300. package/dist/orchestration-shell/quorum-loop.d.ts +1900 -0
  301. package/dist/orchestration-shell/reducer.d.ts +8 -0
  302. package/dist/orchestration-shell/root-discovery.d.ts +25 -0
  303. package/dist/orchestration-shell/route-browse.d.ts +20 -0
  304. package/dist/orchestration-shell/slash-router.d.ts +64 -0
  305. package/dist/orchestration-shell/slash-routes/continuation.d.ts +71 -0
  306. package/dist/orchestration-shell/slash-routes/reviewers.d.ts +41 -0
  307. package/dist/orchestration-shell/slash-suggest.d.ts +29 -0
  308. package/dist/orchestration-shell/status-format.d.ts +59 -0
  309. package/dist/orchestration-shell/sticky-preference.d.ts +24 -0
  310. package/dist/orchestration-shell/store.d.ts +17 -0
  311. package/dist/orchestration-shell/task-progress.d.ts +122 -0
  312. package/dist/orchestration-shell/team-decompose.d.ts +196 -0
  313. package/dist/orchestration-shell/types.d.ts +777 -0
  314. package/dist/orchestration-shell/vendor/ink-parse-keypress.d.ts +42 -0
  315. package/dist/orchestration-shell/web/extract.d.ts +11 -0
  316. package/dist/orchestration-shell/web/fetch.d.ts +15 -0
  317. package/dist/orchestration-shell/web/ip.d.ts +26 -0
  318. package/dist/orchestration-shell/web/sanitize.d.ts +14 -0
  319. package/dist/orchestration-shell/web/search.d.ts +16 -0
  320. package/dist/planner/__tests__/cache-clarification-bypass.test.d.ts +1 -0
  321. package/dist/planner/__tests__/cache.test.d.ts +1 -0
  322. package/dist/planner/__tests__/client.test.d.ts +1 -0
  323. package/dist/planner/__tests__/health-machine-transitions.test.d.ts +1 -0
  324. package/dist/planner/__tests__/local-gemma.test.d.ts +1 -0
  325. package/dist/planner/__tests__/types-zod.test.d.ts +1 -0
  326. package/dist/planner/adapter.d.ts +16 -0
  327. package/dist/planner/cache.d.ts +35 -0
  328. package/dist/planner/client.d.ts +103 -0
  329. package/dist/planner/health-state.d.ts +24 -0
  330. package/dist/planner/index.d.ts +7 -0
  331. package/dist/planner/local-advisory.d.ts +84 -0
  332. package/dist/planner/local-gemma.d.ts +23 -0
  333. package/dist/planner/types.d.ts +123 -0
  334. package/dist/reviewer/__tests__/antigravity-provider.test.d.ts +1 -0
  335. package/dist/reviewer/__tests__/claude-provider-json.test.d.ts +1 -0
  336. package/dist/reviewer/__tests__/cp7-reviewer-sandbox.test.d.ts +1 -0
  337. package/dist/reviewer/__tests__/output-parser-classifier-helpers.test.d.ts +1 -0
  338. package/dist/reviewer/__tests__/verdict-classifier.test.d.ts +1 -0
  339. package/dist/reviewer/index.d.ts +2 -0
  340. package/dist/reviewer/output-parser.d.ts +48 -12
  341. package/dist/reviewer/provider.d.ts +107 -3
  342. package/dist/reviewer/providers/__tests__/failure-classifier.test.d.ts +1 -0
  343. package/dist/reviewer/providers/antigravity.d.ts +49 -0
  344. package/dist/reviewer/providers/claude.d.ts +19 -4
  345. package/dist/reviewer/providers/codex.d.ts +47 -5
  346. package/dist/reviewer/providers/failure-classifier.d.ts +26 -0
  347. package/dist/reviewer/providers/gemini.d.ts +5 -4
  348. package/dist/reviewer/registry.d.ts +5 -5
  349. package/dist/reviewer/subprocess.d.ts +37 -0
  350. package/dist/reviewer/token-usage.d.ts +32 -0
  351. package/dist/reviewer/types.d.ts +5 -5
  352. package/dist/reviewer/verdict-classifier.d.ts +62 -0
  353. package/dist/session/__tests__/prepare-event-timestamp.test.d.ts +1 -0
  354. package/dist/session/__tests__/session-resume-service-keys.test.d.ts +1 -0
  355. package/dist/session/index.d.ts +1 -0
  356. package/dist/session/prepare-event-timestamp.d.ts +30 -0
  357. package/dist/session/session-rekey.d.ts +40 -0
  358. package/dist/session/session-resume.d.ts +25 -0
  359. package/dist/structural-summary/__tests__/__fixtures__/fixture-helpers.d.ts +11 -0
  360. package/dist/structural-summary/__tests__/assembler.test.d.ts +1 -0
  361. package/dist/structural-summary/__tests__/generator.test.d.ts +1 -0
  362. package/dist/structural-summary/__tests__/language-detect.test.d.ts +1 -0
  363. package/dist/structural-summary/__tests__/manifest-parsers/cargo.test.d.ts +1 -0
  364. package/dist/structural-summary/__tests__/manifest-parsers/gomod.test.d.ts +1 -0
  365. package/dist/structural-summary/__tests__/manifest-parsers/gradle.test.d.ts +1 -0
  366. package/dist/structural-summary/__tests__/manifest-parsers/index.test.d.ts +1 -0
  367. package/dist/structural-summary/__tests__/manifest-parsers/npm.test.d.ts +1 -0
  368. package/dist/structural-summary/__tests__/manifest-parsers/podfile.test.d.ts +1 -0
  369. package/dist/structural-summary/__tests__/manifest-parsers/pyproject.test.d.ts +1 -0
  370. package/dist/structural-summary/__tests__/opt-in-store.test.d.ts +1 -0
  371. package/dist/structural-summary/__tests__/privacy-filter.test.d.ts +1 -0
  372. package/dist/structural-summary/__tests__/safe-file-read.test.d.ts +1 -0
  373. package/dist/structural-summary/__tests__/user-ignore-matcher.test.d.ts +1 -0
  374. package/dist/structural-summary/__tests__/walker.test.d.ts +1 -0
  375. package/dist/structural-summary/generator.d.ts +8 -0
  376. package/dist/structural-summary/index.d.ts +7 -0
  377. package/dist/structural-summary/manifest-parsers/cargo.d.ts +3 -0
  378. package/dist/structural-summary/manifest-parsers/index.d.ts +7 -0
  379. package/dist/structural-summary/manifest-parsers/npm.d.ts +3 -0
  380. package/dist/structural-summary/manifest-parsers/other.d.ts +17 -0
  381. package/dist/structural-summary/opt-in-store.d.ts +24 -0
  382. package/dist/structural-summary/privacy-filter.d.ts +110 -0
  383. package/dist/structural-summary/safe-file-read.d.ts +11 -0
  384. package/dist/structural-summary/types.d.ts +215 -0
  385. package/dist/structural-summary/user-ignore-matcher.d.ts +9 -0
  386. package/dist/structural-summary/walker.d.ts +20 -0
  387. package/dist/substrate/__tests__/docker.test.d.ts +1 -0
  388. package/dist/substrate/__tests__/forwarder.test.d.ts +1 -0
  389. package/dist/substrate/__tests__/git-proxy.test.d.ts +1 -0
  390. package/dist/substrate/__tests__/sandbox-exec.test.d.ts +1 -0
  391. package/dist/substrate/__tests__/substrate-e2e.integration.test.d.ts +1 -0
  392. package/dist/substrate/command-runner.d.ts +19 -0
  393. package/dist/substrate/docker.d.ts +134 -0
  394. package/dist/substrate/errors.d.ts +33 -0
  395. package/dist/substrate/forwarder.d.ts +67 -0
  396. package/dist/substrate/git-proxy.d.ts +35 -0
  397. package/dist/substrate/index.d.ts +12 -0
  398. package/dist/substrate/relay-script.d.ts +27 -0
  399. package/dist/substrate/sandbox-exec.d.ts +116 -0
  400. package/dist/substrate/types.d.ts +218 -0
  401. package/dist/substrate-launch/__tests__/apikey-bootstrap.test.d.ts +1 -0
  402. package/dist/substrate-launch/__tests__/creditless-loop.integration.test.d.ts +1 -0
  403. package/dist/substrate-launch/__tests__/engage-substrate.test.d.ts +1 -0
  404. package/dist/substrate-launch/__tests__/fallback-ladder.test.d.ts +1 -0
  405. package/dist/substrate-launch/__tests__/le-env-scrub.test.d.ts +1 -0
  406. package/dist/substrate-launch/__tests__/sanitized-env.test.d.ts +1 -0
  407. package/dist/substrate-launch/apikey-bootstrap.d.ts +84 -0
  408. package/dist/substrate-launch/engage-substrate.d.ts +102 -0
  409. package/dist/substrate-launch/fallback-ladder.d.ts +49 -0
  410. package/dist/substrate-launch/index.d.ts +12 -0
  411. package/dist/substrate-launch/le-env-scrub.d.ts +77 -0
  412. package/dist/substrate-launch/sanitized-env.d.ts +73 -0
  413. package/dist/types/auth.d.ts +6 -1
  414. package/dist/types/events.d.ts +19 -2
  415. package/dist/types/reviewer.d.ts +6 -6
  416. package/package.json +21 -3
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The device's raw P-256 key material, as stored on the device identity
3
+ * (`KeychainManager`). Both halves are STANDARD base64 of the raw bytes:
4
+ * - `privateKeyB64`: 32-byte P-256 scalar (`getPrivateKey()` raw form).
5
+ * - `publicKeyB64`: 64-byte uncompressed point x‖y, NO 0x04 prefix
6
+ * (`getPublicKey().subarray(1)` raw form).
7
+ * This matches `crypto-service.ts:52-68` + the 2f.3.a wire-format lock.
8
+ */
9
+ export interface DeviceSigningKey {
10
+ privateKeyB64: string;
11
+ publicKeyB64: string;
12
+ }
13
+ /**
14
+ * Produce the RFC 8785 JCS canonical-JSON STRING of `obj` with its
15
+ * `signatureFieldName` key REMOVED (the signature cannot be part of its own
16
+ * signing input). Mirrors the Rust `canonical_json_for_signing` /
17
+ * `canonical_json_for_merge_classification` discipline: materialize the
18
+ * object, drop the signature key, then canonicalize. The object's keys are
19
+ * already camelCase on the wire; JCS sorts them lexicographically so the
20
+ * camelCase wire names are what get hashed.
21
+ *
22
+ * Exported so tests (and the golden-vector fixture generator) can assert the
23
+ * exact canonical string and catch future json-freeze JCS drift.
24
+ */
25
+ export declare function canonicalJsonForSigning(obj: Record<string, unknown>, signatureFieldName: string): string;
26
+ /**
27
+ * Sign a Class A envelope object. The canonical bytes are the JCS of the
28
+ * envelope with `signature` removed (matching Rust
29
+ * `canonical_json_for_signing`, signing.rs:126-141). Returns the
30
+ * STANDARD-base64 raw-64-byte signature to assign to `envelope.signature`.
31
+ *
32
+ * `unsignedEnvelope` is the envelope object WITHOUT (or before) the
33
+ * `signature` field is set; any existing `signature` key is stripped before
34
+ * canonicalizing, so passing a partially-populated object is safe.
35
+ */
36
+ export declare function signClassAEnvelope(unsignedEnvelope: Record<string, unknown>, keys: DeviceSigningKey): string;
37
+ /**
38
+ * Sign a MergeGate classification (#C12-8). The signing domain is the JCS of
39
+ * the classification with `signatureB64` removed AND `leDeviceId` INSIDE the
40
+ * domain (only `signatureB64` is stripped) — the device binds itself into
41
+ * its own signature. Matches the Rust
42
+ * `canonical_json_for_merge_classification`, which removes only the
43
+ * camelCase `signatureB64` key.
44
+ *
45
+ * Callers (W2.b) build the classification object, set `leDeviceId`, leave
46
+ * `signatureB64` empty/unset, call this helper, then assign the returned
47
+ * base64 to `signatureB64`. The crypto lives here so W2.b only orchestrates.
48
+ *
49
+ * @param classificationWithoutSig the camelCase classification object with
50
+ * `leDeviceId` populated and `signatureB64` empty/absent.
51
+ * @param keys the LE's device P-256 key material.
52
+ * @param leDeviceId the signing device id; written into the classification's
53
+ * `leDeviceId` field (inside the signing domain) before canonicalizing
54
+ * — so the caller cannot accidentally sign over a stale/blank value.
55
+ * @returns the STANDARD-base64 raw-64-byte signature for `signatureB64`.
56
+ */
57
+ export declare function signMergeClassification(classificationWithoutSig: Record<string, unknown>, keys: DeviceSigningKey, leDeviceId: string): string;
@@ -0,0 +1,276 @@
1
+ import type { AuthorityScope } from './authority';
2
+ import { ClassAEmitter, ClassAEmitterContext } from './class-a-emit';
3
+ import { EmitShellEventFn } from './hook-bridge';
4
+ import { ClassBInbound, GateDispatchPayload, MergeGateDispatchPayload, ReviewerDispatchPayload, ReviseFeedbackPayload, TaskGroupHaltedPayload, TrackAssignedPayload } from './types';
5
+ import type { ContinuationPacketWriter } from '../continuation/packet-writer';
6
+ import type { PacketWriteInput } from '../continuation/types';
7
+ export type ClassBVerificationResult = {
8
+ ok: true;
9
+ } | {
10
+ ok: false;
11
+ reason: 'malformed_envelope' | 'algorithm_unsupported';
12
+ };
13
+ /**
14
+ * CP-1.e signature-verification STUB per design §4.1.
15
+ *
16
+ * Returns `{ ok: false }` on:
17
+ * - missing/empty `signedEnvelope` or `signatureB64`
18
+ * - unsupported `algorithm` (only `ed25519` / `p384-ecdsa` per CP-0 §2.3 enum)
19
+ * - missing/empty `publicKeyId`
20
+ * - missing/malformed `nonceUlid` (must be 26-char ULID)
21
+ *
22
+ * Returns `{ ok: true }` for every structurally-well-formed envelope. CP-2
23
+ * Stage A replaces the implementation with real signature verification but
24
+ * preserves this exact return-type contract (LOCK #E1-1 stability).
25
+ */
26
+ export declare function verifyClassBSignature(envelope: ClassBInbound): ClassBVerificationResult;
27
+ export declare const INBOUND_REPLAY_CAP = 10000;
28
+ export declare const INBOUND_REPLAY_TTL_MS: number;
29
+ /**
30
+ * INBOUND ULID-replay registry per design §5.1 + CP-0 §2.5 invariant #5.
31
+ *
32
+ * SCOPE DISAMBIGUATION (LOCK inherited from CP-1.c §6.2):
33
+ * - OUTBOUND emitter dedupe = `ClassAEmitter.seenUlids` (CP-1.c scope).
34
+ * - INBOUND consumer replay refusal = this class (CP-1.e scope).
35
+ *
36
+ * Bounded memory: 10K LRU entries × 24h TTL. Sweep is O(n) worst case but
37
+ * amortizes O(1) per insert because JS Map iterates in insertion order — a
38
+ * single non-expired entry means all subsequent ones are non-expired.
39
+ */
40
+ export declare class UlidReplayRegistry {
41
+ private readonly cap;
42
+ private readonly ttlMs;
43
+ private readonly nowMs;
44
+ private readonly seenAt;
45
+ constructor(cap?: number, ttlMs?: number, nowMs?: () => number);
46
+ /**
47
+ * Returns `true` if the ULID is a replay (already seen within the active
48
+ * window). On `false`, the ULID is inserted and the registry is swept for
49
+ * expired entries + cap overflow.
50
+ */
51
+ checkAndInsert(ulid: string): boolean;
52
+ private sweepExpired;
53
+ /** Test-only — exposes seen-set size. */
54
+ get sizeForTests(): number;
55
+ }
56
+ /**
57
+ * Normalize an inbound `TrackAssigned` wire object (engine camelCase +
58
+ * lowercase agent) into the desktop's internal snake_case `TrackAssignedPayload`
59
+ * shape. Returns a plain object that `isValidTrackAssignedPayload` then deeply
60
+ * validates — invalid input still flows through to the validator (which drops).
61
+ * Best-effort: never throws (Class B consumption is best-effort per LOCK #E3-1).
62
+ */
63
+ export declare function normalizeTrackAssignedWire(raw: unknown): Partial<TrackAssignedPayload>;
64
+ /**
65
+ * FIX-3 — deep-validate a `TrackAssigned` payload BEFORE caching it or invoking
66
+ * the `launchTrack` DI callback. The shallow truthiness check left malformed
67
+ * NESTED fields (`write_paths` / `auto_modified_files` not arrays, invalid
68
+ * `implementor_agent` enum, non-numeric `track_index` / `dispatch_generation`,
69
+ * missing `ownership_scope` sub-arrays) to throw later inside
70
+ * `scopeFromOwnership` / `launchTrack` / `buildChangedFileSets`, crashing Class
71
+ * B consumption. Returns `true` only when EVERY field the team path reads is
72
+ * well-typed; the caller drops + logs on `false`.
73
+ *
74
+ * NOTE: kept structural (no throw) — Class B consumption is best-effort per
75
+ * LOCK #E3-1, so an invalid packet is dropped, never surfaced as an exception.
76
+ */
77
+ export declare function isValidTrackAssignedPayload(payload: Partial<TrackAssignedPayload> | undefined): payload is TrackAssignedPayload;
78
+ export interface ClassBConsumerState {
79
+ /** Last received PlannerDecisionApproved per taskId; CP-2 reads. */
80
+ plannerDecisionByTask: Map<string, Extract<ClassBInbound, {
81
+ kind: 'PlannerDecisionApproved';
82
+ }>>;
83
+ /** Last received GateDispatch per gateRunId; CP-2 reads. */
84
+ gateDispatchByRun: Map<string, Extract<ClassBInbound, {
85
+ kind: 'GateDispatch';
86
+ }>>;
87
+ /** Last received ContinuationOffer per handoffId; CP-2 reads. */
88
+ continuationOfferByHandoff: Map<string, Extract<ClassBInbound, {
89
+ kind: 'ContinuationOffer';
90
+ }>>;
91
+ /**
92
+ * CP-12 W2.b — last received TrackAssigned per `<task_group_id>::<track_index>`
93
+ * (introspection / re-dispatch reconciliation). The idempotency-by-generation
94
+ * decision lives in the `TrackRegistry` (track-registry.ts), NOT here — this
95
+ * is a record of what the consumer saw, not the spawn gate.
96
+ */
97
+ trackAssignedByTrack: Map<string, TrackAssignedPayload>;
98
+ /** CP-12 W2.b — last received MergeGateDispatch per `merge_gate_id`. */
99
+ mergeGateDispatchByGate: Map<string, MergeGateDispatchPayload>;
100
+ /** CP-12 W2.b — last received TaskGroupHalted per `task_group_id`. */
101
+ taskGroupHaltedByGroup: Map<string, TaskGroupHaltedPayload>;
102
+ }
103
+ export interface ClassBConsumerDeps {
104
+ emitter: ClassAEmitter;
105
+ emitShellEvent: EmitShellEventFn;
106
+ getContext: () => ClassAEmitterContext;
107
+ /** Called on TaskAuthorized to mutate the LocalExecutorImpl's authority scope (CP-0 §2.5 invariant #6). */
108
+ advanceAuthorityScope: (newScope: AuthorityScope, taskId: string) => void;
109
+ /**
110
+ * CP-1.f execute-first (D5 / #PR-1 / #PR-3) — called on the `TaskAuthorized`
111
+ * Class-B edge (the engine's SINGLE canonical "authorized-to-execute" signal,
112
+ * which fires for ALL THREE authorize paths: FinalApprovalPending+Approve,
113
+ * Halted+Accept, Halted+AcceptWithNotes — NOT keyed on `final_approval_resolved`
114
+ * alone). PROMOTES the task's shadow onto the real tree (the ONLY place the
115
+ * real workspace is mutated). Idempotent (#PR-4) — a packet + recovery
116
+ * double-fire is a safe no-op. When OMITTED (non-loop LE / tests), no promote
117
+ * runs (back-compat; only `advanceAuthorityScope` fires).
118
+ */
119
+ promoteOnTaskAuthorized?: (taskId: string) => Promise<void>;
120
+ /**
121
+ * Called on PolicyRejection to surface the rejection to the user (LOCK C4-3
122
+ * user-visible channel). Audited-path fix (Fix B) — `rejectedTaskId` carries
123
+ * the rejected task's OWN taskId (from the outer Class B envelope; the
124
+ * PolicyRejection payload has none) so the desktop wiring discards EXACTLY
125
+ * that task's shadow rather than the now-active task's. Undefined when the
126
+ * envelope lacked a taskId.
127
+ */
128
+ notifyPolicyRejection?: (detail: string, category: string, recommendedRecovery: string, rejectedTaskId?: string) => void;
129
+ /** Test seam for deterministic UlidReplayRegistry behavior. */
130
+ replayRegistry?: UlidReplayRegistry;
131
+ /**
132
+ * CP-6 LOCK #C6-A-10 — optional continuation packet writer. When
133
+ * present, `handleContinuationOffer` writes the local
134
+ * `CONTINUATION.md` packet after caching the offer and computes the
135
+ * authoritative JCS-canonical-JSON SHA-256 hash, then invokes the
136
+ * direct `recordContinuationPacketWritten` mutation. When omitted
137
+ * (back-compat for unit tests + pre-CP-6 LocalExecutorImpl instances),
138
+ * the consumer behaves exactly as before — cache-update only.
139
+ */
140
+ continuationPacketWriter?: ContinuationPacketWriter;
141
+ /**
142
+ * CP-6 — caller-supplied builder that turns an inbound
143
+ * `ContinuationOffer` into a `PacketWriteInput`. The class-B consumer
144
+ * has no view of the local sessionId / taskSummary / completedWork
145
+ * narrative — those live in the LocalExecutorImpl session state.
146
+ * When omitted, the consumer derives a minimal sentinel-only packet
147
+ * from the inbound offer payload (handoffId → taskId fall-back).
148
+ */
149
+ buildContinuationPacketInput?: (packet: Extract<ClassBInbound, {
150
+ kind: 'ContinuationOffer';
151
+ }>) => PacketWriteInput | null;
152
+ /**
153
+ * Launch the implementor for a track (#C12-14). MUST be idempotent by
154
+ * `(task_group_id, track_index, dispatch_generation)` — the LE's
155
+ * `TrackRegistry` ignores a duplicate generation (a duplicate `TrackAssigned`
156
+ * spawns NOTHING). Advances the per-track authority scope to
157
+ * `ownership_scope` and runs the track in its isolated `state_dir`.
158
+ */
159
+ launchTrack?: (payload: TrackAssignedPayload) => Promise<void>;
160
+ /**
161
+ * Run the MergeGate integration check on the `owner_track_index` track,
162
+ * classify + sign the result, and `submitMergeGateVerdict` (#C12-7/#C12-8).
163
+ */
164
+ runMergeGate?: (payload: MergeGateDispatchPayload) => Promise<void>;
165
+ /**
166
+ * Surface a group halt to the UI (NOTIFICATION + choices) and signal the
167
+ * in-flight track processes to stop (#C12-12). Deep choice-driven
168
+ * auto-resolution is server-side (#C12-3) — the LE only surfaces + stops.
169
+ */
170
+ haltTaskGroup?: (payload: TaskGroupHaltedPayload) => Promise<void>;
171
+ /**
172
+ * §3.C.18 — REAL Ed25519 signature verifier. Resolves (+ caches) the
173
+ * engine's Class-B public key and cryptographically verifies the packet's
174
+ * signature fail-closed. Returns `true` ONLY when the signature is
175
+ * cryptographically valid. When OMITTED (CP-1.e unit tests + pre-CP-1.f LE
176
+ * instances that never receive live packets), only the structural
177
+ * `verifyClassBSignature` check runs (back-compat). #C1F-9: production wires
178
+ * this so live Class B is fail-closed.
179
+ */
180
+ classBSignatureVerifier?: (packet: ClassBInbound) => Promise<boolean>;
181
+ /**
182
+ * CP-1.f Wave 3 FIX — §3.C.20 — consume a `GATE_DISPATCH` packet. For the
183
+ * round-0 `reviewer_quorum` gate (`gateType === "reviewer_quorum"`,
184
+ * `reviewerSeats` absent at START), the shell spawns the implementor + submits
185
+ * its output against `gateRunId` (the engine's round-0 gate_id — the desktop
186
+ * CANNOT learn it from the `startTask` mutation response, which only carries
187
+ * the workflow-state label string). MUST dedup on `gateRunId` (a sweeper / WS
188
+ * re-deliver must NOT double-spawn). `verification` / `final_approval` gate
189
+ * types are OUT OF SCOPE for CP-1.f single-task (the shell logs + ignores
190
+ * them). When OMITTED (non-loop LE / tests), the kind is cached + logged
191
+ * (back-compat — the existing `gateDispatchByRun` cache update still runs).
192
+ *
193
+ * CP-12 W2.b (§3.C.2 / H1) — `envelopeTaskId` carries the OUTER Class-B
194
+ * envelope's `task_id` (the `GateDispatchPayload` has none), so the team
195
+ * quorum loop can route the round-0 dispatch to the right per-track `task_id`.
196
+ * The engine stamps this on EVERY gate dispatch — single-impl INCLUDED (it
197
+ * equals the loop's single active task). The quorum loop discriminates team vs
198
+ * single-impl by `envelopeTaskId !== activeTaskId`, NOT by presence, so a
199
+ * single-impl dispatch (envelopeTaskId === activeTaskId) falls back to the
200
+ * single active task — byte-identical to today. Mirrors the
201
+ * `notifyPolicyRejection(.., rejectedTaskId?)` precedent.
202
+ */
203
+ gateDispatch?: (payload: GateDispatchPayload, envelopeTaskId?: string) => Promise<void>;
204
+ /**
205
+ * §3.C.21 — spawn ALL assigned reviewer seats for a REVIEWER_DISPATCH packet.
206
+ * The shell fetches+decrypts each seat's prompt, runs `registry.evaluate`,
207
+ * synthesizes ESCALATE on reviewer error (#C1F-8), and submits the verdict.
208
+ * MUST be idempotent per `(gateId, seatId)` so a dropped-packet recovery
209
+ * re-spawn is a no-op (§3.C.21b double-guard lives shell-side).
210
+ */
211
+ spawnReviewers?: (payload: ReviewerDispatchPayload) => Promise<void>;
212
+ /**
213
+ * §3.C.23 — re-run the implementor for round N+1 with the aggregated REVISE
214
+ * findings, then `submitImplementorOutput(nextGateId)`. MUST dedup on
215
+ * `reviseFeedbackId` + the implementor double-spawn guard (shell-side) so a
216
+ * sweeper re-emit after a crash is idempotent.
217
+ */
218
+ runReviseRound?: (payload: ReviseFeedbackPayload) => Promise<void>;
219
+ }
220
+ /**
221
+ * Class B inbound consumer per design §6.1.
222
+ *
223
+ * Single-entrypoint `consume(packet)` enforces LOCK #E3-1 ordering:
224
+ * 1. verify (LOCK #E1-1 — refuses signature_invalid via Class A audit)
225
+ * 2. replay-check (LOCK #E2-1 — refuses ulid_replay via Class A audit)
226
+ * 3. per-kind dispatch (5 locked variants per CP-0 §2.F.9-§2.F.13)
227
+ *
228
+ * Reverse ordering would let a tampered-but-replayed envelope advance state —
229
+ * explicitly forbidden by LOCK #E3-1.
230
+ */
231
+ export declare class ClassBConsumer {
232
+ private readonly deps;
233
+ private readonly state;
234
+ private readonly replayRegistry;
235
+ constructor(deps: ClassBConsumerDeps);
236
+ /**
237
+ * @param envelopeTaskId Audited-path fix (Fix B) — the OUTER Class B envelope's
238
+ * `taskId` (`ClassBPacketEnvelopeMeta.taskId`). Forwarded ONLY to
239
+ * `handlePolicyRejection`, whose payload (`PolicyRejectionPayload`) carries no
240
+ * taskId of its own, so the rejection can discard EXACTLY the rejected task's
241
+ * shadow instead of "whatever task is active now". Optional — undefined for
242
+ * unit tests / non-WS callers (the discard then degrades to a no-op for that
243
+ * rejection, never the wrong task's shadow).
244
+ */
245
+ consume(packet: ClassBInbound, envelopeTaskId?: string): Promise<void>;
246
+ private handlePlannerDecisionApproved;
247
+ private handleGateDispatch;
248
+ private handleContinuationOffer;
249
+ private handleTaskAuthorized;
250
+ private handlePolicyRejection;
251
+ private handleTrackAssigned;
252
+ private handleMergeGateDispatch;
253
+ private handleTaskGroupHalted;
254
+ private handleReviewerDispatch;
255
+ private handleReviseFeedback;
256
+ /**
257
+ * Constructs an AuthorityRefusal with one of the LOCK #E4-1 widened category
258
+ * literals and emits an EXECUTOR_REFUSAL via the CP-1.c emitter. Audit-only:
259
+ * the user-visible NOTIFICATION channel is reserved for PolicyRejection (the
260
+ * only Class B variant that surfaces hosted policy decisions to the user).
261
+ *
262
+ * `recommendedRecovery` is derived per-category to match CP-0 §2.F.14 fixture
263
+ * row literals verbatim on the wire (was Codex Stage-2 r1 H-1 — emitter
264
+ * default `'reauthorize_locally'` is correct for `authority_scope_conflict`
265
+ * (CP-1.c authority paths) but wrong for the CP-1.e Class-B variants):
266
+ * - signature_invalid → 'retry_after_resync' (CP-0 fixture line 458)
267
+ * - ulid_replay → 'abort_task' (CP-0 fixture line 486)
268
+ * - policy_rejection → 'ask_user' (consumer of policy reject)
269
+ * - authority_scope_conflict → 'reauthorize_locally' (inherited CP-1.c default)
270
+ */
271
+ private refuseWithCategory;
272
+ /** Test-only — exposes cached-decision registry for §6.4 assertions. */
273
+ get stateForTests(): Readonly<ClassBConsumerState>;
274
+ /** Test-only — exposes replay registry for §5.3 / §6.4 introspection. */
275
+ get replayRegistryForTests(): UlidReplayRegistry;
276
+ }
@@ -0,0 +1,30 @@
1
+ import crypto from 'node:crypto';
2
+ /** Outcome of a cryptographic Class B verify. */
3
+ export type ClassBCryptoVerifyResult = {
4
+ ok: true;
5
+ } | {
6
+ ok: false;
7
+ reason: 'malformed_envelope' | 'malformed_key' | 'signature_mismatch';
8
+ };
9
+ /**
10
+ * Build a Node `KeyObject` Ed25519 public key from the raw 32-byte verifying
11
+ * key (base64). Ed25519 public keys are an OKP JWK with `crv: 'Ed25519'` and a
12
+ * base64url `x` of the 32 raw bytes. Throws on a non-32-byte key.
13
+ */
14
+ export declare function ed25519PublicKeyFromRaw(publicKeyB64: string): crypto.KeyObject;
15
+ /**
16
+ * Produce the RFC 8785 JCS canonical-JSON STRING of the full Class B envelope
17
+ * with BOTH signature carriers removed. Mirrors the engine's
18
+ * `canonical_json_for_signing` exactly. The envelope's keys are already
19
+ * camelCase on the wire; JCS sorts lexicographically over the wire-key names.
20
+ */
21
+ export declare function classBCanonicalForSigning(envelope: Record<string, unknown>): string;
22
+ /**
23
+ * Cryptographically verify an inbound Class B packet's Ed25519 signature
24
+ * against `publicKeyB64` (the engine's verifying key). FAIL-CLOSED: any
25
+ * malformed input or signature mismatch → `{ ok: false }`. Never throws.
26
+ *
27
+ * `packet` is the parsed `packetJson` (the full `ClassBEnvelope` with all
28
+ * wire fields — `parseClassBPacketPayload` returns it verbatim).
29
+ */
30
+ export declare function verifyClassBEd25519(packet: unknown, publicKeyB64: string): ClassBCryptoVerifyResult;
@@ -0,0 +1,58 @@
1
+ import type { ConflictFileMeta } from './conflict-types';
2
+ /** The outcome of attempting a class-1 reconciler. */
3
+ export type Class1ReconcileResult = {
4
+ status: 'resolved';
5
+ /** The deterministic resolved file bytes. */
6
+ bytes: Buffer;
7
+ /** Which deterministic reconciler produced this (lockfile-only in W3-core). */
8
+ reconciler: 'lockfile';
9
+ /** Byte-level explanation (audited rationale). */
10
+ explanation: string;
11
+ } | {
12
+ /** Escalate OUT of class-1 to a reviewed path. `to:3` = human gate. */
13
+ status: 'escalate';
14
+ to: 2 | 3;
15
+ reason: string;
16
+ humanGateTrigger?: 'lockfile_version_delta';
17
+ } | {
18
+ status: 'not_applicable';
19
+ };
20
+ /**
21
+ * Extract a deterministic, order-insensitive multiset of CANONICAL FULL entries
22
+ * from a lockfile by type, or `null` if the type is unsupported/unparseable (→
23
+ * fail closed). "Full" is the point (Stage-2 r2 Codex HIGH): each entry carries
24
+ * EVERY provenance/verification field, not just `name@version` —
25
+ * - Cargo.lock: the whole `[[package]]` block (name, version, **source**,
26
+ * **checksum**, dependencies), normalized + line-sorted within the block;
27
+ * - package-lock.json: each entry's FULL object (version, **resolved**,
28
+ * **integrity**, …) via {@link stableStringify};
29
+ * - go.sum: the FULL line (module version **hash**, incl. `/go.mod` rows).
30
+ * So a pure re-serialization (reorder) yields an EQUAL multiset, while ANY field
31
+ * delta — a version change OR a same-version checksum/integrity/source swap (a
32
+ * supply-chain substitution) — yields a DIFFERENT multiset → escalation.
33
+ */
34
+ export declare function lockfileCanonicalEntries(path: string, content: string): string[] | null;
35
+ /**
36
+ * §4.3 class-1 — lockfile reconciliation, EXACT FULL-ENTRY-SET only. If the track
37
+ * and counterpart lockfiles resolve the **exact same** canonical full-entry
38
+ * multiset (a pure re-sort/re-serialization — NO field changed anywhere,
39
+ * including every checksum/integrity/source/hash), the resolution = the track
40
+ * lockfile verbatim (both encode byte-equivalent dependencies). If the entry
41
+ * sets DIFFER in ANY field — a version change OR a same-version checksum/
42
+ * integrity/source swap (a supply-chain substitution, Stage-2 r2 Codex HIGH) —
43
+ * it is a real change → **escalate to class-3 (human)**, never a silent merge.
44
+ * Unsupported/unparseable lockfile → also escalate (fail closed).
45
+ */
46
+ export declare function reconcileLockfile(meta: ConflictFileMeta): Class1ReconcileResult;
47
+ /**
48
+ * Attempt the class-1 reconcilers for a conflict. In W3-core the ONLY class-1
49
+ * reconciler is the lockfile reconciler, so `lockfileHint` is required for a
50
+ * resolution: with it, the lockfile reconciler runs (and ESCALATES a
51
+ * version-delta rather than silently falling through); without it, no class-1
52
+ * reconciler applies → `not_applicable` (→ the resolve pipeline routes the
53
+ * conflict to class-2, reviewed). Whitespace/import-order class-1 reconciliation
54
+ * is deferred to the language-aware follow-on (see the module header).
55
+ */
56
+ export declare function attemptClass1(meta: ConflictFileMeta, opts?: {
57
+ lockfileHint?: boolean;
58
+ }): Class1ReconcileResult;
@@ -0,0 +1,74 @@
1
+ import type { ConflictFileMeta, ConflictHunk } from './conflict-types';
2
+ import { type ConflictResolutionRecord, type ConflictResolutionStore } from './conflict-resolution-store';
3
+ /** The bounded prompt handed to the broker (only these bytes cross the boundary). */
4
+ export interface ResolverPrompt {
5
+ path: string;
6
+ conflictKind: string;
7
+ hunkOrdinal: number;
8
+ baseLines: string[];
9
+ trackLines: string[];
10
+ counterpartLines: string[];
11
+ /** Bounded surrounding-file context (already budget-checked). */
12
+ surroundingContext: string;
13
+ }
14
+ /** The model's reply, as returned by the brokered call. */
15
+ export interface ResolverModelResult {
16
+ /** The resolved hunk lines the model proposes. */
17
+ resolvedHunkLines: string[];
18
+ /** The model's rationale. */
19
+ rationale: string;
20
+ /** Best-effort self-reported confidence (0..1). NOT a gate (class-2 is Tier-2'd). */
21
+ confidence?: number;
22
+ }
23
+ /**
24
+ * Abstracts the single allowlisted BROKERED model call (§8). The live impl
25
+ * (W3-6) constructs a `BrokerRequest` and calls the CP-7 broker's `handle()`;
26
+ * tests inject a deterministic stub. It receives ONLY the bounded prompt and
27
+ * returns ONLY the bounded result — no raw network, no ambient creds.
28
+ */
29
+ export interface ConflictModelCaller {
30
+ resolve(prompt: ResolverPrompt): Promise<ResolverModelResult>;
31
+ }
32
+ /** Inputs for resolving one class-2 conflict hunk. */
33
+ export interface ResolveClass2Input {
34
+ meta: ConflictFileMeta;
35
+ hunk: ConflictHunk;
36
+ repoId: string;
37
+ mergeImplId: string;
38
+ /** Bounded surrounding-file context bytes (the assembler's responsibility). */
39
+ surroundingContext: string;
40
+ /** Max prompt bytes; exceeding → escalate to human (§8). */
41
+ maxContextBytes: number;
42
+ }
43
+ export interface ResolveClass2Deps {
44
+ store: ConflictResolutionStore;
45
+ caller: ConflictModelCaller;
46
+ }
47
+ /** The outcome of a class-2 resolve attempt. */
48
+ export type ResolveClass2Result = {
49
+ status: 'resolved';
50
+ /** The recorded ConflictResolution (`replayed` true = served from the store). */
51
+ record: ConflictResolutionRecord;
52
+ replayed: boolean;
53
+ /** SHA-256 of the prompt bytes sent to the broker (audit). Absent on replay. */
54
+ promptHash?: string;
55
+ /** SHA-256 of the model response bytes (audit). Absent on replay. */
56
+ responseHash?: string;
57
+ } | {
58
+ /** Escalate to the human gate (class-3) — over-budget context or a
59
+ * fail-closed model-call failure. NEVER an ambient fallback. */
60
+ status: 'escalate';
61
+ reason: string;
62
+ humanGateTrigger: 'context_budget' | 'model_call_failed';
63
+ };
64
+ /** Assemble the bounded resolver prompt (only these bytes cross the boundary). */
65
+ export declare function assembleResolverPrompt(input: ResolveClass2Input): ResolverPrompt;
66
+ /** Deterministic byte size of a prompt (for the §8 budget check). */
67
+ export declare function promptByteSize(prompt: ResolverPrompt): number;
68
+ /**
69
+ * Resolve one class-2 conflict hunk (§4.3 / §8). Replay-first, bounded-context,
70
+ * brokered, fail-closed. Records the resolution on a fresh resolve. The caller
71
+ * (W3-6) composes the resolved hunk into the file and Tier-2-reviews the merged
72
+ * result before promote.
73
+ */
74
+ export declare function resolveClass2(input: ResolveClass2Input, deps: ResolveClass2Deps): Promise<ResolveClass2Result>;
@@ -0,0 +1,39 @@
1
+ import type { ConflictModelCaller, ResolverModelResult, ResolverPrompt } from './class2-resolver';
2
+ /** The single confined model invocation the caller depends on (injected). */
3
+ export interface ConfinedModelRunner {
4
+ /**
5
+ * Run the model over `promptText` under the engaged confinement (substrate
6
+ * broker path A, or trusted-container legacy spawn path B) and return its raw
7
+ * stdout. MUST run read-only over only the prompt bytes; MUST NOT expose an
8
+ * ambient vendor credential to an unconfined child (the factory guarantees the
9
+ * confinement before constructing the caller). Throws on spawn/timeout failure.
10
+ */
11
+ runConfinedModel(promptText: string): Promise<string>;
12
+ /** The merge-gate audit scope (Stage-2 r2 codex LOW) — carried for the audit trail. */
13
+ ownerTaskId: string;
14
+ }
15
+ /**
16
+ * Render the bounded class-2 resolver prompt as model-ready text. Only the
17
+ * `ResolverPrompt` bytes (the three 3-way sides + the already-budget-checked
18
+ * surrounding context) cross the boundary. Instructs a STRICT JSON reply so the
19
+ * parse is unambiguous + fail-closed.
20
+ */
21
+ export declare function renderResolverPromptText(prompt: ResolverPrompt): string;
22
+ /**
23
+ * Extract the STRICT JSON `ResolverModelResult` from the model's raw stdout.
24
+ * Tolerates surrounding whitespace + a single fenced ```json block, but requires
25
+ * a well-formed object with a string[] `resolvedHunkLines`. Throws (fail-closed)
26
+ * on anything else — `resolveClass2` escalates the hunk to the human gate.
27
+ */
28
+ export declare function parseResolverModelResult(raw: string): ResolverModelResult;
29
+ /**
30
+ * The concrete confined class-2 model caller (§2.1). Constructed ONLY when a
31
+ * confinement holds (path A/B); path C never reaches here (the factory returns
32
+ * `null` → the gate runs without a resolver → halt-on-conflict). Errors propagate
33
+ * to `resolveClass2`, which escalates fail-closed to the human gate.
34
+ */
35
+ export declare class ConfinedModelCaller implements ConflictModelCaller {
36
+ private readonly runner;
37
+ constructor(runner: ConfinedModelRunner);
38
+ resolve(prompt: ResolverPrompt): Promise<ResolverModelResult>;
39
+ }
@@ -0,0 +1,21 @@
1
+ import type { ConflictClassification, ConflictFileMeta } from './conflict-types';
2
+ import { type SharedContractDetectorOptions } from './shared-contract-detector';
3
+ /**
4
+ * Classify a single conflicting path (§4.3). The result's `class` is FINAL for
5
+ * class-3 and for the lockfile class-1 route; for a general content conflict the
6
+ * result is class-2 (content-eligible) and the resolve pipeline (W3-6) may
7
+ * downgrade it to class-1 if a deterministic reconciler proves it order/format
8
+ * only. Pure + deterministic.
9
+ *
10
+ * Order (first match wins, hard triggers first so they can never be bypassed):
11
+ * 1. non-content conflict kind → class-3 (FINAL)
12
+ * 2. binary → class-3 (FINAL)
13
+ * 2b. non-UTF-8 text (no NUL) → class-3 (FINAL) — the UTF-8 diff3 path would corrupt it
14
+ * 3. Git-LFS → class-3 (FINAL)
15
+ * 4. dangerous .gitattributes driver → class-3 (FINAL)
16
+ * 5. HARD shared-contract (detector hardGate ∪ planner) → class-3 (FINAL)
17
+ * 6. lockfile (detector, non-hard) → class-1 (reconciler: 'lockfile')
18
+ * 7. otherwise (regular-file text content) → class-2 (content-eligible)
19
+ * [add/add is a class-3 hard kind at step 1, never reaches here]
20
+ */
21
+ export declare function classifyConflict(meta: ConflictFileMeta, opts?: SharedContractDetectorOptions): ConflictClassification;
@@ -0,0 +1,61 @@
1
+ import type { AgenticResolutionRecord, ConflictResolutionRecord, ConflictResolutionStore } from './conflict-resolution-store';
2
+ import type { ResolutionSetEntry, ResolutionSetIndex } from './resolution-set-index';
3
+ /** Symmetric content cipher for at-rest encryption (the team session key, cli.ts). */
4
+ export interface ContentCipher {
5
+ encrypt(plaintext: string): string;
6
+ decrypt(ciphertext: string): string;
7
+ }
8
+ /**
9
+ * The durable, content-encrypted {@link ConflictResolutionStore} (§2.4). Loads the
10
+ * per-group file once, serves reads from memory, and flushes atomically on each
11
+ * `put`. Idempotent on `conflict_id` (the recorded resolution for an exact 3-way
12
+ * input is immutable — a second put keeps the original).
13
+ *
14
+ * SINGLE-WRITER INVARIANT (Stage-2 r1 agy LOW): the in-memory cache assumes ONE
15
+ * live instance per group at a time. That holds by construction — the store is
16
+ * built ONCE per merge-gate run (`runWorktreeMergeBranch`) and written only inside
17
+ * the SEQUENTIAL merge-train (one slot at a time), and the merge gate is dispatched
18
+ * at most once per group. Two concurrent gate runs for the same group would be a
19
+ * separate (double-promote) bug; if that invariant is ever relaxed, this store
20
+ * needs a per-group RMW lock (cf. `RevertManifestStore.withTrackTipLock`).
21
+ */
22
+ export declare class DurableConflictResolutionStore implements ConflictResolutionStore {
23
+ private readonly group;
24
+ private readonly cipher?;
25
+ private cache;
26
+ private agenticCache;
27
+ /** attemptId → keys (conflict_id / instance_id) written PENDING under it (CP-14 WB2). */
28
+ private pendingCache;
29
+ constructor(opts: {
30
+ taskGroupId: string;
31
+ rootDir?: string;
32
+ cipher?: ContentCipher;
33
+ });
34
+ private load;
35
+ private decode;
36
+ private encode;
37
+ get(conflictId: string): Promise<ConflictResolutionRecord | null>;
38
+ put(record: ConflictResolutionRecord, attemptId?: string): Promise<ConflictResolutionRecord>;
39
+ private loadAgentic;
40
+ private decodeAgentic;
41
+ private encodeAgentic;
42
+ getAgentic(instanceId: string): Promise<AgenticResolutionRecord | null>;
43
+ putAgentic(record: AgenticResolutionRecord, attemptId?: string): Promise<AgenticResolutionRecord>;
44
+ private loadPending;
45
+ /** Durably record that `key` was written PENDING under `attemptId` (no-op without an attemptId). */
46
+ private trackPending;
47
+ clearPending(attemptId: string): Promise<void>;
48
+ delete(key: string): Promise<void>;
49
+ }
50
+ /** The durable {@link ResolutionSetIndex} (§2.3) — structural, no content, plaintext. */
51
+ export declare class DurableResolutionSetIndex implements ResolutionSetIndex {
52
+ private readonly group;
53
+ private cache;
54
+ constructor(opts: {
55
+ taskGroupId: string;
56
+ rootDir?: string;
57
+ });
58
+ private load;
59
+ get(setHash: string): Promise<ResolutionSetEntry | null>;
60
+ put(setHash: string, entry: ResolutionSetEntry): Promise<void>;
61
+ }