@quantiya/codevibe-codex-plugin 2.0.6 → 2.0.8

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 (562) hide show
  1. package/README.md +20 -23
  2. package/dist/server.js +21 -21
  3. package/hooks/common.sh +506 -19
  4. package/{bin/codevibe-codex → libexec/companion-launcher} +37 -76
  5. package/node_modules/@quantiya/codevibe-core/README.md +7 -5
  6. package/node_modules/@quantiya/codevibe-core/dist/agy-cli-contract.d.ts +14 -0
  7. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +229 -61
  8. package/node_modules/@quantiya/codevibe-core/dist/appsync/event-throttle.d.ts +33 -0
  9. package/node_modules/@quantiya/codevibe-core/dist/appsync/index.d.ts +3 -2
  10. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +6 -2
  11. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-telemetry.d.ts +26 -0
  12. package/node_modules/@quantiya/codevibe-core/dist/auth/keychain-cli.d.ts +6 -0
  13. package/node_modules/@quantiya/codevibe-core/dist/auth/vendor-key-cli.d.ts +49 -0
  14. package/node_modules/@quantiya/codevibe-core/dist/companion-mode/index.d.ts +50 -22
  15. package/node_modules/@quantiya/codevibe-core/dist/companion-mode/persist-preference.d.ts +1 -5
  16. package/node_modules/@quantiya/codevibe-core/dist/companion-mode/resolve-agent.d.ts +5 -4
  17. package/node_modules/@quantiya/codevibe-core/dist/config/config.d.ts +0 -5
  18. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/__tests__/oauth-refresh.test.d.ts +1 -0
  19. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/__tests__/upstream-result-helpers.d.ts +21 -0
  20. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/broker.d.ts +196 -12
  21. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/chatgpt-config.d.ts +40 -0
  22. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/index.d.ts +4 -1
  23. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/oauth-account-lock.d.ts +150 -0
  24. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/oauth-refresh.d.ts +72 -0
  25. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/types.d.ts +165 -17
  26. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/upstream-client.d.ts +3 -2
  27. package/node_modules/@quantiya/codevibe-core/dist/credential-broker/vendor-key-store.d.ts +32 -1
  28. package/node_modules/@quantiya/codevibe-core/dist/crypto/__tests__/encrypt-for-emit.test.d.ts +1 -0
  29. package/node_modules/@quantiya/codevibe-core/dist/crypto/__tests__/open-prompt-id.test.d.ts +1 -0
  30. package/node_modules/@quantiya/codevibe-core/dist/crypto/encrypt-for-emit.d.ts +39 -0
  31. package/node_modules/@quantiya/codevibe-core/dist/crypto/index.d.ts +3 -0
  32. package/node_modules/@quantiya/codevibe-core/dist/crypto/open-prompt-id.d.ts +36 -0
  33. package/node_modules/@quantiya/codevibe-core/dist/daemon/__tests__/process-guards.test.d.ts +1 -0
  34. package/node_modules/@quantiya/codevibe-core/dist/daemon/index.d.ts +2 -0
  35. package/node_modules/@quantiya/codevibe-core/dist/daemon/process-guards.d.ts +38 -0
  36. package/node_modules/@quantiya/codevibe-core/dist/e1/__tests__/prompt-raise.test.d.ts +1 -0
  37. package/node_modules/@quantiya/codevibe-core/dist/e1/index.d.ts +2 -0
  38. package/node_modules/@quantiya/codevibe-core/dist/e1/prompt-raise.d.ts +65 -0
  39. package/node_modules/@quantiya/codevibe-core/dist/index.d.ts +20 -2
  40. package/node_modules/@quantiya/codevibe-core/dist/index.js +4543 -288
  41. package/node_modules/@quantiya/codevibe-core/dist/keychain/__tests__/keychain-manager.test.d.ts +1 -0
  42. package/node_modules/@quantiya/codevibe-core/dist/keychain/__tests__/keychain-migrate.test.d.ts +1 -0
  43. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-backend.d.ts +105 -0
  44. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.d.ts +40 -5
  45. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-migrate.d.ts +46 -0
  46. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/anchored-fs.test.d.ts +1 -0
  47. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/bounded-directory.test.d.ts +1 -0
  48. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/bounded-output.test.d.ts +1 -0
  49. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/durable-directory.test.d.ts +1 -0
  50. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/hosted-class-a-sink.test.d.ts +1 -0
  51. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/process-identity.test.d.ts +1 -0
  52. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/process-tree.test.d.ts +1 -0
  53. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/publication-authority-capability.test.d.ts +1 -0
  54. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/reviewer-rationale-flag.test.d.ts +1 -0
  55. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/snapshot-merge.test.d.ts +1 -0
  56. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/workspace-authority-fixture.d.ts +3 -0
  57. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/workspace-authority.test.d.ts +1 -0
  58. package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/workspace-materializer.test.d.ts +1 -0
  59. package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-disposable-repo.d.ts +23 -6
  60. package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-resolve.d.ts +16 -0
  61. package/node_modules/@quantiya/codevibe-core/dist/local-executor/anchored-fs.d.ts +243 -0
  62. package/node_modules/@quantiya/codevibe-core/dist/local-executor/bounded-directory.d.ts +64 -0
  63. package/node_modules/@quantiya/codevibe-core/dist/local-executor/bounded-helper.d.ts +22 -0
  64. package/node_modules/@quantiya/codevibe-core/dist/local-executor/bounded-output.d.ts +11 -0
  65. package/node_modules/@quantiya/codevibe-core/dist/local-executor/class-a-emit.d.ts +13 -1
  66. package/node_modules/@quantiya/codevibe-core/dist/local-executor/class-a-sign.d.ts +15 -0
  67. package/node_modules/@quantiya/codevibe-core/dist/local-executor/durable-directory.d.ts +25 -0
  68. package/node_modules/@quantiya/codevibe-core/dist/local-executor/durable-store.d.ts +217 -25
  69. package/node_modules/@quantiya/codevibe-core/dist/local-executor/group-decision-outcome.d.ts +11 -0
  70. package/node_modules/@quantiya/codevibe-core/dist/local-executor/hosted-class-a-sink.d.ts +27 -0
  71. package/node_modules/@quantiya/codevibe-core/dist/local-executor/implementor-argv.d.ts +89 -7
  72. package/node_modules/@quantiya/codevibe-core/dist/local-executor/index.d.ts +3 -2
  73. package/node_modules/@quantiya/codevibe-core/dist/local-executor/local-executor-impl.d.ts +177 -76
  74. package/node_modules/@quantiya/codevibe-core/dist/local-executor/merge-conflict-resolve.d.ts +19 -0
  75. package/node_modules/@quantiya/codevibe-core/dist/local-executor/process-identity.d.ts +16 -0
  76. package/node_modules/@quantiya/codevibe-core/dist/local-executor/process-tree.d.ts +123 -0
  77. package/node_modules/@quantiya/codevibe-core/dist/local-executor/revert-reconcile.d.ts +16 -0
  78. package/node_modules/@quantiya/codevibe-core/dist/local-executor/revert-runner.d.ts +14 -1
  79. package/node_modules/@quantiya/codevibe-core/dist/local-executor/reviewer-rationale-flag.d.ts +10 -0
  80. package/node_modules/@quantiya/codevibe-core/dist/local-executor/snapshot-merge.d.ts +124 -0
  81. package/node_modules/@quantiya/codevibe-core/dist/local-executor/task-group-types.d.ts +7 -6
  82. package/node_modules/@quantiya/codevibe-core/dist/local-executor/team-execution-flag.d.ts +2 -2
  83. package/node_modules/@quantiya/codevibe-core/dist/local-executor/track-registry.d.ts +2 -0
  84. package/node_modules/@quantiya/codevibe-core/dist/local-executor/types.d.ts +34 -2
  85. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/build.d.ts +5 -0
  86. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/deploy-preflight.d.ts +2 -0
  87. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/diff-sanity.d.ts +12 -0
  88. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/hostile-grep.d.ts +2 -0
  89. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/lint.d.ts +2 -0
  90. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/shell-runner.d.ts +5 -0
  91. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/source-traceability.d.ts +2 -0
  92. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/tests.d.ts +3 -0
  93. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/typecheck.d.ts +3 -0
  94. package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-runner.d.ts +6 -0
  95. package/node_modules/@quantiya/codevibe-core/dist/local-executor/workspace-authority.d.ts +45 -0
  96. package/node_modules/@quantiya/codevibe-core/dist/local-executor/workspace-materializer.d.ts +27 -0
  97. package/node_modules/@quantiya/codevibe-core/dist/local-executor/workspace-shadow.d.ts +378 -85
  98. package/node_modules/@quantiya/codevibe-core/dist/local-model/manager.d.ts +1 -1
  99. package/node_modules/@quantiya/codevibe-core/dist/local-model/ollama.d.ts +40 -0
  100. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/detect-agents.test.d.ts +1 -0
  101. package/node_modules/@quantiya/codevibe-core/dist/orchestration/detect-agents.d.ts +10 -30
  102. package/node_modules/@quantiya/codevibe-core/dist/orchestration/index.d.ts +1 -2
  103. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/a1a-planner-offers.test.d.ts +1 -0
  104. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/a6-cli-surface.test.d.ts +1 -0
  105. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-attachment-journal.test.d.ts +1 -0
  106. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-attachments-dir-race.test.d.ts +1 -0
  107. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-multi-mention-panel.test.d.ts +1 -0
  108. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-panel-attachments.test.d.ts +1 -0
  109. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-quota-stdout-result.test.d.ts +1 -0
  110. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/agent-turn-context-batch.test.d.ts +1 -0
  111. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/bounded-shutdown.test.d.ts +1 -0
  112. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/brainstorm-quorum-wiring.test.d.ts +1 -0
  113. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/brainstorm-quorum.test.d.ts +1 -0
  114. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/cli-team-session-key.test.d.ts +1 -0
  115. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/command-intent.test.d.ts +1 -0
  116. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-compaction.test.d.ts +1 -0
  117. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-items-hosted-sync.test.d.ts +1 -0
  118. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-items-wiring.test.d.ts +1 -0
  119. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-items.test.d.ts +1 -0
  120. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/cp8-full-team-events.test.d.ts +1 -0
  121. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/cp8-team-decomposed-zk.test.d.ts +1 -0
  122. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/explicit-tty-exit.test.d.ts +1 -0
  123. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/mention-suggest.test.d.ts +1 -0
  124. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/planner-offer-e1.test.d.ts +1 -0
  125. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/route-browse-summarize-recovery.test.d.ts +1 -0
  126. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/workspace-shutdown.test.d.ts +1 -0
  127. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/advisory-attachment-journal.d.ts +165 -0
  128. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/attachments.d.ts +53 -8
  129. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/bounded-shutdown.d.ts +22 -0
  130. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/brainstorm-quorum.d.ts +118 -0
  131. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.d.ts +97 -70
  132. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +51847 -33465
  133. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/command-intent.d.ts +56 -0
  134. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/InputBar.d.ts +6 -0
  135. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/OrchestrationApp.d.ts +2 -0
  136. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-compaction.d.ts +264 -0
  137. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-items-hosted-sync.d.ts +19 -0
  138. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-items.d.ts +408 -0
  139. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-store.d.ts +162 -0
  140. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/declared-test-runner.d.ts +21 -2
  141. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/emit-shell-event.d.ts +41 -13
  142. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/explicit-tty-exit.d.ts +17 -0
  143. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/gate-decision-submit.d.ts +11 -0
  144. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/gate-prompts.d.ts +78 -3
  145. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/index.d.ts +309 -37
  146. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/mention-suggest.d.ts +11 -0
  147. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/mode-selection.d.ts +4 -22
  148. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/planner-offer-e1.d.ts +97 -0
  149. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/quorum-loop.d.ts +603 -77
  150. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/reducer.d.ts +9 -0
  151. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-progress.d.ts +17 -4
  152. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/team-decompose.d.ts +47 -29
  153. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/types.d.ts +103 -6
  154. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/workspace-shutdown.d.ts +27 -0
  155. package/node_modules/@quantiya/codevibe-core/dist/planner/index.d.ts +1 -1
  156. package/node_modules/@quantiya/codevibe-core/dist/planner/local-advisory.d.ts +12 -0
  157. package/node_modules/@quantiya/codevibe-core/dist/planner/local-gemma.d.ts +27 -0
  158. package/node_modules/@quantiya/codevibe-core/dist/planner/types.d.ts +7 -0
  159. package/node_modules/@quantiya/codevibe-core/dist/reviewer/index.d.ts +0 -2
  160. package/node_modules/@quantiya/codevibe-core/dist/reviewer/output-parser.d.ts +19 -0
  161. package/node_modules/@quantiya/codevibe-core/dist/reviewer/provider.d.ts +9 -6
  162. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/antigravity.d.ts +2 -3
  163. package/node_modules/@quantiya/codevibe-core/dist/reviewer/registry.d.ts +9 -4
  164. package/node_modules/@quantiya/codevibe-core/dist/reviewer/token-usage.d.ts +10 -0
  165. package/node_modules/@quantiya/codevibe-core/dist/reviewer/types.d.ts +3 -0
  166. package/node_modules/@quantiya/codevibe-core/dist/reviewer/verdict-classifier.d.ts +1 -0
  167. package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/device-registration-lease.test.d.ts +1 -0
  168. package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/pending-session-create.test.d.ts +1 -0
  169. package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/session-rekey-fingerprint.test.d.ts +1 -0
  170. package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/session-resume-key-reconciliation.test.d.ts +1 -0
  171. package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/session-resume-pending-first.test.d.ts +1 -0
  172. package/node_modules/@quantiya/codevibe-core/dist/session/device-key-watcher.d.ts +1 -0
  173. package/node_modules/@quantiya/codevibe-core/dist/session/index.d.ts +4 -2
  174. package/node_modules/@quantiya/codevibe-core/dist/session/pending-session-create.d.ts +61 -0
  175. package/node_modules/@quantiya/codevibe-core/dist/session/register-device-key.d.ts +11 -1
  176. package/node_modules/@quantiya/codevibe-core/dist/session/session-rekey.d.ts +8 -8
  177. package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.d.ts +21 -1
  178. package/node_modules/@quantiya/codevibe-core/dist/substrate/command-runner.d.ts +2 -0
  179. package/node_modules/@quantiya/codevibe-core/dist/substrate/docker.d.ts +14 -32
  180. package/node_modules/@quantiya/codevibe-core/dist/substrate/index.d.ts +0 -1
  181. package/node_modules/@quantiya/codevibe-core/dist/substrate/sandbox-exec.d.ts +17 -16
  182. package/node_modules/@quantiya/codevibe-core/dist/substrate/types.d.ts +39 -5
  183. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/__tests__/reviewer-credential-preflight.test.d.ts +1 -0
  184. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/apikey-bootstrap.d.ts +24 -1
  185. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/engage-substrate.d.ts +20 -0
  186. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/index.d.ts +2 -0
  187. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/reviewer-credential-preflight.d.ts +50 -0
  188. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/sanitized-env.d.ts +5 -5
  189. package/node_modules/@quantiya/codevibe-core/dist/test-publication-authority-setup.d.ts +1 -0
  190. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/consolidator.test.d.ts +1 -0
  191. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/digest.test.d.ts +1 -0
  192. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/flock-rollout-lock.test.d.ts +1 -0
  193. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/ledger.test.d.ts +1 -0
  194. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/outbox.test.d.ts +1 -0
  195. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/replay-cursor.test.d.ts +1 -0
  196. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/session-map.test.d.ts +1 -0
  197. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/socket-rollout-lock.test.d.ts +1 -0
  198. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/atomic-file.d.ts +27 -0
  199. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/consolidator.d.ts +253 -0
  200. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/digest.d.ts +4 -0
  201. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/flock-rollout-lock.d.ts +68 -0
  202. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/index.d.ts +9 -0
  203. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/ledger.d.ts +274 -0
  204. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/outbox.d.ts +60 -0
  205. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/replay-cursor.d.ts +190 -0
  206. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/session-map.d.ts +133 -0
  207. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/socket-rollout-lock.d.ts +57 -0
  208. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/types.d.ts +368 -0
  209. package/node_modules/@quantiya/codevibe-core/dist/types/encryption.d.ts +9 -0
  210. package/node_modules/@quantiya/codevibe-core/dist/types/events.d.ts +29 -4
  211. package/node_modules/@quantiya/codevibe-core/dist/types/session.d.ts +32 -2
  212. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/README.md +207 -163
  213. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  214. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/index.js +31 -0
  215. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  216. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/max.js +3 -0
  217. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  218. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/md5.js +13 -0
  219. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  220. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/native.js +4 -0
  221. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  222. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/nil.js +3 -0
  223. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/package.json +1 -0
  224. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  225. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/parse.js +11 -0
  226. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  227. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/regex.js +3 -0
  228. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  229. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/rng.js +13 -0
  230. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  231. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/sha1.js +13 -0
  232. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  233. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/stringify.js +39 -0
  234. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  235. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/types.js +2 -0
  236. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  237. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  238. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  239. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1.js +87 -0
  240. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  241. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  242. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  243. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v3.js +14 -0
  244. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  245. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v35.js +44 -0
  246. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  247. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v4.js +29 -0
  248. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  249. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v5.js +14 -0
  250. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  251. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6.js +22 -0
  252. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  253. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  254. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  255. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v7.js +69 -0
  256. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  257. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/validate.js +7 -0
  258. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  259. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/version.js +10 -0
  260. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  261. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  262. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  263. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  264. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  265. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  266. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  267. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  268. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  269. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  270. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  271. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  272. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  273. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  274. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  275. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  276. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  277. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  278. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  279. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  280. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  281. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  282. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  283. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  284. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  285. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  286. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  287. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  288. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  289. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  290. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  291. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  292. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v35.js +44 -0
  293. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  294. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  295. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  296. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  297. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  298. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6.js +22 -0
  299. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  300. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  301. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  302. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  303. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  304. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  305. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  306. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  307. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/bin/uuid +2 -0
  308. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/index.d.ts +15 -0
  309. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/{esm-node → esm}/index.js +9 -4
  310. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/max.d.ts +2 -0
  311. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/max.js +1 -0
  312. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  313. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/md5.js +11 -0
  314. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/native.d.ts +6 -0
  315. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/native.js +2 -0
  316. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  317. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/nil.js +1 -0
  318. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  319. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/parse.js +9 -0
  320. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  321. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/regex.js +1 -0
  322. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  323. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/rng.js +10 -0
  324. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  325. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/sha1.js +11 -0
  326. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  327. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/stringify.js +35 -0
  328. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/types.d.ts +21 -0
  329. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/types.js +1 -0
  330. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  331. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  332. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  333. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1.js +83 -0
  334. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  335. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  336. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  337. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v3.js +9 -0
  338. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  339. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v35.js +39 -0
  340. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  341. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v4.js +27 -0
  342. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  343. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v5.js +9 -0
  344. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  345. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6.js +20 -0
  346. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  347. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  348. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  349. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v7.js +65 -0
  350. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  351. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/validate.js +5 -0
  352. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/version.d.ts +2 -0
  353. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/version.js +8 -0
  354. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  355. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/index.js +9 -4
  356. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  357. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/max.js +1 -0
  358. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  359. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/md5.js +113 -193
  360. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  361. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/native.js +1 -3
  362. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  363. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/nil.js +1 -1
  364. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  365. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/parse.js +6 -32
  366. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  367. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/regex.js +1 -1
  368. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  369. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/rng.js +6 -13
  370. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  371. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/sha1.js +62 -88
  372. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  373. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/stringify.js +27 -25
  374. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  375. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/types.js +1 -0
  376. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  377. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  378. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  379. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1.js +78 -90
  380. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  381. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  382. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  383. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v3.js +8 -3
  384. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  385. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v35.js +30 -57
  386. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  387. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v4.js +21 -23
  388. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  389. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v5.js +8 -3
  390. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  391. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6.js +20 -0
  392. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  393. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  394. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  395. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  396. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  397. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/validate.js +2 -4
  398. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  399. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/version.js +5 -8
  400. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/package.json +73 -76
  401. package/node_modules/@quantiya/codevibe-core/package.json +7 -6
  402. package/node_modules/fs-ext/.eslintrc +53 -0
  403. package/node_modules/fs-ext/.github/workflows/node.js.yml +31 -0
  404. package/node_modules/fs-ext/.travis.yml +25 -0
  405. package/node_modules/fs-ext/LICENSE.txt +18 -0
  406. package/node_modules/fs-ext/README.md +130 -0
  407. package/node_modules/fs-ext/appveyor.yml +20 -0
  408. package/node_modules/fs-ext/binding.gyp +11 -0
  409. package/node_modules/fs-ext/build/Makefile +347 -0
  410. package/node_modules/fs-ext/build/Release/.deps/Release/fs_ext.node.d +1 -0
  411. package/node_modules/fs-ext/build/Release/.deps/Release/obj.target/fs_ext/fs-ext.o.d +165 -0
  412. package/node_modules/fs-ext/build/Release/fs_ext.node +0 -0
  413. package/node_modules/fs-ext/build/Release/obj.target/fs_ext/fs-ext.o +0 -0
  414. package/node_modules/fs-ext/build/binding.Makefile +6 -0
  415. package/node_modules/fs-ext/build/config.gypi +504 -0
  416. package/node_modules/fs-ext/build/fs_ext.target.mk +183 -0
  417. package/node_modules/fs-ext/build/gyp-mac-tool +768 -0
  418. package/node_modules/fs-ext/example.js +57 -0
  419. package/node_modules/fs-ext/fs-ext.cc +622 -0
  420. package/node_modules/fs-ext/fs-ext.js +131 -0
  421. package/node_modules/fs-ext/package.json +42 -0
  422. package/node_modules/fs-ext/run_tests.js +17 -0
  423. package/node_modules/fs-ext/tests/test-fs-fcntl.js +350 -0
  424. package/node_modules/fs-ext/tests/test-fs-flock.js +452 -0
  425. package/node_modules/fs-ext/tests/test-fs-flock_stress.js +239 -0
  426. package/node_modules/fs-ext/tests/test-fs-seek.js +607 -0
  427. package/node_modules/fs-ext/tests/test-fs-seek_stress.js +313 -0
  428. package/node_modules/fs-ext/tests/test-fs-statvfs.js +15 -0
  429. package/node_modules/fs-ext/tests/worker-test.js +56 -0
  430. package/node_modules/fs-ext/wscript +15 -0
  431. package/node_modules/nan/.github/workflows/ci.yml +46 -0
  432. package/node_modules/nan/.pre-commit-config.yaml +8 -0
  433. package/node_modules/nan/CHANGELOG.md +605 -0
  434. package/node_modules/nan/CMakeLists.txt +138 -0
  435. package/node_modules/nan/LICENSE.md +9 -0
  436. package/node_modules/nan/README.md +457 -0
  437. package/node_modules/nan/doc/asyncworker.md +146 -0
  438. package/node_modules/nan/doc/buffers.md +54 -0
  439. package/node_modules/nan/doc/callback.md +76 -0
  440. package/node_modules/nan/doc/converters.md +41 -0
  441. package/node_modules/nan/doc/errors.md +226 -0
  442. package/node_modules/nan/doc/json.md +62 -0
  443. package/node_modules/nan/doc/maybe_types.md +583 -0
  444. package/node_modules/nan/doc/methods.md +689 -0
  445. package/node_modules/nan/doc/new.md +147 -0
  446. package/node_modules/nan/doc/node_misc.md +123 -0
  447. package/node_modules/nan/doc/object_wrappers.md +263 -0
  448. package/node_modules/nan/doc/persistent.md +296 -0
  449. package/node_modules/nan/doc/scopes.md +73 -0
  450. package/node_modules/nan/doc/script.md +58 -0
  451. package/node_modules/nan/doc/string_bytes.md +81 -0
  452. package/node_modules/nan/doc/v8_internals.md +211 -0
  453. package/node_modules/nan/doc/v8_misc.md +85 -0
  454. package/node_modules/nan/include_dirs.js +1 -0
  455. package/node_modules/nan/nan.h +3202 -0
  456. package/node_modules/nan/nan_callbacks.h +141 -0
  457. package/node_modules/nan/nan_callbacks_12_inl.h +730 -0
  458. package/node_modules/nan/nan_callbacks_pre_12_inl.h +528 -0
  459. package/node_modules/nan/nan_converters.h +72 -0
  460. package/node_modules/nan/nan_converters_43_inl.h +68 -0
  461. package/node_modules/nan/nan_converters_pre_43_inl.h +42 -0
  462. package/node_modules/nan/nan_define_own_property_helper.h +29 -0
  463. package/node_modules/nan/nan_implementation_12_inl.h +446 -0
  464. package/node_modules/nan/nan_implementation_pre_12_inl.h +263 -0
  465. package/node_modules/nan/nan_json.h +166 -0
  466. package/node_modules/nan/nan_maybe_43_inl.h +360 -0
  467. package/node_modules/nan/nan_maybe_pre_43_inl.h +268 -0
  468. package/node_modules/nan/nan_new.h +340 -0
  469. package/node_modules/nan/nan_object_wrap.h +156 -0
  470. package/node_modules/nan/nan_persistent_12_inl.h +132 -0
  471. package/node_modules/nan/nan_persistent_pre_12_inl.h +242 -0
  472. package/node_modules/nan/nan_private.h +73 -0
  473. package/node_modules/nan/nan_scriptorigin.h +97 -0
  474. package/node_modules/nan/nan_string_bytes.h +305 -0
  475. package/node_modules/nan/nan_typedarray_contents.h +96 -0
  476. package/node_modules/nan/nan_weak.h +453 -0
  477. package/node_modules/nan/package.json +38 -0
  478. package/node_modules/nan/tools/1to2.js +412 -0
  479. package/node_modules/nan/tools/README.md +14 -0
  480. package/node_modules/nan/tools/package.json +19 -0
  481. package/package.json +5 -5
  482. package/node_modules/@quantiya/codevibe-core/dist/orchestration/orchestration-cli.d.ts +0 -12
  483. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-bootstrap.d.ts +0 -146
  484. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-failure-recourse.d.ts +0 -23
  485. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-save.d.ts +0 -47
  486. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-seat-picker.d.ts +0 -72
  487. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-telemetry.d.ts +0 -54
  488. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-test-agents.d.ts +0 -108
  489. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-types.d.ts +0 -146
  490. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-wizard.d.ts +0 -57
  491. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cohort-flag.d.ts +0 -16
  492. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/gemini.d.ts +0 -109
  493. package/node_modules/@quantiya/codevibe-core/dist/substrate/git-proxy.d.ts +0 -35
  494. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CHANGELOG.md +0 -274
  495. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CONTRIBUTING.md +0 -18
  496. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/bin/uuid +0 -2
  497. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
  498. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
  499. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
  500. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
  501. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
  502. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
  503. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
  504. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
  505. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
  506. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
  507. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
  508. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
  509. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
  510. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
  511. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
  512. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
  513. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/md5.js +0 -13
  514. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/native.js +0 -4
  515. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/nil.js +0 -1
  516. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/parse.js +0 -35
  517. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/regex.js +0 -1
  518. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/rng.js +0 -12
  519. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  520. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/stringify.js +0 -33
  521. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v1.js +0 -95
  522. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v3.js +0 -4
  523. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v35.js +0 -66
  524. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v4.js +0 -29
  525. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v5.js +0 -4
  526. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/validate.js +0 -7
  527. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/version.js +0 -11
  528. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/index.js +0 -79
  529. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5-browser.js +0 -223
  530. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5.js +0 -23
  531. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native-browser.js +0 -11
  532. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native.js +0 -15
  533. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/nil.js +0 -8
  534. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/parse.js +0 -45
  535. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/regex.js +0 -8
  536. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng-browser.js +0 -25
  537. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng.js +0 -24
  538. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1-browser.js +0 -104
  539. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1.js +0 -23
  540. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/stringify.js +0 -44
  541. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/uuid-bin.js +0 -85
  542. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v1.js +0 -107
  543. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v3.js +0 -16
  544. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v35.js +0 -80
  545. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v4.js +0 -43
  546. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v5.js +0 -16
  547. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/validate.js +0 -17
  548. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/version.js +0 -21
  549. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/wrapper.mjs +0 -10
  550. /package/node_modules/@quantiya/codevibe-core/dist/{companion-mode/__tests__/detect-parallel.test.d.ts → appsync/__tests__/appsync-client-context-items.test.d.ts} +0 -0
  551. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration-shell/__tests__/cli-stub-session-adapter.test.d.ts → appsync/__tests__/heartbeat-active.test.d.ts} +0 -0
  552. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-bootstrap.test.d.ts → appsync/__tests__/orphan-sweep-null-heartbeat.test.d.ts} +0 -0
  553. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-failure-recourse.test.d.ts → appsync/__tests__/refresh-open-prompt-ttl-chunk.test.d.ts} +0 -0
  554. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-save.test.d.ts → auth/__tests__/keychain-cli.test.d.ts} +0 -0
  555. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-seat-picker.test.d.ts → auth/__tests__/vendor-key-cli.test.d.ts} +0 -0
  556. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-telemetry.test.d.ts → companion-mode/__tests__/mode-selected-emit.test.d.ts} +0 -0
  557. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-test-agents.test.d.ts → companion-mode/__tests__/private-launcher-detection.test.d.ts} +0 -0
  558. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-types.test.d.ts → companion-mode/__tests__/private-launcher-path.test.d.ts} +0 -0
  559. /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-wizard.test.d.ts → credential-broker/__tests__/broker-c4.test.d.ts} +0 -0
  560. /package/node_modules/@quantiya/codevibe-core/dist/{reviewer/providers/__tests__/gemini-live-smoke.test.d.ts → credential-broker/__tests__/broker-streaming.test.d.ts} +0 -0
  561. /package/node_modules/@quantiya/codevibe-core/dist/{reviewer/providers/__tests__/gemini.test.d.ts → credential-broker/__tests__/chatgpt-config.test.d.ts} +0 -0
  562. /package/node_modules/@quantiya/codevibe-core/dist/{substrate/__tests__/git-proxy.test.d.ts → credential-broker/__tests__/oauth-account-lock.test.d.ts} +0 -0
