@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
@@ -0,0 +1,408 @@
1
+ import { loadContextStore, resolveContextRef, probeWorkspaceGitHead } from './context-store';
2
+ import type { StructuralSummaryGenerator, RepoSummary } from '../structural-summary/types';
3
+ import type { Tier } from './types';
4
+ /** AppSync's pinned blind-hold ciphertext ceiling (ASCII base64 characters). */
5
+ export declare const CONTEXT_ITEM_WIRE_CIPHERTEXT_MAX_CHARS = 350000;
6
+ /**
7
+ * The PINNED UUIDv5 namespace mapping a `session_id` to its session-root
8
+ * pseudo-task ID on the task-partitioned `AuditTable` (design §4.1 Finding 1).
9
+ *
10
+ * ⚠️ WIRE CONTRACT — DO NOT CHANGE. This literal is pinned in the design
11
+ * (SHARED-CONTEXT-ARCHITECTURE-DESIGN.md §4.1) and MUST stay byte-identical
12
+ * to the Rust side (`codevibe-audit::CONTEXT_SESSION_PSEUDO_TASK_NAMESPACE`,
13
+ * lib.rs) — the Rust audit writer and the TS deletion worker (tracker [D2])
14
+ * derive pseudo-task partition keys from it, and a divergence would make D2
15
+ * delete the WRONG partition and silently retain session-scoped audit rows.
16
+ * The Rust↔TS parity test (context-items.test.ts + codevibe-audit lib.rs
17
+ * tests) pins shared `session_id → pseudo_task_id` vectors on both sides.
18
+ *
19
+ * Importable by D2's deletion worker as the single TS source of truth.
20
+ */
21
+ export declare const CONTEXT_SESSION_PSEUDO_TASK_NAMESPACE = "cefd405a-b1ac-4e63-8e9e-d328f3d95182";
22
+ /**
23
+ * §4.1 Finding 1 — the deterministic UUIDv5 session-root pseudo-task ID for
24
+ * session-scoped ContextItems (`Uuid::new_v5(&NAMESPACE, session_id.as_bytes())`
25
+ * on the Rust side). NEVER a `session_<id>` string — the Rust audit crate
26
+ * types `task_id` as a plain `Uuid` (`codevibe-audit/src/lib.rs`) and a
27
+ * non-UUID string would fail serde deserialization on any engine read.
28
+ */
29
+ export declare function deriveSessionPseudoTaskId(sessionId: string): string;
30
+ /**
31
+ * The AuditTable partition a ContextItem's blind-held row lands in (the
32
+ * "strict superset of ROWS + KINDS" co-location, design §4.1/§4.2): a task-
33
+ * scoped item partitions under its real `task_id`; a session-scoped item
34
+ * partitions under the deterministic session pseudo-task ID.
35
+ */
36
+ export declare function auditPartitionTaskIdFor(item: Pick<ContextItem, 'session_id' | 'task_id'>): string;
37
+ /** The full §4 kind set (the one-time corpus-ready vocabulary, §4.1). */
38
+ export type ContextItemKind = 'turn' | 'decision' | 'task_spec' | 'verdict' | 'artifact_ref' | 'open_question' | 'rationale' | 'repo_state';
39
+ export type ContextItemAuthorRole = 'human' | 'agent' | 'conductor' | 'engine';
40
+ /** §4 `author` — emitter-assigned attribution (drives the group-conversation UX). */
41
+ export interface ContextItemAuthor {
42
+ role: ContextItemAuthorRole;
43
+ /** e.g. 'claude' | 'codex' | 'gemini' | 'agy' — set when role='agent'. */
44
+ agent_id?: string;
45
+ }
46
+ /** §4 — an ORDERED floor (public < user < secret). Emitter-assigned. */
47
+ export type ContextItemSensitivity = 'public' | 'user' | 'secret';
48
+ /**
49
+ * §4 `visible_to` — the distinct projection-consumer roles. 'planner' = the
50
+ * local 12B conductor; 'brainstorm' = the frontier brainstorm panel (§8.2).
51
+ * The hosted 'engine' is NOT a role (it owns the authoritative log).
52
+ */
53
+ export type ContextItemProjectionRole = 'implementor' | 'reviewer' | 'resolver' | 'planner' | 'brainstorm';
54
+ /** §4.3 — validity/staleness dimensions. */
55
+ export interface ContextItemValidity {
56
+ supersededBy?: string;
57
+ invalidatedByMerge?: string;
58
+ }
59
+ /**
60
+ * §4 — one typed, addressable fact in the canonical store. `session_id`/`seq`
61
+ * are the (hosted) storage keys; everything else is content that rides INSIDE
62
+ * the encrypted envelope on the wire (§4.2 plaintext boundary).
63
+ */
64
+ export interface ContextItem {
65
+ session_id: string;
66
+ /** Monotonic per-session ULID — append order + the prev_hash chain (§4.1a). */
67
+ seq: string;
68
+ /** Content-addressed hash — dedup + the target of refs[] (NOT the sort key). */
69
+ id: string;
70
+ /** Set on task- AND track-scoped items (§4 hierarchy). */
71
+ task_id?: string;
72
+ /** Set ONLY on track-scoped items (⟹ task_id is also set). */
73
+ track_id?: string;
74
+ kind: ContextItemKind;
75
+ author: ContextItemAuthor;
76
+ sensitivity: ContextItemSensitivity;
77
+ visible_to: ContextItemProjectionRole[];
78
+ validity: ContextItemValidity;
79
+ refs: string[];
80
+ /** Hex SHA-256 of the serialized previous item. `null` for the first item. */
81
+ prev_hash: string | null;
82
+ /** Typed payload per kind. */
83
+ body: unknown;
84
+ /** ISO timestamp the item was authored (corpus-ready, §4.1). */
85
+ authored_at: string;
86
+ }
87
+ /** What a deterministic emitter passes to `appendContextItem`. */
88
+ export interface ContextItemDraft {
89
+ kind: ContextItemKind;
90
+ author: ContextItemAuthor;
91
+ sensitivity: ContextItemSensitivity;
92
+ visible_to: ContextItemProjectionRole[];
93
+ body: unknown;
94
+ task_id?: string;
95
+ track_id?: string;
96
+ refs?: string[];
97
+ validity?: ContextItemValidity;
98
+ }
99
+ export interface ContextItemOccurrence {
100
+ seq: string;
101
+ itemId: string;
102
+ serializedItemSha256: string;
103
+ }
104
+ export type ContextDurabilityReceipt = {
105
+ durable: true;
106
+ coveredOccurrences: ContextItemOccurrence[];
107
+ durableTailHash: string;
108
+ } | {
109
+ durable: false;
110
+ reason: 'wedged' | 'stage_failed' | 'commit_failed' | 'rollback_failed' | 'readback_failed' | 'item_missing' | 'content_mismatch';
111
+ };
112
+ export type CanonicalAgentTurnDraft = ContextItemDraft & {
113
+ kind: 'turn';
114
+ author: ContextItemAuthor & {
115
+ role: 'agent';
116
+ agent_id: string;
117
+ };
118
+ };
119
+ export declare function contextItemOccurrence(item: ContextItem): ContextItemOccurrence;
120
+ /**
121
+ * §4.1a / tracker [A1e] — the writer-populated, session-synced TTL for the
122
+ * hosted `ContextItemsTable` rows (the SAME 7-day epoch the events table
123
+ * already exposes; the bounded non-semantic `expiresAt` exception, §4.2).
124
+ */
125
+ export declare const CONTEXT_ITEM_TTL_SECONDS: number;
126
+ /**
127
+ * Create one ContextItems session directory durably. `mkdir -p` alone can
128
+ * leave a visible-but-not-crash-durable directory chain; fsync each parent
129
+ * entry from `~/.codevibe` through the per-session directory. Repeating this
130
+ * after a failed parent sync repairs the visible chain before hosted upload.
131
+ */
132
+ export declare function ensureContextItemsSessionDirectoryDurable(sessionId: string, beforeParentFsync?: (parent: string, child: string) => Promise<void>): Promise<void>;
133
+ /** Exported for the A1f retention sweep (`gcContextItemLogs`). */
134
+ export declare function contextItemsRootDir(): string;
135
+ /** Exported for tests + diagnostics. */
136
+ export declare function contextItemsLogPath(sessionId: string): string;
137
+ /**
138
+ * §4.1 Finding 2 — transient = high-frequency intermediate `turn`/`rationale`
139
+ * items authored by an agent/conductor/engine. Human turns (user prompts),
140
+ * decisions, task_specs, verdicts, artifact_refs, open_questions, and
141
+ * repo_state are DURABLE (synchronous fsync-per-write).
142
+ */
143
+ export declare function isTransientContextItem(kind: ContextItemKind, author: ContextItemAuthor): boolean;
144
+ /**
145
+ * Post-fsync notification used by the hosted upload coordinator. The hook is
146
+ * deliberately synchronous + best-effort: the local authenticated log remains
147
+ * the write authority, while the hook only wakes a separate durable-outbox
148
+ * drain after bytes are safely on disk.
149
+ */
150
+ type ContextItemsPersistedHook = (items: readonly ContextItem[]) => void;
151
+ export declare function setContextItemsPersistedHook(sessionId: string, hook: ContextItemsPersistedHook | null): void;
152
+ /** Vitest-gated setter for {@link testFaultInjection}; `null` disarms. */
153
+ export declare function setContextItemsFaultInjectionForTests(faults: {
154
+ failWrite?: boolean;
155
+ failTruncate?: boolean;
156
+ beforeFsync?: () => Promise<void>;
157
+ failRollbackSync?: boolean;
158
+ corruptAgentTurnReadback?: boolean;
159
+ crashAfterAgentTurnAppend?: boolean;
160
+ crashAfterAgentTurnCommit?: boolean;
161
+ failAgentTurnJournalCleanup?: boolean;
162
+ failAgentTurnCleanupDirectoryOpen?: boolean;
163
+ failAgentTurnCleanupDirectorySync?: boolean;
164
+ failAgentTurnCleanupDirectorySyncAtCall?: number;
165
+ failCanonicalLogDirectorySync?: boolean;
166
+ } | null): void;
167
+ export declare function getContextItemLog(sessionId: string): {
168
+ append: (draft: ContextItemDraft) => Promise<ContextItem | null>;
169
+ flush: () => Promise<void>;
170
+ readDurableSnapshot: () => Promise<string | null>;
171
+ commitAndVerifyAgentTurnBatch: (humanOccurrence: ContextItemOccurrence, drafts: CanonicalAgentTurnDraft[]) => Promise<ContextDurabilityReceipt>;
172
+ };
173
+ /**
174
+ * Append one typed item to the session's canonical log (the deterministic-
175
+ * emitter write path). Convenience over `getContextItemLog`.
176
+ */
177
+ export declare function appendContextItem(sessionId: string, draft: ContextItemDraft): Promise<ContextItem | null>;
178
+ /** Finding 2 — flush a session's transient buffer at a natural boundary. */
179
+ export declare function flushContextItems(sessionId: string): Promise<void>;
180
+ export declare function commitAndVerifyAgentTurnBatch(sessionId: string, humanOccurrence: ContextItemOccurrence, successfulDrafts: CanonicalAgentTurnDraft[]): Promise<ContextDurabilityReceipt>;
181
+ /**
182
+ * Test seam — clear the per-process writer registry (vitest-gated, the
183
+ * CODEVIBE_HOME_OVERRIDE pattern).
184
+ */
185
+ export declare function resetContextItemsProcessStateForTests(): void;
186
+ export interface ReadContextItemsResult {
187
+ items: ContextItem[];
188
+ /** True when every on-disk line unsealed + parsed as a sealed envelope. */
189
+ complete: boolean;
190
+ }
191
+ /**
192
+ * Read a session's items (tolerant: an unreadable line is skipped and
193
+ * `complete:false` reported — reads never throw). Stage-2 R1 F3: ONLY sealed
194
+ * (`csEnc`) envelope lines are accepted — there is NO legacy plaintext
195
+ * ContextItem format, so a plaintext line (which any local process WITHOUT
196
+ * the device key could craft) is an integrity failure, never parsed into
197
+ * items. For strict integrity use `verifyContextItemChain` /
198
+ * `readVerifiedContextItems`.
199
+ */
200
+ export declare function readContextItems(sessionId: string): Promise<ReadContextItemsResult>;
201
+ export interface ChainVerificationResult {
202
+ ok: boolean;
203
+ length: number;
204
+ /** 0-based index of the first broken line (when !ok). */
205
+ brokenAt?: number;
206
+ reason?: 'read-error' | 'unreadable-line' | 'plaintext-line' | 'malformed-item' | 'prev-hash-mismatch' | 'seq-not-monotonic' | 'session-id-mismatch' | 'content-address-mismatch';
207
+ }
208
+ /** `ChainVerificationResult` + the parsed items when (and only when) `ok`. */
209
+ export interface VerifiedContextItemsResult extends ChainVerificationResult {
210
+ /** The full parsed chain — EMPTY unless `ok === true` (fail-closed). */
211
+ items: ContextItem[];
212
+ }
213
+ export declare function readVerifiedContextItems(sessionId: string): Promise<VerifiedContextItemsResult>;
214
+ /**
215
+ * §4.2 chain authority (a) — the ON-DEVICE `verify_chain` over decrypted
216
+ * content. Thin wrapper over `readVerifiedContextItems` (one verification
217
+ * source of truth); see it for the enforced contract.
218
+ */
219
+ export declare function verifyContextItemChain(sessionId: string): Promise<ChainVerificationResult>;
220
+ /**
221
+ * The EXACT hosted `ContextItemsTable` row shape (design §4.1a/§4.2 + tracker
222
+ * [A1e]): plaintext = the opaque routing keys (`session_id` PK, `seq` SK,
223
+ * `task_id?`/`track_id?`) + the bounded non-semantic `expiresAt` TTL —
224
+ * NOTHING else. The full item (incl. `id`/`prev_hash`/`refs`/`kind`/labels/
225
+ * `body`) rides inside `ciphertext`, E2E-encrypted with the SESSION key
226
+ * (engine-opaque, exactly as briefs are today). Do NOT add attributes here:
227
+ * any new plaintext attribute fails the §4.2 boundary by default.
228
+ */
229
+ export interface ContextItemWireRow {
230
+ session_id: string;
231
+ seq: string;
232
+ task_id?: string;
233
+ track_id?: string;
234
+ /**
235
+ * Epoch seconds copied from the authoritative Session row by AppSync. It is
236
+ * absent while the session has no retention deadline (normally ACTIVE) and
237
+ * set/updated when the session becomes INACTIVE. The desktop never chooses
238
+ * this value.
239
+ */
240
+ expiresAt?: number;
241
+ /** Base64 AES-256-GCM (nonce+ct+tag) over the full serialized item. */
242
+ ciphertext: string;
243
+ }
244
+ /**
245
+ * Build the client-authored portion of one blind-held hosted row. AppSync adds
246
+ * the session-synchronized `expiresAt` from its strongly-read Session row;
247
+ * accepting a desktop-provided deadline would let a stale/offline client
248
+ * extend retention. The upload mutation consumes the remaining fields
249
+ * verbatim and stores no additional semantic plaintext.
250
+ */
251
+ export declare function buildContextItemWireRow(item: ContextItem, sessionKeyBase64: string): ContextItemWireRow;
252
+ /** Decrypt a blind-held row back to the typed item (desktop-side only). */
253
+ export declare function decryptContextItemWireRow(row: Pick<ContextItemWireRow, 'ciphertext'>, sessionKeyBase64: string): ContextItem;
254
+ /**
255
+ * A1f Stage-1 R1 HIGH — the SINGLE floor predicate over emitter-assigned
256
+ * labels, shared by the hot-item filter (`projectItemsForRole`) AND the
257
+ * distilled-fact filter (context-compaction.ts) so the two halves of a
258
+ * rehydrated view can NEVER drift: a role R at clearance C may see a label
259
+ * iff `R ∈ visible_to` AND `sensitivity ≤ C`. FAIL-CLOSED on an unknown
260
+ * sensitivity value (the exhaustive-allowlist discipline).
261
+ */
262
+ export declare function labelPermitsRole(label: {
263
+ sensitivity: ContextItemSensitivity;
264
+ visible_to: readonly ContextItemProjectionRole[];
265
+ }, role: ContextItemProjectionRole, clearance: ContextItemSensitivity): boolean;
266
+ /**
267
+ * §5 stage-1 static classification — the FLOOR. A projection for role R may
268
+ * only include items where `R ∈ visible_to` AND `sensitivity ≤ clearance`,
269
+ * excluding superseded/merge-invalidated items (§4.3). FAIL-CLOSED: an item
270
+ * with an unknown sensitivity value (a future schema widening this build
271
+ * does not know) is EXCLUDED — the exhaustive-allowlist discipline.
272
+ *
273
+ * This helper only SELECTS among already-labeled items; labels are assigned
274
+ * by the deterministic emitter at write time (§4.2) — never here, never by
275
+ * the conductor.
276
+ */
277
+ export declare function projectItemsForRole(items: readonly ContextItem[], role: ContextItemProjectionRole, clearance: ContextItemSensitivity): ContextItem[];
278
+ /** The typed body of a `repo_state` ContextItem (one canonical schema, §4.3). */
279
+ export interface RepoStateBody {
280
+ workspaceId: string;
281
+ /** The frontier agent's codebase overview (sanitized upstream). */
282
+ summary: string;
283
+ /** The workspace git HEAD recorded AT READ TIME (§8.3 freshness). */
284
+ gitHead?: string;
285
+ producedAt: string;
286
+ }
287
+ export type RepoStateProjection = {
288
+ status: 'fresh';
289
+ summary: string;
290
+ author: ContextItemAuthor | {
291
+ role: 'agent';
292
+ agent_id: string;
293
+ };
294
+ producedAt: string;
295
+ } | {
296
+ status: 'stale' | 'missing';
297
+ };
298
+ /**
299
+ * Stage-2 R1 F5 — for a NON-git workspace (`probeWorkspaceGitHead` →
300
+ * `{kind:'non-git'}`, a DETERMINISTIC classification per Stage-2 R2 G3) a
301
+ * head-less record can never be head-proven fresh; without this bound the
302
+ * overview would never project AND every dispatch would fire a pointless
303
+ * re-delegation forever. Instead: fresh while the record is younger than
304
+ * this generous bound (24h); beyond it → stale (project nothing) — but
305
+ * re-delegation is NEVER fired for a non-git workspace (there is no HEAD
306
+ * signal a re-read could improve on). G3: this allowance applies ONLY to
307
+ * the deterministic `non-git` bucket — a `probe-failed` (transient git
308
+ * error, unborn HEAD) never borrows it.
309
+ */
310
+ export declare const NON_GIT_REPO_STATE_MAX_AGE_MS: number;
311
+ /**
312
+ * §8.3 / A1e Finding 5 — project the workspace's `repo_state` for a dispatch.
313
+ *
314
+ * - Stage-2 R1 F4 — the typed log is consumed through the VERIFIED read
315
+ * path: on ANY chain-integrity failure this projects NOTHING (`missing`,
316
+ * once-warn, NO legacy fallback and NO re-delegation) — a forked /
317
+ * tampered / wrong-session log never supplies prompt content.
318
+ * - Latest live (non-superseded) `repo_state` item for this workspace from
319
+ * the verified log; falls back to the legacy A1a `repo-state.json`
320
+ * record only when the (verified) typed log has none (migration path).
321
+ * - The workspace git HEAD is probed NOW (Stage-2 R2 G3 — a DISCRIMINATED
322
+ * probe): with a resolvable HEAD (`kind:'head'`), a record whose
323
+ * `gitHead` is missing OR differs is STALE: `onStaleRedelegate` is fired
324
+ * (background re-delegation — fire-and-forget) and the stale summary is
325
+ * NEVER returned.
326
+ * - Stage-2 R1 F5 — in a DETERMINISTICALLY non-git workspace
327
+ * (`kind:'non-git'`) a head-less record is FRESH within
328
+ * `NON_GIT_REPO_STATE_MAX_AGE_MS` (there is no HEAD to prove staleness
329
+ * against), stale beyond it, and re-delegation NEVER fires. Stage-1 R3
330
+ * LOW-2 — the age gate fails CLOSED: an unparseable or future-dated
331
+ * `producedAt` is STALE, never fresh-forever. A git repo whose record
332
+ * lacks `gitHead` (legacy) stays STALE as before.
333
+ * - Stage-2 R2 G3 — a PROBE FAILURE (`kind:'probe-failed'`: transient git
334
+ * error, git missing, unborn HEAD) proves nothing and borrows NOTHING:
335
+ * never fresh (no F5 allowance) and NO re-delegation (a re-read under a
336
+ * failing probe records no head → a permanent loop) — stale, no-fire.
337
+ */
338
+ export declare function projectRepoStateForDispatch(deps: {
339
+ sessionId: string;
340
+ workspaceId: string;
341
+ workspaceRoot: string;
342
+ /** Fired (once) when a stale/unproven record is found — the background re-delegation hook. */
343
+ onStaleRedelegate?: () => void;
344
+ /** Test seam — defaults to the real git probe. */
345
+ probeGitHeadFn?: typeof probeWorkspaceGitHead;
346
+ }): Promise<RepoStateProjection>;
347
+ /**
348
+ * The deterministic-emitter write path for a freshly-delegated codebase
349
+ * overview: appends a DURABLE `repo_state` item (attributed per §4 `author`,
350
+ * broadly visible per the §5 projection table, `user` sensitivity).
351
+ */
352
+ export declare function appendRepoStateItem(deps: {
353
+ sessionId: string;
354
+ workspaceId: string;
355
+ summary: string;
356
+ /** The LE AgentKind that authored the read (e.g. 'CLAUDE'). */
357
+ agentId: string;
358
+ gitHead?: string;
359
+ producedAt?: string;
360
+ }): Promise<ContextItem | null>;
361
+ /**
362
+ * Byte budget for the composed dispatch-context block (fail-closed
363
+ * truncation) — matches the workflow-handoff total budget so one dispatch
364
+ * never carries an unbounded repo dump (§5 stage-2 bounded relevance).
365
+ * Stage-2 R1 F6 — this is a HARD cap on the TOTAL returned string, wrapper
366
+ * and truncation marker INCLUDED (both are reserved inside the budget).
367
+ */
368
+ export declare const DISPATCH_CONTEXT_MAX_CHARS = 4800;
369
+ /**
370
+ * Compose the bounded repository-context block appended to an implementor /
371
+ * decomposer prompt at dispatch (the A1e REMAP: `mintContextRef` →
372
+ * `resolveContextRef` → `sliceSummary` finally have a production caller, and
373
+ * the `repo_state` overview is projected FRESH-ONLY per §8.3).
374
+ *
375
+ * Returns `''` when nothing is projectable (missing store, stale repo_state,
376
+ * resolve failure) — callers append verbatim, so empty = no block. Never
377
+ * throws: a projection failure degrades to the un-augmented prompt (the
378
+ * pre-A1e behavior), never a blocked dispatch.
379
+ */
380
+ export declare function composeDispatchContextBlock(deps: {
381
+ sessionId: string;
382
+ workspaceRoot: string;
383
+ tier: Tier;
384
+ userId: string;
385
+ generator: StructuralSummaryGenerator;
386
+ /** §8.3 — background re-delegation hook for a stale repo_state. */
387
+ onStaleRepoState?: () => void;
388
+ /**
389
+ * A1f (design §6 rehydration) — the OPTIONAL session-context section
390
+ * provider: the compacted-prefix distillations + the role-filtered hot
391
+ * tail, rendered bounded (`renderRehydratedSessionContext` in
392
+ * context-compaction.ts — injected by the shell to avoid an import cycle;
393
+ * compaction imports THIS module). `''`/absent/throw ⇒ no section — the
394
+ * dispatch never blocks on rehydration. The section is counted inside the
395
+ * F6 total budget like every other section.
396
+ */
397
+ renderSessionContextFn?: () => Promise<string>;
398
+ /** Test seams. */
399
+ loadContextStoreFn?: typeof loadContextStore;
400
+ resolveContextRefFn?: typeof resolveContextRef;
401
+ projectRepoStateFn?: typeof projectRepoStateForDispatch;
402
+ }): Promise<string>;
403
+ /**
404
+ * Compact, bounded rendering of the resolved slice: per repo one header line
405
+ * + a depth-≤2 directory listing, stopping at the char budget (fail-closed).
406
+ */
407
+ export declare function renderRepoSliceCompact(repos: RepoSummary[], maxChars: number): string;
408
+ export {};
@@ -1,5 +1,18 @@
1
1
  import type { StructuralSummary, StructuralSummaryGenerator, RepoSummary } from '../structural-summary/types';
