@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,4 +1,19 @@
1
+ import { type AnchoredFsIdentity, type AnchoredPathIdentity } from './anchored-fs';
1
2
  import type { PromoteManifestInput } from './durable-store';
3
+ import { type ProcessCleanupOwner } from './process-tree';
4
+ import { type ProcessIdentity } from './process-identity';
5
+ import { type WorkspaceRootAuthority } from './workspace-authority';
6
+ import { type MaterializationHangStage } from './workspace-materializer';
7
+ export declare const MAX_TRACKED_FILE_LOGICAL_BYTES: number;
8
+ export declare const MAX_TRACKED_WORKSPACE_LOGICAL_BYTES: number;
9
+ /** Metadata is bounded independently of content bytes (zero-byte files still cost memory/inodes). */
10
+ export declare const MAX_TRACKED_FILE_COUNT = 100000;
11
+ export declare const MAX_TRACKED_PATH_BYTES: number;
12
+ /** Reviewed text is intentionally bounded before any whole-file decode/read. */
13
+ export declare const MAX_REVIEW_FILE_BYTES: number;
14
+ export declare const MAX_PROMOTION_PREIMAGE_AGGREGATE_BYTES: number;
15
+ /** Exact UTF-8 ceiling shared by every durable state-marker writer and reader. */
16
+ export declare const MAX_STATE_MARKER_BYTES: number;
2
17
  /** Default TTL after which an orphaned shadow is GC-eligible (#GC-1). */
3
18
  export declare const DEFAULT_SHADOW_TTL_MS: number;
4
19
  /** `change_kind` values mirroring the pinned engine `ExecuteFirstFile` contract. */
@@ -10,28 +25,139 @@ export interface ShadowDiffFile {
10
25
  change_kind: ShadowChangeKind;
11
26
  /** The captured content (created/modified) or empty for deleted. */
12
27
  content: string;
28
+ /** POSIX permission bits for the reviewed post-image (omitted by legacy records). */
29
+ mode?: number;
30
+ }
31
+ /** A reviewed change plus the exact real-tree pre-image expected at promotion. */
32
+ export interface ReviewedShadowDiffFile extends ShadowDiffFile {
33
+ /** SHA-256 of the pre-task file, or null when the path was absent. */
34
+ base_hash: string | null;
35
+ /** POSIX permission bits of the pre-task file, or null when absent. */
36
+ base_mode?: number | null;
13
37
  }
14
38
  /** Persisted promote-state marker (#PR-4). */
