@quantiya/codevibe-claude-plugin 2.0.7 → 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/.claude-plugin/plugin.json +1 -1
- package/dist/server.js +11 -11
- package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +170 -30
- package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/auth/__tests__/keychain-cli.test.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/auth/keychain-cli.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/companion-mode/index.d.ts +14 -0
- package/node_modules/@quantiya/codevibe-core/dist/credential-broker/oauth-account-lock.d.ts +47 -1
- 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/index.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/crypto/open-prompt-id.d.ts +36 -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 +4 -1
- package/node_modules/@quantiya/codevibe-core/dist/index.js +4480 -252
- 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 +17 -3
- 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__/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/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/hosted-class-a-sink.d.ts +27 -0
- 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 +159 -69
- 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 +4 -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/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 +33 -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/orchestration-shell/__tests__/advisory-attachment-journal.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__/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 +47 -58
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/bounded-shutdown.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +36938 -27120
- 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 +7 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/explicit-tty-exit.d.ts +1 -2
- 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 +75 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/index.d.ts +3 -0
- 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 +270 -60
- 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 +15 -4
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/team-decompose.d.ts +10 -10
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/types.d.ts +32 -2
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/workspace-shutdown.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/reviewer/output-parser.d.ts +19 -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/session-rekey.d.ts +4 -3
- 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 +7 -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 +0 -13
- package/node_modules/@quantiya/codevibe-core/dist/substrate/types.d.ts +7 -2
- 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/engage-substrate.d.ts +3 -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/test-publication-authority-setup.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/replay-cursor.d.ts +42 -8
- package/node_modules/@quantiya/codevibe-core/dist/types/encryption.d.ts +5 -0
- package/node_modules/@quantiya/codevibe-core/dist/types/events.d.ts +5 -0
- package/node_modules/@quantiya/codevibe-core/package.json +3 -3
- package/node_modules/es-toolkit/CHANGELOG.md +46 -0
- package/node_modules/es-toolkit/dist/array/partition.d.mts +5 -4
- package/node_modules/es-toolkit/dist/array/partition.d.ts +5 -4
- package/node_modules/es-toolkit/dist/array/unzipWith.js +1 -1
- package/node_modules/es-toolkit/dist/array/unzipWith.mjs +1 -1
- package/node_modules/es-toolkit/dist/browser.global.js +3 -3
- package/node_modules/es-toolkit/dist/compat/_internal/ListIterateeCustom.d.mts +3 -2
- package/node_modules/es-toolkit/dist/compat/_internal/ListIterateeCustom.d.ts +3 -2
- package/node_modules/es-toolkit/dist/compat/_internal/assignValue.js +2 -3
- package/node_modules/es-toolkit/dist/compat/_internal/assignValue.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/_internal/createPadding.js +14 -0
- package/node_modules/es-toolkit/dist/compat/_internal/createPadding.mjs +13 -0
- package/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.js +14 -1
- package/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs +14 -1
- package/node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js +2 -3
- package/node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/_internal/regexMultiByte.js +11 -0
- package/node_modules/es-toolkit/dist/compat/_internal/regexMultiByte.mjs +11 -0
- package/node_modules/es-toolkit/dist/compat/array/every.js +5 -24
- package/node_modules/es-toolkit/dist/compat/array/every.mjs +5 -24
- package/node_modules/es-toolkit/dist/compat/array/filter.d.mts +7 -3
- package/node_modules/es-toolkit/dist/compat/array/filter.d.ts +7 -3
- package/node_modules/es-toolkit/dist/compat/array/filter.js +11 -11
- package/node_modules/es-toolkit/dist/compat/array/filter.mjs +11 -11
- package/node_modules/es-toolkit/dist/compat/array/find.d.mts +10 -6
- package/node_modules/es-toolkit/dist/compat/array/find.d.ts +10 -6
- package/node_modules/es-toolkit/dist/compat/array/find.js +1 -1
- package/node_modules/es-toolkit/dist/compat/array/find.mjs +1 -1
- package/node_modules/es-toolkit/dist/compat/array/findIndex.d.mts +0 -1
- package/node_modules/es-toolkit/dist/compat/array/findIndex.d.ts +0 -1
- package/node_modules/es-toolkit/dist/compat/array/findIndex.js +2 -1
- package/node_modules/es-toolkit/dist/compat/array/findIndex.mjs +2 -1
- package/node_modules/es-toolkit/dist/compat/array/findLast.d.mts +1 -1
- package/node_modules/es-toolkit/dist/compat/array/findLast.d.ts +1 -1
- package/node_modules/es-toolkit/dist/compat/array/findLast.js +12 -12
- package/node_modules/es-toolkit/dist/compat/array/findLast.mjs +12 -12
- package/node_modules/es-toolkit/dist/compat/array/findLastIndex.js +1 -0
- package/node_modules/es-toolkit/dist/compat/array/findLastIndex.mjs +1 -0
- package/node_modules/es-toolkit/dist/compat/array/flatMap.js +3 -2
- package/node_modules/es-toolkit/dist/compat/array/flatMap.mjs +3 -2
- package/node_modules/es-toolkit/dist/compat/array/flatMapDepth.js +2 -2
- package/node_modules/es-toolkit/dist/compat/array/flatMapDepth.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/array/flatten.d.mts +4 -5
- package/node_modules/es-toolkit/dist/compat/array/flatten.d.ts +4 -5
- package/node_modules/es-toolkit/dist/compat/array/flatten.js +14 -15
- package/node_modules/es-toolkit/dist/compat/array/flatten.mjs +14 -15
- package/node_modules/es-toolkit/dist/compat/array/flattenDeep.d.mts +1 -1
- package/node_modules/es-toolkit/dist/compat/array/flattenDeep.d.ts +1 -1
- package/node_modules/es-toolkit/dist/compat/array/flattenDeep.js +2 -2
- package/node_modules/es-toolkit/dist/compat/array/flattenDeep.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/array/flattenDepth.js +18 -2
- package/node_modules/es-toolkit/dist/compat/array/flattenDepth.mjs +18 -2
- package/node_modules/es-toolkit/dist/compat/array/groupBy.js +5 -4
- package/node_modules/es-toolkit/dist/compat/array/groupBy.mjs +4 -3
- package/node_modules/es-toolkit/dist/compat/array/includes.js +8 -3
- package/node_modules/es-toolkit/dist/compat/array/includes.mjs +8 -3
- package/node_modules/es-toolkit/dist/compat/array/intersectionBy.js +12 -5
- package/node_modules/es-toolkit/dist/compat/array/intersectionBy.mjs +12 -5
- package/node_modules/es-toolkit/dist/compat/array/intersectionWith.js +2 -3
- package/node_modules/es-toolkit/dist/compat/array/intersectionWith.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/array/invokeMap.js +3 -7
- package/node_modules/es-toolkit/dist/compat/array/invokeMap.mjs +3 -4
- package/node_modules/es-toolkit/dist/compat/array/lastIndexOf.js +3 -2
- package/node_modules/es-toolkit/dist/compat/array/lastIndexOf.mjs +3 -2
- package/node_modules/es-toolkit/dist/compat/array/nth.js +2 -2
- package/node_modules/es-toolkit/dist/compat/array/nth.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/array/pullAllWith.js +2 -3
- package/node_modules/es-toolkit/dist/compat/array/pullAllWith.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/array/size.js +2 -0
- package/node_modules/es-toolkit/dist/compat/array/size.mjs +2 -0
- package/node_modules/es-toolkit/dist/compat/array/sortedIndexOf.js +2 -3
- package/node_modules/es-toolkit/dist/compat/array/sortedIndexOf.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.js +2 -3
- package/node_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/compat.d.mts +4 -3
- package/node_modules/es-toolkit/dist/compat/compat.d.ts +4 -3
- package/node_modules/es-toolkit/dist/compat/compat.js +10 -11
- package/node_modules/es-toolkit/dist/compat/compat.mjs +10 -11
- package/node_modules/es-toolkit/dist/compat/index.d.mts +4 -3
- package/node_modules/es-toolkit/dist/compat/index.d.ts +4 -3
- package/node_modules/es-toolkit/dist/compat/index.js +10 -9
- package/node_modules/es-toolkit/dist/compat/index.mjs +10 -9
- package/node_modules/es-toolkit/dist/compat/math/inRange.d.mts +5 -2
- package/node_modules/es-toolkit/dist/compat/math/inRange.d.ts +5 -2
- package/node_modules/es-toolkit/dist/compat/math/inRange.js +14 -11
- package/node_modules/es-toolkit/dist/compat/math/inRange.mjs +14 -11
- package/node_modules/es-toolkit/dist/compat/math/maxBy.d.mts +1 -1
- package/node_modules/es-toolkit/dist/compat/math/maxBy.d.ts +1 -1
- package/node_modules/es-toolkit/dist/compat/math/maxBy.js +18 -4
- package/node_modules/es-toolkit/dist/compat/math/maxBy.mjs +18 -4
- package/node_modules/es-toolkit/dist/compat/math/minBy.d.mts +1 -1
- package/node_modules/es-toolkit/dist/compat/math/minBy.d.ts +1 -1
- package/node_modules/es-toolkit/dist/compat/math/minBy.js +18 -4
- package/node_modules/es-toolkit/dist/compat/math/minBy.mjs +18 -4
- package/node_modules/es-toolkit/dist/compat/object/assign.js +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assign.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assignIn.js +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assignIn.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assignInWith.js +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assignInWith.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assignWith.js +2 -3
- package/node_modules/es-toolkit/dist/compat/object/assignWith.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/object/create.js +1 -1
- package/node_modules/es-toolkit/dist/compat/object/create.mjs +1 -1
- package/node_modules/es-toolkit/dist/compat/object/defaults.js +2 -3
- package/node_modules/es-toolkit/dist/compat/object/defaults.mjs +2 -3
- package/node_modules/es-toolkit/dist/compat/object/has.js +1 -1
- package/node_modules/es-toolkit/dist/compat/object/has.mjs +1 -1
- package/node_modules/es-toolkit/dist/compat/object/hasIn.js +1 -1
- package/node_modules/es-toolkit/dist/compat/object/hasIn.mjs +1 -1
- package/node_modules/es-toolkit/dist/compat/object/unset.js +1 -1
- package/node_modules/es-toolkit/dist/compat/object/unset.mjs +1 -1
- package/node_modules/es-toolkit/dist/compat/object/values.js +5 -1
- package/node_modules/es-toolkit/dist/compat/object/values.mjs +5 -1
- package/node_modules/es-toolkit/dist/compat/predicate/isMatchWith.js +4 -5
- package/node_modules/es-toolkit/dist/compat/predicate/isMatchWith.mjs +4 -5
- package/node_modules/es-toolkit/dist/compat/string/camelCase.js +6 -2
- package/node_modules/es-toolkit/dist/compat/string/camelCase.mjs +6 -2
- package/node_modules/es-toolkit/dist/compat/string/kebabCase.js +2 -2
- package/node_modules/es-toolkit/dist/compat/string/kebabCase.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/string/lowerCase.js +2 -2
- package/node_modules/es-toolkit/dist/compat/string/lowerCase.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/string/pad.js +10 -3
- package/node_modules/es-toolkit/dist/compat/string/pad.mjs +10 -3
- package/node_modules/es-toolkit/dist/compat/string/padEnd.js +7 -1
- package/node_modules/es-toolkit/dist/compat/string/padEnd.mjs +7 -1
- package/node_modules/es-toolkit/dist/compat/string/padStart.js +7 -1
- package/node_modules/es-toolkit/dist/compat/string/padStart.mjs +7 -1
- package/node_modules/es-toolkit/dist/compat/string/snakeCase.js +2 -2
- package/node_modules/es-toolkit/dist/compat/string/snakeCase.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/string/startCase.js +1 -1
- package/node_modules/es-toolkit/dist/compat/string/startCase.mjs +1 -1
- package/node_modules/es-toolkit/dist/compat/string/template.d.mts +1 -1
- package/node_modules/es-toolkit/dist/compat/string/template.d.ts +1 -1
- package/node_modules/es-toolkit/dist/compat/string/templateSettings.d.mts +18 -1
- package/node_modules/es-toolkit/dist/compat/string/templateSettings.d.ts +18 -1
- package/node_modules/es-toolkit/dist/compat/string/templateSettings.js +4 -1
- package/node_modules/es-toolkit/dist/compat/string/templateSettings.mjs +5 -1
- package/node_modules/es-toolkit/dist/compat/string/truncate.js +2 -9
- package/node_modules/es-toolkit/dist/compat/string/truncate.mjs +1 -8
- package/node_modules/es-toolkit/dist/compat/string/upperCase.js +2 -2
- package/node_modules/es-toolkit/dist/compat/string/upperCase.mjs +2 -2
- package/node_modules/es-toolkit/dist/compat/util/eq.d.mts +17 -1
- package/node_modules/es-toolkit/dist/compat/util/eq.d.ts +17 -1
- package/node_modules/es-toolkit/dist/compat/util/eq.js +19 -1
- package/node_modules/es-toolkit/dist/compat/util/eq.mjs +19 -1
- package/node_modules/es-toolkit/dist/compat/util/toArray.js +2 -1
- package/node_modules/es-toolkit/dist/compat/util/toArray.mjs +2 -1
- package/node_modules/es-toolkit/dist/fp/flow.d.mts +213 -0
- package/node_modules/es-toolkit/dist/fp/flow.d.ts +213 -0
- package/node_modules/es-toolkit/dist/fp/flow.js +50 -0
- package/node_modules/es-toolkit/dist/fp/flow.mjs +50 -0
- package/node_modules/es-toolkit/dist/fp/index.d.mts +2 -1
- package/node_modules/es-toolkit/dist/fp/index.d.ts +2 -1
- package/node_modules/es-toolkit/dist/fp/index.js +3 -1
- package/node_modules/es-toolkit/dist/fp/index.mjs +3 -2
- package/node_modules/es-toolkit/dist/fp/pipe.js +8 -12
- package/node_modules/es-toolkit/dist/fp/pipe.mjs +8 -12
- package/node_modules/es-toolkit/dist/map/hasValue.js +2 -2
- package/node_modules/es-toolkit/dist/map/hasValue.mjs +2 -2
- package/node_modules/es-toolkit/dist/predicate/isEqualWith.js +2 -3
- package/node_modules/es-toolkit/dist/predicate/isEqualWith.mjs +2 -3
- package/node_modules/es-toolkit/dist/string/deburr.js +1 -1
- package/node_modules/es-toolkit/dist/string/deburr.mjs +1 -1
- package/node_modules/es-toolkit/dist/types/DeepPartial.d.mts +21 -0
- package/node_modules/es-toolkit/dist/types/DeepPartial.d.ts +21 -0
- package/node_modules/es-toolkit/dist/types/DeepReadonly.d.mts +22 -0
- package/node_modules/es-toolkit/dist/types/DeepReadonly.d.ts +22 -0
- package/node_modules/es-toolkit/dist/types/NonEmptyArray.d.mts +14 -0
- package/node_modules/es-toolkit/dist/types/NonEmptyArray.d.ts +14 -0
- package/node_modules/es-toolkit/dist/types/Simplify.d.mts +18 -0
- package/node_modules/es-toolkit/dist/types/Simplify.d.ts +18 -0
- package/node_modules/es-toolkit/dist/types/ValueOf.d.mts +14 -0
- package/node_modules/es-toolkit/dist/types/ValueOf.d.ts +14 -0
- package/node_modules/es-toolkit/dist/types/Writable.d.mts +15 -0
- package/node_modules/es-toolkit/dist/types/Writable.d.ts +15 -0
- package/node_modules/es-toolkit/dist/types/index.d.mts +7 -0
- package/node_modules/es-toolkit/dist/types/index.d.ts +7 -0
- package/node_modules/es-toolkit/package.json +23 -7
- package/node_modules/es-toolkit/types.d.ts +1 -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 +503 -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/media-typer/README.md +15 -14
- package/node_modules/media-typer/index.js +0 -8
- package/node_modules/media-typer/package.json +16 -12
- package/package.json +2 -2
- package/node_modules/@quantiya/codevibe-core/dist/substrate/git-proxy.d.ts +0 -35
- package/node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.d.mts +0 -17
- package/node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.d.ts +0 -17
- package/node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.js +0 -19
- package/node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.mjs +0 -19
- /package/node_modules/@quantiya/codevibe-core/dist/{substrate/__tests__/git-proxy.test.d.ts → appsync/__tests__/refresh-open-prompt-ttl-chunk.test.d.ts} +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { VerificationGateKind } from './class-a-emit';
|
|
2
|
+
import type { GateRunResult } from './verification-runner';
|
|
3
|
+
import { type MetadataBudget } from './bounded-directory';
|
|
4
|
+
import type { PromoteManifestInput, RevertManifestEntry, RevertManifestStore, SnapshotPromotionJournalV1 } from './durable-store';
|
|
5
|
+
import { WorkspaceShadow, type ReviewedShadowDiffFile, type ShadowEnv } from './workspace-shadow';
|
|
6
|
+
import { type WorkspaceRootAuthority } from './workspace-authority';
|
|
7
|
+
export declare const SNAPSHOT_TRACK_BUNDLE_VERSION: 2;
|
|
8
|
+
export interface SnapshotTrackBundle {
|
|
9
|
+
version: typeof SNAPSHOT_TRACK_BUNDLE_VERSION;
|
|
10
|
+
/** Durable authority is scoped to exactly one hosted task group. */
|
|
11
|
+
taskGroupId: string;
|
|
12
|
+
trackIndex: number;
|
|
13
|
+
/** Exact hosted child task/generation whose authorization produced these bytes. */
|
|
14
|
+
taskId: string;
|
|
15
|
+
dispatchGeneration: number;
|
|
16
|
+
/** Exact canonical user-root instance that supplied every reviewed base. */
|
|
17
|
+
workspaceRootAuthority: WorkspaceRootAuthority;
|
|
18
|
+
files: ReviewedShadowDiffFile[];
|
|
19
|
+
testSurfaces: string[];
|
|
20
|
+
createdAtMs: number;
|
|
21
|
+
/** Content address over the reviewed bytes and pre-image hashes. */
|
|
22
|
+
bundleHash: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SnapshotBundlesView {
|
|
25
|
+
bundles: SnapshotTrackBundle[];
|
|
26
|
+
}
|
|
27
|
+
/** Collect declared tests incrementally under one aggregate metadata budget. */
|
|
28
|
+
export declare function collectSnapshotTestSurfaces(bundles: readonly Pick<SnapshotTrackBundle, 'testSurfaces'>[]): string[];
|
|
29
|
+
export declare function createSnapshotTrackBundle(args: {
|
|
30
|
+
taskGroupId: string;
|
|
31
|
+
trackIndex: number;
|
|
32
|
+
taskId?: string;
|
|
33
|
+
dispatchGeneration?: number;
|
|
34
|
+
workspaceRootAuthority: WorkspaceRootAuthority;
|
|
35
|
+
files: readonly ReviewedShadowDiffFile[];
|
|
36
|
+
testSurfaces?: readonly string[];
|
|
37
|
+
nowMs?: number;
|
|
38
|
+
}): SnapshotTrackBundle;
|
|
39
|
+
export type SnapshotMergePlan = {
|
|
40
|
+
status: 'merged';
|
|
41
|
+
files: ReviewedShadowDiffFile[];
|
|
42
|
+
} | {
|
|
43
|
+
status: 'conflict';
|
|
44
|
+
paths: string[];
|
|
45
|
+
reason: string;
|
|
46
|
+
};
|
|
47
|
+
export interface SnapshotMergePlanOptions {
|
|
48
|
+
signal?: AbortSignal;
|
|
49
|
+
/** @internal deterministic aggregate-work ceiling for tests. */
|
|
50
|
+
maxWork?: number;
|
|
51
|
+
/** @internal deterministic planning deadline for tests. */
|
|
52
|
+
timeoutMs?: number;
|
|
53
|
+
}
|
|
54
|
+
/** Charge every file occurrence, including the same path repeated by tracks. */
|
|
55
|
+
export declare function assertSnapshotBundleFileOccurrenceBounds(bundles: readonly Pick<SnapshotTrackBundle, 'files'>[], budget?: MetadataBudget, label?: string): void;
|
|
56
|
+
/** Pure-filesystem N-track merge rooted in each file's reviewed base hash. */
|
|
57
|
+
export declare function planSnapshotMerge(workingDir: string, taskGroupId: string, bundles: readonly SnapshotTrackBundle[], opts?: SnapshotMergePlanOptions): Promise<SnapshotMergePlan>;
|
|
58
|
+
export declare function verifySnapshotTrackBundle(bundle: SnapshotTrackBundle, expectedTaskGroupId: string, sharedBudgets?: {
|
|
59
|
+
files?: MetadataBudget;
|
|
60
|
+
testSurfaces?: MetadataBudget;
|
|
61
|
+
}): void;
|
|
62
|
+
export declare function snapshotPromotionOperationHash(taskGroupId: string, bundles: readonly SnapshotTrackBundle[], gateKinds: readonly VerificationGateKind[]): string;
|
|
63
|
+
export interface RunSnapshotMergeGateArgs {
|
|
64
|
+
workingDir: string;
|
|
65
|
+
taskGroupId: string;
|
|
66
|
+
ownerTrackIndex: number;
|
|
67
|
+
bundles: readonly SnapshotTrackBundle[];
|
|
68
|
+
gateKinds: readonly VerificationGateKind[];
|
|
69
|
+
shadowEnv?: ShadowEnv;
|
|
70
|
+
persistPreImages: (entries: PromoteManifestInput[]) => Promise<void>;
|
|
71
|
+
readPromotion: () => Promise<SnapshotPromotionJournalV1 | null>;
|
|
72
|
+
preparePromotion: (operationHash: string, files: readonly ReviewedShadowDiffFile[], workspaceRootAuthority: WorkspaceRootAuthority) => Promise<void>;
|
|
73
|
+
markPromotionApplied: (operationHash: string) => Promise<void>;
|
|
74
|
+
timeoutMs?: number;
|
|
75
|
+
/** @internal deterministic merge-planning aggregate-work ceiling for tests. */
|
|
76
|
+
mergePlanMaxWork?: number;
|
|
77
|
+
/** @internal deterministic merge-planning deadline for tests. */
|
|
78
|
+
mergePlanTimeoutMs?: number;
|
|
79
|
+
/** Session shutdown signal; checked at every mutation boundary. */
|
|
80
|
+
signal?: AbortSignal;
|
|
81
|
+
/** Register/unregister the disposable integration snapshot with its owner. */
|
|
82
|
+
onShadowCreated?: (shadow: WorkspaceShadow) => void;
|
|
83
|
+
onShadowDisposed?: (shadow: WorkspaceShadow) => void;
|
|
84
|
+
/** @internal deterministic cleanup-safety seam. */
|
|
85
|
+
runGate?: (gateKind: VerificationGateKind, cwd: string, timeoutMs: number, signal?: AbortSignal, workingDirAuthority?: WorkspaceRootAuthority) => Promise<GateRunResult | null>;
|
|
86
|
+
/** @internal swap/race seam immediately before a durable-journal filesystem proof. */
|
|
87
|
+
beforeJournalFileRead?: (path: string) => Promise<void> | void;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* `UNRESOLVED` is deliberately not a wire-level MergeResult. It means durable
|
|
91
|
+
* promotion authority may still describe landed user-tree bytes, so the local
|
|
92
|
+
* executor must leave the hosted gate pending and re-drive reconciliation.
|
|
93
|
+
*/
|
|
94
|
+
export type SnapshotMergeGateResult = 'PASS' | 'FAIL' | 'UNRESOLVED';
|
|
95
|
+
/** Merge, verify, and promote once. Every disposable directory is finally-owned. */
|
|
96
|
+
export declare function runSnapshotMergeGate(args: RunSnapshotMergeGateArgs): Promise<SnapshotMergeGateResult>;
|
|
97
|
+
/** Verify a stored group promotion is exactly present before startup ACK/GC. */
|
|
98
|
+
export declare function verifyStoredSnapshotPromotion(workingDir: string, journal: SnapshotPromotionJournalV1): Promise<boolean>;
|
|
99
|
+
/** Verify that a PREPARED promotion never left its exact reviewed bases. */
|
|
100
|
+
export declare function verifyStoredSnapshotPromotionBases(workingDir: string, journal: SnapshotPromotionJournalV1): Promise<boolean>;
|
|
101
|
+
/** Prove that a pre-PREPARE manifest never crossed its first mutation boundary. */
|
|
102
|
+
export declare function verifyStoredManifestBases(workingDir: string, entries: readonly RevertManifestEntry[]): Promise<boolean>;
|
|
103
|
+
/** Dispose ordinary durable resources authored during this desktop session. */
|
|
104
|
+
export declare function disposeStoredSnapshotSessionResources(store: RevertManifestStore, workingDir: string): Promise<{
|
|
105
|
+
removed: string[];
|
|
106
|
+
retained: string[];
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Retire every active filesystem-promotion state before flipping the group
|
|
110
|
+
* lifecycle accepted. PREPARED may mean either all post-images landed or no
|
|
111
|
+
* mutation landed; both are proven exactly. Any mixed/unknown state remains
|
|
112
|
+
* nonterminal with its pending-decision recovery anchor intact.
|
|
113
|
+
*/
|
|
114
|
+
export declare function finalizeStoredSnapshotGroupAcceptance(store: RevertManifestStore, workingDir: string, taskGroupId: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Reconcile the durable PREPARED/APPLIED journal after the hosted engine has
|
|
117
|
+
* confirmed successful group completion. This is the same exact post-image
|
|
118
|
+
* proof used at startup, but it runs during the live session so ordinary
|
|
119
|
+
* success does not retain bundles, pre-images, or journals until restart.
|
|
120
|
+
*/
|
|
121
|
+
export declare function completeStoredSnapshotGroup(store: RevertManifestStore, workingDir: string, taskGroupId: string): Promise<void>;
|
|
122
|
+
/** Current reviewed mutation authority always carries exact pre/post modes. */
|
|
123
|
+
export declare function assertExactReviewedDiffFile(value: unknown): asserts value is ReviewedShadowDiffFile;
|
|
124
|
+
export declare function assertExactSnapshotPromotionJournal(value: unknown): asserts value is SnapshotPromotionJournalV1;
|
|
@@ -74,12 +74,13 @@ export interface CreateTaskGroupInput {
|
|
|
74
74
|
* CP-14 P1 (§2.1) — the team EXECUTION MODEL: `'worktree_merge' |
|
|
75
75
|
* ({@link TeamExecution}) — always `'worktree_merge'` since the §10
|
|
76
76
|
* retirement (2026-07-03; strict pre-P1 disjointness,
|
|
77
|
-
* byte-identical).
|
|
78
|
-
*
|
|
79
|
-
* overlapping-track dispatch (the
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
* the GraphQL field
|
|
77
|
+
* byte-identical). The value is now a backward-compatible capability label,
|
|
78
|
+
* not a promise that Git or a worktree exists: the desktop integrates reviewed
|
|
79
|
+
* filesystem bundles. It opts the group into overlapping-track dispatch (the
|
|
80
|
+
* desktop integration gate + server-side shared-contract gate become the
|
|
81
|
+
* authority). Snake_case wire value end-to-end (no GraphQL enum) — typed as
|
|
82
|
+
* the {@link TeamExecution} union for compile-time safety; the GraphQL field
|
|
83
|
+
* is `String`.
|
|
83
84
|
*/
|
|
84
85
|
executionModel?: TeamExecution;
|
|
85
86
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** The single
|
|
1
|
+
/** The single backward-compatible wire label; it does not imply a Git dependency. */
|
|
2
2
|
export type TeamExecution = 'worktree_merge';
|
|
3
3
|
/** The hard default — and only — execution model. */
|
|
4
4
|
export declare const DEFAULT_TEAM_EXECUTION: TeamExecution;
|
|
@@ -17,5 +17,5 @@ export declare function isTeamExecution(v: unknown): v is TeamExecution;
|
|
|
17
17
|
* legacy path no longer exists to be selected).
|
|
18
18
|
*/
|
|
19
19
|
export declare function resolveTeamExecution(_override?: TeamExecution | null | undefined, _env?: NodeJS.ProcessEnv): TeamExecution;
|
|
20
|
-
/** True — the
|
|
20
|
+
/** True — the reviewed-bundle merge model is the only execution model. */
|
|
21
21
|
export declare function isWorktreeMergeEnabled(_override?: TeamExecution | null | undefined, _env?: NodeJS.ProcessEnv): boolean;
|
|
@@ -45,6 +45,8 @@ export declare class TrackRegistry {
|
|
|
45
45
|
forGroup(taskGroupId: string): TrackProcess[];
|
|
46
46
|
/** Drop a track entry (e.g., after it terminates). */
|
|
47
47
|
delete(taskGroupId: string, trackIndex: number): void;
|
|
48
|
+
/** Retire all session-owned membership at the terminal disposal boundary. */
|
|
49
|
+
clear(): void;
|
|
48
50
|
/** Test-only — number of tracked processes. */
|
|
49
51
|
get sizeForTests(): number;
|
|
50
52
|
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { ChildProcess } from 'node:child_process';
|
|
2
2
|
import type { SubstrateHandle, SubstrateProc } from '../substrate/types';
|
|
3
3
|
import type { AuthorityRefusal, AuthorityScope } from './authority';
|
|
4
|
+
import type { WorkspaceRootAuthority } from './workspace-authority';
|
|
4
5
|
export type ProcessRole = 'implementor' | 'reviewer' | 'health_probe' | 'auth_probe' | 'model_probe';
|
|
5
6
|
export type AgentKind = 'CLAUDE' | 'GEMINI' | 'CODEX' | 'ANTIGRAVITY';
|
|
6
7
|
export type FailureClass = null | 'quota_exhausted' | 'auth_failed' | 'timeout' | 'unavailable' | 'user_aborted';
|
|
7
8
|
export interface SpawnArgs {
|
|
8
9
|
argv: string[];
|
|
9
10
|
workingDir: string;
|
|
11
|
+
/** Exact cwd incarnation for every task-scoped mutable/verification spawn. */
|
|
12
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
10
13
|
role: ProcessRole;
|
|
11
14
|
agentKind?: AgentKind;
|
|
12
15
|
timeoutMs: number | null;
|
|
@@ -18,6 +21,10 @@ export interface SpawnArgs {
|
|
|
18
21
|
lifecycleAudit?: 'active_task' | 'none';
|
|
19
22
|
onProcessSpawned?: ProcessSpawnedHook;
|
|
20
23
|
onProcessExited?: ProcessExitedHook;
|
|
24
|
+
/** Persist process-group cleanup authority before any unconfined user code runs. */
|
|
25
|
+
onCleanupOwnerReady?: (owner: import('./process-tree').ProcessCleanupOwner) => Promise<void>;
|
|
26
|
+
/** Retire the durable owner only after exact descendant absence is proven. */
|
|
27
|
+
onCleanupOwnerRetired?: (owner: import('./process-tree').ProcessCleanupOwner) => Promise<void>;
|
|
21
28
|
substrate?: SubstrateHandle;
|
|
22
29
|
requireConfined?: boolean;
|
|
23
30
|
}
|
|
@@ -33,9 +40,13 @@ export interface ProcessExitedInfo {
|
|
|
33
40
|
failureClass: FailureClass;
|
|
34
41
|
exitedAt: string;
|
|
35
42
|
runtimeMs: number;
|
|
43
|
+
/** False means owned descendants could not be proven gone; cwd must be retained. */
|
|
44
|
+
workspaceCleanupSafe?: boolean;
|
|
45
|
+
/** Persistable owner used to retry descendant quiescence after failure/restart. */
|
|
46
|
+
workspaceCleanupOwner?: import('./process-tree').ProcessCleanupOwner;
|
|
36
47
|
}
|
|
37
|
-
export type ProcessSpawnedHook = (info: ProcessSpawnedInfo) => void
|
|
38
|
-
export type ProcessExitedHook = (info: ProcessExitedInfo) => void
|
|
48
|
+
export type ProcessSpawnedHook = (info: ProcessSpawnedInfo) => void | Promise<void>;
|
|
49
|
+
export type ProcessExitedHook = (info: ProcessExitedInfo) => void | Promise<void>;
|
|
39
50
|
export interface SpawnHandleBase {
|
|
40
51
|
pid: number;
|
|
41
52
|
role: ProcessRole;
|
|
@@ -374,6 +385,17 @@ export type HookEvent = {
|
|
|
374
385
|
contentB64: string;
|
|
375
386
|
timestamp: string;
|
|
376
387
|
};
|
|
388
|
+
export interface WorkspaceDisposeOptions {
|
|
389
|
+
strict?: boolean;
|
|
390
|
+
/**
|
|
391
|
+
* Fence and drain LocalExecutor activity, but leave shared durable task-group
|
|
392
|
+
* retirement to the session coordinator after Quorum publishers also drain.
|
|
393
|
+
*/
|
|
394
|
+
deferDurableSessionResources?: boolean;
|
|
395
|
+
}
|
|
396
|
+
export interface DurableSessionResourceDisposeOptions {
|
|
397
|
+
strict?: boolean;
|
|
398
|
+
}
|
|
377
399
|
export interface LocalExecutor {
|
|
378
400
|
spawnImplementor(args: SpawnArgs): Promise<ImplementorHandle>;
|
|
379
401
|
spawnReviewer(args: SpawnArgs): Promise<ReviewerHandle>;
|
|
@@ -407,6 +429,13 @@ export interface LocalExecutor {
|
|
|
407
429
|
* implementations / tests.
|
|
408
430
|
*/
|
|
409
431
|
recoverLaunchTrack?(payload: TrackAssignedPayload): Promise<'registered' | 'duplicate' | 'rejected'>;
|
|
432
|
+
/** Reclaim session-owned integration workspaces during normal shell teardown. */
|
|
433
|
+
disposeWorkspaces?(opts?: WorkspaceDisposeOptions): Promise<void>;
|
|
434
|
+
/**
|
|
435
|
+
* Final shared durable-store retirement. The shell invokes this only after
|
|
436
|
+
* both Quorum terminal publishers and LocalExecutor activity have drained.
|
|
437
|
+
*/
|
|
438
|
+
disposeDurableSessionResources?(opts?: DurableSessionResourceDisposeOptions): Promise<void>;
|
|
410
439
|
}
|
|
411
440
|
export interface SpawnedProcess {
|
|
412
441
|
child: ChildProcess | SubstrateProc;
|
|
@@ -415,4 +444,6 @@ export interface SpawnedProcess {
|
|
|
415
444
|
agentKind: AgentKind | undefined;
|
|
416
445
|
spawnedAt: string;
|
|
417
446
|
spawnedAtMs: number;
|
|
447
|
+
/** Direct children have an OS-specific process-tree owner; substrate owns its own. */
|
|
448
|
+
processTreeOwnership: import('./process-tree').ProcessTreeOwnership;
|
|
418
449
|
}
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/build.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface BuildGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
8
|
+
/** @internal deterministic manifest-absence authority seam. */
|
|
9
|
+
beforeManifestAbsence?: () => Promise<void> | void;
|
|
5
10
|
}
|
|
6
11
|
export declare function runBuildGate(args: BuildGateArgs): Promise<GateRunResult>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface DeployPreflightGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
5
7
|
}
|
|
6
8
|
export declare function runDeployPreflightGate(args: DeployPreflightGateArgs): Promise<GateRunResult>;
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/diff-sanity.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
import { type ShadowDiffFile } from '../workspace-shadow';
|
|
1
2
|
import type { GateRunResult } from '../verification-runner';
|
|
3
|
+
import { type WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
4
|
export interface DiffSanityGateArgs {
|
|
3
5
|
cwd: string;
|
|
4
6
|
timeoutMs: number;
|
|
7
|
+
files?: readonly ShadowDiffFile[];
|
|
8
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
9
|
+
/** @internal deterministic root-replacement seam. */
|
|
10
|
+
afterAuthorityCheck?: () => Promise<void> | void;
|
|
11
|
+
/** @internal deterministic A→B→A restoration before the final check. */
|
|
12
|
+
beforeAuthorityCompletion?: () => Promise<void> | void;
|
|
13
|
+
/** @internal deterministic entry replacement/removal after enumeration. */
|
|
14
|
+
beforeFileRead?: (relativePath: string) => Promise<void> | void;
|
|
15
|
+
/** @internal deterministic directory replacement after parent enumeration. */
|
|
16
|
+
beforeDirectoryRead?: (relativePath: string) => Promise<void> | void;
|
|
5
17
|
}
|
|
6
18
|
export declare function runDiffSanityGate(args: DiffSanityGateArgs): Promise<GateRunResult>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface HostileGrepGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
5
7
|
}
|
|
6
8
|
export declare function runHostileGrepGate(args: HostileGrepGateArgs): Promise<GateRunResult>;
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/lint.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface LintGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
5
7
|
}
|
|
6
8
|
export declare function runLintGate(args: LintGateArgs): Promise<GateRunResult>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawn as nodeSpawn } from 'node:child_process';
|
|
2
2
|
import type { GateRunResult } from '../verification-runner';
|
|
3
|
+
import { type WorkspaceRootAuthority } from '../workspace-authority';
|
|
3
4
|
export declare const VERIFICATION_RUNNER_ROLE = "verification_runner";
|
|
4
5
|
export interface ShellRunArgs {
|
|
5
6
|
/** Command to execute (e.g. "cargo", "npm", "git"). */
|
|
@@ -8,8 +9,12 @@ export interface ShellRunArgs {
|
|
|
8
9
|
args: string[];
|
|
9
10
|
/** Working directory — caller (gate wrapper) MUST pass the repo root. */
|
|
10
11
|
cwd: string;
|
|
12
|
+
/** Exact cwd incarnation authorized before any pathname-based gate discovery. */
|
|
13
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
11
14
|
/** Per-gate timeout budget in milliseconds. Required (LOCK #C3E-4). */
|
|
12
15
|
timeoutMs: number;
|
|
16
|
+
/** Cooperative session-shutdown cancellation. */
|
|
17
|
+
signal?: AbortSignal;
|
|
13
18
|
/** Optional extra env overrides on top of the marker injection. */
|
|
14
19
|
extraEnv?: Record<string, string>;
|
|
15
20
|
/** Optional clock seam for tests. Defaults to Date.now. */
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface SourceTraceabilityGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
5
7
|
}
|
|
6
8
|
export declare function runSourceTraceabilityGate(args: SourceTraceabilityGateArgs): Promise<GateRunResult>;
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/tests.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface TestsGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
5
8
|
}
|
|
6
9
|
export declare function runTestsGate(args: TestsGateArgs): Promise<GateRunResult>;
|
package/node_modules/@quantiya/codevibe-core/dist/local-executor/verification-gates/typecheck.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { GateRunResult } from '../verification-runner';
|
|
2
|
+
import type { WorkspaceRootAuthority } from '../workspace-authority';
|
|
2
3
|
export interface TypecheckGateArgs {
|
|
3
4
|
cwd: string;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
workingDirAuthority?: WorkspaceRootAuthority;
|
|
5
8
|
}
|
|
6
9
|
export declare function runTypecheckGate(args: TypecheckGateArgs): Promise<GateRunResult>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ClassAEmitter, ClassAEmitterContext, VerificationGateKind, VerificationResultPayload } from './class-a-emit';
|
|
2
|
+
import { type WorkspaceRootAuthority } from './workspace-authority';
|
|
2
3
|
export declare const DEFAULT_GATE_TIMEOUT_MS = 300000;
|
|
3
4
|
export declare const TIMEOUT_EXIT_CODE = 124;
|
|
4
5
|
export declare const SUMMARY_CAP_BYTES = 4096;
|
|
@@ -8,6 +9,7 @@ export interface VerificationGateRequest {
|
|
|
8
9
|
sessionId: string;
|
|
9
10
|
gateKinds: VerificationGateKind[];
|
|
10
11
|
cwd: string;
|
|
12
|
+
cwdAuthority?: WorkspaceRootAuthority;
|
|
11
13
|
timeoutMsOverride?: number;
|
|
12
14
|
}
|
|
13
15
|
export interface GateRunResult {
|
|
@@ -16,6 +18,10 @@ export interface GateRunResult {
|
|
|
16
18
|
stderr: string;
|
|
17
19
|
durationMs: number;
|
|
18
20
|
timedOut?: boolean;
|
|
21
|
+
/** False means process-tree cleanup was not verified; caller must retain cwd. */
|
|
22
|
+
workspaceCleanupSafe?: boolean;
|
|
23
|
+
/** Persistable owner used to retry quiescence when cleanup was unverified. */
|
|
24
|
+
workspaceCleanupOwner?: import('./process-tree').ProcessCleanupOwner;
|
|
19
25
|
}
|
|
20
26
|
export interface VerificationRunnerDeps {
|
|
21
27
|
emitter: ClassAEmitter;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable identity of the exact user workspace instance that granted an
|
|
3
|
+
* operation authority. The canonical path alone is not authority: another
|
|
4
|
+
* directory can later occupy it with byte-identical content.
|
|
5
|
+
*/
|
|
6
|
+
export interface WorkspaceRootAuthority {
|
|
7
|
+
version: 1;
|
|
8
|
+
canonicalPath: string;
|
|
9
|
+
dev: string;
|
|
10
|
+
ino: string;
|
|
11
|
+
/** Native directory creation timestamp, retained as an inode-reuse fence. */
|
|
12
|
+
birthtimeNs: string;
|
|
13
|
+
}
|
|
14
|
+
export interface WorkspaceAuthorityCaptureOptions {
|
|
15
|
+
/** @internal lower deterministic helper deadline for tests. */
|
|
16
|
+
helperTimeoutMs?: number;
|
|
17
|
+
/** @internal deterministic target-filesystem stall seam. */
|
|
18
|
+
testHangStage?: 'realpath' | 'lstat' | 'open' | 'stat' | 'close';
|
|
19
|
+
}
|
|
20
|
+
export interface WorkspaceRootLease {
|
|
21
|
+
/** Linux procfs magic-link backed by the helper's open cwd reference. */
|
|
22
|
+
readonly procfsPath: string;
|
|
23
|
+
release(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Acquire an original-handle lease for a native-Linux bind mount. The helper's
|
|
27
|
+
* cwd is the authenticated inode; `/proc/<pid>/cwd` therefore remains bound to
|
|
28
|
+
* that inode even when its public pathname is renamed or replaced.
|
|
29
|
+
*/
|
|
30
|
+
export declare function acquireWorkspaceRootLease(authority: WorkspaceRootAuthority, opts?: {
|
|
31
|
+
helperTimeoutMs?: number;
|
|
32
|
+
}): Promise<WorkspaceRootLease>;
|
|
33
|
+
export declare function captureWorkspaceRootAuthority(workingDir: string, opts?: WorkspaceAuthorityCaptureOptions): Promise<WorkspaceRootAuthority>;
|
|
34
|
+
export declare function assertWorkspaceRootAuthoritySchema(value: unknown): asserts value is WorkspaceRootAuthority;
|
|
35
|
+
export declare function sameWorkspaceRootAuthority(left: WorkspaceRootAuthority, right: WorkspaceRootAuthority): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Carry an already-authenticated directory incarnation across an atomic rename.
|
|
38
|
+
*
|
|
39
|
+
* `observed` is used only to prove that the directory now visible at
|
|
40
|
+
* `canonicalPath` is still the original inode incarnation. Its creation time is
|
|
41
|
+
* never adopted as fresh authority: a device/inode reuse with a different
|
|
42
|
+
* birth time fails closed.
|
|
43
|
+
*/
|
|
44
|
+
export declare function relocateWorkspaceRootAuthority(original: WorkspaceRootAuthority, canonicalPath: string, observed: WorkspaceRootAuthority): WorkspaceRootAuthority;
|
|
45
|
+
export declare function assertWorkspaceRootAuthority(workingDir: string, expected: WorkspaceRootAuthority, boundary: string, opts?: WorkspaceAuthorityCaptureOptions): Promise<void>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type WorkspaceRootAuthority } from './workspace-authority.js';
|
|
2
|
+
export type MaterializationHangStage = 'realpath' | 'lstat' | 'open' | 'stat' | 'clone' | 'read' | 'close';
|
|
3
|
+
export interface WorkspaceMaterializerSession {
|
|
4
|
+
copyFile(source: string, destination: string): Promise<void>;
|
|
5
|
+
copyRelativeSymlink(source: string, destination: string): Promise<void>;
|
|
6
|
+
close(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkspaceMaterializerOptions {
|
|
9
|
+
sourceRoot: WorkspaceRootAuthority;
|
|
10
|
+
destinationRoot: WorkspaceRootAuthority;
|
|
11
|
+
priorPhysicalCopyBytes?: number;
|
|
12
|
+
maxFileBytes: number;
|
|
13
|
+
maxTotalBytes: number;
|
|
14
|
+
helperTimeoutMs?: number;
|
|
15
|
+
forcePhysicalCopy?: boolean;
|
|
16
|
+
testHangStage?: (source: string) => MaterializationHangStage | undefined;
|
|
17
|
+
reservePhysicalBytes?: (bytes: number) => Promise<void> | void;
|
|
18
|
+
releasePhysicalBytes?: (bytes: number) => Promise<void> | void;
|
|
19
|
+
beforePhysicalCopy?: (source: string) => Promise<void>;
|
|
20
|
+
onPhysicalCopyBytes?: (totalBytes: number) => Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* One bounded helper owns all live-workspace clone/read waits for a snapshot.
|
|
24
|
+
* The desktop retains quota/durability authority and explicitly authorizes a
|
|
25
|
+
* physical fallback only after the helper reports the exact stable file size.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createWorkspaceMaterializerSession(opts: WorkspaceMaterializerOptions): WorkspaceMaterializerSession;
|