@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,274 @@
1
+ import { z } from 'zod';
2
+ import type { Logger } from '../logger';
3
+ import type { ToolActivityOutboxEnvelope } from './types';
4
+ /** A persisted ledger mapping for one native invocation id. */
5
+ export declare const LedgerEntrySchema: z.ZodObject<{
6
+ /** The window's idempotency key this occurrence sealed into. */
7
+ clientEventId: z.ZodString;
8
+ /**
9
+ * The occurrence's source transcript position (finding G) — a TIGHTER safe
10
+ * lower bound for a quarantine/missing-file rewind than session start. 0 when
11
+ * unknown (e.g. rebuilt from the outbox, which does not carry offsets) → the
12
+ * rewind falls back to session start, which is still SAFE.
13
+ */
14
+ byteOffset: z.ZodNumber;
15
+ state: z.ZodEnum<["durably-outboxed", "acked"]>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ state: "durably-outboxed" | "acked";
18
+ byteOffset: number;
19
+ clientEventId: string;
20
+ }, {
21
+ state: "durably-outboxed" | "acked";
22
+ byteOffset: number;
23
+ clientEventId: string;
24
+ }>;
25
+ export type LedgerEntry = z.infer<typeof LedgerEntrySchema>;
26
+ export declare const LedgerFileSchema: z.ZodObject<{
27
+ version: z.ZodLiteral<1>;
28
+ /** keyed by native invocation id (`toolu_…` / `call_id`). */
29
+ entries: z.ZodRecord<z.ZodString, z.ZodObject<{
30
+ /** The window's idempotency key this occurrence sealed into. */
31
+ clientEventId: z.ZodString;
32
+ /**
33
+ * The occurrence's source transcript position (finding G) — a TIGHTER safe
34
+ * lower bound for a quarantine/missing-file rewind than session start. 0 when
35
+ * unknown (e.g. rebuilt from the outbox, which does not carry offsets) → the
36
+ * rewind falls back to session start, which is still SAFE.
37
+ */
38
+ byteOffset: z.ZodNumber;
39
+ state: z.ZodEnum<["durably-outboxed", "acked"]>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ state: "durably-outboxed" | "acked";
42
+ byteOffset: number;
43
+ clientEventId: string;
44
+ }, {
45
+ state: "durably-outboxed" | "acked";
46
+ byteOffset: number;
47
+ clientEventId: string;
48
+ }>>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ entries: Record<string, {
51
+ state: "durably-outboxed" | "acked";
52
+ byteOffset: number;
53
+ clientEventId: string;
54
+ }>;
55
+ version: 1;
56
+ }, {
57
+ entries: Record<string, {
58
+ state: "durably-outboxed" | "acked";
59
+ byteOffset: number;
60
+ clientEventId: string;
61
+ }>;
62
+ version: 1;
63
+ }>;
64
+ export type LedgerFile = z.infer<typeof LedgerFileSchema>;
65
+ /**
66
+ * The durable "legacy-owned" set (§4.8 startup-gap double-render fix). A native
67
+ * invocation id lands here when a tool was SUCCESSFULLY emitted on the LEGACY
68
+ * per-tool `TOOL_USE` path DURING the consolidator startup gap (a PostToolUse /
69
+ * JSONL invocation that arrived before the consolidator went active). Persisted
70
+ * SEPARATELY from `ledger.json` so the gap-time recorder (which has no live
71
+ * consolidator) never contends with the consolidator's own ledger writes, and so
72
+ * a crash between the legacy emit and the backstop replay still suppresses the
73
+ * re-derive. The backstop consults this set (via {@link ToolActivityLedger.isKnown})
74
+ * and SKIPS re-deriving any legacy-owned id into a duplicate `TOOL_ACTIVITY`
75
+ * manifest — the backend cannot join a `TOOL_USE` row with a `TOOL_ACTIVITY` row,
76
+ * and mobile's native-id FOLD only spans `TOOL_ACTIVITY` rows.
77
+ */
78
+ export declare const LegacyOwnedFileSchema: z.ZodObject<{
79
+ version: z.ZodLiteral<1>;
80
+ /** native invocation ids emitted on the legacy per-tool path during the startup gap. */
81
+ ids: z.ZodArray<z.ZodString, "many">;
82
+ }, "strip", z.ZodTypeAny, {
83
+ version: 1;
84
+ ids: string[];
85
+ }, {
86
+ version: 1;
87
+ ids: string[];
88
+ }>;
89
+ export type LegacyOwnedFile = z.infer<typeof LegacyOwnedFileSchema>;
90
+ /** An observed occurrence's native id + its source transcript position. */
91
+ export interface OccurrenceRef {
92
+ id: string;
93
+ byteOffset: number;
94
+ }
95
+ export interface ToolActivityLedgerOptions {
96
+ agent: string;
97
+ sessionId: string;
98
+ logger: Logger;
99
+ root?: string;
100
+ }
101
+ /**
102
+ * The durable invocation-id ledger for ONE session. In-memory map, persisted
103
+ * crash-atomically on every mutation. Correctness rests on: a `durably-outboxed`
104
+ * or `acked` id is a no-op re-observe; an unknown id is a fresh occurrence; and
105
+ * `invalidate` (crash-ordered repair) demotes a window's mappings so its
106
+ * occurrences are re-observed rather than suppressed.
107
+ */
108
+ export declare class ToolActivityLedger {
109
+ private readonly agent;
110
+ private readonly sessionId;
111
+ private readonly logger;
112
+ private readonly rootDir;
113
+ private entries;
114
+ private loaded;
115
+ constructor(opts: ToolActivityLedgerOptions);
116
+ private filePath;
117
+ private legacyOwnedFilePath;
118
+ /**
119
+ * The PROCESS-SHARED legacy coordination for this (root, agent, session). Keyed
120
+ * by the durable file path so the gap-time recorder and the live consolidator's
121
+ * ledger — separate instances for the same session — share ONE `owned`/`inFlight`
122
+ * view (§4.8). See {@link LegacyCoordination}.
123
+ */
124
+ private get coord();
125
+ /**
126
+ * Load the persisted ledger. An absent / unreadable / invalid file yields an
127
+ * EMPTY ledger (the caller then rebuilds from the outbox via
128
+ * {@link rebuildFromOutbox}); losing it never skips an occurrence.
129
+ */
130
+ load(): Promise<void>;
131
+ /**
132
+ * Seed `durably-outboxed` mappings from the surviving outbox entries (§4.5
133
+ * rebuildability) — used after a ledger loss so a still-pending window is not
134
+ * re-observed as new. The outbox does not carry per-occurrence byteOffsets, so
135
+ * they default to 0 (rewind falls back to the safe session-start bound).
136
+ * Never DOWNGRADES an existing `acked` entry.
137
+ */
138
+ rebuildFromOutbox(outboxEntries: ToolActivityOutboxEnvelope[]): void;
139
+ /**
140
+ * True if the id is a no-op re-observe: either a sealed window's occurrence
141
+ * (`durably-outboxed`/`acked`), a durable `legacy-owned` id (a tool already
142
+ * emitted on the legacy per-tool path during the startup gap), OR an
143
+ * `in-flight` legacy id (a gap `TOOL_USE` mid-emit whose persistence is not yet
144
+ * decided). The backstop must NOT re-derive any of these into a duplicate
145
+ * `TOOL_ACTIVITY` (§4.8). An in-flight id is DEFERRED (not skipped): once its
146
+ * persistence resolves it is either promoted to durable-owned (stays suppressed)
147
+ * or cleared (the next backstop pass re-derives it → no skip).
148
+ */
149
+ isKnown(id: string): boolean;
150
+ /**
151
+ * §4.8 — true only for a DURABLY-resolved id: a sealed window occurrence
152
+ * (`durably-outboxed`/`acked`) OR a durable `legacy-owned` id. Excludes the
153
+ * TRANSIENT in-flight state. `observe()` uses this (NOT {@link isKnown}) to
154
+ * distinguish a PERMANENT dedup (a durably-resolved id → no-op, cursor advances)
155
+ * from a TRANSIENT one (an in-flight id → deferred, cursor HOLDS) in a SINGLE
156
+ * atomic evaluation, closing the check-then-observe TOCTOU (a mark landing between
157
+ * a separate pre-check and the observe dedup — Stage-2 Codex).
158
+ */
159
+ isKnownDurable(id: string): boolean;
160
+ /**
161
+ * §4.8 MED — true ONLY if the id is legacy IN-FLIGHT (transient, persistence not yet
162
+ * decided), as distinct from {@link isKnown} (which also covers the DURABLE
163
+ * `entries`/`owned` states). The transcript backstop uses this to tell WHY an
164
+ * occurrence was deferred: an in-flight deferral is TRANSIENT and reversible (a
165
+ * later `clear` makes the id re-derivable), so the backstop must NOT checkpoint the
166
+ * durable cursor PAST that occurrence's frame — a forward-only advance past it would
167
+ * skip it forever if it resolves NON-persisted (HIGH-1). A durably-resolved
168
+ * (`entries`/`owned`) deferral is permanent, so the cursor advances freely.
169
+ */
170
+ isLegacyInFlight(id: string): boolean;
171
+ getState(id: string): 'durably-outboxed' | 'acked' | undefined;
172
+ /**
173
+ * Unique `clientEventId`s still in the `durably-outboxed` state (sealed, not yet
174
+ * acked). The §4.5 N4 startup cross-check compares these against the surviving
175
+ * outbox files: a durably-outboxed id with NO outbox file is a LOST window that
176
+ * must be repaired (cursor rewind + invalidate) or it is silently skipped.
177
+ */
178
+ durablyOutboxedClientEventIds(): string[];
179
+ /** The native ids mapped to a window's `clientEventId`. */
180
+ idsFor(clientEventId: string): string[];
181
+ /**
182
+ * The tightest SAFE lower-bound byteOffset over a window's occurrences (finding
183
+ * G) — for the quarantine/missing-file rewind. `undefined` if the window has no
184
+ * mapping (caller falls back to session start).
185
+ */
186
+ safeRewindOffsetFor(clientEventId: string): number | undefined;
187
+ /**
188
+ * Record a sealed window's occurrences as `durably-outboxed` (§4.5). MUST be
189
+ * called AFTER the outbox entry is durably published — the durability ordering
190
+ * that makes the outbox, not the ledger, the source of truth. Persists atomically.
191
+ */
192
+ markDurablyOutboxed(occurrences: OccurrenceRef[], clientEventId: string): Promise<void>;
193
+ /** Mark every id of an acked window `acked` (retained for the pruning horizon). */
194
+ markAcked(clientEventId: string): Promise<void>;
195
+ /**
196
+ * Crash-ordered repair step (2) (§4.5 V3/W2): DEMOTE/remove every mapping
197
+ * referencing a quarantined or missing `clientEventId` so its occurrences are
198
+ * RE-OBSERVED (not suppressed as a `durably-outboxed` no-op) after the cursor
199
+ * rewind. Persists atomically.
200
+ */
201
+ invalidate(clientEventId: string): Promise<void>;
202
+ /**
203
+ * §4.8 startup-gap double-render fix — durably record native invocation ids
204
+ * that were SUCCESSFULLY (and PROVABLY persisted) emitted on the LEGACY per-tool
205
+ * `TOOL_USE` path while the consolidator was not yet active. Prefer
206
+ * {@link finalizeLegacyOwned} from the plugin emit site (it also clears the
207
+ * in-flight mark); a NON-persisted throttle-synthetic emit must NOT be recorded
208
+ * (else the backstop skips a tool mobile never saw = a SKIP — see the persistence
209
+ * gate at the plugin emit site). Writes ONLY `legacy-owned.json` (never
210
+ * `ledger.json`), so a dedicated gap-time recorder instance never contends with a
211
+ * live consolidator's ledger writes. SERIALIZED on the PROCESS-SHARED
212
+ * {@link LegacyCoordination.chain} + unions with the on-disk set each call, so
213
+ * concurrent gap records (multiple in-flight PostToolUse) never lose an id.
214
+ */
215
+ recordLegacyOwned(ids: string[]): Promise<void>;
216
+ /**
217
+ * §4.8 MED — register a native id as legacy IN-FLIGHT: a per-tool `TOOL_USE`
218
+ * that is about to be (or has just been) emitted on the legacy path but whose
219
+ * PERSISTENCE is not yet known. Synchronous + in-memory ONLY (no disk) — a
220
+ * transient intent, not durable state. Called BEFORE the createEvent so the
221
+ * consolidator's backstop (which may run concurrently on a Stop hook) sees the
222
+ * id as {@link isKnown} and DEFERS re-deriving it, closing the reload/record
223
+ * race. Resolve it with {@link finalizeLegacyOwned} (persisted) or
224
+ * {@link clearLegacyInFlight} (non-persisted / emit failed).
225
+ */
226
+ markLegacyInFlight(id: string): void;
227
+ /**
228
+ * §4.8 MED — clear a legacy in-flight id WITHOUT recording it durable-owned.
229
+ * Called when the legacy `TOOL_USE` was proven NON-persisted (a throttle
230
+ * synthetic) or its emit failed: the id becomes re-derivable so a later backstop
231
+ * pass emits it in a `TOOL_ACTIVITY` manifest (mobile still sees it → no skip).
232
+ */
233
+ clearLegacyInFlight(id: string): void;
234
+ /**
235
+ * §4.8 — promote in-flight legacy ids to DURABLE legacy-owned (proven persisted).
236
+ * Records to disk FIRST (via {@link recordLegacyOwned}, so `owned` gains the id),
237
+ * THEN drops the in-flight mark — the id is continuously {@link isKnown}
238
+ * (in-flight → owned) with no gap in which the backstop could re-derive it.
239
+ * BEST-EFFORT + ALWAYS-CLEAR: a `legacy-owned.json` write failure is swallowed (like
240
+ * the legacy per-tool recorder) so it never fails the caller's hook-event handling,
241
+ * and the in-flight mark is dropped in a `finally` so it can NEVER leak — a leaked
242
+ * in-flight id would pin the transcript backstop's cursor forever (§4.8 HIGH-1). If
243
+ * the durable record failed the id becomes re-derivable → at worst a cosmetic
244
+ * double-render (the tool WAS persisted, so mobile already saw the legacy row), never
245
+ * a skip.
246
+ */
247
+ finalizeLegacyOwned(ids: string[]): Promise<void>;
248
+ /**
249
+ * Release this session's PROCESS-SHARED legacy coordination (bound the module
250
+ * map on a long-lived daemon). Call on session end AFTER the recorder and any
251
+ * live consolidator for the session are torn down.
252
+ */
253
+ disposeLegacyCoordination(): void;
254
+ /**
255
+ * Re-read the durable legacy-owned set from disk and UNION it into memory. Run
256
+ * on {@link load} and at the top of every transcript-backstop pass, so a
257
+ * legacy-owned id recorded AFTER the ledger first loaded (a tool emitted in the
258
+ * narrow sub-window between init and the consolidator going active) is still
259
+ * seen before the backstop re-derives it (§4.8). An absent/invalid file is a
260
+ * no-op (nothing to suppress yet).
261
+ */
262
+ reloadLegacyOwned(): Promise<void>;
263
+ /** Test/diagnostic: a snapshot of the in-memory durable legacy-owned id set. */
264
+ legacyOwnedSnapshot(): string[];
265
+ /** Test/diagnostic: a snapshot of the in-memory legacy IN-FLIGHT id set. */
266
+ legacyInFlightSnapshot(): string[];
267
+ /**
268
+ * Bound ledger growth: drop `acked` entries whose source position is strictly
269
+ * BELOW a safe horizon (§4.5 — max(replay cursor, Stop turn-start)). Never
270
+ * prunes `durably-outboxed` (still pending an ack). Persists if anything changed.
271
+ */
272
+ prune(beforeByteOffset: number): Promise<void>;
273
+ private persist;
274
+ }
@@ -0,0 +1,60 @@
1
+ import type { Logger } from '../logger';
2
+ import { ToolActivityOutboxEnvelope } from './types';
3
+ export interface ToolActivityOutboxOptions {
4
+ /** Plugin agent slug — `claude` | `codex` (the on-disk namespace). */
5
+ agent: string;
6
+ logger: Logger;
7
+ /** Override the root for tests; defaults to `~/.codevibe/<agent>/tool-activity-outbox`. */
8
+ root?: string;
9
+ }
10
+ /** Result of a restart-time scan of one session's outbox directory. */
11
+ export interface ListPendingResult {
12
+ /** Schema-valid `pending` entries recoverable for send/drain. */
13
+ valid: ToolActivityOutboxEnvelope[];
14
+ /** Filenames quarantined (unreadable/invalid/mismatched) — occurrences to re-derive from transcript. */
15
+ quarantined: string[];
16
+ }
17
+ /**
18
+ * The durable outbox for ONE consolidated plugin (claude / codex). A pure
19
+ * durability primitive: persist / list-and-validate / prune / enumerate. The
20
+ * send orchestration (encrypt-at-send, retry, back-pressure, ack) lives in the
21
+ * consolidator that owns this outbox.
22
+ */
23
+ export declare class ToolActivityOutbox {
24
+ private readonly agent;
25
+ private readonly logger;
26
+ private readonly rootDir;
27
+ constructor(opts: ToolActivityOutboxOptions);
28
+ /** The per-session directory holding one file per sealed window. */
29
+ sessionDir(sessionId: string): string;
30
+ private entryPath;
31
+ /**
32
+ * Durably persist a sealed window `pending`, BEFORE any send (§4.5 lifecycle
33
+ * step 1). Schema-validates the envelope first (never persist a malformed
34
+ * entry) and writes via the crash-atomic temp→fsync→rename→dir-fsync sequence.
35
+ */
36
+ persist(sessionId: string, envelope: ToolActivityOutboxEnvelope): Promise<void>;
37
+ /**
38
+ * List a session's recoverable `pending` entries (§4.5 restart validation).
39
+ * Deletes any leftover `.tmp.` (interrupted write), schema-validates each
40
+ * `<id>.json`, and QUARANTINES (renames aside, logged) any file that is
41
+ * unreadable, schema-invalid, or whose filename does not match its own
42
+ * `clientEventId`. Quarantined occurrences are recovered by the caller's
43
+ * transcript rescan — NEVER dead-lettered.
44
+ */
45
+ listPending(sessionId: string): Promise<ListPendingResult>;
46
+ /** Prune a delivered entry on ack — a single idempotent `unlink` (§4.5). */
47
+ prune(sessionId: string, clientEventId: string): Promise<void>;
48
+ /**
49
+ * Enumerate the session ids with a durable outbox directory (§4.5 startup
50
+ * drain — resume EACH session's send-drain independent of which session's
51
+ * next hook fires).
52
+ */
53
+ enumerateSessions(): Promise<string[]>;
54
+ /**
55
+ * Rename a bad entry aside (preserved for forensics, never re-listed). Logged
56
+ * CRITICAL because a quarantine means the durable transcript rescan must
57
+ * recover those occurrences.
58
+ */
59
+ private quarantine;
60
+ }
@@ -0,0 +1,190 @@
1
+ import { z } from 'zod';
2
+ import type { Logger } from '../logger';
3
+ /** Keep every ordinary replay read comfortably below Node/Buffer's platform limits. */
4
+ export declare const DEFAULT_REPLAY_READ_BYTES: number;
5
+ /**
6
+ * A JSONL record may be larger than the ordinary batch, so the reader extends in
7
+ * fixed-size chunks until it finds the terminating newline. This cap bounds the
8
+ * one-record memory cost without imposing any limit on the transcript FILE size.
9
+ */
10
+ export declare const DEFAULT_REPLAY_MAX_FRAME_BYTES: number;
11
+ export declare class ReplayFrameTooLargeError extends Error {
12
+ readonly startOffset: number;
13
+ readonly maxFrameBytes: number;
14
+ readonly code = "REPLAY_FRAME_TOO_LARGE";
15
+ constructor(startOffset: number, maxFrameBytes: number);
16
+ }
17
+ export declare const ReplayCursorStateSchema: z.ZodObject<{
18
+ version: z.ZodLiteral<1>;
19
+ /** The transcript path this cursor tracks (a change ⇒ rescan from 0). */
20
+ canonicalPath: z.ZodString;
21
+ /** st_dev / st_ino — a change ⇒ the file rotated ⇒ rescan from 0. */
22
+ fileIdentity: z.ZodObject<{
23
+ dev: z.ZodNumber;
24
+ ino: z.ZodNumber;
25
+ }, "strip", z.ZodTypeAny, {
26
+ dev: number;
27
+ ino: number;
28
+ }, {
29
+ dev: number;
30
+ ino: number;
31
+ }>;
32
+ /** DURABLE complete-line boundary — the only correctness authority. */
33
+ byteOffset: z.ZodNumber;
34
+ /** Last-observed file size — a smaller current size ⇒ truncation ⇒ rescan from 0. */
35
+ lastKnownSize: z.ZodNumber;
36
+ /** Partial trailing line as of the last checkpoint (diagnostic; re-derived on read). */
37
+ carryover: z.ZodString;
38
+ }, "strip", z.ZodTypeAny, {
39
+ version: 1;
40
+ canonicalPath: string;
41
+ byteOffset: number;
42
+ fileIdentity: {
43
+ dev: number;
44
+ ino: number;
45
+ };
46
+ lastKnownSize: number;
47
+ carryover: string;
48
+ }, {
49
+ version: 1;
50
+ canonicalPath: string;
51
+ byteOffset: number;
52
+ fileIdentity: {
53
+ dev: number;
54
+ ino: number;
55
+ };
56
+ lastKnownSize: number;
57
+ carryover: string;
58
+ }>;
59
+ export type ReplayCursorState = z.infer<typeof ReplayCursorStateSchema>;
60
+ /** One framed transcript line with its byte span. */
61
+ export interface ReplayFrame {
62
+ line: string;
63
+ /**
64
+ * Byte offset of the line's FIRST byte (§4.5 finding G). This is the SAFE rewind
65
+ * lower bound for an occurrence on this line — rewinding here RE-READS the line;
66
+ * rewinding to `endOffset` would land on the NEXT line and skip this occurrence.
67
+ */
68
+ startOffset: number;
69
+ /** Byte offset just past the line's trailing `\n` (the checkpoint-advance candidate). */
70
+ endOffset: number;
71
+ }
72
+ /** A pure read snapshot — no persisted state is mutated by {@link ToolReplayCursor.readFrames}. */
73
+ export interface ReadFramesResult {
74
+ /** Complete lines in this bounded batch from the checkpoint (or 0 after a rotation). */
75
+ frames: ReplayFrame[];
76
+ /** True when the file rotated/truncated and was rescanned from 0. */
77
+ rotated: boolean;
78
+ /** True when the transcript file is ABSENT (N4 missing-file — caller repairs). */
79
+ missing: boolean;
80
+ /** Partial trailing bytes with no terminating newline yet (may be ''). */
81
+ carryover: string;
82
+ /** Byte offset just past the last COMPLETE line — the max checkpoint candidate. */
83
+ endOfComplete: number;
84
+ /**
85
+ * True when this stat snapshot contains bytes beyond the bounded read. The
86
+ * caller may immediately run another batch after checkpointing this one.
87
+ * False at the snapshot EOF, including when EOF is an incomplete trailing line.
88
+ */
89
+ hasMore: boolean;
90
+ /** Bytes actually read from disk for this batch (diagnostics/tests). */
91
+ bytesRead: number;
92
+ /** The identity + size captured AT read time — pass to {@link ToolReplayCursor.checkpoint} for a consistent snapshot. */
93
+ fileIdentity: {
94
+ dev: number;
95
+ ino: number;
96
+ };
97
+ size: number;
98
+ }
99
+ export interface ToolReplayCursorOptions {
100
+ agent: string;
101
+ sessionId: string;
102
+ /** Absolute path of the transcript this cursor rescans. */
103
+ canonicalPath: string;
104
+ logger: Logger;
105
+ root?: string;
106
+ /** Ordinary bounded batch size. Defaults to 4 MiB. */
107
+ readBytes?: number;
108
+ /** Maximum bytes allowed in one unterminated JSONL record. Defaults to 64 MiB. */
109
+ maxFrameBytes?: number;
110
+ }
111
+ /**
112
+ * The durable tool-replay cursor for ONE session's transcript. Split into a PURE
113
+ * read ({@link readFrames}) and an explicit durable advance ({@link checkpoint}):
114
+ * the consolidator frames + observes, durably outboxes the contiguous prefix,
115
+ * then checkpoints — so the persisted `byteOffset` never runs ahead of durability.
116
+ */
117
+ export declare class ToolReplayCursor {
118
+ private readonly agent;
119
+ private readonly sessionId;
120
+ private readonly canonicalPath;
121
+ private readonly logger;
122
+ private readonly rootDir;
123
+ private readonly readBytes;
124
+ private readonly maxFrameBytes;
125
+ private state;
126
+ constructor(opts: ToolReplayCursorOptions);
127
+ private filePath;
128
+ /**
129
+ * Load the persisted cursor. An absent / unreadable / invalid file yields a
130
+ * FRESH cursor (rescan from 0) — losing it never skips an occurrence.
131
+ */
132
+ load(): Promise<void>;
133
+ /** The current durable checkpoint (0 when fresh). */
134
+ byteOffset(): number;
135
+ /**
136
+ * Read + byte-frame ONE BOUNDED transcript batch from the durable checkpoint
137
+ * (or 0 after a rotation). PURE — persists nothing. File positions are ordinary
138
+ * safe JS integers, so offsets above Node's signed 32-bit Buffer length remain
139
+ * valid; no allocation is based on `(fileSize - checkpoint)`.
140
+ *
141
+ * Frames on `\n` (0x0A), an ASCII byte that never appears mid-UTF-8-char, so
142
+ * every complete-line boundary is a safe UTF-8 (and byte-offset) boundary. If
143
+ * the ordinary batch contains no newline, fixed-size reads extend only until
144
+ * the first record terminator or `maxFrameBytes`. Thus transcript FILE size is
145
+ * unbounded while one malformed/huge JSONL RECORD has a controlled bound.
146
+ * The trailing partial is returned as `carryover` and re-read next cycle.
147
+ */
148
+ readFrames(): Promise<ReadFramesResult>;
149
+ /**
150
+ * Advance the durable checkpoint over a contiguous durably-outboxed prefix
151
+ * (§4.5) and persist atomically. FORWARD-ONLY **within the same file**: a
152
+ * `newByteOffset` at or below the current checkpoint is ignored (a stale/duplicate
153
+ * advance never regresses the cursor — use {@link rewindTo} for the deliberate
154
+ * repair rewind). The snapshot (`fileIdentity`, `size`, `carryover`) MUST come from
155
+ * the {@link readFrames} result that produced this offset, so identity + offset stay
156
+ * consistent.
157
+ *
158
+ * ROTATION/TRUNCATION EXCEPTION: when the snapshot's canonical PATH differs from the
159
+ * stored one (rebound to a new transcript), OR its file identity differs (inode/dev
160
+ * change), OR the file shrank below the current offset (truncation), the old offset
161
+ * addresses a file that no longer exists — the forward-only guard would reject EVERY
162
+ * checkpoint on the (smaller) replacement, so `readFrames` would re-detect rotation and
163
+ * re-read the whole replacement forever (unbounded re-read). In that case the checkpoint
164
+ * RESETS the baseline to track the replacement. The predicate MIRRORS `readFrames`' own
165
+ * `rotated` detection EXACTLY (path + identity + shrink) so the two never disagree — a
166
+ * rename to a new canonical path that keeps the same inode + size would otherwise be
167
+ * rotation to `readFrames` but not to `checkpoint`, wedging the cursor (Stage-2 Codex).
168
+ */
169
+ checkpoint(newByteOffset: number, snapshot: {
170
+ fileIdentity: {
171
+ dev: number;
172
+ ino: number;
173
+ };
174
+ size: number;
175
+ carryover: string;
176
+ }): Promise<void>;
177
+ /**
178
+ * Crash-ordered repair step (1) (§4.5 V3/N4): REWIND the checkpoint to a safe
179
+ * lower bound so a quarantined/missing window's occurrences are re-observed.
180
+ * MUST run BEFORE the ledger `invalidate` (step 2) and the re-observe (step 3).
181
+ * BACKWARD-ONLY: clamped to `min(current, requested)` and ≥ 0, so it can never
182
+ * ADVANCE the cursor past unread bytes (a repair target below the current cursor
183
+ * moves back to re-read; a target at/above it is a no-op — the frames are already
184
+ * unread). carryover is cleared (re-derived on the next read).
185
+ */
186
+ rewindTo(byteOffset: number): Promise<void>;
187
+ /** Clear the cursor to a full rescan-from-0 (e.g. a hard reset). Persists. */
188
+ reset(): Promise<void>;
189
+ private persist;
190
+ }
@@ -0,0 +1,133 @@
1
+ import { z } from 'zod';
2
+ import type { Logger } from '../logger';
3
+ /** An acquired exclusive ownership of a rollout `R`, held until {@link release}. */
4
+ export interface RolloutOwnership {
5
+ readonly rollout: string;
6
+ release(): Promise<void>;
7
+ }
8
+ /**
9
+ * A cross-process single-writer lock over a rollout id (§4.5 X3). The production
10
+ * backend acquires a REAL OS advisory lock (auto-released on process death) on a
11
+ * stable per-`R` lockfile; {@link InProcessRolloutLock} is the intra-process
12
+ * backend for claude's degenerate 1:1 + tests. The backend owns mutual exclusion
13
+ * + stale-owner breaking; the session-map owns the durable record.
14
+ */
15
+ export interface RolloutLock {
16
+ /** Blocks until this process holds `rollout` exclusively; released via the handle. */
17
+ acquireOwnership(rollout: string): Promise<RolloutOwnership>;
18
+ }
19
+ /**
20
+ * In-process rollout lock: a per-key async mutex. Correct for claude (each
21
+ * `claude-<UUID>` is process-unique, so there is no cross-PROCESS contention to
22
+ * serialize) and for unit tests. NOT sufficient for codex's cross-process resume
23
+ * (that needs the injected OS-advisory backend).
24
+ */
25
+ export declare class InProcessRolloutLock implements RolloutLock {
26
+ private tails;
27
+ acquireOwnership(rollout: string): Promise<RolloutOwnership>;
28
+ }
29
+ export declare const SessionMapRecordSchema: z.ZodObject<{
30
+ version: z.ZodLiteral<1>;
31
+ /** The native rollout id `R` (codex `call_id` rollout) / `claude-<UUID>`. */
32
+ rollout: z.ZodString;
33
+ /** Pid of the current owner — informational + usable by a lockfile backend for stale detection. */
34
+ ownerPid: z.ZodNumber;
35
+ /** The owner's backend session id — every binding attributes to THIS (S2 single-owner). */
36
+ ownerBackendSessionId: z.ZodString;
37
+ /** `call_id → backendSessionId` (always the owner's — S2). */
38
+ bindings: z.ZodRecord<z.ZodString, z.ZodString>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ version: 1;
41
+ rollout: string;
42
+ ownerPid: number;
43
+ ownerBackendSessionId: string;
44
+ bindings: Record<string, string>;
45
+ }, {
46
+ version: 1;
47
+ rollout: string;
48
+ ownerPid: number;
49
+ ownerBackendSessionId: string;
50
+ bindings: Record<string, string>;
51
+ }>;
52
+ export type SessionMapRecord = z.infer<typeof SessionMapRecordSchema>;
53
+ export interface ToolActivitySessionMapOptions {
54
+ agent: string;
55
+ logger: Logger;
56
+ lock: RolloutLock;
57
+ root?: string;
58
+ /** Overridable for tests. */
59
+ pid?: number;
60
+ }
61
+ /**
62
+ * The durable session-map for ONE consolidated agent. Every mutation is
63
+ * crash-atomic (temp→fsync→rename→dir-fsync via {@link atomicWriteJson}); the
64
+ * per-call binding write IS the §4.5 per-call durable-binding barrier every
65
+ * observer awaits BEFORE it observes/seals/outboxes a call.
66
+ */
67
+ export declare class ToolActivitySessionMap {
68
+ private readonly agent;
69
+ private readonly logger;
70
+ private readonly lock;
71
+ private readonly rootDir;
72
+ private readonly pid;
73
+ /** Per-rollout in-process mutation chain — serializes every record read-modify-write. */
74
+ private readonly recordChains;
75
+ constructor(opts: ToolActivitySessionMapOptions);
76
+ /**
77
+ * Serialize a record read-modify-write against all other mutations of the SAME
78
+ * rollout IN THIS PROCESS. The cross-process rollout lock (X3) makes ONE process
79
+ * the single writer of `R`; this chain closes the remaining IN-PROCESS hazard —
80
+ * concurrent {@link claimOwnership}/{@link bindCall} calls interleaving their
81
+ * read→write and last-writer-wins silently dropping a binding (Stage-2 iter-3 MED).
82
+ * The chain waits for the prior mutation regardless of its outcome (a failed write
83
+ * must not wedge `R`), and self-prunes when it becomes the idle tail.
84
+ */
85
+ private mutateRecord;
86
+ /**
87
+ * S1 — a GLOBALLY-UNIQUE codex backend session id `codex-<hostRandom>-<pid>-<launchNonce>`
88
+ * that NEVER recurs (a resume mints a NEW one), so `R → backendId` divergence is
89
+ * always detectable and a resumed conversation is a distinct backend session.
90
+ */
91
+ static mintCodexBackendSessionId(pid?: number): string;
92
+ /** The stable per-`R` lockfile path a production backend locks (created once, never renamed). */
93
+ lockPath(rollout: string): string;
94
+ private recordPath;
95
+ /** Filesystem-safe encoding of a rollout id (native ids can contain path-hostile chars). */
96
+ private encode;
97
+ private decode;
98
+ /**
99
+ * Acquire single-writer ownership of `R` and record this process's backend
100
+ * session as its owner (KEEPING any prior bindings — a reclaim never drops the
101
+ * `call_id` history). Holding the lock IS ownership; the backend already broke
102
+ * any stale prior holder. Returns the held ownership handle (release on session
103
+ * end / process exit).
104
+ */
105
+ claimOwnership(rollout: string, backendSessionId: string): Promise<RolloutOwnership>;
106
+ /**
107
+ * The §4.5 PER-CALL durable-binding barrier: durably bind `call_id` to the
108
+ * owner's backend session and fsync BEFORE the caller observes/seals/outboxes
109
+ * the call. Requires the held ownership handle (proves single-writer). All of
110
+ * `R`'s calls attribute to the ONE owner (S2).
111
+ */
112
+ bindCall(ownership: RolloutOwnership, callId: string): Promise<void>;
113
+ /**
114
+ * Route a transcript occurrence: the backend session bound to `(R, call_id)`,
115
+ * or `null` if unbound (the caller applies the X2b {@link ownerBackendSessionId}
116
+ * fallback ONLY when it holds `R`'s ownership).
117
+ */
118
+ resolveCall(rollout: string, callId: string): Promise<string | null>;
119
+ /**
120
+ * X2b fallback source — the CURRENT owner's backend session for `R`. A caller
121
+ * uses this to attribute a map-lost re-observed occurrence ONLY for a rollout it
122
+ * ACTUALLY OWNS (holds `R`'s lock); never to cross-attribute a foreign rollout.
123
+ */
124
+ ownerBackendSessionId(rollout: string): Promise<string | null>;
125
+ /**
126
+ * Startup enumeration (§4.5): the rollout ids with a durable session-map record,
127
+ * so a transcript recovered by the transcript-root pass routes even if its
128
+ * outbox subdir was lost.
129
+ */
130
+ enumerateRollouts(): Promise<string[]>;
131
+ private readRecord;
132
+ private writeRecord;
133
+ }