@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,94 @@
|
|
|
1
|
+
/** The tools whose result carries lens children in `details.results`. */
|
|
2
|
+
export declare const LENS_TOOL = "lens";
|
|
3
|
+
export declare const LENS_WAVE_TOOL = "lens_wave";
|
|
4
|
+
/** The tmux bot's spellings (pi's native subagent tool and the glue's
|
|
5
|
+
* launch_plan, which returns the same result). */
|
|
6
|
+
export declare const LEGACY_LENS_TOOLS: readonly string[];
|
|
7
|
+
/** Whether `name` is a tool whose result lists lens children. */
|
|
8
|
+
export declare function isLensTool(name: unknown): boolean;
|
|
9
|
+
/** One child's summed usage over its turns; `cost` is a NUMBER (the sum of each
|
|
10
|
+
* turn's cost.total), as the native result reports it. */
|
|
11
|
+
export interface LensUsage {
|
|
12
|
+
input: number;
|
|
13
|
+
output: number;
|
|
14
|
+
cacheRead: number;
|
|
15
|
+
cost: number;
|
|
16
|
+
}
|
|
17
|
+
/** One message of the child's transcript. Only the fields consumers read are
|
|
18
|
+
* typed; the rest of a pi message rides along untyped. */
|
|
19
|
+
export interface LensMessage {
|
|
20
|
+
role: string;
|
|
21
|
+
/** Epoch ms. */
|
|
22
|
+
timestamp?: number;
|
|
23
|
+
content?: unknown;
|
|
24
|
+
[k: string]: unknown;
|
|
25
|
+
}
|
|
26
|
+
export interface LensResult {
|
|
27
|
+
/** The run's identity (= its ledger line's `id`). Absent in the native shape. */
|
|
28
|
+
id?: string;
|
|
29
|
+
agent: string;
|
|
30
|
+
model: string;
|
|
31
|
+
usage: LensUsage;
|
|
32
|
+
messages: LensMessage[];
|
|
33
|
+
/** 0 = finished clean; -1 = still running (parallel mode, live updates). */
|
|
34
|
+
exitCode: number;
|
|
35
|
+
stopReason?: string;
|
|
36
|
+
errorMessage?: string;
|
|
37
|
+
timedOut?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export type LensLedgerKind = "lens" | "warmup";
|
|
40
|
+
/** One line of a round's `lens-ledger.jsonl`. `timestamp` (ISO) is the run's
|
|
41
|
+
* END and is also the line's window stamp for usage.ts. A `warmup` line is a
|
|
42
|
+
* cache warm-up session: real spend with no tool result of its own. */
|
|
43
|
+
export interface LensLedgerLine {
|
|
44
|
+
v: 1;
|
|
45
|
+
kind: LensLedgerKind;
|
|
46
|
+
id: string;
|
|
47
|
+
timestamp: string;
|
|
48
|
+
started_at?: string;
|
|
49
|
+
duration_ms?: number;
|
|
50
|
+
agent: string;
|
|
51
|
+
model: string;
|
|
52
|
+
usage: LensUsage;
|
|
53
|
+
exitCode?: number;
|
|
54
|
+
stopReason?: string;
|
|
55
|
+
errorMessage?: string;
|
|
56
|
+
timedOut?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/** The usage a result or ledger line carries, every field a finite number. */
|
|
59
|
+
export declare function lensUsageOf(value: unknown): LensUsage;
|
|
60
|
+
/** The run id of a result or ledger line; null when it carries none. */
|
|
61
|
+
export declare function lensIdOf(value: unknown): string | null;
|
|
62
|
+
/** The lens children a tool result's `details.results` lists — [] for any
|
|
63
|
+
* other shape. `carrier` is the tool event's `result` or `partialResult`. */
|
|
64
|
+
export declare function lensResultsOf(carrier: unknown): unknown[];
|
|
65
|
+
/**
|
|
66
|
+
* Count-once bookkeeping for a consumer that can meet one lens run through
|
|
67
|
+
* several carriers. `claim(id)` is true the first time an id is seen and for
|
|
68
|
+
* every result with no id (the native shape); false on a repeat. Use ONE per
|
|
69
|
+
* measured scope (a case, a round) — never share across scopes.
|
|
70
|
+
*/
|
|
71
|
+
export declare class LensOnce {
|
|
72
|
+
private readonly seen;
|
|
73
|
+
claim(id: string | null): boolean;
|
|
74
|
+
}
|
|
75
|
+
/** A ledger line for `result`, ending at `endedAtMs`. */
|
|
76
|
+
export declare function ledgerLineOf(kind: LensLedgerKind, id: string, result: Omit<LensResult, "id" | "messages"> & {
|
|
77
|
+
messages?: unknown;
|
|
78
|
+
}, timing: {
|
|
79
|
+
endedAtMs: number;
|
|
80
|
+
startedAtMs?: number;
|
|
81
|
+
}): LensLedgerLine;
|
|
82
|
+
/** One JSONL line, newline-terminated, ready to append. */
|
|
83
|
+
export declare function serializeLedgerLine(line: LensLedgerLine): string;
|
|
84
|
+
/** A parsed record that is a v1 ledger line: `v` 1, a `kind` of lens or
|
|
85
|
+
* warmup, a non-empty `id` and a `usage` object. Anything else — a session
|
|
86
|
+
* record, a future version — is not one. */
|
|
87
|
+
export declare function ledgerLineFrom(value: unknown): LensLedgerLine | null;
|
|
88
|
+
/** Parse one ledger line; null for a blank, malformed or foreign line —
|
|
89
|
+
* never thrown. */
|
|
90
|
+
export declare function parseLedgerLine(text: string): LensLedgerLine | null;
|
|
91
|
+
/** Every ledger line in `text`, in file order. Split on LF only: a U+2028 or
|
|
92
|
+
* U+2029 inside a JSON string is not a record boundary. */
|
|
93
|
+
export declare function parseLedger(text: string): LensLedgerLine[];
|
|
94
|
+
//# sourceMappingURL=lensresult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lensresult.d.ts","sourceRoot":"","sources":["../../src/lensresult.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// LensResult v1 and the lens ledger: the shape one lens pass reports, and the
|
|
2
|
+
// per-round `lens-ledger.jsonl` that records every lens (and cache warm-up)
|
|
3
|
+
// session the engine ran. NEUTRAL on purpose: no imports, no I/O. The daemon
|
|
4
|
+
// side (usage.ts feeds est_usd) and the bench consumers (cost.ts, aacr.ts,
|
|
5
|
+
// whatif.ts) and the pi extensions all read these shapes, so the module must
|
|
6
|
+
// not live under src/engine/ — the daemon may not import that tree.
|
|
7
|
+
//
|
|
8
|
+
// LensResult v1 is the SUBSET of pi's native subagent result that consumers
|
|
9
|
+
// read: `agent`, `model`, `usage{input,output,cacheRead,cost}`, the child's
|
|
10
|
+
// `messages` (with timestamps), `exitCode`, `stopReason`, `errorMessage`,
|
|
11
|
+
// `timedOut`. v1 adds one field the native shape never had, `id`: the lens
|
|
12
|
+
// run's identity, equal to the `id` of its ledger line. It is how a consumer
|
|
13
|
+
// counts a lens ONCE when it can see the same run twice (a `lens_wave` result
|
|
14
|
+
// returning a wave the engine already launched, a later `lens_wave` call
|
|
15
|
+
// repeating it, the ledger beside the transcript). A result with no `id` is
|
|
16
|
+
// the native shape: every such result counts, exactly as before.
|
|
17
|
+
//
|
|
18
|
+
// Tool names (owner ruling): the engine routes expose `lens` and
|
|
19
|
+
// `lens_wave`; the tmux bot still runs `subagent` and `launch_plan`. A consumer
|
|
20
|
+
// accepts all four (`isLensTool`) until the old pair is retired.
|
|
21
|
+
/** The tools whose result carries lens children in `details.results`. */
|
|
22
|
+
export const LENS_TOOL = "lens";
|
|
23
|
+
export const LENS_WAVE_TOOL = "lens_wave";
|
|
24
|
+
/** The tmux bot's spellings (pi's native subagent tool and the glue's
|
|
25
|
+
* launch_plan, which returns the same result). */
|
|
26
|
+
export const LEGACY_LENS_TOOLS = ["subagent", "launch_plan"];
|
|
27
|
+
const LENS_TOOLS = new Set([LENS_TOOL, LENS_WAVE_TOOL, ...LEGACY_LENS_TOOLS]);
|
|
28
|
+
/** Whether `name` is a tool whose result lists lens children. */
|
|
29
|
+
export function isLensTool(name) {
|
|
30
|
+
return typeof name === "string" && LENS_TOOLS.has(name);
|
|
31
|
+
}
|
|
32
|
+
function record(value) {
|
|
33
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
34
|
+
? value
|
|
35
|
+
: undefined;
|
|
36
|
+
}
|
|
37
|
+
function finite(value) {
|
|
38
|
+
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
39
|
+
}
|
|
40
|
+
/** A usage `cost` is a number, or (an assistant message's shape) `{total}`. */
|
|
41
|
+
function costOf(value) {
|
|
42
|
+
return finite(record(value) ? record(value)["total"] : value);
|
|
43
|
+
}
|
|
44
|
+
/** The usage a result or ledger line carries, every field a finite number. */
|
|
45
|
+
export function lensUsageOf(value) {
|
|
46
|
+
const u = record(value);
|
|
47
|
+
return {
|
|
48
|
+
input: finite(u?.["input"]),
|
|
49
|
+
output: finite(u?.["output"]),
|
|
50
|
+
cacheRead: finite(u?.["cacheRead"]),
|
|
51
|
+
cost: costOf(u?.["cost"]),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** The run id of a result or ledger line; null when it carries none. */
|
|
55
|
+
export function lensIdOf(value) {
|
|
56
|
+
const id = record(value)?.["id"];
|
|
57
|
+
return typeof id === "string" && id.length > 0 ? id : null;
|
|
58
|
+
}
|
|
59
|
+
/** The lens children a tool result's `details.results` lists — [] for any
|
|
60
|
+
* other shape. `carrier` is the tool event's `result` or `partialResult`. */
|
|
61
|
+
export function lensResultsOf(carrier) {
|
|
62
|
+
const results = record(record(carrier)?.["details"])?.["results"];
|
|
63
|
+
return Array.isArray(results) ? results : [];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Count-once bookkeeping for a consumer that can meet one lens run through
|
|
67
|
+
* several carriers. `claim(id)` is true the first time an id is seen and for
|
|
68
|
+
* every result with no id (the native shape); false on a repeat. Use ONE per
|
|
69
|
+
* measured scope (a case, a round) — never share across scopes.
|
|
70
|
+
*/
|
|
71
|
+
export class LensOnce {
|
|
72
|
+
seen = new Set();
|
|
73
|
+
claim(id) {
|
|
74
|
+
if (id === null)
|
|
75
|
+
return true;
|
|
76
|
+
if (this.seen.has(id))
|
|
77
|
+
return false;
|
|
78
|
+
this.seen.add(id);
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// ---- the ledger ------------------------------------------------------------
|
|
83
|
+
/** A ledger line for `result`, ending at `endedAtMs`. */
|
|
84
|
+
export function ledgerLineOf(kind, id, result, timing) {
|
|
85
|
+
return {
|
|
86
|
+
v: 1,
|
|
87
|
+
kind,
|
|
88
|
+
id,
|
|
89
|
+
timestamp: new Date(timing.endedAtMs).toISOString(),
|
|
90
|
+
...(timing.startedAtMs !== undefined
|
|
91
|
+
? {
|
|
92
|
+
started_at: new Date(timing.startedAtMs).toISOString(),
|
|
93
|
+
duration_ms: Math.max(0, timing.endedAtMs - timing.startedAtMs),
|
|
94
|
+
}
|
|
95
|
+
: {}),
|
|
96
|
+
agent: result.agent,
|
|
97
|
+
model: result.model,
|
|
98
|
+
usage: lensUsageOf(result.usage),
|
|
99
|
+
exitCode: result.exitCode,
|
|
100
|
+
...(result.stopReason !== undefined ? { stopReason: result.stopReason } : {}),
|
|
101
|
+
...(result.errorMessage !== undefined ? { errorMessage: result.errorMessage } : {}),
|
|
102
|
+
...(result.timedOut !== undefined ? { timedOut: result.timedOut } : {}),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** One JSONL line, newline-terminated, ready to append. */
|
|
106
|
+
export function serializeLedgerLine(line) {
|
|
107
|
+
return `${JSON.stringify(line)}\n`;
|
|
108
|
+
}
|
|
109
|
+
/** A parsed record that is a v1 ledger line: `v` 1, a `kind` of lens or
|
|
110
|
+
* warmup, a non-empty `id` and a `usage` object. Anything else — a session
|
|
111
|
+
* record, a future version — is not one. */
|
|
112
|
+
export function ledgerLineFrom(value) {
|
|
113
|
+
const r = record(value);
|
|
114
|
+
if (!r || r["v"] !== 1)
|
|
115
|
+
return null;
|
|
116
|
+
if (r["kind"] !== "lens" && r["kind"] !== "warmup")
|
|
117
|
+
return null;
|
|
118
|
+
if (lensIdOf(r) === null || !record(r["usage"]))
|
|
119
|
+
return null;
|
|
120
|
+
if (typeof r["agent"] !== "string")
|
|
121
|
+
return null;
|
|
122
|
+
return {
|
|
123
|
+
v: 1,
|
|
124
|
+
kind: r["kind"],
|
|
125
|
+
id: r["id"],
|
|
126
|
+
timestamp: typeof r["timestamp"] === "string" ? r["timestamp"] : "",
|
|
127
|
+
...(typeof r["started_at"] === "string" ? { started_at: r["started_at"] } : {}),
|
|
128
|
+
...(typeof r["duration_ms"] === "number" ? { duration_ms: r["duration_ms"] } : {}),
|
|
129
|
+
agent: r["agent"],
|
|
130
|
+
model: typeof r["model"] === "string" ? r["model"] : "unknown",
|
|
131
|
+
usage: lensUsageOf(r["usage"]),
|
|
132
|
+
...(typeof r["exitCode"] === "number" ? { exitCode: r["exitCode"] } : {}),
|
|
133
|
+
...(typeof r["stopReason"] === "string" ? { stopReason: r["stopReason"] } : {}),
|
|
134
|
+
...(typeof r["errorMessage"] === "string" ? { errorMessage: r["errorMessage"] } : {}),
|
|
135
|
+
...(typeof r["timedOut"] === "boolean" ? { timedOut: r["timedOut"] } : {}),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/** Parse one ledger line; null for a blank, malformed or foreign line —
|
|
139
|
+
* never thrown. */
|
|
140
|
+
export function parseLedgerLine(text) {
|
|
141
|
+
const trimmed = text.trim();
|
|
142
|
+
if (!trimmed.startsWith("{"))
|
|
143
|
+
return null;
|
|
144
|
+
try {
|
|
145
|
+
return ledgerLineFrom(JSON.parse(trimmed));
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/** Every ledger line in `text`, in file order. Split on LF only: a U+2028 or
|
|
152
|
+
* U+2029 inside a JSON string is not a record boundary. */
|
|
153
|
+
export function parseLedger(text) {
|
|
154
|
+
const out = [];
|
|
155
|
+
for (const raw of text.split("\n")) {
|
|
156
|
+
const line = parseLedgerLine(raw);
|
|
157
|
+
if (line !== null)
|
|
158
|
+
out.push(line);
|
|
159
|
+
}
|
|
160
|
+
return out;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=lensresult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lensresult.js","sourceRoot":"","sources":["../../src/lensresult.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { ModelsConfig, ReviewEffort } from "./reviewconfig.js";
|
|
2
|
+
import { type PassAddendum } from "./include.js";
|
|
3
|
+
import { type Severity } from "./severity.js";
|
|
4
|
+
import { type PassTier } from "./types.js";
|
|
5
|
+
/** A style guide a profile points `pass-style` at. */
|
|
6
|
+
export interface ProfileStyleGuide {
|
|
7
|
+
/** As `profile.toml` spells it — relative to the profile's directory. */
|
|
8
|
+
file: string;
|
|
9
|
+
text: string;
|
|
10
|
+
}
|
|
11
|
+
/** The keys of one `[lenses.<pass>]` table, after validation. */
|
|
12
|
+
export interface LensTuning {
|
|
13
|
+
min_tier?: PassTier;
|
|
14
|
+
effort?: Exclude<ReviewEffort, "">;
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
emphasis?: string;
|
|
17
|
+
max_severity?: Severity;
|
|
18
|
+
/** `pass-style` only. */
|
|
19
|
+
guide?: ProfileStyleGuide;
|
|
20
|
+
}
|
|
21
|
+
/** Pass name → its resolved tuning. Empty ⇒ untuned (the shipped behaviour). */
|
|
22
|
+
export type LensTuningMap = Readonly<Record<string, LensTuning>>;
|
|
23
|
+
export declare const LENS_TUNING_KEYS: readonly ["min_tier", "effort", "enabled", "emphasis", "max_severity", "guide"];
|
|
24
|
+
/** The one lens a profile may point at a guide. */
|
|
25
|
+
export declare const STYLE_LENS = "pass-style";
|
|
26
|
+
/** A drafted guide is a guide, not a manual: it is compiled into two built
|
|
27
|
+
* bodies (the style lens and the validator). */
|
|
28
|
+
export declare const PROFILE_GUIDE_MAX_CHARS = 32000;
|
|
29
|
+
/** An emphasis is a few sentences for one lens, not a second rulebook. */
|
|
30
|
+
export declare const EMPHASIS_MAX_CHARS = 2000;
|
|
31
|
+
/** The downgrade word the validator records when a profile ceiling caps a
|
|
32
|
+
* candidate (packages/pi-plugin/src/findingsrecord.ts DOWNGRADE_WORDS). */
|
|
33
|
+
export declare const PROFILE_CAP_WORD = "profile-over-cap";
|
|
34
|
+
/** Ids the compiled tuning addenda take — a profile pack may not claim them. */
|
|
35
|
+
export declare const LENS_TUNING_ID_PREFIXES: readonly ["lens-emphasis-", "lens-ceiling-", "lens-guide-"];
|
|
36
|
+
/**
|
|
37
|
+
* Parse one profile's `[lenses]` table. `where` names the file in every
|
|
38
|
+
* error; `known` is every pass the system knows (dispatch.ts ALL_PASSES);
|
|
39
|
+
* `dir` is the profile's directory, which a `guide` resolves against.
|
|
40
|
+
* Anything malformed throws — an unknown lens, an unknown key, a bad value,
|
|
41
|
+
* giving the validator a ceiling, a guide on any lens but `pass-style` or one
|
|
42
|
+
* that cannot be read: a profile that asked for something this cannot honour
|
|
43
|
+
* must fail the boot, never review as if it had. Switching the validator off
|
|
44
|
+
* IS honoured.
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseLensTable(where: string, raw: unknown, known: readonly string[], dir?: string): Record<string, LensTuning>;
|
|
47
|
+
/** Merge a child profile's lens tables over its base's: per lens, per key,
|
|
48
|
+
* the child wins (the profile chain's scalar rule). */
|
|
49
|
+
export declare function mergeLensTuning(base: Record<string, LensTuning>, child: Record<string, LensTuning>): Record<string, LensTuning>;
|
|
50
|
+
/** Is `lens` on? An explicit `enabled` wins; otherwise `lever` — the
|
|
51
|
+
* `[review]` switch that gates this lens, or `true` for an ungated one. */
|
|
52
|
+
export declare function lensEnabled(lenses: LensTuningMap | undefined, lens: string, lever?: boolean): boolean;
|
|
53
|
+
/** `tier`, raised to the lens's `min_tier` when the profile sets one. */
|
|
54
|
+
export declare function flooredTier(lenses: LensTuningMap | undefined, lens: string, tier: PassTier): PassTier;
|
|
55
|
+
/**
|
|
56
|
+
* The per-VARIANT model specs a lens's `effort` asks for, keyed
|
|
57
|
+
* `<pass>--<tier>` — the `BuildAgentsOptions.models` hook. Every tier gets a
|
|
58
|
+
* key (the build reads only the variants it writes); the spec is the tier's
|
|
59
|
+
* own, already through the global `[models] effort`, with only its thinking
|
|
60
|
+
* suffix replaced. Untuned lenses get no key, so their built bytes are
|
|
61
|
+
* unchanged.
|
|
62
|
+
*/
|
|
63
|
+
export declare function lensModelOverrides(models: Pick<ModelsConfig, "tiers" | "effort_max">, lenses: LensTuningMap | undefined): Record<string, string>;
|
|
64
|
+
/** `tier`'s model spec at a configured `effort` — `high` is the model's
|
|
65
|
+
* ceiling (`[models] effort_max`). A lens's profile `effort` and the scan's
|
|
66
|
+
* `[scan] effort` resolve through this one rule. */
|
|
67
|
+
export declare function effortSpec(models: Pick<ModelsConfig, "tiers" | "effort_max">, tier: PassTier, effort: Exclude<ReviewEffort, "">): string;
|
|
68
|
+
/**
|
|
69
|
+
* The per-variant model map a PR round's agent build takes: the profile's
|
|
70
|
+
* per-lens `effort` (`lensModelOverrides`), with `[models.pass_tiers]` pins
|
|
71
|
+
* and `[models.pass_models]` overrides on top (`passTierModels`). The daemon,
|
|
72
|
+
* the bench and the setup replay all build through this one recipe, so each
|
|
73
|
+
* runs a lens at the same model.
|
|
74
|
+
*/
|
|
75
|
+
export declare function roundAgentModels(cfg: {
|
|
76
|
+
models: Pick<ModelsConfig, "tiers" | "effort_max" | "pass_tiers" | "pass_models">;
|
|
77
|
+
lenses?: LensTuningMap | undefined;
|
|
78
|
+
review: {
|
|
79
|
+
sweep_light_tier?: "" | PassTier;
|
|
80
|
+
};
|
|
81
|
+
}): Record<string, string>;
|
|
82
|
+
/**
|
|
83
|
+
* The addenda a profile's `emphasis`, `max_severity` and `guide` compile
|
|
84
|
+
* into, in a deterministic order (lens name; emphasis, ceiling, guide). An
|
|
85
|
+
* emphasis binds its lens alone; a ceiling binds its lens (so it knows how
|
|
86
|
+
* high it may go) and the validator (which enforces it); a guide binds the
|
|
87
|
+
* style lens (its standard) and the validator (which audits against it).
|
|
88
|
+
* Composed after the profile's own pack, so a ceiling is the last word on a
|
|
89
|
+
* lens's cap.
|
|
90
|
+
*/
|
|
91
|
+
export declare function lensTuningAddenda(lenses: LensTuningMap | undefined): PassAddendum[];
|
|
92
|
+
/** The config with the profile's resolved lens tuning overlaid — the profile
|
|
93
|
+
* wins over config.toml, the preset and the defaults. */
|
|
94
|
+
export declare function applyProfileTuning<C extends {
|
|
95
|
+
lenses?: LensTuningMap;
|
|
96
|
+
}>(cfg: C, lenses: LensTuningMap): C;
|
|
97
|
+
//# sourceMappingURL=lenstuning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lenstuning.d.ts","sourceRoot":"","sources":["../../src/lenstuning.ts"],"names":[],"mappings":"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"}
|