15
- type ShadowPromoteState = 'pending' | 'promoted';
16
- /** Injected for deterministic tests; production uses the real fs/git. */
39
+ type ShadowPromoteState = 'pending' | 'applying' | 'promoted' | 'disposing';
40
+ export type CasHelperCrashStage = 'post-link' | 'post-displacement' | 'post-publication' | 'post-fsync' | 'post-close';
41
+ export interface UnresolvedBundlePublicationRetention {
42
+ taskGroupId: string;
43
+ trackIndex: number;
44
+ }
45
+ interface CasRecoveryAuthority {
46
+ path: string;
47
+ operation: 'replace' | 'delete';
48
+ /** Deterministic from the persisted root/pre/post authority. */
49
+ recoveryName: string;
50
+ /** Deterministic public-entry quarantine used instead of check-then-unlink. */
51
+ quarantineName: string;
52
+ /** Deterministic prepared-byte name for replace/create operations. */
53
+ tempName?: string;
54
+ expectedHash: string | null;
55
+ expectedMode: number | null;
56
+ postHash: string | null;
57
+ postMode: number | null;
58
+ }
59
+ /** Injected for deterministic tests; production uses the real filesystem. */
17
60
  export interface ShadowEnv {
18
- /** Sleep between git-op retries. */
61
+ /** @deprecated Compatibility-only; filesystem snapshots do not use Git retries. */
19
62
  sleep?: (ms: number) => Promise<void>;
20
63
  /** Override the per-task state dir root (default `~/.codevibe/shadow-state`). */
21
64
  stateRootDir?: string;
22
65
  /** Override the shadow temp-dir root (default `os.tmpdir()`). */
23
66
  shadowRootDir?: string;
67
+ /** @internal lower deterministic limit for serialized-marker boundary tests. */
68
+ maxStateMarkerBytes?: number;
24
69
  /** TTL for the GC reaper. */
25
70
  ttlMs?: number;
71
+ /** @internal lower deterministic workspace-authority helper deadline. */
72
+ workspaceAuthorityHelperTimeoutMs?: number;
73
+ /** @internal deterministic root/recovery authority stall seam. */
74
+ testHangWorkspaceAuthorityStage?: (target: string, boundary: string) => 'realpath' | 'lstat' | 'open' | 'stat' | 'close' | undefined;
26
75
  /** Hook to terminate task-spawned children rooted in the shadow before teardown. */
27
76
  killChildrenInShadow?: (shadowDir: string) => Promise<void>;
77
+ /** @internal lower deterministic aggregate quota for tests. */
78
+ maxSessionPhysicalCopyBytes?: number;
79
+ /** @internal lower deterministic aggregate pre-image quota for tests. */
80
+ maxPromotionPreImageAggregateBytes?: number;
81
+ /** Test seam after the stable source handle is opened but before physical streaming. */
82
+ beforePhysicalCopy?: (source: string) => Promise<void>;
83
+ /** @internal force the production helper's bounded physical-copy branch. */
84
+ forcePhysicalMaterialization?: boolean;
85
+ /** @internal lower deterministic materialization-helper deadline for tests. */
86
+ materializationHelperTimeoutMs?: number;
87
+ /** @internal deterministic live-workspace helper stall seam. */
88
+ testHangMaterializationHelperStage?: (source: string) => MaterializationHangStage | undefined;
89
+ /** Test seam after a tracked hash handle opens and before its bounded read. */
90
+ beforeTrackedHashRead?: (filePath: string) => Promise<void>;
91
+ /** Test seam after materialization and before hashing/marker persistence. */
92
+ afterShadowMaterialized?: (shadowDir: string) => Promise<void>;
93
+ /** Test seam immediately before each recovery-byte/directory durability sync. */
94
+ beforeSnapshotDurabilitySync?: (kind: 'file' | 'directory' | 'parent', target: string) => Promise<void> | void;
95
+ /** Test seam after copy and before the final durability seal + atomic exposure. */
96
+ beforeSnapshotExpose?: (stagingDir: string, finalDir: string) => Promise<void> | void;
97
+ /** @internal race seam after rename while the lifecycle fence is still held. */
98
+ afterSnapshotExposeRename?: (finalDir: string) => Promise<void> | void;
99
+ /** Test seam while the lifecycle fence is held, immediately before owner publication. */
100
+ beforeSnapshotOwnerPublish?: (stagingDir: string) => Promise<void> | void;
101
+ /** @internal failure seam after inode capture but before external authority commits. */
102
+ beforeExposureRetentionPublish?: (stagingDir: string, retentionFile: string) => Promise<void> | void;
103
+ /** Test seam after merge planning and before an integration snapshot is created. */
104
+ beforePromotionWrite?: (path: string) => Promise<void>;
105
+ /** Test seam before COMMIT; no live-workspace mutation has occurred yet. */
106
+ beforePromotionCommit?: (path: string) => Promise<void>;
107
+ /** Test seam after a promote temp file is fsynced, immediately before final CAS checks. */
108
+ afterPromotionPrepared?: (path: string) => Promise<void>;
109
+ /** Test seam after final live-parent validation; helper operations stay fd-anchored. */
110
+ afterPromotionParentValidation?: (path: string) => Promise<void>;
111
+ /** @internal lower deterministic CAS-helper deadline for tests. */
112
+ promotionHelperTimeoutMs?: number;
113
+ /** @internal deterministic CAS-helper target-filesystem stall seam. */
114
+ testHangPromotionHelperStage?: (path: string) => 'root' | 'parent' | 'target' | undefined;
115
+ /** @internal deterministic helper-death seam after COMMIT/mutation. */
116
+ testCrashPromotionHelperStage?: (path: string) => CasHelperCrashStage | undefined;
117
+ /** Test seam after the exact target is displaced but before replacement/deletion. */
118
+ afterPromotionTargetDisplaced?: (path: string, recoveryName: string) => Promise<void>;
119
+ /** Test seam immediately before the public target is atomically quarantined. */
120
+ beforePromotionTargetQuarantine?: (path: string, quarantineName: string) => Promise<void>;
121
+ /** Test seam immediately before identity-conditioned promotion quarantine unlink. */
122
+ beforePromotionFinalUnlink?: (path: string, quarantineName: string) => Promise<void>;
123
+ /** Test seam before rollback verifies/reverses a just-promoted path. */
124
+ beforePromotionRollback?: (path: string) => Promise<void>;
125
+ /** Test seam after an anchored marker parent is validated but before commit. */
126
+ beforeMarkerWriteCommit?: (filePath: string) => Promise<void>;
127
+ /** Test seam after marker CAS validation while the cross-process lock is held. */
128
+ afterMarkerWriteValidation?: (filePath: string) => Promise<void>;
129
+ /** @internal inject a post-publication directory-sync failure for a marker write. */
130
+ failMarkerDirectorySync?: (filePath: string) => boolean;
131
+ /** @internal inject a post-publication directory-sync failure for the quota registry. */
132
+ failQuotaRegistryDirectorySync?: boolean;
133
+ /** @internal fail initial/retry shadow-root durability before acknowledgement. */
134
+ failShadowRootDirectorySyncStage?: 'target-child' | 'target-parent';
135
+ /** @internal fail initial/retry state-root durability before acknowledgement. */
136
+ failStateRootDirectorySyncStage?: 'target-child' | 'target-parent';
137
+ /** Test seam after disposal reads semantic state but before its CAS transition. */
138
+ afterDisposalStateRead?: (state: ShadowPromoteState) => Promise<void>;
139
+ /** Test-only: exercise the cross-process lock without the parent-process queue. */
140
+ disableMarkerWriteProcessLock?: boolean;
141
+ /** Test seam after an anchored snapshot parent is validated but before deletion. */
142
+ beforeShadowDeleteCommit?: (shadowDir: string) => Promise<void>;
143
+ /** Test seam after the owned snapshot was renamed and inode-verified. */
144
+ afterShadowTombstoneRename?: (shadowDir: string, tombstoneDir: string) => Promise<void>;
145
+ /** @internal exact lifecycle-lock release seam after snapshot cleanup. */
146
+ beforeShadowLifecycleFinalRemove?: (artifactPath: string) => Promise<void> | void;
147
+ /** Test seam after snapshot removal but before DISPOSING marker retirement. */
148
+ afterShadowRemovedBeforeMarkerCleanup?: (shadowDir: string) => Promise<void>;
149
+ /** @internal deterministic state-directory replacement before residue cleanup. */
150
+ beforeCrashedStateArtifactCleanup?: (stateDir: string) => Promise<void> | void;
151
+ /** @internal deterministic cleanup-block replacement before exact retirement. */
152
+ beforeCleanupBlockFinalRemove?: (artifactPath: string) => Promise<void> | void;
28
153
  }