@@ -1,22 +1,25 @@
1
1
  import type { AppSyncClient, TeamTrackRecoveryRow } from '../appsync/appsync-client';
2
2
  import type { Session } from '../types';
3
3
  import type { LocalExecutor } from '../local-executor';
4
+ import type { ClassBInbound } from '../local-executor/types';
4
5
  import type { ImageAttachment } from './types';
5
6
  import { type ImplementorMode } from '../local-executor/implementor-argv';
7
+ import { type FallbackLadderDeps } from '../substrate-launch/fallback-ladder';
6
8
  import type { ConflictModelCaller } from '../local-executor/class2-resolver';
7
9
  import type { ConflictResolverContext } from '../local-executor/merge-conflict-resolve';
8
10
  import type { AgentKind } from '../local-executor/types';
9
11
  import type { GateDispatchPayload, ReviewerDispatchPayload, ReviseFeedbackPayload } from '../local-executor/types';
10
12
  import type { TeamTrackFailureReason } from '../local-executor/task-group-types';
11
- import { WorkspaceShadow, type ShadowEnv } from '../local-executor/workspace-shadow';
13
+ import { WorkspaceShadow, type RecoveredShadow, type ShadowCleanupResidue, type ShadowEnv } from '../local-executor/workspace-shadow';
12
14
  import type { RevertManifestStore } from '../local-executor/durable-store';
