@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,150 @@
1
+ /** Liveness of a recorded lock owner (only `dead` is ever reclaimed). */
2
+ export type OwnerLiveness = "alive" | "dead" | "unknown";
3
+ /** The `owner.json` record written once per acquisition. */
4
+ export interface LockOwner {
5
+ pid: number;
6
+ host: string;
7
+ /** Random per-ACQUISITION nonce — the fence for every destructive/heartbeat op. */
8
+ ownerId: string;
9
+ /** Acquisition time (ISO), for diagnostics. */
10
+ startedAt: string;
11
+ }
12
+ export interface OAuthAccountLockOptions {
13
+ /** The canonical lockdir path (keyed to the OAuth account). */
14
+ lockDir: string;
15
+ /** Staleness TTL (» max critical-section time). Default 30s. */
16
+ ttlMs?: number;
17
+ /** Heartbeat interval (« TTL). Default 5s. */
18
+ heartbeatMs?: number;
19
+ /** Contention deadline. Default 60s. */
20
+ maxWaitMs?: number;
21
+ /**
22
+ * OWNERLESS-strand grace (F6). A lockdir present with NO readable `owner.json`
23
+ * is a crash strand (mkdir succeeded but the owner write / rmdir did not) that is
24
+ * FENCED-recovered once its mtime has been idle THIS long. Default = 2×TTL — far
25
+ * larger than the sub-millisecond mkdir→owner.json write window, so a live
26
+ * mid-acquire is never mistaken for a strand. Set high to disable recovery in
27
+ * practice.
28
+ */
29
+ ownerlessGraceMs?: number;
30
+ /** Base retry backoff. Default 25ms (capped 1s). */
31
+ backoffMs?: number;
32
+ now?: () => number;
33
+ delay?: (ms: number) => Promise<void>;
34
+ /** This process's pid (injectable for tests). */
35
+ pid?: number;
36
+ /** This host's id (injectable for tests). */
37
+ hostId?: string;
38
+ /** Liveness probe (injectable for tests). Default = same-host `process.kill(pid,0)`. */
39
+ isProcessAlive?: (pid: number, host: string) => OwnerLiveness;
40
+ /** Per-acquisition nonce generator (injectable for tests). */
41
+ randomId?: () => string;
42
+ /** `utimes(lockdir)` heartbeat op (injectable so tests can observe/spy). */
43
+ utimesFn?: (dir: string) => Promise<void>;
44
+ /** Disable the auto-interval heartbeat (tests drive ticks manually). */
45
+ disableAutoHeartbeat?: boolean;
46
+ }
47
+ /** A held lock. `release` is one-shot + idempotent. */
48
+ export interface LockHandle {
49
+ readonly ownerId: string;
50
+ /**
51
+ * Reassert-before-mutation (§5 primary revocation-wins backstop): re-read the
52
+ * canonical `owner.json` and return true iff `ownerId === ours`. The broker
53
+ * calls this IMMEDIATELY before EVERY keychain `setPassword`/`deletePassword`,
54
+ * aborting fail-closed on a false result — independently defeating any
55
+ * displacement that COMPLETED before the re-read.
56
+ */
57
+ reassertOwnership(): Promise<boolean>;
58
+ /** One-shot release: cancel+join heartbeat, then unlink+rmdir under `ownerId` re-assert. */
59
+ release(): Promise<void>;
60
+ /** TEST-ONLY: run one heartbeat tick synchronously (simulates a queued `utimes`). */
61
+ _tickForTest(): Promise<void>;
62
+ }
63
+ /** The portable cross-process OAuth-account lock (§5 / AMEND-1). */
64
+ export declare class OAuthAccountLock {
65
+ private readonly lockDir;
66
+ private readonly ownerFile;
67
+ private readonly reclaimGuardDir;
68
+ private readonly ttlMs;
69
+ private readonly heartbeatMs;
70
+ private readonly maxWaitMs;
71
+ private readonly ownerlessGraceMs;
72
+ private readonly backoffMs;
73
+ private readonly now;
74
+ private readonly delayFn;
75
+ private readonly pid;
76
+ private readonly hostId;
77
+ private readonly isProcessAlive;
78
+ private readonly randomId;
79
+ private readonly utimesFn;
80
+ private readonly disableAutoHeartbeat;
81
+ constructor(opts: OAuthAccountLockOptions);
82
+ /**
83
+ * Acquire the lock (bounded by `maxWaitMs`). Resolves a {@link LockHandle} on
84
+ * success; REJECTS fail-closed on: an unwritable lockdir root, a contention
85
+ * timeout (live/ambiguous/ownerless holder), or a dead/stranded reclaim guard.
86
+ * ZERO side effects on the persisted bundle on any fail-closed path.
87
+ */
88
+ acquire(): Promise<LockHandle>;
89
+ /** Whether the EXISTING lockdir holder is reclaimable (dead), an ownerless strand
90
+ * (F6), or must be waited on. */
91
+ private classifyExistingHolder;
92
+ /**
93
+ * Reclaim a stale, provably-dead lockdir under the SEPARATE reclaim guard.
94
+ * Returns a fresh {@link LockHandle} on success, or `null` if the reclaim was
95
+ * aborted (a sibling already reclaimed, or the guard is held). Throws only if
96
+ * the guard is dead/stranded (fail-closed → offline cleanup).
97
+ */
98
+ private tryReclaim;
99
+ /**
100
+ * FENCED recovery of a stranded OWNERLESS lockdir (F6) — the same reclaim-guard
101
+ * mutex + rename primitive as the dead-owner path, so at most one recoverer ever
102
+ * proceeds and no live successor is displaced. Returns a fresh {@link LockHandle}
103
+ * on success, or `null` if aborted (guard held/stranded, an owner appeared, or the
104
+ * dir freshened/vanished under the guard).
105
+ *
106
+ * RESIDUAL (documented): the ONE window this cannot fully close is a live acquirer
107
+ * OS-suspended (SIGSTOP) or GC-frozen for LONGER than `ownerlessGraceMs` precisely
108
+ * within the sub-millisecond gap between its `mkdir(lockDir)` and its
109
+ * `writeFile(owner.json)`. If that acquirer's owner-write lands AFTER our rename +
110
+ * fresh mkdir, it overwrites our `owner.json`; our `reassertOwnership()` (the
111
+ * broker's before-every-mutation backstop) then returns false and we abort — no two
112
+ * committed writers for vendor-key callers. For the keychain file-store lock (which
113
+ * does not reassert) this leaves a vanishingly-narrow two-writer window, strictly
114
+ * better than the previous PERMANENT strand that broke all auth until offline
115
+ * cleanup. The grace (default 2×TTL) makes the precondition astronomically unlikely.
116
+ */
117
+ private tryReclaimOwnerless;
118
+ /** Remove a renamed-away ownerless strand (it holds no owner.json by definition). */
119
+ private removeOwnerlessStaleDir;
120
+ /** Write `owner.json`, start the heartbeat, and build the handle. */
121
+ private onAcquired;
122
+ private tryMkdir;
123
+ /**
124
+ * Tri-state read of a lockdir's owner.json (R4-2). Only a genuine ENOENT is
125
+ * `absent`; a present-but-unreadable (EACCES/EIO/…) or unparseable/invalid file is
126
+ * `unreadable` (fail closed — never treated as ownerless or dead).
127
+ */
128
+ private readOwnerState;
129
+ /**
130
+ * Boolean-owner accessor for the non-recovery paths (heartbeat tick, reassert,
131
+ * release, dead-owner reclaim, stale-dir cleanup): an `unreadable` owner maps to
132
+ * `null`, which is the SAFE direction for every one of those (reassert→false→abort;
133
+ * tick→skip; release→don't touch; dead-reclaim re-read→abort). The
134
+ * ownerless-recovery path uses `readOwnerState` directly so it can tell `absent`
135
+ * (recoverable) from `unreadable` (must wait).
136
+ */
137
+ private readOwner;
138
+ private lockDirAge;
139
+ private removeStaleDir;
140
+ private rmdirQuiet;
141
+ private backoff;
142
+ }
143
+ /**
144
+ * Default lockdir path for a provider's OAuth account — a stable per-host path
145
+ * under `~/.codevibe/locks/` (all C4 brokers are same-host, so a shared
146
+ * filesystem path gives cross-process exclusion). NOT under the substrate
147
+ * mount (I1) — this is host-side broker coordination only.
148
+ */
149
+ export declare function defaultOAuthLockDir(account: string): string;
150
+ export declare function createOAuthAccountLock(opts: OAuthAccountLockOptions): OAuthAccountLock;
@@ -0,0 +1,72 @@
1
+ import type { VendorOAuthBundle } from "./types";
2
+ /**
3
+ * The injected refresh transport (§5). Separate from the model `UpstreamClient`
4
+ * (different content type, form body, token endpoint). Widened to accept an
5
+ * optional `signal` (the stop-lifecycle end-to-end cancellation contract).
6
+ * Resolves `{status, rawBody, contentType}`; REJECTS only on a transport error
7
+ * OR a 3xx redirect (redirect confinement).
8
+ */
9
+ export interface RefreshTransport {
10
+ post(args: {
11
+ url: string;
12
+ body: string;
13
+ contentType: string;
14
+ signal?: AbortSignal;
15
+ }): Promise<RefreshTransportResponse>;
16
+ }
17
+ export interface RefreshTransportResponse {
18
+ status: number;
19
+ /** Raw response text (bounded); parsed by the classifier, NEVER logged. */
20
+ rawBody: string;
21
+ /** Lowercased response `content-type`, if any. */
22
+ contentType?: string;
23
+ /**
24
+ * True iff the body exceeded the bounded-read cap and was NOT materialized
25
+ * (transport streamed at most the cap + cancelled). The classifier treats an
26
+ * oversized body as transient WITHOUT parsing (it was never fully read).
27
+ */
28
+ oversized?: boolean;
29
+ }
30
+ /** The outcome of a refresh attempt — drives the reactive/proactive posture. */
31
+ export type RefreshOutcome = {
32
+ kind: "rotated";
33
+ bundle: VendorOAuthBundle;
34
+ } | {
35
+ kind: "permanent";
36
+ reason: string;
37
+ } | {
38
+ kind: "transient";
39
+ reason: string;
40
+ };
41
+ /**
42
+ * The production fetch-backed {@link RefreshTransport}. Mirrors
43
+ * `FetchUpstreamClient`'s hardened posture for the NEW secret surface.
44
+ */
45
+ export declare class FetchRefreshTransport implements RefreshTransport {
46
+ private readonly opts;
47
+ constructor(opts?: {
48
+ fetchFn?: typeof fetch;
49
+ timeoutMs?: number;
50
+ });
51
+ post(args: {
52
+ url: string;
53
+ body: string;
54
+ contentType: string;
55
+ signal?: AbortSignal;
56
+ }): Promise<RefreshTransportResponse>;
57
+ }
58
+ /** Build the OAuth2 refresh-grant form body (`refresh_token` is a secret). */
59
+ export declare function buildRefreshBody(refreshToken: string): string;
60
+ /**
61
+ * Perform ONE token refresh against the pinned endpoint and classify the
62
+ * result. On success returns a `rotated` bundle that already applies the §5
63
+ * write-through merge rule (`refresh_token`/`id_token` ?? current;
64
+ * `account_id` from current; `last_refresh` = now) — persistence + cache +
65
+ * generation advance are the caller's job (under the cross-broker lock).
66
+ *
67
+ * `now` supplies the `last_refresh` timestamp (injectable for tests).
68
+ */
69
+ export declare function refreshOAuthToken(current: VendorOAuthBundle, transport: RefreshTransport, opts?: {
70
+ signal?: AbortSignal;
71
+ now?: () => Date;
72
+ }): Promise<RefreshOutcome>;
@@ -1,3 +1,5 @@
1
+ import type * as http from "node:http";
2
+ import type { Readable } from "node:stream";
1
3
  /**
2
4
  * The vendor providers Rung 1 brokers. Claude + Codex (Anthropic +
3
5
  * OpenAI) only — Gemini stays out of the substrate (§6 Q4, agy is
@@ -13,13 +15,15 @@ export type BrokerRouteMethod = "POST" | "GET";
13
15
  */
