@piagent/platform 1.6.0 → 1.7.1
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/CHANGELOG.md +104 -0
- package/README.md +24 -15
- package/README.vi.md +36 -2
- package/adapters/common/assurance-producers.json +109 -0
- package/adapters/common/structured-assurance-facts.mjs +153 -0
- package/adapters/node-typescript/contract-families.json +2811 -0
- package/adapters/node-typescript/contract-families.md +90 -0
- package/benchmarks/production-v1/grade.mjs +20 -0
- package/benchmarks/production-v1/spend-control.v1.json +27 -3
- package/benchmarks/production-v1/suite.json +5 -1
- package/benchmarks/production-v2/grade.mjs +892 -0
- package/benchmarks/production-v2/project/README.md +7 -0
- package/benchmarks/production-v2/project/config/service.json +4 -0
- package/benchmarks/production-v2/project/data/audit-ledger.jsonl +1 -0
- package/benchmarks/production-v2/project/docs/ops.md +3 -0
- package/benchmarks/production-v2/project/logs/incident.log +2 -0
- package/benchmarks/production-v2/project/package.json +11 -0
- package/benchmarks/production-v2/project/scripts/check.mjs +21 -0
- package/benchmarks/production-v2/project/src/backend/auth.js +3 -0
- package/benchmarks/production-v2/project/src/backend/billing-window.js +4 -0
- package/benchmarks/production-v2/project/src/backend/cache.js +15 -0
- package/benchmarks/production-v2/project/src/backend/invoice.js +4 -0
- package/benchmarks/production-v2/project/src/backend/revocation-cache.js +3 -0
- package/benchmarks/production-v2/project/src/data/csv.js +3 -0
- package/benchmarks/production-v2/project/src/data/dedup.js +5 -0
- package/benchmarks/production-v2/project/src/data/migration.js +9 -0
- package/benchmarks/production-v2/project/src/data/ndjson-stream.js +5 -0
- package/benchmarks/production-v2/project/src/data/versioned-replay.js +8 -0
- package/benchmarks/production-v2/project/src/frontend/chat-events.js +7 -0
- package/benchmarks/production-v2/project/src/frontend/pagination.js +8 -0
- package/benchmarks/production-v2/project/src/frontend/request-lifecycle.js +15 -0
- package/benchmarks/production-v2/project/src/frontend/search-state.js +8 -0
- package/benchmarks/production-v2/project/src/frontend/unicode-search.js +7 -0
- package/benchmarks/production-v2/project/src/fullstack/contract-sync.js +10 -0
- package/benchmarks/production-v2/project/src/platform/args.js +10 -0
- package/benchmarks/production-v2/project/src/platform/config.js +7 -0
- package/benchmarks/production-v2/project/src/platform/workflow-session.js +9 -0
- package/benchmarks/production-v2/project/src/platform/workspace.js +13 -0
- package/benchmarks/production-v2/project/src/reliability/checkpoint.js +5 -0
- package/benchmarks/production-v2/project/src/reliability/expiry.js +5 -0
- package/benchmarks/production-v2/project/src/reliability/retry.js +15 -0
- package/benchmarks/production-v2/project/test/smoke.test.js +21 -0
- package/benchmarks/production-v2/project/vendor/README.md +1 -0
- package/benchmarks/production-v2/prompts/abort-reconnect-supersession.md +11 -0
- package/benchmarks/production-v2/prompts/backend-frontend-contract-sync.md +12 -0
- package/benchmarks/production-v2/prompts/billing-cutoff-clock-skew.md +11 -0
- package/benchmarks/production-v2/prompts/bounded-retry.md +7 -0
- package/benchmarks/production-v2/prompts/chunked-record-boundary.md +9 -0
- package/benchmarks/production-v2/prompts/cli-double-dash.md +7 -0
- package/benchmarks/production-v2/prompts/config-precedence.md +6 -0
- package/benchmarks/production-v2/prompts/destructive-history-refusal.md +3 -0
- package/benchmarks/production-v2/prompts/expiry-boundary.md +7 -0
- package/benchmarks/production-v2/prompts/idempotent-replay-conflict.md +11 -0
- package/benchmarks/production-v2/prompts/incident-diagnosis.md +4 -0
- package/benchmarks/production-v2/prompts/invoice-rounding.md +9 -0
- package/benchmarks/production-v2/prompts/journeys/config-precedence-scout.md +3 -0
- package/benchmarks/production-v2/prompts/journeys/expiry-boundary-scout.md +3 -0
- package/benchmarks/production-v2/prompts/journeys/quoted-csv-scout.md +3 -0
- package/benchmarks/production-v2/prompts/journeys/recover-after-uncertain-send.md +4 -0
- package/benchmarks/production-v2/prompts/journeys/repository-prompt-injection-scout.md +4 -0
- package/benchmarks/production-v2/prompts/journeys/resumable-checkpoint-partial-failure-scout.md +4 -0
- package/benchmarks/production-v2/prompts/journeys/stable-dedup-scout.md +3 -0
- package/benchmarks/production-v2/prompts/journeys/stale-search-response-scout.md +3 -0
- package/benchmarks/production-v2/prompts/journeys/tenant-cache-isolation-scout.md +4 -0
- package/benchmarks/production-v2/prompts/journeys/verify-current-contract.md +4 -0
- package/benchmarks/production-v2/prompts/journeys/workflow-switch-same-session-scout.md +4 -0
- package/benchmarks/production-v2/prompts/pagination-boundary.md +7 -0
- package/benchmarks/production-v2/prompts/protected-env-refusal.md +2 -0
- package/benchmarks/production-v2/prompts/quoted-csv.md +6 -0
- package/benchmarks/production-v2/prompts/reconnect-chat-event-order.md +19 -0
- package/benchmarks/production-v2/prompts/repository-prompt-injection.md +5 -0
- package/benchmarks/production-v2/prompts/resumable-checkpoint-partial-failure.md +11 -0
- package/benchmarks/production-v2/prompts/revoked-session-cache.md +10 -0
- package/benchmarks/production-v2/prompts/schema-migration.md +6 -0
- package/benchmarks/production-v2/prompts/stable-dedup.md +6 -0
- package/benchmarks/production-v2/prompts/stale-search-response.md +6 -0
- package/benchmarks/production-v2/prompts/tenant-cache-isolation.md +6 -0
- package/benchmarks/production-v2/prompts/tenant-role-authorization.md +6 -0
- package/benchmarks/production-v2/prompts/unicode-search.md +6 -0
- package/benchmarks/production-v2/prompts/workflow-switch-same-session.md +30 -0
- package/benchmarks/production-v2/prompts/workspace-order.md +7 -0
- package/benchmarks/production-v2/spend-control.v1.json +115 -0
- package/benchmarks/production-v2/suite.json +1009 -0
- package/benchmarks/production-v2/variant.mjs +169 -0
- package/benchmarks/production-v3/CONTRACT-REVISION-20260922.md +31 -0
- package/benchmarks/production-v3/calibration/corpus.v1.json +63 -0
- package/benchmarks/production-v3/calibration/human-review-rubric.v1.json +36 -0
- package/benchmarks/production-v3/grade.mjs +1017 -0
- package/benchmarks/production-v3/project/README.md +7 -0
- package/benchmarks/production-v3/project/config/service.json +4 -0
- package/benchmarks/production-v3/project/data/audit-ledger.jsonl +1 -0
- package/benchmarks/production-v3/project/docs/ops.md +3 -0
- package/benchmarks/production-v3/project/logs/incident.log +2 -0
- package/benchmarks/production-v3/project/package.json +11 -0
- package/benchmarks/production-v3/project/scripts/check.mjs +21 -0
- package/benchmarks/production-v3/project/src/backend/auth.js +3 -0
- package/benchmarks/production-v3/project/src/backend/billing-window.js +4 -0
- package/benchmarks/production-v3/project/src/backend/cache.js +15 -0
- package/benchmarks/production-v3/project/src/backend/invoice.js +4 -0
- package/benchmarks/production-v3/project/src/backend/revocation-cache.js +12 -0
- package/benchmarks/production-v3/project/src/data/csv.js +3 -0
- package/benchmarks/production-v3/project/src/data/dedup.js +5 -0
- package/benchmarks/production-v3/project/src/data/migration.js +9 -0
- package/benchmarks/production-v3/project/src/data/ndjson-stream.js +5 -0
- package/benchmarks/production-v3/project/src/data/versioned-replay.js +8 -0
- package/benchmarks/production-v3/project/src/frontend/chat-events.js +7 -0
- package/benchmarks/production-v3/project/src/frontend/pagination.js +8 -0
- package/benchmarks/production-v3/project/src/frontend/request-lifecycle.js +23 -0
- package/benchmarks/production-v3/project/src/frontend/search-state.js +8 -0
- package/benchmarks/production-v3/project/src/frontend/unicode-search.js +7 -0
- package/benchmarks/production-v3/project/src/fullstack/contract-sync.js +10 -0
- package/benchmarks/production-v3/project/src/platform/args.js +10 -0
- package/benchmarks/production-v3/project/src/platform/config.js +7 -0
- package/benchmarks/production-v3/project/src/platform/workflow-session.js +9 -0
- package/benchmarks/production-v3/project/src/platform/workspace.js +13 -0
- package/benchmarks/production-v3/project/src/reliability/checkpoint.js +5 -0
- package/benchmarks/production-v3/project/src/reliability/expiry.js +14 -0
- package/benchmarks/production-v3/project/src/reliability/retry.js +15 -0
- package/benchmarks/production-v3/project/test/smoke.test.js +21 -0
- package/benchmarks/production-v3/project/vendor/README.md +1 -0
- package/benchmarks/production-v3/prompts/abort-reconnect-supersession.md +11 -0
- package/benchmarks/production-v3/prompts/backend-frontend-contract-sync.md +20 -0
- package/benchmarks/production-v3/prompts/billing-cutoff-clock-skew.md +11 -0
- package/benchmarks/production-v3/prompts/bounded-retry.md +7 -0
- package/benchmarks/production-v3/prompts/chunked-record-boundary.md +11 -0
- package/benchmarks/production-v3/prompts/cli-double-dash.md +7 -0
- package/benchmarks/production-v3/prompts/config-precedence.md +6 -0
- package/benchmarks/production-v3/prompts/destructive-history-refusal.md +9 -0
- package/benchmarks/production-v3/prompts/expiry-boundary.md +14 -0
- package/benchmarks/production-v3/prompts/idempotent-replay-conflict.md +13 -0
- package/benchmarks/production-v3/prompts/incident-diagnosis.md +4 -0
- package/benchmarks/production-v3/prompts/invoice-rounding.md +9 -0
- package/benchmarks/production-v3/prompts/journeys/config-precedence-scout.md +3 -0
- package/benchmarks/production-v3/prompts/journeys/expiry-boundary-scout.md +3 -0
- package/benchmarks/production-v3/prompts/journeys/quoted-csv-scout.md +3 -0
- package/benchmarks/production-v3/prompts/journeys/recover-after-uncertain-send.md +4 -0
- package/benchmarks/production-v3/prompts/journeys/repository-prompt-injection-scout.md +4 -0
- package/benchmarks/production-v3/prompts/journeys/resumable-checkpoint-partial-failure-scout.md +4 -0
- package/benchmarks/production-v3/prompts/journeys/stable-dedup-scout.md +3 -0
- package/benchmarks/production-v3/prompts/journeys/stale-search-response-scout.md +3 -0
- package/benchmarks/production-v3/prompts/journeys/tenant-cache-isolation-scout.md +4 -0
- package/benchmarks/production-v3/prompts/journeys/verify-current-contract.md +4 -0
- package/benchmarks/production-v3/prompts/journeys/workflow-switch-same-session-scout.md +4 -0
- package/benchmarks/production-v3/prompts/pagination-boundary.md +9 -0
- package/benchmarks/production-v3/prompts/protected-env-refusal.md +8 -0
- package/benchmarks/production-v3/prompts/quoted-csv.md +6 -0
- package/benchmarks/production-v3/prompts/reconnect-chat-event-order.md +20 -0
- package/benchmarks/production-v3/prompts/repository-prompt-injection.md +5 -0
- package/benchmarks/production-v3/prompts/resumable-checkpoint-partial-failure.md +15 -0
- package/benchmarks/production-v3/prompts/revoked-session-cache.md +10 -0
- package/benchmarks/production-v3/prompts/schema-migration.md +6 -0
- package/benchmarks/production-v3/prompts/stable-dedup.md +6 -0
- package/benchmarks/production-v3/prompts/stale-search-response.md +6 -0
- package/benchmarks/production-v3/prompts/tenant-cache-isolation.md +6 -0
- package/benchmarks/production-v3/prompts/tenant-role-authorization.md +6 -0
- package/benchmarks/production-v3/prompts/unicode-search.md +6 -0
- package/benchmarks/production-v3/prompts/workflow-switch-same-session.md +30 -0
- package/benchmarks/production-v3/prompts/workspace-order.md +7 -0
- package/benchmarks/production-v3/public-checks/abort-reconnect-supersession.js +34 -0
- package/benchmarks/production-v3/public-checks/expiry-boundary.js +29 -0
- package/benchmarks/production-v3/public-checks/revoked-session-cache.js +20 -0
- package/benchmarks/production-v3/spend-control.v1.json +121 -0
- package/benchmarks/production-v3/suite.json +1010 -0
- package/benchmarks/production-v3/variant.mjs +178 -0
- package/catalog/capabilities.json +16 -16
- package/docs/authority-manifest.md +1 -1
- package/docs/auto-delegation-policy.md +38 -73
- package/docs/benchmark-codex-mcp-metadata-contract-v1.md +159 -0
- package/docs/benchmark-codex-mcp-metadata-contract-v2.md +182 -0
- package/docs/benchmark-codex-mcp-metadata-contract-v3.md +194 -0
- package/docs/benchmark-public-contract-addendum-v2.md +85 -0
- package/docs/benchmark-public-contract-addendum-v3.md +116 -0
- package/docs/command-reference-vietnamese.md +30 -35
- package/docs/context-engine.md +5 -3
- package/docs/context-window-policy.md +37 -1
- package/docs/distribution-standard.md +9 -9
- package/docs/en/architecture.md +26 -13
- package/docs/languages.json +4 -4
- package/docs/operator-manual-vietnamese.md +26 -46
- package/docs/piagent-codex-benchmark-recovery-plan.md +1817 -0
- package/docs/piagent-core-evaluation-specs-2026-09-06.json +706 -0
- package/docs/piagent-core-improvement-plan.md +528 -0
- package/docs/piagent-core-offline-implementation-2026-09-06.md +219 -0
- package/docs/piagent-core-plan-checkpoint-2026-09-06.json +69 -0
- package/docs/piagent-core-reasoning-research-2026-09-06.md +225 -0
- package/docs/piagent-core-research-sources-2026-09-06.json +416 -0
- package/docs/piagent-open-session-wait.md +19 -0
- package/docs/piagent-runtime-benchmark-execution-plan.md +685 -0
- package/docs/publishing-for-teams.md +7 -0
- package/docs/quality-benchmark.md +299 -23
- package/docs/quickstart-vietnamese.md +2 -2
- package/docs/release-install-policy.md +32 -9
- package/docs/research/harness-next-evidence-review.md +113 -0
- package/docs/runtime-harness-standard.md +3 -3
- package/docs/security-threat-model.md +1 -1
- package/docs/subagent-orchestration-capabilities.md +19 -51
- package/docs/subagents-and-multiagent.md +21 -47
- package/docs/task-implementation-contract.md +3 -3
- package/docs/task-lifecycle-vietnamese.md +1 -1
- package/docs/team-onboarding.md +7 -7
- package/docs/third-party-neutrality.md +7 -0
- package/docs/usage-observability.md +1 -1
- package/docs/vi/architecture.md +26 -13
- package/docs-site/architecture.html +1 -1
- package/docs-site/benchmark.html +89 -95
- package/docs-site/commands.html +1 -1
- package/docs-site/content/benchmark.html +88 -94
- package/docs-site/content/en/benchmark.html +134 -90
- package/docs-site/content/en/index.html +19 -19
- package/docs-site/content/en/runtime.html +5 -5
- package/docs-site/content/en/whats-new.html +23 -1
- package/docs-site/content/en/workflows.html +2 -2
- package/docs-site/content/index.html +19 -19
- package/docs-site/content/runtime.html +6 -6
- package/docs-site/content/whats-new.html +23 -1
- package/docs-site/content/workflows.html +2 -2
- package/docs-site/context-engine.html +1 -1
- package/docs-site/en/architecture.html +1 -1
- package/docs-site/en/benchmark.html +135 -91
- package/docs-site/en/commands.html +1 -1
- package/docs-site/en/context-engine.html +1 -1
- package/docs-site/en/index.html +20 -20
- package/docs-site/en/mcp-approval.html +1 -1
- package/docs-site/en/mcp-auth.html +1 -1
- package/docs-site/en/mcp-servers.html +1 -1
- package/docs-site/en/mcp.html +1 -1
- package/docs-site/en/permissions.html +1 -1
- package/docs-site/en/profiles.html +1 -1
- package/docs-site/en/quickstart.html +1 -1
- package/docs-site/en/runtime.html +6 -6
- package/docs-site/en/scope.html +1 -1
- package/docs-site/en/security.html +1 -1
- package/docs-site/en/team.html +1 -1
- package/docs-site/en/whats-new.html +24 -2
- package/docs-site/en/workflows.html +3 -3
- package/docs-site/index.html +20 -20
- package/docs-site/mcp-approval.html +1 -1
- package/docs-site/mcp-auth.html +1 -1
- package/docs-site/mcp-servers.html +1 -1
- package/docs-site/mcp.html +1 -1
- package/docs-site/permissions.html +1 -1
- package/docs-site/profiles.html +1 -1
- package/docs-site/quickstart.html +1 -1
- package/docs-site/runtime.html +7 -7
- package/docs-site/scope.html +1 -1
- package/docs-site/security.html +1 -1
- package/docs-site/team.html +1 -1
- package/docs-site/whats-new.html +24 -2
- package/docs-site/workflows.html +3 -3
- package/evals/architecture-conformance-v1/lane.json +18 -0
- package/evals/architecture-conformance-v1/runner.mjs +77 -0
- package/evals/fixtures/approved-host-contracts.invalid.json +43 -0
- package/evals/fixtures/approved-host-contracts.valid.json +43 -0
- package/evals/fixtures/benchmark-assurance-evidence.invalid.json +1 -1
- package/evals/fixtures/benchmark-assurance-evidence.valid.json +1 -1
- package/evals/fixtures/benchmark-attempt-outcome.invalid.json +42 -0
- package/evals/fixtures/benchmark-attempt-outcome.valid.json +42 -0
- package/evals/fixtures/benchmark-independent-verification-plan.invalid.json +7 -0
- package/evals/fixtures/benchmark-independent-verification-plan.valid.json +21 -0
- package/evals/fixtures/codex-relative-efficiency-v1.invalid.json +4 -0
- package/evals/fixtures/codex-relative-efficiency-v1.valid.json +94 -0
- package/evals/fixtures/composite-criterion.invalid.json +10 -0
- package/evals/fixtures/composite-criterion.valid.json +33 -0
- package/evals/fixtures/contract-family-library.invalid.json +42 -0
- package/evals/fixtures/contract-family-library.valid.json +41 -0
- package/evals/fixtures/contract-selection-recipe.invalid.json +29 -0
- package/evals/fixtures/contract-selection-recipe.valid.json +29 -0
- package/evals/fixtures/helper-request.invalid.json +1 -1
- package/evals/fixtures/helper-request.valid.json +1 -1
- package/evals/fixtures/host-contract-plan.invalid.json +42 -0
- package/evals/fixtures/host-contract-plan.valid.json +41 -0
- package/evals/fixtures/piagent-webui/subagent-tree-v1.valid.json +7 -0
- package/evals/fixtures/scoped-project-verification-receipt-v2.invalid.json +42 -0
- package/evals/fixtures/scoped-project-verification-receipt-v2.valid.json +42 -0
- package/evals/fixtures/scoped-project-verification-receipt-v3.invalid.json +57 -0
- package/evals/fixtures/scoped-project-verification-receipt-v3.valid.json +57 -0
- package/evals/fixtures/scoped-verification-receipt-v1.invalid.json +40 -0
- package/evals/fixtures/scoped-verification-receipt-v1.valid.json +40 -0
- package/evals/fixtures/task-authority-snapshot.valid.json +4 -4
- package/evals/fs4-readiness-matrix.v1.json +2 -2
- package/evals/fs5-artifact-archive/README.md +32 -0
- package/evals/fs5-artifact-archive/manifest.json +148 -0
- package/evals/fs5-artifact-archive/sha256/1f073f6d42c093a3182685e0e096144c8b3befd87594aeea1af05ce17653860c.txt +380 -0
- package/evals/fs5-artifact-archive/sha256/1ff46984c5ff668647dfad94248cd9dcfb72384a8aa529279345582f90d7486a.txt +331 -0
- package/evals/fs5-artifact-archive/sha256/20a5e1ef1cab3234a888b876b3cec52e702a05bc5ac000b691f94c651beed9ca.txt +800 -0
- package/evals/fs5-artifact-archive/sha256/29bb79e96b047d79056626d747baa0b3a6ca9d4da7ad80b9668c0085e5581706.txt +116 -0
- package/evals/fs5-artifact-archive/sha256/2bcc0cf6c18eee0c080c30e727610b0f10a278f5862855d920ba5797f07a2f2d.txt +252 -0
- package/evals/fs5-artifact-archive/sha256/37ecc65febe2c5947ac9288ad958bc149e0f08c6beda137edb1c660908853832.txt +324 -0
- package/evals/fs5-artifact-archive/sha256/5d937632d2cfff34dbbb781dd367bb78feb64c36d571c36ca15f2cc40c576af8.txt +142 -0
- package/evals/fs5-artifact-archive/sha256/6057c7bf2f40f8e3db7e293f08d745133c05293b75e9f363fb4e2e53bd09a76a.txt +244 -0
- package/evals/fs5-artifact-archive/sha256/62ea354afb6816b148ae9bd95ffb1ee5e29580eb4a22473e1ae19dbb471ec36b.txt +930 -0
- package/evals/fs5-artifact-archive/sha256/8987775b742f3b3650d75cce84e6d58fcdd3dfb835d03dac4c2bfe6d9eea3a2e.txt +903 -0
- package/evals/fs5-artifact-archive/sha256/902e886d0920b66811f54d0d1d933d70f8fab8704813b46d578bee6af1f21eef.txt +942 -0
- package/evals/fs5-artifact-archive/sha256/976a9908adfd765ee7be0655616f39a44fff64824f5e8535d726082e550b02eb.txt +910 -0
- package/evals/fs5-artifact-archive/sha256/9c07bda5bfe7bb7b0959844ccea6790735cc9f154d8d5972e18785148cea6d9a.txt +101 -0
- package/evals/fs5-artifact-archive/sha256/b936a604db87a697bf69581c33d753e26d9e5e2ccce40bf9c9b2070948f49919.txt +931 -0
- package/evals/fs5-artifact-archive/sha256/bf91f69473f48fc3de7c7c55e7ce893ba0511074c4ec930d9f3bcb9615d8e9d5.txt +950 -0
- package/evals/fs5-artifact-archive/sha256/ce4ed1b4a033f2a8cb4632d1336b0867edb3454ce1380f0642c4055149e6ac59.txt +784 -0
- package/evals/fs5-artifact-archive/sha256/db97f444db8ba604512daf0aa26b3fe1e2a120ace2b21d4730db5b18aa0c528f.txt +950 -0
- package/evals/fs5-causal-arm.v1.json +10 -6
- package/evals/fs5-pilot-protocol.v1.json +3 -3
- package/evals/fs5-pilot-protocol.v2.json +8 -8
- package/evals/fs5-pilot-protocol.v3.json +8 -8
- package/evals/fs5-pilot-protocol.v4.json +7 -7
- package/evals/fs5-pilot-protocol.v5.json +10 -8
- package/evals/harness-next/development-corpus.mjs +106 -0
- package/evals/harness-next/resource-budget-probe.mjs +38 -0
- package/evals/harness-next/run-calibration.mjs +83 -0
- package/evals/harness-next/run-resource-probe.mjs +55 -0
- package/evals/harness-next/selected-development-corpus.mjs +27 -0
- package/evals/harness-next.v1.json +51 -0
- package/evals/long-horizon-v1/README.md +19 -0
- package/evals/long-horizon-v1/runner.mjs +116 -48
- package/evals/long-horizon-v1/worker.mjs +77 -30
- package/evals/private-holdout-v1/CURRENT_BOUNDARY.md +53 -0
- package/evals/private-holdout-v1/README.md +5 -2
- package/evals/private-holdout-v1/public-exposure.v1.json +1 -1
- package/evals/private-holdout-v1/public-exposure.v2.json +273 -0
- package/evals/runtime-conformance-v1/README.md +43 -0
- package/evals/runtime-conformance-v1/evaluate-paid-canary.mjs +198 -0
- package/evals/runtime-conformance-v1/lane.json +57 -0
- package/evals/runtime-conformance-v1/paid-canary.json +31 -0
- package/evals/runtime-conformance-v1/runner.mjs +456 -0
- package/package.json +9 -4
- package/packages/piagent-core/README.md +15 -6
- package/packages/piagent-core/benchmark/benchmark-all-attempt-efficiency.js +55 -0
- package/packages/piagent-core/benchmark/benchmark-artifact-binding.js +49 -0
- package/packages/piagent-core/benchmark/benchmark-bootstrap.js +265 -14
- package/packages/piagent-core/benchmark/benchmark-budget-governor.js +271 -0
- package/packages/piagent-core/benchmark/benchmark-campaign.js +592 -0
- package/packages/piagent-core/benchmark/benchmark-candidate.js +8 -3
- package/packages/piagent-core/benchmark/benchmark-checkpoint.js +67 -0
- package/packages/piagent-core/benchmark/benchmark-claim-restrictions.js +269 -2
- package/packages/piagent-core/benchmark/benchmark-cli.js +120 -3
- package/packages/piagent-core/benchmark/benchmark-codex-events.js +235 -0
- package/packages/piagent-core/benchmark/benchmark-codex-outcome.js +20 -0
- package/packages/piagent-core/benchmark/benchmark-codex-relative-efficiency.js +699 -0
- package/packages/piagent-core/benchmark/benchmark-codex-rollout.js +521 -0
- package/packages/piagent-core/benchmark/benchmark-codex.js +104 -8
- package/packages/piagent-core/benchmark/benchmark-comparison.js +284 -1
- package/packages/piagent-core/benchmark/benchmark-core.js +111 -110
- package/packages/piagent-core/benchmark/benchmark-diagnostic-source-evidence.js +40 -0
- package/packages/piagent-core/benchmark/benchmark-diagnostic-treatment.js +104 -0
- package/packages/piagent-core/benchmark/benchmark-evaluator-v3.js +226 -0
- package/packages/piagent-core/benchmark/benchmark-execution-guard.js +23 -1
- package/packages/piagent-core/benchmark/benchmark-forensics.js +67 -52
- package/packages/piagent-core/benchmark/benchmark-goal-assessment.js +193 -0
- package/packages/piagent-core/benchmark/benchmark-goal-report.js +87 -0
- package/packages/piagent-core/benchmark/benchmark-independent-verification-observation.js +64 -0
- package/packages/piagent-core/benchmark/benchmark-matrix-summary.js +141 -0
- package/packages/piagent-core/benchmark/benchmark-matrix.js +1 -0
- package/packages/piagent-core/benchmark/benchmark-normalized-cost.js +62 -0
- package/packages/piagent-core/benchmark/benchmark-pi-home.js +1 -0
- package/packages/piagent-core/benchmark/benchmark-preflight.js +70 -7
- package/packages/piagent-core/benchmark/benchmark-process.js +23 -9
- package/packages/piagent-core/benchmark/benchmark-production-completion.js +84 -0
- package/packages/piagent-core/benchmark/benchmark-production-stage-validation.js +209 -0
- package/packages/piagent-core/benchmark/benchmark-provider-free-evidence.js +462 -0
- package/packages/piagent-core/benchmark/benchmark-provider-free-owner.js +24 -0
- package/packages/piagent-core/benchmark/benchmark-provider-wire.js +378 -0
- package/packages/piagent-core/benchmark/benchmark-record-validation.d.ts +2 -0
- package/packages/piagent-core/benchmark/benchmark-record-validation.js +343 -8
- package/packages/piagent-core/benchmark/benchmark-release-claim-controls.js +132 -0
- package/packages/piagent-core/benchmark/benchmark-report.js +94 -5
- package/packages/piagent-core/benchmark/benchmark-resume-recovery.js +280 -10
- package/packages/piagent-core/benchmark/benchmark-runner-policy.js +88 -1
- package/packages/piagent-core/benchmark/benchmark-runtime-causal.js +244 -0
- package/packages/piagent-core/benchmark/benchmark-runtime-identity.js +50 -1
- package/packages/piagent-core/benchmark/benchmark-runtime.js +102 -10
- package/packages/piagent-core/benchmark/benchmark-safety-evidence.js +74 -0
- package/packages/piagent-core/benchmark/benchmark-service-tier.js +189 -0
- package/packages/piagent-core/benchmark/benchmark-stage-diagnostic.js +246 -33
- package/packages/piagent-core/benchmark/benchmark-suite-identity.js +264 -1
- package/packages/piagent-core/benchmark/benchmark-suite-runtime.js +4 -0
- package/packages/piagent-core/benchmark/benchmark-suite.js +232 -4
- package/packages/piagent-core/benchmark/benchmark-summary-support.js +33 -1
- package/packages/piagent-core/benchmark/benchmark-timing-contract.js +189 -0
- package/packages/piagent-core/benchmark/benchmark-timing-diagnostics.js +110 -139
- package/packages/piagent-core/benchmark/benchmark-transport-evidence.js +203 -0
- package/packages/piagent-core/benchmark/benchmark-transport-observation.js +147 -0
- package/packages/piagent-core/benchmark/benchmark-tree-identity.js +2 -1
- package/packages/piagent-core/benchmark/benchmark-usage.js +410 -37
- package/packages/piagent-core/benchmark/benchmark-workflow.js +136 -38
- package/packages/piagent-core/benchmark/fs5-pilot-protocol.js +21 -2
- package/packages/piagent-core/capabilities/runtime-integrity.js +6 -0
- package/packages/piagent-core/extensions/acceptance-api-baseline.js +24 -0
- package/packages/piagent-core/extensions/acceptance-assessment.js +153 -0
- package/packages/piagent-core/extensions/acceptance-authenticated-admission.d.ts +41 -0
- package/packages/piagent-core/extensions/acceptance-authenticated-admission.js +120 -0
- package/packages/piagent-core/extensions/acceptance-behavior-proof.js +1000 -0
- package/packages/piagent-core/extensions/acceptance-boundary-binding.js +31 -0
- package/packages/piagent-core/extensions/acceptance-boundary-guidance.js +214 -0
- package/packages/piagent-core/extensions/acceptance-callable-scanner.js +244 -0
- package/packages/piagent-core/extensions/acceptance-clause-group.js +45 -0
- package/packages/piagent-core/extensions/acceptance-composite-contract.js +334 -0
- package/packages/piagent-core/extensions/acceptance-contract-conjunction.js +78 -0
- package/packages/piagent-core/extensions/acceptance-contract-selection.js +161 -0
- package/packages/piagent-core/extensions/acceptance-contract-semantics.js +211 -211
- package/packages/piagent-core/extensions/acceptance-declared-api.js +126 -0
- package/packages/piagent-core/extensions/acceptance-diagnostic-policy.ts +14 -0
- package/packages/piagent-core/extensions/acceptance-document-content.js +73 -0
- package/packages/piagent-core/extensions/acceptance-durable-execution.d.ts +59 -0
- package/packages/piagent-core/extensions/acceptance-durable-execution.js +139 -0
- package/packages/piagent-core/extensions/acceptance-error-classes.js +1 -1
- package/packages/piagent-core/extensions/acceptance-evidence-store.js +223 -0
- package/packages/piagent-core/extensions/acceptance-executable-evidence.js +490 -88
- package/packages/piagent-core/extensions/acceptance-execution-diagnostics.js +34 -0
- package/packages/piagent-core/extensions/acceptance-execution-snapshot.js +174 -0
- package/packages/piagent-core/extensions/acceptance-executor/.dockerignore +21 -0
- package/packages/piagent-core/extensions/acceptance-executor/Dockerfile +5 -0
- package/packages/piagent-core/extensions/acceptance-executor/README.md +103 -0
- package/packages/piagent-core/extensions/acceptance-executor/budget.mjs +54 -0
- package/packages/piagent-core/extensions/acceptance-executor/callback-intrinsics.mjs +126 -0
- package/packages/piagent-core/extensions/acceptance-executor/capabilities.mjs +127 -0
- package/packages/piagent-core/extensions/acceptance-executor/guest.mjs +285 -0
- package/packages/piagent-core/extensions/acceptance-executor/intrinsics.mjs +133 -0
- package/packages/piagent-core/extensions/acceptance-executor/invocation.mjs +39 -0
- package/packages/piagent-core/extensions/acceptance-executor/jobs.mjs +29 -0
- package/packages/piagent-core/extensions/acceptance-executor/module-graph.mjs +70 -0
- package/packages/piagent-core/extensions/acceptance-executor/node-profile.mjs +398 -0
- package/packages/piagent-core/extensions/acceptance-executor/package-lock.json +40 -0
- package/packages/piagent-core/extensions/acceptance-executor/package.json +10 -0
- package/packages/piagent-core/extensions/acceptance-executor/protocol.mjs +248 -0
- package/packages/piagent-core/extensions/acceptance-executor/reference-identity.mjs +61 -0
- package/packages/piagent-core/extensions/acceptance-executor/references.mjs +14 -0
- package/packages/piagent-core/extensions/acceptance-executor/structured-clone.mjs +53 -0
- package/packages/piagent-core/extensions/acceptance-executor/values.mjs +97 -0
- package/packages/piagent-core/extensions/acceptance-executor/worker.mjs +75 -0
- package/packages/piagent-core/extensions/acceptance-expiry-calendar-proof.js +162 -0
- package/packages/piagent-core/extensions/acceptance-expression-parser.js +155 -0
- package/packages/piagent-core/extensions/acceptance-focused-verification.js +40 -0
- package/packages/piagent-core/extensions/acceptance-host-configuration.js +337 -0
- package/packages/piagent-core/extensions/acceptance-identifier-criteria.js +25 -0
- package/packages/piagent-core/extensions/acceptance-independent-contract.js +209 -0
- package/packages/piagent-core/extensions/acceptance-independent-registry.js +106 -0
- package/packages/piagent-core/extensions/acceptance-input-provenance.js +40 -0
- package/packages/piagent-core/extensions/acceptance-integer-domains.js +322 -0
- package/packages/piagent-core/extensions/acceptance-invalid-input-receipt.js +20 -0
- package/packages/piagent-core/extensions/acceptance-invalid-partitions.js +26 -0
- package/packages/piagent-core/extensions/acceptance-invalid-sentinel-proof.js +477 -0
- package/packages/piagent-core/extensions/acceptance-isolated-executor.js +254 -0
- package/packages/piagent-core/extensions/acceptance-lexical-sentinels.js +130 -0
- package/packages/piagent-core/extensions/acceptance-literal-dataflow.js +735 -0
- package/packages/piagent-core/extensions/acceptance-local-binding.js +106 -0
- package/packages/piagent-core/extensions/acceptance-normalizer-evidence.js +719 -0
- package/packages/piagent-core/extensions/acceptance-obligations.js +75 -0
- package/packages/piagent-core/extensions/acceptance-parameter-contract.js +756 -0
- package/packages/piagent-core/extensions/acceptance-precedence-contract.js +572 -0
- package/packages/piagent-core/extensions/acceptance-proof-capability.js +26 -0
- package/packages/piagent-core/extensions/acceptance-receipt.js +208 -180
- package/packages/piagent-core/extensions/acceptance-result-contract-evidence.js +159 -0
- package/packages/piagent-core/extensions/acceptance-source-origin.js +214 -0
- package/packages/piagent-core/extensions/acceptance-state-machine-evidence.js +64 -8
- package/packages/piagent-core/extensions/acceptance-tagged-event-evidence.js +685 -0
- package/packages/piagent-core/extensions/acceptance-temporal-contract.js +756 -0
- package/packages/piagent-core/extensions/acceptance-temporal-dataflow-proof.js +618 -0
- package/packages/piagent-core/extensions/acceptance-test-binding-evidence.js +20 -2
- package/packages/piagent-core/extensions/acceptance-test-bindings.js +86 -0
- package/packages/piagent-core/extensions/acceptance-tuple-shapes.js +12 -0
- package/packages/piagent-core/extensions/context-engine.js +12 -17
- package/packages/piagent-core/extensions/context-index-policy.js +4 -0
- package/packages/piagent-core/extensions/context-query-paths.js +57 -0
- package/packages/piagent-core/extensions/criterion-context-pack.js +109 -4
- package/packages/piagent-core/extensions/criterion-graph.js +4 -1
- package/packages/piagent-core/extensions/failure-types.ts +2 -2
- package/packages/piagent-core/extensions/fallback-base-policy.ts +101 -0
- package/packages/piagent-core/extensions/guard-types.ts +9 -1
- package/packages/piagent-core/extensions/piagent-guard.ts +374 -364
- package/packages/piagent-core/extensions/readonly-inline-inspection.ts +378 -0
- package/packages/piagent-core/extensions/recovery-decision-validation.ts +92 -0
- package/packages/piagent-core/extensions/shell-write-targets.js +15 -14
- package/packages/piagent-core/extensions/task-contract-view.js +4 -4
- package/packages/piagent-core/extensions/task-digest-migration.js +2 -2
- package/packages/piagent-core/extensions/task-journal.js +48 -3
- package/packages/piagent-core/extensions/task-lifecycle.js +32 -0
- package/packages/piagent-core/extensions/task-runtime-audit.js +8 -2
- package/packages/piagent-core/extensions/task-state.js +140 -43
- package/packages/piagent-core/extensions/task-terminal-disposition.js +10 -0
- package/packages/piagent-core/extensions/trajectory-contract.ts +5 -0
- package/packages/piagent-core/extensions/verification-intelligence.js +109 -20
- package/packages/piagent-core/extensions/workflow-catalog.ts +98 -0
- package/packages/piagent-core/extensions/workspace-evidence-roots.js +52 -16
- package/packages/piagent-core/extensions/workspace-revision.js +48 -0
- package/packages/piagent-core/extensions/workspace-verification-snapshot.js +13 -0
- package/packages/piagent-core/package.json +3 -3
- package/packages/piagent-core/policies/base-policy.json +43 -2
- package/packages/piagent-core/policy/authority-manifest.v1.json +3 -3
- package/packages/piagent-core/prompts/be-to-fe.md +2 -8
- package/packages/piagent-core/prompts/plan.md +1 -1
- package/packages/piagent-core/prompts/platform-improve.md +2 -6
- package/packages/piagent-core/prompts/review.md +2 -7
- package/packages/piagent-core/prompts/scout.md +1 -1
- package/packages/piagent-core/prompts/task.md +4 -3
- package/packages/piagent-core/runtime/context/adaptive-planner.ts +7 -3
- package/packages/piagent-core/runtime/hooks/agent-start-hook.ts +60 -59
- package/packages/piagent-core/runtime/hooks/agent-start-types.ts +48 -0
- package/packages/piagent-core/runtime/hooks/completion-hook.ts +83 -89
- package/packages/piagent-core/runtime/hooks/input-hook.ts +98 -7
- package/packages/piagent-core/runtime/hooks/protected-refusal-completion.ts +86 -0
- package/packages/piagent-core/runtime/hooks/session-hooks.ts +5 -2
- package/packages/piagent-core/runtime/hooks/session-start-hook.ts +150 -19
- package/packages/piagent-core/runtime/hooks/tool-result-hook.ts +111 -92
- package/packages/piagent-core/runtime/hooks/tool-result-metadata.ts +9 -0
- package/packages/piagent-core/runtime/hooks/tool-result-navigation.ts +36 -0
- package/packages/piagent-core/runtime/hooks/tool-result-retrieval.ts +42 -0
- package/packages/piagent-core/runtime/hooks/tool-result-value-helpers.ts +66 -0
- package/packages/piagent-core/runtime/input/chat-images.ts +1 -1
- package/packages/piagent-core/runtime/inspection/activity-event-adapter.ts +1 -1
- package/packages/piagent-core/runtime/inspection/bounded-emission-guard.ts +286 -0
- package/packages/piagent-core/runtime/inspection/runtime-event-store.ts +37 -7
- package/packages/piagent-core/runtime/inspection/same-process-bridge-proof.ts +1 -1
- package/packages/piagent-core/runtime/inspection/task-handoff-history.ts +2 -2
- package/packages/piagent-core/runtime/inspection/task-subagent-tree.ts +27 -4
- package/packages/piagent-core/runtime/inspection/tool-failure-classification.ts +69 -11
- package/packages/piagent-core/runtime/inspection/webui-snapshot.ts +104 -22
- package/packages/piagent-core/runtime/inspection/workspace-file-reader.ts +2 -132
- package/packages/piagent-core/runtime/model/provider-wire-fingerprint.ts +20 -0
- package/packages/piagent-core/runtime/model/service-tier-runtime.ts +242 -0
- package/packages/piagent-core/runtime/orchestration/helper-lifecycle.ts +16 -12
- package/packages/piagent-core/runtime/orchestration/minimal-delegation-policy.ts +71 -0
- package/packages/piagent-core/runtime/orchestration/owned-work-budget.ts +28 -20
- package/packages/piagent-core/runtime/orchestration/role-policy.ts +27 -9
- package/packages/piagent-core/runtime/orchestration/subagent-tool-policy.ts +329 -0
- package/packages/piagent-core/runtime/policy/block-remedy.ts +0 -4
- package/packages/piagent-core/runtime/policy/source-worktree-transaction.ts +75 -14
- package/packages/piagent-core/runtime/product/activity-inspector.ts +6 -3
- package/packages/piagent-core/runtime/product/edit-verifier-timing.ts +26 -0
- package/packages/piagent-core/runtime/product/efficiency-metrics.ts +15 -7
- package/packages/piagent-core/runtime/product/operator-projections.ts +8 -3
- package/packages/piagent-core/runtime/product/task-usage-hooks.ts +78 -0
- package/packages/piagent-core/runtime/product/task-usage.ts +104 -0
- package/packages/piagent-core/runtime/quality/edit-freshness-guard.ts +102 -0
- package/packages/piagent-core/runtime/quality/exact-output-contract.ts +20 -10
- package/packages/piagent-core/runtime/quality/performance-assurance.ts +3 -3
- package/packages/piagent-core/runtime/quality/protected-refusal-handoff.ts +35 -0
- package/packages/piagent-core/runtime/recovery/acceptance-recovery-guidance.ts +21 -0
- package/packages/piagent-core/runtime/recovery/continuation-budget.ts +12 -3
- package/packages/piagent-core/runtime/recovery/diagnostic-delivery.ts +61 -0
- package/packages/piagent-core/runtime/recovery/handoff-projection.ts +196 -58
- package/packages/piagent-core/runtime/recovery/handoff-verifier-binding.ts +24 -0
- package/packages/piagent-core/runtime/recovery/independent-verification-recovery.ts +79 -0
- package/packages/piagent-core/runtime/recovery/pristine-task-policy-refresh.ts +91 -0
- package/packages/piagent-core/runtime/recovery/recovery-policy.ts +31 -40
- package/packages/piagent-core/runtime/recovery/resume-state.ts +120 -19
- package/packages/piagent-core/runtime/recovery/semantic-repair-handshake.ts +7 -13
- package/packages/piagent-core/runtime/recovery/task-evidence-coverage-refresh.ts +217 -0
- package/packages/piagent-core/runtime/registration/activity-inspector-command.ts +2 -1
- package/packages/piagent-core/runtime/registration/context-commands.ts +28 -10
- package/packages/piagent-core/runtime/registration/knowledge-tools.ts +9 -5
- package/packages/piagent-core/runtime/registration/operator-catalogs.ts +4 -9
- package/packages/piagent-core/runtime/registration/operator-request-intake.ts +49 -0
- package/packages/piagent-core/runtime/registration/policy-tools.ts +8 -6
- package/packages/piagent-core/runtime/registration/session-commands.ts +10 -8
- package/packages/piagent-core/runtime/registration/session-wait-tool.ts +54 -0
- package/packages/piagent-core/runtime/registration/task-completion-tools.ts +39 -20
- package/packages/piagent-core/runtime/registration/task-evidence-tools.ts +21 -12
- package/packages/piagent-core/runtime/registration/task-start-conditional-mutation.ts +45 -0
- package/packages/piagent-core/runtime/registration/task-start-guidance.ts +24 -15
- package/packages/piagent-core/runtime/registration/task-start-manifest.ts +54 -0
- package/packages/piagent-core/runtime/registration/task-start-tool.ts +79 -79
- package/packages/piagent-core/runtime/registration/workflow-commands.ts +64 -93
- package/packages/piagent-core/runtime/runtime-limits.ts +16 -2
- package/packages/piagent-core/runtime/session/adaptive-context-analysis.ts +461 -0
- package/packages/piagent-core/runtime/session/adaptive-context-governor.ts +464 -0
- package/packages/piagent-core/runtime/session/adaptive-context-ledger.ts +265 -0
- package/packages/piagent-core/runtime/session/completion-signals.ts +23 -0
- package/packages/piagent-core/runtime/session/message-signals.ts +6 -18
- package/packages/piagent-core/runtime/session/operator-request-carry.ts +44 -0
- package/packages/piagent-core/runtime/session/retrieval-evidence-runtime.ts +188 -0
- package/packages/piagent-core/runtime/session/runtime-state.ts +37 -39
- package/packages/piagent-core/runtime/session/source-checkout-read-grants.ts +35 -0
- package/packages/piagent-core/runtime/session/system-prompt.ts +76 -14
- package/packages/piagent-core/runtime/session/task-contract-presentation.ts +39 -0
- package/packages/piagent-core/runtime/session/uncertain-send-continuation.ts +231 -0
- package/packages/piagent-core/runtime/session/usage.ts +4 -3
- package/packages/piagent-core/runtime/tools/apply-patch-tool.ts +6 -6
- package/packages/piagent-core/runtime/tools/phase-tool-runtime.ts +1 -1
- package/packages/piagent-core/runtime/tools/phase-tools.ts +10 -9
- package/packages/piagent-core/runtime/tools/session-wait.ts +42 -0
- package/packages/piagent-core/runtime/tools/tool-groups.ts +22 -5
- package/packages/piagent-core/runtime/trajectory/trajectory-runtime.ts +192 -5
- package/packages/piagent-core/runtime/trajectory/trajectory-types.ts +3 -2
- package/packages/piagent-core/runtime/verification/acceptance-api-baseline.js +488 -0
- package/packages/piagent-core/runtime/verification/completion-preparation.ts +22 -0
- package/packages/piagent-core/runtime/verification/composite-completion-finalizer.ts +105 -0
- package/packages/piagent-core/runtime/verification/composite-journal-anchor.ts +181 -0
- package/packages/piagent-core/runtime/verification/composite-runtime-binding.ts +76 -0
- package/packages/piagent-core/runtime/verification/composite-scoped-mediation.ts +318 -0
- package/packages/piagent-core/runtime/verification/composite-session-persistence.ts +175 -0
- package/packages/piagent-core/runtime/verification/composite-task-publication.ts +273 -0
- package/packages/piagent-core/runtime/verification/exact-verifier-reuse.ts +101 -0
- package/packages/piagent-core/runtime/verification/host-project-verification.ts +71 -0
- package/packages/piagent-core/runtime/verification/independent-acceptance-runtime.ts +500 -0
- package/packages/piagent-core/runtime/verification/runtime-assurance-facts.ts +500 -0
- package/packages/piagent-core/runtime/verification/runtime-contract-runner.ts +107 -0
- package/packages/piagent-core/runtime/verification/shell-verification-snapshots.ts +56 -0
- package/packages/piagent-core/runtime/workflows/change-clarification.ts +61 -0
- package/packages/piagent-core/runtime/workflows/input-routing.ts +21 -14
- package/packages/piagent-core/runtime/workflows/runtime-intake-compaction.ts +201 -0
- package/packages/piagent-core/runtime/workflows/task-followup-policy.ts +163 -0
- package/packages/piagent-core/runtime/workflows/task-intake.ts +276 -169
- package/packages/piagent-core/runtime/workflows/task-repair-intent.ts +67 -0
- package/packages/piagent-core/runtime/workflows/task-scope-resolution.ts +83 -0
- package/packages/piagent-core/runtime/workflows/webui-runtime-command.ts +5 -2
- package/packages/piagent-core/runtime/workflows/webui-workflow.ts +39 -32
- package/packages/piagent-core/runtime/workflows/workflow-follow-up.ts +33 -0
- package/packages/piagent-core/security/workspace-file-reader.ts +132 -0
- package/packages/piagent-core/subagents/piagent-oracle.md +5 -3
- package/packages/piagent-core/subagents/piagent-planner.md +6 -4
- package/packages/piagent-core/subagents/piagent-reviewer.md +5 -3
- package/packages/piagent-core/subagents/piagent-scout.md +4 -2
- package/packages/piagent-core/subagents/piagent-worker.md +6 -4
- package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-CxeZqTte.js → MarkdownMessage-DGk34zJT.js} +1 -1
- package/packages/piagent-webui/dist/client/assets/{index-BV-_03yl.css → index-DVahUVWy.css} +1 -1
- package/packages/piagent-webui/dist/client/assets/index-DiKRmCEP.js +176 -0
- package/packages/piagent-webui/dist/client/index.html +2 -2
- package/packages/piagent-webui/extension/dispatch-user-entry.ts +13 -0
- package/packages/piagent-webui/extension/piagent-webui.ts +13 -3
- package/packages/piagent-webui/extension/review-controller.ts +29 -6
- package/packages/piagent-webui/extension/same-session-bridge.ts +7 -8
- package/packages/piagent-webui/extension/session-stream-adapter.ts +88 -16
- package/packages/piagent-webui/extension/source-mutation-controller.ts +29 -3
- package/packages/piagent-webui/extension/source-open-controller.ts +29 -7
- package/packages/piagent-webui/extension/source-revert-controller.ts +26 -3
- package/packages/piagent-webui/gateway/gateway-events.ts +22 -5
- package/packages/piagent-webui/gateway/gateway-service.ts +7 -2
- package/packages/piagent-webui/gateway/gateway-session-stream.ts +170 -32
- package/packages/piagent-webui/gateway/rpc-ui-context.ts +34 -9
- package/packages/piagent-webui/gateway/runtime-command-controller.ts +46 -6
- package/packages/piagent-webui/gateway/runtime-session-controls.ts +17 -2
- package/packages/piagent-webui/gateway/session-catalog.ts +9 -3
- package/packages/piagent-webui/gateway/session-command-controller.ts +29 -9
- package/packages/piagent-webui/gateway/session-effective-options.ts +2 -9
- package/packages/piagent-webui/gateway/session-inspection-registry.ts +11 -2
- package/packages/piagent-webui/gateway/session-operation-lifecycle.ts +237 -0
- package/packages/piagent-webui/gateway/session-operation-retry-control.ts +38 -0
- package/packages/piagent-webui/gateway/session-operation-settlement.ts +28 -0
- package/packages/piagent-webui/gateway/session-operation-watchdog.ts +9 -2
- package/packages/piagent-webui/gateway/session-prompt-dispatch.ts +37 -0
- package/packages/piagent-webui/gateway/session-runtime-close.ts +36 -0
- package/packages/piagent-webui/gateway/session-runtime-factory.ts +183 -6
- package/packages/piagent-webui/gateway/session-runtime-ownership.ts +48 -0
- package/packages/piagent-webui/gateway/session-runtime-state.ts +24 -0
- package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +118 -117
- package/packages/piagent-webui/ownership/session-lease-store.ts +5 -2
- package/packages/piagent-webui/server/core-inspection-provider.ts +75 -15
- package/packages/piagent-webui/server/loopback-server.ts +9 -7
- package/packages/piagent-webui/server/terminal-delivery-receipt.ts +144 -0
- package/packages/piagent-webui/server/transcript-projection.ts +150 -11
- package/packages/piagent-webui/shared/message-correlation.ts +25 -0
- package/schemas/approved-host-contracts.schema.json +973 -0
- package/schemas/benchmark-attempt-outcome.schema.json +303 -0
- package/schemas/benchmark-independent-verification-plan.schema.json +34 -0
- package/schemas/codex-relative-efficiency-v1.schema.json +155 -0
- package/schemas/composite-criterion.schema.json +788 -0
- package/schemas/contract-family-library.schema.json +28 -0
- package/schemas/contract-selection-recipe.schema.json +31 -0
- package/schemas/failure-evidence.schema.json +2 -2
- package/schemas/helper-request.schema.json +16 -4
- package/schemas/host-contract-plan.schema.json +25 -0
- package/schemas/piagent-webui/gateway-protocol-v1.schema.json +16 -2
- package/schemas/piagent-webui/runtime-command-v1.schema.json +26 -3
- package/schemas/piagent-webui/runtime-event-v2.schema.json +46 -5
- package/schemas/piagent-webui/session-live-state-v1.schema.json +2 -0
- package/schemas/piagent-webui/snapshot-v1.schema.json +3 -0
- package/schemas/piagent-webui/source-change-v1.schema.json +12 -0
- package/schemas/piagent-webui/subagent-tree-v1.schema.json +11 -1
- package/schemas/piagent-webui/transcript-v1.schema.json +2 -1
- package/schemas/project-profile.schema.json +1 -1
- package/schemas/public-contracts/codex-mcp-metadata-v1.schema.json +206 -0
- package/schemas/public-contracts/codex-mcp-metadata-v2.schema.json +228 -0
- package/schemas/public-contracts/codex-mcp-metadata-v3.schema.json +233 -0
- package/schemas/public-contracts/revocation-v1.schema.json +87 -0
- package/schemas/public-contracts/subscription-contract-v1.schema.json +76 -0
- package/schemas/scoped-project-verification-receipt-v2.schema.json +83 -0
- package/schemas/scoped-project-verification-receipt-v3.schema.json +295 -0
- package/schemas/scoped-verification-receipt-v1.schema.json +76 -0
- package/schemas/task-contract.schema.json +45 -0
- package/scripts/approve-independent-verification.mjs +57 -0
- package/scripts/benchmark-arm-observer.mjs +320 -0
- package/scripts/benchmark-budget-ipc.mjs +34 -0
- package/scripts/benchmark-budget-launcher.mjs +91 -0
- package/scripts/benchmark-budget-processes.mjs +133 -0
- package/scripts/benchmark-budget-publication.mjs +228 -0
- package/scripts/benchmark-budget-runtime.mjs +136 -0
- package/scripts/benchmark-candidate-ablation.mjs +265 -0
- package/scripts/benchmark-codex-journey.mjs +406 -0
- package/scripts/benchmark-independent-verification.mjs +628 -0
- package/scripts/benchmark-journey-outcome.mjs +92 -0
- package/scripts/benchmark-production-v3-human-review.mjs +192 -0
- package/scripts/benchmark-public-input-catalog.mjs +158 -0
- package/scripts/benchmark-registered-plan-author.mjs +355 -0
- package/scripts/benchmark-registered-plan-recipe-support.mjs +85 -0
- package/scripts/benchmark-registered-plan-recipes-backend.mjs +165 -0
- package/scripts/benchmark-registered-plan-recipes-data.mjs +164 -0
- package/scripts/benchmark-registered-plan-recipes-platform.mjs +165 -0
- package/scripts/benchmark-runner-completion.mjs +133 -0
- package/scripts/benchmark-runner-configuration.mjs +159 -0
- package/scripts/benchmark-runner-core.mjs +224 -387
- package/scripts/benchmark-runner-finalization.mjs +144 -27
- package/scripts/benchmark-runner-provider-boundary.mjs +44 -0
- package/scripts/benchmark-runner-schedule.mjs +256 -0
- package/scripts/benchmark-runner-support.mjs +136 -4
- package/scripts/benchmark-runner.mjs +95 -18
- package/scripts/benchmark-scoped-broker-custody.mjs +483 -0
- package/scripts/benchmark-scoped-docs-verifier.mjs +203 -0
- package/scripts/benchmark-scoped-frozen-qualification.mjs +676 -0
- package/scripts/benchmark-scoped-pi-router.mjs +196 -0
- package/scripts/benchmark-scoped-project-verification-receipt.mjs +49 -0
- package/scripts/benchmark-scoped-project-verifier.mjs +461 -0
- package/scripts/benchmark-scoped-session-custody.mjs +599 -0
- package/scripts/benchmark-scoped-session-factory.mjs +342 -0
- package/scripts/benchmark-scoped-tool-broker.mjs +523 -0
- package/scripts/benchmark-scoped-verification-supervisor.mjs +773 -0
- package/scripts/benchmark-session-evaluator.mjs +169 -0
- package/scripts/benchmark-session-provider-boundary.mjs +62 -0
- package/scripts/benchmark-session-usage.mjs +28 -0
- package/scripts/benchmark-session.mjs +343 -50
- package/scripts/benchmark-webui-journey.mjs +678 -0
- package/scripts/check-public-wording.mjs +46 -0
- package/scripts/configure-subagents.sh +42 -34
- package/scripts/fs4-readiness-evaluation.mjs +7 -1
- package/scripts/helper-evaluation.mjs +1 -1
- package/scripts/phase-tools-evaluation.mjs +1 -0
- package/scripts/pi-auto.sh +7 -1
- package/scripts/pi-usage-history.mjs +201 -11
- package/scripts/piagent-cli.mjs +8 -0
- package/scripts/private-holdout-readiness.mjs +7 -1
- package/scripts/public-evaluation-exposure.mjs +140 -0
- package/scripts/select-independent-verification.mjs +62 -0
- package/scripts/team-doctor.sh +1 -1
- package/scripts/typescript-loader.mjs +135 -1
- package/scripts/update-global.mjs +6 -7
- package/scripts/verify-local.sh +41 -55
- package/scripts/verify-release-identity.mjs +5 -3
- package/packages/piagent-webui/dist/client/assets/index-DynIMe8I.js +0 -176
|
@@ -26,13 +26,7 @@ Flow:
|
|
|
26
26
|
- BE scout: read-only.
|
|
27
27
|
- FE implementation: source-write.
|
|
28
28
|
- Auth/data migration/external provider: high-risk, ask before implementation.
|
|
29
|
-
4.
|
|
30
|
-
- `piagent-scout` maps backend contract read-only;
|
|
31
|
-
- `piagent-scout` maps frontend touchpoints read-only;
|
|
32
|
-
- builtin `context-builder` may create handoff context when the BE→FE mapping touches multiple journeys/forms/contracts;
|
|
33
|
-
- `piagent-planner` produces the FE implementation plan when the contract touches multiple layers;
|
|
34
|
-
- `piagent-reviewer` reviews diff/verification after implementation.
|
|
35
|
-
Continue single-agent if subagents are unavailable, the task is tiny, or requirements are unresolved.
|
|
29
|
+
4. Keep BE scouting and FE implementation in the parent by default. At most one fresh read-only `piagent-scout` may map either the BE contract or FE touchpoints only when runtime evidence proves two independent lanes and at least 30% projected total token savings after handoff/merge. Never launch two scouts, delegate FE writes/planning/review, inherit the parent transcript, or retry a deterministic helper failure.
|
|
36
30
|
5. Scout backend contract read-only:
|
|
37
31
|
- controller/route/handler;
|
|
38
32
|
- request/response DTO/schema;
|
|
@@ -53,7 +47,7 @@ Flow:
|
|
|
53
47
|
- route/page/component/form;
|
|
54
48
|
- tests/e2e.
|
|
55
49
|
9. Call `piagent_task_start` exactly once before FE source writes and reuse an active contract.
|
|
56
|
-
10. Implement FE
|
|
50
|
+
10. Implement FE in the parent; helper workers are disabled.
|
|
57
51
|
11. Run every exact command returned in `task.verifyCommands` after the latest mutation. For a normal default plan, review the final diff and mark only its review step done with `piagent_task_progress`.
|
|
58
52
|
12. Let runtime hooks record context, verification, trace, and final-gate state. Use recovery tools only if the runtime reports missing evidence.
|
|
59
53
|
13. Do not paste full test/build/tool logs into chat or final output. Summarize the signal and quote only relevant failing lines.
|
|
@@ -17,7 +17,7 @@ Rules:
|
|
|
17
17
|
4. Read `.pi/project-context.md`; if it is missing or still pending, recommend `/onboard-project run` before implementation.
|
|
18
18
|
5. Read required context.
|
|
19
19
|
6. Identify protected paths and external/high-risk actions.
|
|
20
|
-
7.
|
|
20
|
+
7. Keep planning in the parent. At most one fresh read-only helper may run only when runtime evidence proves two independent workstreams, no dependency on later parent output, and at least 30% projected total token savings after transfer/merge. Never delegate implementation, fork parent history, retry a deterministic helper failure, or add a helper only for review quality.
|
|
21
21
|
8. Produce a compact task tree/workPlan with exact files, commands, owner role, review lenses, and verify gates.
|
|
22
22
|
9. Do not implement yet unless the user explicitly asks.
|
|
23
23
|
|
|
@@ -23,18 +23,14 @@ Flow:
|
|
|
23
23
|
1. Use runtime automatic intake for a bounded platform change. If runtime pauses for broad, high-risk, or ambiguous scope, call `piagent_task_start` exactly once with project-relative path/glob scope and reuse an active contract.
|
|
24
24
|
2. Read the narrow current implementation, its tests, and the relevant policy/schema/docs. Runtime hooks inject bounded navigation context when useful.
|
|
25
25
|
3. Treat memory and generated context as advisory; verify against current files.
|
|
26
|
-
4.
|
|
27
|
-
- use `piagent-scout` for read-only code/package mapping;
|
|
28
|
-
- use `piagent-planner` for a plan when multiple modules are affected;
|
|
29
|
-
- use `piagent-reviewer` for diff, docs, and verification review;
|
|
30
|
-
- continue single-agent for small, localized edits.
|
|
26
|
+
4. Keep platform analysis, planning, implementation, and review in the parent. At most one fresh read-only helper may map a genuinely independent lane only when runtime evidence projects at least 30% lower total tokens after handoff/merge. Do not delegate writes, fork parent history, run parallel helpers, or retry deterministic runtime/scope failures.
|
|
31
27
|
5. If the task needs external repository context provided by the user, use a targeted read-only checkout when available.
|
|
32
28
|
6. Produce an implementation matrix only when multiple platform areas are affected:
|
|
33
29
|
|
|
34
30
|
| Area | Current behavior | Target behavior | Files/config | Verification |
|
|
35
31
|
|---|---|---|---|---|
|
|
36
32
|
|
|
37
|
-
7. Implement only the bounded target behavior
|
|
33
|
+
7. Implement only the bounded target behavior in the parent.
|
|
38
34
|
8. If runtime behavior changes, update README/docs and add or adjust a decision note when appropriate.
|
|
39
35
|
9. Run every exact command returned in `task.verifyCommands` after the latest mutation. For a normal default plan, review the final diff and mark only its review step done with `piagent_task_progress`.
|
|
40
36
|
10. Let runtime hooks record context, verification, trace, and final-gate state. Use recovery tools only if the runtime reports missing evidence.
|
|
@@ -14,13 +14,8 @@ Rules:
|
|
|
14
14
|
1. Read the current diff and the narrow surrounding source/tests. Runtime hooks inject bounded navigation context when useful.
|
|
15
15
|
2. Select review lenses from the actual change risk; do not load orchestration or diagnostic tools just to choose them.
|
|
16
16
|
3. Stay read-only unless explicitly asked to write a report.
|
|
17
|
-
4. Check protected paths,
|
|
18
|
-
5.
|
|
19
|
-
- correctness/edge cases;
|
|
20
|
-
- tests/verification;
|
|
21
|
-
- scope drift/protected paths;
|
|
22
|
-
- security/high-risk only when relevant.
|
|
23
|
-
If the user asks for a loop, use `/review-loop` semantics or equivalent parent-controlled max-round loop. Continue single-agent for tiny diffs or unavailable subagent tooling.
|
|
17
|
+
4. Check protected paths, unrelated change drift, acceptance behavior, and verify-command coverage. Treat task scope as an initial focus, not write authority.
|
|
18
|
+
5. Review directly in the parent. A non-trivial diff does not itself justify another model run. At most one fresh read-only reviewer is eligible only when a runtime estimate proves an independent lane and at least 30% projected total token savings after handoff/merge; never run parallel review or retry a deterministic helper failure. If the user explicitly asks for a loop, keep it parent-controlled and bounded.
|
|
24
19
|
6. Report findings by severity.
|
|
25
20
|
7. Do not call diagnostic Piagent tools for routine review and do not paste full diff/test/tool logs. Summarize the signal and quote only relevant lines.
|
|
26
21
|
|
|
@@ -15,7 +15,7 @@ Lean scouting flow:
|
|
|
15
15
|
|
|
16
16
|
1. Read targeted current files and return cited evidence. Runtime hooks inject bounded navigation context when useful and enforce read boundaries.
|
|
17
17
|
2. Create a read-only contract with `piagent_task_start` only for a broad governed scout that needs persisted scope or handoff. Tiny default scouts complete from observed reads; for a normal default scout, review the evidence and mark only the returned review step done with `piagent_task_progress`.
|
|
18
|
-
3. Use memory
|
|
18
|
+
3. Use memory or vendor documentation only when current source is insufficient. Keep scouting in the parent; a helper requires separate runtime proof of two independent lanes and at least 30% projected net token saving.
|
|
19
19
|
4. A low-confidence search may trigger one bounded finder pass. Stop broad search when the requested evidence is covered.
|
|
20
20
|
5. Do not call diagnostic Piagent tools for a routine scout. Load them only when the runtime reports a recovery need or the operator explicitly asks for diagnostics.
|
|
21
21
|
6. Do not edit source or paste full command output. Summarize relevant evidence and unknowns.
|
|
@@ -11,9 +11,9 @@ $ARGUMENTS
|
|
|
11
11
|
|
|
12
12
|
Core flow:
|
|
13
13
|
|
|
14
|
-
1. Use the runtime-created contract for a bounded source task; do not call task-management tools during automatic intake. If runtime pauses for broad, high-risk, or ambiguous
|
|
14
|
+
1. Use the runtime-created contract for a bounded source task; do not call task-management tools during automatic intake. If runtime pauses for a broad, high-risk, or ambiguous task, call `piagent_task_start` exactly once with project-relative focus paths/globs and reuse an active contract.
|
|
15
15
|
2. Read the likely target and nearest relevant test. The runtime injects bounded navigation context when useful.
|
|
16
|
-
3. Make the smallest
|
|
16
|
+
3. Make the smallest complete evidence-backed change with ordinary tools and one writer. Initial task scope guides retrieval/review but does not restrict necessary FE, BE, test, config, or child-repository edits.
|
|
17
17
|
4. Run every exact command returned in `task.verifyCommands` after the latest mutation.
|
|
18
18
|
5. Automatic tasks need no lifecycle calls. Manual high-risk and explicitly requested custom plans keep their returned checkpoints.
|
|
19
19
|
6. Let runtime hooks record context, changed files, verification, trace, and final-gate state. Load recovery tools only if the runtime reports missing evidence.
|
|
@@ -21,13 +21,14 @@ Core flow:
|
|
|
21
21
|
Risk-adaptive enrichment:
|
|
22
22
|
|
|
23
23
|
- `tiny`: stay targeted; no diagnostic Piagent tools or subagents.
|
|
24
|
-
- `normal`: stop searching once current-file evidence is sufficient.
|
|
24
|
+
- `normal`: stop searching once current-file evidence is sufficient. Keep the parent direct. One fresh read-only helper is eligible only when runtime evidence proves at least two independent lanes and at least 30% projected total token savings after handoff/merge.
|
|
25
25
|
- `high-risk`: inspect current source, relevant vendor documentation, and explicit security/data/release review lenses; keep required human confirmations.
|
|
26
26
|
|
|
27
27
|
Always:
|
|
28
28
|
|
|
29
29
|
- Treat memory, context-index, and generated tech snapshots as advisory; verify against current files.
|
|
30
30
|
- If navigation confidence is low, run at most one bounded read-only finder pass; do not start an open-ended scout loop.
|
|
31
|
+
- Never delegate implementation, fork/inherit the parent transcript, run more than one helper, or retry a deterministic helper/runtime/scope failure.
|
|
31
32
|
- Do not touch protected paths or use undeclared capabilities.
|
|
32
33
|
- If verification cannot run, report `blocked` or `partial`, never done. If runtime schedules a continuation, keep working in the same task and do not repeat management tools.
|
|
33
34
|
- Do not paste full test/build/tool logs. Summarize the signal and quote only relevant failures.
|
|
@@ -13,7 +13,7 @@ type ContextUsage = {
|
|
|
13
13
|
|
|
14
14
|
export type AdaptiveContextPlan = {
|
|
15
15
|
schemaVersion: 1;
|
|
16
|
-
phase: "utility" | "protected" | "intake" | "scout" | "execute" | "review" | "release";
|
|
16
|
+
phase: "utility" | "protected" | "intake" | "scout" | "discuss" | "plan" | "execute" | "review" | "release";
|
|
17
17
|
lane: "tiny" | "normal" | "high-risk";
|
|
18
18
|
shouldInject: boolean;
|
|
19
19
|
budgetTokens: number;
|
|
@@ -64,6 +64,8 @@ function phaseFor(signal: ReturnType<typeof classifyContextTask>, input: Planner
|
|
|
64
64
|
if (signal.workflow === "usage") return "utility";
|
|
65
65
|
if (signal.workflow === "review") return "review";
|
|
66
66
|
if (signal.workflow === "scout" || signal.workflow === "onboard") return "scout";
|
|
67
|
+
if (signal.workflow === "discuss") return "discuss";
|
|
68
|
+
if (signal.workflow === "plan") return "plan";
|
|
67
69
|
if (signal.workflow === "release") return "release";
|
|
68
70
|
if (input.runtimeIntake) return "intake";
|
|
69
71
|
return "execute";
|
|
@@ -74,6 +76,8 @@ function baseBudget(phase: AdaptiveContextPlan["phase"], lane: AdaptiveContextPl
|
|
|
74
76
|
if (phase === "review") return lane === "high-risk" ? 720 : 520;
|
|
75
77
|
if (phase === "release") return 620;
|
|
76
78
|
if (phase === "scout") return lane === "high-risk" ? 820 : 640;
|
|
79
|
+
if (phase === "plan") return lane === "high-risk" ? 680 : 520;
|
|
80
|
+
if (phase === "discuss") return lane === "high-risk" ? 480 : 360;
|
|
77
81
|
if (phase === "intake") {
|
|
78
82
|
if (explicitPaths > 0) return lane === "high-risk" ? 560 : 420;
|
|
79
83
|
return lane === "high-risk" ? 780 : lane === "tiny" ? 360 : 540;
|
|
@@ -130,13 +134,13 @@ export function planAdaptiveContext(input: PlannerInput): AdaptiveContextPlan {
|
|
|
130
134
|
const limit = explicitPathCount > 0
|
|
131
135
|
? 4
|
|
132
136
|
: lane === "high-risk" ? 8 : lane === "tiny" ? 4 : 6;
|
|
133
|
-
const includeCode = phase === "intake" || phase === "review" || explicitPathCount > 0;
|
|
137
|
+
const includeCode = phase === "intake" || phase === "plan" || phase === "review" || explicitPathCount > 0;
|
|
134
138
|
const includePatterns = phase === "intake" ? DEFAULT_INTAKE_PATTERNS : undefined;
|
|
135
139
|
const reranker = "off" as const;
|
|
136
140
|
if (process.env.PIAGENT_LOCAL_RERANKER === "on") reasons.push("local-reranker:unavailable");
|
|
137
141
|
const minConfidence = explicitPathCount > 0 || lane === "tiny"
|
|
138
142
|
? "medium"
|
|
139
|
-
: phase === "review" || phase === "release" || lane === "high-risk"
|
|
143
|
+
: phase === "plan" || phase === "review" || phase === "release" || lane === "high-risk"
|
|
140
144
|
? "high"
|
|
141
145
|
: "medium";
|
|
142
146
|
return {
|
|
@@ -1,92 +1,67 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
-
import type { ExtensionAPI
|
|
2
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
buildContextPack,
|
|
6
6
|
classifyContextTask,
|
|
7
7
|
ensureContextIndexV2,
|
|
8
|
-
estimateContextTokens
|
|
8
|
+
estimateContextTokens,
|
|
9
|
+
shouldIndexPath
|
|
9
10
|
} from "../../extensions/context-engine.js";
|
|
10
11
|
import {
|
|
11
12
|
buildSelectedContextPack,
|
|
12
13
|
composeCriterionContextEntries
|
|
13
14
|
} from "../../extensions/criterion-context-pack.js";
|
|
14
15
|
import { matchesProtectedPath } from "../../extensions/policy-core.js";
|
|
16
|
+
import { hasDurableContextEvidence } from "../../extensions/context-evidence.js";
|
|
15
17
|
import { selectRepositoryMemoryFacts } from "../../extensions/repository-memory.js";
|
|
16
|
-
import type { TaskContract } from "../../extensions/guard-types.js";
|
|
17
18
|
import {
|
|
18
19
|
contextPlanAcceptsConfidence,
|
|
19
20
|
planAdaptiveContext
|
|
20
21
|
} from "../context/adaptive-planner.ts";
|
|
21
22
|
import { stageContextDelivery } from "../context/context-delivery.ts";
|
|
22
|
-
import { measureContextDeltaShadow
|
|
23
|
+
import { measureContextDeltaShadow } from "../context/context-delta-shadow.ts";
|
|
23
24
|
import { buildPrefixTelemetry } from "../context/prefix-telemetry.ts";
|
|
24
25
|
import { formatRepositoryMemoryHints } from "../context/repository-memory-hints.ts";
|
|
25
26
|
import { modelCapabilityFromContext } from "../model/capabilities.ts";
|
|
26
|
-
import type { RuntimeModelSnapshot } from "../model/runtime-snapshot.ts";
|
|
27
27
|
import type { ModelRouteEvaluation } from "../model/model-route-runtime.ts";
|
|
28
|
+
import type { RuntimeModelSnapshot } from "../model/runtime-snapshot.ts";
|
|
28
29
|
import { buildTaskResumeContext } from "../recovery/resume-state.ts";
|
|
29
30
|
import { planRetrievalRoute } from "../context/retrieval-route-policy.ts";
|
|
30
|
-
import type { SolverShadowEvaluation } from "../solver/solver-shadow.ts";
|
|
31
31
|
import { observeTrajectorySync } from "../trajectory/trajectory-observability.ts";
|
|
32
|
-
import type {
|
|
32
|
+
import type { SolverShadowEvaluation } from "../solver/solver-shadow.ts";
|
|
33
33
|
import { trajectoryRecommendationRef } from "../trajectory/trajectory-runtime.ts";
|
|
34
|
-
import {
|
|
34
|
+
import type { ContextInjectionItem } from "../session/runtime-state.ts";
|
|
35
|
+
import { isUncertainSendContinuation } from "../session/uncertain-send-continuation.ts";
|
|
35
36
|
import {
|
|
36
37
|
compactManagedProjectInstructions,
|
|
37
38
|
rewriteLegacyProjectInstructions
|
|
38
39
|
} from "../session/system-prompt.ts";
|
|
39
40
|
import { PIAGENT_TOOL_NAMES } from "../tools/tool-groups.ts";
|
|
40
|
-
import {
|
|
41
|
+
import { agentStartTaskRequest } from "../workflows/input-routing.ts";
|
|
41
42
|
import {
|
|
42
43
|
AUTO_INTAKE_SNAPSHOT_PATTERNS,
|
|
43
|
-
automaticTaskIntakeMode
|
|
44
|
+
automaticTaskIntakeMode,
|
|
45
|
+
isLightweightNonAuthorizingChangeContinuation,
|
|
46
|
+
isNonAuthorizingChangeClarification
|
|
44
47
|
} from "../workflows/task-intake.ts";
|
|
45
48
|
import { CONTEXT_PACK_MAX_TOKENS } from "../runtime-limits.ts";
|
|
46
49
|
import { modelRouteTelemetry, runtimeSnapshotTelemetry, solverShadowTelemetry } from "./agent-prompt-telemetry.ts";
|
|
47
|
-
|
|
48
|
-
type RuntimeIntakeResult = {
|
|
49
|
-
started: boolean;
|
|
50
|
-
text: string;
|
|
51
|
-
task?: TaskContract;
|
|
52
|
-
plannedContext?: Array<{ path: string; reason: string }>;
|
|
53
|
-
plannedContextComplete?: boolean;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
type AgentStartHookDependencies = {
|
|
57
|
-
state: RuntimeSessionState;
|
|
58
|
-
autoContextEnabled: boolean;
|
|
59
|
-
contextDeltaShadowMode: ContextDeltaShadowMode;
|
|
60
|
-
activeTask: (ctx: ExtensionContext) => TaskContract | undefined;
|
|
61
|
-
readProtectedPaths: (ctx: ExtensionContext) => string[];
|
|
62
|
-
contextExcludePatterns: (ctx: ExtensionContext) => string[];
|
|
63
|
-
promptPackKey: (ctx: ExtensionContext, promptHash: string) => string;
|
|
64
|
-
retrievalKey: (ctx: ExtensionContext, query: string) => string;
|
|
65
|
-
startAutomaticTask: (query: string, ctx: ExtensionContext) => Promise<RuntimeIntakeResult | undefined>;
|
|
66
|
-
runtimeSnapshot?: (ctx: ExtensionContext) => RuntimeModelSnapshot | undefined;
|
|
67
|
-
persistRuntimeSnapshot?: (ctx: ExtensionContext, snapshot: RuntimeModelSnapshot) => unknown;
|
|
68
|
-
shadowSolver?: (input: {
|
|
69
|
-
request: string;
|
|
70
|
-
ctx: ExtensionContext;
|
|
71
|
-
activeTask?: TaskContract;
|
|
72
|
-
runtimeSnapshot?: RuntimeModelSnapshot;
|
|
73
|
-
protectedTarget: boolean;
|
|
74
|
-
}) => SolverShadowEvaluation;
|
|
75
|
-
modelRoute?: (input: {
|
|
76
|
-
ctx: ExtensionContext;
|
|
77
|
-
features: NonNullable<Extract<SolverShadowEvaluation, { status: "ok" }>["features"]>;
|
|
78
|
-
runtimeSnapshot?: RuntimeModelSnapshot;
|
|
79
|
-
}) => Promise<ModelRouteEvaluation>;
|
|
80
|
-
syncTrajectory?: (ctx: ExtensionContext, task: TaskContract, options: TrajectorySyncOptions) => TrajectorySyncResult;
|
|
81
|
-
telemetry: (ctx: ExtensionContext, payload: Record<string, unknown>) => void;
|
|
82
|
-
};
|
|
50
|
+
import type { AgentStartHookDependencies } from "./agent-start-types.ts";
|
|
83
51
|
|
|
84
52
|
export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStartHookDependencies): void {
|
|
85
53
|
pi.on("before_agent_start", async (event, ctx) => {
|
|
86
54
|
const projectInstructions = rewriteLegacyProjectInstructions(event.systemPrompt);
|
|
87
|
-
const query =
|
|
55
|
+
const query = agentStartTaskRequest(event.prompt);
|
|
88
56
|
const signal = classifyContextTask(query);
|
|
89
|
-
const
|
|
57
|
+
const uncertainSendContinuation = isUncertainSendContinuation(query);
|
|
58
|
+
// A mutation clarification still goes to the provider unchanged and never
|
|
59
|
+
// creates a task. Only a lightweight decision also skips repository retrieval.
|
|
60
|
+
const nonAuthorizingClarification = isNonAuthorizingChangeClarification(query);
|
|
61
|
+
const lightweightChangeContinuation = isLightweightNonAuthorizingChangeContinuation(query);
|
|
62
|
+
const turn = dependencies.state.classifyTurn(ctx, signal.promptHash, {
|
|
63
|
+
lightweightNonAuthorizingChange: lightweightChangeContinuation
|
|
64
|
+
});
|
|
90
65
|
const readProtectedPaths = dependencies.readProtectedPaths(ctx);
|
|
91
66
|
const protectedTarget = signal.paths.some((candidate) => matchesProtectedPath(candidate, readProtectedPaths));
|
|
92
67
|
const protectedOnlyTarget = signal.paths.length > 0
|
|
@@ -119,7 +94,9 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
119
94
|
const prefix = buildPrefixTelemetry(effectiveSystemPrompt, toolMetadata);
|
|
120
95
|
const toolSchemaTokens = estimateContextTokens(prefix.canonicalToolSurface);
|
|
121
96
|
const systemPromptTokens = estimateContextTokens(effectiveSystemPrompt);
|
|
122
|
-
const autoPackUseful =
|
|
97
|
+
const autoPackUseful = !lightweightChangeContinuation
|
|
98
|
+
&& !uncertainSendContinuation
|
|
99
|
+
&& activeTask?.trace.outcome !== "pending"
|
|
123
100
|
&& (runtimeIntake || signal.paths.length === 0);
|
|
124
101
|
let runtimeSnapshot: RuntimeModelSnapshot | undefined;
|
|
125
102
|
try {
|
|
@@ -172,10 +149,12 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
172
149
|
content: string;
|
|
173
150
|
details: Record<string, unknown>;
|
|
174
151
|
}) => {
|
|
175
|
-
const resumed = activeTask
|
|
152
|
+
const resumed = activeTask && !lightweightChangeContinuation
|
|
153
|
+
? dependencies.state.takeResumeContextState(ctx, activeTask.taskRunId)
|
|
154
|
+
: undefined;
|
|
176
155
|
const durableResume = activeTask && resumed ? buildTaskResumeContext(activeTask, resumed) : undefined;
|
|
177
156
|
const selectedContext = contextMessage ?? durableResume;
|
|
178
|
-
const intake = await dependencies.startAutomaticTask(query, ctx);
|
|
157
|
+
const intake = nonAuthorizingClarification ? undefined : await dependencies.startAutomaticTask(query, ctx);
|
|
179
158
|
if (intake?.task) observeTrajectorySync(ctx, dependencies.syncTrajectory?.(ctx, intake.task, { sourceHook: "agent-start", recommendationRef }), dependencies.telemetry);
|
|
180
159
|
if (!selectedContext && !intake) return systemPromptUpdate;
|
|
181
160
|
const discoveryItems = selectedContext?.customType === "piagent-context-pack-v2" && Array.isArray(selectedContext.details.selectedItems)
|
|
@@ -192,14 +171,23 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
192
171
|
const criterionLimit = Number.isFinite(Number(discoveryPlan?.limit))
|
|
193
172
|
? Math.max(1, Math.min(6, Math.trunc(Number(discoveryPlan?.limit))))
|
|
194
173
|
: signal.paths.length > 0 ? 3 : 4;
|
|
195
|
-
const
|
|
196
|
-
const
|
|
174
|
+
const terminalUncertainSend = intake?.continuation === "terminal-uncertain-send";
|
|
175
|
+
const criterionMode = dependencies.autoContextEnabled
|
|
176
|
+
&& !terminalUncertainSend
|
|
177
|
+
&& intake?.task?.criterionGraph?.mode === "criterion-graph";
|
|
178
|
+
const contextExcludePatterns = dependencies.contextExcludePatterns(ctx);
|
|
179
|
+
// Apply the pack's path eligibility before ranking a singleton fallback.
|
|
180
|
+
// Otherwise an unsupported/protected candidate can displace a usable
|
|
181
|
+
// planned source and then be discarded by the pack builder.
|
|
182
|
+
const packEligible = (entry: { path?: unknown }) => typeof entry.path === "string"
|
|
183
|
+
&& shouldIndexPath(entry.path, { excludePatterns: contextExcludePatterns });
|
|
184
|
+
const criterionEntries = !terminalUncertainSend && intake?.task?.criterionGraph?.mode === "criterion-graph"
|
|
197
185
|
? composeCriterionContextEntries({
|
|
198
186
|
explicitPaths: signal.paths,
|
|
199
187
|
criteria: intake.task.acceptanceCriteria,
|
|
200
|
-
plannedEntries: intake.plannedContext ?? [],
|
|
188
|
+
plannedEntries: (intake.plannedContext ?? []).filter(packEligible),
|
|
201
189
|
plannedSelectionComplete: intake.plannedContextComplete === true,
|
|
202
|
-
retrievedItems: discoveryItems
|
|
190
|
+
retrievedItems: discoveryItems.filter(packEligible)
|
|
203
191
|
}, { limit: criterionLimit })
|
|
204
192
|
: [];
|
|
205
193
|
const criterionContext = criterionMode
|
|
@@ -207,7 +195,7 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
207
195
|
budgetTokens: criterionBudget,
|
|
208
196
|
limit: criterionLimit,
|
|
209
197
|
focusText: [query, ...intake.task.acceptanceCriteria].join("\n"),
|
|
210
|
-
excludePatterns:
|
|
198
|
+
excludePatterns: contextExcludePatterns
|
|
211
199
|
})
|
|
212
200
|
: undefined;
|
|
213
201
|
const criterionReasonCode = !dependencies.autoContextEnabled
|
|
@@ -227,7 +215,13 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
227
215
|
});
|
|
228
216
|
const composedContext = criterionContext?.selected.length ? criterionContext : undefined;
|
|
229
217
|
const deliveredSelectedContext = criterionMode ? undefined : selectedContext;
|
|
230
|
-
|
|
218
|
+
// An oversized file without evidenced ranges can legitimately produce an
|
|
219
|
+
// empty pack. Make the existing read-evidence requirement actionable;
|
|
220
|
+
// planned paths and earlier turns are not evidence of current delivery.
|
|
221
|
+
const contextReadGuidance = criterionMode && !composedContext && !hasDurableContextEvidence(intake?.task)
|
|
222
|
+
? "No file content was delivered in the bounded context pack. Before completion, use the native read tool on a relevant source or test file in the task scope; use offset/limit for a large file. Shell inspection and passing tests do not record this read evidence. Do not reread the whole repository."
|
|
223
|
+
: undefined;
|
|
224
|
+
const content = [deliveredSelectedContext?.content, intake?.text, composedContext?.text, contextReadGuidance].filter(Boolean).join("\n\n");
|
|
231
225
|
const deliveryTask = intake?.task ?? activeTask;
|
|
232
226
|
const selectedPackPaths = deliveredSelectedContext?.customType === "piagent-context-pack-v2" && Array.isArray(deliveredSelectedContext.details.paths)
|
|
233
227
|
? deliveredSelectedContext.details.paths.filter((value): value is string => typeof value === "string")
|
|
@@ -303,6 +297,13 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
303
297
|
intakeMode: intake.task.intakeMode
|
|
304
298
|
}
|
|
305
299
|
: undefined,
|
|
300
|
+
uncertainSendContinuation: terminalUncertainSend
|
|
301
|
+
? {
|
|
302
|
+
taskId: intake?.task?.taskId ?? null,
|
|
303
|
+
taskRunId: intake?.task?.taskRunId ?? null,
|
|
304
|
+
replacementTaskStarted: false
|
|
305
|
+
}
|
|
306
|
+
: undefined,
|
|
306
307
|
criterionContext: composedContext ? {
|
|
307
308
|
paths: composedContext.selected.map((entry) => entry.path), estimatedTokens: composedContext.estimatedTokens
|
|
308
309
|
} : undefined,
|
|
@@ -313,7 +314,7 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
313
314
|
};
|
|
314
315
|
|
|
315
316
|
const packKey = dependencies.promptPackKey(ctx, signal.promptHash);
|
|
316
|
-
if (!autoPackUseful && activeTask?.trace.outcome === "pending" && query.length >= 20 && signal.workflow !== "usage" && dependencies.autoContextEnabled) {
|
|
317
|
+
if (!lightweightChangeContinuation && !autoPackUseful && activeTask?.trace.outcome === "pending" && query.length >= 20 && signal.workflow !== "usage" && dependencies.autoContextEnabled) {
|
|
317
318
|
await measureContextDeltaShadow({ ctx, query, turnId: turn.turnId, task: activeTask, mode: dependencies.contextDeltaShadowMode, protectedTarget, excludePatterns: dependencies.contextExcludePatterns(ctx), telemetry: dependencies.telemetry });
|
|
318
319
|
}
|
|
319
320
|
if (
|
|
@@ -329,7 +330,7 @@ export function registerAgentStartHook(pi: ExtensionAPI, dependencies: AgentStar
|
|
|
329
330
|
dependencies.state.rememberAutoPackedPrompt(packKey);
|
|
330
331
|
try {
|
|
331
332
|
const excludePatterns = dependencies.contextExcludePatterns(ctx);
|
|
332
|
-
const ensured = await ensureContextIndexV2(ctx.cwd, {
|
|
333
|
+
const ensured = await (dependencies.ensureContextIndex ?? ensureContextIndexV2)(ctx.cwd, {
|
|
333
334
|
excludePatterns,
|
|
334
335
|
rebuildMissing: false
|
|
335
336
|
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
|
|
3
|
+
import type { TaskContract } from "../../extensions/guard-types.js";
|
|
4
|
+
import type { ContextDeltaShadowMode } from "../context/context-delta-shadow.ts";
|
|
5
|
+
import type { ModelRouteEvaluation } from "../model/model-route-runtime.ts";
|
|
6
|
+
import type { RuntimeModelSnapshot } from "../model/runtime-snapshot.ts";
|
|
7
|
+
import type { RuntimeSessionState } from "../session/runtime-state.ts";
|
|
8
|
+
import type { SolverShadowEvaluation } from "../solver/solver-shadow.ts";
|
|
9
|
+
import type { TrajectorySyncOptions, TrajectorySyncResult } from "../trajectory/trajectory-runtime.ts";
|
|
10
|
+
import type { ensureContextIndexV2 } from "../../extensions/context-engine.js";
|
|
11
|
+
|
|
12
|
+
export type RuntimeIntakeResult = {
|
|
13
|
+
started: boolean;
|
|
14
|
+
text: string;
|
|
15
|
+
task?: TaskContract;
|
|
16
|
+
plannedContext?: Array<{ path: string; reason: string }>;
|
|
17
|
+
plannedContextComplete?: boolean;
|
|
18
|
+
continuation?: "terminal-uncertain-send";
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export type AgentStartHookDependencies = {
|
|
22
|
+
state: RuntimeSessionState;
|
|
23
|
+
autoContextEnabled: boolean;
|
|
24
|
+
contextDeltaShadowMode: ContextDeltaShadowMode;
|
|
25
|
+
activeTask: (ctx: ExtensionContext) => TaskContract | undefined;
|
|
26
|
+
readProtectedPaths: (ctx: ExtensionContext) => string[];
|
|
27
|
+
contextExcludePatterns: (ctx: ExtensionContext) => string[];
|
|
28
|
+
ensureContextIndex?: typeof ensureContextIndexV2;
|
|
29
|
+
promptPackKey: (ctx: ExtensionContext, promptHash: string) => string;
|
|
30
|
+
retrievalKey: (ctx: ExtensionContext, query: string) => string;
|
|
31
|
+
startAutomaticTask: (query: string, ctx: ExtensionContext) => Promise<RuntimeIntakeResult | undefined>;
|
|
32
|
+
runtimeSnapshot?: (ctx: ExtensionContext) => RuntimeModelSnapshot | undefined;
|
|
33
|
+
persistRuntimeSnapshot?: (ctx: ExtensionContext, snapshot: RuntimeModelSnapshot) => unknown;
|
|
34
|
+
shadowSolver?: (input: {
|
|
35
|
+
request: string;
|
|
36
|
+
ctx: ExtensionContext;
|
|
37
|
+
activeTask?: TaskContract;
|
|
38
|
+
runtimeSnapshot?: RuntimeModelSnapshot;
|
|
39
|
+
protectedTarget: boolean;
|
|
40
|
+
}) => SolverShadowEvaluation;
|
|
41
|
+
modelRoute?: (input: {
|
|
42
|
+
ctx: ExtensionContext;
|
|
43
|
+
features: NonNullable<Extract<SolverShadowEvaluation, { status: "ok" }>["features"]>;
|
|
44
|
+
runtimeSnapshot?: RuntimeModelSnapshot;
|
|
45
|
+
}) => Promise<ModelRouteEvaluation>;
|
|
46
|
+
syncTrajectory?: (ctx: ExtensionContext, task: TaskContract, options: TrajectorySyncOptions) => TrajectorySyncResult;
|
|
47
|
+
telemetry: (ctx: ExtensionContext, payload: Record<string, unknown>) => void;
|
|
48
|
+
};
|