15
+ import { captureWorkspaceRootAuthority } from '../local-executor/workspace-authority';
13
16
  import { type TeamExecution } from '../local-executor/team-execution-flag';
14
17
  import { type RenderedConflict, type TrackIntentDiff } from '../local-executor/wb2-review-bundle';
15
18
  import { ReviewerRegistry } from '../reviewer/registry';
16
19
  import { type ReviewerFailureReason } from '../reviewer/provider';
17
20
  import type { SubstrateHandle } from '../substrate/types';
18
21
  import type { VerdictClassifier } from '../reviewer/verdict-classifier';
19
- import type { AgentKind as ReviewerAgentKind, ReviewerRole } from '../reviewer/types';
22
+ import type { AgentKind as ReviewerAgentKind, ReviewerRole, VerdictKind } from '../reviewer/types';
20
23
  import type { OnProgress } from './task-progress';
21
24
  import { runShellCommand } from '../local-executor/verification-gates/shell-runner';
22
25
  import type { PostDecisionAction, Tier } from './types';
@@ -60,7 +63,7 @@ export declare function classifyImplementorRoundFailure(err: unknown): string;
60
63
  * Fixtures (L1):
61
64
  * - Codex (PINNED — CP-13 §0/§2-D1 live sample): `You've hit your usage limit
62
65
  * … try again at <date>` → match on `usage limit` (case-insensitive).
63
- * - Claude / Gemini: TBD — CP-13 has not captured real samples. Inventing
66
+ * - Claude: TBD — CP-13 has not captured real samples. Inventing
64
67
  * strings risks a FALSE-NEGATIVE classifier that misses a real quota error,
65
68
  * so they are left as additive one-liners to fill once real samples land.
66
69
  * An UNMATCHED quota error degrades FAIL-SAFE to the existing born-halt
