@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.
- package/README.md +20 -23
- package/dist/server.js +21 -21
- package/hooks/common.sh +506 -19
- package/{bin/codevibe-codex → libexec/companion-launcher} +37 -76
- package/node_modules/@quantiya/codevibe-core/README.md +7 -5
- package/node_modules/@quantiya/codevibe-core/dist/agy-cli-contract.d.ts +14 -0
- package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +229 -61
- package/node_modules/@quantiya/codevibe-core/dist/appsync/event-throttle.d.ts +33 -0
- package/node_modules/@quantiya/codevibe-core/dist/appsync/index.d.ts +3 -2
- package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +6 -2
- package/node_modules/@quantiya/codevibe-core/dist/auth/auth-telemetry.d.ts +26 -0
- package/node_modules/@quantiya/codevibe-core/dist/auth/keychain-cli.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/auth/vendor-key-cli.d.ts +49 -0
- package/node_modules/@quantiya/codevibe-core/dist/companion-mode/index.d.ts +50 -22
- package/node_modules/@quantiya/codevibe-core/dist/companion-mode/persist-preference.d.ts +1 -5
- package/node_modules/@quantiya/codevibe-core/dist/companion-mode/resolve-agent.d.ts +5 -4
- package/node_modules/@quantiya/codevibe-core/dist/config/config.d.ts +0 -5
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/__tests__/oauth-refresh.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/__tests__/upstream-result-helpers.d.ts +21 -0
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/broker.d.ts +196 -12
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/chatgpt-config.d.ts +40 -0
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/index.d.ts +4 -1
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/oauth-account-lock.d.ts +150 -0
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/oauth-refresh.d.ts +72 -0
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/types.d.ts +165 -17
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/upstream-client.d.ts +3 -2
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/vendor-key-store.d.ts +32 -1
- package/node_modules/@quantiya/codevibe-core/dist/crypto/__tests__/encrypt-for-emit.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/crypto/__tests__/open-prompt-id.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/crypto/encrypt-for-emit.d.ts +39 -0
- package/node_modules/@quantiya/codevibe-core/dist/crypto/index.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/dist/crypto/open-prompt-id.d.ts +36 -0
- package/node_modules/@quantiya/codevibe-core/dist/daemon/__tests__/process-guards.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/daemon/index.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/daemon/process-guards.d.ts +38 -0
- package/node_modules/@quantiya/codevibe-core/dist/e1/__tests__/prompt-raise.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/e1/index.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/e1/prompt-raise.d.ts +65 -0
- package/node_modules/@quantiya/codevibe-core/dist/index.d.ts +20 -2
- package/node_modules/@quantiya/codevibe-core/dist/index.js +4543 -288
- package/node_modules/@quantiya/codevibe-core/dist/keychain/__tests__/keychain-manager.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/keychain/__tests__/keychain-migrate.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-backend.d.ts +105 -0
- package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.d.ts +40 -5
- package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-migrate.d.ts +46 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/anchored-fs.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/bounded-directory.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/bounded-output.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/durable-directory.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/hosted-class-a-sink.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/process-identity.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/process-tree.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/publication-authority-capability.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/reviewer-rationale-flag.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/snapshot-merge.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/workspace-authority-fixture.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/workspace-authority.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/workspace-materializer.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-disposable-repo.d.ts +23 -6
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-resolve.d.ts +16 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/anchored-fs.d.ts +243 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/bounded-directory.d.ts +64 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/bounded-helper.d.ts +22 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/bounded-output.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/class-a-emit.d.ts +13 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/class-a-sign.d.ts +15 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/durable-directory.d.ts +25 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/durable-store.d.ts +217 -25
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/group-decision-outcome.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/hosted-class-a-sink.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/implementor-argv.d.ts +89 -7
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/index.d.ts +3 -2
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/local-executor-impl.d.ts +177 -76
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/merge-conflict-resolve.d.ts +19 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/process-identity.d.ts +16 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/process-tree.d.ts +123 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/revert-reconcile.d.ts +16 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/revert-runner.d.ts +14 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/reviewer-rationale-flag.d.ts +10 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/snapshot-merge.d.ts +124 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/task-group-types.d.ts +7 -6
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/team-execution-flag.d.ts +2 -2
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/track-registry.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/types.d.ts +34 -2
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/build.d.ts +5 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/deploy-preflight.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/diff-sanity.d.ts +12 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/hostile-grep.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/lint.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/shell-runner.d.ts +5 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/source-traceability.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/tests.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/typecheck.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-runner.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/workspace-authority.d.ts +45 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/workspace-materializer.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/workspace-shadow.d.ts +378 -85
- package/node_modules/@quantiya/codevibe-core/dist/local-model/manager.d.ts +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-model/ollama.d.ts +40 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/detect-agents.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/detect-agents.d.ts +10 -30
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/index.d.ts +1 -2
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/a1a-planner-offers.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/a6-cli-surface.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-attachment-journal.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-attachments-dir-race.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-multi-mention-panel.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-panel-attachments.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/advisory-quota-stdout-result.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/agent-turn-context-batch.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/bounded-shutdown.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/brainstorm-quorum-wiring.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/brainstorm-quorum.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/cli-team-session-key.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/command-intent.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-compaction.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-items-hosted-sync.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-items-wiring.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/context-items.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/cp8-full-team-events.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/cp8-team-decomposed-zk.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/explicit-tty-exit.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/mention-suggest.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/planner-offer-e1.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/route-browse-summarize-recovery.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/__tests__/workspace-shutdown.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/advisory-attachment-journal.d.ts +165 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/attachments.d.ts +53 -8
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/bounded-shutdown.d.ts +22 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/brainstorm-quorum.d.ts +118 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.d.ts +97 -70
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +51847 -33465
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/command-intent.d.ts +56 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/InputBar.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/OrchestrationApp.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-compaction.d.ts +264 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-items-hosted-sync.d.ts +19 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-items.d.ts +408 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-store.d.ts +162 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/declared-test-runner.d.ts +21 -2
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/emit-shell-event.d.ts +41 -13
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/explicit-tty-exit.d.ts +17 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/gate-decision-submit.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/gate-prompts.d.ts +78 -3
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/index.d.ts +309 -37
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/mention-suggest.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/mode-selection.d.ts +4 -22
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/planner-offer-e1.d.ts +97 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/quorum-loop.d.ts +603 -77
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/reducer.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-progress.d.ts +17 -4
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/team-decompose.d.ts +47 -29
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/types.d.ts +103 -6
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/workspace-shutdown.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/planner/index.d.ts +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/planner/local-advisory.d.ts +12 -0
- package/node_modules/@quantiya/codevibe-core/dist/planner/local-gemma.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/planner/types.d.ts +7 -0
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/index.d.ts +0 -2
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/output-parser.d.ts +19 -0
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/provider.d.ts +9 -6
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/antigravity.d.ts +2 -3
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/registry.d.ts +9 -4
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/token-usage.d.ts +10 -0
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/types.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/verdict-classifier.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/device-registration-lease.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/pending-session-create.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/session-rekey-fingerprint.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/session-resume-key-reconciliation.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/__tests__/session-resume-pending-first.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/device-key-watcher.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/index.d.ts +4 -2
- package/node_modules/@quantiya/codevibe-core/dist/session/pending-session-create.d.ts +61 -0
- package/node_modules/@quantiya/codevibe-core/dist/session/register-device-key.d.ts +11 -1
- package/node_modules/@quantiya/codevibe-core/dist/session/session-rekey.d.ts +8 -8
- package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.d.ts +21 -1
- package/node_modules/@quantiya/codevibe-core/dist/substrate/command-runner.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate/docker.d.ts +14 -32
- package/node_modules/@quantiya/codevibe-core/dist/substrate/index.d.ts +0 -1
- package/node_modules/@quantiya/codevibe-core/dist/substrate/sandbox-exec.d.ts +17 -16
- package/node_modules/@quantiya/codevibe-core/dist/substrate/types.d.ts +39 -5
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/__tests__/reviewer-credential-preflight.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/apikey-bootstrap.d.ts +24 -1
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/engage-substrate.d.ts +20 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/index.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/reviewer-credential-preflight.d.ts +50 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/sanitized-env.d.ts +5 -5
- package/node_modules/@quantiya/codevibe-core/dist/test-publication-authority-setup.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/consolidator.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/digest.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/flock-rollout-lock.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/ledger.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/outbox.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/replay-cursor.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/session-map.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/__tests__/socket-rollout-lock.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/atomic-file.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/consolidator.d.ts +253 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/digest.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/flock-rollout-lock.d.ts +68 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/index.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/ledger.d.ts +274 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/outbox.d.ts +60 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/replay-cursor.d.ts +190 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/session-map.d.ts +133 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/socket-rollout-lock.d.ts +57 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/types.d.ts +368 -0
- package/node_modules/@quantiya/codevibe-core/dist/types/encryption.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/dist/types/events.d.ts +29 -4
- package/node_modules/@quantiya/codevibe-core/dist/types/session.d.ts +32 -2
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/README.md +207 -163
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/index.d.ts +15 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/index.js +31 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/max.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/max.js +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/md5.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/native.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/native.js +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/nil.js +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/package.json +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/parse.js +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/regex.js +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/rng.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/sha1.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/stringify.js +39 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/types.d.ts +21 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/types.js +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1.js +87 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v3.js +14 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v35.js +44 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v4.js +29 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v5.js +14 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6.js +22 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/v7.js +69 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/validate.js +7 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/version.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs/version.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/index.js +31 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/max.js +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/native.js +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/package.json +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/types.js +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v35.js +44 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6.js +22 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/cjs-browser/version.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/bin/uuid +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/index.d.ts +15 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/{esm-node → esm}/index.js +9 -4
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/max.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/max.js +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/md5.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/md5.js +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/native.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/native.js +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/nil.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/nil.js +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/parse.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/parse.js +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/regex.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/regex.js +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/rng.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/rng.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/sha1.js +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/stringify.js +35 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/types.d.ts +21 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/types.js +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1.js +83 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v3.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v3.js +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v35.d.ts +7 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v35.js +39 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v4.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v4.js +27 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v5.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v5.js +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6.js +20 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v7.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/v7.js +65 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/validate.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/validate.js +5 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/version.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm/version.js +8 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/index.js +9 -4
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/max.js +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/md5.js +113 -193
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/native.js +1 -3
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/nil.js +1 -1
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/parse.js +6 -32
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/regex.js +1 -1
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/rng.js +6 -13
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/sha1.js +62 -88
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/stringify.js +27 -25
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/types.js +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1.js +78 -90
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v3.js +8 -3
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v35.js +30 -57
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v4.js +21 -23
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v5.js +8 -3
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6.js +20 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v7.js +65 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/validate.js +2 -4
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/version.js +5 -8
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/package.json +73 -76
- package/node_modules/@quantiya/codevibe-core/package.json +7 -6
- package/node_modules/fs-ext/.eslintrc +53 -0
- package/node_modules/fs-ext/.github/workflows/node.js.yml +31 -0
- package/node_modules/fs-ext/.travis.yml +25 -0
- package/node_modules/fs-ext/LICENSE.txt +18 -0
- package/node_modules/fs-ext/README.md +130 -0
- package/node_modules/fs-ext/appveyor.yml +20 -0
- package/node_modules/fs-ext/binding.gyp +11 -0
- package/node_modules/fs-ext/build/Makefile +347 -0
- package/node_modules/fs-ext/build/Release/.deps/Release/fs_ext.node.d +1 -0
- package/node_modules/fs-ext/build/Release/.deps/Release/obj.target/fs_ext/fs-ext.o.d +165 -0
- package/node_modules/fs-ext/build/Release/fs_ext.node +0 -0
- package/node_modules/fs-ext/build/Release/obj.target/fs_ext/fs-ext.o +0 -0
- package/node_modules/fs-ext/build/binding.Makefile +6 -0
- package/node_modules/fs-ext/build/config.gypi +504 -0
- package/node_modules/fs-ext/build/fs_ext.target.mk +183 -0
- package/node_modules/fs-ext/build/gyp-mac-tool +768 -0
- package/node_modules/fs-ext/example.js +57 -0
- package/node_modules/fs-ext/fs-ext.cc +622 -0
- package/node_modules/fs-ext/fs-ext.js +131 -0
- package/node_modules/fs-ext/package.json +42 -0
- package/node_modules/fs-ext/run_tests.js +17 -0
- package/node_modules/fs-ext/tests/test-fs-fcntl.js +350 -0
- package/node_modules/fs-ext/tests/test-fs-flock.js +452 -0
- package/node_modules/fs-ext/tests/test-fs-flock_stress.js +239 -0
- package/node_modules/fs-ext/tests/test-fs-seek.js +607 -0
- package/node_modules/fs-ext/tests/test-fs-seek_stress.js +313 -0
- package/node_modules/fs-ext/tests/test-fs-statvfs.js +15 -0
- package/node_modules/fs-ext/tests/worker-test.js +56 -0
- package/node_modules/fs-ext/wscript +15 -0
- package/node_modules/nan/.github/workflows/ci.yml +46 -0
- package/node_modules/nan/.pre-commit-config.yaml +8 -0
- package/node_modules/nan/CHANGELOG.md +605 -0
- package/node_modules/nan/CMakeLists.txt +138 -0
- package/node_modules/nan/LICENSE.md +9 -0
- package/node_modules/nan/README.md +457 -0
- package/node_modules/nan/doc/asyncworker.md +146 -0
- package/node_modules/nan/doc/buffers.md +54 -0
- package/node_modules/nan/doc/callback.md +76 -0
- package/node_modules/nan/doc/converters.md +41 -0
- package/node_modules/nan/doc/errors.md +226 -0
- package/node_modules/nan/doc/json.md +62 -0
- package/node_modules/nan/doc/maybe_types.md +583 -0
- package/node_modules/nan/doc/methods.md +689 -0
- package/node_modules/nan/doc/new.md +147 -0
- package/node_modules/nan/doc/node_misc.md +123 -0
- package/node_modules/nan/doc/object_wrappers.md +263 -0
- package/node_modules/nan/doc/persistent.md +296 -0
- package/node_modules/nan/doc/scopes.md +73 -0
- package/node_modules/nan/doc/script.md +58 -0
- package/node_modules/nan/doc/string_bytes.md +81 -0
- package/node_modules/nan/doc/v8_internals.md +211 -0
- package/node_modules/nan/doc/v8_misc.md +85 -0
- package/node_modules/nan/include_dirs.js +1 -0
- package/node_modules/nan/nan.h +3202 -0
- package/node_modules/nan/nan_callbacks.h +141 -0
- package/node_modules/nan/nan_callbacks_12_inl.h +730 -0
- package/node_modules/nan/nan_callbacks_pre_12_inl.h +528 -0
- package/node_modules/nan/nan_converters.h +72 -0
- package/node_modules/nan/nan_converters_43_inl.h +68 -0
- package/node_modules/nan/nan_converters_pre_43_inl.h +42 -0
- package/node_modules/nan/nan_define_own_property_helper.h +29 -0
- package/node_modules/nan/nan_implementation_12_inl.h +446 -0
- package/node_modules/nan/nan_implementation_pre_12_inl.h +263 -0
- package/node_modules/nan/nan_json.h +166 -0
- package/node_modules/nan/nan_maybe_43_inl.h +360 -0
- package/node_modules/nan/nan_maybe_pre_43_inl.h +268 -0
- package/node_modules/nan/nan_new.h +340 -0
- package/node_modules/nan/nan_object_wrap.h +156 -0
- package/node_modules/nan/nan_persistent_12_inl.h +132 -0
- package/node_modules/nan/nan_persistent_pre_12_inl.h +242 -0
- package/node_modules/nan/nan_private.h +73 -0
- package/node_modules/nan/nan_scriptorigin.h +97 -0
- package/node_modules/nan/nan_string_bytes.h +305 -0
- package/node_modules/nan/nan_typedarray_contents.h +96 -0
- package/node_modules/nan/nan_weak.h +453 -0
- package/node_modules/nan/package.json +38 -0
- package/node_modules/nan/tools/1to2.js +412 -0
- package/node_modules/nan/tools/README.md +14 -0
- package/node_modules/nan/tools/package.json +19 -0
- package/package.json +5 -5
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/orchestration-cli.d.ts +0 -12
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-bootstrap.d.ts +0 -146
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-failure-recourse.d.ts +0 -23
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-save.d.ts +0 -47
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-seat-picker.d.ts +0 -72
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-telemetry.d.ts +0 -54
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-test-agents.d.ts +0 -108
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-types.d.ts +0 -146
- package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-wizard.d.ts +0 -57
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cohort-flag.d.ts +0 -16
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/gemini.d.ts +0 -109
- package/node_modules/@quantiya/codevibe-core/dist/substrate/git-proxy.d.ts +0 -35
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CHANGELOG.md +0 -274
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CONTRIBUTING.md +0 -18
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/bin/uuid +0 -2
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/md5.js +0 -13
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/native.js +0 -4
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/nil.js +0 -1
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/parse.js +0 -35
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/regex.js +0 -1
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/rng.js +0 -12
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/sha1.js +0 -13
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/stringify.js +0 -33
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v1.js +0 -95
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v3.js +0 -4
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v35.js +0 -66
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v4.js +0 -29
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v5.js +0 -4
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/validate.js +0 -7
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/version.js +0 -11
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/index.js +0 -79
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5-browser.js +0 -223
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5.js +0 -23
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native-browser.js +0 -11
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native.js +0 -15
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/nil.js +0 -8
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/parse.js +0 -45
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/regex.js +0 -8
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng-browser.js +0 -25
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng.js +0 -24
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1-browser.js +0 -104
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1.js +0 -23
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/stringify.js +0 -44
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/uuid-bin.js +0 -85
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v1.js +0 -107
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v3.js +0 -16
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v35.js +0 -80
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v4.js +0 -43
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v5.js +0 -16
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/validate.js +0 -17
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/version.js +0 -21
- package/node_modules/@quantiya/codevibe-core/node_modules/uuid/wrapper.mjs +0 -10
- /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
- /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
- /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
- /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
- /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-save.test.d.ts → auth/__tests__/keychain-cli.test.d.ts} +0 -0
- /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
- /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
- /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
- /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
- /package/node_modules/@quantiya/codevibe-core/dist/{orchestration/__tests__/setup-wizard.test.d.ts → credential-broker/__tests__/broker-c4.test.d.ts} +0 -0
- /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
- /package/node_modules/@quantiya/codevibe-core/dist/{reviewer/providers/__tests__/gemini.test.d.ts → credential-broker/__tests__/chatgpt-config.test.d.ts} +0 -0
- /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
package/node_modules/@quantiya/codevibe-core/dist/keychain/__tests__/keychain-manager.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/node_modules/@quantiya/codevibe-core/dist/keychain/__tests__/keychain-migrate.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
type KeytarApi = {
|
|
2
|
+
getPassword(service: string, account: string): Promise<string | null>;
|
|
3
|
+
setPassword(service: string, account: string, password: string): Promise<void>;
|
|
4
|
+
deletePassword(service: string, account: string): Promise<boolean>;
|
|
5
|
+
};
|
|
1
6
|
type BackendKind = 'keytar' | 'file';
|
|
2
7
|
/**
|
|
3
8
|
* Is the OS-native keyring service STRUCTURALLY UNREACHABLE in THIS process?
|
|
@@ -28,6 +33,10 @@ type BackendKind = 'keytar' | 'file';
|
|
|
28
33
|
* fallback at all.
|
|
29
34
|
*/
|
|
30
35
|
export declare function osKeyringStructurallyAbsent(): boolean;
|
|
36
|
+
/** Best-effort: remember that the OS keyring worked here (Linux only — only the
|
|
37
|
+
* Linux headless path ever reads it). Never throws. Exported so #642's
|
|
38
|
+
* migration can record it after moving credentials onto the keyring. */
|
|
39
|
+
export declare function markKeytarUsed(): void;
|
|
31
40
|
/**
|
|
32
41
|
* Do durable file-backend credentials already exist on this machine? True when
|
|
33
42
|
* ~/.codevibe holds any `<service>.json` credential file (written by a prior
|
|
@@ -65,6 +74,23 @@ export declare function wasAutoFileFallback(): boolean;
|
|
|
65
74
|
* outcome) for tests and diagnostics without triggering initialization.
|
|
66
75
|
*/
|
|
67
76
|
export declare function peekActiveBackendKind(): BackendKind | null;
|
|
77
|
+
/**
|
|
78
|
+
* Run `fn` while holding the per-service FILE-MUTATION lock — the single
|
|
79
|
+
* cross-process gate that serializes EVERY mutation of `~/.codevibe/<service>.json`
|
|
80
|
+
* (setPassword / deletePassword) against a concurrent `codevibe keychain migrate`.
|
|
81
|
+
* The migration CLI holds this SAME lock across the whole migration, so the file
|
|
82
|
+
* store cannot change mid-migration (the lock IS the freeze — it lets the migration
|
|
83
|
+
* do a single stable read instead of freeze-then-re-migrate).
|
|
84
|
+
*
|
|
85
|
+
* FAIL CLOSED: if the lock cannot be acquired (contention timeout / unwritable lock
|
|
86
|
+
* root) we THROW `KeychainBackendUnavailableError` and NEVER run `fn` unlocked — an
|
|
87
|
+
* unserialized read-modify-write could clobber a concurrent migration's
|
|
88
|
+
* tombstone/retire and re-fork the identity (the fork-incident harm). Reuses the
|
|
89
|
+
* portable, native-addon-free mkdir-lock from the credential broker (§626 §5 /
|
|
90
|
+
* AMEND-1) under a DISTINCT lockdir (`keychain-file-<service>`) from the
|
|
91
|
+
* per-provider vendor-key OAuth locks.
|
|
92
|
+
*/
|
|
93
|
+
export declare function withFileStoreLock<T>(service: string, fn: () => Promise<T> | T): Promise<T>;
|
|
68
94
|
/**
|
|
69
95
|
* The active backend kind (`'keytar'` = OS-native keyring, `'file'` = the
|
|
70
96
|
* plaintext `~/.codevibe/<service>.json` fallback). Initializes the backend if
|
|
@@ -79,7 +105,86 @@ export declare function peekActiveBackendKind(): BackendKind | null;
|
|
|
79
105
|
* backend could be initialized (keytar failed to load AND no file opt-in).
|
|
80
106
|
*/
|
|
81
107
|
export declare function getActiveBackendKind(): BackendKind;
|
|
108
|
+
/**
|
|
109
|
+
* LOCK-FREE read (F5). Identical to `getPassword` — a read never needs the file lock
|
|
110
|
+
* (atomic writes make a torn read impossible) — but named explicitly so a transaction
|
|
111
|
+
* already holding `withFileStoreLock` (device get-or-create) can read without any risk
|
|
112
|
+
* of re-entering the lock.
|
|
113
|
+
*/
|
|
114
|
+
export declare function getPasswordUnlocked(service: string, account: string): Promise<string | null>;
|
|
82
115
|
export declare function getPassword(service: string, account: string): Promise<string | null>;
|
|
116
|
+
/**
|
|
117
|
+
* LOCK-FREE write (F5) — the file-mutation body of `setPassword` WITHOUT acquiring
|
|
118
|
+
* `withFileStoreLock`. It STILL runs the fail-closed tombstone guard + unreadable-store
|
|
119
|
+
* guard + atomic write. For use ONLY by a caller that already holds the file lock (the
|
|
120
|
+
* device get-or-create transaction); acquiring the lock again would self-deadlock.
|
|
121
|
+
*/
|
|
122
|
+
export declare function setPasswordUnlocked(service: string, account: string, password: string): Promise<void>;
|
|
83
123
|
export declare function setPassword(service: string, account: string, password: string): Promise<void>;
|
|
84
124
|
export declare function deletePassword(service: string, account: string): Promise<boolean>;
|
|
125
|
+
/** Absolute path of the file-backend credential store for `service`. */
|
|
126
|
+
export declare function fileStorePathForService(service: string): string;
|
|
127
|
+
/**
|
|
128
|
+
* A DISCRIMINATED read of the file store — migration must distinguish "no file"
|
|
129
|
+
* (nothing to do) from "exists but I can't read it right now" (EACCES / transient
|
|
130
|
+
* I/O / mid-write) from "readable but corrupt JSON" from "readable credential map".
|
|
131
|
+
* Retiring a file we merely FAILED to read would lose a valid identity, so the
|
|
132
|
+
* migration never retires on `unreadable`. `raw` is the exact bytes, for a
|
|
133
|
+
* byte-exact concurrency compare (parsed-object equality would miss whitespace /
|
|
134
|
+
* duplicate-key rewrites).
|
|
135
|
+
*/
|
|
136
|
+
export type FileStoreRead = {
|
|
137
|
+
kind: 'absent';
|
|
138
|
+
} | {
|
|
139
|
+
kind: 'unreadable';
|
|
140
|
+
error: string;
|
|
141
|
+
} | {
|
|
142
|
+
kind: 'corrupt';
|
|
143
|
+
raw: string;
|
|
144
|
+
} | {
|
|
145
|
+
kind: 'store';
|
|
146
|
+
data: Record<string, string>;
|
|
147
|
+
raw: string;
|
|
148
|
+
};
|
|
149
|
+
export declare function readFileStoreState(service: string): FileStoreRead;
|
|
150
|
+
/**
|
|
151
|
+
* Rename the file store out of the way (`…/<service>.json.migrated-backup-<ts>`)
|
|
152
|
+
* so the NEXT process selects the OS keyring (fileStoreHasCredentials() → false).
|
|
153
|
+
* Reversible — the backup is kept, 0600. Returns the backup path, or null if
|
|
154
|
+
* there was no file store to retire. Only ever called AFTER the migration has
|
|
155
|
+
* written + verified every credential into the keyring (never loses the identity).
|
|
156
|
+
*
|
|
157
|
+
* R4-4: NO fail-open `existsSync` pre-probe (an EACCES there returned null → the CLI
|
|
158
|
+
* would exit 0 while the plaintext file remained). Attempt the atomic rename directly:
|
|
159
|
+
* an ENOENT/ENOTDIR means there was genuinely nothing to retire → null; ANY other
|
|
160
|
+
* error (EACCES/EIO/…) PROPAGATES so the caller surfaces the failure (non-zero exit /
|
|
161
|
+
* verify_failed) instead of silently leaving the file behind.
|
|
162
|
+
*/
|
|
163
|
+
export declare function retireFileStore(service: string): string | null;
|
|
164
|
+
/**
|
|
165
|
+
* Load the keytar native module directly (bypassing the pinned backend), or null
|
|
166
|
+
* if it cannot load. Used ONLY by the migration command to write into the OS
|
|
167
|
+
* keyring from a process otherwise committed to the file backend. Same indirect
|
|
168
|
+
* `eval('require')` as initBackends so esbuild does not resolve keytar statically.
|
|
169
|
+
*/
|
|
170
|
+
export declare function loadKeytarModule(): KeytarApi | null;
|
|
171
|
+
/** True iff this machine has migrated `service`'s credentials onto the OS keyring.
|
|
172
|
+
* Routed through `pathPresence` (F1); a probe 'error' reads as false here (the
|
|
173
|
+
* fail-closed callers use `migratedTombstoneStatus`, not this boolean). */
|
|
174
|
+
export declare function migratedTombstoneExists(service: string): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Tri-state probe of the per-service migration tombstone via `pathPresence` (F1) —
|
|
177
|
+
* `fs.statSync`, NOT `fs.existsSync` (which fails OPEN on EACCES/EIO). DISTINGUISHES a
|
|
178
|
+
* genuine probe error from a clean absence so `initBackends` / the in-lock mutation
|
|
179
|
+
* guard / the CLI resume gate all fail CLOSED on 'error' rather than treating an
|
|
180
|
+
* unreadable ~/.codevibe as "not migrated" (which could re-fork the device identity).
|
|
181
|
+
*/
|
|
182
|
+
export declare function migratedTombstoneStatus(service: string): 'present' | 'absent' | 'error';
|
|
183
|
+
/**
|
|
184
|
+
* Atomically create the per-service migration tombstone (temp-write + fsync +
|
|
185
|
+
* rename + best-effort dir fsync, 0600). Idempotent. Throws on failure — the
|
|
186
|
+
* migration MUST know the tombstone is durable before it retires the file (the
|
|
187
|
+
* tombstone is what makes stragglers fail closed).
|
|
188
|
+
*/
|
|
189
|
+
export declare function writeMigratedTombstone(service: string): void;
|
|
85
190
|
export {};
|
|
@@ -5,6 +5,7 @@ import { DeviceIdentity, TokenData, EncryptedSessionKey } from '../types';
|
|
|
5
5
|
export declare class KeychainError extends Error {
|
|
6
6
|
constructor(message: string);
|
|
7
7
|
}
|
|
8
|
+
export declare const DEVICE_IDENTITY_ACCOUNT = "device-identity";
|
|
8
9
|
/**
|
|
9
10
|
* Manages device identity and OAuth tokens using native keychain
|
|
10
11
|
*/
|
|
@@ -36,7 +37,18 @@ export declare class KeychainManager {
|
|
|
36
37
|
*/
|
|
37
38
|
setDeviceIdentity(identity: DeviceIdentity): Promise<void>;
|
|
38
39
|
/**
|
|
39
|
-
* Get or create device identity
|
|
40
|
+
* Get or create device identity — ATOMIC across processes (#642 F5).
|
|
41
|
+
*
|
|
42
|
+
* A plain read-then-create is a cross-process race: two fresh processes both read
|
|
43
|
+
* "no identity" outside any lock, generate distinct identities A and B, then each
|
|
44
|
+
* writes under its own lock — last-writer-wins, and the loser keeps using an
|
|
45
|
+
* identity that is NOT the one persisted (forking E2E state). The WHOLE
|
|
46
|
+
* read→validate→generate→write transaction is therefore serialized under the
|
|
47
|
+
* per-service file lock (`withFileStoreLock`), using the LOCK-FREE backend helpers
|
|
48
|
+
* (`getPasswordUnlocked`/`setPasswordUnlocked`) so the transaction never re-enters
|
|
49
|
+
* the lock and self-deadlocks. The lock serializes regardless of backend (keytar or
|
|
50
|
+
* file). The lock is taken ONLY on the slow path (no cached/persisted identity yet),
|
|
51
|
+
* so steady-state reads stay lock-free.
|
|
40
52
|
*/
|
|
41
53
|
getOrCreateDeviceIdentity(): Promise<DeviceIdentity>;
|
|
42
54
|
/**
|
|
@@ -87,9 +99,28 @@ export declare class KeychainManager {
|
|
|
87
99
|
*/
|
|
88
100
|
isTokenExpired(tokens: TokenData): boolean;
|
|
89
101
|
/**
|
|
90
|
-
* Get session key for a session
|
|
102
|
+
* Get the session key for a session.
|
|
103
|
+
*
|
|
104
|
+
* When `encryptedKeys` are provided they are the AUTHORITATIVE source and the
|
|
105
|
+
* cache is trusted ONLY if its stored generation matches `sessionKeyGen`
|
|
106
|
+
* (tool-event consolidation §4.5 / Stage-2 Codex H2 / #230 Finding 1). A
|
|
107
|
+
* generation mismatch — the session was RECREATED under a new key (K2) while
|
|
108
|
+
* the cache still holds the prior generation's key (K1) — forces a fresh
|
|
109
|
+
* derive from `encryptedKeys`, so `getSessionKey` can never hand back a stale
|
|
110
|
+
* K1 for a K2 session. On a cache hit at the matching generation the cached
|
|
111
|
+
* key is returned (a re-derive per event would be a needless ECDH cost, and
|
|
112
|
+
* the ONLY writers of a generation's entry are this method's own derive and
|
|
113
|
+
* `cacheSessionKey`-with-the-derived-key, so the entry is always authoritative
|
|
114
|
+
* for its generation).
|
|
115
|
+
*
|
|
116
|
+
* When `encryptedKeys` are NOT provided (cache-only callers — e.g. the
|
|
117
|
+
* orchestration QuorumLoop's `getSessionKey(sessionId)`), the cached key is
|
|
118
|
+
* returned as before. An explicitly supplied empty authoritative envelope is
|
|
119
|
+
* different: a generation-bearing row is non-decryptable and may never fall
|
|
120
|
+
* through to a stale cache. Empty-envelope fallback is permitted only for a
|
|
121
|
+
* genuinely generation-absent legacy row/cache.
|
|
91
122
|
*/
|
|
92
|
-
getSessionKey(sessionId: string, encryptedKeys?: EncryptedSessionKey[]): Promise<string | null>;
|
|
123
|
+
getSessionKey(sessionId: string, encryptedKeys?: EncryptedSessionKey[], sessionKeyGen?: string | null): Promise<string | null>;
|
|
93
124
|
/**
|
|
94
125
|
* Generate and encrypt a new session key for all devices.
|
|
95
126
|
*
|
|
@@ -115,9 +146,13 @@ export declare class KeychainManager {
|
|
|
115
146
|
skippedDeviceIds: string[];
|
|
116
147
|
};
|
|
117
148
|
/**
|
|
118
|
-
* Cache a session key
|
|
149
|
+
* Cache a session key, optionally bound to the session GENERATION it was
|
|
150
|
+
* derived under (§4.5). Callers that hold the authoritative key + generation
|
|
151
|
+
* (the session create/resume path) pass `sessionKeyGen` so a later
|
|
152
|
+
* `getSessionKey(..., encryptedKeys, gen)` trusts the entry only at the
|
|
153
|
+
* matching generation. Legacy cache-only callers omit it (stored as `null`).
|
|
119
154
|
*/
|
|
120
|
-
cacheSessionKey(sessionId: string, sessionKey: string): void;
|
|
155
|
+
cacheSessionKey(sessionId: string, sessionKey: string, sessionKeyGen?: string | null): void;
|
|
121
156
|
/**
|
|
122
157
|
* Get a cached session key without touching the backend or attempting
|
|
123
158
|
* to decrypt from encryptedKeys. Returns null if the session key is not
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DEVICE_IDENTITY_ACCOUNT } from './keychain-manager';
|
|
2
|
+
import type { FileStoreRead } from './keychain-backend';
|
|
3
|
+
export { DEVICE_IDENTITY_ACCOUNT };
|
|
4
|
+
export type { FileStoreRead };
|
|
5
|
+
export interface MigrateIO {
|
|
6
|
+
print(line: string): void;
|
|
7
|
+
printErr(line: string): void;
|
|
8
|
+
}
|
|
9
|
+
export interface MigrateDeps {
|
|
10
|
+
/** Discriminated read of the file store (absent / unreadable / corrupt / store+raw). */
|
|
11
|
+
readFileState(): FileStoreRead;
|
|
12
|
+
/** Read an account from the OS keyring directly. MAY THROW (locked/denied keyring). */
|
|
13
|
+
keytarGet(account: string): Promise<string | null>;
|
|
14
|
+
/** Write an account to the OS keyring directly. */
|
|
15
|
+
keytarSet(account: string, password: string): Promise<void>;
|
|
16
|
+
/** Atomically create the durable "migrated to keyring" tombstone (throws on failure). */
|
|
17
|
+
writeTombstone(): void;
|
|
18
|
+
/** Retire the file store → backup path (or null if nothing to retire). */
|
|
19
|
+
retireFileStore(): string | null;
|
|
20
|
+
/** Record the Linux `.keyring-used` anti-fork marker (no-op off Linux). */
|
|
21
|
+
markKeyringChosen(): void;
|
|
22
|
+
io: MigrateIO;
|
|
23
|
+
}
|
|
24
|
+
export interface MigrateOptions {
|
|
25
|
+
discardFile: boolean;
|
|
26
|
+
force: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Crash-recovery RESUME (the CLI sets this when the migration tombstone already
|
|
29
|
+
* existed at entry). Post-tombstone the KEYRING is authoritative and a keyring-ABSENT
|
|
30
|
+
* account is an authoritative DELETION, NOT an incomplete copy — so a resume must
|
|
31
|
+
* copy ZERO accounts from the stale file (F3). It only verifies the keyring still
|
|
32
|
+
* holds a VALID identity and, if so, retires the leftover file (copying nothing); if
|
|
33
|
+
* the keyring lost its identity it REFUSES (never re-runs the copy/replace fork path,
|
|
34
|
+
* never strands the file). First-run (false) keeps the file-authoritative copy.
|
|
35
|
+
*/
|
|
36
|
+
resume: boolean;
|
|
37
|
+
}
|
|
38
|
+
export type MigrateOutcome = 'nothing_to_do' | 'file_unreadable' | 'keyring_unreachable' | 'retired_empty' | 'discarded' | 'discard_refused' | 'already_present' | 'migrated' | 'replaced' | 'fork_refused' | 'invalid_source_identity' | 'resume_keyring_lost' | 'verify_failed';
|
|
39
|
+
export interface MigrateResult {
|
|
40
|
+
outcome: MigrateOutcome;
|
|
41
|
+
backupPath?: string | null;
|
|
42
|
+
accountsMigrated?: string[];
|
|
43
|
+
fileDeviceId?: string | null;
|
|
44
|
+
keychainDeviceId?: string | null;
|
|
45
|
+
}
|
|
46
|
+
export declare function migrateKeychain(deps: MigrateDeps, opts: MigrateOptions): Promise<MigrateResult>;
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/anchored-fs.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/bounded-output.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/process-tree.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/__tests__/snapshot-merge.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-disposable-repo.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type WorkspaceRootAuthority } from './workspace-authority';
|
|
1
2
|
/** A structured failure in disposable-repo materialization or fd-safe import. */
|
|
2
3
|
export declare class DisposableRepoError extends Error {
|
|
3
4
|
readonly reason: 'init' | 'ls-tree' | 'pack-objects' | 'dangerous-attributes' | 'read-tree' | 'checkout';
|
|
@@ -5,13 +6,27 @@ export declare class DisposableRepoError extends Error {
|
|
|
5
6
|
}
|
|
6
7
|
/** A structured rejection from {@link fdSafeReadFile} (fail-closed → human-gate). */
|
|
7
8
|
export declare class FdSafeImportError extends Error {
|
|
8
|
-
readonly reason: 'empty' | 'nul' | 'absolute' | 'traversal' | 'missing' | 'symlink-component' | 'not-regular' | 'hardlink';
|
|
9
|
-
constructor(reason: 'empty' | 'nul' | 'absolute' | 'traversal' | 'missing' | 'symlink-component' | 'not-regular' | 'hardlink', message: string);
|
|
9
|
+
readonly reason: 'empty' | 'nul' | 'absolute' | 'traversal' | 'missing' | 'symlink-component' | 'not-regular' | 'hardlink' | 'root-incarnation';
|
|
10
|
+
constructor(reason: 'empty' | 'nul' | 'absolute' | 'traversal' | 'missing' | 'symlink-component' | 'not-regular' | 'hardlink' | 'root-incarnation', message: string);
|
|
11
|
+
}
|
|
12
|
+
/** Exact post-rename authority returned by {@link stageDirForRead}. */
|
|
13
|
+
export interface StagedDirectory {
|
|
14
|
+
path: string;
|
|
15
|
+
identity: WorkspaceRootAuthority;
|
|
16
|
+
}
|
|
17
|
+
/** Staging failed after rename; retains the exact authority needed for cleanup. */
|
|
18
|
+
export declare class StageDirForReadError extends Error {
|
|
19
|
+
readonly retained?: StagedDirectory | undefined;
|
|
20
|
+
constructor(message: string, retained?: StagedDirectory | undefined);
|
|
21
|
+
get retainedPath(): string | undefined;
|
|
22
|
+
get retainedIdentity(): WorkspaceRootAuthority | undefined;
|
|
10
23
|
}
|
|
11
24
|
/** A materialized disposable repo + its cleanup. */
|
|
12
25
|
export interface DisposableRepo {
|
|
13
26
|
/** The working-tree root the agent resolves in (its own `.git` lives under it). */
|
|
14
27
|
repoDir: string;
|
|
28
|
+
/** Exact directory created by CodeVibe; cleanup never recaptures a replacement. */
|
|
29
|
+
repoAuthority: WorkspaceRootAuthority;
|
|
15
30
|
/** Remove the disposable repo (try/finally — even on timeout/crash). */
|
|
16
31
|
cleanup(): Promise<void>;
|
|
17
32
|
}
|
|
@@ -38,10 +53,12 @@ export declare function materializeDisposableRepo(opts: MaterializeOpts): Promis
|
|
|
38
53
|
* Atomically rename `dir` to a fresh RANDOM sibling path before reading it back —
|
|
39
54
|
* the exited agent / any disowned background process does NOT know the new path,
|
|
40
55
|
* so it cannot pre-place symlinks to win a TOCTOU race. The caller reads from the
|
|
41
|
-
* returned staged path (and is responsible for
|
|
42
|
-
* rename → atomic.
|
|
56
|
+
* returned staged path plus relocated cleanup identity (and is responsible for
|
|
57
|
+
* removing that exact authority). Same-filesystem rename → atomic.
|
|
43
58
|
*/
|
|
44
|
-
export declare function stageDirForRead(dir: string
|
|
59
|
+
export declare function stageDirForRead(dir: string, expectedAuthority: WorkspaceRootAuthority, seams?: {
|
|
60
|
+
afterRename?: (staged: string) => Promise<void>;
|
|
61
|
+
}): Promise<StagedDirectory>;
|
|
45
62
|
/**
|
|
46
63
|
* fd-safe read of ONE conflicted file at `relPath` under `rootDir` (CP-14 WB2 §2.1).
|
|
47
64
|
* `rootDir` SHOULD be a {@link stageDirForRead} staging path. Closes leaf+parent
|
|
@@ -49,4 +66,4 @@ export declare function stageDirForRead(dir: string): Promise<string>;
|
|
|
49
66
|
* dir/FIFO/device (`isFile`), and the read race (read-from-the-verified-fd). Any
|
|
50
67
|
* violation throws {@link FdSafeImportError} → the caller fails closed (human-gate).
|
|
51
68
|
*/
|
|
52
|
-
export declare function fdSafeReadFile(
|
|
69
|
+
export declare function fdSafeReadFile(staged: StagedDirectory, relPath: string): Promise<Buffer>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { stageDirForRead, type StagedDirectory } from './agentic-disposable-repo';
|
|
2
|
+
import { type WorkspaceRootAuthority } from './workspace-authority';
|
|
1
3
|
/**
|
|
2
4
|
* CP-14 WB2 §2.1 path C (dispatch-time fail-closed, D3-A) — the live
|
|
3
5
|
* {@link DispatchImplementor} closure THROWS this when the per-resolve confinement
|
|
@@ -14,6 +16,8 @@ export declare class AgenticDispatchUnconfinedError extends Error {
|
|
|
14
16
|
export type DispatchImplementor = (args: {
|
|
15
17
|
/** The disposable repo working-tree root (its own `.git`). */
|
|
16
18
|
repoDir: string;
|
|
19
|
+
/** Original full incarnation authority; dispatch must bind launch to it. */
|
|
20
|
+
repoAuthority: WorkspaceRootAuthority;
|
|
17
21
|
/** The class-2 conflicted files the agent must resolve (markers removed). */
|
|
18
22
|
conflictedPaths: readonly string[];
|
|
19
23
|
/** The implementor agent kind + its per-spawn task identity. */
|
|
@@ -30,10 +34,22 @@ export interface AgenticResolveArgs {
|
|
|
30
34
|
implementorTaskId: string;
|
|
31
35
|
/** Under the task's writable workspace area. */
|
|
32
36
|
parentDir: string;
|
|
37
|
+
/**
|
|
38
|
+
* The caller created `parentDir` solely for this resolve and transfers
|
|
39
|
+
* cleanup ownership here. Direct/library callers may omit this when the
|
|
40
|
+
* parent contains other state.
|
|
41
|
+
*/
|
|
42
|
+
cleanupParentDir?: boolean;
|
|
33
43
|
/** scan-before-checkout (the live caller passes `scanIntegrationTreeAttributes`). */
|
|
34
44
|
scanTree: (repoDir: string, tree: string) => Promise<string[]>;
|
|
35
45
|
/** Real implementor spawn (LE seam); tests stub it. */
|
|
36
46
|
dispatchImplementor: DispatchImplementor;
|
|
47
|
+
/** @internal deterministic post-stage cleanup regression seam. */
|
|
48
|
+
stageDirectory?: typeof stageDirForRead;
|
|
49
|
+
/** @internal deterministic pathname-replacement seam before dispatch. */
|
|
50
|
+
beforeDispatch?: (repoDir: string, authority: WorkspaceRootAuthority) => Promise<void>;
|
|
51
|
+
/** @internal deterministic pathname-replacement seam after staging. */
|
|
52
|
+
beforeStagedRead?: (staged: StagedDirectory) => Promise<void>;
|
|
37
53
|
}
|
|
38
54
|
export interface AgenticResolveResolved {
|
|
39
55
|
status: 'resolved';
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { type WorkspaceRootAuthority } from './workspace-authority.js';
|
|
2
|
+
type PublicationPrivateRetirementStage = 'commit-rename' | 'commit-unlink' | 'commit-sync' | 'pending-rename' | 'pending-unlink' | 'pending-sync' | 'retiring-rename' | 'retiring-unlink' | 'retiring-sync' | 'disposed-rename' | 'disposed-unlink' | 'disposed-sync';
|
|
3
|
+
export interface AnchoredPublicationAuthorityResidue {
|
|
4
|
+
recordName: string;
|
|
5
|
+
authorityId: string;
|
|
6
|
+
targetParentCanonicalPath?: string;
|
|
7
|
+
targetName?: string;
|
|
8
|
+
/** Caller label for an authority-id owner-prefix match. */
|
|
9
|
+
ownerLabel?: string;
|
|
10
|
+
/** Read/schema failure retained for a scoped, therefore attributable, record. */
|
|
11
|
+
unresolvedDetail?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Fresh bounded inventory of private publication records targeting exact
|
|
15
|
+
* durable parent paths or carrying exact caller-owner fingerprints. Teardown
|
|
16
|
+
* uses this only after all owned writers have drained; any remaining record is
|
|
17
|
+
* therefore retained authority, not a cache. Owner fingerprints are encoded in
|
|
18
|
+
* the record name before its body is written, so partial/non-JSON staging
|
|
19
|
+
* remains visible without adopting unrelated private records.
|
|
20
|
+
*/
|
|
21
|
+
export declare function listAnchoredPublicationAuthorityResidueForParents(parentCanonicalPaths: readonly string[], owners?: readonly {
|
|
22
|
+
ownerKey: string;
|
|
23
|
+
label: string;
|
|
24
|
+
}[]): Promise<AnchoredPublicationAuthorityResidue[]>;
|
|
25
|
+
export interface AnchoredFsIdentity {
|
|
26
|
+
dev: string;
|
|
27
|
+
ino: string;
|
|
28
|
+
/** Optional inode-reuse fence. Snapshot-root deletion always supplies it. */
|
|
29
|
+
birthtimeNs?: string;
|
|
30
|
+
/** Optional canonical-name binding, checked immediately before tree rename. */
|
|
31
|
+
canonicalPath?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface AnchoredPathIdentity extends AnchoredFsIdentity {
|
|
34
|
+
birthtimeNs: string;
|
|
35
|
+
canonicalPath: string;
|
|
36
|
+
mtimeMs: number;
|
|
37
|
+
kind: 'file' | 'directory';
|
|
38
|
+
}
|
|
39
|
+
export interface AnchoredCommittedFile extends AnchoredFsIdentity {
|
|
40
|
+
birthtimeNs: string;
|
|
41
|
+
canonicalPath: string;
|
|
42
|
+
mode: number;
|
|
43
|
+
mtimeMs: number;
|
|
44
|
+
sha256: string;
|
|
45
|
+
}
|
|
46
|
+
export interface AnchoredReadFile extends AnchoredFsIdentity {
|
|
47
|
+
birthtimeNs: string;
|
|
48
|
+
canonicalPath: string;
|
|
49
|
+
bytes: Buffer;
|
|
50
|
+
mode: number;
|
|
51
|
+
mtimeMs: number;
|
|
52
|
+
/** Exact immediate parent inode that owned the file throughout the read. */
|
|
53
|
+
parent: AnchoredFsIdentity & {
|
|
54
|
+
birthtimeNs: string;
|
|
55
|
+
canonicalPath: string;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export interface AnchoredHashedFile extends AnchoredFsIdentity {
|
|
59
|
+
birthtimeNs: string;
|
|
60
|
+
canonicalPath: string;
|
|
61
|
+
sha256: string;
|
|
62
|
+
size: number;
|
|
63
|
+
mode: number;
|
|
64
|
+
mtimeMs: number;
|
|
65
|
+
parent: AnchoredFsIdentity & {
|
|
66
|
+
birthtimeNs: string;
|
|
67
|
+
canonicalPath: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** Complete same-request witness required when opening an enumerated file. */
|
|
71
|
+
export interface AnchoredFileWitness extends AnchoredFsIdentity {
|
|
72
|
+
birthtimeNs: string;
|
|
73
|
+
canonicalPath: string;
|
|
74
|
+
size: bigint;
|
|
75
|
+
mtimeNs: string;
|
|
76
|
+
ctimeNs: string;
|
|
77
|
+
nlink: string;
|
|
78
|
+
}
|
|
79
|
+
/** True only when a failed atomic write deliberately left fail-closed recovery authority. */
|
|
80
|
+
export declare function isUnresolvedAnchoredPublicationError(err: unknown): boolean;
|
|
81
|
+
/** Read one bounded file through the deadline helper and return its bytes. */
|
|
82
|
+
export declare function anchoredReadFileWithinRoot(root: string, relativePath: string, opts: {
|
|
83
|
+
maxBytes: number;
|
|
84
|
+
expectedRoot?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
85
|
+
/** Exact enumerated leaf incarnation that must be opened. */
|
|
86
|
+
expectedFile?: AnchoredFileWitness;
|
|
87
|
+
/** Reject a multiply-linked leaf throughout the complete read. */
|
|
88
|
+
requireSingleLink?: boolean;
|
|
89
|
+
beforeOpen?: () => Promise<void> | void;
|
|
90
|
+
beforeAbsent?: () => Promise<void> | void;
|
|
91
|
+
afterStat?: () => Promise<void> | void;
|
|
92
|
+
afterRead?: () => Promise<void> | void;
|
|
93
|
+
helperTimeoutMs?: number;
|
|
94
|
+
testHangBeforeRead?: boolean;
|
|
95
|
+
testHangStage?: 'open' | 'read' | 'close';
|
|
96
|
+
}): Promise<AnchoredReadFile | null>;
|
|
97
|
+
/** Stream and hash one bounded file entirely in the deadline helper. */
|
|
98
|
+
export declare function anchoredHashFileWithinRoot(root: string, relativePath: string, opts: {
|
|
99
|
+
maxBytes: number;
|
|
100
|
+
expectedRoot?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
101
|
+
beforeOpen?: () => Promise<void> | void;
|
|
102
|
+
afterStat?: () => Promise<void> | void;
|
|
103
|
+
afterRead?: () => Promise<void> | void;
|
|
104
|
+
helperTimeoutMs?: number;
|
|
105
|
+
testHangStage?: 'open' | 'read' | 'close';
|
|
106
|
+
}): Promise<AnchoredHashedFile | null>;
|
|
107
|
+
export type AnchoredWritePrecondition = {
|
|
108
|
+
kind: 'absent';
|
|
109
|
+
} | {
|
|
110
|
+
kind: 'existing';
|
|
111
|
+
dev: string;
|
|
112
|
+
ino: string;
|
|
113
|
+
mode: number;
|
|
114
|
+
sha256: string;
|
|
115
|
+
};
|
|
116
|
+
export declare function captureAnchoredIdentity(target: string, opts?: {
|
|
117
|
+
/** @internal lower deterministic helper deadline for tests. */
|
|
118
|
+
helperTimeoutMs?: number;
|
|
119
|
+
/** @internal deterministic parent-preflight stall seam. */
|
|
120
|
+
testHangBeforeReady?: boolean;
|
|
121
|
+
expectedType?: 'file' | 'directory';
|
|
122
|
+
/** Full parent incarnation for root-relative stat consumers. */
|
|
123
|
+
expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
124
|
+
/** @internal after missing child, before public-parent re-authentication. */
|
|
125
|
+
beforeAbsent?: () => Promise<void> | void;
|
|
126
|
+
}): Promise<AnchoredPathIdentity>;
|
|
127
|
+
/** Create or reopen one real direct-child directory under an exact parent. */
|
|
128
|
+
export declare function anchoredEnsureDirectory(parent: WorkspaceRootAuthority, name: string, mode?: number): Promise<WorkspaceRootAuthority>;
|
|
129
|
+
export interface AnchoredEnsuredDirectory {
|
|
130
|
+
authority: WorkspaceRootAuthority;
|
|
131
|
+
/** True only when this exact anchored helper invocation won the mkdir. */
|
|
132
|
+
created: boolean;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create or reopen one real direct-child directory while reporting mkdir
|
|
136
|
+
* ownership from inside the anchored helper, not from a caller-side stat.
|
|
137
|
+
*/
|
|
138
|
+
export declare function anchoredEnsureDirectoryWithOwnership(parent: WorkspaceRootAuthority, name: string, mode?: number): Promise<AnchoredEnsuredDirectory>;
|
|
139
|
+
/** Create one new direct-child directory without adopting a pre-existing name. */
|
|
140
|
+
export declare function anchoredCreateDirectory(parent: WorkspaceRootAuthority, name: string, mode?: number): Promise<WorkspaceRootAuthority>;
|
|
141
|
+
export declare function captureAnchoredWritePrecondition(filePath: string, maxBytes: number, afterStat?: () => Promise<void> | void, expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority): Promise<AnchoredWritePrecondition>;
|
|
142
|
+
export declare function anchoredAtomicWrite(filePath: string, data: string | Buffer, opts: {
|
|
143
|
+
expected: AnchoredWritePrecondition;
|
|
144
|
+
mode?: number;
|
|
145
|
+
beforeCommit?: () => Promise<void> | void;
|
|
146
|
+
/** @internal deterministic seam after exact-state validation while the cross-process lock is held. */
|
|
147
|
+
afterValidation?: () => Promise<void> | void;
|
|
148
|
+
/** @internal bypass only for cross-process lock regression tests. */
|
|
149
|
+
serializeInProcess?: boolean;
|
|
150
|
+
/** @internal deterministic helper-crash seam for stale-temp recovery tests. */
|
|
151
|
+
crashAfterTempStage?: 'create' | 'write' | 'fsync';
|
|
152
|
+
/** @internal simulate disagreement from a repeated native owner probe. */
|
|
153
|
+
testMismatchedCurrentTempOwnerHash?: boolean;
|
|
154
|
+
/** @internal deterministic seam once an independent helper is waiting on the writer fence. */
|
|
155
|
+
afterLockContention?: () => Promise<void> | void;
|
|
156
|
+
/** @internal deterministic independent commit-authority crash seam. */
|
|
157
|
+
crashPublicationCommitStage?: 'create' | 'partial-write' | 'fsync';
|
|
158
|
+
/** @internal deterministic committed-cleanup crash seam. */
|
|
159
|
+
crashPublicationRetirementStage?: 'temp' | 'recovery' | 'quarantine' | 'marker' | 'commit';
|
|
160
|
+
/** @internal deterministic private transaction crash seam. */
|
|
161
|
+
crashPublicationPrivateRetirementStage?: PublicationPrivateRetirementStage;
|
|
162
|
+
/** @internal deterministic seam before committed prepared-temp disposition. */
|
|
163
|
+
beforePreparedTempRetirement?: (tempPath: string) => Promise<void> | void;
|
|
164
|
+
/** @internal deterministic seam at the final temp-name disposition boundary. */
|
|
165
|
+
beforePreparedTempFinalization?: (tempPath: string) => Promise<void> | void;
|
|
166
|
+
/** @internal after desktop proof is durable, immediately before guard unlink. */
|
|
167
|
+
beforePublicationAuthorityFinalization?: (tempPath: string) => Promise<void> | void;
|
|
168
|
+
/** Exact parent directory that must own the mutation. */
|
|
169
|
+
expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
170
|
+
/** Maximum existing/temp target bytes the helper may read or hash. */
|
|
171
|
+
maxTargetBytes: number;
|
|
172
|
+
/**
|
|
173
|
+
* Stable task/session ownership key for private crash authority. It is
|
|
174
|
+
* hashed before crossing the helper boundary and never written verbatim.
|
|
175
|
+
*/
|
|
176
|
+
publicationOwnerKey?: string;
|
|
177
|
+
/** @internal deterministic post-publication directory-fsync failure seam. */
|
|
178
|
+
failDirectorySync?: boolean;
|
|
179
|
+
/** @internal deterministic seam immediately before an exact final unlink. */
|
|
180
|
+
beforeFinalRemove?: (quarantinePath: string) => Promise<void> | void;
|
|
181
|
+
/** @internal exact syscall seam before an existing target is quarantined. */
|
|
182
|
+
beforeTargetQuarantine?: (targetPath: string, quarantinePath: string) => Promise<void> | void;
|
|
183
|
+
/** @internal lower deterministic helper deadline for tests. */
|
|
184
|
+
helperTimeoutMs?: number;
|
|
185
|
+
/** @internal deterministic blocked-helper seam. */
|
|
186
|
+
testHangBeforeReady?: boolean;
|
|
187
|
+
}): Promise<AnchoredCommittedFile>;
|
|
188
|
+
/**
|
|
189
|
+
* Hold one crash-reclaimable, inode-anchored cross-process lock for the full
|
|
190
|
+
* lifetime of `operation`. The callback process and its OS creation identity
|
|
191
|
+
* own the lock; the helper merely performs anchored acquisition/release. A
|
|
192
|
+
* helper crash cannot split the fence, and PID reuse cannot inherit it.
|
|
193
|
+
* The lock file itself carries no application authority.
|
|
194
|
+
*/
|
|
195
|
+
export declare function withAnchoredExclusiveLock<T>(lockPath: string, operation: () => Promise<T>, opts?: {
|
|
196
|
+
/** Maximum time to wait for another live owner; ownership itself has no lease. */
|
|
197
|
+
acquireTimeoutMs?: number;
|
|
198
|
+
/** Exact parent directory that must contain the lock. */
|
|
199
|
+
expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
200
|
+
/** Cancel only while waiting to acquire; once entered, `operation` owns shutdown semantics. */
|
|
201
|
+
signal?: AbortSignal;
|
|
202
|
+
/** @internal deterministic seam immediately before exact lock-artifact removal. */
|
|
203
|
+
beforeFinalRemove?: (quarantinePath: string) => Promise<void> | void;
|
|
204
|
+
/** @internal kill the acquisition helper after LOCKED to prove owner continuity. */
|
|
205
|
+
crashHelperAfterAcquire?: boolean;
|
|
206
|
+
/** @internal lower deterministic helper deadline for tests. */
|
|
207
|
+
helperTimeoutMs?: number;
|
|
208
|
+
}): Promise<T>;
|
|
209
|
+
export declare function anchoredRemoveTree(target: string, identity: WorkspaceRootAuthority, opts?: {
|
|
210
|
+
beforeCommit?: () => Promise<void> | void;
|
|
211
|
+
afterRename?: (tombstonePath: string) => Promise<void> | void;
|
|
212
|
+
/** @internal lower deterministic helper/tree-cleaner deadline for tests. */
|
|
213
|
+
helperTimeoutMs?: number;
|
|
214
|
+
/** @internal deterministic blocked-helper seam. */
|
|
215
|
+
testHangBeforeReady?: boolean;
|
|
216
|
+
/** @internal deterministic blocked recursive tree-cleaner seam. */
|
|
217
|
+
testHangTreeCleaner?: boolean;
|
|
218
|
+
}): Promise<void>;
|
|
219
|
+
export declare function anchoredRemoveFile(filePath: string, expectedIdentity?: AnchoredFsIdentity, opts?: {
|
|
220
|
+
beforeFinalRemove?: (quarantinePath: string) => Promise<void> | void;
|
|
221
|
+
expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
222
|
+
/** @internal deterministic post-unlink directory-fsync failure seam. */
|
|
223
|
+
failDirectorySync?: boolean;
|
|
224
|
+
}): Promise<void>;
|
|
225
|
+
/** Reclaim dead helper temp/lock/release/token residue for one anchored marker path. */
|
|
226
|
+
export declare function anchoredCleanupWriteArtifacts(filePath: string, opts?: {
|
|
227
|
+
waitForLive?: boolean;
|
|
228
|
+
beforeFinalRemove?: (quarantinePath: string) => Promise<void> | void;
|
|
229
|
+
helperTimeoutMs?: number;
|
|
230
|
+
/** Exact parent directory that must own every recovered artifact. */
|
|
231
|
+
expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
232
|
+
/** @internal deterministic restart-disposition race seam. */
|
|
233
|
+
beforePreparedTempFinalization?: (tempPath: string) => Promise<void> | void;
|
|
234
|
+
/** @internal deterministic final guard-link race seam. */
|
|
235
|
+
beforePublicationAuthorityFinalization?: (tempPath: string) => Promise<void> | void;
|
|
236
|
+
/** @internal deterministic private transaction crash seam. */
|
|
237
|
+
crashPublicationPrivateRetirementStage?: PublicationPrivateRetirementStage;
|
|
238
|
+
}): Promise<void>;
|
|
239
|
+
export declare function anchoredRemoveEmptyDirectory(dir: string, expectedIdentity?: AnchoredFsIdentity, opts?: {
|
|
240
|
+
/** Exact parent directory that must own the retiring child. */
|
|
241
|
+
expectedParent?: AnchoredFsIdentity | WorkspaceRootAuthority;
|
|
242
|
+
}): Promise<void>;
|
|
243
|
+
export {};
|