14
16
  export interface BrokerRoute {
15
17
  method: BrokerRouteMethod;
16
- path: "/v1/messages" | "/v1/responses" | "/healthz";
18
+ path: "/v1/messages" | "/v1/responses" | "/healthz" | "/models" | "/v1/models";
17
19
  /** Whether the route requires a valid agent→broker token. */
18
20
  auth: "broker_token" | "none";
19
21
  }
20
22
  /**
21
- * The broker's locked route table — exactly three routes (§3.2). Any
22
- * other method+path 403.
23
+ * The broker's locked route table (§3.2). Any other method+path → 403.
24
+ * `/models` and `/v1/models` are local compatibility metadata endpoints for
25
+ * Codex CLI provider preflight; they never forward to upstream or require a
26
+ * vendor credential.
23
27
  */
24
28
  export declare const BROKER_ROUTES: readonly BrokerRoute[];
25
29
  /**
@@ -34,8 +38,8 @@ export type BrokerStatus = 200 | 400 | 401 | 403 | 502 | 503;
34
38
  * the §3.2 contract is "everything else → 403", so the type MUST be able
35
39
  * to represent a *disallowed* route for the W1 gateway's `handle()` to be
36
40
  * conformance-testable (send `/v1/admin` / `DELETE` → assert 403). Only
37
- * the three `(method, path)` pairs in `BROKER_ROUTES` are forwarded; every
38
- * other request fails closed at 403.
41
+ * the model POST `(method, path)` pairs in `BROKER_ROUTES` are forwarded;
42
+ * every other request fails closed at 403, except local metadata/health routes.
39
43
  */