@@ -135,6 +138,76 @@ export declare function selectFinalTier2Reviewer(detected: readonly AgentKind[],
135
138
  * and never falls through. Pure; NEVER throws.
136
139
  */
137
140
  export declare function selectFinalTier2Candidates(detected: readonly AgentKind[], resolverAgents: ReadonlySet<string>, override?: AgentKind | null): AgentKind[];
141
+ /**
142
+ * A1b — ONE reviewer verdict as captured desktop-side at `submitVerdict`,
143
+ * BEFORE the engine flattens the round's panel into free-text
144
+ * `ReviseSeatFinding.findings`. This is what lets round N's revise brief carry
145
+ * the STRUCTURED findings of rounds < N-1 (the "addressing 0 findings" /
146
+ * re-flagging-fixed-issues fix) without any wire change.
147
+ */
148
+ export interface RoundFindingRecord {
149
+ /** The gate round the verdict reviewed (0-based, from `roundByGateId`). */
150
+ round: number;
151
+ /** Numeric seat id as a string (matches `ReviseSeatFinding.seatId` shape). */
152
+ seatId: string;
153
+ role: ReviewerRole;
154
+ reviewerAgent: ReviewerAgentKind;
155
+ verdict: VerdictKind;
156
+ /** Capped to HISTORY_SUGGESTION_MAX_CHARS each at capture. */
157
+ suggestedChanges: string[];
158
+ /** Capped to HISTORY_REASONING_MAX_CHARS at capture. Stored for audit /
159
+ * bounded reuse; NOT rendered into the brief (the brief carries verdict +
160
+ * suggested changes only). */
161
+ reasoning: string;
162
+ }
163
+ /**
164
+ * A1b — ONE implementor rationale entry (Stage-2 R1 Codex LOW-4: the round is
165
+ * RECORDED with the text, so a round that produced no summary can never drift
166
+ * the labeling — consumers render the entry's ACTUAL round, never an inferred
167
+ * `nextRound - 1`).
168
+ */
169
+ export interface RationaleEntry {
170
+ /** The implementor round that produced this summary (0-based). */
171
+ round: number;
172
+ /** The summary text, char-capped at capture (RATIONALE_ENTRY_MAX_CHARS). */
173
+ text: string;
174
+ }
175
+ /**
176
+ * A1d / P2 resolver-intent (design §5 — the resolver's need-to-know projection:
177
+ * "conflicted paths + 3-way markers + both tracks' intent diffs + each track's
178
+ * brief + task intent"). ALL fields optional + already BOUNDED by the caller
179
+ * (`RESOLVER_INTENT_DIFF_MAX_BYTES` / `RESOLVER_TRACK_BRIEF_MAX_BYTES`);
180
+ * absent/empty ⇒ the brief is byte-identical to the pre-A1d shape (graceful
181
+ * degrade — mirrors the A1b rationale posture).
182
+ */
183
+ export interface ResolverIntentContext {
184
+ /** The INCOMING track's brief (the THEIRS side's task intent), bounded. */
185
+ incomingBrief?: string | null;
186
+ /** The incoming track's index (labeling only). */
187
+ incomingTrackIndex?: number;
188
+ /**
189
+ * Briefs of the group's OTHER registered tracks (the OURS side — the
190
+ * integration tip is the base plus the already-merged tracks), bounded,
191
+ * sorted by trackIndex.
192
+ */
193
+ integrationBriefs?: readonly {
194
+ trackIndex: number;
195
+ brief: string;
196
+ }[];
197
+ /** Bounded base→trackTip unified diff (THEIRS intent), or a placeholder line. */
198
+ incomingIntentDiff?: string | null;
199
+ /** Bounded base→integrationTip unified diff (OURS intent), or a placeholder line. */
200
+ integrationIntentDiff?: string | null;
201
+ }
202
+ /**
203
+ * CP-14 WB2 (D1, locked) — the brief delivered on the resolver agent's stdin. It
204
+ * enumerates the class-2 conflicted paths (which carry 3-way markers), instructs
205
+ * write-in-place + remove EVERY marker, and tells the agent that ONLY its edits to
206
+ * the listed files are kept (selective import — any other edit is discarded). The
207
+ * agent may read other files + run build/test to verify, but those artifacts do
208
+ * not import (they only help it converge).
209
+ */
210
+ declare function renderAgenticResolveBrief(conflictedPaths: readonly string[], implementorRationale?: string | null, intent?: ResolverIntentContext): string;
138
211
  /**
139
212
  * CP-7 §8 (Stage-1-resolved) — the narrow result the QuorumLoop consumes from
140
213
  * the reviewer substrate engager. Mirrors `SubstrateLaunch.EngageResult` /
@@ -210,6 +283,19 @@ export interface QuorumLoopDeps {
210
283
  getSessionKey: (sessionId: string) => Promise<string | null>;
211
284
  /** Working dir for spawned subprocesses (canonicalized). */
212
285
  workingDir: string;
286
+ /**
287
+ * A1d (Stage-2 R1 Codex MED) — test seams for the RESOLVER-SPECIFIC
288
+ * construction probe (`probeResolverDispatchConfinement`). `ladderDeps`
289
+ * stubs the §6 Q2 substrate ladder; `trustedContainer` stubs the
290
+ * trusted-container boundary check. ABSENT (production) → the real ladder +
291
+ * `isTrustedContainerBoundary`. The probe decides only whether the agentic
292
+ * closure is WIRED — the dispatch-time `requireConfined` engage remains the
293
+ * sole load-bearing confinement gate.
294
+ */
295
+ resolverProbeDeps?: {
296
+ ladderDeps?: FallbackLadderDeps;
297
+ trustedContainer?: () => boolean;
298
+ };
213
299
  /**
214
300
  * CP-14 Wave A — the team execution model. `worktree_merge` makes each team
215
301
  * track commit to a persistent branch (the merge-before-push spine) instead of
@@ -238,15 +324,32 @@ export interface QuorumLoopDeps {
238
324
  * agent reviewer runs INSIDE the sandbox with no ambient vendor creds and a
239
325
  * broker-routed model call — closing the CP-14 §8/§13 reviewer-sandbox gap.
240
326
  * ABSENT (legacy / companion / tests) → reviewers take the legacy unsandboxed
241
- * path BYTE-IDENTICAL (§7 non-regression). Reviewer-sandboxing is ALSO gated
242
- * behind an opt-in env flag (`CODEVIBE_SANDBOX_REVIEWERS=1`, read in
243
- * `engageSeatSubstrate` on the `spawnOneSeat` path) that DEFAULTS OFF — so
244
- * even when this engager is wired,
245
- * reviewers stay on the legacy path until the broker round-trip is observed
246
- * green in a configured env (see `reviewerSandboxingEnabled`). The flag is
327
+ * path BYTE-IDENTICAL (§7 non-regression). Reviewer-sandboxing DEFAULTS ON
328
+ * when this engager is wired (R7 A4), with an operator opt-out env flag
329
+ * (`CODEVIBE_SANDBOX_REVIEWERS=0`, read in `engageSeatSubstrate` on the
330
+ * `spawnOneSeat` path see `reviewerSandboxingEnabled`). The flag is
247
331
  * independent of implementor sandboxing (which has its own engager).
248
332
  */
249
333
  engageReviewerSubstrate?: ReviewerSubstrateEngager;
334
+ /**
335
+ * A1e (P3 slice-wiring REMAP) — compose the bounded repository-context
336
+ * block for a task dispatch: the resolved `context_ref` structural slice
337
+ * (`mintContextRef` → `resolveContextRef` → `sliceSummary`) + the FRESH-ONLY
338
+ * `repo_state` overview (design §8.3 freshness — a stale record fires the
339
+ * background re-delegation and is NEVER projected). Wired by `cli.ts` to a
340
+ * tap holder; `runOrchestrationShell` installs the real composer
341
+ * (`composeDispatchContextBlock`) — the progressTap late-binding pattern.
342
+ * Appended to the ROUND-0 implementor STDIN payload ONLY (never
343
+ * `args.brief`, which becomes the execute-first `task_brief` → the
344
+ * reviewer prompts — the same self-visibility boundary as the A1b prior-
345
+ * rationale block). Returns `''` for "no block". ABSENT (legacy / companion
346
+ * / tests) → byte-identical stdin (no projection).
347
+ */
348
+ projectDispatchContext?: (input: {
349
+ taskId: string;
350
+ agent: AgentKind;
351
+ roundNumber: number;
352
+ }) => Promise<string>;
250
353
  /**
251
354
  * CP-1.f LOCK RP-6 — this orchestration host's detected coding agents
252
355
  * (UPPERCASE `CLAUDE` / `CODEX` / `GEMINI`), computed ONCE by `cli.ts` via
@@ -283,6 +386,22 @@ export interface QuorumLoopDeps {
283
386
  * production uses the defaults (`~/.codevibe/shadow-state`, `os.tmpdir()`).
284
387
  */
285
388
  shadowEnv?: ShadowEnv;
389
+ /**
390
+ * Deterministic recovery seams. Production omits this object and uses the
391
+ * imported filesystem implementations. Tests may park an exact recovery
392
+ * await to prove the session-disposal admission/drain boundary without
393
+ * weakening any production timeout or filesystem check.
394
+ */
395
+ shadowRecoveryOps?: {
396
+ listRecoverableShadows?: (env: ShadowEnv) => Promise<RecoveredShadow[]>;
397
+ listShadowCleanupResidue?: (taskIds: ReadonlySet<string>, env: ShadowEnv) => Promise<ShadowCleanupResidue[]>;
398
+ captureWorkspaceRootAuthority?: typeof captureWorkspaceRootAuthority;
399
+ reopenShadow?: (recovered: RecoveredShadow, env: ShadowEnv) => Promise<WorkspaceShadow | null>;
400
+ reapOrphanShadows?: (keepTaskIds: ReadonlySet<string>, env: ShadowEnv) => Promise<{
401
+ reaped: string[];
402
+ retained: string[];
403
+ }>;
404
+ };
286
405
  /**
287
406
  * CP-1.f execute-first (#EF-1 / #SR-2) — surface a user-visible halt /
288
407
  * fail-closed message to the orchestration timeline. Wired by the shell to an
@@ -339,6 +458,7 @@ export interface QuorumLoopDeps {
339
458
  taskGroupId: string;
340
459
  trackIndex: number;
341
460
  state: 'Passed' | 'Failed';
461
+ resolvedBy: 'engine' | 'user';
342
462
  }) => void;
343
463
  /**
344
464
  * PHASE-589/469 W3.1 (C1) — the durable revert-manifest store. For a TEAM
@@ -359,8 +479,10 @@ export interface QuorumLoopDeps {
359
479
  *
360
480
  * SECURITY INVARIANT: events carry ONLY counts/labels/paths/elapsed — never
361
481
  * diff content, file contents, reviewer reasoning, prompts, or any decrypted
362
- * plaintext (the `TaskProgressEvent` union is the allowlist). The loop wraps
363
- * every emit so a throwing listener can NEVER break the loop.
482
+ * plaintext (the `TaskProgressEvent` union is the allowlist, with its ONE
483
+ * documented exception: `halt_notice.message`, controlled operational notice
484
+ * text from `surfaceHalt` — see task-progress.ts's header carve-out). The
485
+ * loop wraps every emit so a throwing listener can NEVER break the loop.
364
486
  */
365
487
  onProgress?: OnProgress;
366
488
  /**
@@ -412,6 +534,21 @@ declare function reviewerAgentToLeAgent(agent: ReviewerAgentKind): AgentKind;
412
534
  * leading token isn't a non-negative integer.
413
535
  */
414
536
  export declare function numericSeatId(resolvedSeatId: string): number | null;
537
+ interface TeamRunAuthority {
538
+ taskGroupId: string;
539
+ trackIndex: number;
540
+ dispatchGeneration: number;
541
+ }
542
+ /**
543
+ * Byte-equivalent to the engine's
544
+ * `round0_gate_id_for_track(task, group, track, generation)`.
545
+ *
546
+ * Live GateDispatch packets intentionally carry no mutable "current" pointer.
547
+ * Their deterministic id is the authenticated correlation between the signed
548
+ * TrackAssigned generation and the signed GateDispatch. Keeping the formula
549
+ * here closes packet-order races without extending or weakening the wire.
550
+ */
551
+ export declare function teamRound0GateId(taskId: string, taskGroupId: string, trackIndex: number, dispatchGeneration: number): string;
415
552
  export declare class QuorumLoop {
416
553
  private readonly deps;
417
554
  private readonly sleep;
@@ -481,6 +618,8 @@ export declare class QuorumLoop {
481
618
  * share a `trackIndex` overwrite each other's brief.
482
619
  */
483
620
  private teamBriefsByKey;
621
+ /** Recovery-authored briefs keyed by task/group/index/generation authority. */
622
+ private readonly recoveredBriefsByAuthority;
484
623
  private readonly activeBriefByTask;
485
624
  /**
486
625
  * CP-1.f revise-context fix (dogfood task 2ac68708, 2026-06-11) — the BINDING
@@ -501,6 +640,46 @@ export declare class QuorumLoop {
501
640
  * task's notes.
502
641
  */
503
642
  private readonly userNotesByTask;
643
+ /**
644
+ * A1b — STRUCTURED reviewer findings accumulated across ALL of a task's
645
+ * review rounds, captured at `submitVerdict` (the desktop-local hook where
646
+ * the full `ReviewerVerdict` passes through BEFORE the engine flattens the
647
+ * panel to free-text `ReviseSeatFinding.findings`). Round N's revise brief
648
+ * renders rounds < N-1 from here as the `## Findings history` section, so
649
+ * the implementor SEES what earlier rounds flagged (the "addressing 0
650
+ * findings" / re-flagging-fixed-issues fix) with NO wire change.
651
+ *
652
+ * Desktop-local capture is design-correct for GA: the locked shared-context
653
+ * design's single-write-authority means ONE desktop runs ALL of a task's
654
+ * seats, so every verdict for the task passes through THIS process's
655
+ * `submitVerdict` (multi-desktop seat fan-out is post-GA; a cross-desktop
656
+ * history store would be designed then). Lifecycle mirrors `userNotesByTask`
657
+ * exactly: cleared on promote / discard / round-0 restart replacement.
658
+ */
659
+ private readonly roundHistoryByTask;
660
+ /**
661
+ * A1b — the implementor's own per-round stdout rationale (the
662
+ * `extractAgentSummary` text), recorded as `{ round, text }` (LOW-4: labels
663
+ * come from the RECORDED round — a summary-less round can never drift them),
664
+ * bounded per entry, newest last. Three bounded consumers:
665
+ * 1. The NEXT revise round's implementor stdin (`## Your prior rationale`,
666
+ * ≤ PRIOR_RATIONALE_BRIEF_MAX_BYTES) — self-visibility only; it rides
667
+ * the stdin, NEVER the task_brief the reviewers see.
668
+ * 2. The agentic class-2 resolver brief (≤ RATIONALE_RESOLVER_MAX_BYTES,
669
+ * ungated — the resolver is intent-starved by design).
670
+ * 3. Reviewer packets, ONLY behind the DEFAULT-OFF
671
+ * OQ-REVIEWER-RATIONALE flag, as a labeled UNTRUSTED claim.
672
+ * Lifecycle mirrors `userNotesByTask` (promote / terminal discard / restart
673
+ * clear; PRESERVED across the non-terminal quota-fork/takeover discards).
674
+ */
675
+ private readonly rationaleByTask;
676
+ /**
677
+ * A1b — gate → the round number its implementor ran (set beside
678
+ * `taskByGateId` in `runImplementorRound`), so `submitVerdict` can stamp the
679
+ * verdict's `RoundFindingRecord.round`. Same append-only lifecycle as
680
+ * `taskByGateId` (per QuorumLoop life; bounded by the session's gate count).
681
+ */
682
+ private readonly roundByGateId;
504
683
  /** Seats with a reviewer subprocess currently running, keyed `gateId::seatId`. */
505
684
  private readonly runningSeats;
506
685
  /** Seats whose verdict has been submitted, keyed `gateId::seatId`. */
@@ -530,6 +709,60 @@ export declare class QuorumLoop {
530
709
  * desktop suppression closes the late-LOCAL-submit race. Keyed by taskId.
531
710
  */
532
711
  private readonly activeImplementorByTask;
712
+ /** Spawn requests that own a shadow but have not yet returned a killable handle. */
713
+ private readonly pendingImplementorByTask;
714
+ /**
715
+ * Exact lifecycle ownership keyed by gate, including an older generation
716
+ * displaced from the per-task "current" maps above. Group halt and session
717
+ * teardown enumerate these registries so every real pending/active process
718
+ * remains abortable until its own round releases ownership.
719
+ */
720
+ private readonly activeImplementorByGate;
721
+ private readonly pendingImplementorByGate;
722
+ /**
723
+ * Full implementor-round coroutines owned by this session. Process handles
724
+ * cover only the agent subprocess; capture, validation, submission, and
725
+ * failure cleanup continue after that leader exits. Session teardown must
726
+ * await this set before deleting any workspace those continuations can use.
727
+ */
728
+ private readonly implementorRoundPromises;
729
+ /** Exact task ownership for group-local cancellation/drain (no unrelated wait). */
730
+ private readonly implementorRoundPromisesByTask;
731
+ /**
732
+ * Team GateDispatch callbacks admitted before their first await. Supersede,
733
+ * terminal group halt, and session teardown drain this exact registry before
734
+ * retiring snapshots, closing the pre-round ownership gap.
735
+ */
736
+ private readonly teamDispatchAdmissionsByTask;
737
+ /**
738
+ * Per-task registration tail. Every caller publishes its immutable gate /
739
+ * generation intent before joining this queue, so a successor gate received
740
+ * while an earlier registration drains is still correlated exactly.
741
+ */
742
+ private readonly teamTaskRegistrationByTask;
743
+ /** Exact deterministic gate authority, retained through retirement for stale replay refusal. */
744
+ private readonly teamGateBindingByRunId;
745
+ /** All queued/active registration intents, used to publish successor fences synchronously. */
746
+ private readonly teamRegistrationIntentsByTask;
747
+ /** Terminal group ids: set synchronously before any halt await or side effect. */
748
+ private readonly haltedTeamGroups;
749
+ /** Exact non-terminal generation fences retained after a newer dispatch wins. */
750
+ private readonly supersededTeamRuns;
751
+ /**
752
+ * Task ids whose old generation is being aborted/drained before its newer
753
+ * brief is installed. GateDispatch buffers behind this synchronous barrier.
754
+ */
755
+ private readonly supersedingTeamTaskIds;
756
+ /**
757
+ * Child task ids observed for a terminal group. GateDispatch carries only the
758
+ * child task id, so this closes the post-halt/no-brief replay path: after the
759
+ * brief is retired, a late dispatch is rejected instead of being buffered as
760
+ * an apparently early packet. A successful registration for a different,
761
+ * non-halted group clears the tombstone, which keeps task-id reuse safe.
762
+ */
763
+ private readonly haltedTeamTaskIds;
764
+ /** Serializes exact group bundle publication against the terminal halt fence. */
765
+ private readonly teamBundleOpsByGroup;
533
766
  /**
534
767
  * PHASE-CP-10-MIN (#585) §2.3 / #C10M-16 — offers already resumed (the
535
768
  * dedupe set; keyed on `offer_id`, the same axis as the audit slot #C10M-4).
@@ -580,6 +813,8 @@ export declare class QuorumLoop {
580
813
  * cardinality is bounded by those same dedup sets).
581
814
  */
582
815
  private readonly taskByGateId;
816
+ /** Exact immutable team generation that authored each team gate. */
817
+ private readonly teamAuthorityByGateId;
583
818
  /**
584
819
  * GATE_DISPATCH `gateRunId`s already consumed (idempotent re-delivery dedup).
585
820
  * A sweeper / WS re-deliver of the SAME round-0 dispatch must NOT double-spawn
@@ -603,18 +838,25 @@ export declare class QuorumLoop {
603
838
  */
604
839
  private readonly recoveredGateRunIds;
605
840
  /**
606
- * §4.1 — DURABLE per-track tombstone for a present-but-CORRUPT brief
841
+ * §4.1 — in-session per-authority tombstone for a present-but-CORRUPT brief
607
842
  * ciphertext (decrypt threw during recovery PASS 1). Blocks BOTH recovery
608
843
  * relaunch (PASS 2) AND any future LIVE `TrackAssigned`/drain for that track
609
844
  * (§4.3) — a corrupt brief must NEVER spawn an empty-brief implementor on
610
845
  * EITHER path. The track times out via the engine sweeper (bounded). Distinct
611
846
  * from a `null` `encryptedBrief` (a legit empty brief).
612
847
  *
613
- * CP-12 W4 (#593 Stage-2 r2): keyed by the COMPOSITE `teamBriefKey(taskGroupId,
614
- * trackIndex)`, NOT bare `trackIndex` B.2 aggregates across groups, so a
615
- * tombstone on group A's track 0 must not block group B's (valid) track 0.
848
+ * Round 46: keyed by complete `(taskGroupId, trackIndex, taskId,
849
+ * dispatchGeneration)` authority, so a corrupt predecessor cannot block a
850
+ * clean successor that reuses the slot.
616
851
  */
617
852
  private readonly corruptBriefTracks;
853
+ /**
854
+ * The newest fully validated recovery authority seeded for each group/index
855
+ * slot. It prevents an asynchronously late, older recovery response (or stale
856
+ * live TrackAssigned) from replacing the brief selected for a newer
857
+ * generation. The actual tombstone remains keyed by the complete authority.
858
+ */
859
+ private readonly recoveryAuthorityBySlot;
618
860
  /**
619
861
  * #592 PROVENANCE GUARD (2026-06-26) — the task-group ids THIS desktop
620
862
  * ORIGINATED (recorded in `armB1Recovery`, right after a successful
@@ -631,11 +873,12 @@ export declare class QuorumLoop {
631
873
  */
632
874
  private readonly ownedGroupIds;
633
875
  /**
634
- * CP-12 W4 (#593 Stage-2 r2) the composite key for `teamBriefsByKey` +
635
- * `corruptBriefTracks`. `(taskGroupId, trackIndex)` so two in-flight groups
636
- * that share a `trackIndex` (B.2 aggregates session-wide) never collide.
876
+ * Slot key for parse-time briefs and the selected recovery projection.
877
+ * Deletion/launch authority never uses this key alone.
637
878
  */
638
879
  private teamBriefKey;
880
+ private recoveryAuthorityKey;
881
+ private isCorruptBriefAuthority;
639
882
  /**
640
883
  * PHASE-589/469 W3.1 (C1) — the GROUP-WIDE monotonic promote-order counter,
641
884
  * keyed by `taskGroupId`. Each team track promote reserves
@@ -720,6 +963,21 @@ export declare class QuorumLoop {
720
963
  * This also makes concurrent B.1+B.2 safe (no per-op toggle race).
721
964
  */
722
965
  private recoverySeedingDepth;
966
+ /**
967
+ * Every asynchronously delivered session coroutine that can reach a task
968
+ * workspace: Class-B consumption, shadow recovery, and B.1/B.2 team
969
+ * recovery. Admission is synchronous and closes when `shuttingDown` flips.
970
+ * Disposal drains this set before it enumerates task resources, so no
971
+ * accepted callback can mutate a map or filesystem after the boundary.
972
+ */
973
+ private readonly sessionWorkPromises;
974
+ private readonly sessionWorkAdmissions;
975
+ /** TaskAuthorized callbacks accepted before shutdown may finish promotion. */
976
+ private readonly terminalClassBAdmissionsByTask;
977
+ private trackExistingSessionWork;
978
+ private startSessionWork;
979
+ private admittedSessionWorkMayContinue;
980
+ private trackTeamRecovery;
723
981
  /**
724
982
  * §4.3 — TEAM Class B packets buffered while the recovery seed barrier is up
725
983
  * (`recoverySeedingDepth > 0`). Drained through the normal live handlers AFTER
@@ -783,25 +1041,28 @@ export declare class QuorumLoop {
783
1041
  */
784
1042
  private readonly shadowsByTask;
785
1043
  /**
786
- * PHASE-598 (Codex impl-r5 / LOCK #598-11) the REVIEWED diff snapshot per TEAM
787
- * task, stored when a round's gate goes live (reviewers dispatched). `promoteShadow`
788
- * fails-closed if the live shadow drifts from it before promote — the airtight
789
- * backstop for a declared test that spawns a DETACHED writer (the test runner waits
790
- * only on the direct child, so such a writer can mutate the shadow AFTER the
791
- * post-test re-capture passes but BEFORE promote). Presence ⇔ team task: single-impl
792
- * never stores, so its promote path is unchanged. Cleared on promote/discard.
1044
+ * Session-sticky task ids whose snapshots this loop may retire. The set does
1045
+ * not shrink when an in-memory map entry is cleared: normal teardown performs
1046
+ * a fresh durable enumeration and must still recognize an interrupted exact
1047
+ * marker. It also prevents one embedded shell from adopting another shell's
1048
+ * same-workspace snapshot merely because both share a state root.
1049
+ */
1050
+ private readonly workspaceTaskIdsOwned;
1051
+ /**
1052
+ * In-session terminal retirement tombstones. A recovery scan that started
1053
+ * before a terminal discard/promote must not reinstall its stale instance
1054
+ * after that terminal operation wins the task mutex.
1055
+ */
1056
+ private readonly terminallyRetiredWorkspaceTasks;
1057
+ /**
1058
+ * In-memory cache of the crash-durable reviewed artifact for every task. The
1059
+ * authoritative copy lives in the private snapshot marker and is persisted
1060
+ * before submission; promotion always re-reads that copy. Cleared with the
1061
+ * instance on promote/discard.
793
1062
  */
794
1063
  private readonly reviewedSnapshotByTask;
795
1064
  /** Guards concurrent shadow-create for the same task (round-0 + an early re-deliver). */
796
1065
  private readonly shadowCreateInFlight;
797
- /**
798
- * CP-14 Wave A — the ONE pinned base SHA per task group (`worktree_merge`),
799
- * captured (memoized) at the first track of the group BEFORE any shadow is
800
- * created, so EVERY track branches from the same base → a deterministic
801
- * merge-train input (Stage-1 plan-review MED-3). Promise-memoized so concurrent
802
- * track registrations share a single `git rev-parse HEAD`.
803
- */
804
- private readonly groupBaseShaInFlight;
805
1066
  /**
806
1067
  * Per-task async MUTEX for shadow LIFECYCLE mutations (restart-race fix,
807
1068
  * 2026-06-11 Stage-2 Codex r2). A promise-chain serializes EVERY map/stateDir-
@@ -818,10 +1079,12 @@ export declare class QuorumLoop {
818
1079
  * sequencing layer (errors propagate to the OWNING caller, never poison the
819
1080
  * chain for the next op), and clears the entry once the tail it stored is the
820
1081
  * one that settled (so an idle task leaks no entry). The serialized region is
821
- * fs/git-only with NO nested `runExclusiveShadowOp` call (the wrapped methods
1082
+ * filesystem-only with NO nested `runExclusiveShadowOp` call (the wrapped methods
822
1083
  * never call each other), so it cannot self-deadlock.
823
1084
  */
824
1085
  private readonly shadowOpsByTask;
1086
+ /** Once set, no new implementor workspace may be created for this session. */
1087
+ private shuttingDown;
825
1088
  /**
826
1089
  * Serialize one shadow lifecycle op for `taskId` behind any in-flight op for
827
1090
  * the same task. The op's result/rejection is returned to ITS caller; a
@@ -830,6 +1093,30 @@ export declare class QuorumLoop {
830
1093
  * appended is still the current tail (no later op queued behind us).
831
1094
  */
832
1095
  private runExclusiveShadowOp;
1096
+ private static sameTeamAuthority;
1097
+ private static teamAuthorityKey;
1098
+ private static teamAuthorityForEntry;
1099
+ private static immutableTeamTaskEntry;
1100
+ private static sameTeamTaskEntry;
1101
+ private publishTeamRegistrationIntent;
1102
+ private releaseTeamRegistrationIntent;
1103
+ private refreshTeamSupersedingFence;
1104
+ private hasQueuedNewerTeamRegistration;
1105
+ private retireTeamGateBindings;
1106
+ private teamAuthorityForTask;
1107
+ private teamRunIsHalted;
1108
+ private teamEntryMayContinue;
1109
+ private admitTeamDispatch;
1110
+ private drainTeamDispatchAdmissions;
1111
+ private runTeamBundlePublication;
1112
+ /**
1113
+ * Retire one older team dispatch generation before installing its successor.
1114
+ * The exact authority fence is published synchronously, then every pending /
1115
+ * active real handle and the complete round continuation is drained. The old
1116
+ * snapshot is removed only after process ownership is proven empty.
1117
+ */
1118
+ private retireSupersededTeamRun;
1119
+ private rememberWorkspaceLifecycleFailure;
833
1120
  /**
834
1121
  * The last terminal workspace outcome (promote / discard) this loop applied,
835
1122
  * for the `summarize_current_status` shell answer (Fix 2). RELATIVE file paths
@@ -904,6 +1191,15 @@ export declare class QuorumLoop {
904
1191
  } | {
905
1192
  kind: 'discarded';
906
1193
  } | null;
1194
+ /**
1195
+ * Session-owned Class-B ingress. The subscription calls this wrapper instead
1196
+ * of invoking the LocalExecutor directly, making delivery admission atomic
1197
+ * with the teardown fence. A packet accepted before shutdown is drained;
1198
+ * packets delivered after shutdown are ignored before verification or side
1199
+ * effects. TaskAuthorized gets a narrow terminal admission so its already-
1200
+ * delivered promote can finish before disposal enumerates the task.
1201
+ */
1202
+ consumeClassB(packet: ClassBInbound, envelopeTaskId?: string): Promise<void>;
907
1203
  /** The DI callbacks the shell wires into its ClassBConsumer. */
908
1204
  classBConsumerDeps(): {
909
1205
  classBSignatureVerifier: (packet: import('../local-executor/types').ClassBInbound) => Promise<boolean>;
@@ -1000,14 +1296,15 @@ export declare class QuorumLoop {
1000
1296
  */
1001
1297
  setTeamAttachments(taskGroupId: string, attachments: ImageAttachment[]): void;
1002
1298
  /**
1003
- * CP-12 W2.b (§3.C.3) — read the brief for `(taskGroupId, trackIndex)`. The
1299
+ * CP-12 W2.b (§3.C.3) — read the brief for a team track. The
1004
1300
  * `registerTeamTask` bridge (wired in the shell) reads this when `TrackAssigned`
1005
1301
  * correlates a track to its child `task_id`; recovery PASS 2 reads it for a
1006
1302
  * relaunched track. Empty string when the user issued no `description` for the
1007
1303
  * track (a track with no brief runs an empty-brief round-0; the engine's #EF-1
1008
- * born-halt surfaces it). Composite-keyed (#593 Stage-2 r2) see `teamBriefKey`.
1304
+ * born-halt surfaces it). Recovery callers pass task/generation so the
1305
+ * complete-authority store is consulted; two-argument calls are diagnostic.
1009
1306
  */
1010
- getTeamBrief(taskGroupId: string, trackIndex: number): string;
1307
+ getTeamBrief(taskGroupId: string, trackIndex: number, taskId?: string, dispatchGeneration?: number): string;
1011
1308
  /**
1012
1309
  * CP-12 W2.b (§3.C.3 / M5) — the brief→task_id bridge. `launchTrack` calls this
1013
1310
  * at `TrackAssigned` (the FIRST surface carrying both `track_index` AND the
@@ -1024,10 +1321,19 @@ export declare class QuorumLoop {
1024
1321
  agent: AgentKind;
1025
1322
  taskGroupId: string;
1026
1323
  trackIndex: number;
1324
+ /** Optional only for direct legacy test/recovery callers. */
1325
+ dispatchGeneration?: number;
1326
+ /**
1327
+ * Recovery/direct-call correlation when the caller already has the
1328
+ * engine gate id. Live TrackAssigned callers omit it and use the exact
1329
+ * deterministic engine formula.
1330
+ */
1331
+ gateRunId?: string;
1027
1332
  writePaths: string[];
1028
1333
  autoModifiedFiles: string[];
1029
1334
  testSurfaces: string[];
1030
- }): Promise<void>;
1335
+ }): Promise<'accepted' | 'refused'>;
1336
+ private registerTeamTaskBriefOwned;
1031
1337
  /**
1032
1338
  * CP-12 W2.b (§3.C.2) — the TEAM analogue of the single-impl round-0 spawn.
1033
1339
  * Routes by the OUTER envelope's `task_id` (the payload has none): resolves
@@ -1059,19 +1365,11 @@ export declare class QuorumLoop {
1059
1365
  private replaceShadowForRound0Locked;
1060
1366
  /**
1061
1367
  * CP-14 P1 — the team execution model this session SIGNALS on
1062
- * `createTaskGroup` (`executionModel`). Always `worktree_merge` since the
1063
- * §10 retirement (2026-07-03): overlapping-track dispatch with the
1064
- * merge-train + the server contract gate as the authority.
1368
+ * `createTaskGroup` (`executionModel`). `worktree_merge` is retained as the
1369
+ * wire label; locally it means reviewed bundles integrated in a disposable
1370
+ * filesystem snapshot, with no Git requirement.
1065
1371
  */
1066
1372
  teamExecutionModel(): TeamExecution;
1067
- /**
1068
- * CP-14 Wave A — the ONE pinned group base SHA (memoized): `git rev-parse HEAD`
1069
- * in the workspace, captured at the FIRST track of the group, BEFORE any track
1070
- * shadow/branch is created, so every track roots at the same base (Stage-1
1071
- * MED-3). Concurrent callers share one rev-parse via the in-flight promise.
1072
- * Throws if HEAD can't be resolved (a non-git workspace is ineligible upstream).
1073
- */
1074
- private ensureGroupBaseSha;
1075
1373
  /**
1076
1374
  * CP-1.f execute-first (§4) — ensure the per-task SHADOW exists, creating it
1077
1375
  * BEFORE the round-0 spawn. Idempotent: round-0 + an early GATE_DISPATCH
@@ -1101,6 +1399,8 @@ export declare class QuorumLoop {
1101
1399
  agent: AgentKind;
1102
1400
  sessionKey: string;
1103
1401
  mode?: ImplementorMode;
1402
+ /** Immutable team-generation authority captured at packet admission. */
1403
+ teamAuthority?: TeamRunAuthority;
1104
1404
  /**
1105
1405
  * CP-12 W2.b (§3.C.2b option a / H3) — TEAM only. After `captureDiff` and
1106
1406
  * BEFORE submit, validate every changed file against the track's declared
@@ -1116,13 +1416,27 @@ export declare class QuorumLoop {
1116
1416
  testSurfaces: string[];
1117
1417
  trackIndex: number;
1118
1418
  };
1419
+ /**
1420
+ * A1b — the implementor's OWN summary from the prior round, threaded by
1421
+ * `handleReviseFeedback` so the revise implementor does not re-derive its
1422
+ * own reasoning. Appended to the STDIN payload ONLY (self-visibility) —
1423
+ * NEVER to `args.brief`, which becomes the execute-first `task_brief`
1424
+ * rendered into the reviewer prompts (OQ-REVIEWER-RATIONALE: GA reviewers
1425
+ * see NO rationale; the flag-gated reviewer path is separate).
1426
+ */
1427
+ priorRationale?: {
1428
+ round: number;
1429
+ text: string;
1430
+ };
1119
1431
  }): Promise<void>;