2
2
  import type { Tier } from './types';
3
+ export declare function setStrictDirectorySyncFaultForTests(fault: {
4
+ phase: 'open' | 'sync';
5
+ pathSuffix?: string;
6
+ } | null): void;
7
+ /**
8
+ * Create a directory tree without leaving newly-created child entries only in
9
+ * the page cache. Each missing component is created individually and its
10
+ * parent is fsync'd before the next component is used as durability authority.
11
+ */
12
+ export declare function ensureDirectoryDurable(directory: string, options?: {
13
+ requireParentSync?: boolean;
14
+ faultPath?: string;
15
+ }): Promise<void>;
3
16
  /**
4
17
  * Legacy §4.2 staleness fingerprint of the last scan — persisted in
5
18
  * `metadata.json` by schema v1 builds. v2 keeps the same input-hash/content
@@ -59,6 +72,22 @@ export interface ContextStoreEntry {
59
72
  digest: string;
60
73
  metadata: ContextStoreMetadata;
61
74
  }
75
+ /**
76
+ * A1a #5 — the frontier-authored `repo_state` record. A read-only frontier agent
77
+ * (never the 12B) produces the codebase overview during `familiarize`; this
78
+ * persists it so it is available for a later projection into implementor /
79
+ * decomposer briefs (that projection is [DEFERRED → P3/A1e] — A1a only persists).
80
+ */
81
+ export interface RepoStateRecord {
82
+ /** The frontier agent's prose codebase overview. */
83
+ summary: string;
84
+ /** Which agent authored it (LE `AgentKind`, e.g. `CLAUDE`). */
85
+ author: string;
86
+ /** ISO timestamp the overview was produced. */
87
+ producedAt: string;
88
+ /** The git HEAD the overview was produced at, when captured cheaply. */
89
+ gitHead?: string;
90
+ }
62
91
  /**
63
92
  * §5.4 — `slice_selector` is FORMALLY TYPED so the writer and the
64
93
  * prompt-composer reader never serialize/expect different shapes. One entry
@@ -149,6 +178,68 @@ export declare function deriveRepoId(relativePathFromWorkspaceRoot: string): str
149
178
  export declare function normalizeRepoRelativePath(relativePath: string): string;
150
179
  /** `~/.codevibe/context/<workspaceId>/` — entirely under the user's home. */
