@quickchatai/pi-quickreview 0.0.0-stage → 1.1.0
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/LICENSE +23 -0
- package/README.md +75 -2
- package/assets/agents/pass-abstraction.md +64 -0
- package/assets/agents/pass-ask-human.md +134 -0
- package/assets/agents/pass-backcompat.md +67 -0
- package/assets/agents/pass-baseline.md +61 -0
- package/assets/agents/pass-behaviour-delta.md +64 -0
- package/assets/agents/pass-bounds.md +36 -0
- package/assets/agents/pass-claims.md +31 -0
- package/assets/agents/pass-concurrency.md +168 -0
- package/assets/agents/pass-consistency.md +57 -0
- package/assets/agents/pass-contracts.md +30 -0
- package/assets/agents/pass-data-safety.md +54 -0
- package/assets/agents/pass-deferred.md +35 -0
- package/assets/agents/pass-delivery.md +37 -0
- package/assets/agents/pass-duplication.md +60 -0
- package/assets/agents/pass-intent.md +63 -0
- package/assets/agents/pass-lint-conformance.md +46 -0
- package/assets/agents/pass-maintainability.md +67 -0
- package/assets/agents/pass-placement.md +68 -0
- package/assets/agents/pass-prod-risk.md +24 -0
- package/assets/agents/pass-rollout.md +32 -0
- package/assets/agents/pass-roundtrip.md +46 -0
- package/assets/agents/pass-security.md +31 -0
- package/assets/agents/pass-simplicity.md +68 -0
- package/assets/agents/pass-statelessness.md +27 -0
- package/assets/agents/pass-style.md +37 -0
- package/assets/agents/pass-sweep.md +57 -0
- package/assets/agents/pass-tests.md +58 -0
- package/assets/agents/pass-ui.md +23 -0
- package/assets/agents/pass-validate.md +50 -0
- package/assets/agents/pass-widened.md +46 -0
- package/assets/agents/scan/pass-scan.md +86 -0
- package/assets/config.example.toml +1067 -0
- package/assets/deploy/reviewer/AGENTS.override.md +12 -0
- package/assets/profiles/default/README.md +21 -0
- package/assets/profiles/default/addenda/.gitkeep +0 -0
- package/assets/profiles/default/profile.toml +17 -0
- package/assets/profiles/example-django/README.md +21 -0
- package/assets/profiles/example-django/addenda/10-migration-discipline.md +13 -0
- package/assets/profiles/example-django/addenda/20-new-column-nullability.md +12 -0
- package/assets/profiles/example-django/addenda/30-test-doctrine.md +12 -0
- package/assets/profiles/example-django/addenda/40-orm-usage.md +19 -0
- package/assets/profiles/example-django/addenda/50-declared-shape.md +10 -0
- package/assets/profiles/example-django/addenda/60-config-placement.md +14 -0
- package/assets/profiles/example-django/heuristics.toml +24 -0
- package/assets/profiles/example-django/profile.toml +9 -0
- package/assets/profiles/fast/README.md +24 -0
- package/assets/profiles/fast/profile.toml +59 -0
- package/assets/profiles/minimal/README.md +17 -0
- package/assets/profiles/minimal/addenda/.gitkeep +0 -0
- package/assets/profiles/minimal/profile.toml +8 -0
- package/assets/profiles/snappy/README.md +24 -0
- package/assets/profiles/snappy/addenda/10-race-as-question.md +6 -0
- package/assets/profiles/snappy/profile.toml +46 -0
- package/assets/prompts/companion-day-open.md +46 -0
- package/assets/prompts/companion-first-run.md +104 -0
- package/assets/prompts/companion.md +821 -0
- package/assets/prompts/conversation-system.md +117 -0
- package/assets/prompts/eod-sweep.md +120 -0
- package/assets/prompts/onboarding.md +74 -0
- package/assets/prompts/pass-common.md +52 -0
- package/assets/prompts/pass-quality-common.md +22 -0
- package/assets/prompts/round-first.md +874 -0
- package/assets/prompts/round-follow-up.md +991 -0
- package/assets/prompts/round-re-review.md +889 -0
- package/assets/prompts/round-recheck.md +196 -0
- package/assets/prompts/round-staleness.md +856 -0
- package/assets/schemas/review-result.v1.json +391 -0
- package/assets/schemas/scan-result.v1.json +421 -0
- package/assets/schemas/version.v1.json +57 -0
- package/assets/seed-manifest.json +19 -0
- package/assets/seeds/agents/pass-baseline.md +61 -0
- package/assets/seeds/agents/pass-contracts.md +30 -0
- package/assets/seeds/agents/pass-data-safety.md +54 -0
- package/assets/seeds/agents/pass-delivery.md +37 -0
- package/assets/seeds/agents/pass-prod-risk.md +24 -0
- package/assets/seeds/agents/pass-security.md +31 -0
- package/assets/seeds/agents/pass-statelessness.md +27 -0
- package/assets/seeds/agents/pass-ui.md +23 -0
- package/assets/seeds/agents/pass-validate.md +50 -0
- package/assets/seeds/prompts/conversation-system.md +117 -0
- package/assets/seeds/prompts/eod-sweep.md +120 -0
- package/assets/seeds/prompts/pass-common.md +52 -0
- package/dist/extensions/bash-guard.d.ts +467 -0
- package/dist/extensions/bash-guard.d.ts.map +1 -0
- package/dist/extensions/bash-guard.js +3058 -0
- package/dist/extensions/bash-guard.js.map +1 -0
- package/dist/extensions/finding-clusters.d.ts +33 -0
- package/dist/extensions/finding-clusters.d.ts.map +1 -0
- package/dist/extensions/finding-clusters.js +218 -0
- package/dist/extensions/finding-clusters.js.map +1 -0
- package/dist/extensions/ledger-pin.d.ts +76 -0
- package/dist/extensions/ledger-pin.d.ts.map +1 -0
- package/dist/extensions/ledger-pin.js +331 -0
- package/dist/extensions/ledger-pin.js.map +1 -0
- package/dist/extensions/lens.d.ts +43 -0
- package/dist/extensions/lens.d.ts.map +1 -0
- package/dist/extensions/lens.js +150 -0
- package/dist/extensions/lens.js.map +1 -0
- package/dist/extensions/pi-tool.d.ts +22 -0
- package/dist/extensions/pi-tool.d.ts.map +1 -0
- package/dist/extensions/pi-tool.js +20 -0
- package/dist/extensions/pi-tool.js.map +1 -0
- package/dist/extensions/quickreview.d.ts +21 -0
- package/dist/extensions/quickreview.d.ts.map +1 -0
- package/dist/extensions/quickreview.js +132 -0
- package/dist/extensions/quickreview.js.map +1 -0
- package/dist/src/anchors.d.ts +54 -0
- package/dist/src/anchors.d.ts.map +1 -0
- package/dist/src/anchors.js +127 -0
- package/dist/src/anchors.js.map +1 -0
- package/dist/src/assetroot.d.ts +16 -0
- package/dist/src/assetroot.d.ts.map +1 -0
- package/dist/src/assetroot.js +77 -0
- package/dist/src/assetroot.js.map +1 -0
- package/dist/src/authwatch.d.ts +61 -0
- package/dist/src/authwatch.d.ts.map +1 -0
- package/dist/src/authwatch.js +210 -0
- package/dist/src/authwatch.js.map +1 -0
- package/dist/src/budget.d.ts +15 -0
- package/dist/src/budget.d.ts.map +1 -0
- package/dist/src/budget.js +32 -0
- package/dist/src/budget.js.map +1 -0
- package/dist/src/casebudget.d.ts +3 -0
- package/dist/src/casebudget.d.ts.map +1 -0
- package/dist/src/casebudget.js +3 -0
- package/dist/src/casebudget.js.map +1 -0
- package/dist/src/cigate.d.ts +116 -0
- package/dist/src/cigate.d.ts.map +1 -0
- package/dist/src/cigate.js +176 -0
- package/dist/src/cigate.js.map +1 -0
- package/dist/src/codespan.d.ts +46 -0
- package/dist/src/codespan.d.ts.map +1 -0
- package/dist/src/codespan.js +75 -0
- package/dist/src/codespan.js.map +1 -0
- package/dist/src/contextpack.d.ts +56 -0
- package/dist/src/contextpack.d.ts.map +1 -0
- package/dist/src/contextpack.js +195 -0
- package/dist/src/contextpack.js.map +1 -0
- package/dist/src/contract.d.ts +8 -0
- package/dist/src/contract.d.ts.map +1 -0
- package/dist/src/contract.js +21 -0
- package/dist/src/contract.js.map +1 -0
- package/dist/src/coverage.d.ts +32 -0
- package/dist/src/coverage.d.ts.map +1 -0
- package/dist/src/coverage.js +85 -0
- package/dist/src/coverage.js.map +1 -0
- package/dist/src/datafence.d.ts +19 -0
- package/dist/src/datafence.d.ts.map +1 -0
- package/dist/src/datafence.js +60 -0
- package/dist/src/datafence.js.map +1 -0
- package/dist/src/dedup.d.ts +65 -0
- package/dist/src/dedup.d.ts.map +1 -0
- package/dist/src/dedup.js +459 -0
- package/dist/src/dedup.js.map +1 -0
- package/dist/src/depsources.d.ts +304 -0
- package/dist/src/depsources.d.ts.map +1 -0
- package/dist/src/depsources.js +3367 -0
- package/dist/src/depsources.js.map +1 -0
- package/dist/src/diffinput.d.ts +10 -0
- package/dist/src/diffinput.d.ts.map +1 -0
- package/dist/src/diffinput.js +172 -0
- package/dist/src/diffinput.js.map +1 -0
- package/dist/src/doubtwords.d.ts +10 -0
- package/dist/src/doubtwords.d.ts.map +1 -0
- package/dist/src/doubtwords.js +13 -0
- package/dist/src/doubtwords.js.map +1 -0
- package/dist/src/ecosystem.d.ts +148 -0
- package/dist/src/ecosystem.d.ts.map +1 -0
- package/dist/src/ecosystem.js +338 -0
- package/dist/src/ecosystem.js.map +1 -0
- package/dist/src/engine/agentdir.d.ts +5 -0
- package/dist/src/engine/agentdir.d.ts.map +1 -0
- package/dist/src/engine/agentdir.js +21 -0
- package/dist/src/engine/agentdir.js.map +1 -0
- package/dist/src/engine/auth.d.ts +214 -0
- package/dist/src/engine/auth.d.ts.map +1 -0
- package/dist/src/engine/auth.js +374 -0
- package/dist/src/engine/auth.js.map +1 -0
- package/dist/src/engine/budget.d.ts +60 -0
- package/dist/src/engine/budget.d.ts.map +1 -0
- package/dist/src/engine/budget.js +113 -0
- package/dist/src/engine/budget.js.map +1 -0
- package/dist/src/engine/capfd.d.ts +6 -0
- package/dist/src/engine/capfd.d.ts.map +1 -0
- package/dist/src/engine/capfd.js +21 -0
- package/dist/src/engine/capfd.js.map +1 -0
- package/dist/src/engine/caseout.d.ts +66 -0
- package/dist/src/engine/caseout.d.ts.map +1 -0
- package/dist/src/engine/caseout.js +107 -0
- package/dist/src/engine/caseout.js.map +1 -0
- package/dist/src/engine/context.d.ts +57 -0
- package/dist/src/engine/context.d.ts.map +1 -0
- package/dist/src/engine/context.js +212 -0
- package/dist/src/engine/context.js.map +1 -0
- package/dist/src/engine/envmap.d.ts +13 -0
- package/dist/src/engine/envmap.d.ts.map +1 -0
- package/dist/src/engine/envmap.js +372 -0
- package/dist/src/engine/envmap.js.map +1 -0
- package/dist/src/engine/extfiles.d.ts +7 -0
- package/dist/src/engine/extfiles.d.ts.map +1 -0
- package/dist/src/engine/extfiles.js +23 -0
- package/dist/src/engine/extfiles.js.map +1 -0
- package/dist/src/engine/keyroute.d.ts +21 -0
- package/dist/src/engine/keyroute.d.ts.map +1 -0
- package/dist/src/engine/keyroute.js +58 -0
- package/dist/src/engine/keyroute.js.map +1 -0
- package/dist/src/engine/lens/cache-group.d.ts +20 -0
- package/dist/src/engine/lens/cache-group.d.ts.map +1 -0
- package/dist/src/engine/lens/cache-group.js +31 -0
- package/dist/src/engine/lens/cache-group.js.map +1 -0
- package/dist/src/engine/lens/cache-run.d.ts +65 -0
- package/dist/src/engine/lens/cache-run.d.ts.map +1 -0
- package/dist/src/engine/lens/cache-run.js +159 -0
- package/dist/src/engine/lens/cache-run.js.map +1 -0
- package/dist/src/engine/lens/deadline.d.ts +54 -0
- package/dist/src/engine/lens/deadline.d.ts.map +1 -0
- package/dist/src/engine/lens/deadline.js +111 -0
- package/dist/src/engine/lens/deadline.js.map +1 -0
- package/dist/src/engine/lens/engine-tools.d.ts +13 -0
- package/dist/src/engine/lens/engine-tools.d.ts.map +1 -0
- package/dist/src/engine/lens/engine-tools.js +37 -0
- package/dist/src/engine/lens/engine-tools.js.map +1 -0
- package/dist/src/engine/lens/env.d.ts +23 -0
- package/dist/src/engine/lens/env.d.ts.map +1 -0
- package/dist/src/engine/lens/env.js +42 -0
- package/dist/src/engine/lens/env.js.map +1 -0
- package/dist/src/engine/lens/launch-plan.d.ts +63 -0
- package/dist/src/engine/lens/launch-plan.d.ts.map +1 -0
- package/dist/src/engine/lens/launch-plan.js +203 -0
- package/dist/src/engine/lens/launch-plan.js.map +1 -0
- package/dist/src/engine/lens/leaf-cache.d.ts +22 -0
- package/dist/src/engine/lens/leaf-cache.d.ts.map +1 -0
- package/dist/src/engine/lens/leaf-cache.js +115 -0
- package/dist/src/engine/lens/leaf-cache.js.map +1 -0
- package/dist/src/engine/lens/permits.d.ts +14 -0
- package/dist/src/engine/lens/permits.d.ts.map +1 -0
- package/dist/src/engine/lens/permits.js +18 -0
- package/dist/src/engine/lens/permits.js.map +1 -0
- package/dist/src/engine/lens/registry.d.ts +55 -0
- package/dist/src/engine/lens/registry.d.ts.map +1 -0
- package/dist/src/engine/lens/registry.js +140 -0
- package/dist/src/engine/lens/registry.js.map +1 -0
- package/dist/src/engine/lens/round-lens.d.ts +16 -0
- package/dist/src/engine/lens/round-lens.d.ts.map +1 -0
- package/dist/src/engine/lens/round-lens.js +46 -0
- package/dist/src/engine/lens/round-lens.js.map +1 -0
- package/dist/src/engine/lens/runlens.d.ts +103 -0
- package/dist/src/engine/lens/runlens.d.ts.map +1 -0
- package/dist/src/engine/lens/runlens.js +538 -0
- package/dist/src/engine/lens/runlens.js.map +1 -0
- package/dist/src/engine/lens/section.d.ts +19 -0
- package/dist/src/engine/lens/section.d.ts.map +1 -0
- package/dist/src/engine/lens/section.js +40 -0
- package/dist/src/engine/lens/section.js.map +1 -0
- package/dist/src/engine/lens/semaphore.d.ts +13 -0
- package/dist/src/engine/lens/semaphore.d.ts.map +1 -0
- package/dist/src/engine/lens/semaphore.js +44 -0
- package/dist/src/engine/lens/semaphore.js.map +1 -0
- package/dist/src/engine/lens/tool.d.ts +34 -0
- package/dist/src/engine/lens/tool.d.ts.map +1 -0
- package/dist/src/engine/lens/tool.js +345 -0
- package/dist/src/engine/lens/tool.js.map +1 -0
- package/dist/src/engine/lens/wave.d.ts +63 -0
- package/dist/src/engine/lens/wave.d.ts.map +1 -0
- package/dist/src/engine/lens/wave.js +95 -0
- package/dist/src/engine/lens/wave.js.map +1 -0
- package/dist/src/engine/livesessions.d.ts +21 -0
- package/dist/src/engine/livesessions.d.ts.map +1 -0
- package/dist/src/engine/livesessions.js +57 -0
- package/dist/src/engine/livesessions.js.map +1 -0
- package/dist/src/engine/livewire.d.ts +18 -0
- package/dist/src/engine/livewire.d.ts.map +1 -0
- package/dist/src/engine/livewire.js +31 -0
- package/dist/src/engine/livewire.js.map +1 -0
- package/dist/src/engine/openable.d.ts +37 -0
- package/dist/src/engine/openable.d.ts.map +1 -0
- package/dist/src/engine/openable.js +120 -0
- package/dist/src/engine/openable.js.map +1 -0
- package/dist/src/engine/pisdk.d.ts +226 -0
- package/dist/src/engine/pisdk.d.ts.map +1 -0
- package/dist/src/engine/pisdk.js +552 -0
- package/dist/src/engine/pisdk.js.map +1 -0
- package/dist/src/engine/port.d.ts +144 -0
- package/dist/src/engine/port.d.ts.map +1 -0
- package/dist/src/engine/port.js +16 -0
- package/dist/src/engine/port.js.map +1 -0
- package/dist/src/engine/prompts.d.ts +159 -0
- package/dist/src/engine/prompts.d.ts.map +1 -0
- package/dist/src/engine/prompts.js +339 -0
- package/dist/src/engine/prompts.js.map +1 -0
- package/dist/src/engine/render.d.ts +10 -0
- package/dist/src/engine/render.d.ts.map +1 -0
- package/dist/src/engine/render.js +23 -0
- package/dist/src/engine/render.js.map +1 -0
- package/dist/src/engine/reviewruntime.d.ts +13 -0
- package/dist/src/engine/reviewruntime.d.ts.map +1 -0
- package/dist/src/engine/reviewruntime.js +35 -0
- package/dist/src/engine/reviewruntime.js.map +1 -0
- package/dist/src/engine/reviewsdk.d.ts +75 -0
- package/dist/src/engine/reviewsdk.d.ts.map +1 -0
- package/dist/src/engine/reviewsdk.js +180 -0
- package/dist/src/engine/reviewsdk.js.map +1 -0
- package/dist/src/engine/round.d.ts +166 -0
- package/dist/src/engine/round.d.ts.map +1 -0
- package/dist/src/engine/round.js +543 -0
- package/dist/src/engine/round.js.map +1 -0
- package/dist/src/engine/roundagents.d.ts +17 -0
- package/dist/src/engine/roundagents.d.ts.map +1 -0
- package/dist/src/engine/roundagents.js +49 -0
- package/dist/src/engine/roundagents.js.map +1 -0
- package/dist/src/engine/roundevents.d.ts +110 -0
- package/dist/src/engine/roundevents.d.ts.map +1 -0
- package/dist/src/engine/roundevents.js +276 -0
- package/dist/src/engine/roundevents.js.map +1 -0
- package/dist/src/engine/roundsdk.d.ts +33 -0
- package/dist/src/engine/roundsdk.d.ts.map +1 -0
- package/dist/src/engine/roundsdk.js +76 -0
- package/dist/src/engine/roundsdk.js.map +1 -0
- package/dist/src/engine/sdkruntime.d.ts +23 -0
- package/dist/src/engine/sdkruntime.d.ts.map +1 -0
- package/dist/src/engine/sdkruntime.js +340 -0
- package/dist/src/engine/sdkruntime.js.map +1 -0
- package/dist/src/engine/select.d.ts +16 -0
- package/dist/src/engine/select.d.ts.map +1 -0
- package/dist/src/engine/select.js +32 -0
- package/dist/src/engine/select.js.map +1 -0
- package/dist/src/engine/sessionwrap.d.ts +4 -0
- package/dist/src/engine/sessionwrap.d.ts.map +1 -0
- package/dist/src/engine/sessionwrap.js +31 -0
- package/dist/src/engine/sessionwrap.js.map +1 -0
- package/dist/src/engine/toolfence.d.ts +90 -0
- package/dist/src/engine/toolfence.d.ts.map +1 -0
- package/dist/src/engine/toolfence.js +378 -0
- package/dist/src/engine/toolfence.js.map +1 -0
- package/dist/src/engine/tooluid.d.ts +128 -0
- package/dist/src/engine/tooluid.d.ts.map +1 -0
- package/dist/src/engine/tooluid.js +401 -0
- package/dist/src/engine/tooluid.js.map +1 -0
- package/dist/src/envstrip.d.ts +10 -0
- package/dist/src/envstrip.d.ts.map +1 -0
- package/dist/src/envstrip.js +15 -0
- package/dist/src/envstrip.js.map +1 -0
- package/dist/src/escalationprompt.d.ts +22 -0
- package/dist/src/escalationprompt.d.ts.map +1 -0
- package/dist/src/escalationprompt.js +54 -0
- package/dist/src/escalationprompt.js.map +1 -0
- package/dist/src/execfn.d.ts +29 -0
- package/dist/src/execfn.d.ts.map +1 -0
- package/dist/src/execfn.js +55 -0
- package/dist/src/execfn.js.map +1 -0
- package/dist/src/finding-chain.d.ts +40 -0
- package/dist/src/finding-chain.d.ts.map +1 -0
- package/dist/src/finding-chain.js +76 -0
- package/dist/src/finding-chain.js.map +1 -0
- package/dist/src/finding-row.d.ts +24 -0
- package/dist/src/finding-row.d.ts.map +1 -0
- package/dist/src/finding-row.js +26 -0
- package/dist/src/finding-row.js.map +1 -0
- package/dist/src/findingkey.d.ts +99 -0
- package/dist/src/findingkey.d.ts.map +1 -0
- package/dist/src/findingkey.js +210 -0
- package/dist/src/findingkey.js.map +1 -0
- package/dist/src/findingsrecord.d.ts +175 -0
- package/dist/src/findingsrecord.d.ts.map +1 -0
- package/dist/src/findingsrecord.js +410 -0
- package/dist/src/findingsrecord.js.map +1 -0
- package/dist/src/followup-mode.d.ts +4 -0
- package/dist/src/followup-mode.d.ts.map +1 -0
- package/dist/src/followup-mode.js +6 -0
- package/dist/src/followup-mode.js.map +1 -0
- package/dist/src/gate.d.ts +199 -0
- package/dist/src/gate.d.ts.map +1 -0
- package/dist/src/gate.js +315 -0
- package/dist/src/gate.js.map +1 -0
- package/dist/src/ghcred.d.ts +58 -0
- package/dist/src/ghcred.d.ts.map +1 -0
- package/dist/src/ghcred.js +139 -0
- package/dist/src/ghcred.js.map +1 -0
- package/dist/src/githubAuth.d.ts +32 -0
- package/dist/src/githubAuth.d.ts.map +1 -0
- package/dist/src/githubAuth.js +116 -0
- package/dist/src/githubAuth.js.map +1 -0
- package/dist/src/githubcore.d.ts +20 -0
- package/dist/src/githubcore.d.ts.map +1 -0
- package/dist/src/githubcore.js +20 -0
- package/dist/src/githubcore.js.map +1 -0
- package/dist/src/glob.d.ts +11 -0
- package/dist/src/glob.d.ts.map +1 -0
- package/dist/src/glob.js +69 -0
- package/dist/src/glob.js.map +1 -0
- package/dist/src/guards.d.ts +93 -0
- package/dist/src/guards.d.ts.map +1 -0
- package/dist/src/guards.js +306 -0
- package/dist/src/guards.js.map +1 -0
- package/dist/src/heartbeat.d.ts +29 -0
- package/dist/src/heartbeat.d.ts.map +1 -0
- package/dist/src/heartbeat.js +87 -0
- package/dist/src/heartbeat.js.map +1 -0
- package/dist/src/heuristics.d.ts +247 -0
- package/dist/src/heuristics.d.ts.map +1 -0
- package/dist/src/heuristics.js +927 -0
- package/dist/src/heuristics.js.map +1 -0
- package/dist/src/homes.d.ts +181 -0
- package/dist/src/homes.d.ts.map +1 -0
- package/dist/src/homes.js +242 -0
- package/dist/src/homes.js.map +1 -0
- package/dist/src/hunkheader.d.ts +11 -0
- package/dist/src/hunkheader.d.ts.map +1 -0
- package/dist/src/hunkheader.js +18 -0
- package/dist/src/hunkheader.js.map +1 -0
- package/dist/src/include.d.ts +435 -0
- package/dist/src/include.d.ts.map +1 -0
- package/dist/src/include.js +1692 -0
- package/dist/src/include.js.map +1 -0
- package/dist/src/launchvocab.d.ts +36 -0
- package/dist/src/launchvocab.d.ts.map +1 -0
- package/dist/src/launchvocab.js +59 -0
- package/dist/src/launchvocab.js.map +1 -0
- package/dist/src/ledgercarry.d.ts +24 -0
- package/dist/src/ledgercarry.d.ts.map +1 -0
- package/dist/src/ledgercarry.js +109 -0
- package/dist/src/ledgercarry.js.map +1 -0
- package/dist/src/lensids.d.ts +7 -0
- package/dist/src/lensids.d.ts.map +1 -0
- package/dist/src/lensids.js +53 -0
- package/dist/src/lensids.js.map +1 -0
- package/dist/src/lensplanning.d.ts +8 -0
- package/dist/src/lensplanning.d.ts.map +1 -0
- package/dist/src/lensplanning.js +126 -0
- package/dist/src/lensplanning.js.map +1 -0
- package/dist/src/lensresult.d.ts +94 -0
- package/dist/src/lensresult.d.ts.map +1 -0
- package/dist/src/lensresult.js +162 -0
- package/dist/src/lensresult.js.map +1 -0
- package/dist/src/lenstuning.d.ts +97 -0
- package/dist/src/lenstuning.d.ts.map +1 -0
- package/dist/src/lenstuning.js +326 -0
- package/dist/src/lenstuning.js.map +1 -0
- package/dist/src/lintconfig.d.ts +31 -0
- package/dist/src/lintconfig.d.ts.map +1 -0
- package/dist/src/lintconfig.js +543 -0
- package/dist/src/lintconfig.js.map +1 -0
- package/dist/src/live/events.d.ts +188 -0
- package/dist/src/live/events.d.ts.map +1 -0
- package/dist/src/live/events.js +136 -0
- package/dist/src/live/events.js.map +1 -0
- package/dist/src/live/writer.d.ts +54 -0
- package/dist/src/live/writer.d.ts.map +1 -0
- package/dist/src/live/writer.js +516 -0
- package/dist/src/live/writer.js.map +1 -0
- package/dist/src/localreview.d.ts +128 -0
- package/dist/src/localreview.d.ts.map +1 -0
- package/dist/src/localreview.js +426 -0
- package/dist/src/localreview.js.map +1 -0
- package/dist/src/loosenedtests.d.ts +13 -0
- package/dist/src/loosenedtests.d.ts.map +1 -0
- package/dist/src/loosenedtests.js +188 -0
- package/dist/src/loosenedtests.js.map +1 -0
- package/dist/src/memoryport.d.ts +264 -0
- package/dist/src/memoryport.d.ts.map +1 -0
- package/dist/src/memoryport.js +445 -0
- package/dist/src/memoryport.js.map +1 -0
- package/dist/src/migrations.d.ts +106 -0
- package/dist/src/migrations.d.ts.map +1 -0
- package/dist/src/migrations.js +373 -0
- package/dist/src/migrations.js.map +1 -0
- package/dist/src/oneshot.d.ts +12 -0
- package/dist/src/oneshot.d.ts.map +1 -0
- package/dist/src/oneshot.js +8 -0
- package/dist/src/oneshot.js.map +1 -0
- package/dist/src/packing.d.ts +11 -0
- package/dist/src/packing.d.ts.map +1 -0
- package/dist/src/packing.js +31 -0
- package/dist/src/packing.js.map +1 -0
- package/dist/src/passes.d.ts +16 -0
- package/dist/src/passes.d.ts.map +1 -0
- package/dist/src/passes.js +104 -0
- package/dist/src/passes.js.map +1 -0
- package/dist/src/passtasks.d.ts +68 -0
- package/dist/src/passtasks.d.ts.map +1 -0
- package/dist/src/passtasks.js +360 -0
- package/dist/src/passtasks.js.map +1 -0
- package/dist/src/pathinside.d.ts +5 -0
- package/dist/src/pathinside.d.ts.map +1 -0
- package/dist/src/pathinside.js +9 -0
- package/dist/src/pathinside.js.map +1 -0
- package/dist/src/pibuiltins.d.ts +36 -0
- package/dist/src/pibuiltins.d.ts.map +1 -0
- package/dist/src/pibuiltins.js +83 -0
- package/dist/src/pibuiltins.js.map +1 -0
- package/dist/src/plankey.d.ts +4 -0
- package/dist/src/plankey.d.ts.map +1 -0
- package/dist/src/plankey.js +10 -0
- package/dist/src/plankey.js.map +1 -0
- package/dist/src/planner.d.ts +375 -0
- package/dist/src/planner.d.ts.map +1 -0
- package/dist/src/planner.js +722 -0
- package/dist/src/planner.js.map +1 -0
- package/dist/src/plugin/args.d.ts +19 -0
- package/dist/src/plugin/args.d.ts.map +1 -0
- package/dist/src/plugin/args.js +107 -0
- package/dist/src/plugin/args.js.map +1 -0
- package/dist/src/plugin/index.d.ts +3 -0
- package/dist/src/plugin/index.d.ts.map +1 -0
- package/dist/src/plugin/index.js +14 -0
- package/dist/src/plugin/index.js.map +1 -0
- package/dist/src/plugin/login.d.ts +39 -0
- package/dist/src/plugin/login.d.ts.map +1 -0
- package/dist/src/plugin/login.js +73 -0
- package/dist/src/plugin/login.js.map +1 -0
- package/dist/src/plugin/review.d.ts +27 -0
- package/dist/src/plugin/review.d.ts.map +1 -0
- package/dist/src/plugin/review.js +298 -0
- package/dist/src/plugin/review.js.map +1 -0
- package/dist/src/plugin/runner.d.ts +6 -0
- package/dist/src/plugin/runner.d.ts.map +1 -0
- package/dist/src/plugin/runner.js +65 -0
- package/dist/src/plugin/runner.js.map +1 -0
- package/dist/src/plugin/scan.d.ts +79 -0
- package/dist/src/plugin/scan.d.ts.map +1 -0
- package/dist/src/plugin/scan.js +348 -0
- package/dist/src/plugin/scan.js.map +1 -0
- package/dist/src/plugin/session.d.ts +56 -0
- package/dist/src/plugin/session.d.ts.map +1 -0
- package/dist/src/plugin/session.js +2 -0
- package/dist/src/plugin/session.js.map +1 -0
- package/dist/src/plugin/setup.d.ts +19 -0
- package/dist/src/plugin/setup.d.ts.map +1 -0
- package/dist/src/plugin/setup.js +142 -0
- package/dist/src/plugin/setup.js.map +1 -0
- package/dist/src/plugin/versiongate.d.ts +26 -0
- package/dist/src/plugin/versiongate.d.ts.map +1 -0
- package/dist/src/plugin/versiongate.js +83 -0
- package/dist/src/plugin/versiongate.js.map +1 -0
- package/dist/src/postingkey.d.ts +8 -0
- package/dist/src/postingkey.d.ts.map +1 -0
- package/dist/src/postingkey.js +25 -0
- package/dist/src/postingkey.js.map +1 -0
- package/dist/src/postingpolicy.d.ts +108 -0
- package/dist/src/postingpolicy.d.ts.map +1 -0
- package/dist/src/postingpolicy.js +341 -0
- package/dist/src/postingpolicy.js.map +1 -0
- package/dist/src/pr-identity.d.ts +3 -0
- package/dist/src/pr-identity.d.ts.map +1 -0
- package/dist/src/pr-identity.js +9 -0
- package/dist/src/pr-identity.js.map +1 -0
- package/dist/src/prdelta.d.ts +181 -0
- package/dist/src/prdelta.d.ts.map +1 -0
- package/dist/src/prdelta.js +501 -0
- package/dist/src/prdelta.js.map +1 -0
- package/dist/src/pricing.d.ts +94 -0
- package/dist/src/pricing.d.ts.map +1 -0
- package/dist/src/pricing.js +209 -0
- package/dist/src/pricing.js.map +1 -0
- package/dist/src/priorfindings.d.ts +167 -0
- package/dist/src/priorfindings.d.ts.map +1 -0
- package/dist/src/priorfindings.js +445 -0
- package/dist/src/priorfindings.js.map +1 -0
- package/dist/src/priortasks.d.ts +31 -0
- package/dist/src/priortasks.d.ts.map +1 -0
- package/dist/src/priortasks.js +119 -0
- package/dist/src/priortasks.js.map +1 -0
- package/dist/src/profilelookup.d.ts +59 -0
- package/dist/src/profilelookup.d.ts.map +1 -0
- package/dist/src/profilelookup.js +98 -0
- package/dist/src/profilelookup.js.map +1 -0
- package/dist/src/profileoverrides.d.ts +91 -0
- package/dist/src/profileoverrides.d.ts.map +1 -0
- package/dist/src/profileoverrides.js +313 -0
- package/dist/src/profileoverrides.js.map +1 -0
- package/dist/src/profiles.d.ts +144 -0
- package/dist/src/profiles.d.ts.map +1 -0
- package/dist/src/profiles.js +604 -0
- package/dist/src/profiles.js.map +1 -0
- package/dist/src/promptdoc.d.ts +3 -0
- package/dist/src/promptdoc.d.ts.map +1 -0
- package/dist/src/promptdoc.js +18 -0
- package/dist/src/promptdoc.js.map +1 -0
- package/dist/src/prtarget.d.ts +70 -0
- package/dist/src/prtarget.d.ts.map +1 -0
- package/dist/src/prtarget.js +181 -0
- package/dist/src/prtarget.js.map +1 -0
- package/dist/src/recheckorder.d.ts +32 -0
- package/dist/src/recheckorder.d.ts.map +1 -0
- package/dist/src/recheckorder.js +5 -0
- package/dist/src/recheckorder.js.map +1 -0
- package/dist/src/reviewapi.d.ts +207 -0
- package/dist/src/reviewapi.d.ts.map +1 -0
- package/dist/src/reviewapi.js +939 -0
- package/dist/src/reviewapi.js.map +1 -0
- package/dist/src/reviewbotfindings.d.ts +33 -0
- package/dist/src/reviewbotfindings.d.ts.map +1 -0
- package/dist/src/reviewbotfindings.js +80 -0
- package/dist/src/reviewbotfindings.js.map +1 -0
- package/dist/src/reviewconfig.d.ts +741 -0
- package/dist/src/reviewconfig.d.ts.map +1 -0
- package/dist/src/reviewconfig.js +797 -0
- package/dist/src/reviewconfig.js.map +1 -0
- package/dist/src/reviewdelta.d.ts +51 -0
- package/dist/src/reviewdelta.d.ts.map +1 -0
- package/dist/src/reviewdelta.js +119 -0
- package/dist/src/reviewdelta.js.map +1 -0
- package/dist/src/reviewdest.d.ts +86 -0
- package/dist/src/reviewdest.d.ts.map +1 -0
- package/dist/src/reviewdest.js +142 -0
- package/dist/src/reviewdest.js.map +1 -0
- package/dist/src/reviewerstub.d.ts +12 -0
- package/dist/src/reviewerstub.d.ts.map +1 -0
- package/dist/src/reviewerstub.js +28 -0
- package/dist/src/reviewerstub.js.map +1 -0
- package/dist/src/reviewhost.d.ts +58 -0
- package/dist/src/reviewhost.d.ts.map +1 -0
- package/dist/src/reviewhost.js +135 -0
- package/dist/src/reviewhost.js.map +1 -0
- package/dist/src/reviewpost.d.ts +79 -0
- package/dist/src/reviewpost.d.ts.map +1 -0
- package/dist/src/reviewpost.js +233 -0
- package/dist/src/reviewpost.js.map +1 -0
- package/dist/src/reviewrender.d.ts +154 -0
- package/dist/src/reviewrender.d.ts.map +1 -0
- package/dist/src/reviewrender.js +480 -0
- package/dist/src/reviewrender.js.map +1 -0
- package/dist/src/reviewstate.d.ts +62 -0
- package/dist/src/reviewstate.d.ts.map +1 -0
- package/dist/src/reviewstate.js +167 -0
- package/dist/src/reviewstate.js.map +1 -0
- package/dist/src/reviewstore.d.ts +17 -0
- package/dist/src/reviewstore.d.ts.map +1 -0
- package/dist/src/reviewstore.js +105 -0
- package/dist/src/reviewstore.js.map +1 -0
- package/dist/src/round-progress.d.ts +120 -0
- package/dist/src/round-progress.d.ts.map +1 -0
- package/dist/src/round-progress.js +172 -0
- package/dist/src/round-progress.js.map +1 -0
- package/dist/src/round-stage-deadlines.d.ts +12 -0
- package/dist/src/round-stage-deadlines.d.ts.map +1 -0
- package/dist/src/round-stage-deadlines.js +10 -0
- package/dist/src/round-stage-deadlines.js.map +1 -0
- package/dist/src/session-command.d.ts +19 -0
- package/dist/src/session-command.d.ts.map +1 -0
- package/dist/src/session-command.js +20 -0
- package/dist/src/session-command.js.map +1 -0
- package/dist/src/settledread.d.ts +61 -0
- package/dist/src/settledread.d.ts.map +1 -0
- package/dist/src/settledread.js +135 -0
- package/dist/src/settledread.js.map +1 -0
- package/dist/src/severity.d.ts +167 -0
- package/dist/src/severity.d.ts.map +1 -0
- package/dist/src/severity.js +364 -0
- package/dist/src/severity.js.map +1 -0
- package/dist/src/severityrank.d.ts +8 -0
- package/dist/src/severityrank.d.ts.map +1 -0
- package/dist/src/severityrank.js +16 -0
- package/dist/src/severityrank.js.map +1 -0
- package/dist/src/standing-review.d.ts +45 -0
- package/dist/src/standing-review.d.ts.map +1 -0
- package/dist/src/standing-review.js +43 -0
- package/dist/src/standing-review.js.map +1 -0
- package/dist/src/storerows.d.ts +225 -0
- package/dist/src/storerows.d.ts.map +1 -0
- package/dist/src/storerows.js +7 -0
- package/dist/src/storerows.js.map +1 -0
- package/dist/src/styleguide.d.ts +25 -0
- package/dist/src/styleguide.d.ts.map +1 -0
- package/dist/src/styleguide.js +272 -0
- package/dist/src/styleguide.js.map +1 -0
- package/dist/src/sweepstatus.d.ts +42 -0
- package/dist/src/sweepstatus.d.ts.map +1 -0
- package/dist/src/sweepstatus.js +97 -0
- package/dist/src/sweepstatus.js.map +1 -0
- package/dist/src/templates.d.ts +243 -0
- package/dist/src/templates.d.ts.map +1 -0
- package/dist/src/templates.js +847 -0
- package/dist/src/templates.js.map +1 -0
- package/dist/src/types.d.ts +639 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +90 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/unifieddiff.d.ts +22 -0
- package/dist/src/unifieddiff.d.ts.map +1 -0
- package/dist/src/unifieddiff.js +176 -0
- package/dist/src/unifieddiff.js.map +1 -0
- package/dist/src/yieldloop.d.ts +2 -0
- package/dist/src/yieldloop.d.ts.map +1 -0
- package/dist/src/yieldloop.js +14 -0
- package/dist/src/yieldloop.js.map +1 -0
- package/package.json +60 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plankey.js","sourceRoot":"","sources":["../../src/plankey.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wEAAwE;AACxE,0FAA0F;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;sEACsE;AACtE,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import type { CoreConfig } from "./reviewconfig.js";
|
|
2
|
+
import { type Ecosystem } from "./ecosystem.js";
|
|
3
|
+
import type { PrFileEntry } from "./githubcore.js";
|
|
4
|
+
import type { HeuristicsExtension } from "./heuristics.js";
|
|
5
|
+
import { type CiLinter } from "./lintconfig.js";
|
|
6
|
+
import type { MigrationCollision } from "./migrations.js";
|
|
7
|
+
import { type PrOwnedDelta, type PrOwnedDeltaFile } from "./prdelta.js";
|
|
8
|
+
import type { PriorFindingsList } from "./priorfindings.js";
|
|
9
|
+
import type { LedgerCarry, PassPlanEntry, PassTier, RoundDelta, RoundOrder, RoundRecoveryContext, RoundType } from "./types.js";
|
|
10
|
+
/** A plan's lens names, each once, in plan order — the compatibility list
|
|
11
|
+
* the rounds table, the event log and every order carry (a lens with several
|
|
12
|
+
* rows, the sweep, once). */
|
|
13
|
+
export declare function lensesOf(plan: readonly PassPlanEntry[]): string[];
|
|
14
|
+
/** The head a round reviews: the prepared tree's, else the PR row's (a
|
|
15
|
+
* caller with no worktree seam). The one rule the round row, the posting key
|
|
16
|
+
* and the prompt all name their head by. */
|
|
17
|
+
export declare function reviewedHeadOf(tree: Pick<PreparedTree, "head_sha"> | undefined, row: Pick<PlannedPr, "head_sha">): string;
|
|
18
|
+
/**
|
|
19
|
+
* The tier the round's validator runs at: its own tier, the configured
|
|
20
|
+
* `validate_tier` under the profile's `min_tier` for it, whatever tier or
|
|
21
|
+
* effort any lens runs at. It is never raised to match a lens: a finding the
|
|
22
|
+
* validator cannot stand behind is kept as `doubted` in the findings record
|
|
23
|
+
* (never posted, shown in the TUI), not discarded, so a cheaper validator
|
|
24
|
+
* cannot make a stronger lens's finding vanish. Lens tiers are deliberately
|
|
25
|
+
* not an input.
|
|
26
|
+
*/
|
|
27
|
+
export declare function validatorTier(cfg: Pick<CoreConfig, "lenses" | "models">): PassTier;
|
|
28
|
+
/**
|
|
29
|
+
* The tier a lens ADDED by the session runs at (the round templates' add
|
|
30
|
+
* rule): a risk pass exists only as `sol-high`; every other lens at `sol-med`,
|
|
31
|
+
* or at the profile's `min_tier` for it when that is higher.
|
|
32
|
+
*/
|
|
33
|
+
export declare function addTierOf(cfg: CoreConfig, lens: string): PassTier;
|
|
34
|
+
/** The facts a prepared worktree hands the round — the tree's own, less
|
|
35
|
+
* where it lives (the app's worktree facts add the path). */
|
|
36
|
+
export interface PreparedTree {
|
|
37
|
+
/** The sha the worktree is actually checked out at — the authority for the
|
|
38
|
+
* round. It is the just-fetched `refs/pull/<n>/head`, or the caller's
|
|
39
|
+
* `expectedHead` when that ref lags behind it. */
|
|
40
|
+
head_sha: string;
|
|
41
|
+
/** Branch the PR targets; "" when the caller did not supply one. */
|
|
42
|
+
base_ref: string;
|
|
43
|
+
/** Tip of base_ref at fetch time; "" when no base_ref was fetched. */
|
|
44
|
+
base_sha: string;
|
|
45
|
+
/** merge-base(base_sha, head_sha); "" when unavailable. */
|
|
46
|
+
merge_base: string;
|
|
47
|
+
/** Set when GitHub's `refs/pull/<n>/head` lagged the head the caller expected
|
|
48
|
+
* and the worktree holds that head instead: the stale commit the ref named. */
|
|
49
|
+
pull_ref_sha?: string;
|
|
50
|
+
}
|
|
51
|
+
/** The PR a round is planned for: the fields of its state row the plan reads. */
|
|
52
|
+
export interface PlannedPr {
|
|
53
|
+
number: number;
|
|
54
|
+
head_sha: string;
|
|
55
|
+
title: string;
|
|
56
|
+
}
|
|
57
|
+
/** What `buildPassPlan` returns. */
|
|
58
|
+
export interface PassPlan {
|
|
59
|
+
pass_plan: PassPlanEntry[];
|
|
60
|
+
addable_lenses: string[];
|
|
61
|
+
sweep_unswept: string[];
|
|
62
|
+
/** Files the behaviour-delta lens would read but its group cap left out —
|
|
63
|
+
* present only when the cap cut something, so a capped lens never reads
|
|
64
|
+
* as covering the change. */
|
|
65
|
+
behaviour_unread?: string[];
|
|
66
|
+
}
|
|
67
|
+
/** Deterministic per-round pass plan (agent = `${lens}--${tier}`):
|
|
68
|
+
* - risk passes are always "sol-high", single variant, not raisable;
|
|
69
|
+
* - pass-validate runs at validatorTier() — its own configured tier, never
|
|
70
|
+
* raised to match a lens — is not raisable, and is always last;
|
|
71
|
+
* - every other selected lens gets the passTier() tier and may be raised to
|
|
72
|
+
* any higher tier's variant (ascending order).
|
|
73
|
+
* addable_lenses = every known pass not already in the plan.
|
|
74
|
+
* The rows come back in launch order, slowest first (`slowestFirst`).
|
|
75
|
+
*
|
|
76
|
+
* The profile's per-lens tuning (`cfg.lenses`) wins over all of
|
|
77
|
+
* that: a `min_tier` floors the lens's row (and so its `raisable_to`) and the
|
|
78
|
+
* sweep rows; `enabled = false` removes a lens from the plan AND the addable
|
|
79
|
+
* list whatever selected it — the validator included, when the round
|
|
80
|
+
* has no validator row at all; `enabled = true` on a lever-gated lens switches
|
|
81
|
+
* it on whatever its `[review]` lever says. */
|
|
82
|
+
export declare function buildPassPlan(cfg: CoreConfig, files: PrFileEntry[], intent?: {
|
|
83
|
+
title?: string | null;
|
|
84
|
+
body?: string | null;
|
|
85
|
+
},
|
|
86
|
+
/** Whose tier-forcing gate applies. Default Django; `none` never forces
|
|
87
|
+
* sol-med off a migrations path. */
|
|
88
|
+
ecosystem?: Ecosystem,
|
|
89
|
+
/** Profile lens-heuristics extension; absent ⇒ generic core. */
|
|
90
|
+
heuristics?: HeuristicsExtension,
|
|
91
|
+
/** The repo's written style guide references (packages/pi-plugin/src/styleguide.ts); empty or
|
|
92
|
+
* absent ⇒ the style lens only on the profile's guide, if any. */
|
|
93
|
+
styleGuide?: readonly string[],
|
|
94
|
+
/** The linters and formatters a CI job of the repo runs (packages/pi-plugin/src/lintconfig.ts);
|
|
95
|
+
* empty or absent ⇒ no lint-conformance row. */
|
|
96
|
+
ciLinters?: readonly CiLinter[],
|
|
97
|
+
/** `tierFiles` — the files the round's default TIER is chosen from, when
|
|
98
|
+
* the plan is built over fewer files than the PR (a follow-up round plans
|
|
99
|
+
* from the delta, but a small fix push keeps the PR's tier and its
|
|
100
|
+
* migration floor). Absent ⇒ `files`. */
|
|
101
|
+
opts?: {
|
|
102
|
+
tierFiles?: PrFileEntry[];
|
|
103
|
+
}): PassPlan;
|
|
104
|
+
/**
|
|
105
|
+
* The plan's rows in LAUNCH order — the expected-slowest first.
|
|
106
|
+
*
|
|
107
|
+
* The session launches a turn's rows in table order, and the lens runner
|
|
108
|
+
* (packages/pi-plugin/src/engine/lens/runlens.ts) runs them under a process-wide cap in that order,
|
|
109
|
+
* so a 15–27 row plan runs in waves: a slow row listed late starts in the
|
|
110
|
+
* last wave and sets the round's critical path (typically pass-baseline,
|
|
111
|
+
* sol-high sweep and behaviour-delta rows). The order:
|
|
112
|
+
* pass-baseline; then by tier, highest first; within a tier the risk passes,
|
|
113
|
+
* then the focused rows (behaviour-delta, then sweep) by the changed lines
|
|
114
|
+
* their focus covers, larger first, then every other lens, then the cheap
|
|
115
|
+
* conditional lenses (`CHEAP_LAST_PASSES`); pass-validate stays last. Ties
|
|
116
|
+
* keep their planned order (a stable sort).
|
|
117
|
+
*
|
|
118
|
+
* Only the ORDER moves — the same rows, each byte-identical. Every consumer
|
|
119
|
+
* that indexes rows (the task files, `lenses`, lesson rows, the recorded
|
|
120
|
+
* pass_plan) reads this one array, so they agree. Exported for
|
|
121
|
+
* `planFollowUp`, which splices a carried row into an already-ordered plan.
|
|
122
|
+
*/
|
|
123
|
+
export declare function slowestFirst(rows: readonly PassPlanEntry[], files: readonly PrFileEntry[], risk: ReadonlySet<string>): PassPlanEntry[];
|
|
124
|
+
/** Why a non-first round runs as a full re-review: every doubt is a full
|
|
125
|
+
* round, never a quieter one. */
|
|
126
|
+
export type FollowUpFullReason = "follow_up_full" | "no-reviewed-head" | "no-adapter" | "delta-too-large" | "baseline-unplanned" | "delta-threw" | "patch-write-failed" | Exclude<PrOwnedDelta, {
|
|
127
|
+
ok: true;
|
|
128
|
+
}>["reason"];
|
|
129
|
+
/** A follow-up round's plan, decided before the round row exists. */
|
|
130
|
+
export interface FollowUpDecision {
|
|
131
|
+
delta: Extract<PrOwnedDelta, {
|
|
132
|
+
ok: true;
|
|
133
|
+
}>;
|
|
134
|
+
/** The reviewed head the delta was computed from. */
|
|
135
|
+
fromSha: string;
|
|
136
|
+
deltaFiles: PrFileEntry[];
|
|
137
|
+
plan: PassPlan;
|
|
138
|
+
/** The pre-approval sweep's plan — the whole PR's full plan — when owed. */
|
|
139
|
+
sweepPlan?: PassPlanEntry[];
|
|
140
|
+
/** The full plan's files left over the per-round sweep cap — carried with
|
|
141
|
+
* `sweepPlan`, so the sweep is told what it does not cover, as round 1 is. */
|
|
142
|
+
sweepUnswept?: string[];
|
|
143
|
+
sweepBehaviourUnread?: string[];
|
|
144
|
+
/** `follow_up_extent = "session"`: the full delta plan's rows the
|
|
145
|
+
* lean core left out — per-file sweep rows, quality and style lenses —
|
|
146
|
+
* offered to the session as optional rows. */
|
|
147
|
+
optionalPlan?: PassPlanEntry[];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The reads a follow-up decision makes of the PR's review history — exactly
|
|
151
|
+
* these, so the planner holds no store. The bot passes its state store, which
|
|
152
|
+
* answers both.
|
|
153
|
+
*/
|
|
154
|
+
export interface FollowUpHistory {
|
|
155
|
+
/** The PR's rounds (only these fields are read). */
|
|
156
|
+
roundsFor(pr: number): ReadonlyArray<{
|
|
157
|
+
backfilled: number;
|
|
158
|
+
head_sha: string | null;
|
|
159
|
+
merge_base: string | null;
|
|
160
|
+
verdict: string | null;
|
|
161
|
+
round_no: number;
|
|
162
|
+
}>;
|
|
163
|
+
/** Has a full look happened since the PR's first round? */
|
|
164
|
+
fullLookSinceFirst(pr: number): boolean;
|
|
165
|
+
}
|
|
166
|
+
/** The PR-owned delta between two reviewed heads, as the decision asks for it. */
|
|
167
|
+
export type PrOwnedDeltaReader = (q: {
|
|
168
|
+
pr: number;
|
|
169
|
+
from: string;
|
|
170
|
+
to: string;
|
|
171
|
+
mergeBase: string;
|
|
172
|
+
baseSha?: string;
|
|
173
|
+
/** The merge base the reviewed round recorded, when known. */
|
|
174
|
+
fromMergeBase?: string;
|
|
175
|
+
}) => Promise<PrOwnedDelta>;
|
|
176
|
+
/**
|
|
177
|
+
* Decide whether a non-first round is a FOLLOW-UP round
|
|
178
|
+
* (docs/follow-up-rounds.md), and plan it. Total: any doubt — the knob, no
|
|
179
|
+
* reviewed-head mark, no git seam, a delta git could not compute, a delta
|
|
180
|
+
* above `follow_up_max_delta_ratio` of the PR's diff lines, a delta plan
|
|
181
|
+
* without pass-baseline — answers `{full: reason}`, and the caller runs a
|
|
182
|
+
* full re-review.
|
|
183
|
+
*
|
|
184
|
+
* The plan is built over the DELTA's files with the intent text arms off
|
|
185
|
+
* (the title and body did not change since the last review), its tier chosen
|
|
186
|
+
* from the WHOLE PR. The sweep is owed as `followUpSweepOwed` decides (the
|
|
187
|
+
* standing verdict not APPROVE and no full look since the first round, or a
|
|
188
|
+
* large enough post-approval delta); its plan is
|
|
189
|
+
* the whole PR's full plan, exactly as a full round would run it.
|
|
190
|
+
*/
|
|
191
|
+
export declare function decideFollowUp(deps: {
|
|
192
|
+
cfg: CoreConfig;
|
|
193
|
+
history: FollowUpHistory;
|
|
194
|
+
/** The PR-owned delta reader (`WorktreeManager.prOwnedDelta`). Absent ⇒
|
|
195
|
+
* `{full: "no-adapter"}`. */
|
|
196
|
+
prOwnedDelta?: PrOwnedDeltaReader;
|
|
197
|
+
heuristics?: HeuristicsExtension;
|
|
198
|
+
}, args: {
|
|
199
|
+
pr: number;
|
|
200
|
+
markHead: string | null | undefined;
|
|
201
|
+
tree: {
|
|
202
|
+
head_sha: string;
|
|
203
|
+
base_sha: string;
|
|
204
|
+
merge_base: string;
|
|
205
|
+
} | undefined;
|
|
206
|
+
files: PrFileEntry[];
|
|
207
|
+
fullPlan: PassPlan;
|
|
208
|
+
standing: string | null;
|
|
209
|
+
/** An approval-withheld mark stood when this round was picked up: the
|
|
210
|
+
* standing APPROVE never reached GitHub, so it is not an approval the
|
|
211
|
+
* sweep may rely on (a withheld approval is an approval yet to be posted). */
|
|
212
|
+
approvalWithheld?: boolean;
|
|
213
|
+
ecosystem: Ecosystem;
|
|
214
|
+
styleGuide: readonly string[];
|
|
215
|
+
ciLinters: readonly CiLinter[];
|
|
216
|
+
}): Promise<{
|
|
217
|
+
kind: "delta";
|
|
218
|
+
decision: FollowUpDecision;
|
|
219
|
+
} | {
|
|
220
|
+
kind: "full";
|
|
221
|
+
reason: FollowUpFullReason;
|
|
222
|
+
detail?: Record<string, unknown>;
|
|
223
|
+
}>;
|
|
224
|
+
/**
|
|
225
|
+
* Whether a follow-up round owes the pre-approval sweep, the
|
|
226
|
+
* `[review] follow_up_sweep` knob aside. Before a posted approval (a withheld
|
|
227
|
+
* one never reached GitHub, so it counts as none): owed until a full look has
|
|
228
|
+
* happened since the first round. After a posted approval: owed only when the
|
|
229
|
+
* change since it reaches `follow_up_post_approval_sweep_lines` — a large push
|
|
230
|
+
* onto an approved PR is where live re-reviews found blockers outside the
|
|
231
|
+
* change; a small one stays delta-only.
|
|
232
|
+
*/
|
|
233
|
+
export declare function followUpSweepOwed(cfg: CoreConfig, args: {
|
|
234
|
+
standing: string | null;
|
|
235
|
+
approvalWithheld: boolean;
|
|
236
|
+
fullLookSinceFirst: () => boolean;
|
|
237
|
+
deltaLines: number;
|
|
238
|
+
}): boolean;
|
|
239
|
+
/**
|
|
240
|
+
* The PURE half of `decideFollowUp`: given a computed delta, plan
|
|
241
|
+
* the follow-up round — or answer `{full: reason}`. The daemon reaches it
|
|
242
|
+
* through `decideFollowUp`; the bench's follow-up replay (src/bench/
|
|
243
|
+
* followup.ts) calls it directly with a delta computed by the same
|
|
244
|
+
* `WorktreeManager.prOwnedDelta` over its replay tree, so the two never
|
|
245
|
+
* disagree about what a follow-up round plans.
|
|
246
|
+
*
|
|
247
|
+
* `sweepOwed` is consulted only when the `[review] follow_up_sweep` knob is on
|
|
248
|
+
* and the plan stands: the daemon's answer reads the standing verdict and the
|
|
249
|
+
* store; the bench's is the recorded case's.
|
|
250
|
+
*/
|
|
251
|
+
export declare function planFollowUp(cfg: CoreConfig, heuristics: HeuristicsExtension | undefined, args: {
|
|
252
|
+
delta: Extract<PrOwnedDelta, {
|
|
253
|
+
ok: true;
|
|
254
|
+
}>;
|
|
255
|
+
fromSha: string;
|
|
256
|
+
files: PrFileEntry[];
|
|
257
|
+
fullPlan: PassPlan;
|
|
258
|
+
ecosystem: Ecosystem;
|
|
259
|
+
styleGuide: readonly string[];
|
|
260
|
+
ciLinters: readonly CiLinter[];
|
|
261
|
+
/** Handed the delta's line count. */
|
|
262
|
+
sweepOwed: (deltaLines: number) => boolean;
|
|
263
|
+
}): {
|
|
264
|
+
kind: "delta";
|
|
265
|
+
decision: FollowUpDecision;
|
|
266
|
+
} | {
|
|
267
|
+
kind: "full";
|
|
268
|
+
reason: FollowUpFullReason;
|
|
269
|
+
detail?: Record<string, unknown>;
|
|
270
|
+
};
|
|
271
|
+
/** The lenses a lean follow-up plan offers as addable instead of planning. */
|
|
272
|
+
export declare const LEAN_ADDABLE_PASSES: readonly string[];
|
|
273
|
+
/**
|
|
274
|
+
* The LEAN follow-up plan: the plan without its per-file
|
|
275
|
+
* pass-sweep rows, and with the quality and style lenses moved to
|
|
276
|
+
* `addable_lenses`. Every other row — baseline, the triggered risk lenses,
|
|
277
|
+
* the validator — is kept as planned, and so is a quality or style row the
|
|
278
|
+
* plan marks `required` (one the operator made a risk pass): a required row
|
|
279
|
+
* is an obligation, never an offer. No lens leaves the round: a session that
|
|
280
|
+
* sees a quality or style question in the change adds the lens.
|
|
281
|
+
*/
|
|
282
|
+
export declare function leanFollowUpPlan(plan: PassPlan): PassPlan;
|
|
283
|
+
/** A delta's files as one git-style patch (the hunks `prOwnedDelta` read,
|
|
284
|
+
* each under its file header). */
|
|
285
|
+
export declare function renderDeltaPatch(files: readonly PrOwnedDeltaFile[]): string;
|
|
286
|
+
/** The order's view of a delta (types.ts `RoundDelta`). */
|
|
287
|
+
export declare function roundDeltaOf(d: FollowUpDecision, patchFile: string): RoundDelta;
|
|
288
|
+
/** The order the follow-up round's OPTIONAL rows render their task files
|
|
289
|
+
* from: the follow-up order itself — the change since the last
|
|
290
|
+
* review stays their scope — with `optional_plan` as its plan. Prior
|
|
291
|
+
* findings ride the core rows only (their assignment indexes `pass_plan`),
|
|
292
|
+
* so none ride here. Pure. */
|
|
293
|
+
export declare function optionalOrderOf(order: RoundOrder, optionalPlan: PassPlanEntry[]): RoundOrder;
|
|
294
|
+
/** The order the pre-approval sweep's task files render from: the
|
|
295
|
+
* follow-up order minus its follow-up fields, planned with the whole PR's
|
|
296
|
+
* full plan — exactly the order a full round would hand its lenses. Pure;
|
|
297
|
+
* the daemon and the bench's follow-up replay render the sweep's tasks from
|
|
298
|
+
* it alike. */
|
|
299
|
+
export declare function sweepOrderOf(order: RoundOrder, sweepPlan: PassPlanEntry[]): RoundOrder;
|
|
300
|
+
/** Build the round order for one PR — pure once the files list is in hand. */
|
|
301
|
+
export declare function buildRoundOrder(args: {
|
|
302
|
+
cfg: CoreConfig;
|
|
303
|
+
row: PlannedPr;
|
|
304
|
+
files: PrFileEntry[];
|
|
305
|
+
roundId: number;
|
|
306
|
+
roundNo: number;
|
|
307
|
+
/** Prior VERDICTED rounds + 1 — the PR's review age. Drives the nit cap;
|
|
308
|
+
* failed (cancelled/overdue) rounds advance round_no but not this. */
|
|
309
|
+
reviewNo?: number;
|
|
310
|
+
roundType: RoundType;
|
|
311
|
+
worktree: string;
|
|
312
|
+
settledDigest: string;
|
|
313
|
+
/** The PR's mirrored ledger; absent ⇒ no `ledger_carry`. */
|
|
314
|
+
ledgerCarry?: LedgerCarry;
|
|
315
|
+
issuedAt: string;
|
|
316
|
+
/** Facts established by preparing the worktree. Absent only for callers with
|
|
317
|
+
* no worktree seam (the stub-wired daemon core and unit tests), which fall
|
|
318
|
+
* back to the PR row's sha and an unknown base. */
|
|
319
|
+
tree?: PreparedTree;
|
|
320
|
+
/** Collisions the pre-check found — delivered as a COMMENT unless
|
|
321
|
+
* `migrationCollisionsUndelivered` says the COMMENT did not reach the PR. */
|
|
322
|
+
migrationCollisions?: MigrationCollision[];
|
|
323
|
+
/** True when the collisions' COMMENT was withheld, refused or failed: the
|
|
324
|
+
* gate note then hands the remedy to the session. */
|
|
325
|
+
migrationCollisionsUndelivered?: boolean;
|
|
326
|
+
/** True when the PR touches migrations and the pre-check could NOT run —
|
|
327
|
+
* the prompt must tell the session to check collisions itself. */
|
|
328
|
+
migrationPrecheckDegraded?: boolean;
|
|
329
|
+
/** First-party directive files + the picked escalation mention. */
|
|
330
|
+
firstPartyDirectives?: {
|
|
331
|
+
files: string[];
|
|
332
|
+
mention: string;
|
|
333
|
+
};
|
|
334
|
+
/** The PR body as GitHub returned it: pass-intent's whole intent
|
|
335
|
+
* artifact and the substance-bar input. Absent (stub-wired core, unit tests
|
|
336
|
+
* without an adapter body) ⇒ the intent lens is never selected. */
|
|
337
|
+
prBody?: string;
|
|
338
|
+
/** The round's ecosystem. Absent ⇒ Django. */
|
|
339
|
+
ecosystem?: Ecosystem;
|
|
340
|
+
/** Exact predecessor identity for a pre-fanout recovery successor. */
|
|
341
|
+
recovery?: RoundRecoveryContext;
|
|
342
|
+
/** Profile lens-heuristics extension; absent ⇒ generic core. */
|
|
343
|
+
heuristics?: HeuristicsExtension;
|
|
344
|
+
/** The names the order launches lenses in (`SessionHooks.lensRuntime`): the
|
|
345
|
+
* worker host's engine tools. Absent ⇒ native, the tmux host's. */
|
|
346
|
+
lensRuntime?: "engine";
|
|
347
|
+
/** The rendered third-party-sources block (packages/pi-plugin/src/depsources.ts). */
|
|
348
|
+
dependencyNote?: string;
|
|
349
|
+
/** The repo's written style guide references (packages/pi-plugin/src/styleguide.ts). */
|
|
350
|
+
styleGuide?: readonly string[];
|
|
351
|
+
/** The linters a CI job of the repo runs (packages/pi-plugin/src/lintconfig.ts). */
|
|
352
|
+
ciLinters?: readonly CiLinter[];
|
|
353
|
+
/** The plan, already built by the caller (dispatch builds it once and
|
|
354
|
+
* records the same plan on the round row). Absent ⇒ built here from
|
|
355
|
+
* `files`, the PR body, the style guide and the linters. */
|
|
356
|
+
plan?: PassPlan;
|
|
357
|
+
/** A FOLLOW-UP round's facts: the delta, the prior findings note, the owed
|
|
358
|
+
* sweep's plan. The coverage check then holds the round to the delta's
|
|
359
|
+
* files. Absent ⇒ a full round's order. */
|
|
360
|
+
followUp?: {
|
|
361
|
+
delta: RoundDelta;
|
|
362
|
+
deltaFiles: PrFileEntry[];
|
|
363
|
+
priorFindingsNote: string;
|
|
364
|
+
/** The listed prior findings: each is assigned to the plan row that owns
|
|
365
|
+
* it and written into that row's task file. Absent (the list could not be
|
|
366
|
+
* assembled) ⇒ the session assigns them. */
|
|
367
|
+
priorFindings?: Pick<PriorFindingsList, "findings" | "round_no">;
|
|
368
|
+
/** The optional rows the session decides (`optional_plan`). */
|
|
369
|
+
optionalPlan?: PassPlanEntry[];
|
|
370
|
+
sweepPlan?: PassPlanEntry[];
|
|
371
|
+
sweepUnswept?: string[];
|
|
372
|
+
sweepBehaviourUnread?: string[];
|
|
373
|
+
};
|
|
374
|
+
}): RoundOrder;
|
|
375
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/planner.ts"],"names":[],"mappings":"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"}
|