1432
+ private runImplementorRoundOwned;
1120
1433
  /**
1121
1434
  * Extract the agent's informational stdout summary (audit-only; reviewers
1122
1435
  * never see it — they review the captured diff). Best-effort: a failure to
1123
1436
  * read the summary is NON-fatal (the diff is the source of truth). For Codex
1124
- * the clean reply is the `--output-last-message` temp file; for Gemini it is
1125
- * the JSON envelope's `.response`; Claude `--print` is clean stdout.
1437
+ * the clean reply is the `--output-last-message` temp file; Claude
1438
+ * `--print --output-format json` is unwrapped to `.result`. (Gemini was SUNSET
1439
+ * in 2026-07 — its JSON-envelope unwrap branch was removed; it is never spawned.)
1126
1440
  */
1127
1441
  private extractAgentSummary;
1128
1442
  /**
@@ -1164,6 +1478,17 @@ export declare class QuorumLoop {
1164
1478
  * `gateId` is the track's CURRENT round-N reviewer_quorum gate; REQUIRED for a
1165
1479
  * revisable reason (the engine rejects a revisable marker without it). The
1166
1480
  * TERMINAL-reason callers omit it.
1481
+ *
1482
+ * @returns `autoRevised` — whether the engine's AUTHORITATIVE returned
1483
+ * `trackState` was non-`Failed` (W2 auto-revise: the track stays InFlight and
1484
+ * a `REVISE_FEEDBACK` for the SAME taskId follows). A1b (Stage-2 R2 Codex
1485
+ * MEDIUM-1): the revisable-reason callers key their `discardShadow`
1486
+ * `preserveReviseContext` on THIS, so an auto-revised track's revise round
1487
+ * still sees the accumulated notes/history/rationale, while a genuinely
1488
+ * terminal track (Failed return, thrown/absent marker → state unknown, no
1489
+ * taskGroupId) clears as before. A thrown marker whose write actually landed
1490
+ * server-side is the one lossy edge (the engine may revise while the desktop
1491
+ * cleared) — that degrades to the pre-A1b contextless brief, never worse.
1167
1492
  */