40
44
  export interface BrokerRequest {
41
45
  method: string;
@@ -62,7 +66,31 @@ export interface BrokerResponse {
62
66
  status: BrokerStatus;
63
67
  /** Upstream model-bound JSON body on 200; an error envelope otherwise. */
64
68
  body?: unknown;
69
+ /**
70
+ * Discriminant guard (PHASE-643 §3.0): a buffered `BrokerResponse` NEVER
71
+ * carries `kind`. A streamed 200-SSE forward that already wrote to the sink
72
+ * returns {@link BrokerHandled} (`{kind:"handled"}`) instead, so `"kind" in
73
+ * result` narrows the two apart in `handleHttp` (strict-TS valid).
74
+ */
75
+ kind?: never;
76
+ }
77
+ /**
78
+ * PHASE-643 §3.0 — the sentinel a 200-SSE forward returns AFTER it has streamed
79
+ * the response into the caller-provided sink (headers written + body piped). The
80
+ * HTTP adapter must NOT then write a second response; `"kind" in result` narrows
81
+ * this from a {@link BrokerResponse}.
82
+ */
83
+ export interface BrokerHandled {
84
+ readonly kind: "handled";
65
85
  }
86
+ /**
87
+ * PHASE-643 §3.0 — the minimal response surface the broker streams a 200-SSE
88
+ * forward into. `handleHttp` passes the node `http.ServerResponse`; non-HTTP
89
+ * callers pass nothing (buffered fallback). Restricted to the members the
90
+ * streaming write uses (`writeHead`/`headersSent`/`destroy`) plus the writable-
91
+ * stream surface `pipeline()` drives to completion.
92
+ */
93
+ export type ResponseSink = Pick<http.ServerResponse, "writeHead" | "headersSent" | "destroy"> & NodeJS.WritableStream;
66
94
  /**
67
95
  * The lifecycle surface of the per-session local broker daemon (§3.2).
68
96
  * The LE starts one broker per session on `127.0.0.1:<ephemeral>` and
@@ -77,14 +105,72 @@ export interface ModelGatewayBroker {
77
105
  healthz(): Promise<boolean>;
78
106
  /** Handle one model-gateway request (the §3.2 route surface). */
79
107
  handle(req: BrokerRequest): Promise<BrokerResponse>;
108
+ /**
109
+ * PHASE-643 §3.0 — the streaming overload: a 200 `text/event-stream` response
110
+ * is proxied incrementally into `sink` and resolves {@link BrokerHandled};
111
+ * every other disposition (and a 200-SSE WITHOUT a sink) resolves a buffered
112
+ * {@link BrokerResponse}.
113
+ */
114
+ handle(req: BrokerRequest, sink: ResponseSink): Promise<BrokerResponse | BrokerHandled>;
80
115
  /** Tear down; zeroize the in-process upstream credential (§3.3). */
81
116
  stop(): Promise<void>;
82
117
  }
