@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
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import type { AppSyncClient, TeamTrackRecoveryRow } from '../appsync/appsync-client';
|
|
2
2
|
import type { Session } from '../types';
|
|
3
3
|
import type { LocalExecutor } from '../local-executor';
|
|
4
|
+
import type { ClassBInbound } from '../local-executor/types';
|
|
4
5
|
import type { ImageAttachment } from './types';
|
|
5
6
|
import { type ImplementorMode } from '../local-executor/implementor-argv';
|
|
7
|
+
import { type FallbackLadderDeps } from '../substrate-launch/fallback-ladder';
|
|
6
8
|
import type { ConflictModelCaller } from '../local-executor/class2-resolver';
|
|
7
9
|
import type { ConflictResolverContext } from '../local-executor/merge-conflict-resolve';
|
|
8
10
|
import type { AgentKind } from '../local-executor/types';
|
|
9
11
|
import type { GateDispatchPayload, ReviewerDispatchPayload, ReviseFeedbackPayload } from '../local-executor/types';
|
|
10
12
|
import type { TeamTrackFailureReason } from '../local-executor/task-group-types';
|
|
11
|
-
import { WorkspaceShadow, type ShadowEnv } from '../local-executor/workspace-shadow';
|
|
13
|
+
import { WorkspaceShadow, type RecoveredShadow, type ShadowCleanupResidue, type ShadowEnv } from '../local-executor/workspace-shadow';
|
|
12
14
|
import type { RevertManifestStore } from '../local-executor/durable-store';
|
|
15
|
+
import { captureWorkspaceRootAuthority } from '../local-executor/workspace-authority';
|
|
13
16
|
import { type TeamExecution } from '../local-executor/team-execution-flag';
|
|
14
17
|
import { type RenderedConflict, type TrackIntentDiff } from '../local-executor/wb2-review-bundle';
|
|
15
18
|
import { ReviewerRegistry } from '../reviewer/registry';
|
|
16
19
|
import { type ReviewerFailureReason } from '../reviewer/provider';
|
|
17
20
|
import type { SubstrateHandle } from '../substrate/types';
|
|
18
21
|
import type { VerdictClassifier } from '../reviewer/verdict-classifier';
|
|
19
|
-
import type { AgentKind as ReviewerAgentKind, ReviewerRole } from '../reviewer/types';
|
|
22
|
+
import type { AgentKind as ReviewerAgentKind, ReviewerRole, VerdictKind } from '../reviewer/types';
|
|
20
23
|
import type { OnProgress } from './task-progress';
|
|
21
24
|
import { runShellCommand } from '../local-executor/verification-gates/shell-runner';
|
|
22
25
|
import type { PostDecisionAction, Tier } from './types';
|
|
@@ -60,7 +63,7 @@ export declare function classifyImplementorRoundFailure(err: unknown): string;
|
|
|
60
63
|
* Fixtures (L1):
|
|
61
64
|
* - Codex (PINNED — CP-13 §0/§2-D1 live sample): `You've hit your usage limit
|
|
62
65
|
* … try again at <date>` → match on `usage limit` (case-insensitive).
|
|
63
|
-
* - Claude
|
|
66
|
+
* - Claude: TBD — CP-13 has not captured real samples. Inventing
|
|
64
67
|
* strings risks a FALSE-NEGATIVE classifier that misses a real quota error,
|
|
65
68
|
* so they are left as additive one-liners to fill once real samples land.
|
|
66
69
|
* An UNMATCHED quota error degrades FAIL-SAFE to the existing born-halt
|
|
@@ -135,6 +138,76 @@ export declare function selectFinalTier2Reviewer(detected: readonly AgentKind[],
|
|
|
135
138
|
* and never falls through. Pure; NEVER throws.
|
|
136
139
|
*/
|
|
137
140
|
export declare function selectFinalTier2Candidates(detected: readonly AgentKind[], resolverAgents: ReadonlySet<string>, override?: AgentKind | null): AgentKind[];
|
|
141
|
+
/**
|
|
142
|
+
* A1b — ONE reviewer verdict as captured desktop-side at `submitVerdict`,
|
|
143
|
+
* BEFORE the engine flattens the round's panel into free-text
|
|
144
|
+
* `ReviseSeatFinding.findings`. This is what lets round N's revise brief carry
|
|
145
|
+
* the STRUCTURED findings of rounds < N-1 (the "addressing 0 findings" /
|
|
146
|
+
* re-flagging-fixed-issues fix) without any wire change.
|
|
147
|
+
*/
|
|
148
|
+
export interface RoundFindingRecord {
|
|
149
|
+
/** The gate round the verdict reviewed (0-based, from `roundByGateId`). */
|
|
150
|
+
round: number;
|
|
151
|
+
/** Numeric seat id as a string (matches `ReviseSeatFinding.seatId` shape). */
|
|
152
|
+
seatId: string;
|
|
153
|
+
role: ReviewerRole;
|
|
154
|
+
reviewerAgent: ReviewerAgentKind;
|
|
155
|
+
verdict: VerdictKind;
|
|
156
|
+
/** Capped to HISTORY_SUGGESTION_MAX_CHARS each at capture. */
|
|
157
|
+
suggestedChanges: string[];
|
|
158
|
+
/** Capped to HISTORY_REASONING_MAX_CHARS at capture. Stored for audit /
|
|
159
|
+
* bounded reuse; NOT rendered into the brief (the brief carries verdict +
|
|
160
|
+
* suggested changes only). */
|
|
161
|
+
reasoning: string;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* A1b — ONE implementor rationale entry (Stage-2 R1 Codex LOW-4: the round is
|
|
165
|
+
* RECORDED with the text, so a round that produced no summary can never drift
|
|
166
|
+
* the labeling — consumers render the entry's ACTUAL round, never an inferred
|
|
167
|
+
* `nextRound - 1`).
|
|
168
|
+
*/
|
|
169
|
+
export interface RationaleEntry {
|
|
170
|
+
/** The implementor round that produced this summary (0-based). */
|
|
171
|
+
round: number;
|
|
172
|
+
/** The summary text, char-capped at capture (RATIONALE_ENTRY_MAX_CHARS). */
|
|
173
|
+
text: string;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* A1d / P2 resolver-intent (design §5 — the resolver's need-to-know projection:
|
|
177
|
+
* "conflicted paths + 3-way markers + both tracks' intent diffs + each track's
|
|
178
|
+
* brief + task intent"). ALL fields optional + already BOUNDED by the caller
|
|
179
|
+
* (`RESOLVER_INTENT_DIFF_MAX_BYTES` / `RESOLVER_TRACK_BRIEF_MAX_BYTES`);
|
|
180
|
+
* absent/empty ⇒ the brief is byte-identical to the pre-A1d shape (graceful
|
|
181
|
+
* degrade — mirrors the A1b rationale posture).
|
|
182
|
+
*/
|
|
183
|
+
export interface ResolverIntentContext {
|
|
184
|
+
/** The INCOMING track's brief (the THEIRS side's task intent), bounded. */
|
|
185
|
+
incomingBrief?: string | null;
|
|
186
|
+
/** The incoming track's index (labeling only). */
|
|
187
|
+
incomingTrackIndex?: number;
|
|
188
|
+
/**
|
|
189
|
+
* Briefs of the group's OTHER registered tracks (the OURS side — the
|
|
190
|
+
* integration tip is the base plus the already-merged tracks), bounded,
|
|
191
|
+
* sorted by trackIndex.
|
|
192
|
+
*/
|
|
193
|
+
integrationBriefs?: readonly {
|
|
194
|
+
trackIndex: number;
|
|
195
|
+
brief: string;
|
|
196
|
+
}[];
|
|
197
|
+
/** Bounded base→trackTip unified diff (THEIRS intent), or a placeholder line. */
|
|
198
|
+
incomingIntentDiff?: string | null;
|
|
199
|
+
/** Bounded base→integrationTip unified diff (OURS intent), or a placeholder line. */
|
|
200
|
+
integrationIntentDiff?: string | null;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* CP-14 WB2 (D1, locked) — the brief delivered on the resolver agent's stdin. It
|
|
204
|
+
* enumerates the class-2 conflicted paths (which carry 3-way markers), instructs
|
|
205
|
+
* write-in-place + remove EVERY marker, and tells the agent that ONLY its edits to
|
|
206
|
+
* the listed files are kept (selective import — any other edit is discarded). The
|
|
207
|
+
* agent may read other files + run build/test to verify, but those artifacts do
|
|
208
|
+
* not import (they only help it converge).
|
|
209
|
+
*/
|
|
210
|
+
declare function renderAgenticResolveBrief(conflictedPaths: readonly string[], implementorRationale?: string | null, intent?: ResolverIntentContext): string;
|
|
138
211
|
/**
|
|
139
212
|
* CP-7 §8 (Stage-1-resolved) — the narrow result the QuorumLoop consumes from
|
|
140
213
|
* the reviewer substrate engager. Mirrors `SubstrateLaunch.EngageResult` /
|
|
@@ -210,6 +283,19 @@ export interface QuorumLoopDeps {
|
|
|
210
283
|
getSessionKey: (sessionId: string) => Promise<string | null>;
|
|
211
284
|
/** Working dir for spawned subprocesses (canonicalized). */
|
|
212
285
|
workingDir: string;
|
|
286
|
+
/**
|
|
287
|
+
* A1d (Stage-2 R1 Codex MED) — test seams for the RESOLVER-SPECIFIC
|
|
288
|
+
* construction probe (`probeResolverDispatchConfinement`). `ladderDeps`
|
|
289
|
+
* stubs the §6 Q2 substrate ladder; `trustedContainer` stubs the
|
|
290
|
+
* trusted-container boundary check. ABSENT (production) → the real ladder +
|
|
291
|
+
* `isTrustedContainerBoundary`. The probe decides only whether the agentic
|
|
292
|
+
* closure is WIRED — the dispatch-time `requireConfined` engage remains the
|
|
293
|
+
* sole load-bearing confinement gate.
|
|
294
|
+
*/
|
|
295
|
+
resolverProbeDeps?: {
|
|
296
|
+
ladderDeps?: FallbackLadderDeps;
|
|
297
|
+
trustedContainer?: () => boolean;
|
|
298
|
+
};
|
|
213
299
|
/**
|
|
214
300
|
* CP-14 Wave A — the team execution model. `worktree_merge` makes each team
|
|
215
301
|
* track commit to a persistent branch (the merge-before-push spine) instead of
|
|
@@ -238,15 +324,32 @@ export interface QuorumLoopDeps {
|
|
|
238
324
|
* agent reviewer runs INSIDE the sandbox with no ambient vendor creds and a
|
|
239
325
|
* broker-routed model call — closing the CP-14 §8/§13 reviewer-sandbox gap.
|
|
240
326
|
* ABSENT (legacy / companion / tests) → reviewers take the legacy unsandboxed
|
|
241
|
-
* path BYTE-IDENTICAL (§7 non-regression). Reviewer-sandboxing
|
|
242
|
-
*
|
|
243
|
-
* `
|
|
244
|
-
*
|
|
245
|
-
* reviewers stay on the legacy path until the broker round-trip is observed
|
|
246
|
-
* green in a configured env (see `reviewerSandboxingEnabled`). The flag is
|
|
327
|
+
* path BYTE-IDENTICAL (§7 non-regression). Reviewer-sandboxing DEFAULTS ON
|
|
328
|
+
* when this engager is wired (R7 A4), with an operator opt-out env flag
|
|
329
|
+
* (`CODEVIBE_SANDBOX_REVIEWERS=0`, read in `engageSeatSubstrate` on the
|
|
330
|
+
* `spawnOneSeat` path — see `reviewerSandboxingEnabled`). The flag is
|
|
247
331
|
* independent of implementor sandboxing (which has its own engager).
|
|
248
332
|
*/
|
|
249
333
|
engageReviewerSubstrate?: ReviewerSubstrateEngager;
|
|
334
|
+
/**
|
|
335
|
+
* A1e (P3 slice-wiring REMAP) — compose the bounded repository-context
|
|
336
|
+
* block for a task dispatch: the resolved `context_ref` structural slice
|
|
337
|
+
* (`mintContextRef` → `resolveContextRef` → `sliceSummary`) + the FRESH-ONLY
|
|
338
|
+
* `repo_state` overview (design §8.3 freshness — a stale record fires the
|
|
339
|
+
* background re-delegation and is NEVER projected). Wired by `cli.ts` to a
|
|
340
|
+
* tap holder; `runOrchestrationShell` installs the real composer
|
|
341
|
+
* (`composeDispatchContextBlock`) — the progressTap late-binding pattern.
|
|
342
|
+
* Appended to the ROUND-0 implementor STDIN payload ONLY (never
|
|
343
|
+
* `args.brief`, which becomes the execute-first `task_brief` → the
|
|
344
|
+
* reviewer prompts — the same self-visibility boundary as the A1b prior-
|
|
345
|
+
* rationale block). Returns `''` for "no block". ABSENT (legacy / companion
|
|
346
|
+
* / tests) → byte-identical stdin (no projection).
|
|
347
|
+
*/
|
|
348
|
+
projectDispatchContext?: (input: {
|
|
349
|
+
taskId: string;
|
|
350
|
+
agent: AgentKind;
|
|
351
|
+
roundNumber: number;
|
|
352
|
+
}) => Promise<string>;
|
|
250
353
|
/**
|
|
251
354
|
* CP-1.f LOCK RP-6 — this orchestration host's detected coding agents
|
|
252
355
|
* (UPPERCASE `CLAUDE` / `CODEX` / `GEMINI`), computed ONCE by `cli.ts` via
|
|
@@ -283,6 +386,22 @@ export interface QuorumLoopDeps {
|
|
|
283
386
|
* production uses the defaults (`~/.codevibe/shadow-state`, `os.tmpdir()`).
|
|
284
387
|
*/
|
|
285
388
|
shadowEnv?: ShadowEnv;
|
|
389
|
+
/**
|
|
390
|
+
* Deterministic recovery seams. Production omits this object and uses the
|
|
391
|
+
* imported filesystem implementations. Tests may park an exact recovery
|
|
392
|
+
* await to prove the session-disposal admission/drain boundary without
|
|
393
|
+
* weakening any production timeout or filesystem check.
|
|
394
|
+
*/
|
|
395
|
+
shadowRecoveryOps?: {
|
|
396
|
+
listRecoverableShadows?: (env: ShadowEnv) => Promise<RecoveredShadow[]>;
|
|
397
|
+
listShadowCleanupResidue?: (taskIds: ReadonlySet<string>, env: ShadowEnv) => Promise<ShadowCleanupResidue[]>;
|
|
398
|
+
captureWorkspaceRootAuthority?: typeof captureWorkspaceRootAuthority;
|
|
399
|
+
reopenShadow?: (recovered: RecoveredShadow, env: ShadowEnv) => Promise<WorkspaceShadow | null>;
|
|
400
|
+
reapOrphanShadows?: (keepTaskIds: ReadonlySet<string>, env: ShadowEnv) => Promise<{
|
|
401
|
+
reaped: string[];
|
|
402
|
+
retained: string[];
|
|
403
|
+
}>;
|
|
404
|
+
};
|
|
286
405
|
/**
|
|
287
406
|
* CP-1.f execute-first (#EF-1 / #SR-2) — surface a user-visible halt /
|
|
288
407
|
* fail-closed message to the orchestration timeline. Wired by the shell to an
|
|
@@ -339,6 +458,7 @@ export interface QuorumLoopDeps {
|
|
|
339
458
|
taskGroupId: string;
|
|
340
459
|
trackIndex: number;
|
|
341
460
|
state: 'Passed' | 'Failed';
|
|
461
|
+
resolvedBy: 'engine' | 'user';
|
|
342
462
|
}) => void;
|
|
343
463
|
/**
|
|
344
464
|
* PHASE-589/469 W3.1 (C1) — the durable revert-manifest store. For a TEAM
|
|
@@ -359,8 +479,10 @@ export interface QuorumLoopDeps {
|
|
|
359
479
|
*
|
|
360
480
|
* SECURITY INVARIANT: events carry ONLY counts/labels/paths/elapsed — never
|
|
361
481
|
* diff content, file contents, reviewer reasoning, prompts, or any decrypted
|
|
362
|
-
* plaintext (the `TaskProgressEvent` union is the allowlist
|
|
363
|
-
*
|
|
482
|
+
* plaintext (the `TaskProgressEvent` union is the allowlist, with its ONE
|
|
483
|
+
* documented exception: `halt_notice.message`, controlled operational notice
|
|
484
|
+
* text from `surfaceHalt` — see task-progress.ts's header carve-out). The
|
|
485
|
+
* loop wraps every emit so a throwing listener can NEVER break the loop.
|
|
364
486
|
*/
|
|
365
487
|
onProgress?: OnProgress;
|
|
366
488
|
/**
|
|
@@ -412,6 +534,21 @@ declare function reviewerAgentToLeAgent(agent: ReviewerAgentKind): AgentKind;
|
|
|
412
534
|
* leading token isn't a non-negative integer.
|
|
413
535
|
*/
|
|
414
536
|
export declare function numericSeatId(resolvedSeatId: string): number | null;
|
|
537
|
+
interface TeamRunAuthority {
|
|
538
|
+
taskGroupId: string;
|
|
539
|
+
trackIndex: number;
|
|
540
|
+
dispatchGeneration: number;
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Byte-equivalent to the engine's
|
|
544
|
+
* `round0_gate_id_for_track(task, group, track, generation)`.
|
|
545
|
+
*
|
|
546
|
+
* Live GateDispatch packets intentionally carry no mutable "current" pointer.
|
|
547
|
+
* Their deterministic id is the authenticated correlation between the signed
|
|
548
|
+
* TrackAssigned generation and the signed GateDispatch. Keeping the formula
|
|
549
|
+
* here closes packet-order races without extending or weakening the wire.
|
|
550
|
+
*/
|
|
551
|
+
export declare function teamRound0GateId(taskId: string, taskGroupId: string, trackIndex: number, dispatchGeneration: number): string;
|
|
415
552
|
export declare class QuorumLoop {
|
|
416
553
|
private readonly deps;
|
|
417
554
|
private readonly sleep;
|
|
@@ -481,6 +618,8 @@ export declare class QuorumLoop {
|
|
|
481
618
|
* share a `trackIndex` overwrite each other's brief.
|
|
482
619
|
*/
|
|
483
620
|
private teamBriefsByKey;
|
|
621
|
+
/** Recovery-authored briefs keyed by task/group/index/generation authority. */
|
|
622
|
+
private readonly recoveredBriefsByAuthority;
|
|
484
623
|
private readonly activeBriefByTask;
|
|
485
624
|
/**
|
|
486
625
|
* CP-1.f revise-context fix (dogfood task 2ac68708, 2026-06-11) — the BINDING
|
|
@@ -501,6 +640,46 @@ export declare class QuorumLoop {
|
|
|
501
640
|
* task's notes.
|
|
502
641
|
*/
|
|
503
642
|
private readonly userNotesByTask;
|
|
643
|
+
/**
|
|
644
|
+
* A1b — STRUCTURED reviewer findings accumulated across ALL of a task's
|
|
645
|
+
* review rounds, captured at `submitVerdict` (the desktop-local hook where
|
|
646
|
+
* the full `ReviewerVerdict` passes through BEFORE the engine flattens the
|
|
647
|
+
* panel to free-text `ReviseSeatFinding.findings`). Round N's revise brief
|
|
648
|
+
* renders rounds < N-1 from here as the `## Findings history` section, so
|
|
649
|
+
* the implementor SEES what earlier rounds flagged (the "addressing 0
|
|
650
|
+
* findings" / re-flagging-fixed-issues fix) with NO wire change.
|
|
651
|
+
*
|
|
652
|
+
* Desktop-local capture is design-correct for GA: the locked shared-context
|
|
653
|
+
* design's single-write-authority means ONE desktop runs ALL of a task's
|
|
654
|
+
* seats, so every verdict for the task passes through THIS process's
|
|
655
|
+
* `submitVerdict` (multi-desktop seat fan-out is post-GA; a cross-desktop
|
|
656
|
+
* history store would be designed then). Lifecycle mirrors `userNotesByTask`
|
|
657
|
+
* exactly: cleared on promote / discard / round-0 restart replacement.
|
|
658
|
+
*/
|
|
659
|
+
private readonly roundHistoryByTask;
|
|
660
|
+
/**
|
|
661
|
+
* A1b — the implementor's own per-round stdout rationale (the
|
|
662
|
+
* `extractAgentSummary` text), recorded as `{ round, text }` (LOW-4: labels
|
|
663
|
+
* come from the RECORDED round — a summary-less round can never drift them),
|
|
664
|
+
* bounded per entry, newest last. Three bounded consumers:
|
|
665
|
+
* 1. The NEXT revise round's implementor stdin (`## Your prior rationale`,
|
|
666
|
+
* ≤ PRIOR_RATIONALE_BRIEF_MAX_BYTES) — self-visibility only; it rides
|
|
667
|
+
* the stdin, NEVER the task_brief the reviewers see.
|
|
668
|
+
* 2. The agentic class-2 resolver brief (≤ RATIONALE_RESOLVER_MAX_BYTES,
|
|
669
|
+
* ungated — the resolver is intent-starved by design).
|
|
670
|
+
* 3. Reviewer packets, ONLY behind the DEFAULT-OFF
|
|
671
|
+
* OQ-REVIEWER-RATIONALE flag, as a labeled UNTRUSTED claim.
|
|
672
|
+
* Lifecycle mirrors `userNotesByTask` (promote / terminal discard / restart
|
|
673
|
+
* clear; PRESERVED across the non-terminal quota-fork/takeover discards).
|
|
674
|
+
*/
|
|
675
|
+
private readonly rationaleByTask;
|
|
676
|
+
/**
|
|
677
|
+
* A1b — gate → the round number its implementor ran (set beside
|
|
678
|
+
* `taskByGateId` in `runImplementorRound`), so `submitVerdict` can stamp the
|
|
679
|
+
* verdict's `RoundFindingRecord.round`. Same append-only lifecycle as
|
|
680
|
+
* `taskByGateId` (per QuorumLoop life; bounded by the session's gate count).
|
|
681
|
+
*/
|
|
682
|
+
private readonly roundByGateId;
|
|
504
683
|
/** Seats with a reviewer subprocess currently running, keyed `gateId::seatId`. */
|
|
505
684
|
private readonly runningSeats;
|
|
506
685
|
/** Seats whose verdict has been submitted, keyed `gateId::seatId`. */
|
|
@@ -530,6 +709,60 @@ export declare class QuorumLoop {
|
|
|
530
709
|
* desktop suppression closes the late-LOCAL-submit race. Keyed by taskId.
|
|
531
710
|
*/
|
|
532
711
|
private readonly activeImplementorByTask;
|
|
712
|
+
/** Spawn requests that own a shadow but have not yet returned a killable handle. */
|
|
713
|
+
private readonly pendingImplementorByTask;
|
|
714
|
+
/**
|
|
715
|
+
* Exact lifecycle ownership keyed by gate, including an older generation
|
|
716
|
+
* displaced from the per-task "current" maps above. Group halt and session
|
|
717
|
+
* teardown enumerate these registries so every real pending/active process
|
|
718
|
+
* remains abortable until its own round releases ownership.
|
|
719
|
+
*/
|
|
720
|
+
private readonly activeImplementorByGate;
|
|
721
|
+
private readonly pendingImplementorByGate;
|
|
722
|
+
/**
|
|
723
|
+
* Full implementor-round coroutines owned by this session. Process handles
|
|
724
|
+
* cover only the agent subprocess; capture, validation, submission, and
|
|
725
|
+
* failure cleanup continue after that leader exits. Session teardown must
|
|
726
|
+
* await this set before deleting any workspace those continuations can use.
|
|
727
|
+
*/
|
|
728
|
+
private readonly implementorRoundPromises;
|
|
729
|
+
/** Exact task ownership for group-local cancellation/drain (no unrelated wait). */
|
|
730
|
+
private readonly implementorRoundPromisesByTask;
|
|
731
|
+
/**
|
|
732
|
+
* Team GateDispatch callbacks admitted before their first await. Supersede,
|
|
733
|
+
* terminal group halt, and session teardown drain this exact registry before
|
|
734
|
+
* retiring snapshots, closing the pre-round ownership gap.
|
|
735
|
+
*/
|
|
736
|
+
private readonly teamDispatchAdmissionsByTask;
|
|
737
|
+
/**
|
|
738
|
+
* Per-task registration tail. Every caller publishes its immutable gate /
|
|
739
|
+
* generation intent before joining this queue, so a successor gate received
|
|
740
|
+
* while an earlier registration drains is still correlated exactly.
|
|
741
|
+
*/
|
|
742
|
+
private readonly teamTaskRegistrationByTask;
|
|
743
|
+
/** Exact deterministic gate authority, retained through retirement for stale replay refusal. */
|
|
744
|
+
private readonly teamGateBindingByRunId;
|
|
745
|
+
/** All queued/active registration intents, used to publish successor fences synchronously. */
|
|
746
|
+
private readonly teamRegistrationIntentsByTask;
|
|
747
|
+
/** Terminal group ids: set synchronously before any halt await or side effect. */
|
|
748
|
+
private readonly haltedTeamGroups;
|
|
749
|
+
/** Exact non-terminal generation fences retained after a newer dispatch wins. */
|
|
750
|
+
private readonly supersededTeamRuns;
|
|
751
|
+
/**
|
|
752
|
+
* Task ids whose old generation is being aborted/drained before its newer
|
|
753
|
+
* brief is installed. GateDispatch buffers behind this synchronous barrier.
|
|
754
|
+
*/
|
|
755
|
+
private readonly supersedingTeamTaskIds;
|
|
756
|
+
/**
|
|
757
|
+
* Child task ids observed for a terminal group. GateDispatch carries only the
|
|
758
|
+
* child task id, so this closes the post-halt/no-brief replay path: after the
|
|
759
|
+
* brief is retired, a late dispatch is rejected instead of being buffered as
|
|
760
|
+
* an apparently early packet. A successful registration for a different,
|
|
761
|
+
* non-halted group clears the tombstone, which keeps task-id reuse safe.
|
|
762
|
+
*/
|
|
763
|
+
private readonly haltedTeamTaskIds;
|
|
764
|
+
/** Serializes exact group bundle publication against the terminal halt fence. */
|
|
765
|
+
private readonly teamBundleOpsByGroup;
|
|
533
766
|
/**
|
|
534
767
|
* PHASE-CP-10-MIN (#585) §2.3 / #C10M-16 — offers already resumed (the
|
|
535
768
|
* dedupe set; keyed on `offer_id`, the same axis as the audit slot #C10M-4).
|
|
@@ -580,6 +813,8 @@ export declare class QuorumLoop {
|
|
|
580
813
|
* cardinality is bounded by those same dedup sets).
|
|
581
814
|
*/
|
|
582
815
|
private readonly taskByGateId;
|
|
816
|
+
/** Exact immutable team generation that authored each team gate. */
|
|
817
|
+
private readonly teamAuthorityByGateId;
|
|
583
818
|
/**
|
|
584
819
|
* GATE_DISPATCH `gateRunId`s already consumed (idempotent re-delivery dedup).
|
|
585
820
|
* A sweeper / WS re-deliver of the SAME round-0 dispatch must NOT double-spawn
|
|
@@ -603,18 +838,25 @@ export declare class QuorumLoop {
|
|
|
603
838
|
*/
|
|
604
839
|
private readonly recoveredGateRunIds;
|
|
605
840
|
/**
|
|
606
|
-
* §4.1 —
|
|
841
|
+
* §4.1 — in-session per-authority tombstone for a present-but-CORRUPT brief
|
|
607
842
|
* ciphertext (decrypt threw during recovery PASS 1). Blocks BOTH recovery
|
|
608
843
|
* relaunch (PASS 2) AND any future LIVE `TrackAssigned`/drain for that track
|
|
609
844
|
* (§4.3) — a corrupt brief must NEVER spawn an empty-brief implementor on
|
|
610
845
|
* EITHER path. The track times out via the engine sweeper (bounded). Distinct
|
|
611
846
|
* from a `null` `encryptedBrief` (a legit empty brief).
|
|
612
847
|
*
|
|
613
|
-
*
|
|
614
|
-
*
|
|
615
|
-
*
|
|
848
|
+
* Round 46: keyed by complete `(taskGroupId, trackIndex, taskId,
|
|
849
|
+
* dispatchGeneration)` authority, so a corrupt predecessor cannot block a
|
|
850
|
+
* clean successor that reuses the slot.
|
|
616
851
|
*/
|
|
617
852
|
private readonly corruptBriefTracks;
|
|
853
|
+
/**
|
|
854
|
+
* The newest fully validated recovery authority seeded for each group/index
|
|
855
|
+
* slot. It prevents an asynchronously late, older recovery response (or stale
|
|
856
|
+
* live TrackAssigned) from replacing the brief selected for a newer
|
|
857
|
+
* generation. The actual tombstone remains keyed by the complete authority.
|
|
858
|
+
*/
|
|
859
|
+
private readonly recoveryAuthorityBySlot;
|
|
618
860
|
/**
|
|
619
861
|
* #592 PROVENANCE GUARD (2026-06-26) — the task-group ids THIS desktop
|
|
620
862
|
* ORIGINATED (recorded in `armB1Recovery`, right after a successful
|
|
@@ -631,11 +873,12 @@ export declare class QuorumLoop {
|
|
|
631
873
|
*/
|
|
632
874
|
private readonly ownedGroupIds;
|
|
633
875
|
/**
|
|
634
|
-
*
|
|
635
|
-
*
|
|
636
|
-
* that share a `trackIndex` (B.2 aggregates session-wide) never collide.
|
|
876
|
+
* Slot key for parse-time briefs and the selected recovery projection.
|
|
877
|
+
* Deletion/launch authority never uses this key alone.
|
|
637
878
|
*/
|
|
638
879
|
private teamBriefKey;
|
|
880
|
+
private recoveryAuthorityKey;
|
|
881
|
+
private isCorruptBriefAuthority;
|
|
639
882
|
/**
|
|
640
883
|
* PHASE-589/469 W3.1 (C1) — the GROUP-WIDE monotonic promote-order counter,
|
|
641
884
|
* keyed by `taskGroupId`. Each team track promote reserves
|
|
@@ -720,6 +963,21 @@ export declare class QuorumLoop {
|
|
|
720
963
|
* This also makes concurrent B.1+B.2 safe (no per-op toggle race).
|
|
721
964
|
*/
|
|
722
965
|
private recoverySeedingDepth;
|
|
966
|
+
/**
|
|
967
|
+
* Every asynchronously delivered session coroutine that can reach a task
|
|
968
|
+
* workspace: Class-B consumption, shadow recovery, and B.1/B.2 team
|
|
969
|
+
* recovery. Admission is synchronous and closes when `shuttingDown` flips.
|
|
970
|
+
* Disposal drains this set before it enumerates task resources, so no
|
|
971
|
+
* accepted callback can mutate a map or filesystem after the boundary.
|
|
972
|
+
*/
|
|
973
|
+
private readonly sessionWorkPromises;
|
|
974
|
+
private readonly sessionWorkAdmissions;
|
|
975
|
+
/** TaskAuthorized callbacks accepted before shutdown may finish promotion. */
|
|
976
|
+
private readonly terminalClassBAdmissionsByTask;
|
|
977
|
+
private trackExistingSessionWork;
|
|
978
|
+
private startSessionWork;
|
|
979
|
+
private admittedSessionWorkMayContinue;
|
|
980
|
+
private trackTeamRecovery;
|
|
723
981
|
/**
|
|
724
982
|
* §4.3 — TEAM Class B packets buffered while the recovery seed barrier is up
|
|
725
983
|
* (`recoverySeedingDepth > 0`). Drained through the normal live handlers AFTER
|
|
@@ -783,25 +1041,28 @@ export declare class QuorumLoop {
|
|
|
783
1041
|
*/
|
|
784
1042
|
private readonly shadowsByTask;
|
|
785
1043
|
/**
|
|
786
|
-
*
|
|
787
|
-
*
|
|
788
|
-
*
|
|
789
|
-
*
|
|
790
|
-
*
|
|
791
|
-
|
|
792
|
-
|
|
1044
|
+
* Session-sticky task ids whose snapshots this loop may retire. The set does
|
|
1045
|
+
* not shrink when an in-memory map entry is cleared: normal teardown performs
|
|
1046
|
+
* a fresh durable enumeration and must still recognize an interrupted exact
|
|
1047
|
+
* marker. It also prevents one embedded shell from adopting another shell's
|
|
1048
|
+
* same-workspace snapshot merely because both share a state root.
|
|
1049
|
+
*/
|
|
1050
|
+
private readonly workspaceTaskIdsOwned;
|
|
1051
|
+
/**
|
|
1052
|
+
* In-session terminal retirement tombstones. A recovery scan that started
|
|
1053
|
+
* before a terminal discard/promote must not reinstall its stale instance
|
|
1054
|
+
* after that terminal operation wins the task mutex.
|
|
1055
|
+
*/
|
|
1056
|
+
private readonly terminallyRetiredWorkspaceTasks;
|
|
1057
|
+
/**
|
|
1058
|
+
* In-memory cache of the crash-durable reviewed artifact for every task. The
|
|
1059
|
+
* authoritative copy lives in the private snapshot marker and is persisted
|
|
1060
|
+
* before submission; promotion always re-reads that copy. Cleared with the
|
|
1061
|
+
* instance on promote/discard.
|
|
793
1062
|
*/
|
|
794
1063
|
private readonly reviewedSnapshotByTask;
|
|
795
1064
|
/** Guards concurrent shadow-create for the same task (round-0 + an early re-deliver). */
|
|
796
1065
|
private readonly shadowCreateInFlight;
|
|
797
|
-
/**
|
|
798
|
-
* CP-14 Wave A — the ONE pinned base SHA per task group (`worktree_merge`),
|
|
799
|
-
* captured (memoized) at the first track of the group BEFORE any shadow is
|
|
800
|
-
* created, so EVERY track branches from the same base → a deterministic
|
|
801
|
-
* merge-train input (Stage-1 plan-review MED-3). Promise-memoized so concurrent
|
|
802
|
-
* track registrations share a single `git rev-parse HEAD`.
|
|
803
|
-
*/
|
|
804
|
-
private readonly groupBaseShaInFlight;
|
|
805
1066
|
/**
|
|
806
1067
|
* Per-task async MUTEX for shadow LIFECYCLE mutations (restart-race fix,
|
|
807
1068
|
* 2026-06-11 Stage-2 Codex r2). A promise-chain serializes EVERY map/stateDir-
|
|
@@ -818,10 +1079,12 @@ export declare class QuorumLoop {
|
|
|
818
1079
|
* sequencing layer (errors propagate to the OWNING caller, never poison the
|
|
819
1080
|
* chain for the next op), and clears the entry once the tail it stored is the
|
|
820
1081
|
* one that settled (so an idle task leaks no entry). The serialized region is
|
|
821
|
-
*
|
|
1082
|
+
* filesystem-only with NO nested `runExclusiveShadowOp` call (the wrapped methods
|
|
822
1083
|
* never call each other), so it cannot self-deadlock.
|
|
823
1084
|
*/
|
|
824
1085
|
private readonly shadowOpsByTask;
|
|
1086
|
+
/** Once set, no new implementor workspace may be created for this session. */
|
|
1087
|
+
private shuttingDown;
|
|
825
1088
|
/**
|
|
826
1089
|
* Serialize one shadow lifecycle op for `taskId` behind any in-flight op for
|
|
827
1090
|
* the same task. The op's result/rejection is returned to ITS caller; a
|
|
@@ -830,6 +1093,30 @@ export declare class QuorumLoop {
|
|
|
830
1093
|
* appended is still the current tail (no later op queued behind us).
|
|
831
1094
|
*/
|
|
832
1095
|
private runExclusiveShadowOp;
|
|
1096
|
+
private static sameTeamAuthority;
|
|
1097
|
+
private static teamAuthorityKey;
|
|
1098
|
+
private static teamAuthorityForEntry;
|
|
1099
|
+
private static immutableTeamTaskEntry;
|
|
1100
|
+
private static sameTeamTaskEntry;
|
|
1101
|
+
private publishTeamRegistrationIntent;
|
|
1102
|
+
private releaseTeamRegistrationIntent;
|
|
1103
|
+
private refreshTeamSupersedingFence;
|
|
1104
|
+
private hasQueuedNewerTeamRegistration;
|
|
1105
|
+
private retireTeamGateBindings;
|
|
1106
|
+
private teamAuthorityForTask;
|
|
1107
|
+
private teamRunIsHalted;
|
|
1108
|
+
private teamEntryMayContinue;
|
|
1109
|
+
private admitTeamDispatch;
|
|
1110
|
+
private drainTeamDispatchAdmissions;
|
|
1111
|
+
private runTeamBundlePublication;
|
|
1112
|
+
/**
|
|
1113
|
+
* Retire one older team dispatch generation before installing its successor.
|
|
1114
|
+
* The exact authority fence is published synchronously, then every pending /
|
|
1115
|
+
* active real handle and the complete round continuation is drained. The old
|
|
1116
|
+
* snapshot is removed only after process ownership is proven empty.
|
|
1117
|
+
*/
|
|
1118
|
+
private retireSupersededTeamRun;
|
|
1119
|
+
private rememberWorkspaceLifecycleFailure;
|
|
833
1120
|
/**
|
|
834
1121
|
* The last terminal workspace outcome (promote / discard) this loop applied,
|
|
835
1122
|
* for the `summarize_current_status` shell answer (Fix 2). RELATIVE file paths
|
|
@@ -904,6 +1191,15 @@ export declare class QuorumLoop {
|
|
|
904
1191
|
} | {
|
|
905
1192
|
kind: 'discarded';
|
|
906
1193
|
} | null;
|
|
1194
|
+
/**
|
|
1195
|
+
* Session-owned Class-B ingress. The subscription calls this wrapper instead
|
|
1196
|
+
* of invoking the LocalExecutor directly, making delivery admission atomic
|
|
1197
|
+
* with the teardown fence. A packet accepted before shutdown is drained;
|
|
1198
|
+
* packets delivered after shutdown are ignored before verification or side
|
|
1199
|
+
* effects. TaskAuthorized gets a narrow terminal admission so its already-
|
|
1200
|
+
* delivered promote can finish before disposal enumerates the task.
|
|
1201
|
+
*/
|
|
1202
|
+
consumeClassB(packet: ClassBInbound, envelopeTaskId?: string): Promise<void>;
|
|
907
1203
|
/** The DI callbacks the shell wires into its ClassBConsumer. */
|
|
908
1204
|
classBConsumerDeps(): {
|
|
909
1205
|
classBSignatureVerifier: (packet: import('../local-executor/types').ClassBInbound) => Promise<boolean>;
|
|
@@ -1000,14 +1296,15 @@ export declare class QuorumLoop {
|
|
|
1000
1296
|
*/
|
|
1001
1297
|
setTeamAttachments(taskGroupId: string, attachments: ImageAttachment[]): void;
|
|
1002
1298
|
/**
|
|
1003
|
-
* CP-12 W2.b (§3.C.3) — read the brief for
|
|
1299
|
+
* CP-12 W2.b (§3.C.3) — read the brief for a team track. The
|
|
1004
1300
|
* `registerTeamTask` bridge (wired in the shell) reads this when `TrackAssigned`
|
|
1005
1301
|
* correlates a track to its child `task_id`; recovery PASS 2 reads it for a
|
|
1006
1302
|
* relaunched track. Empty string when the user issued no `description` for the
|
|
1007
1303
|
* track (a track with no brief runs an empty-brief round-0; the engine's #EF-1
|
|
1008
|
-
* born-halt surfaces it).
|
|
1304
|
+
* born-halt surfaces it). Recovery callers pass task/generation so the
|
|
1305
|
+
* complete-authority store is consulted; two-argument calls are diagnostic.
|
|
1009
1306
|
*/
|
|
1010
|
-
getTeamBrief(taskGroupId: string, trackIndex: number): string;
|
|
1307
|
+
getTeamBrief(taskGroupId: string, trackIndex: number, taskId?: string, dispatchGeneration?: number): string;
|
|
1011
1308
|
/**
|
|
1012
1309
|
* CP-12 W2.b (§3.C.3 / M5) — the brief→task_id bridge. `launchTrack` calls this
|
|
1013
1310
|
* at `TrackAssigned` (the FIRST surface carrying both `track_index` AND the
|
|
@@ -1024,10 +1321,19 @@ export declare class QuorumLoop {
|
|
|
1024
1321
|
agent: AgentKind;
|
|
1025
1322
|
taskGroupId: string;
|
|
1026
1323
|
trackIndex: number;
|
|
1324
|
+
/** Optional only for direct legacy test/recovery callers. */
|
|
1325
|
+
dispatchGeneration?: number;
|
|
1326
|
+
/**
|
|
1327
|
+
* Recovery/direct-call correlation when the caller already has the
|
|
1328
|
+
* engine gate id. Live TrackAssigned callers omit it and use the exact
|
|
1329
|
+
* deterministic engine formula.
|
|
1330
|
+
*/
|
|
1331
|
+
gateRunId?: string;
|
|
1027
1332
|
writePaths: string[];
|
|
1028
1333
|
autoModifiedFiles: string[];
|
|
1029
1334
|
testSurfaces: string[];
|
|
1030
|
-
}): Promise<
|
|
1335
|
+
}): Promise<'accepted' | 'refused'>;
|
|
1336
|
+
private registerTeamTaskBriefOwned;
|
|
1031
1337
|
/**
|
|
1032
1338
|
* CP-12 W2.b (§3.C.2) — the TEAM analogue of the single-impl round-0 spawn.
|
|
1033
1339
|
* Routes by the OUTER envelope's `task_id` (the payload has none): resolves
|
|
@@ -1059,19 +1365,11 @@ export declare class QuorumLoop {
|
|
|
1059
1365
|
private replaceShadowForRound0Locked;
|
|
1060
1366
|
/**
|
|
1061
1367
|
* CP-14 P1 — the team execution model this session SIGNALS on
|
|
1062
|
-
* `createTaskGroup` (`executionModel`).
|
|
1063
|
-
*
|
|
1064
|
-
*
|
|
1368
|
+
* `createTaskGroup` (`executionModel`). `worktree_merge` is retained as the
|
|
1369
|
+
* wire label; locally it means reviewed bundles integrated in a disposable
|
|
1370
|
+
* filesystem snapshot, with no Git requirement.
|
|
1065
1371
|
*/
|
|
1066
1372
|
teamExecutionModel(): TeamExecution;
|
|
1067
|
-
/**
|
|
1068
|
-
* CP-14 Wave A — the ONE pinned group base SHA (memoized): `git rev-parse HEAD`
|
|
1069
|
-
* in the workspace, captured at the FIRST track of the group, BEFORE any track
|
|
1070
|
-
* shadow/branch is created, so every track roots at the same base (Stage-1
|
|
1071
|
-
* MED-3). Concurrent callers share one rev-parse via the in-flight promise.
|
|
1072
|
-
* Throws if HEAD can't be resolved (a non-git workspace is ineligible upstream).
|
|
1073
|
-
*/
|
|
1074
|
-
private ensureGroupBaseSha;
|
|
1075
1373
|
/**
|
|
1076
1374
|
* CP-1.f execute-first (§4) — ensure the per-task SHADOW exists, creating it
|
|
1077
1375
|
* BEFORE the round-0 spawn. Idempotent: round-0 + an early GATE_DISPATCH
|
|
@@ -1101,6 +1399,8 @@ export declare class QuorumLoop {
|
|
|
1101
1399
|
agent: AgentKind;
|
|
1102
1400
|
sessionKey: string;
|
|
1103
1401
|
mode?: ImplementorMode;
|
|
1402
|
+
/** Immutable team-generation authority captured at packet admission. */
|
|
1403
|
+
teamAuthority?: TeamRunAuthority;
|
|
1104
1404
|
/**
|
|
1105
1405
|
* CP-12 W2.b (§3.C.2b option a / H3) — TEAM only. After `captureDiff` and
|
|
1106
1406
|
* BEFORE submit, validate every changed file against the track's declared
|
|
@@ -1116,13 +1416,27 @@ export declare class QuorumLoop {
|
|
|
1116
1416
|
testSurfaces: string[];
|
|
1117
1417
|
trackIndex: number;
|
|
1118
1418
|
};
|
|
1419
|
+
/**
|
|
1420
|
+
* A1b — the implementor's OWN summary from the prior round, threaded by
|
|
1421
|
+
* `handleReviseFeedback` so the revise implementor does not re-derive its
|
|
1422
|
+
* own reasoning. Appended to the STDIN payload ONLY (self-visibility) —
|
|
1423
|
+
* NEVER to `args.brief`, which becomes the execute-first `task_brief`
|
|
1424
|
+
* rendered into the reviewer prompts (OQ-REVIEWER-RATIONALE: GA reviewers
|
|
1425
|
+
* see NO rationale; the flag-gated reviewer path is separate).
|
|
1426
|
+
*/
|
|
1427
|
+
priorRationale?: {
|
|
1428
|
+
round: number;
|
|
1429
|
+
text: string;
|
|
1430
|
+
};
|
|
1119
1431
|
}): Promise<void>;
|
|
1432
|
+
private runImplementorRoundOwned;
|
|
1120
1433
|
/**
|
|
1121
1434
|
* Extract the agent's informational stdout summary (audit-only; reviewers
|
|
1122
1435
|
* never see it — they review the captured diff). Best-effort: a failure to
|
|
1123
1436
|
* read the summary is NON-fatal (the diff is the source of truth). For Codex
|
|
1124
|
-
* the clean reply is the `--output-last-message` temp file;
|
|
1125
|
-
*
|
|
1437
|
+
* the clean reply is the `--output-last-message` temp file; Claude
|
|
1438
|
+
* `--print --output-format json` is unwrapped to `.result`. (Gemini was SUNSET
|
|
1439
|
+
* in 2026-07 — its JSON-envelope unwrap branch was removed; it is never spawned.)
|
|
1126
1440
|
*/
|
|
1127
1441
|
private extractAgentSummary;
|
|
1128
1442
|
/**
|
|
@@ -1164,6 +1478,17 @@ export declare class QuorumLoop {
|
|
|
1164
1478
|
* `gateId` is the track's CURRENT round-N reviewer_quorum gate; REQUIRED for a
|
|
1165
1479
|
* revisable reason (the engine rejects a revisable marker without it). The
|
|
1166
1480
|
* TERMINAL-reason callers omit it.
|
|
1481
|
+
*
|
|
1482
|
+
* @returns `autoRevised` — whether the engine's AUTHORITATIVE returned
|
|
1483
|
+
* `trackState` was non-`Failed` (W2 auto-revise: the track stays InFlight and
|
|
1484
|
+
* a `REVISE_FEEDBACK` for the SAME taskId follows). A1b (Stage-2 R2 Codex
|
|
1485
|
+
* MEDIUM-1): the revisable-reason callers key their `discardShadow`
|
|
1486
|
+
* `preserveReviseContext` on THIS, so an auto-revised track's revise round
|
|
1487
|
+
* still sees the accumulated notes/history/rationale, while a genuinely
|
|
1488
|
+
* terminal track (Failed return, thrown/absent marker → state unknown, no
|
|
1489
|
+
* taskGroupId) clears as before. A thrown marker whose write actually landed
|
|
1490
|
+
* server-side is the one lossy edge (the engine may revise while the desktop
|
|
1491
|
+
* cleared) — that degrades to the pre-A1b contextless brief, never worse.
|
|
1167
1492
|
*/
|
|
1168
1493
|
private reportTeamTrackFailure;
|
|
1169
1494
|
/**
|
|
@@ -1204,6 +1529,21 @@ export declare class QuorumLoop {
|
|
|
1204
1529
|
* `TaskGroupHalted` convergence is the authoritative group resolution).
|
|
1205
1530
|
*/
|
|
1206
1531
|
reportTeamTrackUserResolved(taskId: string, postAction: PostDecisionAction): void;
|
|
1532
|
+
/**
|
|
1533
|
+
* Authoritative TaskGroupHalted bridge from LocalExecutor. Calling this async
|
|
1534
|
+
* method publishes the terminal group fence synchronously (before its first
|
|
1535
|
+
* await), then stops the actual QuorumLoop-owned pending/active implementors,
|
|
1536
|
+
* drains their complete round coroutines and bundle publications, and retires
|
|
1537
|
+
* every exact snapshot for the halted generation.
|
|
1538
|
+
*/
|
|
1539
|
+
haltTeamTaskGroup(input: {
|
|
1540
|
+
taskGroupId: string;
|
|
1541
|
+
members: readonly {
|
|
1542
|
+
taskId: string;
|
|
1543
|
+
trackIndex: number;
|
|
1544
|
+
dispatchGeneration: number;
|
|
1545
|
+
}[];
|
|
1546
|
+
}): Promise<void>;
|
|
1207
1547
|
/**
|
|
1208
1548
|
* CP-1.f execute-first — discard the task's shadow (a non-TaskAuthorized
|
|
1209
1549
|
* terminal). Best-effort: a teardown failure is logged + leaves the durable
|
|
@@ -1233,7 +1573,38 @@ export declare class QuorumLoop {
|
|
|
1233
1573
|
* runImplementorRound) the behavior is exactly as before — discard whatever is
|
|
1234
1574
|
* currently mapped for the task.
|
|
1235
1575
|
*/
|
|
1236
|
-
discardShadow(taskId: string, expected?: WorkspaceShadow
|
|
1576
|
+
discardShadow(taskId: string, expected?: WorkspaceShadow, opts?: {
|
|
1577
|
+
/**
|
|
1578
|
+
* A1b (Stage-2 R1 Codex MEDIUM-1) — set by the NON-terminal discard
|
|
1579
|
+
* callers where the TASK continues on the SAME taskId after the shadow
|
|
1580
|
+
* is gone: the quota fork (`handleQuotaExhaustedFork` → continuation →
|
|
1581
|
+
* `resumeFromContinuation(input.taskId)`) and the four mid-round
|
|
1582
|
+
* `handoffClaimed` takeover suppressions (a `/continue request` /
|
|
1583
|
+
* foreign-accept claims the handoff, then the continuation resumes the
|
|
1584
|
+
* same task). On those paths the accumulated revise context — binding
|
|
1585
|
+
* user notes, structured findings history, implementor rationale — MUST
|
|
1586
|
+
* survive into the resumed rounds; wiping it here was exactly the
|
|
1587
|
+
* "resume starts amnesiac" defect. Terminal discards (user
|
|
1588
|
+
* reject/abort, policy rejection, born-halt, round failure,
|
|
1589
|
+
* all-agents-exhausted) omit this and clear as before. If the user
|
|
1590
|
+
* DECLINES the continuation offer, the preserved maps simply linger
|
|
1591
|
+
* until the task's eventual terminal (bounded: per-task caps), or
|
|
1592
|
+
* process end — an accepted, documented residual.
|
|
1593
|
+
*/
|
|
1594
|
+
preserveReviseContext?: boolean;
|
|
1595
|
+
/**
|
|
1596
|
+
* P10 E3 r4 (Stage-1 r4 M-1) — set by `onTerminalDecision` for the
|
|
1597
|
+
* `restart_proposal` discard ONLY: the restart reuses the SAME taskId
|
|
1598
|
+
* and runs a fresh round-0, so the `discarded` closer must NOT carry
|
|
1599
|
+
* the taskId (a stamped closer would flip the session-listing record
|
|
1600
|
+
* to 'cancelled' and the M3 no-resurrect guard would lock it there —
|
|
1601
|
+
* even after the restarted task promotes). Deliberately does NOT touch
|
|
1602
|
+
* the revise-context clear or `terminallyRetiredWorkspaceTasks` — a
|
|
1603
|
+
* restart is a fresh round-0 (context cleared as before); ONLY the
|
|
1604
|
+
* listing stamp is suppressed.
|
|
1605
|
+
*/
|
|
1606
|
+
taskContinues?: boolean;
|
|
1607
|
+
}): Promise<void>;
|
|
1237
1608
|
private discardShadowLocked;
|
|
1238
1609
|
/**
|
|
1239
1610
|
* CP-1.f execute-first (#PR-1/#PR-3) — promote the task's shadow onto the real
|
|
@@ -1374,9 +1745,8 @@ export declare class QuorumLoop {
|
|
|
1374
1745
|
* path (that defeats the moat).
|
|
1375
1746
|
*
|
|
1376
1747
|
* TRI-STATE (decided here, mirroring the implementor LE):
|
|
1377
|
-
* 1. No engager wired OR `CODEVIBE_SANDBOX_REVIEWERS`
|
|
1378
|
-
*
|
|
1379
|
-
* No badge.
|
|
1748
|
+
* 1. No engager wired OR `CODEVIBE_SANDBOX_REVIEWERS=0` opted out (the gate
|
|
1749
|
+
* DEFAULTS ON — R7 A4) → LEGACY (byte-identical non-regression). No badge.
|
|
1380
1750
|
* 1b. No resolvable taskId (cannot scope a per-task broker) → LEGACY + a
|
|
1381
1751
|
* reduced-trust badge (Stage-2 r1 Codex LOW — a trust-downgrade must be
|
|
1382
1752
|
* VISIBLE, never a silent ambient-cred fallback; see
|
|
@@ -1409,8 +1779,8 @@ export declare class QuorumLoop {
|
|
|
1409
1779
|
private surfaceReviewerReducedTrust;
|
|
1410
1780
|
/**
|
|
1411
1781
|
* Wave B §2.1 confinement TRI-STATE for a merge-gate model/reviewer invocation
|
|
1412
|
-
* (LOCK #C14-MOAT). Path A: the CP-7 substrate/broker (opted
|
|
1413
|
-
* + engage succeeds → a handle; no ambient vendor cred in the child). Path B: a
|
|
1782
|
+
* (LOCK #C14-MOAT). Path A: the CP-7 substrate/broker (not opted out + a Trusted
|
|
1783
|
+
* agent + engage succeeds → a handle; no ambient vendor cred in the child). Path B: a
|
|
1414
1784
|
* trusted-container boundary (legacy spawn confined by the OUTER container — the
|
|
1415
1785
|
* dogfood/E2E path). Path C: neither → NOT confined. A path-A engage that
|
|
1416
1786
|
* throws/reduced-trusts falls through to B/C (both safe: B confined, C refuses),
|
|
@@ -1431,6 +1801,37 @@ export declare class QuorumLoop {
|
|
|
1431
1801
|
caller: ConflictModelCaller;
|
|
1432
1802
|
teardown: () => Promise<void>;
|
|
1433
1803
|
} | null>;
|
|
1804
|
+
/**
|
|
1805
|
+
* A1d (Stage-2 R1 Codex MED) — the RESOLVER-SPECIFIC construction probe:
|
|
1806
|
+
* can the DISPATCH-time `requireConfined` engage establish a confining
|
|
1807
|
+
* substrate on this host? Wire-vs-legacy ONLY — the dispatch's own engage
|
|
1808
|
+
* (`spawnImplementor({ requireConfined: true })`) remains the sole
|
|
1809
|
+
* load-bearing gate; a probe mistake can never yield an unconfined spawn.
|
|
1810
|
+
*
|
|
1811
|
+
* - A real §6 Q2 ladder tier (`sandbox_exec` / `docker`) → ESTABLISHABLE.
|
|
1812
|
+
* A5 covers EVERY agent: the CP-7 broker substrate for the
|
|
1813
|
+
* provider-backed agents (CLAUDE/CODEX) AND the A1d write-confined
|
|
1814
|
+
* resolver row for the broker-less agents (GEMINI/ANTIGRAVITY). The
|
|
1815
|
+
* docker tier covers the provider-backed agents; a broker-less track's
|
|
1816
|
+
* slot on that tier fail-closes at dispatch to the clean
|
|
1817
|
+
* `dispatch_unconfined` human-gate (FD-2) — no worse than unwired for
|
|
1818
|
+
* that slot, and it does not block provider-backed slots in the group.
|
|
1819
|
+
* - No tier + trusted container → ESTABLISHABLE (the PRESERVED
|
|
1820
|
+
* D5-AMEND-1 posture: the closure wires and every slot fail-closes
|
|
1821
|
+
* cleanly at dispatch — dogfood-verified 2026-07-03, 101ms human-gate).
|
|
1822
|
+
* - No tier, no container → NOT establishable → the closure stays
|
|
1823
|
+
* unwired, keeping today's IMMEDIATE legacy human-gate instead of
|
|
1824
|
+
* converting it into a per-slot spawn-time fail-close.
|
|
1825
|
+
*
|
|
1826
|
+
* Deliberately DECOUPLED from `engageWaveBConfinement` and its
|
|
1827
|
+
* `CODEVIBE_SANDBOX_REVIEWERS` gate (default-ON, `=0` opts out — R7 A4):
|
|
1828
|
+
* that flag gates REVIEWER sandboxing (per-seat, `makeConflictModelCaller`,
|
|
1829
|
+
* Tier-2) exactly as before — riding
|
|
1830
|
+
* it here made the A1d resolver row unreachable on the default bare host.
|
|
1831
|
+
* The ladder select is side-effect-free (no launch, no broker); test seams
|
|
1832
|
+
* via `deps.resolverProbeDeps`.
|
|
1833
|
+
*/
|
|
1834
|
+
private probeResolverDispatchConfinement;
|
|
1434
1835
|
/**
|
|
1435
1836
|
* CP-14 WB2 §2.1/§2.2/§2.3 — build the AGENTIC class-2 resolver, or `null` on
|
|
1436
1837
|
* path C (no confinement). When wired, a slot's class-2 conflicts are resolved
|
|
@@ -1438,11 +1839,19 @@ export declare class QuorumLoop {
|
|
|
1438
1839
|
* disposable repo, then fd-safe selective-importing ONLY the conflicted files.
|
|
1439
1840
|
* SECURITY-CRITICAL — fail-closed on BOTH layers:
|
|
1440
1841
|
*
|
|
1441
|
-
* 1. CONSTRUCTION-time (
|
|
1442
|
-
* `
|
|
1443
|
-
*
|
|
1444
|
-
*
|
|
1445
|
-
*
|
|
1842
|
+
* 1. CONSTRUCTION-time — the RESOLVER-SPECIFIC probe (A1d, Stage-2 R1 Codex
|
|
1843
|
+
* MED): `probeResolverDispatchConfinement` wires the closure iff the
|
|
1844
|
+
* DISPATCH-time engage could establish a confining substrate on this
|
|
1845
|
+
* host (a real §6 Q2 ladder tier, or the preserved trusted-container
|
|
1846
|
+
* posture). Deliberately DECOUPLED from `engageWaveBConfinement`'s
|
|
1847
|
+
* `CODEVIBE_SANDBOX_REVIEWERS` gate (default-ON post-R7-A4) — that flag
|
|
1848
|
+
* gates REVIEWER
|
|
1849
|
+
* sandboxing (seat/`makeConflictModelCaller`/Tier-2, unchanged), and
|
|
1850
|
+
* riding it here made the A1d write-confined resolver row unreachable
|
|
1851
|
+
* on the default bare-host path. Unwired → return `null` →
|
|
1852
|
+
* `resolveAgentic` is NOT set on the context → a fresh class-2 conflict
|
|
1853
|
+
* takes the legacy `caller` path (which on path C is the
|
|
1854
|
+
* CONFINEMENT-UNAVAILABLE caller → human-gate).
|
|
1446
1855
|
* 2. DISPATCH-time (Stage-2 Codex HIGH — confinement BOUND TO THE ACTUAL SPAWN):
|
|
1447
1856
|
* `dispatchImplementor` spawns with `requireConfined: true`, so
|
|
1448
1857
|
* `LocalExecutor.spawnImplementor` → `engageSubstrateForSpawn` THROWS
|
|
@@ -1536,6 +1945,26 @@ export declare class QuorumLoop {
|
|
|
1536
1945
|
* re-delivered packet (or the next live edge) promotes it.
|
|
1537
1946
|
*/
|
|
1538
1947
|
recoverShadows(): Promise<void>;
|
|
1948
|
+
private recoverShadowsOwned;
|
|
1949
|
+
/**
|
|
1950
|
+
* Session-exit ownership boundary. Stop future creates, wait behind every
|
|
1951
|
+
* in-flight per-task lifecycle operation, then synchronously reclaim each
|
|
1952
|
+
* live snapshot. Startup TTL cleanup remains only the SIGKILL/power-loss
|
|
1953
|
+
* fallback, not normal lifecycle management.
|
|
1954
|
+
*/
|
|
1955
|
+
private reconcileUnresolvedBundleRetention;
|
|
1956
|
+
private retireExactShadow;
|
|
1957
|
+
/**
|
|
1958
|
+
* Strict, exhaustive cleanup for task ids this loop owns. It first attempts
|
|
1959
|
+
* every mapped exact instance, then performs a fresh authenticated marker
|
|
1960
|
+
* enumeration and reopens/retire any same-task instance absent from memory.
|
|
1961
|
+
* A final fresh enumeration is the convergence proof. Live foreign owners and
|
|
1962
|
+
* unresolved authority are preserved, but returned as explicit failures.
|
|
1963
|
+
*/
|
|
1964
|
+
private cleanupOwnedTaskSnapshots;
|
|
1965
|
+
disposeWorkspaces(opts?: {
|
|
1966
|
+
strict?: boolean;
|
|
1967
|
+
}): Promise<void>;
|
|
1539
1968
|
/**
|
|
1540
1969
|
* §4.3 — true while a team recovery is seeding briefs (the startup barrier is
|
|
1541
1970
|
* down). The Class B consume path checks this to BUFFER a live TEAM packet
|
|
@@ -1545,17 +1974,18 @@ export declare class QuorumLoop {
|
|
|
1545
1974
|
*/
|
|
1546
1975
|
isRecoverySeeding(): boolean;
|
|
1547
1976
|
/**
|
|
1548
|
-
* §4.3 (Stage-2 r1 Codex MED) — true if
|
|
1549
|
-
* corrupt
|
|
1977
|
+
* §4.3 (Stage-2 r1 Codex MED) — true if the complete team generation carries
|
|
1978
|
+
* a corrupt tombstone or is stale relative to recovered authority. The LE
|
|
1979
|
+
* consults this at the TOP of `launchTrack`
|
|
1550
1980
|
* (before any register / spawn / lease-renewing progress emit) so a tombstoned
|
|
1551
1981
|
* track is refused on the LIVE path as early as on the recovery path — never
|
|
1552
1982
|
* spawning an empty-brief implementor or mutating registry state for it. The
|
|
1553
1983
|
* engine sweeper times the un-launched track out (bounded).
|
|
1554
1984
|
*
|
|
1555
|
-
*
|
|
1556
|
-
*
|
|
1985
|
+
* Production supplies taskId + dispatchGeneration. The optional form remains
|
|
1986
|
+
* only for backward-compatible diagnostics/tests.
|
|
1557
1987
|
*/
|
|
1558
|
-
isTrackTombstoned(taskGroupId: string, trackIndex: number): boolean;
|
|
1988
|
+
isTrackTombstoned(taskGroupId: string, trackIndex: number, taskId?: string, dispatchGeneration?: number): boolean;
|
|
1559
1989
|
/**
|
|
1560
1990
|
* #592 PROVENANCE GUARD (live path) — true if `taskGroupId` is a team group this
|
|
1561
1991
|
* desktop did NOT originate AND this desktop owns ≥1 group. Wired to the LE's
|
|
@@ -1659,6 +2089,8 @@ export declare class QuorumLoop {
|
|
|
1659
2089
|
* so this method just seeds + relaunches (it is always invoked under a barrier
|
|
1660
2090
|
* that is already down, and may run multiple times within one barrier window).
|
|
1661
2091
|
*/
|
|
2092
|
+
private normalizeTeamRecoveryRow;
|
|
2093
|
+
private normalizeTeamRecoveryRows;
|
|
1662
2094
|
recoverTeamTracks(rows: TeamTrackRecoveryRow[]): Promise<void>;
|
|
1663
2095
|
/**
|
|
1664
2096
|
* §4.1 PASS 2 (one row) — validate → recoverLaunchTrack → repair-on-duplicate →
|
|
@@ -1717,20 +2149,44 @@ export declare class QuorumLoop {
|
|
|
1717
2149
|
* literal NEVER appearing in this file. The branch is `NODE_ENV==='test'`-gated
|
|
1718
2150
|
* so it is never evaluated in prod regardless.
|
|
1719
2151
|
*/
|
|
2152
|
+
/**
|
|
2153
|
+
* #585 §5.5 / L2 + GA [A2] — parse the force-quota test seam's VALUE grammar.
|
|
2154
|
+
* Returns `null` outside `NODE_ENV === 'test'` or when the fragment-assembled
|
|
2155
|
+
* force-quota env var is unset. The env-var KEY is assembled from fragments so
|
|
2156
|
+
* the force-quota literal NEVER appears verbatim in the published bundle (the
|
|
2157
|
+
* `verify-no-test-hooks` CI grep asserts its absence); the whole gate is ALSO
|
|
2158
|
+
* `NODE_ENV==='test'`-gated so it is never evaluated in prod.
|
|
2159
|
+
*
|
|
2160
|
+
* Value grammar (GA [A2] additive extension — same env var, no new hook, so
|
|
2161
|
+
* the hostile-grep list is unchanged):
|
|
2162
|
+
* - `<AGENT>` — classic mode: synthetic quota stderr + forced
|
|
2163
|
+
* EMPTY diff → drives the born-halt continuation
|
|
2164
|
+
* fork (the `continuation-handoff-quota` E2E).
|
|
2165
|
+
* - `<AGENT>:partial` — mid-task partial-diff mode: synthetic quota
|
|
2166
|
+
* stderr, but the captured diff is KEPT so the
|
|
2167
|
+
* loop's submit-partial-to-review degradation is
|
|
2168
|
+
* exercised instead of the fork (an implementor
|
|
2169
|
+
* quota-killed MID-TASK with partial work present).
|
|
2170
|
+
* Both segments are case-insensitive.
|
|
2171
|
+
*/
|
|
2172
|
+
private forcedQuotaSpec;
|
|
1720
2173
|
/**
|
|
1721
2174
|
* #585 §5.5 / L2 — the SINGLE source of the force-quota test gate. Returns true
|
|
1722
2175
|
* when (a) `NODE_ENV === 'test'` AND (b) the fragment-assembled force-quota env
|
|
1723
|
-
* var names `agent
|
|
1724
|
-
*
|
|
1725
|
-
*
|
|
1726
|
-
* the
|
|
1727
|
-
*
|
|
1728
|
-
*
|
|
1729
|
-
* two halves that make the `continuation-handoff-quota` E2E reproducible (a real
|
|
1730
|
-
* model will not deterministically exit with NO diff, which the quota fork
|
|
1731
|
-
* requires).
|
|
2176
|
+
* var names `agent` (either value-grammar mode — see `forcedQuotaSpec`).
|
|
2177
|
+
* Drives BOTH the synthetic quota stderr (`resolveQuotaClassificationText`)
|
|
2178
|
+
* AND the capture-site diff handling (`runImplementorRound`): classic mode
|
|
2179
|
+
* forces the EMPTY-diff born-halt (a real model will not deterministically
|
|
2180
|
+
* exit with NO diff, which the quota fork requires); `:partial` mode keeps
|
|
2181
|
+
* the captured diff (GA [A2] — validates submit-partial-to-review).
|
|
1732
2182
|
*/
|
|
1733
2183
|
private isForcedQuotaAgent;
|
|
2184
|
+
/**
|
|
2185
|
+
* GA [A2] — true when the force-quota seam is armed in `:partial` mode (see
|
|
2186
|
+
* `forcedQuotaSpec` grammar). Only meaningful alongside `isForcedQuotaAgent`;
|
|
2187
|
+
* prod-unreachable through the same `NODE_ENV==='test'` gate.
|
|
2188
|
+
*/
|
|
2189
|
+
private isForcedQuotaPartialDiffMode;
|
|
1734
2190
|
/**
|
|
1735
2191
|
* Test seam — force the ROUND-0 implementor agent (overriding the session
|
|
1736
2192
|
* default). `NODE_ENV==='test'`-gated; the env key is fragment-assembled so the
|
|
@@ -1799,6 +2255,7 @@ export declare class QuorumLoop {
|
|
|
1799
2255
|
decision: string;
|
|
1800
2256
|
action: PostDecisionAction;
|
|
1801
2257
|
}): Promise<void>;
|
|
2258
|
+
private onApplyUserDecisionEchoOwned;
|
|
1802
2259
|
/**
|
|
1803
2260
|
* #585 §3.5 / #C10M-11/13 — resume the task with the user's chosen agent.
|
|
1804
2261
|
* The SERVER has ALREADY minted the `nextGateId` row + advanced to
|
|
@@ -1815,6 +2272,7 @@ export declare class QuorumLoop {
|
|
|
1815
2272
|
resumeFromContinuation(input: {
|
|
1816
2273
|
taskId: string;
|
|
1817
2274
|
targetAgent: AgentKind;
|
|
2275
|
+
sourceGateId?: string;
|
|
1818
2276
|
nextGateId: string;
|
|
1819
2277
|
nextRound: number;
|
|
1820
2278
|
}): Promise<boolean>;
|
|
@@ -1864,6 +2322,61 @@ export declare class QuorumLoop {
|
|
|
1864
2322
|
* user requirement.
|
|
1865
2323
|
*/
|
|
1866
2324
|
private buildReviseBrief;
|
|
2325
|
+
/**
|
|
2326
|
+
* A1b — append one structured reviewer verdict to the task's findings
|
|
2327
|
+
* history (called from `submitVerdict`). Per-field caps bound each record
|
|
2328
|
+
* (reasoning ≤ HISTORY_REASONING_MAX_CHARS, each suggestion ≤
|
|
2329
|
+
* HISTORY_SUGGESTION_MAX_CHARS); a per-(task, round) SOFT byte cap degrades
|
|
2330
|
+
* later same-round records to verdict-only stubs (seat + verdict stay
|
|
2331
|
+
* visible; the byte-heavy narrative is dropped) so a pathological panel can
|
|
2332
|
+
* never balloon the in-memory history.
|
|
2333
|
+
*/
|
|
2334
|
+
private recordRoundFinding;
|
|
2335
|
+
/**
|
|
2336
|
+
* A1b — record the implementor's own per-round summary as its rationale,
|
|
2337
|
+
* stamped with the round that produced it (LOW-4). Empty/whitespace
|
|
2338
|
+
* summaries are skipped (the entry's ABSENCE is what keeps labels honest —
|
|
2339
|
+
* a later consumer renders the newest entry's OWN round, never an inferred
|
|
2340
|
+
* one); each entry is char-capped and the per-task list keeps only the
|
|
2341
|
+
* newest RATIONALE_MAX_ENTRIES (defensive — a task's round count is already
|
|
2342
|
+
* bounded upstream).
|
|
2343
|
+
*/
|
|
2344
|
+
private recordImplementorRationale;
|
|
2345
|
+
/**
|
|
2346
|
+
* A1b — the task's accumulated rationale as ONE bounded string (newest
|
|
2347
|
+
* entries win: oldest are dropped first, and the survivor text is hard
|
|
2348
|
+
* byte-capped). `null` when the task has no rationale (or no task resolved)
|
|
2349
|
+
* so callers can keep their no-rationale shape byte-identical.
|
|
2350
|
+
*/
|
|
2351
|
+
private boundedRationale;
|
|
2352
|
+
/**
|
|
2353
|
+
* A1d / P2 resolver-intent (design §5/§8.1) — build the bounded INTENT
|
|
2354
|
+
* projection for one agentic slot resolve:
|
|
2355
|
+
*
|
|
2356
|
+
* - "each track's brief + task intent" → the INCOMING track's brief
|
|
2357
|
+
* (THEIRS) + the group's other registered tracks' briefs (OURS — the
|
|
2358
|
+
* integration tip is the base plus the already-merged tracks), from the
|
|
2359
|
+
* desktop-local `activeBriefByTask` registry (never on the wire), each
|
|
2360
|
+
* capped to `RESOLVER_TRACK_BRIEF_MAX_BYTES`.
|
|
2361
|
+
* - "both tracks' intent diffs" → bounded `base→theirs` / `base→ours`
|
|
2362
|
+
* hermetic diffs (≤ `RESOLVER_INTENT_DIFF_MAX_BYTES` per side). An
|
|
2363
|
+
* over-budget/unreadable side degrades to a placeholder line; a
|
|
2364
|
+
* binary/non-UTF-8-bearing diff (NUL / U+FFFD) likewise (mirrors the
|
|
2365
|
+
* Tier-2 bundle's placeholder discipline). `baseSha` absent (the
|
|
2366
|
+
* reconstruction-replay caller) → no diffs.
|
|
2367
|
+
*
|
|
2368
|
+
* GRACEFUL-DEGRADE, never gating: intent is an ADDITIVE projection — a
|
|
2369
|
+
* failure to compute any piece must not human-gate a resolve that succeeds
|
|
2370
|
+
* without it (the final-tip Tier-2 gate re-reviews fail-closed regardless).
|
|
2371
|
+
*/
|
|
2372
|
+
private buildResolverIntentContext;
|
|
2373
|
+
/**
|
|
2374
|
+
* A1b — the newest recorded rationale entry for a task (or undefined),
|
|
2375
|
+
* shaped for `runImplementorRound`'s `priorRationale`. The label is the
|
|
2376
|
+
* entry's OWN recorded round (LOW-4) — never an inferred `nextRound - 1`,
|
|
2377
|
+
* which drifts when the immediately previous round produced no summary.
|
|
2378
|
+
*/
|
|
2379
|
+
private latestPriorRationale;
|
|
1867
2380
|
/** @internal — test introspection. */
|
|
1868
2381
|
get _runningSeatsForTests(): ReadonlySet<string>;
|
|
1869
2382
|
/** @internal — test introspection. */
|
|
@@ -1872,6 +2385,19 @@ export declare class QuorumLoop {
|
|
|
1872
2385
|
_setActiveTaskForTests(taskId: string, brief?: string): void;
|
|
1873
2386
|
/** @internal — read a task's accumulated binding user notes. */
|
|
1874
2387
|
_userNotesForTests(taskId: string): readonly string[];
|
|
2388
|
+
/** @internal — A1b: read a task's accumulated structured findings history. */
|
|
2389
|
+
_roundHistoryForTests(taskId: string): readonly RoundFindingRecord[];
|
|
2390
|
+
/** @internal — A1b: read a task's accumulated implementor rationale entries. */
|
|
2391
|
+
_rationaleForTests(taskId: string): readonly RationaleEntry[];
|
|
2392
|
+
/** @internal — A1b: the bounded rationale slice a resolver/reviewer consumer gets. */
|
|
2393
|
+
_boundedRationaleForTests(taskId: string | undefined, maxBytes: number): string | null;
|
|
2394
|
+
/** @internal — A1d: the bounded resolver-intent projection for one slot resolve. */
|
|
2395
|
+
_buildResolverIntentContextForTests(args: {
|
|
2396
|
+
implementorTaskId: string;
|
|
2397
|
+
oursCommit: string;
|
|
2398
|
+
theirsCommit: string;
|
|
2399
|
+
baseSha?: string;
|
|
2400
|
+
}): Promise<ResolverIntentContext>;
|
|
1875
2401
|
/** @internal — read the consumed REVISE_FEEDBACK dedup ids (Stage-2 r1 guard). */
|
|
1876
2402
|
get _seenReviseFeedbackIdsForTests(): ReadonlySet<string>;
|
|
1877
2403
|
/** @internal — read the live in-memory shadow handle for a task (or undefined). */
|
|
@@ -1897,4 +2423,4 @@ export declare class QuorumLoop {
|
|
|
1897
2423
|
_replaceShadowForRound0UnlockedForTests(taskId: string): Promise<void>;
|
|
1898
2424
|
_ensureShadowUnlockedForTests(taskId: string): Promise<WorkspaceShadow>;
|
|
1899
2425
|
}
|
|
1900
|
-
export { reviewerAgentToLeAgent };
|
|
2426
|
+
export { reviewerAgentToLeAgent, renderAgenticResolveBrief };
|