1168
1493
  private reportTeamTrackFailure;
1169
1494
  /**
@@ -1204,6 +1529,21 @@ export declare class QuorumLoop {
1204
1529
  * `TaskGroupHalted` convergence is the authoritative group resolution).
1205
1530
  */
1206
1531
  reportTeamTrackUserResolved(taskId: string, postAction: PostDecisionAction): void;
1532
+ /**
1533
+ * Authoritative TaskGroupHalted bridge from LocalExecutor. Calling this async
1534
+ * method publishes the terminal group fence synchronously (before its first
1535
+ * await), then stops the actual QuorumLoop-owned pending/active implementors,
1536
+ * drains their complete round coroutines and bundle publications, and retires
1537
+ * every exact snapshot for the halted generation.
1538
+ */
1539
+ haltTeamTaskGroup(input: {
1540
+ taskGroupId: string;
1541
+ members: readonly {
1542
+ taskId: string;
1543
+ trackIndex: number;
1544
+ dispatchGeneration: number;
1545
+ }[];
1546
+ }): Promise<void>;
1207
1547
  /**
1208
1548
  * CP-1.f execute-first — discard the task's shadow (a non-TaskAuthorized
1209
1549
  * terminal). Best-effort: a teardown failure is logged + leaves the durable
@@ -1233,7 +1573,38 @@ export declare class QuorumLoop {
1233
1573
  * runImplementorRound) the behavior is exactly as before — discard whatever is
1234
1574
  * currently mapped for the task.
1235
1575
  */