118
+ /**
119
+ * The C4 ChatGPT-subscription OAuth bundle (PHASE-626 §3/§5) — the token
120
+ * material copied out of Codex's `~/.codex/auth.json` `tokens` object plus
121
+ * `last_refresh`. Stored (as JSON) under the SEPARATE keychain account
122
+ * `vendor-oauth-openai`, deliberately distinct from the `vendor-key-openai`
123
+ * (C3) account. Structure pinned against Codex CLI 0.144.4 (§13 OQ-2):
124
+ * `{auth_mode, tokens:{id_token, access_token, refresh_token, account_id}, last_refresh}`.
125
+ */
126
+ export interface VendorOAuthBundle {
127
+ /** OAuth access token — `Authorization: Bearer <access_token>` upstream. */
128
+ access_token: string;
129
+ /** OAuth refresh token — the refresh-engine input; a SECOND secret (§5). */
130
+ refresh_token: string;
131
+ /** ChatGPT account id — the `ChatGPT-Account-Id` header (§13 OQ-1). */
132
+ account_id: string;
133
+ /**
134
+ * RFC3339 timestamp of the last successful refresh (advances on EVERY
135
+ * refresh success — §5 write-through merge rule). Gates the proactive-age
136
+ * threshold. NOT a secret.
137
+ */
138
+ last_refresh: string;
139
+ /** Optional id_token (carried through refreshes; not credential-bearing upstream). */
140
+ id_token?: string;
141
+ }
142
+ /**
143
+ * The credential class resolved by the broker's precedence engine (§5).
144
+ * The raw-string assumption of C1/C2/C3 does NOT extend to C4 — the bundle
145
+ * is a structured secret — so the resolved credential is DISCRIMINATED so
146
+ * every consumer (header builder, self-cred guard, fingerprint, upstream
147
+ * override) is class-aware (§5 "every consumer is class-aware").
148
+ *
149
+ * - `api_key` — C1 `sk-ant-api…` / C3 `sk-…` (raw string).
150
+ * - `subscription_token`— C2 `sk-ant-oat…` (raw string; Bearer-only + C2 beta).
151
+ * - `oauth_bundle` — C4 ChatGPT-subscription bundle (structured).
152
+ */
153
+ export type ResolvedCredential = {
154
+ readonly class: "api_key";
155
+ readonly material: string;
156
+ } | {
157
+ readonly class: "subscription_token";
158
+ readonly material: string;
159
+ } | {
160
+ readonly class: "oauth_bundle";
161
+ readonly material: VendorOAuthBundle;
162
+ };
83
163
  /**
84
164
  * The provider-scoped vendor-key storage API (§3.3) — [NEW], owner W1.
85
165
  * Reuses the existing keychain backend (OS keyring + file fallback).
86
166
  * Signatures only in W0; the implementation (keychain accounts
87
167
  * `vendor-key-<provider>`) lands in W1.
168
+ *
169
+ * PHASE-626 §5 widens this interface with the C4 OAuth-bundle methods +
170
+ * `clearVendorKey` (Stage-2 R1 Codex M-8 / R2 agy M-1). ALL apply the SAME
171
+ * keychain-only fail-closed gate as `get/setVendorKey`, factored through one
172
+ * shared gate helper so the two accounts (`vendor-key-*` / `vendor-oauth-*`)
173
+ * cannot drift.
88
174
  */