151
180
  export declare function contextStoreDir(workspaceId: string): string;
181
+ /**
182
+ * Test seam — reset the module-level A1c process state (the cached at-rest
183
+ * key and the once-per-process GC flag). Honored ONLY under Vitest /
184
+ * NODE_ENV=test (the CODEVIBE_HOME_OVERRIDE gating pattern); a production
185
+ * caller cannot flip at-rest state mid-process.
186
+ */
187
+ export declare function resetContextStoreProcessStateForTests(): void;
188
+ /**
189
+ * A1e Stage-2 R1 F2 — is the A1c at-rest key resolvable RIGHT NOW? The typed
190
+ * ContextItem log's tail recovery must DISTINGUISH "key unavailable
191
+ * (transient keychain outage — leave the log byte-untouched, fail-soft)"
192
+ * from "key available but the tail does not decrypt (genuine corruption —
193
+ * rotate)". `unsealStoreFile` returns `null` for both, so this narrow probe
194
+ * disambiguates. Shares the per-process cached derivation (no extra
195
+ * keychain traffic).
196
+ */
197
+ export declare function atRestKeyAvailable(): Promise<boolean>;
198
+ /**
199
+ * Seal one store file: plaintext JSON → the `csEnc` envelope. Returns `null`
200
+ * when there is no at-rest key (keychain unavailable) — the caller must SKIP
201
+ * persistence rather than write plaintext (the at-rest invariant) or throw
202
+ * (the reconstructable-cache invariant).
203
+ *
204
+ * EXPORTED for the P3/A1e typed ContextItem log (`context-items.ts`), which
205
+ * builds ON the A1c at-rest discipline (same device-key HKDF, same envelope
206
+ * version) instead of duplicating it — the shared-context design §4.2
207
+ * at-rest requirement is A1c's, reused.
208
+ */
209
+ export declare function sealStoreFile(plaintextJson: string): Promise<string | null>;
210
+ export interface UnsealedStoreFile {
211
+ /** The plaintext JSON (decrypted, or the raw bytes for a legacy file). */
212
+ json: string;
213
+ /** True when the on-disk bytes were a `csEnc` envelope (vs legacy plaintext). */
214
+ wasEnvelope: boolean;
215
+ }
216
+ /**
217
+ * Unseal one store file. Three outcomes, all non-throwing:
218
+ * - a `csEnc:1` envelope that decrypts → the inner plaintext JSON;
219
+ * - anything that is NOT a `csEnc` envelope (legacy plaintext, or non-JSON
220
+ * corruption) → the raw bytes unchanged, so the caller's own parse/shape
221
+ * validation behaves EXACTLY as pre-A1c;
222
+ * - `null` = CACHE MISS: an envelope we cannot decrypt (keychain unavailable,
223
+ * regenerated device key, unknown version, corrupt payload). The caller
224
+ * treats it as missing → recompute; a cache must never throw here.
225
+ *
226
+ * EXPORTED for the P3/A1e typed ContextItem log (see `sealStoreFile`).
227
+ */
228
+ export declare function unsealStoreFile(raw: string, workspaceId: string, file: string): Promise<UnsealedStoreFile | null>;
229
+ /**
230
+ * Atomic write of one store file: write to `<name>.tmp.<pid>.<rand>` → fsync →
231
+ * chmod 0600 → `fs.rename` over the live file (the #589 at-rest pattern,
232
+ * mirroring `continuation/packet-writer.ts:atomicWritePacket`). A crash
233
+ * mid-write never leaves a truncated `summary.json`/`metadata.json` that the
234
+ * resolver would fail to parse (agy r5 L1). NOT imported from local-executor
235
+ * (forbidden); the pattern is inlined here.
236
+ *
237
+ * EXPORTED for the A1f compaction cache (`context-compaction.ts`) — the same
238
+ * 0700/0600 + tmp→fsync→rename discipline, reused rather than duplicated.
239
+ */
240
+ export declare function atomicWriteFile(finalPath: string, bytes: string, options?: {
241
+ requireDirectorySync?: boolean;
242
+ }): Promise<void>;
152
243
  /**
153
244
  * Persist a fresh summary + digest + metadata to the store.
154
245
  *
@@ -177,6 +268,13 @@ export declare function contextStoreDir(workspaceId: string): string;
177
268
  * On any `summary_input_hash` change the caller passes `purgeFirst: true` so a
178
269
  * stale body-including summary cannot linger on disk (§4.2 conjunct (d) — the
179
270
  * PRIVACY fail-safe, Codex r7 H).
271
+ *
272
+ * A1c — both JSON files are SEALED (csEnc envelope) before the commit-marker
273
+ * unlink; `digest.txt` stays PLAINTEXT (non-sensitive bare sha256 hex, and the
274
+ * commit marker must stay readable without a key). No at-rest key (keychain
275
+ * unavailable) ⇒ persistence is SKIPPED entirely — the previously-committed
276
+ * set (if any) stays intact and the next run recomputes; a cache write never
277
+ * downgrades to plaintext and never crashes the shell.
180
278
  */