1236
- discardShadow(taskId: string, expected?: WorkspaceShadow): Promise<void>;
1576
+ discardShadow(taskId: string, expected?: WorkspaceShadow, opts?: {
1577
+ /**
1578
+ * A1b (Stage-2 R1 Codex MEDIUM-1) — set by the NON-terminal discard
1579
+ * callers where the TASK continues on the SAME taskId after the shadow
1580
+ * is gone: the quota fork (`handleQuotaExhaustedFork` → continuation →
1581
+ * `resumeFromContinuation(input.taskId)`) and the four mid-round
1582
+ * `handoffClaimed` takeover suppressions (a `/continue request` /
1583
+ * foreign-accept claims the handoff, then the continuation resumes the
1584
+ * same task). On those paths the accumulated revise context — binding
1585
+ * user notes, structured findings history, implementor rationale — MUST
1586
+ * survive into the resumed rounds; wiping it here was exactly the
1587
+ * "resume starts amnesiac" defect. Terminal discards (user
1588
+ * reject/abort, policy rejection, born-halt, round failure,
1589
+ * all-agents-exhausted) omit this and clear as before. If the user
1590
+ * DECLINES the continuation offer, the preserved maps simply linger
1591
+ * until the task's eventual terminal (bounded: per-task caps), or
1592
+ * process end — an accepted, documented residual.
1593
+ */
1594
+ preserveReviseContext?: boolean;
1595
+ /**
1596
+ * P10 E3 r4 (Stage-1 r4 M-1) — set by `onTerminalDecision` for the
1597
+ * `restart_proposal` discard ONLY: the restart reuses the SAME taskId
1598
+ * and runs a fresh round-0, so the `discarded` closer must NOT carry
1599
+ * the taskId (a stamped closer would flip the session-listing record
1600
+ * to 'cancelled' and the M3 no-resurrect guard would lock it there —
1601
+ * even after the restarted task promotes). Deliberately does NOT touch
1602
+ * the revise-context clear or `terminallyRetiredWorkspaceTasks` — a
1603
+ * restart is a fresh round-0 (context cleared as before); ONLY the
1604
+ * listing stamp is suppressed.
1605
+ */
1606
+ taskContinues?: boolean;
1607
+ }): Promise<void>;
1237
1608
  private discardShadowLocked;
1238
1609
  /**
1239
1610
  * CP-1.f execute-first (#PR-1/#PR-3) — promote the task's shadow onto the real
@@ -1374,9 +1745,8 @@ export declare class QuorumLoop {
1374
1745
  * path (that defeats the moat).
1375
1746
  *
1376
1747
  * TRI-STATE (decided here, mirroring the implementor LE):
1377
- * 1. No engager wired OR `CODEVIBE_SANDBOX_REVIEWERS` not opted in (DEFAULT
1378
- * OFF; opt in with `=1`/`=true`) → LEGACY (byte-identical non-regression).
1379
- * No badge.
1748
+ * 1. No engager wired OR `CODEVIBE_SANDBOX_REVIEWERS=0` opted out (the gate
1749
+ * DEFAULTS ON R7 A4) → LEGACY (byte-identical non-regression). No badge.
1380
1750
  * 1b. No resolvable taskId (cannot scope a per-task broker) → LEGACY + a
1381
1751
  * reduced-trust badge (Stage-2 r1 Codex LOW — a trust-downgrade must be
1382
1752
  * VISIBLE, never a silent ambient-cred fallback; see
@@ -1409,8 +1779,8 @@ export declare class QuorumLoop {
1409
1779
  private surfaceReviewerReducedTrust;
1410
1780
  /**
1411
1781
  * Wave B §2.1 confinement TRI-STATE for a merge-gate model/reviewer invocation
1412
- * (LOCK #C14-MOAT). Path A: the CP-7 substrate/broker (opted in + a Trusted agent
1413
- * + engage succeeds → a handle; no ambient vendor cred in the child). Path B: a
1782
+ * (LOCK #C14-MOAT). Path A: the CP-7 substrate/broker (not opted out + a Trusted
1783
+ * agent + engage succeeds → a handle; no ambient vendor cred in the child). Path B: a
1414
1784
  * trusted-container boundary (legacy spawn confined by the OUTER container — the
1415
1785
  * dogfood/E2E path). Path C: neither → NOT confined. A path-A engage that
1416
1786
  * throws/reduced-trusts falls through to B/C (both safe: B confined, C refuses),
@@ -1431,6 +1801,37 @@ export declare class QuorumLoop {
1431
1801
  caller: ConflictModelCaller;
1432
1802
  teardown: () => Promise<void>;
1433
1803
  } | null>;
1804
+ /**
1805
+ * A1d (Stage-2 R1 Codex MED) — the RESOLVER-SPECIFIC construction probe:
1806
+ * can the DISPATCH-time `requireConfined` engage establish a confining
1807
+ * substrate on this host? Wire-vs-legacy ONLY — the dispatch's own engage
1808
+ * (`spawnImplementor({ requireConfined: true })`) remains the sole
1809
+ * load-bearing gate; a probe mistake can never yield an unconfined spawn.
1810
+ *
1811
+ * - A real §6 Q2 ladder tier (`sandbox_exec` / `docker`) → ESTABLISHABLE.
1812
+ * A5 covers EVERY agent: the CP-7 broker substrate for the
1813
+ * provider-backed agents (CLAUDE/CODEX) AND the A1d write-confined
1814
+ * resolver row for the broker-less agents (GEMINI/ANTIGRAVITY). The
1815
+ * docker tier covers the provider-backed agents; a broker-less track's
1816
+ * slot on that tier fail-closes at dispatch to the clean
1817
+ * `dispatch_unconfined` human-gate (FD-2) — no worse than unwired for
1818
+ * that slot, and it does not block provider-backed slots in the group.
1819
+ * - No tier + trusted container → ESTABLISHABLE (the PRESERVED
1820
+ * D5-AMEND-1 posture: the closure wires and every slot fail-closes
1821
+ * cleanly at dispatch — dogfood-verified 2026-07-03, 101ms human-gate).
1822
+ * - No tier, no container → NOT establishable → the closure stays
1823
+ * unwired, keeping today's IMMEDIATE legacy human-gate instead of
1824
+ * converting it into a per-slot spawn-time fail-close.
1825
+ *
1826
+ * Deliberately DECOUPLED from `engageWaveBConfinement` and its
1827
+ * `CODEVIBE_SANDBOX_REVIEWERS` gate (default-ON, `=0` opts out — R7 A4):
1828
+ * that flag gates REVIEWER sandboxing (per-seat, `makeConflictModelCaller`,
1829
+ * Tier-2) exactly as before — riding
1830
+ * it here made the A1d resolver row unreachable on the default bare host.
1831
+ * The ladder select is side-effect-free (no launch, no broker); test seams
1832
+ * via `deps.resolverProbeDeps`.
1833
+ */
1834
+ private probeResolverDispatchConfinement;
1434
1835
  /**
1435
1836
  * CP-14 WB2 §2.1/§2.2/§2.3 — build the AGENTIC class-2 resolver, or `null` on
1436
1837
  * path C (no confinement). When wired, a slot's class-2 conflicts are resolved
@@ -1438,11 +1839,19 @@ export declare class QuorumLoop {
1438
1839
  * disposable repo, then fd-safe selective-importing ONLY the conflicted files.
1439
1840
  * SECURITY-CRITICAL — fail-closed on BOTH layers:
1440
1841
  *
1441
- * 1. CONSTRUCTION-time (mirrors `makeConflictModelCaller` returning null): probe
1442
- * `engageWaveBConfinement` ONCE against the loop workdir; path C → return
1443
- * `null` `resolveAgentic` is NOT set on the context → a fresh class-2
1444
- * conflict takes the legacy `caller` path (which on path C is the
1445
- * CONFINEMENT-UNAVAILABLE caller → human-gate). Byte-identical to today.
1842
+ * 1. CONSTRUCTION-time — the RESOLVER-SPECIFIC probe (A1d, Stage-2 R1 Codex
1843
+ * MED): `probeResolverDispatchConfinement` wires the closure iff the
1844
+ * DISPATCH-time engage could establish a confining substrate on this
1845
+ * host (a real §6 Q2 ladder tier, or the preserved trusted-container
1846
+ * posture). Deliberately DECOUPLED from `engageWaveBConfinement`'s
1847
+ * `CODEVIBE_SANDBOX_REVIEWERS` gate (default-ON post-R7-A4) — that flag
1848
+ * gates REVIEWER
1849
+ * sandboxing (seat/`makeConflictModelCaller`/Tier-2, unchanged), and
1850
+ * riding it here made the A1d write-confined resolver row unreachable
1851
+ * on the default bare-host path. Unwired → return `null` →
1852
+ * `resolveAgentic` is NOT set on the context → a fresh class-2 conflict
1853
+ * takes the legacy `caller` path (which on path C is the
1854
+ * CONFINEMENT-UNAVAILABLE caller → human-gate).
1446
1855
  * 2. DISPATCH-time (Stage-2 Codex HIGH — confinement BOUND TO THE ACTUAL SPAWN):
1447
1856
  * `dispatchImplementor` spawns with `requireConfined: true`, so
1448
1857
  * `LocalExecutor.spawnImplementor` → `engageSubstrateForSpawn` THROWS
@@ -1536,6 +1945,26 @@ export declare class QuorumLoop {
1536
1945
  * re-delivered packet (or the next live edge) promotes it.
1537
1946
  */
1538
1947
  recoverShadows(): Promise<void>;
1948
+ private recoverShadowsOwned;
1949
+ /**
1950
+ * Session-exit ownership boundary. Stop future creates, wait behind every
1951
+ * in-flight per-task lifecycle operation, then synchronously reclaim each
1952
+ * live snapshot. Startup TTL cleanup remains only the SIGKILL/power-loss
1953
+ * fallback, not normal lifecycle management.
1954
+ */
1955
+ private reconcileUnresolvedBundleRetention;
1956
+ private retireExactShadow;
1957
+ /**
1958
+ * Strict, exhaustive cleanup for task ids this loop owns. It first attempts
1959
+ * every mapped exact instance, then performs a fresh authenticated marker
1960
+ * enumeration and reopens/retire any same-task instance absent from memory.
1961
+ * A final fresh enumeration is the convergence proof. Live foreign owners and
1962
+ * unresolved authority are preserved, but returned as explicit failures.
1963
+ */
1964
+ private cleanupOwnedTaskSnapshots;
1965
+ disposeWorkspaces(opts?: {
1966
+ strict?: boolean;
1967
+ }): Promise<void>;
1539
1968
  /**
1540
1969
  * §4.3 — true while a team recovery is seeding briefs (the startup barrier is
1541
1970
  * down). The Class B consume path checks this to BUFFER a live TEAM packet
@@ -1545,17 +1974,18 @@ export declare class QuorumLoop {
1545
1974
  */
1546
1975
  isRecoverySeeding(): boolean;