89
175
  export interface VendorKeyStore {
90
176
  /**
@@ -96,6 +182,25 @@ export interface VendorKeyStore {
96
182
  getVendorKey(provider: VendorProvider): Promise<string | null>;
97
183
  /** Persist the user's vendor key for `provider` (one-time setup step). */
98
184
  setVendorKey(provider: VendorProvider, key: string): Promise<void>;
185
+ /**
186
+ * Delete the user's C3-class vendor key for `provider` (Stage-2 R1 Codex
187
+ * M-8). Behind the SAME keychain-only gate as `setVendorKey` so `clear
188
+ * --class api-key` has a store-owned, gate-respecting deletion rather than
189
+ * a CLI-side keychain reach-around. Returns true iff a key was removed.
190
+ */
191
+ clearVendorKey(provider: VendorProvider): Promise<boolean>;
192
+ /**
193
+ * Read the C4 OAuth bundle for `provider` (§5). Same keychain-only gate as
194
+ * `getVendorKey`: `null` on the file backend (fail closed, no plaintext read).
195
+ */
196
+ getVendorOAuthBundle(provider: VendorProvider): Promise<VendorOAuthBundle | null>;
197
+ /**
198
+ * Persist the C4 OAuth bundle for `provider` as ONE atomic whole-bundle
199
+ * `setPassword` (§7 no torn tuple). Same keychain-only gate as `setVendorKey`.
200
+ */
201
+ setVendorOAuthBundle(provider: VendorProvider, bundle: VendorOAuthBundle): Promise<void>;
202
+ /** Delete the C4 OAuth bundle for `provider`. Returns true iff one was removed. */
203
+ clearVendorOAuthBundle(provider: VendorProvider): Promise<boolean>;
99
204
  }
100
205
  /**
101
206
  * The agent→broker token (§3.3): per-session, broker-minted, opaque,
@@ -109,17 +214,47 @@ export interface BrokerToken {
109
214
  readonly expiresAtMs: number;
110
215
  }
111
216
  /**
112
- * The result of a broker→vendor upstream call. The broker maps upstream
113
- * status to the agent-facing `BrokerStatus` (§3.2): an upstream 401/403
114
- * (bad/expired vendor key) 502 (NOT a pass-through), every other status
115
- * carries through.
217
+ * The result of a broker→vendor upstream call (PHASE-643 §3.1). The client
218
+ * resolves at HEADERS `status` + lowercased `headers` are known before the
219
+ * body is read and the body is then consumed EXACTLY ONCE: either incrementally
220
+ * as a stream (the 200-SSE forward, §3.3) OR fully-buffered as text (every other
221
+ * disposition, §3.2). Both consumers are abortable by `stop()` (LOCK #643-2). The
222
+ * broker maps upstream status to the agent-facing `BrokerStatus` (§3.2): an
223
+ * upstream 401/403 (bad/expired vendor key) → 502 (NOT a pass-through), every
224
+ * other status carries through.
225
+ *
226
+ * LOCK #643-1 — one-shot body: `bodyStream()` and `readText()` are mutually
227
+ * exclusive AND single-use; a second or mixed call THROWS. This eliminates the
228
+ * dual-model ambiguity (a buffered `.body` alongside a stream) the phase closes.
116
229
  */
