@blxzer/pactile 0.6.0-beta.2 → 0.6.0-beta.4
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 +93 -84
- package/README.zh-CN.md +90 -81
- package/dist/bin/compat-warning.d.ts +2 -0
- package/dist/bin/compat-warning.d.ts.map +1 -0
- package/dist/bin/compat-warning.js +8 -0
- package/dist/bin/compat-warning.js.map +1 -0
- package/dist/bin/cstl.d.ts +3 -0
- package/dist/bin/cstl.d.ts.map +1 -0
- package/{bin → dist/bin}/cstl.js +2 -3
- package/dist/bin/cstl.js.map +1 -0
- package/dist/bin/pactile.d.ts +3 -0
- package/dist/bin/pactile.d.ts.map +1 -0
- package/dist/bin/pactile.js +4 -0
- package/dist/bin/pactile.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +77 -17
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/capability.d.ts +3 -0
- package/dist/commands/capability.d.ts.map +1 -0
- package/dist/commands/capability.js +129 -0
- package/dist/commands/capability.js.map +1 -0
- package/dist/commands/codex.d.ts.map +1 -1
- package/dist/commands/codex.js +54 -6
- package/dist/commands/codex.js.map +1 -1
- package/dist/commands/context.d.ts +2 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +367 -41
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/detach.d.ts.map +1 -1
- package/dist/commands/detach.js +5 -4
- package/dist/commands/detach.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +615 -259
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/legacy-task.d.ts +3 -0
- package/dist/commands/legacy-task.d.ts.map +1 -0
- package/dist/commands/legacy-task.js +295 -0
- package/dist/commands/legacy-task.js.map +1 -0
- package/dist/commands/pi.d.ts +3 -2
- package/dist/commands/pi.d.ts.map +1 -1
- package/dist/commands/pi.js +333 -10
- package/dist/commands/pi.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +148 -24
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/task-schedule.d.ts +17 -0
- package/dist/commands/task-schedule.d.ts.map +1 -0
- package/dist/commands/task-schedule.js +395 -0
- package/dist/commands/task-schedule.js.map +1 -0
- package/dist/commands/task-verify-plan.d.ts +3 -0
- package/dist/commands/task-verify-plan.d.ts.map +1 -0
- package/dist/commands/task-verify-plan.js +503 -0
- package/dist/commands/task-verify-plan.js.map +1 -0
- package/dist/commands/task-worktree-close.d.ts +4 -0
- package/dist/commands/task-worktree-close.d.ts.map +1 -0
- package/dist/commands/task-worktree-close.js +81 -0
- package/dist/commands/task-worktree-close.js.map +1 -0
- package/dist/commands/task.d.ts +3 -0
- package/dist/commands/task.d.ts.map +1 -1
- package/dist/commands/task.js +1373 -184
- package/dist/commands/task.js.map +1 -1
- package/dist/commands/tile-selection.d.ts +3 -0
- package/dist/commands/tile-selection.d.ts.map +1 -0
- package/dist/commands/tile-selection.js +174 -0
- package/dist/commands/tile-selection.js.map +1 -0
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +80 -55
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/worktree.d.ts +4 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +198 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/configurators/shared.js +1 -1
- package/dist/configurators/shared.js.map +1 -1
- package/dist/core/compat/environment.d.ts +0 -1
- package/dist/core/compat/environment.d.ts.map +1 -1
- package/dist/core/compat/environment.js +1 -9
- package/dist/core/compat/environment.js.map +1 -1
- package/dist/core/pactile/bounded-capabilities.d.ts +127 -0
- package/dist/core/pactile/bounded-capabilities.d.ts.map +1 -0
- package/dist/core/pactile/bounded-capabilities.js +188 -0
- package/dist/core/pactile/bounded-capabilities.js.map +1 -0
- package/dist/core/pactile/index.d.ts +1 -0
- package/dist/core/pactile/index.d.ts.map +1 -1
- package/dist/core/pactile/index.js +1 -0
- package/dist/core/pactile/index.js.map +1 -1
- package/dist/core/task/index.d.ts +4 -2
- package/dist/core/task/index.d.ts.map +1 -1
- package/dist/core/task/index.js +2 -1
- package/dist/core/task/index.js.map +1 -1
- package/dist/core/task/kernel-cli.d.ts +14 -1
- package/dist/core/task/kernel-cli.d.ts.map +1 -1
- package/dist/core/task/kernel-cli.js +128 -0
- package/dist/core/task/kernel-cli.js.map +1 -1
- package/dist/core/task/kernel-contract.d.ts +6 -3
- package/dist/core/task/kernel-contract.d.ts.map +1 -1
- package/dist/core/task/kernel-contract.js +71 -23
- package/dist/core/task/kernel-contract.js.map +1 -1
- package/dist/core/task/kernel-store.d.ts +6 -0
- package/dist/core/task/kernel-store.d.ts.map +1 -1
- package/dist/core/task/kernel-store.js +54 -2
- package/dist/core/task/kernel-store.js.map +1 -1
- package/dist/core/task/legacy-task-migration-reader.d.ts +137 -0
- package/dist/core/task/legacy-task-migration-reader.d.ts.map +1 -0
- package/dist/core/task/legacy-task-migration-reader.js +512 -0
- package/dist/core/task/legacy-task-migration-reader.js.map +1 -0
- package/dist/core/task/legacy-task-migration.d.ts +105 -0
- package/dist/core/task/legacy-task-migration.d.ts.map +1 -0
- package/dist/core/task/legacy-task-migration.js +562 -0
- package/dist/core/task/legacy-task-migration.js.map +1 -0
- package/dist/core/task/legacy-task-overlay-durable-io.d.ts +18 -0
- package/dist/core/task/legacy-task-overlay-durable-io.d.ts.map +1 -0
- package/dist/core/task/legacy-task-overlay-durable-io.js +66 -0
- package/dist/core/task/legacy-task-overlay-durable-io.js.map +1 -0
- package/dist/core/task/legacy-task-reconciliation-reader.d.ts +26 -0
- package/dist/core/task/legacy-task-reconciliation-reader.d.ts.map +1 -0
- package/dist/core/task/legacy-task-reconciliation-reader.js +324 -0
- package/dist/core/task/legacy-task-reconciliation-reader.js.map +1 -0
- package/dist/core/task/legacy-task-v2-import.d.ts +67 -0
- package/dist/core/task/legacy-task-v2-import.d.ts.map +1 -0
- package/dist/core/task/legacy-task-v2-import.js +1046 -0
- package/dist/core/task/legacy-task-v2-import.js.map +1 -0
- package/dist/core/task/project-file-observer.d.ts +46 -0
- package/dist/core/task/project-file-observer.d.ts.map +1 -0
- package/dist/core/task/project-file-observer.js +618 -0
- package/dist/core/task/project-file-observer.js.map +1 -0
- package/dist/core/task/start-authority.d.ts +14 -0
- package/dist/core/task/start-authority.d.ts.map +1 -0
- package/dist/core/task/start-authority.js +146 -0
- package/dist/core/task/start-authority.js.map +1 -0
- package/dist/core/task/strategy.d.ts +24 -0
- package/dist/core/task/strategy.d.ts.map +1 -0
- package/dist/core/task/strategy.js +136 -0
- package/dist/core/task/strategy.js.map +1 -0
- package/dist/core/task/task-candidate-observer.d.ts +111 -0
- package/dist/core/task/task-candidate-observer.d.ts.map +1 -0
- package/dist/core/task/task-candidate-observer.js +762 -0
- package/dist/core/task/task-candidate-observer.js.map +1 -0
- package/dist/core/task/task-kernel-close.d.ts +5 -0
- package/dist/core/task/task-kernel-close.d.ts.map +1 -0
- package/dist/core/task/task-kernel-close.js +367 -0
- package/dist/core/task/task-kernel-close.js.map +1 -0
- package/dist/core/task/task-kernel-dependencies.d.ts +3 -0
- package/dist/core/task/task-kernel-dependencies.d.ts.map +1 -0
- package/dist/core/task/task-kernel-dependencies.js +24 -0
- package/dist/core/task/task-kernel-dependencies.js.map +1 -0
- package/dist/core/task/task-kernel-host.d.ts +5 -0
- package/dist/core/task/task-kernel-host.d.ts.map +1 -0
- package/dist/core/task/task-kernel-host.js +136 -0
- package/dist/core/task/task-kernel-host.js.map +1 -0
- package/dist/core/task/task-kernel-paths.d.ts +19 -0
- package/dist/core/task/task-kernel-paths.d.ts.map +1 -0
- package/dist/core/task/task-kernel-paths.js +237 -0
- package/dist/core/task/task-kernel-paths.js.map +1 -0
- package/dist/core/task/task-kernel-reviews.d.ts +3 -0
- package/dist/core/task/task-kernel-reviews.d.ts.map +1 -0
- package/dist/core/task/task-kernel-reviews.js +100 -0
- package/dist/core/task/task-kernel-reviews.js.map +1 -0
- package/dist/core/task/task-kernel-runs.d.ts +5 -0
- package/dist/core/task/task-kernel-runs.d.ts.map +1 -0
- package/dist/core/task/task-kernel-runs.js +196 -0
- package/dist/core/task/task-kernel-runs.js.map +1 -0
- package/dist/core/task/task-kernel-schema.d.ts +29 -0
- package/dist/core/task/task-kernel-schema.d.ts.map +1 -0
- package/dist/core/task/task-kernel-schema.js +1169 -0
- package/dist/core/task/task-kernel-schema.js.map +1 -0
- package/dist/core/task/task-kernel-store-v2.d.ts +33 -0
- package/dist/core/task/task-kernel-store-v2.d.ts.map +1 -0
- package/dist/core/task/task-kernel-store-v2.js +574 -0
- package/dist/core/task/task-kernel-store-v2.js.map +1 -0
- package/dist/core/task/task-kernel-types.d.ts +585 -0
- package/dist/core/task/task-kernel-types.d.ts.map +1 -0
- package/dist/core/task/task-kernel-types.js +31 -0
- package/dist/core/task/task-kernel-types.js.map +1 -0
- package/dist/core/task/task-kernel-workspaces.d.ts +10 -0
- package/dist/core/task/task-kernel-workspaces.d.ts.map +1 -0
- package/dist/core/task/task-kernel-workspaces.js +250 -0
- package/dist/core/task/task-kernel-workspaces.js.map +1 -0
- package/dist/core/task/task-kernel-write-set.d.ts +3 -0
- package/dist/core/task/task-kernel-write-set.d.ts.map +1 -0
- package/dist/core/task/task-kernel-write-set.js +12 -0
- package/dist/core/task/task-kernel-write-set.js.map +1 -0
- package/dist/core/task/task-kernel.d.ts +19 -0
- package/dist/core/task/task-kernel.d.ts.map +1 -0
- package/dist/core/task/task-kernel.js +17 -0
- package/dist/core/task/task-kernel.js.map +1 -0
- package/dist/core/task/task-pull-request-observer.d.ts +25 -0
- package/dist/core/task/task-pull-request-observer.d.ts.map +1 -0
- package/dist/core/task/task-pull-request-observer.js +187 -0
- package/dist/core/task/task-pull-request-observer.js.map +1 -0
- package/dist/core/task/task-review-evidence.d.ts +27 -0
- package/dist/core/task/task-review-evidence.d.ts.map +1 -0
- package/dist/core/task/task-review-evidence.js +383 -0
- package/dist/core/task/task-review-evidence.js.map +1 -0
- package/dist/migrations/index.d.ts +1 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +5 -3
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
- package/dist/pactile/artifacts/documents.d.ts +72 -0
- package/dist/pactile/artifacts/documents.d.ts.map +1 -0
- package/dist/pactile/artifacts/documents.js +406 -0
- package/dist/pactile/artifacts/documents.js.map +1 -0
- package/dist/pactile/artifacts/index.d.ts +6 -0
- package/dist/pactile/artifacts/index.d.ts.map +1 -0
- package/dist/pactile/artifacts/index.js +6 -0
- package/dist/pactile/artifacts/index.js.map +1 -0
- package/dist/pactile/artifacts/projection.d.ts +50 -0
- package/dist/pactile/artifacts/projection.d.ts.map +1 -0
- package/dist/pactile/artifacts/projection.js +139 -0
- package/dist/pactile/artifacts/projection.js.map +1 -0
- package/dist/pactile/artifacts/reader.d.ts +20 -0
- package/dist/pactile/artifacts/reader.d.ts.map +1 -0
- package/dist/pactile/artifacts/reader.js +559 -0
- package/dist/pactile/artifacts/reader.js.map +1 -0
- package/dist/pactile/artifacts/schema.d.ts +4 -0
- package/dist/pactile/artifacts/schema.d.ts.map +1 -0
- package/dist/pactile/artifacts/schema.js +217 -0
- package/dist/pactile/artifacts/schema.js.map +1 -0
- package/dist/pactile/artifacts/types.d.ts +66 -0
- package/dist/pactile/artifacts/types.d.ts.map +1 -0
- package/dist/pactile/artifacts/types.js +45 -0
- package/dist/pactile/artifacts/types.js.map +1 -0
- package/dist/pactile/capabilities/claim.d.ts +3 -0
- package/dist/pactile/capabilities/claim.d.ts.map +1 -0
- package/dist/pactile/capabilities/claim.js +97 -0
- package/dist/pactile/capabilities/claim.js.map +1 -0
- package/dist/pactile/capabilities/command.d.ts +6 -0
- package/dist/pactile/capabilities/command.d.ts.map +1 -0
- package/dist/pactile/capabilities/command.js +253 -0
- package/dist/pactile/capabilities/command.js.map +1 -0
- package/dist/pactile/capabilities/discover.d.ts +6 -0
- package/dist/pactile/capabilities/discover.d.ts.map +1 -0
- package/dist/pactile/capabilities/discover.js +48 -0
- package/dist/pactile/capabilities/discover.js.map +1 -0
- package/dist/pactile/capabilities/node.d.ts +15 -0
- package/dist/pactile/capabilities/node.d.ts.map +1 -0
- package/dist/pactile/capabilities/node.js +292 -0
- package/dist/pactile/capabilities/node.js.map +1 -0
- package/dist/pactile/capabilities/read.d.ts +6 -0
- package/dist/pactile/capabilities/read.d.ts.map +1 -0
- package/dist/pactile/capabilities/read.js +100 -0
- package/dist/pactile/capabilities/read.js.map +1 -0
- package/dist/pactile/capabilities/receipts.d.ts +17 -0
- package/dist/pactile/capabilities/receipts.d.ts.map +1 -0
- package/dist/pactile/capabilities/receipts.js +90 -0
- package/dist/pactile/capabilities/receipts.js.map +1 -0
- package/dist/pactile/capabilities/search.d.ts +6 -0
- package/dist/pactile/capabilities/search.d.ts.map +1 -0
- package/dist/pactile/capabilities/search.js +181 -0
- package/dist/pactile/capabilities/search.js.map +1 -0
- package/dist/pactile/capabilities/shared.d.ts +29 -0
- package/dist/pactile/capabilities/shared.d.ts.map +1 -0
- package/dist/pactile/capabilities/shared.js +134 -0
- package/dist/pactile/capabilities/shared.js.map +1 -0
- package/dist/pactile/capabilities/workspace.d.ts +19 -0
- package/dist/pactile/capabilities/workspace.d.ts.map +1 -0
- package/dist/pactile/capabilities/workspace.js +273 -0
- package/dist/pactile/capabilities/workspace.js.map +1 -0
- package/dist/pactile/codex/bridge.d.ts +105 -2
- package/dist/pactile/codex/bridge.d.ts.map +1 -1
- package/dist/pactile/codex/bridge.js +1266 -92
- package/dist/pactile/codex/bridge.js.map +1 -1
- package/dist/pactile/codex/dispatch-stop-proof.d.ts +43 -0
- package/dist/pactile/codex/dispatch-stop-proof.d.ts.map +1 -0
- package/dist/pactile/codex/dispatch-stop-proof.js +177 -0
- package/dist/pactile/codex/dispatch-stop-proof.js.map +1 -0
- package/dist/pactile/codex/host-stop.d.ts +47 -0
- package/dist/pactile/codex/host-stop.d.ts.map +1 -0
- package/dist/pactile/codex/host-stop.js +344 -0
- package/dist/pactile/codex/host-stop.js.map +1 -0
- package/dist/pactile/coordination/index.d.ts +4 -0
- package/dist/pactile/coordination/index.d.ts.map +1 -0
- package/dist/pactile/coordination/index.js +4 -0
- package/dist/pactile/coordination/index.js.map +1 -0
- package/dist/pactile/coordination/journal.d.ts +10 -0
- package/dist/pactile/coordination/journal.d.ts.map +1 -0
- package/dist/pactile/coordination/journal.js +255 -0
- package/dist/pactile/coordination/journal.js.map +1 -0
- package/dist/pactile/coordination/kernel-resume.d.ts +8 -0
- package/dist/pactile/coordination/kernel-resume.d.ts.map +1 -0
- package/dist/pactile/coordination/kernel-resume.js +87 -0
- package/dist/pactile/coordination/kernel-resume.js.map +1 -0
- package/dist/pactile/coordination/model.d.ts +553 -0
- package/dist/pactile/coordination/model.d.ts.map +1 -0
- package/dist/pactile/coordination/model.js +239 -0
- package/dist/pactile/coordination/model.js.map +1 -0
- package/dist/pactile/coordination/state.d.ts +46 -0
- package/dist/pactile/coordination/state.d.ts.map +1 -0
- package/dist/pactile/coordination/state.js +301 -0
- package/dist/pactile/coordination/state.js.map +1 -0
- package/dist/pactile/coordination/store.d.ts +94 -0
- package/dist/pactile/coordination/store.d.ts.map +1 -0
- package/dist/pactile/coordination/store.js +396 -0
- package/dist/pactile/coordination/store.js.map +1 -0
- package/dist/pactile/index.d.ts +7 -1
- package/dist/pactile/index.d.ts.map +1 -1
- package/dist/pactile/index.js +7 -1
- package/dist/pactile/index.js.map +1 -1
- package/dist/pactile/jev/contracts.d.ts +104 -0
- package/dist/pactile/jev/contracts.d.ts.map +1 -0
- package/dist/pactile/jev/contracts.js +53 -0
- package/dist/pactile/jev/contracts.js.map +1 -0
- package/dist/pactile/jev/decision.d.ts +58 -0
- package/dist/pactile/jev/decision.d.ts.map +1 -0
- package/dist/pactile/jev/decision.js +149 -0
- package/dist/pactile/jev/decision.js.map +1 -0
- package/dist/pactile/jev/http.d.ts +25 -0
- package/dist/pactile/jev/http.d.ts.map +1 -0
- package/dist/pactile/jev/http.js +234 -0
- package/dist/pactile/jev/http.js.map +1 -0
- package/dist/pactile/jev/index.d.ts +8 -0
- package/dist/pactile/jev/index.d.ts.map +1 -0
- package/dist/pactile/jev/index.js +4 -0
- package/dist/pactile/jev/index.js.map +1 -0
- package/dist/pactile/jev/outbound.d.ts +15 -0
- package/dist/pactile/jev/outbound.d.ts.map +1 -0
- package/dist/pactile/jev/outbound.js +264 -0
- package/dist/pactile/jev/outbound.js.map +1 -0
- package/dist/pactile/jev/project-policy.d.ts +10 -0
- package/dist/pactile/jev/project-policy.d.ts.map +1 -0
- package/dist/pactile/jev/project-policy.js +53 -0
- package/dist/pactile/jev/project-policy.js.map +1 -0
- package/dist/pactile/jev/response.d.ts +17 -0
- package/dist/pactile/jev/response.d.ts.map +1 -0
- package/dist/pactile/jev/response.js +280 -0
- package/dist/pactile/jev/response.js.map +1 -0
- package/dist/pactile/jev/scheduler-advice.d.ts +92 -0
- package/dist/pactile/jev/scheduler-advice.d.ts.map +1 -0
- package/dist/pactile/jev/scheduler-advice.js +323 -0
- package/dist/pactile/jev/scheduler-advice.js.map +1 -0
- package/dist/pactile/jev/transport.d.ts +6 -0
- package/dist/pactile/jev/transport.d.ts.map +1 -0
- package/dist/pactile/jev/transport.js +87 -0
- package/dist/pactile/jev/transport.js.map +1 -0
- package/dist/pactile/lifecycle/deferred-live.d.ts +17 -0
- package/dist/pactile/lifecycle/deferred-live.d.ts.map +1 -0
- package/dist/pactile/lifecycle/deferred-live.js +173 -0
- package/dist/pactile/lifecycle/deferred-live.js.map +1 -0
- package/dist/pactile/lifecycle/legacy-import.d.ts +1 -1
- package/dist/pactile/lifecycle/legacy-import.js +3 -3
- package/dist/pactile/lifecycle/legacy-import.js.map +1 -1
- package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
- package/dist/pactile/lifecycle/project-files.js +1 -0
- package/dist/pactile/lifecycle/project-files.js.map +1 -1
- package/dist/pactile/migration/legacy-task-batch-generation.d.ts +23 -0
- package/dist/pactile/migration/legacy-task-batch-generation.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-generation.js +102 -0
- package/dist/pactile/migration/legacy-task-batch-generation.js.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-io.d.ts +9 -0
- package/dist/pactile/migration/legacy-task-batch-io.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-io.js +208 -0
- package/dist/pactile/migration/legacy-task-batch-io.js.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-journal.d.ts +6 -0
- package/dist/pactile/migration/legacy-task-batch-journal.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-journal.js +121 -0
- package/dist/pactile/migration/legacy-task-batch-journal.js.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts +18 -0
- package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-orchestrator.js +634 -0
- package/dist/pactile/migration/legacy-task-batch-orchestrator.js.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-source.d.ts +8 -0
- package/dist/pactile/migration/legacy-task-batch-source.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-source.js +158 -0
- package/dist/pactile/migration/legacy-task-batch-source.js.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-types.d.ts +127 -0
- package/dist/pactile/migration/legacy-task-batch-types.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch-types.js +127 -0
- package/dist/pactile/migration/legacy-task-batch-types.js.map +1 -0
- package/dist/pactile/migration/legacy-task-batch.d.ts +3 -0
- package/dist/pactile/migration/legacy-task-batch.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-batch.js +2 -0
- package/dist/pactile/migration/legacy-task-batch.js.map +1 -0
- package/dist/pactile/migration/legacy-task-held-source-reader.d.ts +27 -0
- package/dist/pactile/migration/legacy-task-held-source-reader.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-held-source-reader.js +261 -0
- package/dist/pactile/migration/legacy-task-held-source-reader.js.map +1 -0
- package/dist/pactile/migration/legacy-task-reconciliation.d.ts +46 -0
- package/dist/pactile/migration/legacy-task-reconciliation.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-reconciliation.js +589 -0
- package/dist/pactile/migration/legacy-task-reconciliation.js.map +1 -0
- package/dist/pactile/migration/legacy-task-update.d.ts +19 -0
- package/dist/pactile/migration/legacy-task-update.d.ts.map +1 -0
- package/dist/pactile/migration/legacy-task-update.js +164 -0
- package/dist/pactile/migration/legacy-task-update.js.map +1 -0
- package/dist/pactile/parallel/batch.d.ts +21 -2
- package/dist/pactile/parallel/batch.d.ts.map +1 -1
- package/dist/pactile/parallel/batch.js +271 -50
- package/dist/pactile/parallel/batch.js.map +1 -1
- package/dist/pactile/parallel/policy.d.ts +1 -1
- package/dist/pactile/parallel/policy.d.ts.map +1 -1
- package/dist/pactile/parallel/policy.js +130 -102
- package/dist/pactile/parallel/policy.js.map +1 -1
- package/dist/pactile/pi/bridge.d.ts +139 -2
- package/dist/pactile/pi/bridge.d.ts.map +1 -1
- package/dist/pactile/pi/bridge.js +1317 -106
- package/dist/pactile/pi/bridge.js.map +1 -1
- package/dist/pactile/pi/rpc.d.ts +23 -4
- package/dist/pactile/pi/rpc.d.ts.map +1 -1
- package/dist/pactile/pi/rpc.js +243 -42
- package/dist/pactile/pi/rpc.js.map +1 -1
- package/dist/pactile/pi/v2-dispatch.d.ts +113 -0
- package/dist/pactile/pi/v2-dispatch.d.ts.map +1 -0
- package/dist/pactile/pi/v2-dispatch.js +919 -0
- package/dist/pactile/pi/v2-dispatch.js.map +1 -0
- package/dist/pactile/projection/planner.js +1 -1
- package/dist/pactile/projection/planner.js.map +1 -1
- package/dist/pactile/registry.d.ts +63 -1
- package/dist/pactile/registry.d.ts.map +1 -1
- package/dist/pactile/registry.js +633 -4
- package/dist/pactile/registry.js.map +1 -1
- package/dist/pactile/retrieval/index.d.ts +1 -0
- package/dist/pactile/retrieval/index.d.ts.map +1 -1
- package/dist/pactile/retrieval/index.js +1 -0
- package/dist/pactile/retrieval/index.js.map +1 -1
- package/dist/pactile/retrieval/jev-planning.d.ts +28 -0
- package/dist/pactile/retrieval/jev-planning.d.ts.map +1 -0
- package/dist/pactile/retrieval/jev-planning.js +96 -0
- package/dist/pactile/retrieval/jev-planning.js.map +1 -0
- package/dist/pactile/review/contract.d.ts +232 -0
- package/dist/pactile/review/contract.d.ts.map +1 -0
- package/dist/pactile/review/contract.js +695 -0
- package/dist/pactile/review/contract.js.map +1 -0
- package/dist/pactile/review/escalation-artifacts.d.ts +41 -0
- package/dist/pactile/review/escalation-artifacts.d.ts.map +1 -0
- package/dist/pactile/review/escalation-artifacts.js +415 -0
- package/dist/pactile/review/escalation-artifacts.js.map +1 -0
- package/dist/pactile/review/escalation-contract.d.ts +115 -0
- package/dist/pactile/review/escalation-contract.d.ts.map +1 -0
- package/dist/pactile/review/escalation-contract.js +151 -0
- package/dist/pactile/review/escalation-contract.js.map +1 -0
- package/dist/pactile/review/escalation-finalize.d.ts +14 -0
- package/dist/pactile/review/escalation-finalize.d.ts.map +1 -0
- package/dist/pactile/review/escalation-finalize.js +319 -0
- package/dist/pactile/review/escalation-finalize.js.map +1 -0
- package/dist/pactile/review/escalation-reply.d.ts +10 -0
- package/dist/pactile/review/escalation-reply.d.ts.map +1 -0
- package/dist/pactile/review/escalation-reply.js +61 -0
- package/dist/pactile/review/escalation-reply.js.map +1 -0
- package/dist/pactile/review/escalation-transport.d.ts +32 -0
- package/dist/pactile/review/escalation-transport.d.ts.map +1 -0
- package/dist/pactile/review/escalation-transport.js +216 -0
- package/dist/pactile/review/escalation-transport.js.map +1 -0
- package/dist/pactile/review/escalation.d.ts +7 -0
- package/dist/pactile/review/escalation.d.ts.map +1 -0
- package/dist/pactile/review/escalation.js +6 -0
- package/dist/pactile/review/escalation.js.map +1 -0
- package/dist/pactile/review/evidence.d.ts +25 -0
- package/dist/pactile/review/evidence.d.ts.map +1 -0
- package/dist/pactile/review/evidence.js +58 -0
- package/dist/pactile/review/evidence.js.map +1 -0
- package/dist/pactile/review/jev-escalation-advice.d.ts +77 -0
- package/dist/pactile/review/jev-escalation-advice.d.ts.map +1 -0
- package/dist/pactile/review/jev-escalation-advice.js +358 -0
- package/dist/pactile/review/jev-escalation-advice.js.map +1 -0
- package/dist/pactile/scheduler/index.d.ts +6 -0
- package/dist/pactile/scheduler/index.d.ts.map +1 -0
- package/dist/pactile/scheduler/index.js +5 -0
- package/dist/pactile/scheduler/index.js.map +1 -0
- package/dist/pactile/scheduler/project-lease-store.d.ts +35 -0
- package/dist/pactile/scheduler/project-lease-store.d.ts.map +1 -0
- package/dist/pactile/scheduler/project-lease-store.js +189 -0
- package/dist/pactile/scheduler/project-lease-store.js.map +1 -0
- package/dist/pactile/scheduler/scheduler.d.ts +91 -0
- package/dist/pactile/scheduler/scheduler.d.ts.map +1 -0
- package/dist/pactile/scheduler/scheduler.js +589 -0
- package/dist/pactile/scheduler/scheduler.js.map +1 -0
- package/dist/pactile/scheduler/task-kernel-admission.d.ts +173 -0
- package/dist/pactile/scheduler/task-kernel-admission.d.ts.map +1 -0
- package/dist/pactile/scheduler/task-kernel-admission.js +1560 -0
- package/dist/pactile/scheduler/task-kernel-admission.js.map +1 -0
- package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts +184 -0
- package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts.map +1 -0
- package/dist/pactile/scheduler/task-kernel-wave-dispatch.js +952 -0
- package/dist/pactile/scheduler/task-kernel-wave-dispatch.js.map +1 -0
- package/dist/pactile/scheduler/task-map-scheduler.d.ts +116 -0
- package/dist/pactile/scheduler/task-map-scheduler.d.ts.map +1 -0
- package/dist/pactile/scheduler/task-map-scheduler.js +1448 -0
- package/dist/pactile/scheduler/task-map-scheduler.js.map +1 -0
- package/dist/pactile/scheduler/task-run-dispatch-state.d.ts +7 -0
- package/dist/pactile/scheduler/task-run-dispatch-state.d.ts.map +1 -0
- package/dist/pactile/scheduler/task-run-dispatch-state.js +69 -0
- package/dist/pactile/scheduler/task-run-dispatch-state.js.map +1 -0
- package/dist/pactile/task/authorization.d.ts +3 -0
- package/dist/pactile/task/authorization.d.ts.map +1 -0
- package/dist/pactile/task/authorization.js +43 -0
- package/dist/pactile/task/authorization.js.map +1 -0
- package/dist/pactile/task/creation.d.ts +22 -0
- package/dist/pactile/task/creation.d.ts.map +1 -0
- package/dist/pactile/task/creation.js +95 -0
- package/dist/pactile/task/creation.js.map +1 -0
- package/dist/pactile/task/guards.d.ts +1 -4
- package/dist/pactile/task/guards.d.ts.map +1 -1
- package/dist/pactile/task/guards.js +5 -57
- package/dist/pactile/task/guards.js.map +1 -1
- package/dist/pactile/task/session-jev-receipt.d.ts +58 -0
- package/dist/pactile/task/session-jev-receipt.d.ts.map +1 -0
- package/dist/pactile/task/session-jev-receipt.js +375 -0
- package/dist/pactile/task/session-jev-receipt.js.map +1 -0
- package/dist/pactile/task/session-jev.d.ts +7 -0
- package/dist/pactile/task/session-jev.d.ts.map +1 -0
- package/dist/pactile/task/session-jev.js +217 -0
- package/dist/pactile/task/session-jev.js.map +1 -0
- package/dist/pactile/task/session-pack.d.ts.map +1 -1
- package/dist/pactile/task/session-pack.js +155 -16
- package/dist/pactile/task/session-pack.js.map +1 -1
- package/dist/pactile/task/session-retrieval-jev-receipt.d.ts +49 -0
- package/dist/pactile/task/session-retrieval-jev-receipt.d.ts.map +1 -0
- package/dist/pactile/task/session-retrieval-jev-receipt.js +97 -0
- package/dist/pactile/task/session-retrieval-jev-receipt.js.map +1 -0
- package/dist/pactile/task/session-retrieval-jev.d.ts +8 -0
- package/dist/pactile/task/session-retrieval-jev.d.ts.map +1 -0
- package/dist/pactile/task/session-retrieval-jev.js +352 -0
- package/dist/pactile/task/session-retrieval-jev.js.map +1 -0
- package/dist/pactile/task/strategy.d.ts +1 -23
- package/dist/pactile/task/strategy.d.ts.map +1 -1
- package/dist/pactile/task/strategy.js +2 -135
- package/dist/pactile/task/strategy.js.map +1 -1
- package/dist/pactile/tiles/jev-selection.d.ts +44 -0
- package/dist/pactile/tiles/jev-selection.d.ts.map +1 -0
- package/dist/pactile/tiles/jev-selection.js +210 -0
- package/dist/pactile/tiles/jev-selection.js.map +1 -0
- package/dist/pactile/tiles/safe-yaml.d.ts +5 -1
- package/dist/pactile/tiles/safe-yaml.d.ts.map +1 -1
- package/dist/pactile/tiles/safe-yaml.js +8 -8
- package/dist/pactile/tiles/safe-yaml.js.map +1 -1
- package/dist/pactile/tiles/selection-receipts.d.ts +71 -0
- package/dist/pactile/tiles/selection-receipts.d.ts.map +1 -0
- package/dist/pactile/tiles/selection-receipts.js +319 -0
- package/dist/pactile/tiles/selection-receipts.js.map +1 -0
- package/dist/pactile/tiles/selection.d.ts +185 -0
- package/dist/pactile/tiles/selection.d.ts.map +1 -0
- package/dist/pactile/tiles/selection.js +985 -0
- package/dist/pactile/tiles/selection.js.map +1 -0
- package/dist/pactile/verification/git-observer.d.ts +3 -0
- package/dist/pactile/verification/git-observer.d.ts.map +1 -0
- package/dist/pactile/verification/git-observer.js +3 -0
- package/dist/pactile/verification/git-observer.js.map +1 -0
- package/dist/pactile/verification/index.d.ts +11 -0
- package/dist/pactile/verification/index.d.ts.map +1 -0
- package/dist/pactile/verification/index.js +6 -0
- package/dist/pactile/verification/index.js.map +1 -0
- package/dist/pactile/verification/jev-advice.d.ts +78 -0
- package/dist/pactile/verification/jev-advice.d.ts.map +1 -0
- package/dist/pactile/verification/jev-advice.js +397 -0
- package/dist/pactile/verification/jev-advice.js.map +1 -0
- package/dist/pactile/verification/planner.d.ts +15 -0
- package/dist/pactile/verification/planner.d.ts.map +1 -0
- package/dist/pactile/verification/planner.js +412 -0
- package/dist/pactile/verification/planner.js.map +1 -0
- package/dist/pactile/verification/receipt.d.ts +101 -0
- package/dist/pactile/verification/receipt.d.ts.map +1 -0
- package/dist/pactile/verification/receipt.js +400 -0
- package/dist/pactile/verification/receipt.js.map +1 -0
- package/dist/pactile/verification/types.d.ts +72 -0
- package/dist/pactile/verification/types.d.ts.map +1 -0
- package/dist/pactile/verification/types.js +21 -0
- package/dist/pactile/verification/types.js.map +1 -0
- package/dist/pactile/worktree/git-probe.d.ts +32 -0
- package/dist/pactile/worktree/git-probe.d.ts.map +1 -0
- package/dist/pactile/worktree/git-probe.js +336 -0
- package/dist/pactile/worktree/git-probe.js.map +1 -0
- package/dist/pactile/worktree/git-removal.d.ts +3 -0
- package/dist/pactile/worktree/git-removal.d.ts.map +1 -0
- package/dist/pactile/worktree/git-removal.js +11 -0
- package/dist/pactile/worktree/git-removal.js.map +1 -0
- package/dist/pactile/worktree/index.d.ts +2 -0
- package/dist/pactile/worktree/index.d.ts.map +1 -0
- package/dist/pactile/worktree/index.js +2 -0
- package/dist/pactile/worktree/index.js.map +1 -0
- package/dist/pactile/worktree/integration-evidence.d.ts +80 -0
- package/dist/pactile/worktree/integration-evidence.d.ts.map +1 -0
- package/dist/pactile/worktree/integration-evidence.js +166 -0
- package/dist/pactile/worktree/integration-evidence.js.map +1 -0
- package/dist/pactile/worktree/manager-core.d.ts +50 -0
- package/dist/pactile/worktree/manager-core.d.ts.map +1 -0
- package/dist/pactile/worktree/manager-core.js +359 -0
- package/dist/pactile/worktree/manager-core.js.map +1 -0
- package/dist/pactile/worktree/manager-provenance.d.ts +32 -0
- package/dist/pactile/worktree/manager-provenance.d.ts.map +1 -0
- package/dist/pactile/worktree/manager-provenance.js +409 -0
- package/dist/pactile/worktree/manager-provenance.js.map +1 -0
- package/dist/pactile/worktree/manager-types.d.ts +84 -0
- package/dist/pactile/worktree/manager-types.d.ts.map +1 -0
- package/dist/pactile/worktree/manager-types.js +11 -0
- package/dist/pactile/worktree/manager-types.js.map +1 -0
- package/dist/pactile/worktree/manager.d.ts +10 -0
- package/dist/pactile/worktree/manager.d.ts.map +1 -0
- package/dist/pactile/worktree/manager.js +6 -0
- package/dist/pactile/worktree/manager.js.map +1 -0
- package/dist/pactile/worktree/run-workspace-cleanup.d.ts +10 -0
- package/dist/pactile/worktree/run-workspace-cleanup.d.ts.map +1 -0
- package/dist/pactile/worktree/run-workspace-cleanup.js +695 -0
- package/dist/pactile/worktree/run-workspace-cleanup.js.map +1 -0
- package/dist/pactile/worktree/run-workspace-lifecycle.d.ts +65 -0
- package/dist/pactile/worktree/run-workspace-lifecycle.d.ts.map +1 -0
- package/dist/pactile/worktree/run-workspace-lifecycle.js +276 -0
- package/dist/pactile/worktree/run-workspace-lifecycle.js.map +1 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +1 -1
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +1 -1
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +1 -1
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +1 -1
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +1 -1
- package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +2 -0
- package/dist/templates/common/skills/brainstorm.md +19 -13
- package/dist/templates/markdown/agents.md +2 -2
- package/dist/templates/markdown/framework/execution-strategy.md.txt +1 -1
- package/dist/templates/markdown/framework/index.md.txt +1 -1
- package/dist/templates/markdown/framework/parallel-first-execution.md.txt +17 -105
- package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +3 -3
- package/dist/templates/markdown/framework/release-boundary.md.txt +9 -10
- package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +1 -1
- package/dist/templates/pactile/CONTEXT.md +48 -36
- package/dist/templates/pactile/modules/approval-personal/contract.md +12 -24
- package/dist/templates/pactile/modules/close-basic/contract.md +15 -18
- package/dist/templates/pactile/modules/debug-recovery/contract.md +4 -4
- package/dist/templates/pactile/modules/define-basic/contract.md +15 -19
- package/dist/templates/pactile/modules/define-extended/contract.md +3 -3
- package/dist/templates/pactile/modules/execute-agent/contract.md +11 -19
- package/dist/templates/pactile/modules/intake-basic/contract.md +16 -13
- package/dist/templates/pactile/modules/verify-basic/contract.md +11 -20
- package/dist/templates/pactile/tasks/templates/release-execution/design.md +5 -5
- package/dist/templates/pactile/tasks/templates/release-readiness/design.md +6 -6
- package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +8 -2
- package/dist/templates/pactile/workflow.md +37 -41
- package/dist/templates/template-utils.d.ts +1 -2
- package/dist/templates/template-utils.d.ts.map +1 -1
- package/dist/templates/template-utils.js +2 -13
- package/dist/templates/template-utils.js.map +1 -1
- package/dist/types/ai-tools.d.ts +1 -1
- package/dist/types/ai-tools.js +1 -1
- package/dist/utils/manifest-prune.js +1 -1
- package/dist/utils/manifest-prune.js.map +1 -1
- package/dist/utils/p36-upgrade.d.ts +2 -2
- package/dist/utils/p36-upgrade.d.ts.map +1 -1
- package/dist/utils/p36-upgrade.js +2 -10
- package/dist/utils/p36-upgrade.js.map +1 -1
- package/dist/utils/post-update-smoke.js +1 -1
- package/dist/utils/post-update-smoke.js.map +1 -1
- package/dist/utils/readiness.d.ts +2 -2
- package/dist/utils/readiness.js +2 -2
- package/dist/utils/uninstall-scrubbers.js +1 -1
- package/dist/utils/workflow-dir.d.ts +1 -1
- package/dist/utils/workflow-dir.d.ts.map +1 -1
- package/dist/utils/workflow-dir.js +1 -1
- package/dist/utils/workflow-dir.js.map +1 -1
- package/package.json +42 -37
- package/CHANGELOG.md +0 -651
- package/bin/compat-warning.js +0 -11
- package/bin/pactile.js +0 -3
- package/bin/smart-search.js +0 -38
- package/dist/migrations/manifests/0.1.0.json +0 -9
- package/dist/migrations/manifests/0.1.1.json +0 -9
- package/dist/migrations/manifests/0.1.2.json +0 -9
- package/dist/migrations/manifests/0.1.3.json +0 -9
- package/dist/migrations/manifests/0.1.4.json +0 -9
- package/dist/migrations/manifests/0.2.1.json +0 -9
- package/dist/migrations/manifests/0.2.10.json +0 -374
- package/dist/migrations/manifests/0.2.2.json +0 -9
- package/dist/migrations/manifests/0.2.3.json +0 -9
- package/dist/migrations/manifests/0.2.4.json +0 -9
- package/dist/migrations/manifests/0.2.5.json +0 -9
- package/dist/migrations/manifests/0.2.6.json +0 -9
- package/dist/migrations/manifests/0.2.7.json +0 -9
- package/dist/migrations/manifests/0.2.8.json +0 -9
- package/dist/migrations/manifests/0.2.9.json +0 -9
- package/dist/migrations/manifests/0.3.0.json +0 -89
- package/dist/migrations/manifests/0.3.1.json +0 -32
- package/dist/migrations/manifests/0.3.2.json +0 -16
- package/dist/migrations/manifests/0.3.3.json +0 -9
- package/dist/migrations/manifests/0.3.4.json +0 -9
- package/dist/migrations/manifests/0.3.5.json +0 -9
- package/dist/migrations/manifests/0.3.6.json +0 -9
- package/dist/migrations/manifests/0.4.0.json +0 -9
- package/dist/migrations/manifests/0.4.1.json +0 -9
- package/dist/migrations/manifests/0.4.2.json +0 -9
- package/dist/migrations/manifests/0.4.3.json +0 -9
- package/dist/migrations/manifests/0.5.0-beta.0.json +0 -9
- package/dist/migrations/manifests/0.5.0-beta.1.json +0 -9
- package/dist/migrations/manifests/0.5.0-beta.2.json +0 -9
- package/dist/migrations/manifests/0.5.0-beta.3.json +0 -9
- package/dist/migrations/manifests/0.5.0-beta.4.json +0 -9
- package/dist/migrations/manifests/0.5.0-beta.5.json +0 -9
- package/dist/migrations/manifests/0.5.0.json +0 -9
- package/dist/pactile/compat/retired-alternate-client.d.ts +0 -42
- package/dist/pactile/compat/retired-alternate-client.d.ts.map +0 -1
- package/dist/pactile/compat/retired-alternate-client.js +0 -153
- package/dist/pactile/compat/retired-alternate-client.js.map +0 -1
- package/dist/pactile/compat/update-residue.d.ts +0 -4
- package/dist/pactile/compat/update-residue.d.ts.map +0 -1
- package/dist/pactile/compat/update-residue.js +0 -55
- package/dist/pactile/compat/update-residue.js.map +0 -1
- package/dist/utils/cursor-retrieval-env.d.ts +0 -17
- package/dist/utils/cursor-retrieval-env.d.ts.map +0 -1
- package/dist/utils/cursor-retrieval-env.js +0 -19
- package/dist/utils/cursor-retrieval-env.js.map +0 -1
- package/dist/utils/proxy.d.ts +0 -25
- package/dist/utils/proxy.d.ts.map +0 -1
- package/dist/utils/proxy.js +0 -60
- package/dist/utils/proxy.js.map +0 -1
- package/scripts/postinstall.js +0 -6
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { decodeLogicalIdV1, decodeOpaqueReferenceV1, decodeTimestampV1, definePactileContractSchemaV1, } from "../../core/pactile/validation.js";
|
|
2
|
+
import { TASK_ARTIFACT_FACT_KINDS_V1, TASK_ARTIFACT_FACT_STATUSES_V1, TASK_ARTIFACT_PROVENANCE_METHODS_V1, TASK_ARTIFACT_SOURCE_KINDS_V1, TASK_ARTIFACT_STAGES_V1, } from "./types.js";
|
|
3
|
+
const SOURCE_SCHEMES = [
|
|
4
|
+
"user",
|
|
5
|
+
"plane",
|
|
6
|
+
"source",
|
|
7
|
+
"git",
|
|
8
|
+
"agent",
|
|
9
|
+
"tool",
|
|
10
|
+
"test",
|
|
11
|
+
"artifact",
|
|
12
|
+
"runtime",
|
|
13
|
+
];
|
|
14
|
+
const FRESHNESS_EVIDENCE_SCHEMES = [
|
|
15
|
+
"source",
|
|
16
|
+
"git",
|
|
17
|
+
"test",
|
|
18
|
+
"tool",
|
|
19
|
+
"artifact",
|
|
20
|
+
];
|
|
21
|
+
const FACT_FIELDS = [
|
|
22
|
+
"id",
|
|
23
|
+
"kind",
|
|
24
|
+
"status",
|
|
25
|
+
"title",
|
|
26
|
+
"summary",
|
|
27
|
+
"source",
|
|
28
|
+
"provenance",
|
|
29
|
+
"ref",
|
|
30
|
+
"candidateFreshness",
|
|
31
|
+
];
|
|
32
|
+
const SOURCE_SCHEME_BY_KIND = {
|
|
33
|
+
user: ["user"],
|
|
34
|
+
plane: ["plane"],
|
|
35
|
+
repository: ["source", "git"],
|
|
36
|
+
agent: ["agent"],
|
|
37
|
+
tool: ["tool"],
|
|
38
|
+
test: ["test"],
|
|
39
|
+
artifact: ["artifact"],
|
|
40
|
+
runtime: ["runtime"],
|
|
41
|
+
};
|
|
42
|
+
function decodeOneLine(decoder, value, path, maxLength) {
|
|
43
|
+
const result = decoder.string(value, path, { nonEmpty: true });
|
|
44
|
+
if (result.length > maxLength) {
|
|
45
|
+
decoder.issue("invalid-value", path, `must be at most ${maxLength} characters`);
|
|
46
|
+
}
|
|
47
|
+
if (/[\r\n]/u.test(result)) {
|
|
48
|
+
decoder.issue("invalid-value", path, "must be a single line");
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
function hasOwn(record, key) {
|
|
53
|
+
return Object.prototype.hasOwnProperty.call(record, key);
|
|
54
|
+
}
|
|
55
|
+
function decodeSource(value, decoder, path) {
|
|
56
|
+
const record = decoder.object(value, path, ["kind", "ref"]);
|
|
57
|
+
const kind = decoder.enumValue(decoder.required(record, "kind", path), TASK_ARTIFACT_SOURCE_KINDS_V1, `${path}.kind`);
|
|
58
|
+
const ref = decodeOpaqueReferenceV1(decoder.required(record, "ref", path), decoder, `${path}.ref`, SOURCE_SCHEMES);
|
|
59
|
+
const scheme = ref.slice(0, ref.indexOf("://"));
|
|
60
|
+
if (!SOURCE_SCHEME_BY_KIND[kind].includes(scheme)) {
|
|
61
|
+
decoder.issue("invalid-value", `${path}.ref`, `scheme must match source kind '${kind}'`);
|
|
62
|
+
}
|
|
63
|
+
return { kind, ref };
|
|
64
|
+
}
|
|
65
|
+
function decodeProvenance(value, decoder, path) {
|
|
66
|
+
const record = decoder.object(value, path, [
|
|
67
|
+
"recordedAt",
|
|
68
|
+
"actor",
|
|
69
|
+
"method",
|
|
70
|
+
"basedOn",
|
|
71
|
+
]);
|
|
72
|
+
const recordedAt = decodeTimestampV1(decoder.required(record, "recordedAt", path), decoder, `${path}.recordedAt`);
|
|
73
|
+
const actor = decodeOneLine(decoder, decoder.required(record, "actor", path), `${path}.actor`, 120);
|
|
74
|
+
const method = decoder.enumValue(decoder.required(record, "method", path), TASK_ARTIFACT_PROVENANCE_METHODS_V1, `${path}.method`);
|
|
75
|
+
const rawBasedOn = decoder.optional(record, "basedOn");
|
|
76
|
+
let basedOn;
|
|
77
|
+
if (rawBasedOn !== undefined) {
|
|
78
|
+
basedOn = decoder.stringArray(rawBasedOn, `${path}.basedOn`, {
|
|
79
|
+
nonEmptyItems: true,
|
|
80
|
+
unique: true,
|
|
81
|
+
pattern: /^[a-z][a-z0-9]*(?:[._:-][a-z0-9]+)*$/u,
|
|
82
|
+
patternDescription: "stable lowercase fact IDs",
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (method === "derived" && (!basedOn || basedOn.length === 0)) {
|
|
86
|
+
decoder.issue("required", `${path}.basedOn`, "is required and non-empty when method is 'derived'");
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
recordedAt,
|
|
90
|
+
actor,
|
|
91
|
+
method,
|
|
92
|
+
...(basedOn === undefined ? {} : { basedOn }),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function decodeLocator(value, decoder, path) {
|
|
96
|
+
const record = decoder.object(value, path, ["uri", "selector"]);
|
|
97
|
+
const uri = decodeOpaqueReferenceV1(decoder.required(record, "uri", path), decoder, `${path}.uri`, ["artifact"]);
|
|
98
|
+
const selector = decodeOneLine(decoder, decoder.required(record, "selector", path), `${path}.selector`, 256);
|
|
99
|
+
return { uri, selector };
|
|
100
|
+
}
|
|
101
|
+
function decodeCandidateFreshness(value, decoder, path) {
|
|
102
|
+
const record = decoder.object(value, path, [
|
|
103
|
+
"freshness",
|
|
104
|
+
"checkedAt",
|
|
105
|
+
"evidenceRef",
|
|
106
|
+
]);
|
|
107
|
+
const freshness = decoder.enumValue(decoder.required(record, "freshness", path), ["fresh", "stale", "unknown"], `${path}.freshness`);
|
|
108
|
+
const hasCheckedAt = hasOwn(record, "checkedAt");
|
|
109
|
+
const hasEvidenceRef = hasOwn(record, "evidenceRef");
|
|
110
|
+
if (freshness === "unknown") {
|
|
111
|
+
if (hasCheckedAt || hasEvidenceRef) {
|
|
112
|
+
decoder.issue("policy-violation", path, "unknown freshness must not claim a check time or evidence reference");
|
|
113
|
+
}
|
|
114
|
+
return { freshness };
|
|
115
|
+
}
|
|
116
|
+
if (!hasCheckedAt) {
|
|
117
|
+
decoder.issue("required", `${path}.checkedAt`, "is required for a freshness claim");
|
|
118
|
+
}
|
|
119
|
+
if (!hasEvidenceRef) {
|
|
120
|
+
decoder.issue("required", `${path}.evidenceRef`, "is required for a freshness claim");
|
|
121
|
+
}
|
|
122
|
+
const checkedAt = decodeTimestampV1(decoder.required(record, "checkedAt", path), decoder, `${path}.checkedAt`);
|
|
123
|
+
const evidenceRef = decodeOpaqueReferenceV1(decoder.required(record, "evidenceRef", path), decoder, `${path}.evidenceRef`, FRESHNESS_EVIDENCE_SCHEMES);
|
|
124
|
+
return { freshness, checkedAt, evidenceRef };
|
|
125
|
+
}
|
|
126
|
+
function decodeFact(value, decoder, path) {
|
|
127
|
+
const record = decoder.object(value, path, FACT_FIELDS);
|
|
128
|
+
const id = decodeLogicalIdV1(decoder.required(record, "id", path), decoder, `${path}.id`);
|
|
129
|
+
const kind = decoder.enumValue(decoder.required(record, "kind", path), TASK_ARTIFACT_FACT_KINDS_V1, `${path}.kind`);
|
|
130
|
+
const status = decoder.enumValue(decoder.required(record, "status", path), TASK_ARTIFACT_FACT_STATUSES_V1, `${path}.status`);
|
|
131
|
+
const title = decodeOneLine(decoder, decoder.required(record, "title", path), `${path}.title`, 120);
|
|
132
|
+
const summary = decodeOneLine(decoder, decoder.required(record, "summary", path), `${path}.summary`, 280);
|
|
133
|
+
const source = decodeSource(decoder.required(record, "source", path), decoder, `${path}.source`);
|
|
134
|
+
const provenance = decodeProvenance(decoder.required(record, "provenance", path), decoder, `${path}.provenance`);
|
|
135
|
+
const ref = decodeLocator(decoder.required(record, "ref", path), decoder, `${path}.ref`);
|
|
136
|
+
const hasFreshness = hasOwn(record, "candidateFreshness");
|
|
137
|
+
if (kind === "candidate") {
|
|
138
|
+
if (!hasFreshness) {
|
|
139
|
+
decoder.issue("required", `${path}.candidateFreshness`, "is required for candidate facts");
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
id,
|
|
143
|
+
kind,
|
|
144
|
+
status,
|
|
145
|
+
title,
|
|
146
|
+
summary,
|
|
147
|
+
source,
|
|
148
|
+
provenance,
|
|
149
|
+
ref,
|
|
150
|
+
candidateFreshness: decodeCandidateFreshness(decoder.required(record, "candidateFreshness", path), decoder, `${path}.candidateFreshness`),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (hasFreshness) {
|
|
154
|
+
decoder.issue("policy-violation", `${path}.candidateFreshness`, "candidate freshness is only valid for candidate facts");
|
|
155
|
+
}
|
|
156
|
+
return { id, kind, status, title, summary, source, provenance, ref };
|
|
157
|
+
}
|
|
158
|
+
function decodeEnvelope(value, decoder, path) {
|
|
159
|
+
const record = decoder.object(value, path, [
|
|
160
|
+
"schemaVersion",
|
|
161
|
+
"taskId",
|
|
162
|
+
"facts",
|
|
163
|
+
"stageRefs",
|
|
164
|
+
]);
|
|
165
|
+
const schemaVersion = decoder.literal(decoder.required(record, "schemaVersion", path), 1, `${path}.schemaVersion`);
|
|
166
|
+
const taskId = decodeLogicalIdV1(decoder.required(record, "taskId", path), decoder, `${path}.taskId`);
|
|
167
|
+
const facts = decoder.array(decoder.required(record, "facts", path), `${path}.facts`, (fact, factPath) => decodeFact(fact, decoder, factPath));
|
|
168
|
+
if (facts.length === 0) {
|
|
169
|
+
decoder.issue("invalid-value", `${path}.facts`, "must include at least one fact");
|
|
170
|
+
}
|
|
171
|
+
decoder.unique(facts, (fact) => fact.id, `${path}.facts`, "fact ID");
|
|
172
|
+
const rawStages = decoder.object(decoder.required(record, "stageRefs", path), `${path}.stageRefs`, TASK_ARTIFACT_STAGES_V1);
|
|
173
|
+
const stageRefs = {};
|
|
174
|
+
for (const stage of TASK_ARTIFACT_STAGES_V1) {
|
|
175
|
+
if (!hasOwn(rawStages, stage))
|
|
176
|
+
continue;
|
|
177
|
+
const ids = decoder.stringArray(rawStages[stage], `${path}.stageRefs.${stage}`, {
|
|
178
|
+
nonEmptyItems: true,
|
|
179
|
+
unique: true,
|
|
180
|
+
pattern: /^[a-z][a-z0-9]*(?:[._:-][a-z0-9]+)*$/u,
|
|
181
|
+
patternDescription: "stable lowercase fact IDs",
|
|
182
|
+
});
|
|
183
|
+
if (ids.length === 0) {
|
|
184
|
+
decoder.issue("invalid-value", `${path}.stageRefs.${stage}`, "empty stage entries must be omitted");
|
|
185
|
+
}
|
|
186
|
+
stageRefs[stage] = ids;
|
|
187
|
+
}
|
|
188
|
+
if (Object.keys(stageRefs).length === 0) {
|
|
189
|
+
decoder.issue("invalid-value", `${path}.stageRefs`, "must include at least one non-empty stage");
|
|
190
|
+
}
|
|
191
|
+
const factIds = new Set(facts.map((fact) => fact.id));
|
|
192
|
+
const reachableIds = new Set();
|
|
193
|
+
for (const stage of TASK_ARTIFACT_STAGES_V1) {
|
|
194
|
+
for (const [index, factId] of (stageRefs[stage] ?? []).entries()) {
|
|
195
|
+
if (!factIds.has(factId)) {
|
|
196
|
+
decoder.issue("invalid-value", `${path}.stageRefs.${stage}[${index}]`, `references unknown fact '${factId}'`);
|
|
197
|
+
}
|
|
198
|
+
reachableIds.add(factId);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
for (const [index, fact] of facts.entries()) {
|
|
202
|
+
if (!reachableIds.has(fact.id)) {
|
|
203
|
+
decoder.issue("invalid-value", `${path}.facts[${index}].id`, "fact must be referenced by at least one stage");
|
|
204
|
+
}
|
|
205
|
+
for (const basedOnId of fact.provenance.basedOn ?? []) {
|
|
206
|
+
if (basedOnId === fact.id) {
|
|
207
|
+
decoder.issue("policy-violation", `${path}.facts[${index}].provenance.basedOn`, "a fact cannot derive from itself");
|
|
208
|
+
}
|
|
209
|
+
if (!factIds.has(basedOnId)) {
|
|
210
|
+
decoder.issue("invalid-value", `${path}.facts[${index}].provenance.basedOn`, `references unknown fact '${basedOnId}'`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return { schemaVersion, taskId, facts, stageRefs };
|
|
215
|
+
}
|
|
216
|
+
export const taskArtifactEnvelopeV1Schema = definePactileContractSchemaV1("pactile.task-artifacts", decodeEnvelope);
|
|
217
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/pactile/artifacts/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured task facts shared by PRD, Design, Implement, Review, and Verify.
|
|
3
|
+
* Stage indexes point at fact IDs; they never own a second copy of a fact.
|
|
4
|
+
*/
|
|
5
|
+
export declare const TASK_ARTIFACT_STAGES_V1: readonly ["prd", "design", "implement", "review", "verify"];
|
|
6
|
+
export type TaskArtifactStageV1 = (typeof TASK_ARTIFACT_STAGES_V1)[number];
|
|
7
|
+
export declare const TASK_ARTIFACT_FACT_KINDS_V1: readonly ["requirement", "decision", "constraint", "finding", "evidence", "candidate", "context"];
|
|
8
|
+
export type TaskArtifactFactKindV1 = (typeof TASK_ARTIFACT_FACT_KINDS_V1)[number];
|
|
9
|
+
export declare const TASK_ARTIFACT_FACT_STATUSES_V1: readonly ["active", "accepted", "blocked", "rejected", "superseded", "verified"];
|
|
10
|
+
export type TaskArtifactFactStatusV1 = (typeof TASK_ARTIFACT_FACT_STATUSES_V1)[number];
|
|
11
|
+
export declare const TASK_ARTIFACT_SOURCE_KINDS_V1: readonly ["user", "plane", "repository", "agent", "tool", "test", "artifact", "runtime"];
|
|
12
|
+
export type TaskArtifactSourceKindV1 = (typeof TASK_ARTIFACT_SOURCE_KINDS_V1)[number];
|
|
13
|
+
export declare const TASK_ARTIFACT_PROVENANCE_METHODS_V1: readonly ["direct", "derived", "verified", "imported"];
|
|
14
|
+
export type TaskArtifactProvenanceMethodV1 = (typeof TASK_ARTIFACT_PROVENANCE_METHODS_V1)[number];
|
|
15
|
+
export interface TaskArtifactSourceV1 {
|
|
16
|
+
readonly kind: TaskArtifactSourceKindV1;
|
|
17
|
+
/** Safe opaque source reference, such as `plane://tasks/pactile-42`. */
|
|
18
|
+
readonly ref: string;
|
|
19
|
+
}
|
|
20
|
+
export interface TaskArtifactProvenanceV1 {
|
|
21
|
+
readonly recordedAt: string;
|
|
22
|
+
readonly actor: string;
|
|
23
|
+
readonly method: TaskArtifactProvenanceMethodV1;
|
|
24
|
+
/** Stable IDs of facts used to derive this fact. */
|
|
25
|
+
readonly basedOn?: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
export interface TaskArtifactLocatorV1 {
|
|
28
|
+
/** Logical Kernel resource resolved through the active Task reader. */
|
|
29
|
+
readonly uri: string;
|
|
30
|
+
/** JSON pointer into the current Kernel snapshot returned by that reader. */
|
|
31
|
+
readonly selector: string;
|
|
32
|
+
}
|
|
33
|
+
export type TaskArtifactCandidateFreshnessV1 = {
|
|
34
|
+
readonly freshness: "fresh" | "stale";
|
|
35
|
+
readonly checkedAt: string;
|
|
36
|
+
readonly evidenceRef: string;
|
|
37
|
+
} | {
|
|
38
|
+
readonly freshness: "unknown";
|
|
39
|
+
};
|
|
40
|
+
interface TaskArtifactFactBaseV1 {
|
|
41
|
+
/** Caller-assigned logical ID. Keep it when the fact changes status. */
|
|
42
|
+
readonly id: string;
|
|
43
|
+
readonly status: TaskArtifactFactStatusV1;
|
|
44
|
+
readonly title: string;
|
|
45
|
+
/** One-line index text; fuller context stays at `ref`. */
|
|
46
|
+
readonly summary: string;
|
|
47
|
+
readonly source: TaskArtifactSourceV1;
|
|
48
|
+
readonly provenance: TaskArtifactProvenanceV1;
|
|
49
|
+
readonly ref: TaskArtifactLocatorV1;
|
|
50
|
+
}
|
|
51
|
+
export type TaskArtifactFactV1 = (TaskArtifactFactBaseV1 & {
|
|
52
|
+
readonly kind: Exclude<TaskArtifactFactKindV1, "candidate">;
|
|
53
|
+
readonly candidateFreshness?: never;
|
|
54
|
+
}) | (TaskArtifactFactBaseV1 & {
|
|
55
|
+
readonly kind: "candidate";
|
|
56
|
+
readonly candidateFreshness: TaskArtifactCandidateFreshnessV1;
|
|
57
|
+
});
|
|
58
|
+
export interface TaskArtifactEnvelopeV1 {
|
|
59
|
+
readonly schemaVersion: 1;
|
|
60
|
+
readonly taskId: string;
|
|
61
|
+
readonly facts: readonly TaskArtifactFactV1[];
|
|
62
|
+
/** Sparse index: only stages with facts are present; values are fact IDs. */
|
|
63
|
+
readonly stageRefs: Readonly<Partial<Record<TaskArtifactStageV1, readonly string[]>>>;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pactile/artifacts/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured task facts shared by PRD, Design, Implement, Review, and Verify.
|
|
3
|
+
* Stage indexes point at fact IDs; they never own a second copy of a fact.
|
|
4
|
+
*/
|
|
5
|
+
export const TASK_ARTIFACT_STAGES_V1 = [
|
|
6
|
+
"prd",
|
|
7
|
+
"design",
|
|
8
|
+
"implement",
|
|
9
|
+
"review",
|
|
10
|
+
"verify",
|
|
11
|
+
];
|
|
12
|
+
export const TASK_ARTIFACT_FACT_KINDS_V1 = [
|
|
13
|
+
"requirement",
|
|
14
|
+
"decision",
|
|
15
|
+
"constraint",
|
|
16
|
+
"finding",
|
|
17
|
+
"evidence",
|
|
18
|
+
"candidate",
|
|
19
|
+
"context",
|
|
20
|
+
];
|
|
21
|
+
export const TASK_ARTIFACT_FACT_STATUSES_V1 = [
|
|
22
|
+
"active",
|
|
23
|
+
"accepted",
|
|
24
|
+
"blocked",
|
|
25
|
+
"rejected",
|
|
26
|
+
"superseded",
|
|
27
|
+
"verified",
|
|
28
|
+
];
|
|
29
|
+
export const TASK_ARTIFACT_SOURCE_KINDS_V1 = [
|
|
30
|
+
"user",
|
|
31
|
+
"plane",
|
|
32
|
+
"repository",
|
|
33
|
+
"agent",
|
|
34
|
+
"tool",
|
|
35
|
+
"test",
|
|
36
|
+
"artifact",
|
|
37
|
+
"runtime",
|
|
38
|
+
];
|
|
39
|
+
export const TASK_ARTIFACT_PROVENANCE_METHODS_V1 = [
|
|
40
|
+
"direct",
|
|
41
|
+
"derived",
|
|
42
|
+
"verified",
|
|
43
|
+
"imported",
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pactile/artifacts/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,KAAK;IACL,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,QAAQ;CACA,CAAC;AAIX,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,aAAa;IACb,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;CACD,CAAC;AAKX,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,QAAQ;IACR,UAAU;IACV,SAAS;IACT,UAAU;IACV,YAAY;IACZ,UAAU;CACF,CAAC;AAKX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,MAAM;IACN,OAAO;IACP,YAAY;IACZ,OAAO;IACP,MAAM;IACN,MAAM;IACN,UAAU;IACV,SAAS;CACD,CAAC;AAKX,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,QAAQ;IACR,SAAS;IACT,UAAU;IACV,UAAU;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../src/pactile/capabilities/claim.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAepE,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,CAwDvB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import fsp from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { CapabilityNodeError, RECEIPT_ROOT, isInside, mapFilesystemError, sameFileIdentity, stopReason, } from "./shared.js";
|
|
5
|
+
import { inspectReceiptDirectory } from "./receipts.js";
|
|
6
|
+
const MAX_PENDING_RECEIPT_CLAIMS = 32;
|
|
7
|
+
function rejectStoppedClaim(signal) {
|
|
8
|
+
const reason = stopReason(signal);
|
|
9
|
+
if (reason)
|
|
10
|
+
throw new CapabilityNodeError(reason, reason === "TIMEOUT"
|
|
11
|
+
? "The request exceeded its time limit before its receipt claim."
|
|
12
|
+
: "The request was cancelled before its receipt claim.");
|
|
13
|
+
}
|
|
14
|
+
export async function claimRequestId(root, directory, requestId, signal) {
|
|
15
|
+
rejectStoppedClaim(signal);
|
|
16
|
+
await inspectReceiptDirectory(root, directory);
|
|
17
|
+
rejectStoppedClaim(signal);
|
|
18
|
+
const file = path.join(directory.path, `${requestId}.json`);
|
|
19
|
+
try {
|
|
20
|
+
await fsp.lstat(file);
|
|
21
|
+
throw new CapabilityNodeError("REQUEST_ID_REUSED", "This request id is in progress or has already been used.");
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error instanceof CapabilityNodeError)
|
|
25
|
+
throw error;
|
|
26
|
+
const code = error && typeof error === "object" && "code" in error
|
|
27
|
+
? String(error.code)
|
|
28
|
+
: "";
|
|
29
|
+
if (code !== "ENOENT")
|
|
30
|
+
throw mapFilesystemError(error);
|
|
31
|
+
}
|
|
32
|
+
await assertPendingReceiptClaimCapacity(directory, signal);
|
|
33
|
+
rejectStoppedClaim(signal);
|
|
34
|
+
await inspectReceiptDirectory(root, directory);
|
|
35
|
+
rejectStoppedClaim(signal);
|
|
36
|
+
const noFollow = process.platform === "win32" ? 0 : fs.constants.O_NOFOLLOW;
|
|
37
|
+
const handle = await fsp.open(file, fs.constants.O_CREAT |
|
|
38
|
+
fs.constants.O_EXCL |
|
|
39
|
+
fs.constants.O_WRONLY |
|
|
40
|
+
noFollow, 0o600);
|
|
41
|
+
try {
|
|
42
|
+
const handleStat = await handle.stat();
|
|
43
|
+
const fileStat = await fsp.lstat(file);
|
|
44
|
+
await inspectReceiptDirectory(root, directory);
|
|
45
|
+
const resolvedFile = await fsp.realpath(file);
|
|
46
|
+
if (!handleStat.isFile() ||
|
|
47
|
+
fileStat.isSymbolicLink() ||
|
|
48
|
+
!sameFileIdentity(handleStat, fileStat) ||
|
|
49
|
+
!isInside(root, resolvedFile)) {
|
|
50
|
+
throw new CapabilityNodeError("OUT_OF_SCOPE", "The receipt file changed while its workspace boundary was being checked.");
|
|
51
|
+
}
|
|
52
|
+
return { path: file, handle, stat: handleStat };
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
await handle.close().catch(() => undefined);
|
|
56
|
+
throw new CapabilityNodeError("REQUEST_CLAIM_RETAINED", `Request id ${requestId} was reserved before receipt verification failed. The capability operation did not run, and its incomplete claim was retained. Retry with a new requestId, or confirm the receipt directory still resolves inside the workspace before inspecting ${RECEIPT_ROOT}/${requestId}.json; remove it only after confirming it is an empty regular file and no request is active.`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async function assertPendingReceiptClaimCapacity(directory, signal) {
|
|
60
|
+
let pendingClaims = 0;
|
|
61
|
+
let handle = null;
|
|
62
|
+
try {
|
|
63
|
+
handle = await fsp.opendir(directory.path);
|
|
64
|
+
for await (const entry of handle) {
|
|
65
|
+
rejectStoppedClaim(signal);
|
|
66
|
+
if (!entry.name.toLocaleLowerCase().endsWith(".json") || !entry.isFile())
|
|
67
|
+
continue;
|
|
68
|
+
try {
|
|
69
|
+
const stat = await fsp.lstat(path.join(directory.path, entry.name));
|
|
70
|
+
rejectStoppedClaim(signal);
|
|
71
|
+
if (stat.isFile() &&
|
|
72
|
+
!stat.isSymbolicLink() &&
|
|
73
|
+
stat.size === 0 &&
|
|
74
|
+
++pendingClaims >= MAX_PENDING_RECEIPT_CLAIMS) {
|
|
75
|
+
throw new CapabilityNodeError("REQUEST_CLAIM_LIMIT", `The receipt store already contains ${MAX_PENDING_RECEIPT_CLAIMS} incomplete empty claims. Inspect and resolve stale claims before retrying.`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error instanceof CapabilityNodeError)
|
|
80
|
+
throw error;
|
|
81
|
+
const mapped = mapFilesystemError(error);
|
|
82
|
+
if (mapped.code !== "NOT_FOUND")
|
|
83
|
+
throw mapped;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
rejectStoppedClaim(signal);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (error instanceof CapabilityNodeError)
|
|
90
|
+
throw error;
|
|
91
|
+
throw mapFilesystemError(error);
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
await handle?.close().catch(() => undefined);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../../src/pactile/capabilities/claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BoundedCapabilityRequestV1 } from "../../core/index.js";
|
|
2
|
+
import { type OperationResult } from "./shared.js";
|
|
3
|
+
export declare function runCommand(root: string, request: Extract<BoundedCapabilityRequestV1, {
|
|
4
|
+
operation: "run";
|
|
5
|
+
}>, signal: AbortSignal): Promise<OperationResult>;
|
|
6
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/pactile/capabilities/command.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EASL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AA8IrB,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,0BAA0B,EAAE;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,CAAC,EAClE,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CA4I1B"}
|