181
279
  export declare function writeContextStore(deps: {
182
280
  workspaceId: string;
@@ -190,6 +288,35 @@ export declare function writeContextStore(deps: {
190
288
  * recompute). Defensive: a partially-written / corrupt file never throws.
191
289
  */
192
290
  export declare function loadContextStore(workspaceId: string): Promise<ContextStoreEntry | null>;
291
+ /**
292
+ * A1a #5 — persist the frontier-authored codebase overview as `repo-state.json`
293
+ * alongside the structural summary. Mirrors the atomic-write discipline of
294
+ * `writeContextStore` (tmp → fsync → chmod → rename via `atomicWriteFile`), but as
295
+ * a SINGLE additive file: it is NOT part of the §4.2 content-addressed commit set,
296
+ * so no digest commit-marker ordering is needed. A crash mid-write leaves either
297
+ * the old file or the new one — never a torn read (the reader JSON-parses; a
298
+ * partial file fails the parse and is treated as missing).
299
+ */
300
+ export declare function writeRepoState(workspaceId: string, record: RepoStateRecord): Promise<void>;
301
+ /**
302
+ * A1a #5 — load the frontier-authored `repo_state` for a workspace. Returns `null`
303
+ * when the file is missing / unparseable / shape-invalid (best-effort, never
304
+ * throws), mirroring `loadContextStore`'s tolerant read.
305
+ */
306
+ export declare function loadRepoState(workspaceId: string): Promise<RepoStateRecord | null>;
307
+ /**
308
+ * A1c — sweep the context-store ROOT (the parent of the per-workspace dirs):
309
+ * 1. TTL — delete workspace dirs whose newest file mtime is older than
310
+ * `CONTEXT_STORE_TTL_MS`;
311
+ * 2. LRU cap — if more than `CONTEXT_STORE_MAX_DIRS` dirs remain (the
312
+ * current workspace's dir counts toward the cap), delete oldest-by-mtime
313
+ * beyond the cap.
314
+ * `currentWorkspaceId` is NEVER deleted — it is the store being written.
315
+ * Everything under the root is a reconstructable cache, so deletion is always
316
+ * safe and every per-dir failure is non-fatal (skip + continue). Only DIRECTORY
317
+ * entries are swept: the store owns nothing else at the root.
318
+ */
319
+ export declare function gcContextStore(currentWorkspaceId?: string): Promise<void>;
193
320
  interface GitProbe {
194
321
  isGitRepo: boolean;
195
322
  gitTopLevel: string | null;
@@ -197,6 +324,41 @@ interface GitProbe {
197
324
  /** True only when `git status --porcelain --untracked-files=all` is EMPTY. */
198
325
  clean: boolean;
199
326
  }
327
+ /**
328
+ * Stage-2 R2 G3 — the discriminated result of the `repo_state` freshness
329
+ * HEAD probe. Collapsing "non-git" and "the probe FAILED" into one null was
330
+ * the G3 hole: a transient git failure borrowed the non-git 24h freshness
331
+ * allowance. The three outcomes drive DIFFERENT projection policies
332
+ * (context-items.ts `projectRepoStateForDispatch`).
333
+ */
334
+ export type WorkspaceGitHeadProbe = {
335
+ kind: 'head';
336
+ head: string;
337
+ } | {
338
+ kind: 'non-git';
339
+ } | {
340
+ kind: 'probe-failed';
341
+ };
342
+ /**
343
+ * A1e Finding 5 (design §8.3 freshness) — the narrow git-HEAD probe the
344
+ * `repo_state` freshness projection uses.
345
+ *
346
+ * Stage-2 R2 G3 — discriminated outcomes:
347
+ * - `head` — a real git repo with a resolvable HEAD commit (the only
348
+ * outcome a `repo_state` record may PIN a `gitHead` from);
349
+ * - `non-git` — DETERMINISTICALLY not a repo (`git rev-parse
350
+ * --is-inside-work-tree` fails with "not a git repository" — exit
351
+ * semantics, not a guess): the only bucket eligible for the F5
352
+ * age-bounded freshness allowance;
353
+ * - `probe-failed` — everything else: git missing/broken, permission or
354
+ * transient errors, AND the UNBORN-HEAD case (a `git init` repo with no
355
+ * initial commit). Unborn-HEAD is bucketed here deliberately: it IS a
356
+ * repo, but there is no commit to pin freshness to and a re-delegated
357
+ * read could not produce a head-proven record either — so the
358
+ * conservative probe-failed policy (stale, NO re-delegation loop) is
359
+ * the sound handling, pinned by test.
360
+ */
361
+ export declare function probeWorkspaceGitHead(workspaceRoot: string): Promise<WorkspaceGitHeadProbe>;
200
362
  /**
201
363
  * Hash the generation inputs (§4.2 conjunct (d)). A `StructuralSummary` is a
202
364
  * pure function of `tree content × generation inputs`; this hashes the
@@ -1,6 +1,8 @@
1
1
  import type { Dirent, Stats } from 'node:fs';
2
2
  import type { runShellCommand } from '../local-executor/verification-gates/shell-runner';
3
3
  import type { ShadowDiffFile } from '../local-executor/workspace-shadow';
4
+ import type { ProcessCleanupOwner } from '../local-executor/process-tree';
5
+ import { type WorkspaceRootAuthority } from '../local-executor/workspace-authority';
4
6
  /** Default per-file wall-clock budget for a declared-test `node` run. */
5
7
  export declare const DECLARED_TEST_TIMEOUT_MS = 300000;
6
8
  /**
@@ -20,6 +22,9 @@ export interface DeclaredTestResult {
20
22
  ranCount: number;
21
23
  /** Never-written declared file / empty-or-JS-less declared dir (§3.D, VISIBLE). */
22
24
  skipped: string[];
25
+ /** False means the caller must retain the test cwd. */
26
+ workspaceCleanupSafe?: false;
27
+ workspaceCleanupOwner?: ProcessCleanupOwner;
23
28
  }
24
29
  export interface RunDeclaredTestSurfacesArgs {
25
30
  /** cwd holding the agent's changes (the shadow root). */
@@ -37,8 +42,8 @@ export interface RunDeclaredTestSurfacesArgs {
37
42
  realpath: (p: string) => Promise<string>;
38
43
  /** Injected — file/dir discriminate on the resolved target. */
39
44
  stat: (p: string) => Promise<Stats>;
40
- /** Injected directory expansion. */
41
- readdir: (p: string) => Promise<Dirent[]>;
45
+ /** @internal test-only directory expansion seam; production streams via opendir. */
46
+ readdir?: (p: string) => Promise<Dirent[]>;
42
47
  /**
43
48
  * Injected (#609) — read a file's UTF-8 contents (nearest-`package.json` framework detection).
44
49
  * A throw (ENOENT / EISDIR / unreadable) is TOTAL-handled by `detectFramework` (→ keep walking up,
@@ -47,6 +52,20 @@ export interface RunDeclaredTestSurfacesArgs {
47
52
  readFile: (p: string) => Promise<string>;
48
53
  /** Default `DECLARED_TEST_TIMEOUT_MS`. */
49
54
  timeoutMs?: number;
55
+ /** Cooperative session-shutdown cancellation for spawned test processes. */
56
+ signal?: AbortSignal;
57
+ /** Exact snapshot incarnation selected before declared-test discovery. */
58
+ shadowRootAuthority?: WorkspaceRootAuthority;
59
+ /** @internal deterministic root-replacement seam after initial validation. */
60
+ afterAuthorityCheck?: () => Promise<void> | void;
61
+ /** @internal deterministic A→B→A restoration before the final check. */
62
+ beforeAuthorityCompletion?: () => Promise<void> | void;
63
+ /** @internal deterministic root replacement immediately before framework discovery. */
64
+ beforeFrameworkDiscovery?: () => Promise<void> | void;
65
+ /** @internal helper-held missing-intermediate authority seam. */
66
+ beforeClassificationMissing?: () => Promise<void> | void;
67
+ /** @internal helper-held missing-leaf completion seam. */
68
+ beforeClassificationCompletion?: () => Promise<void> | void;
50
69
  }
51
70
  /**
52
71
  * Canonicalize a declared scope / diff path for comparison: collapse backslashes to