117
- export interface UpstreamResponse {
118
- /** Raw upstream HTTP status. */
230
+ export interface UpstreamResult {
231
+ /** Raw upstream HTTP status (known at headers, before the body is read). */
119
232
  status: number;
120
- /** Parsed JSON body (model-bound). */
121
- body?: unknown;
233
+ /** Upstream response headers with LOWERCASED keys (e.g. `content-type`). */
234
+ headers: Readonly<Record<string, string>>;
235
+ /**
236
+ * Consume the body ONCE as a Node stream — the 200-SSE incremental-forward
237
+ * path (§3.3). Destroying the returned stream cancels the upstream fetch. XOR
238
+ * with {@link readText} (LOCK #643-1).
239
+ */
240
+ bodyStream(): Readable;
241
+ /**
242
+ * Consume the body ONCE as fully-buffered text — every non-streamed
243
+ * disposition (non-SSE 200, any non-200, a 401 drain; §3.2). Has its OWN
244
+ * full-read timeout AND composes the broker abort signal, so a stalled read
245
+ * cancels immediately. XOR with {@link bodyStream} (LOCK #643-1).
246
+ */
247
+ readText(): Promise<string>;
122
248
  }
249
+ /**
250
+ * @deprecated PHASE-643 renamed `UpstreamResponse` → {@link UpstreamResult}. The
251
+ * alias preserves the exported SYMBOL for type importers, but NOT the legacy
252
+ * `{status, body?}` SHAPE — implementors of {@link UpstreamClient.post} MUST
253
+ * migrate to the one-shot body surface (a TS implementor of the old shape fails
254
+ * to compile; a declared SemVer-major break — core 2.0 ships on the `@next`
255
+ * channel and every implementor is in-repo).
256
+ */
257
+ export type UpstreamResponse = UpstreamResult;
123
258
  /**
124
259
  * The broker→vendor upstream HTTP client (§3.3/§3.4). INJECTED so W1 tests
125
260
  * use a stub (no real network). The real fetch-backed client lands when
@@ -129,13 +264,26 @@ export interface UpstreamClient {
129
264
  /**
130
265
  * POST the canonical request upstream. `headers` already includes the
131
266
  * synthesized vendor/version headers AND the injected upstream
132
- * credential (the caller adds the credential header). Resolves with the
133
- * upstream status + body; rejects only on a transport/network error
134
- * (which the broker maps to its forward-error path).
267
+ * credential (the caller adds the credential header). Resolves at HEADERS
268
+ * with the upstream status + lowercased headers; the body is consumed ONCE
269
+ * via {@link UpstreamResult.bodyStream}/{@link UpstreamResult.readText}
270
+ * (PHASE-643 §3.1). Rejects only on a transport/network error (which the
271
+ * broker maps to its forward-error path).
272
+ *
273
+ * PHASE-626 §5 stop-lifecycle (Stage-2 R4 Codex #1): `signal` is the
274
+ * SECOND pinned-interface widening (alongside the new `VendorKeyStore`
275
+ * methods). The broker owns the outer credential-bearing frame, so it
276
+ * MUST be able to abort the in-flight model-forward on `stop()` drain-
277
+ * timeout — registering only `FetchUpstreamClient`'s PRIVATE timeout
278
+ * controller is unreachable from the broker. `FetchUpstreamClient`
279
+ * composes this broker signal with its internal timeout controller so
280
+ * either can abort the request. Optional so the W1 stub + older callers
281
+ * still satisfy the interface.
135
282
  */
136
283
  post(args: {
137
284
  url: string;
138
285
  headers: Readonly<Record<string, string>>;
139
286
  body: unknown;
140
- }): Promise<UpstreamResponse>;
287
+ signal?: AbortSignal;
288
+ }): Promise<UpstreamResult>;
141
289
  }