1547
1976
  /**
1548
- * §4.3 (Stage-2 r1 Codex MED) — true if `(taskGroupId, trackIndex)` carries a
1549
- * corrupt-brief TOMBSTONE. The LE consults this at the TOP of `launchTrack`
1977
+ * §4.3 (Stage-2 r1 Codex MED) — true if the complete team generation carries
1978
+ * a corrupt tombstone or is stale relative to recovered authority. The LE
1979
+ * consults this at the TOP of `launchTrack`
1550
1980
  * (before any register / spawn / lease-renewing progress emit) so a tombstoned
1551
1981
  * track is refused on the LIVE path as early as on the recovery path — never
1552
1982
  * spawning an empty-brief implementor or mutating registry state for it. The
1553
1983
  * engine sweeper times the un-launched track out (bounded).
1554
1984
  *
1555
- * CP-12 W4 (#593 Stage-2 r2): keyed by `(taskGroupId, trackIndex)` so a corrupt
1556
- * brief in group A never blocks a different group B's track with the same index.
1985
+ * Production supplies taskId + dispatchGeneration. The optional form remains
1986
+ * only for backward-compatible diagnostics/tests.
1557
1987
  */
1558
- isTrackTombstoned(taskGroupId: string, trackIndex: number): boolean;
1988
+ isTrackTombstoned(taskGroupId: string, trackIndex: number, taskId?: string, dispatchGeneration?: number): boolean;
1559
1989
  /**
1560
1990
  * #592 PROVENANCE GUARD (live path) — true if `taskGroupId` is a team group this
1561
1991
  * desktop did NOT originate AND this desktop owns ≥1 group. Wired to the LE's
@@ -1659,6 +2089,8 @@ export declare class QuorumLoop {
1659
2089
  * so this method just seeds + relaunches (it is always invoked under a barrier
1660
2090
  * that is already down, and may run multiple times within one barrier window).
1661
2091
  */
2092
+ private normalizeTeamRecoveryRow;
2093
+ private normalizeTeamRecoveryRows;
1662
2094
  recoverTeamTracks(rows: TeamTrackRecoveryRow[]): Promise<void>;
1663
2095
  /**
1664
2096
  * §4.1 PASS 2 (one row) — validate → recoverLaunchTrack → repair-on-duplicate →
@@ -1717,20 +2149,44 @@ export declare class QuorumLoop {
1717
2149
  * literal NEVER appearing in this file. The branch is `NODE_ENV==='test'`-gated
1718
2150
  * so it is never evaluated in prod regardless.
1719
2151
  */
2152
+ /**
2153
+ * #585 §5.5 / L2 + GA [A2] — parse the force-quota test seam's VALUE grammar.
2154
+ * Returns `null` outside `NODE_ENV === 'test'` or when the fragment-assembled
2155
+ * force-quota env var is unset. The env-var KEY is assembled from fragments so
2156
+ * the force-quota literal NEVER appears verbatim in the published bundle (the
2157
+ * `verify-no-test-hooks` CI grep asserts its absence); the whole gate is ALSO
2158
+ * `NODE_ENV==='test'`-gated so it is never evaluated in prod.
2159
+ *
2160
+ * Value grammar (GA [A2] additive extension — same env var, no new hook, so
2161
+ * the hostile-grep list is unchanged):
2162
+ * - `<AGENT>` — classic mode: synthetic quota stderr + forced
2163
+ * EMPTY diff → drives the born-halt continuation
2164
+ * fork (the `continuation-handoff-quota` E2E).
2165
+ * - `<AGENT>:partial` — mid-task partial-diff mode: synthetic quota
2166
+ * stderr, but the captured diff is KEPT so the
2167
+ * loop's submit-partial-to-review degradation is
2168
+ * exercised instead of the fork (an implementor
2169
+ * quota-killed MID-TASK with partial work present).
2170
+ * Both segments are case-insensitive.
2171
+ */
2172
+ private forcedQuotaSpec;
1720
2173
  /**
1721
2174
  * #585 §5.5 / L2 — the SINGLE source of the force-quota test gate. Returns true
1722
2175
  * when (a) `NODE_ENV === 'test'` AND (b) the fragment-assembled force-quota env
1723
- * var names `agent`. The env-var KEY is assembled from fragments so the
1724
- * force-quota literal NEVER appears verbatim in the published bundle (the
1725
- * `verify-no-test-hooks` CI grep asserts its absence);
1726
- * the whole gate is ALSO `NODE_ENV==='test'`-gated so it is never evaluated in
1727
- * prod. Drives BOTH the synthetic quota stderr (`resolveQuotaClassificationText`)
1728
- * AND the forced empty-diff born-halt (`runImplementorRound` capture site) the
1729
- * two halves that make the `continuation-handoff-quota` E2E reproducible (a real
1730
- * model will not deterministically exit with NO diff, which the quota fork
1731
- * requires).
2176
+ * var names `agent` (either value-grammar mode see `forcedQuotaSpec`).
2177
+ * Drives BOTH the synthetic quota stderr (`resolveQuotaClassificationText`)
2178
+ * AND the capture-site diff handling (`runImplementorRound`): classic mode
2179
+ * forces the EMPTY-diff born-halt (a real model will not deterministically
2180
+ * exit with NO diff, which the quota fork requires); `:partial` mode keeps
2181
+ * the captured diff (GA [A2]validates submit-partial-to-review).
1732
2182
  */
1733
2183
  private isForcedQuotaAgent;
2184
+ /**
2185
+ * GA [A2] — true when the force-quota seam is armed in `:partial` mode (see
2186
+ * `forcedQuotaSpec` grammar). Only meaningful alongside `isForcedQuotaAgent`;
2187
+ * prod-unreachable through the same `NODE_ENV==='test'` gate.
2188
+ */
2189
+ private isForcedQuotaPartialDiffMode;
1734
2190
  /**
1735
2191
  * Test seam — force the ROUND-0 implementor agent (overriding the session
1736
2192
  * default). `NODE_ENV==='test'`-gated; the env key is fragment-assembled so the
@@ -1799,6 +2255,7 @@ export declare class QuorumLoop {
1799
2255
  decision: string;
1800
2256
  action: PostDecisionAction;
1801
2257
  }): Promise<void>;
2258
+ private onApplyUserDecisionEchoOwned;
1802
2259
  /**
1803
2260
  * #585 §3.5 / #C10M-11/13 — resume the task with the user's chosen agent.
1804
2261
  * The SERVER has ALREADY minted the `nextGateId` row + advanced to
@@ -1815,6 +2272,7 @@ export declare class QuorumLoop {
1815
2272
  resumeFromContinuation(input: {
1816
2273
  taskId: string;
1817
2274
  targetAgent: AgentKind;
2275
+ sourceGateId?: string;
1818
2276
  nextGateId: string;
1819
2277
  nextRound: number;
1820
2278
  }): Promise<boolean>;
@@ -1864,6 +2322,61 @@ export declare class QuorumLoop {
1864
2322
  * user requirement.
1865
2323
  */
1866
2324
  private buildReviseBrief;
2325
+ /**
2326
+ * A1b — append one structured reviewer verdict to the task's findings
2327
+ * history (called from `submitVerdict`). Per-field caps bound each record
2328
+ * (reasoning ≤ HISTORY_REASONING_MAX_CHARS, each suggestion ≤
2329
+ * HISTORY_SUGGESTION_MAX_CHARS); a per-(task, round) SOFT byte cap degrades
2330
+ * later same-round records to verdict-only stubs (seat + verdict stay
2331
+ * visible; the byte-heavy narrative is dropped) so a pathological panel can
2332
+ * never balloon the in-memory history.
2333
+ */
2334
+ private recordRoundFinding;
2335
+ /**
2336
+ * A1b — record the implementor's own per-round summary as its rationale,
2337
+ * stamped with the round that produced it (LOW-4). Empty/whitespace
2338
+ * summaries are skipped (the entry's ABSENCE is what keeps labels honest —
2339
+ * a later consumer renders the newest entry's OWN round, never an inferred
2340
+ * one); each entry is char-capped and the per-task list keeps only the
2341
+ * newest RATIONALE_MAX_ENTRIES (defensive — a task's round count is already
2342
+ * bounded upstream).
2343
+ */
2344
+ private recordImplementorRationale;
2345
+ /**
2346
+ * A1b — the task's accumulated rationale as ONE bounded string (newest
2347
+ * entries win: oldest are dropped first, and the survivor text is hard
2348
+ * byte-capped). `null` when the task has no rationale (or no task resolved)
2349
+ * so callers can keep their no-rationale shape byte-identical.
2350
+ */
2351
+ private boundedRationale;
2352
+ /**
2353
+ * A1d / P2 resolver-intent (design §5/§8.1) — build the bounded INTENT
2354
+ * projection for one agentic slot resolve:
2355
+ *
2356
+ * - "each track's brief + task intent" → the INCOMING track's brief
2357
+ * (THEIRS) + the group's other registered tracks' briefs (OURS — the
2358
+ * integration tip is the base plus the already-merged tracks), from the
2359
+ * desktop-local `activeBriefByTask` registry (never on the wire), each
2360
+ * capped to `RESOLVER_TRACK_BRIEF_MAX_BYTES`.
2361
+ * - "both tracks' intent diffs" → bounded `base→theirs` / `base→ours`
2362
+ * hermetic diffs (≤ `RESOLVER_INTENT_DIFF_MAX_BYTES` per side). An
2363
+ * over-budget/unreadable side degrades to a placeholder line; a
2364
+ * binary/non-UTF-8-bearing diff (NUL / U+FFFD) likewise (mirrors the
2365
+ * Tier-2 bundle's placeholder discipline). `baseSha` absent (the
2366
+ * reconstruction-replay caller) → no diffs.
2367
+ *
2368
+ * GRACEFUL-DEGRADE, never gating: intent is an ADDITIVE projection — a
2369
+ * failure to compute any piece must not human-gate a resolve that succeeds
2370
+ * without it (the final-tip Tier-2 gate re-reviews fail-closed regardless).
2371
+ */
2372
+ private buildResolverIntentContext;
2373
+ /**
2374
+ * A1b — the newest recorded rationale entry for a task (or undefined),
2375
+ * shaped for `runImplementorRound`'s `priorRationale`. The label is the
2376
+ * entry's OWN recorded round (LOW-4) — never an inferred `nextRound - 1`,
2377
+ * which drifts when the immediately previous round produced no summary.
2378
+ */
2379
+ private latestPriorRationale;
1867
2380
  /** @internal — test introspection. */
1868
2381
  get _runningSeatsForTests(): ReadonlySet<string>;
1869
2382
  /** @internal — test introspection. */
@@ -1872,6 +2385,19 @@ export declare class QuorumLoop {
1872
2385
  _setActiveTaskForTests(taskId: string, brief?: string): void;
1873
2386
  /** @internal — read a task's accumulated binding user notes. */
1874
2387
  _userNotesForTests(taskId: string): readonly string[];
2388
+ /** @internal — A1b: read a task's accumulated structured findings history. */
2389
+ _roundHistoryForTests(taskId: string): readonly RoundFindingRecord[];
2390
+ /** @internal — A1b: read a task's accumulated implementor rationale entries. */
2391
+ _rationaleForTests(taskId: string): readonly RationaleEntry[];
2392
+ /** @internal — A1b: the bounded rationale slice a resolver/reviewer consumer gets. */
2393
+ _boundedRationaleForTests(taskId: string | undefined, maxBytes: number): string | null;
2394
+ /** @internal — A1d: the bounded resolver-intent projection for one slot resolve. */
2395
+ _buildResolverIntentContextForTests(args: {
2396
+ implementorTaskId: string;
2397
+ oursCommit: string;
2398
+ theirsCommit: string;
2399
+ baseSha?: string;
2400
+ }): Promise<ResolverIntentContext>;
1875
2401
  /** @internal — read the consumed REVISE_FEEDBACK dedup ids (Stage-2 r1 guard). */
1876
2402
  get _seenReviseFeedbackIdsForTests(): ReadonlySet<string>;
1877
2403
  /** @internal — read the live in-memory shadow handle for a task (or undefined). */
@@ -1897,4 +2423,4 @@ export declare class QuorumLoop {
1897
2423
  _replaceShadowForRound0UnlockedForTests(taskId: string): Promise<void>;
1898
2424
  _ensureShadowUnlockedForTests(taskId: string): Promise<WorkspaceShadow>;
1899
2425
  }
1900
- export { reviewerAgentToLeAgent };
2426
+ export { reviewerAgentToLeAgent, renderAgenticResolveBrief };