29
154
  /**
30
- * CP-14 Wave A (`team.execution=worktree_merge`) make the shadow worktree a
155
+ * Legacy migration contract from the branch-tip implementation. New creates
156
+ * ignore this option and always use a Git-independent snapshot. Historically it made a worktree a
31
157
  * PERSISTENT track branch instead of a detached HEAD, so the merge-train can
32
158
  * merge the track's committed tip. `baseSha` is the ONE group base pinned BEFORE
33
159
  * the first track shadow is created (so every track roots at the same base — a
34
- * deterministic merge-train input). Git-only: a non-git workspace is ineligible.
160
+ * deterministic merge-train input).
35
161
  */
36
162
  export interface TrackBranchSpec {
37
163
  /** The persistent branch name, e.g. `codevibe/track/<groupId>/<trackIndex>`. */
@@ -51,33 +177,69 @@ export declare class WorkspaceShadow {
51
177
  readonly workingDir: string;
52
178
  /** The shadow dir the implementor spawns in (its cwd). */
53
179
  readonly shadowDir: string;
54
- /** True when the shadow is a `git worktree` (vs a non-git file copy). */
55
- readonly isGit: boolean;
180
+ private readonly shadowDirIdentity;
181
+ private readonly snapshotRootAuthority;
182
+ private readonly workingDirIdentity;
183
+ private readonly workspaceRootAuthority;
184
+ private readonly ownerProcessIdentity;
185
+ private readonly physicalCopyBytes;
186
+ private readonly physicalCopyScope;
56
187
  /**
57
- * CP-14 Wave A the persistent track branch this shadow worktree sits on
58
- * (`worktree_merge` only); undefined on the legacy detached-HEAD path. When
59
- * set, the seam commits to this branch (see {@link commitTrack}) instead of
60
- * the in-place promote.
188
+ * Legacy marker retained for recovery compatibility. New shadows are always
189
+ * CodeVibe-managed filesystem snapshots, so this is always false.
61
190
  */
62
- readonly trackBranch?: string;
191
+ readonly isGit: boolean;
63
192
  /** Paths (RELATIVE to workingDir) materialized into the shadow — the TRACKED SET. */
64
193
  private trackedSet;
65
194
  /** Pre-task content hash per tracked path (null = absent at create), #PR-2. */
66
195
  private preTaskHashes;
196
+ /** Pre-task POSIX mode per tracked path (null = absent at create). */
197
+ private preTaskModes;
67
198
  /** The per-task durable state dir (under the app-data dir), survives restarts. */
68
199
  private readonly stateDir;
200
+ /** This snapshot instance's marker; sibling restarts never overwrite it. */
201
+ private readonly stateFile;
202
+ /** Original durable state authorities; public pathnames are never re-adopted. */
203
+ private readonly stateRootAuthority;
204
+ private readonly stateDirAuthority;
205
+ private stateFileAuthority?;
206
+ /**
207
+ * Same-instance atomic writes that may have published a replacement inode
208
+ * before their outer promise updates `stateFileAuthority`. A concurrent
209
+ * reader joins this narrow handoff instead of misclassifying our authenticated
210
+ * commit as a pathname replacement.
211
+ */
212
+ private readonly stateFileWriteAdmissions;
213
+ private exposureFileAuthority?;
214
+ private stateResourcesRetiredInProcess;
69
215
  private readonly env;
70
- private readonly sleep;
216
+ private readonly maxStateMarkerBytes;
217
+ private promotedInProcess;
218
+ private cleanupBlocked;
219
+ private cleanupOwners;
220
+ private unresolvedAuthorityRetention?;
71
221
  private constructor();
72
222
  /** @internal — test introspection of the tracked set. */
73
223
  get trackedSetForTests(): ReadonlySet<string>;
224
+ /** Exact user-root instance authenticated into reviewed team bundles. */
225
+ rootAuthorityForBundle(): WorkspaceRootAuthority;
226
+ /** Exact disposable-root incarnation required by every task-scoped consumer. */
227
+ snapshotAuthorityForDispatch(): WorkspaceRootAuthority;
228
+ /**
229
+ * Exact recovery-instance comparator. A task id or pathname alone is not an
230
+ * ownership token: restart races may leave two UUID snapshots for one task,
231
+ * and a hostile pathname replacement may reuse the public name. Recovery and
232
+ * teardown use this full marker/root authority check before installing or
233
+ * reconciling a durable instance.
234
+ */
235
+ matchesRecoveredInstance(recovered: RecoveredShadow): boolean;
74
236
  /**
75
237
  * Create the shadow BEFORE the round-0 spawn + record the TRACKED SET.
76
238
  *
77
- * - git repo `git worktree add` (PRIMARY: cheap, shared object store, real
78
- * `.git` so the agent's own `npm test`/`git diff` work).
79
- * - non-git file-copy of `workingDir` excluding `.git`/secrets/gitignored
80
- * + symlink the real `node_modules` (read-through, never a promote target).
239
+ * Every workspace, Git repository or not, is materialized through the same
240
+ * CodeVibe-owned filesystem snapshot. Regular files use copy-on-write clones
241
+ * where the filesystem supports them and fall back to a normal copy only when
242
+ * cloning is unavailable. Git is never probed or invoked on this path.
81
243
  *
82
244
  * Fail-closed (#SR-2): a create failure throws — the caller surfaces it and
83
245
  * does NOT spawn against a half-built shadow.
@@ -94,42 +256,32 @@ export declare class WorkspaceShadow {
94
256
  * shadow (NOT merely "absent from shadow", which would falsely
95
257
  * flag every excluded path → catastrophic-delete).
96
258
  *
97
- * git `git diff` (already tracked-scoped); non-git tree-compare bounded to
98
- * the tracked set. Across revise rounds the diff is CUMULATIVE shadow-vs-real.
259
+ * Snapshots use a tree compare bounded to the tracked set. Across revise
260
+ * rounds the diff is CUMULATIVE shadow-vs-real.
99
261
  */
100
262
  captureDiff(): Promise<ShadowDiffFile[]>;
101
- private captureGitDiff;
102
- private captureCopyDiff;
103
263
  /**
104
- * CP-14 Wave A (`worktree_merge`) commit the shadow worktree's full content
105
- * (the dirty-replay baseline + the implementor's edits + any new untracked
106
- * files) onto the persistent track branch, and return the committed tip SHA
107
- * (the merge-train input). This REPLACES the legacy in-place {@link promote}
108
- * for track shadows: the user tree is NOT touched here — the change lands only
109
- * when the merge gate promotes the integration tip.
110
- *
111
- * Deterministic for recovery-replay stability: pinned bot identity + a pinned
112
- * `@0` author/committer date + hooks/gpg disabled, so a re-run over identical
113
- * content yields an identical SHA. `--allow-empty` so a no-op track still
114
- * produces a real base-rooted tip (no `#EF-1`-style born-halt; the merge-train
115
- * fast-forwards it).
116
- *
117
- * Requires a git track-branch shadow (created with `opts.trackBranch`); throws
118
- * otherwise — a missing tip must FAIL CLOSED upstream, never be silently empty.
119
- *
120
- * REVIEW-INTEGRITY (#598-11 parity, Stage-1 HIGH): the commit is built from the
121
- * REVIEWED, drift-checked `diff` content (the in-memory `ShadowDiffFile[]` the
122
- * caller already validated against the reviewed snapshot) via a THROWAWAY index
123
- * + `git hash-object`/`commit-tree` — the live worktree is NEVER re-read. This
124
- * matches the legacy `promote(diff)`, which applies the captured `diff[].content`
125
- * (not a re-read), so a detached writer that mutates the worktree after the
126
- * drift-check cannot inject UNREVIEWED bytes into the track tip. The branch sits
127
- * at the pinned base (its only commit-to-be) and the diff is "everything vs
128
- * base", so `read-tree base` + apply-diff reconstructs exactly the reviewed tree.
264
+ * Bind a reviewed diff to this shadow's pre-task hashes. Team execution stores
265
+ * these immutable bundles instead of Git commits; the integration gate uses
266
+ * `base_hash` for the same no-clobber check as single-task promotion.
267
+ */
268
+ bindReviewedDiff(diff: readonly ShadowDiffFile[]): ReviewedShadowDiffFile[];
269
+ /**
270
+ * Durably bind the exact artifact submitted for review to this snapshot.
271
+ * The private state marker is fsynced before the caller may submit the
272
+ * artifact to the engine. A revise round atomically replaces the prior
273
+ * authority; completion/discard removes the instance marker with the copy.
129
274
  */
130
- commitTrack(diff: readonly ShadowDiffFile[], opts?: {
131
- message?: string;
132
- }): Promise<string>;
275
+ persistReviewedDiff(diff: readonly ShadowDiffFile[]): Promise<void>;
276
+ /** Read the crash-durable reviewed artifact, or null for an unreviewed snapshot. */
277
+ readReviewedDiff(): Promise<ShadowDiffFile[] | null>;
278
+ /**
279
+ * Apply already-reviewed bytes inside this disposable shadow only. Promotion
280
+ * remains bound to the bundle's reviewed base hash, never to whatever bytes
281
+ * happened to exist when the integration snapshot was created.
282
+ */
283
+ applyDiffToShadow(diff: readonly ReviewedShadowDiffFile[]): Promise<void>;
284
+ private captureCopyDiff;
133
285
  /**
134
286
  * Materialize the changed-file SET over the TRACKED SET ONLY (#PM-1/#PM-2):
135
287
  * copy the shadow's changed files onto the real tree (create/overwrite) +
@@ -169,15 +321,23 @@ export declare class WorkspaceShadow {
169
321
  promoteOrderBase: number;
170
322
  persist: (entries: PromoteManifestInput[]) => Promise<void>;
171
323
  };
324
+ /** Refuse to begin a new real-tree mutation after session cancellation. */
325
+ signal?: AbortSignal;
172
326
  }): Promise<{
173
327
  /**
174
- * Whether this call actually MATERIALIZED files onto the real tree. `false`
175
- * means it was an idempotent no-op (a prior promote already landed via the
176
- * durable `promoted` marker a packet + recovery double-fire). The caller
177
- * uses this to suppress duplicate `promoting`/`promoted` progress + the
178
- * "Applied N files" milestone on a re-delivered TaskAuthorized packet.
328
+ * Truthful real-tree state at return. `unresolved` means an APPLYING marker
329
+ * still owns one or more possible post-images; callers must retain/re-drive
330
+ * recovery authority and must not report an ordinary failure as terminal.
331
+ */
332
+ mutationState: 'none' | 'applied' | 'unresolved';
333
+ /**
334
+ * On success, whether this call actually materialized files. On failure,
335
+ * `true` means possible post-images remain under APPLYING authority. Callers
336
+ * must inspect `mutationState` before using this for progress suppression.
179
337
  */
180
338
  materialized: boolean;
339
+ /** True when an `applying` crash marker was fully reconciled this call. */
340
+ recovered: boolean;
181
341
  promoted: string[];
182
342
  conflicts: string[];
183
343
  errors: Array<{
@@ -198,37 +358,53 @@ export declare class WorkspaceShadow {
198
358
  * each Halted reason, parser-empty, session-end, crash). Leaves the real tree
199
359
  * byte-identical to its pre-task state (a discard never touched it).
200
360
  *
201
- * git-worktree `git worktree remove --force` (+ `git worktree prune`),
202
- * NEVER raw `rm -rf` (leaks `.git/worktrees/`, #GC-2). Non-git copy → `rm -rf`
203
- * (the symlinked `node_modules` is unlinked, never follow-delete).
361
+ * Snapshots are ordinary filesystem directories and use recursive removal.
204
362
  *
205
363
  * Before teardown, terminate task-spawned children rooted in the shadow; if
206
364
  * removal still fails (stray watcher), the durable marker is left in place so
207
365
  * the next-startup GC retries (#GC-2 lazy cleanup).
208
366
  *
209
- * `preserveStateDir` (the ORPHAN-teardown mode, restart-race fix 2026-06-11):
210
- * tear down ONLY this instance's uuid-suffixed `shadowDir` and NEVER the
211
- * per-task SHARED `stateDir`. A restart reuses the SAME taskId, so a fresh
212
- * shadow B's durable `pending` marker lives in the same `stateDir`; tearing
213
- * down the orphaned old instance A with a full `discard()` would `fs.rm` that
214
- * SHARED dir and delete B's authorized-but-pending #PR-4 marker (B becomes
215
- * unrecoverable after a crash — a sealed-LOCK violation). The orphan branch in
216
- * QuorumLoop.discardShadow passes `{ preserveStateDir: true }` because the
217
- * shared `stateDir` belongs to the LIVE mapped shadow B, not the orphan.
367
+ * Each instance owns a UUID-suffixed marker. Cleanup removes only that marker,
368
+ * so a replacement instance for the same task remains recoverable. The
369
+ * `preserveStateDir` option remains for source compatibility only.
218
370
  */
219
371
  discard(opts?: {
220
372
  preserveStateDir?: boolean;
373
+ /**
374
+ * The team integration path may retire its per-snapshot APPLYING marker
375
+ * only after the group-level PREPARED journal durably owns the same exact
376
+ * pre/post-image authority. Ordinary single-task/session cleanup must never
377
+ * set this flag.
378
+ */
379
+ applyingAuthorityRetired?: boolean;
221
380
  }): Promise<void>;
381
+ private retainExposureWriteAuthority;
382
+ private runOwnedStateFileWrite;
383
+ private acceptExposureSnapshot;
222
384
  /**
223
- * Orphan-teardown shorthand (restart-race fix 2026-06-11): tear down ONLY this
224
- * instance's `shadowDir` (worktree-aware per #GC-2) and PRESERVE the SHARED
225
- * per-task `stateDir` used by `QuorumLoop.discardShadow`'s instance-mismatch
226
- * branch when a newer shadow (same taskId) has replaced this one in the map.
385
+ * Prove idempotent terminal cleanup without adopting replacement pathnames.
386
+ * A present original marker/bridge returns false so ordinary disposal can
387
+ * continue. A displaced original state directory is retained fail-closed.
227
388
  */
389
+ private exactStateResourcesAreRetired;
390
+ /** Reclaim a renamed original without ever adopting its public replacement. */
391
+ private discardDisplacedSnapshot;
392
+ private refreshRetainedStateAuthorities;
393
+ /** Orphan teardown is ordinary instance-owned teardown. */
228
394
  discardOrphan(): Promise<void>;
229
- private removeGitWorktree;
395
+ /** Fail-closed preflight used before callers alter their in-memory ownership. */
396
+ assertCanDiscard(): Promise<void>;
397
+ /** Strict disposal guard: malformed/unreadable authority is retained too. */
398
+ private assertDiscardable;
399
+ /**
400
+ * Atomically retire every promotion/review transition before deleting the
401
+ * disposable tree. DISPOSING is intentionally terminal and immutable: cleanup
402
+ * retries may consume it, but no marker writer may replace it.
403
+ */
404
+ private beginDisposal;
230
405
  private writeStateMarker;
231
406
  private readStateMarker;
407
+ private readStateMarkerSnapshot;
232
408
  /**
233
409
  * Read the durable promote-state marker WITHOUT mutating the tree (#PR-4). The
234
410
  * QuorumLoop checks this BEFORE `captureDiff` so a re-delivered TaskAuthorized
@@ -239,11 +415,20 @@ export declare class WorkspaceShadow {
239
415
  * idempotency guard is still the authority).
240
416
  */
241
417
  readPromoteState(): Promise<ShadowPromoteState | null>;
418
+ /** Durably prevent cwd deletion after process-tree verification failed. */
419
+ blockDiscardForUnverifiedChildren(owners?: readonly ProcessCleanupOwner[]): Promise<void>;
420
+ /** Persistently retain reviewed source bytes while bundle publication is unresolved. */
421
+ retainForUnresolvedAuthority(retention: UnresolvedBundlePublicationRetention): Promise<void>;
422
+ unresolvedBundlePublicationForCleanup(): UnresolvedBundlePublicationRetention | null;
423
+ /** Clear retention only after the durable store proves publication is readable/reconciled. */
424
+ clearUnresolvedAuthorityRetention(): Promise<void>;
425
+ /** Retry persisted process-tree quiescence and retire the cleanup block. */
426
+ retryBlockedCleanup(): Promise<boolean>;
427
+ /** Write the independent in-snapshot non-disposable recovery surface. */
428
+ private writeCleanupBlockAnchor;
242
429
  /**
243
- * Reconstruct a `WorkspaceShadow` from a durable marker (a crash lost the
244
- * in-memory tracked set + pre-task hashes). The tracked set is re-derived
245
- * from the live shadow + real tree; promote then re-captures the diff. Used
246
- * ONLY by the recovery/GC paths (`reopenShadow` / `reapOrphanShadows`).
430
+ * Reconstruct from the marker's exact immutable baseline. Recovery never
431
+ * derives overwrite authority from the moving user tree.
247
432
  */
248
433
  static fromRecovered(recovered: RecoveredShadow, env?: ShadowEnv): Promise<WorkspaceShadow>;
249
434
  }
@@ -252,24 +437,69 @@ export interface RecoveredShadow {
252
437
  taskId: string;
253
438
  shadowDir: string;
254
439
  workingDir: string;
255
- isGit: boolean;
440
+ shadowDirIdentity: AnchoredFsIdentity;
441
+ snapshotRootAuthority: WorkspaceRootAuthority;
442
+ workingDirIdentity: AnchoredFsIdentity;
443
+ workspaceRootAuthority: WorkspaceRootAuthority;
444
+ ownerProcessIdentity: ProcessIdentity;
445
+ physicalCopyBytes: number;
446
+ isGit: false;
256
447
  promoteState: ShadowPromoteState;
257
448
  createdAtMs: number;
258
449
  /** The durable state dir for this task (for cleanup). */
259
450
  stateDir: string;
451
+ /** Exact instance marker (sibling restarts use separate files). */
452
+ stateFile: string;
453
+ /** Exact durable state container and marker authorities from the scan. */
454
+ stateRootAuthority: WorkspaceRootAuthority;
455
+ stateDirAuthority: WorkspaceRootAuthority;
456
+ stateFileAuthority: AnchoredPathIdentity;
457
+ /** Scan-time bridge incarnation, when disposal/exposure recovery has one. */
458
+ exposureFileAuthority?: AnchoredPathIdentity;
459
+ /** Immutable tracked paths and pre-task hashes, including deleted/absent paths. */
460
+ baseline: Array<{
461
+ path: string;
462
+ hash: string | null;
463
+ mode?: number | null;
464
+ }>;
465
+ promotePostHashes?: Array<{
466
+ path: string;
467
+ hash: string | null;
468
+ mode?: number | null;
469
+ }>;
470
+ casRecovery?: CasRecoveryAuthority[];
471
+ disposalSnapshotAuthority?: WorkspaceRootAuthority;
472
+ disposalShadowIdentity?: AnchoredFsIdentity;
473
+ /** Exact reviewed artifact persisted before authorization could resolve. */
474
+ reviewedDiff?: ShadowDiffFile[];
475
+ cleanupBlocked?: boolean;
476
+ cleanupOwners?: ProcessCleanupOwner[];
477
+ unresolvedAuthorityRetention?: UnresolvedBundlePublicationRetention;
260
478
  }
479
+ export declare function listRecoverableShadows(env?: ShadowEnv): Promise<RecoveredShadow[]>;
261
480
  /**
262
- * Read every durable per-task shadow marker under the state root. The reconnect/
263
- * startup recovery (#PR-4) reads these to find an authorized-but-pending shadow
264
- * to promote; the GC reaper (#GC-1) reads them to delete orphaned shadows.
481
+ * Join or recover every known atomic writer owned by the supplied task ids
482
+ * before strict teardown inventory. This is a mutating reconciliation step,
483
+ * deliberately separate from `listShadowCleanupResidue`'s read-only audit.
265
484
  */
266
- export declare function listRecoverableShadows(env?: ShadowEnv): Promise<RecoveredShadow[]>;
485
+ export declare function reconcileShadowPublicationAuthority(taskIds: ReadonlySet<string>, env?: ShadowEnv): Promise<void>;
486
+ export interface ShadowCleanupResidue {
487
+ taskId: string;
488
+ path: string;
489
+ kind: 'recoverable-marker' | 'displaced-marker' | 'exposure-marker' | 'unresolved-authority' | 'state-directory' | 'snapshot-directory' | 'private-publication-authority';
490
+ detail?: string;
491
+ }
267
492
  /**
268
- * Reconstruct a `WorkspaceShadow` from a durable marker so the recovery path
269
- * can re-run promote/discard against an already-created shadow. The tracked set
270
- * + pre-task hashes are re-derived from the live shadow vs the real tree (a
271
- * crash lost the in-memory state). For a git worktree this is `git status`; for
272
- * a copy shadow it is a tree-compare. The promote then re-captures the diff.
493
+ * Exhaustive post-drain audit for exact task ids owned by one session. Unlike
494
+ * `listRecoverableShadows`, this intentionally reports non-operational and
495
+ * malformed authorities, empty owned state directories, snapshot/staging
496
+ * directories, and private publication records. Cleanup failures may be
497
+ * suppressed only when this inventory is empty.
498
+ */
499
+ export declare function listShadowCleanupResidue(taskIds: ReadonlySet<string>, env?: ShadowEnv): Promise<ShadowCleanupResidue[]>;
500
+ /**
501
+ * Reconstruct from a validated instance marker so recovery can re-run
502
+ * promote/discard against an already-created filesystem snapshot.
273
503
  */
274
504
  export declare function reopenShadow(recovered: RecoveredShadow, env?: ShadowEnv): Promise<WorkspaceShadow | null>;
275
505
  /**
@@ -287,4 +517,67 @@ export declare function reapOrphanShadows(keepTaskIds: ReadonlySet<string>, env?
287
517
  reaped: string[];
288
518
  retained: string[];
289
519
  }>;
520
+ export declare function assertPathCollectionBounds(paths: readonly string[], label: string): void;
521
+ export interface AcceptedAlternateImage {
522
+ hash: string | null;
523
+ mode: number | null;
524
+ }
525
+ /** Hardened reverse-apply surface shared by promotion and durable revert. */
526
+ export declare function replaceWorkspaceFileIfMatches(args: {
527
+ workingDir: string;
528
+ workspaceRootAuthority: WorkspaceRootAuthority;
529
+ path: string;
530
+ content: string;
531
+ mode: number;
532
+ expectedHash: string | null;
533
+ expectedMode: number | null;
534
+ /** @internal deterministic last-commit race seam. */
535
+ beforeCommit?: () => Promise<void> | undefined;
536
+ /** @internal deterministic post-validation parent-swap seam. */
537
+ afterValidation?: () => Promise<void> | undefined;
538
+ /** @internal deterministic post-displacement recreation seam. */
539
+ afterDisplacement?: (recoveryName: string) => Promise<void> | undefined;
540
+ /** @internal deterministic public-target quarantine race seam. */
541
+ beforeTargetQuarantine?: (quarantineName: string) => Promise<void> | undefined;
542
+ /** @internal deterministic artifact-retirement race seam. */
543
+ beforeFinalUnlink?: (recoveryName: string) => Promise<void> | undefined;
544
+ /** @internal lower deterministic CAS-helper deadline for tests. */
545
+ helperTimeoutMs?: number;
546
+ /** @internal deterministic CAS-helper target-filesystem stall seam. */
547
+ testHangHelperStage?: 'root' | 'parent' | 'target';
548
+ /** @internal deterministic helper death after COMMIT/mutation. */
549
+ testCrashHelperStage?: CasHelperCrashStage;
550
+ /** Re-drive deterministic recovery names owned by an existing durable journal. */
551
+ allowPostImageRecovery?: boolean;
552
+ /** Exact terminal image that authorizes cleanup-only replay for same-path chains. */
553
+ acceptedAlternate?: AcceptedAlternateImage;
554
+ }): Promise<boolean>;
555
+ /** Hardened reverse-delete surface shared by promotion and durable revert. */
556
+ export declare function removeWorkspaceFileIfMatches(args: {
557
+ workingDir: string;
558
+ workspaceRootAuthority: WorkspaceRootAuthority;
559
+ path: string;
560
+ expectedHash: string | null;
561
+ expectedMode: number | null;
562
+ /** @internal deterministic last-commit race seam. */
563
+ beforeCommit?: () => Promise<void> | undefined;
564
+ /** @internal deterministic post-validation parent-swap seam. */
565
+ afterValidation?: () => Promise<void> | undefined;
566
+ /** @internal deterministic post-displacement recreation seam. */
567
+ afterDisplacement?: (recoveryName: string) => Promise<void> | undefined;
568
+ /** @internal deterministic public-target quarantine race seam. */
569
+ beforeTargetQuarantine?: (quarantineName: string) => Promise<void> | undefined;
570
+ /** @internal deterministic artifact-retirement race seam. */
571
+ beforeFinalUnlink?: (recoveryName: string) => Promise<void> | undefined;
572
+ /** @internal lower deterministic CAS-helper deadline for tests. */
573
+ helperTimeoutMs?: number;
574
+ /** @internal deterministic CAS-helper target-filesystem stall seam. */
575
+ testHangHelperStage?: 'root' | 'parent' | 'target';
576
+ /** @internal deterministic helper death after COMMIT/mutation. */
577
+ testCrashHelperStage?: CasHelperCrashStage;
578
+ /** Re-drive deterministic recovery names owned by an existing durable journal. */
579
+ allowPostImageRecovery?: boolean;
580
+ /** Exact terminal image that authorizes cleanup-only replay for same-path chains. */
581
+ acceptedAlternate?: AcceptedAlternateImage;
582
+ }): Promise<boolean>;
290
583
  export {};
@@ -4,7 +4,7 @@ import { type LocalModelState, type LocalModelStateStore } from './state';
4
4
  import { type OllamaPullProgressListener } from './ollama';
5
5
  import type { LocalGemmaPlannerRunner } from '../planner/local-gemma';
6
6
  export type LocalModelCommand = 'install' | 'status' | 'remove' | 'enable' | 'warm' | 'health-check';
7
- export type LocalModelEntitlementSource = 'backend' | 'unauthenticated' | 'unavailable';
7
+ export type LocalModelEntitlementSource = 'backend' | 'environment' | 'unauthenticated' | 'unavailable';
8
8
  export interface LocalModelEntitlement {
9
9
  tier: Tier | 'UNKNOWN';
10
10
  source: LocalModelEntitlementSource;