@@ -1,4 +1,4 @@
1
- import type { UpstreamClient, UpstreamResponse } from "./types";
1
+ import type { UpstreamClient, UpstreamResult } from "./types";
2
2
  /**
3
3
  * The production fetch-backed {@link UpstreamClient}. Constructed once per
4
4
  * broker session by the LE and injected into `LocalModelGatewayBroker`
@@ -16,5 +16,6 @@ export declare class FetchUpstreamClient implements UpstreamClient {
16
16
  url: string;
17
17
  headers: Readonly<Record<string, string>>;
18
18
  body: unknown;
19
- }): Promise<UpstreamResponse>;
19
+ signal?: AbortSignal;
20
+ }): Promise<UpstreamResult>;
20
21
  }
@@ -1,4 +1,4 @@
1
- import type { VendorKeyStore, VendorProvider } from "./types";
1
+ import type { VendorKeyStore, VendorOAuthBundle, VendorProvider } from "./types";
2
2
  /**
3
3
  * Keychain-backed implementation of {@link VendorKeyStore} (§3.3). Reads
4
4
  * the same keychain service the rest of CodeVibe uses (`getConfig()
@@ -51,4 +51,35 @@ export declare class KeychainVendorKeyStore implements VendorKeyStore {
51
51
  * per-session into broker memory.
52
52
  */
53
53
  setVendorKey(provider: VendorProvider, key: string): Promise<void>;
54
+ /**
55
+ * Delete the C3-class vendor key (Stage-2 R1 Codex M-8). Behind the SAME
56
+ * keychain-only gate as `setVendorKey`: on the file backend it FAILS CLOSED
57
+ * (throws, does NOT delete from `~/.codevibe`) rather than silently touching
58
+ * the plaintext store. Returns true iff a key was actually removed.
59
+ */
60
+ clearVendorKey(provider: VendorProvider): Promise<boolean>;
61
+ /**
62
+ * Read the C4 OAuth bundle (§5). KEYCHAIN-ONLY on the read side exactly like
63
+ * `getVendorKey`: on the file backend returns `null` (fail closed, no
64
+ * plaintext read) so a legacy / manually-placed bundle is never sourced.
65
+ * A corrupted (non-JSON) stored value is treated as absent (`null`) — the
66
+ * broker then fails closed rather than trusting a torn value.
67
+ */
68
+ getVendorOAuthBundle(provider: VendorProvider): Promise<VendorOAuthBundle | null>;
69
+ /**
70
+ * Persist the C4 OAuth bundle as ONE atomic whole-bundle `setPassword`
71
+ * (§7 — no torn tuple: access/refresh/account_id/last_refresh are written
72
+ * together or not at all). Same keychain-only gate as `setVendorKey`: FAILS
73
+ * CLOSED on the file backend. The token material is never logged.
74
+ */
75
+ setVendorOAuthBundle(provider: VendorProvider, bundle: VendorOAuthBundle): Promise<void>;
76
+ /**
77
+ * Delete the C4 OAuth bundle. Behind the SAME keychain-only gate: on the
78
+ * file backend it FAILS CLOSED (throws). Returns true iff one was removed.
79
+ * Clearing the bundle is a revocation — the broker must hold the §5 cross-
80
+ * process OAuth-account lock around this call so a concurrent refresh can
81
+ * not resurrect it (revocation wins); the store method itself is the
82
+ * gate-respecting primitive the locked caller uses.
83
+ */
84
+ clearVendorOAuthBundle(provider: VendorProvider): Promise<boolean>;
54
85
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The on-wire shape a companion emits to AppSync `createEvent`.
3
+ */
4
+ export interface EncryptedEmitPayload {
5
+ content: string;
6
+ metadata: any;
7
+ isEncrypted: boolean;
8
+ }
9
+ /**
10
+ * (#638) Decide how a mobile-visible event should be emitted.
11
+ *
12
+ * Returns the on-wire `{ content, metadata, isEncrypted }`:
13
+ * - encryption state UNRESOLVED (`encryptionResolved === false`) → returns `null`:
14
+ * the caller MUST drop the event (FAIL-CLOSED). Until resumeOrCreateSession has
15
+ * set the session's encryption state we do NOT yet know whether the session is
16
+ * encrypted, and `sessionKey` may still be a STALE prior-session key — so
17
+ * treat unknown as encrypted and never emit plaintext. (#638 F1: closes the
18
+ * plaintext-for-encrypted RACE where a hook event landing during the bootstrap
19
+ * await, or a transient/generic resume error, left `sessionIsEncrypted=false`
20
+ * and leaked cleartext.)
21
+ * - `sessionKey` present → AES-256-GCM ciphertext + `{ encrypted: <meta> }`
22
+ * (isEncrypted=true). A `null`/`undefined` `plainMetadata` passes through
23
+ * untouched (some hook events carry none) — matching the shape mobile expects.
24
+ * - CONFIRMED unencrypted/legacy session (resolved, no key AND `sessionIsEncrypted`
25
+ * false) → plaintext (isEncrypted=false).
26
+ * - session IS encrypted but keyless (`sessionIsEncrypted && !sessionKey`) →
27
+ * returns `null`: the caller MUST drop the event (FAIL-CLOSED). Emitting
28
+ * cleartext for an encrypted session is the confidentiality regression #638
29
+ * exists to close. Routing every emit site through this ONE chokepoint means a
30
+ * newly-added site cannot silently regress it.
31
+ *
32
+ * `encryptionResolved` defaults to `true` so existing 4-arg call sites (and every
33
+ * emit path whose session identity is already resolved) behave exactly as before;
34
+ * only a caller that can emit DURING session bootstrap needs to thread the flag.
35
+ *
36
+ * Pure: no logging, no I/O, no side effects. Callers own the drop log so the
37
+ * fail-closed decision is never silent.
38
+ */
39
+ export declare function encryptForEmit(sessionKey: string | null, sessionIsEncrypted: boolean, plaintext: string, plainMetadata: any, encryptionResolved?: boolean): EncryptedEmitPayload | null;
@@ -1 +1,4 @@
1
1
  export { CryptoService, cryptoService, CryptoError, ENCRYPTION_VERSION } from './crypto-service';
2
+ export { encryptForEmit } from './encrypt-for-emit';
3
+ export type { EncryptedEmitPayload } from './encrypt-for-emit';
4
+ export { E1_PROMPT_ID_DOMAIN, deriveOpenPromptId, mintOwnerToken, } from './open-prompt-id';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * E1 "missed-prompt recovery" — the producer-side self-certifying promptId
3
+ * commitment (PHASE-E1-MISSED-PROMPT-RECOVERY-DESIGN.md §3.1 / §4).
4
+ *
5
+ * A producer (a plugin, or core's own planner-offer path) mints a secret
6
+ * `ownerToken` per raise and emits `promptId = deriveOpenPromptId(ownerToken)`.
7
+ * The backend's `classifyRaise` re-derives and admits the openPrompts row ONLY
8
+ * when `promptId == derive(ownerToken)` (WRITE_ROW). Because SHA-256 is
9
+ * preimage-resistant, an attacker who knows a victim's promptId cannot produce a
10
+ * token that derives to it, so ownership survives the token never being stored
11
+ * server-side (it is NEVER projected back to clients).
12
+ *
13
+ * THIS IS A CROSS-PRODUCER BYTE CONTRACT. This file is the byte-for-byte port of
14
+ * the backend `lambda/shared/e1-open-prompts.ts` derive. core / codex / claude /
15
+ * agy MUST all reproduce the SAME bytes: same domain string, the SINGLE `\0`
16
+ * (0x00) separator, UTF-8 encoding of the token, SHA-256, first 16 bytes, and the
17
+ * v4 UUID version/variant shaping. A single divergent byte yields a different
18
+ * promptId → the backend REJECTs the raise → a HIDDEN prompt (under-nag). The
19
+ * pinned golden vectors in `__tests__/open-prompt-id.test.ts` (identical to the
20
+ * backend's `cdk/test/e1-open-prompts.test.ts`) lock this. Do NOT alter the
21
+ * domain, drop/duplicate the separator, or re-encode.
22
+ */
23
+ /** Pinned domain separator for the promptId commitment (never change post-ship). */
24
+ export declare const E1_PROMPT_ID_DOMAIN = "codevibe.e1.openprompt.promptid.v1";
25
+ /**
26
+ * `derive(ownerToken) = uuidFormat( SHA-256(E1_DOMAIN ‖ 0x00 ‖ ownerToken)[:16] )`
27
+ * A BARE UUID — NO `synth-` prefix. Preimage-resistant.
28
+ */
29
+ export declare function deriveOpenPromptId(ownerToken: string): string;
30
+ /**
31
+ * Mint a fresh 256-bit secret `ownerToken` for one raise. Hex-encoded so it is a
32
+ * safe plaintext GraphQL string. Never persisted server-side; the producer
33
+ * stashes it in its durable PromptRaiseRecord so a retirement/resume re-raise can
34
+ * re-commit the SAME promptId.
35
+ */
36
+ export declare function mintOwnerToken(): string;
@@ -0,0 +1,2 @@
1
+ export { installDaemonProcessGuards, isNetworkClass, } from './process-guards';
2
+ export type { DaemonGuardLogger, DaemonProcessGuardOptions, } from './process-guards';