@quickchatai/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 +385 -2
- package/THIRD-PARTY-NOTICES.md +134 -0
- package/agents/pass-abstraction.md +64 -0
- package/agents/pass-ask-human.md +134 -0
- package/agents/pass-backcompat.md +67 -0
- package/agents/pass-baseline.md +61 -0
- package/agents/pass-behaviour-delta.md +64 -0
- package/agents/pass-bounds.md +36 -0
- package/agents/pass-claims.md +31 -0
- package/agents/pass-concurrency.md +168 -0
- package/agents/pass-consistency.md +57 -0
- package/agents/pass-contracts.md +30 -0
- package/agents/pass-data-safety.md +54 -0
- package/agents/pass-deferred.md +35 -0
- package/agents/pass-delivery.md +37 -0
- package/agents/pass-duplication.md +60 -0
- package/agents/pass-intent.md +63 -0
- package/agents/pass-lint-conformance.md +46 -0
- package/agents/pass-maintainability.md +67 -0
- package/agents/pass-placement.md +68 -0
- package/agents/pass-prod-risk.md +24 -0
- package/agents/pass-rollout.md +32 -0
- package/agents/pass-roundtrip.md +46 -0
- package/agents/pass-security.md +31 -0
- package/agents/pass-simplicity.md +68 -0
- package/agents/pass-statelessness.md +27 -0
- package/agents/pass-style.md +37 -0
- package/agents/pass-sweep.md +57 -0
- package/agents/pass-tests.md +58 -0
- package/agents/pass-ui.md +23 -0
- package/agents/pass-validate.md +50 -0
- package/agents/pass-widened.md +46 -0
- package/agents/scan/pass-scan.md +86 -0
- package/bin/qcr.js +11 -0
- package/config.example.toml +1067 -0
- package/deploy/ansible/README.md +356 -0
- package/deploy/ansible/group_vars/all.yml +212 -0
- package/deploy/ansible/inventory.example.ini +25 -0
- package/deploy/ansible/playbook.yml +360 -0
- package/deploy/collect-secrets.sh +289 -0
- package/deploy/collect-slack-secrets.mjs +1190 -0
- package/deploy/github-app-manifest.json +31 -0
- package/deploy/manifest.schema.json +75 -0
- package/deploy/qcr-update.sh +803 -0
- package/deploy/reviewer/AGENTS.override.md +12 -0
- package/dist/extensions/cli/bash-guard-ambient.js +42 -0
- package/dist/extensions/cli/bash-guard-ambient.js.map +1 -0
- package/dist/extensions/cli/bash-guard.js +5 -0
- package/dist/extensions/cli/bash-guard.js.map +1 -0
- package/dist/extensions/cli/companion-guard.js +5 -0
- package/dist/extensions/cli/companion-guard.js.map +1 -0
- package/dist/extensions/cli/debug-round.js +8 -0
- package/dist/extensions/cli/debug-round.js.map +1 -0
- package/dist/extensions/cli/inject-bridge.js +5 -0
- package/dist/extensions/cli/inject-bridge.js.map +1 -0
- package/dist/extensions/cli/ledger-pin.js +5 -0
- package/dist/extensions/cli/ledger-pin.js.map +1 -0
- package/dist/extensions/cli/lens.js +13 -0
- package/dist/extensions/cli/lens.js.map +1 -0
- package/dist/extensions/cli/muted-theme.js +5 -0
- package/dist/extensions/cli/muted-theme.js.map +1 -0
- package/dist/extensions/cli/onboarding.js +5 -0
- package/dist/extensions/cli/onboarding.js.map +1 -0
- package/dist/extensions/cli/setup.js +5 -0
- package/dist/extensions/cli/setup.js.map +1 -0
- package/dist/extensions/cli/tui-view.js +5 -0
- package/dist/extensions/cli/tui-view.js.map +1 -0
- package/dist/extensions/companion-guard.js +361 -0
- package/dist/extensions/companion-guard.js.map +1 -0
- package/dist/extensions/debug-round.js +204 -0
- package/dist/extensions/debug-round.js.map +1 -0
- package/dist/extensions/inject-bridge.js +603 -0
- package/dist/extensions/inject-bridge.js.map +1 -0
- package/dist/extensions/muted-theme.js +12 -0
- package/dist/extensions/muted-theme.js.map +1 -0
- package/dist/extensions/onboarding.js +175 -0
- package/dist/extensions/onboarding.js.map +1 -0
- package/dist/extensions/setup-replay.js +269 -0
- package/dist/extensions/setup-replay.js.map +1 -0
- package/dist/extensions/setup-scan.js +998 -0
- package/dist/extensions/setup-scan.js.map +1 -0
- package/dist/extensions/setup-triage.js +175 -0
- package/dist/extensions/setup-triage.js.map +1 -0
- package/dist/extensions/setup.js +1160 -0
- package/dist/extensions/setup.js.map +1 -0
- package/dist/extensions/tui-view.js +389 -0
- package/dist/extensions/tui-view.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/client.js +376 -0
- package/dist/extensions/vendor/openviking-pi/client.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/config.js +189 -0
- package/dist/extensions/vendor/openviking-pi/config.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/index.js +421 -0
- package/dist/extensions/vendor/openviking-pi/index.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/lib/capture-adapter.mjs +86 -0
- package/dist/extensions/vendor/openviking-pi/lib/capture-adapter.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/lib/takeover-core.mjs +408 -0
- package/dist/extensions/vendor/openviking-pi/lib/takeover-core.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/lib/uri-guard-adapter.mjs +41 -0
- package/dist/extensions/vendor/openviking-pi/lib/uri-guard-adapter.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-hint.js +290 -0
- package/dist/extensions/vendor/openviking-pi/qcr-hint.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-honest.js +148 -0
- package/dist/extensions/vendor/openviking-pi/qcr-honest.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-hooks.js +68 -0
- package/dist/extensions/vendor/openviking-pi/qcr-hooks.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-leaf.js +77 -0
- package/dist/extensions/vendor/openviking-pi/qcr-leaf.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-lesson.js +216 -0
- package/dist/extensions/vendor/openviking-pi/qcr-lesson.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-namespaces.js +154 -0
- package/dist/extensions/vendor/openviking-pi/qcr-namespaces.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-recall.js +254 -0
- package/dist/extensions/vendor/openviking-pi/qcr-recall.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-shim.js +94 -0
- package/dist/extensions/vendor/openviking-pi/qcr-shim.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/qcr-write.js +333 -0
- package/dist/extensions/vendor/openviking-pi/qcr-write.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/recall.js +108 -0
- package/dist/extensions/vendor/openviking-pi/recall.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/capture-utils.mjs +529 -0
- package/dist/extensions/vendor/openviking-pi/shared/capture-utils.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/credentials.mjs +205 -0
- package/dist/extensions/vendor/openviking-pi/shared/credentials.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/pending-queue.mjs +442 -0
- package/dist/extensions/vendor/openviking-pi/shared/pending-queue.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/profile-inject.mjs +286 -0
- package/dist/extensions/vendor/openviking-pi/shared/profile-inject.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/recall-compress-core.mjs +189 -0
- package/dist/extensions/vendor/openviking-pi/shared/recall-compress-core.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/recall-core.mjs +580 -0
- package/dist/extensions/vendor/openviking-pi/shared/recall-core.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/retryable.mjs +11 -0
- package/dist/extensions/vendor/openviking-pi/shared/retryable.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/session-model.mjs +63 -0
- package/dist/extensions/vendor/openviking-pi/shared/session-model.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/uri-guard.mjs +58 -0
- package/dist/extensions/vendor/openviking-pi/shared/uri-guard.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/shared/workspace-peer.mjs +16 -0
- package/dist/extensions/vendor/openviking-pi/shared/workspace-peer.mjs.map +1 -0
- package/dist/extensions/vendor/openviking-pi/sync.js +127 -0
- package/dist/extensions/vendor/openviking-pi/sync.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/takeover.js +25 -0
- package/dist/extensions/vendor/openviking-pi/takeover.js.map +1 -0
- package/dist/extensions/vendor/openviking-pi/tools.js +417 -0
- package/dist/extensions/vendor/openviking-pi/tools.js.map +1 -0
- package/dist/src/anomalies.js +483 -0
- package/dist/src/anomalies.js.map +1 -0
- package/dist/src/answerworker.js +180 -0
- package/dist/src/answerworker.js.map +1 -0
- package/dist/src/appstamp.js +68 -0
- package/dist/src/appstamp.js.map +1 -0
- package/dist/src/archive/admission.js +3 -0
- package/dist/src/archive/admission.js.map +1 -0
- package/dist/src/archive/archivedb.js +474 -0
- package/dist/src/archive/archivedb.js.map +1 -0
- package/dist/src/archive/archiver.js +1770 -0
- package/dist/src/archive/archiver.js.map +1 -0
- package/dist/src/archive/archivewrite.js +198 -0
- package/dist/src/archive/archivewrite.js.map +1 -0
- package/dist/src/archive/bundle.js +266 -0
- package/dist/src/archive/bundle.js.map +1 -0
- package/dist/src/archive/dbmove.js +638 -0
- package/dist/src/archive/dbmove.js.map +1 -0
- package/dist/src/archive/duplicatecounts.js +80 -0
- package/dist/src/archive/duplicatecounts.js.map +1 -0
- package/dist/src/archive/eligibility.js +113 -0
- package/dist/src/archive/eligibility.js.map +1 -0
- package/dist/src/archive/extract.js +288 -0
- package/dist/src/archive/extract.js.map +1 -0
- package/dist/src/archive/fsutil.js +330 -0
- package/dist/src/archive/fsutil.js.map +1 -0
- package/dist/src/archive/gzfile.js +277 -0
- package/dist/src/archive/gzfile.js.map +1 -0
- package/dist/src/archive/kinds.js +22 -0
- package/dist/src/archive/kinds.js.map +1 -0
- package/dist/src/archive/livecheckpoint.js +178 -0
- package/dist/src/archive/livecheckpoint.js.map +1 -0
- package/dist/src/archive/liveretention.js +145 -0
- package/dist/src/archive/liveretention.js.map +1 -0
- package/dist/src/archive/manifest.js +284 -0
- package/dist/src/archive/manifest.js.map +1 -0
- package/dist/src/archive/overseer.js +283 -0
- package/dist/src/archive/overseer.js.map +1 -0
- package/dist/src/archive/piglobal.js +129 -0
- package/dist/src/archive/piglobal.js.map +1 -0
- package/dist/src/archive/plan.js +398 -0
- package/dist/src/archive/plan.js.map +1 -0
- package/dist/src/archive/prarchive.js +831 -0
- package/dist/src/archive/prarchive.js.map +1 -0
- package/dist/src/archive/prfiles.js +303 -0
- package/dist/src/archive/prfiles.js.map +1 -0
- package/dist/src/archive/report.js +169 -0
- package/dist/src/archive/report.js.map +1 -0
- package/dist/src/archive/restore.js +276 -0
- package/dist/src/archive/restore.js.map +1 -0
- package/dist/src/archive/rows.js +106 -0
- package/dist/src/archive/rows.js.map +1 -0
- package/dist/src/archive/seal.js +480 -0
- package/dist/src/archive/seal.js.map +1 -0
- package/dist/src/archive/status.js +528 -0
- package/dist/src/archive/status.js.map +1 -0
- package/dist/src/archive/storepass.js +409 -0
- package/dist/src/archive/storepass.js.map +1 -0
- package/dist/src/backfill.js +217 -0
- package/dist/src/backfill.js.map +1 -0
- package/dist/src/bench/cost.js +87 -0
- package/dist/src/bench/exec.js +76 -0
- package/dist/src/bench/values.js +14 -0
- package/dist/src/botcontrol.js +127 -0
- package/dist/src/botcontrol.js.map +1 -0
- package/dist/src/botworker.js +805 -0
- package/dist/src/botworker.js.map +1 -0
- package/dist/src/capture.js +234 -0
- package/dist/src/capture.js.map +1 -0
- package/dist/src/cases.js +1491 -0
- package/dist/src/cases.js.map +1 -0
- package/dist/src/channelfs.js +27 -0
- package/dist/src/channelfs.js.map +1 -0
- package/dist/src/checklist.js +312 -0
- package/dist/src/checklist.js.map +1 -0
- package/dist/src/ciretry.js +91 -0
- package/dist/src/ciretry.js.map +1 -0
- package/dist/src/cli.js +1916 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/cliops.js +333 -0
- package/dist/src/cliops.js.map +1 -0
- package/dist/src/clonedir.js +15 -0
- package/dist/src/clonedir.js.map +1 -0
- package/dist/src/commandeffects.js +43 -0
- package/dist/src/commandeffects.js.map +1 -0
- package/dist/src/commands.js +1312 -0
- package/dist/src/commands.js.map +1 -0
- package/dist/src/companioninbox.js +203 -0
- package/dist/src/companioninbox.js.map +1 -0
- package/dist/src/compare.js +673 -0
- package/dist/src/compare.js.map +1 -0
- package/dist/src/config.js +1027 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/configcheck.js +111 -0
- package/dist/src/configcheck.js.map +1 -0
- package/dist/src/coreext.js +43 -0
- package/dist/src/coreext.js.map +1 -0
- package/dist/src/daemon.js +929 -0
- package/dist/src/daemon.js.map +1 -0
- package/dist/src/debuground.js +731 -0
- package/dist/src/debuground.js.map +1 -0
- package/dist/src/debugroundpi.js +219 -0
- package/dist/src/debugroundpi.js.map +1 -0
- package/dist/src/diagnostics.js +14 -0
- package/dist/src/diagnostics.js.map +1 -0
- package/dist/src/digest.js +139 -0
- package/dist/src/digest.js.map +1 -0
- package/dist/src/dispatch.js +1726 -0
- package/dist/src/dispatch.js.map +1 -0
- package/dist/src/engine/answerguard.js +18 -0
- package/dist/src/engine/answerguard.js.map +1 -0
- package/dist/src/engine/botsdk.js +262 -0
- package/dist/src/engine/botsdk.js.map +1 -0
- package/dist/src/engine/caserunner-sdk.js +332 -0
- package/dist/src/engine/caserunner-sdk.js.map +1 -0
- package/dist/src/engine/debugpi.js +194 -0
- package/dist/src/engine/debugpi.js.map +1 -0
- package/dist/src/eod.js +473 -0
- package/dist/src/eod.js.map +1 -0
- package/dist/src/eodpinwatch.js +391 -0
- package/dist/src/eodpinwatch.js.map +1 -0
- package/dist/src/escalation.js +1009 -0
- package/dist/src/escalation.js.map +1 -0
- package/dist/src/eventloop.js +779 -0
- package/dist/src/eventloop.js.map +1 -0
- package/dist/src/execboundary.js +430 -0
- package/dist/src/execboundary.js.map +1 -0
- package/dist/src/feedback.js +915 -0
- package/dist/src/feedback.js.map +1 -0
- package/dist/src/findingscheck.js +200 -0
- package/dist/src/findingscheck.js.map +1 -0
- package/dist/src/fsdenied.js +26 -0
- package/dist/src/fsdenied.js.map +1 -0
- package/dist/src/ghread.js +181 -0
- package/dist/src/ghread.js.map +1 -0
- package/dist/src/github.js +1063 -0
- package/dist/src/github.js.map +1 -0
- package/dist/src/homes.js +103 -0
- package/dist/src/homes.js.map +1 -0
- package/dist/src/hostroute.js +24 -0
- package/dist/src/hostroute.js.map +1 -0
- package/dist/src/improvements.js +625 -0
- package/dist/src/improvements.js.map +1 -0
- package/dist/src/install.js +946 -0
- package/dist/src/install.js.map +1 -0
- package/dist/src/installkind.js +40 -0
- package/dist/src/installkind.js.map +1 -0
- package/dist/src/ipc/capability.js +286 -0
- package/dist/src/ipc/capability.js.map +1 -0
- package/dist/src/ipc/client.js +226 -0
- package/dist/src/ipc/client.js.map +1 -0
- package/dist/src/ipc/control.js +70 -0
- package/dist/src/ipc/control.js.map +1 -0
- package/dist/src/ipc/ghreadshim.js +77 -0
- package/dist/src/ipc/ghreadshim.js.map +1 -0
- package/dist/src/ipc/launcher.js +65 -0
- package/dist/src/ipc/launcher.js.map +1 -0
- package/dist/src/ipc/permits.js +293 -0
- package/dist/src/ipc/permits.js.map +1 -0
- package/dist/src/ipc/postshim.js +137 -0
- package/dist/src/ipc/postshim.js.map +1 -0
- package/dist/src/ipc/protocol.js +239 -0
- package/dist/src/ipc/protocol.js.map +1 -0
- package/dist/src/ipc/server.js +312 -0
- package/dist/src/ipc/server.js.map +1 -0
- package/dist/src/ipc/workerspec.js +148 -0
- package/dist/src/ipc/workerspec.js.map +1 -0
- package/dist/src/learner/learner.js +1272 -0
- package/dist/src/learner/learner.js.map +1 -0
- package/dist/src/learner/miner.js +948 -0
- package/dist/src/learner/miner.js.map +1 -0
- package/dist/src/learner/packet.js +216 -0
- package/dist/src/learner/packet.js.map +1 -0
- package/dist/src/learner/receipt.js +135 -0
- package/dist/src/learner/receipt.js.map +1 -0
- package/dist/src/learner/status.js +38 -0
- package/dist/src/learner/status.js.map +1 -0
- package/dist/src/ledgercheck.js +120 -0
- package/dist/src/ledgercheck.js.map +1 -0
- package/dist/src/lessonledger.js +451 -0
- package/dist/src/lessonledger.js.map +1 -0
- package/dist/src/lessonselect.js +639 -0
- package/dist/src/lessonselect.js.map +1 -0
- package/dist/src/lessonshadow.js +540 -0
- package/dist/src/lessonshadow.js.map +1 -0
- package/dist/src/levers.js +302 -0
- package/dist/src/levers.js.map +1 -0
- package/dist/src/live/projection.js +450 -0
- package/dist/src/live/projection.js.map +1 -0
- package/dist/src/live/publish.js +83 -0
- package/dist/src/live/publish.js.map +1 -0
- package/dist/src/live/read.js +60 -0
- package/dist/src/live/read.js.map +1 -0
- package/dist/src/livecli.js +288 -0
- package/dist/src/livecli.js.map +1 -0
- package/dist/src/loginhint.js +42 -0
- package/dist/src/loginhint.js.map +1 -0
- package/dist/src/loginrefresh/atomic.js +66 -0
- package/dist/src/loginrefresh/atomic.js.map +1 -0
- package/dist/src/loginrefresh/lock.js +93 -0
- package/dist/src/loginrefresh/lock.js.map +1 -0
- package/dist/src/loginrefresh/main.js +58 -0
- package/dist/src/loginrefresh/main.js.map +1 -0
- package/dist/src/loginrefresh/pirefresh.js +49 -0
- package/dist/src/loginrefresh/pirefresh.js.map +1 -0
- package/dist/src/loginrefresh/refresher.js +286 -0
- package/dist/src/loginrefresh/refresher.js.map +1 -0
- package/dist/src/loginrefresh/supervisor.js +253 -0
- package/dist/src/loginrefresh/supervisor.js.map +1 -0
- package/dist/src/loginrefresh/types.js +4 -0
- package/dist/src/loginrefresh/types.js.map +1 -0
- package/dist/src/memory/context.js +251 -0
- package/dist/src/memory/context.js.map +1 -0
- package/dist/src/memory/datafence.js +5 -0
- package/dist/src/memory/datafence.js.map +1 -0
- package/dist/src/memory/delivery.js +131 -0
- package/dist/src/memory/delivery.js.map +1 -0
- package/dist/src/memory/eventtags.js +81 -0
- package/dist/src/memory/eventtags.js.map +1 -0
- package/dist/src/memory/health.js +713 -0
- package/dist/src/memory/health.js.map +1 -0
- package/dist/src/memory/import.js +504 -0
- package/dist/src/memory/import.js.map +1 -0
- package/dist/src/memory/layout.js +252 -0
- package/dist/src/memory/layout.js.map +1 -0
- package/dist/src/memory/legacy-file.js +100 -0
- package/dist/src/memory/legacy-file.js.map +1 -0
- package/dist/src/memory/lessons.js +370 -0
- package/dist/src/memory/lessons.js.map +1 -0
- package/dist/src/memory/ovsession.js +449 -0
- package/dist/src/memory/ovsession.js.map +1 -0
- package/dist/src/memory/relayout.js +259 -0
- package/dist/src/memory/relayout.js.map +1 -0
- package/dist/src/memory/roundactivity.js +180 -0
- package/dist/src/memory/roundactivity.js.map +1 -0
- package/dist/src/memory/selection.js +690 -0
- package/dist/src/memory/selection.js.map +1 -0
- package/dist/src/memory/shadowstatus.js +69 -0
- package/dist/src/memory/shadowstatus.js.map +1 -0
- package/dist/src/memory/store.js +83 -0
- package/dist/src/memory/store.js.map +1 -0
- package/dist/src/memory/textidentity.js +8 -0
- package/dist/src/memory/textidentity.js.map +1 -0
- package/dist/src/metrics.js +773 -0
- package/dist/src/metrics.js.map +1 -0
- package/dist/src/missingconfig.js +8 -0
- package/dist/src/missingconfig.js.map +1 -0
- package/dist/src/npmverbs.js +226 -0
- package/dist/src/npmverbs.js.map +1 -0
- package/dist/src/onboard/choices.js +191 -0
- package/dist/src/onboard/choices.js.map +1 -0
- package/dist/src/onboard/engine.js +344 -0
- package/dist/src/onboard/engine.js.map +1 -0
- package/dist/src/onboard/launch.js +83 -0
- package/dist/src/onboard/launch.js.map +1 -0
- package/dist/src/onboard/steps/appslug.js +211 -0
- package/dist/src/onboard/steps/appslug.js.map +1 -0
- package/dist/src/onboard/steps/bringup.js +408 -0
- package/dist/src/onboard/steps/bringup.js.map +1 -0
- package/dist/src/onboard/steps/compose.js +343 -0
- package/dist/src/onboard/steps/compose.js.map +1 -0
- package/dist/src/onboard/steps/configdelivery.js +50 -0
- package/dist/src/onboard/steps/configdelivery.js.map +1 -0
- package/dist/src/onboard/steps/configfill.js +1148 -0
- package/dist/src/onboard/steps/configfill.js.map +1 -0
- package/dist/src/onboard/steps/deploysh.js +80 -0
- package/dist/src/onboard/steps/deploysh.js.map +1 -0
- package/dist/src/onboard/steps/embeddings.js +472 -0
- package/dist/src/onboard/steps/embeddings.js.map +1 -0
- package/dist/src/onboard/steps/escalation.js +571 -0
- package/dist/src/onboard/steps/escalation.js.map +1 -0
- package/dist/src/onboard/steps/githubapp.js +1092 -0
- package/dist/src/onboard/steps/githubapp.js.map +1 -0
- package/dist/src/onboard/steps/golive.js +506 -0
- package/dist/src/onboard/steps/golive.js.map +1 -0
- package/dist/src/onboard/steps/index.js +67 -0
- package/dist/src/onboard/steps/index.js.map +1 -0
- package/dist/src/onboard/steps/ingress.js +762 -0
- package/dist/src/onboard/steps/ingress.js.map +1 -0
- package/dist/src/onboard/steps/inventory.js +420 -0
- package/dist/src/onboard/steps/inventory.js.map +1 -0
- package/dist/src/onboard/steps/llmauth.js +893 -0
- package/dist/src/onboard/steps/llmauth.js.map +1 -0
- package/dist/src/onboard/steps/memory.js +1060 -0
- package/dist/src/onboard/steps/memory.js.map +1 -0
- package/dist/src/onboard/steps/memorykeys.js +43 -0
- package/dist/src/onboard/steps/memorykeys.js.map +1 -0
- package/dist/src/onboard/steps/preflight.js +172 -0
- package/dist/src/onboard/steps/preflight.js.map +1 -0
- package/dist/src/onboard/steps/proof.js +502 -0
- package/dist/src/onboard/steps/proof.js.map +1 -0
- package/dist/src/onboard/steps/ssh.js +300 -0
- package/dist/src/onboard/steps/ssh.js.map +1 -0
- package/dist/src/onboard/steps/topology.js +291 -0
- package/dist/src/onboard/steps/topology.js.map +1 -0
- package/dist/src/onboard/steps/transport.js +511 -0
- package/dist/src/onboard/steps/transport.js.map +1 -0
- package/dist/src/onboard/steps/verifyup.js +362 -0
- package/dist/src/onboard/steps/verifyup.js.map +1 -0
- package/dist/src/onboard/steps/vmdeploy.js +368 -0
- package/dist/src/onboard/steps/vmdeploy.js.map +1 -0
- package/dist/src/onboard/toml.js +53 -0
- package/dist/src/onboard/toml.js.map +1 -0
- package/dist/src/opencli.js +508 -0
- package/dist/src/opencli.js.map +1 -0
- package/dist/src/openpr.js +457 -0
- package/dist/src/openpr.js.map +1 -0
- package/dist/src/openviking/client.js +821 -0
- package/dist/src/openviking/client.js.map +1 -0
- package/dist/src/openviking/context.js +218 -0
- package/dist/src/openviking/context.js.map +1 -0
- package/dist/src/openviking/embedder.js +457 -0
- package/dist/src/openviking/embedder.js.map +1 -0
- package/dist/src/openviking/gapsink.js +38 -0
- package/dist/src/openviking/gapsink.js.map +1 -0
- package/dist/src/openviking/health.js +69 -0
- package/dist/src/openviking/health.js.map +1 -0
- package/dist/src/openviking/index.js +24 -0
- package/dist/src/openviking/index.js.map +1 -0
- package/dist/src/openviking/lessonfind.js +54 -0
- package/dist/src/openviking/lessonfind.js.map +1 -0
- package/dist/src/openviking/probe.js +89 -0
- package/dist/src/openviking/probe.js.map +1 -0
- package/dist/src/openviking/proc.js +95 -0
- package/dist/src/openviking/proc.js.map +1 -0
- package/dist/src/openviking/provisionreport.js +144 -0
- package/dist/src/openviking/provisionreport.js.map +1 -0
- package/dist/src/openviking/reembed.js +317 -0
- package/dist/src/openviking/reembed.js.map +1 -0
- package/dist/src/openviking/relayout.js +153 -0
- package/dist/src/openviking/relayout.js.map +1 -0
- package/dist/src/openviking/sidecar-main.js +39 -0
- package/dist/src/openviking/sidecar-main.js.map +1 -0
- package/dist/src/openviking/sidecar.js +79 -0
- package/dist/src/openviking/sidecar.js.map +1 -0
- package/dist/src/openviking/store.js +1758 -0
- package/dist/src/openviking/store.js.map +1 -0
- package/dist/src/openviking/supervisor.js +422 -0
- package/dist/src/openviking/supervisor.js.map +1 -0
- package/dist/src/openviking/types.js +5 -0
- package/dist/src/openviking/types.js.map +1 -0
- package/dist/src/operator-recovery.js +172 -0
- package/dist/src/operator-recovery.js.map +1 -0
- package/dist/src/operatormessage.js +44 -0
- package/dist/src/operatormessage.js.map +1 -0
- package/dist/src/outcomes.js +1361 -0
- package/dist/src/outcomes.js.map +1 -0
- package/dist/src/piauthcopy.js +5 -0
- package/dist/src/piauthcopy.js.map +1 -0
- package/dist/src/picli.js +45 -0
- package/dist/src/picli.js.map +1 -0
- package/dist/src/picwd.js +25 -0
- package/dist/src/picwd.js.map +1 -0
- package/dist/src/pilogin.js +35 -0
- package/dist/src/pilogin.js.map +1 -0
- package/dist/src/pingpong.js +1028 -0
- package/dist/src/pingpong.js.map +1 -0
- package/dist/src/posting-journal.js +441 -0
- package/dist/src/posting-journal.js.map +1 -0
- package/dist/src/posting-outbox.js +662 -0
- package/dist/src/posting-outbox.js.map +1 -0
- package/dist/src/posting-receipt.js +203 -0
- package/dist/src/posting-receipt.js.map +1 -0
- package/dist/src/posting.js +348 -0
- package/dist/src/posting.js.map +1 -0
- package/dist/src/postops.js +637 -0
- package/dist/src/postops.js.map +1 -0
- package/dist/src/pr-activity.js +11 -0
- package/dist/src/pr-activity.js.map +1 -0
- package/dist/src/pr-author.js +5 -0
- package/dist/src/pr-author.js.map +1 -0
- package/dist/src/pr-conversation.js +355 -0
- package/dist/src/pr-conversation.js.map +1 -0
- package/dist/src/pr-session-lifecycle.js +542 -0
- package/dist/src/pr-session-lifecycle.js.map +1 -0
- package/dist/src/preflight.js +341 -0
- package/dist/src/preflight.js.map +1 -0
- package/dist/src/priorresolve.js +275 -0
- package/dist/src/priorresolve.js.map +1 -0
- package/dist/src/qcrbin.js +180 -0
- package/dist/src/qcrbin.js.map +1 -0
- package/dist/src/recheck.js +1398 -0
- package/dist/src/recheck.js.map +1 -0
- package/dist/src/reconcile.js +820 -0
- package/dist/src/reconcile.js.map +1 -0
- package/dist/src/recordedfindings.js +15 -0
- package/dist/src/recordedfindings.js.map +1 -0
- package/dist/src/regression.js +546 -0
- package/dist/src/regression.js.map +1 -0
- package/dist/src/replay.js +598 -0
- package/dist/src/replay.js.map +1 -0
- package/dist/src/requiredpasses.js +113 -0
- package/dist/src/requiredpasses.js.map +1 -0
- package/dist/src/resumecheck.js +168 -0
- package/dist/src/resumecheck.js.map +1 -0
- package/dist/src/reviewcli.js +671 -0
- package/dist/src/reviewcli.js.map +1 -0
- package/dist/src/reviewcontext.js +22 -0
- package/dist/src/reviewcontext.js.map +1 -0
- package/dist/src/reviewdetach.js +574 -0
- package/dist/src/reviewdetach.js.map +1 -0
- package/dist/src/reviewhistory.js +284 -0
- package/dist/src/reviewhistory.js.map +1 -0
- package/dist/src/reviewhome.js +26 -0
- package/dist/src/reviewhome.js.map +1 -0
- package/dist/src/reviewmemory.js +110 -0
- package/dist/src/reviewmemory.js.map +1 -0
- package/dist/src/reviewrendercli.js +104 -0
- package/dist/src/reviewrendercli.js.map +1 -0
- package/dist/src/round-work.js +20 -0
- package/dist/src/round-work.js.map +1 -0
- package/dist/src/runhost.js +72 -0
- package/dist/src/runhost.js.map +1 -0
- package/dist/src/scanauth.js +25 -0
- package/dist/src/scanauth.js.map +1 -0
- package/dist/src/scanbox.js +846 -0
- package/dist/src/scanbox.js.map +1 -0
- package/dist/src/scancli.js +1074 -0
- package/dist/src/scancli.js.map +1 -0
- package/dist/src/scandriverlog.js +30 -0
- package/dist/src/scandriverlog.js.map +1 -0
- package/dist/src/session-bridge.js +75 -0
- package/dist/src/session-bridge.js.map +1 -0
- package/dist/src/session-command-payload.js +29 -0
- package/dist/src/session-command-payload.js.map +1 -0
- package/dist/src/session-command-supervisor.js +939 -0
- package/dist/src/session-command-supervisor.js.map +1 -0
- package/dist/src/sessionjsonl.js +85 -0
- package/dist/src/sessionjsonl.js.map +1 -0
- package/dist/src/sessions.js +541 -0
- package/dist/src/sessions.js.map +1 -0
- package/dist/src/setup/adapters.js +330 -0
- package/dist/src/setup/adapters.js.map +1 -0
- package/dist/src/setup/baselines.js +64 -0
- package/dist/src/setup/baselines.js.map +1 -0
- package/dist/src/setup/caserunner.js +554 -0
- package/dist/src/setup/caserunner.js.map +1 -0
- package/dist/src/setup/configcommit.js +358 -0
- package/dist/src/setup/configcommit.js.map +1 -0
- package/dist/src/setup/engine.js +672 -0
- package/dist/src/setup/engine.js.map +1 -0
- package/dist/src/setup/facts.js +593 -0
- package/dist/src/setup/facts.js.map +1 -0
- package/dist/src/setup/findings.js +948 -0
- package/dist/src/setup/findings.js.map +1 -0
- package/dist/src/setup/history.js +338 -0
- package/dist/src/setup/history.js.map +1 -0
- package/dist/src/setup/interview.js +185 -0
- package/dist/src/setup/interview.js.map +1 -0
- package/dist/src/setup/ledger.js +207 -0
- package/dist/src/setup/ledger.js.map +1 -0
- package/dist/src/setup/pins.js +43 -0
- package/dist/src/setup/pins.js.map +1 -0
- package/dist/src/setup/portrait.js +432 -0
- package/dist/src/setup/portrait.js.map +1 -0
- package/dist/src/setup/presentation.js +9 -0
- package/dist/src/setup/presentation.js.map +1 -0
- package/dist/src/setup/profile.js +417 -0
- package/dist/src/setup/profile.js.map +1 -0
- package/dist/src/setup/replay.js +240 -0
- package/dist/src/setup/replay.js.map +1 -0
- package/dist/src/setup/replaybuild.js +311 -0
- package/dist/src/setup/replaybuild.js.map +1 -0
- package/dist/src/setup/replayrun.js +806 -0
- package/dist/src/setup/replayrun.js.map +1 -0
- package/dist/src/setup/replaysource.js +169 -0
- package/dist/src/setup/replaysource.js.map +1 -0
- package/dist/src/setup/retune.js +333 -0
- package/dist/src/setup/retune.js.map +1 -0
- package/dist/src/setup/retunelog.js +51 -0
- package/dist/src/setup/retunelog.js.map +1 -0
- package/dist/src/setup/scan.js +725 -0
- package/dist/src/setup/scan.js.map +1 -0
- package/dist/src/setup/scanbuild.js +133 -0
- package/dist/src/setup/scanbuild.js.map +1 -0
- package/dist/src/setup/scanfacts.js +96 -0
- package/dist/src/setup/scanfacts.js.map +1 -0
- package/dist/src/setup/scanlease.js +251 -0
- package/dist/src/setup/scanlease.js.map +1 -0
- package/dist/src/setup/scanreport.js +289 -0
- package/dist/src/setup/scanreport.js.map +1 -0
- package/dist/src/setup/scanrun.js +1733 -0
- package/dist/src/setup/scanrun.js.map +1 -0
- package/dist/src/setup/scantree.js +257 -0
- package/dist/src/setup/scantree.js.map +1 -0
- package/dist/src/setup/stage2.js +617 -0
- package/dist/src/setup/stage2.js.map +1 -0
- package/dist/src/setup/stage2request.js +259 -0
- package/dist/src/setup/stage2request.js.map +1 -0
- package/dist/src/setup/survey.js +307 -0
- package/dist/src/setup/survey.js.map +1 -0
- package/dist/src/setup/surveyrun.js +549 -0
- package/dist/src/setup/surveyrun.js.map +1 -0
- package/dist/src/setup/textsniff.js +89 -0
- package/dist/src/setup/textsniff.js.map +1 -0
- package/dist/src/setup/trackersink.js +395 -0
- package/dist/src/setup/trackersink.js.map +1 -0
- package/dist/src/setup/triage.js +636 -0
- package/dist/src/setup/triage.js.map +1 -0
- package/dist/src/setup/tuning.js +585 -0
- package/dist/src/setup/tuning.js.map +1 -0
- package/dist/src/setup/unitcut.js +437 -0
- package/dist/src/setup/unitcut.js.map +1 -0
- package/dist/src/singleflight.js +72 -0
- package/dist/src/singleflight.js.map +1 -0
- package/dist/src/slack/announce.js +725 -0
- package/dist/src/slack/announce.js.map +1 -0
- package/dist/src/slack/api.js +227 -0
- package/dist/src/slack/api.js.map +1 -0
- package/dist/src/slack/messages.js +158 -0
- package/dist/src/slack/messages.js.map +1 -0
- package/dist/src/slack/origin.js +550 -0
- package/dist/src/slack/origin.js.map +1 -0
- package/dist/src/slack/policy.js +225 -0
- package/dist/src/slack/policy.js.map +1 -0
- package/dist/src/slack/reply.js +153 -0
- package/dist/src/slack/reply.js.map +1 -0
- package/dist/src/slack/router.js +189 -0
- package/dist/src/slack/router.js.map +1 -0
- package/dist/src/slack/socket.js +323 -0
- package/dist/src/slack/socket.js.map +1 -0
- package/dist/src/slack/types.js +11 -0
- package/dist/src/slack/types.js.map +1 -0
- package/dist/src/sqlitehint.js +30 -0
- package/dist/src/sqlitehint.js.map +1 -0
- package/dist/src/ssh-observation.js +25 -0
- package/dist/src/ssh-observation.js.map +1 -0
- package/dist/src/state.js +5869 -0
- package/dist/src/state.js.map +1 -0
- package/dist/src/statemachine.js +220 -0
- package/dist/src/statemachine.js.map +1 -0
- package/dist/src/stubs.js +52 -0
- package/dist/src/stubs.js.map +1 -0
- package/dist/src/takeover.js +506 -0
- package/dist/src/takeover.js.map +1 -0
- package/dist/src/takeoverpi.js +249 -0
- package/dist/src/takeoverpi.js.map +1 -0
- package/dist/src/terminal-failure.js +26 -0
- package/dist/src/terminal-failure.js.map +1 -0
- package/dist/src/thread-resolution-refusal.js +4 -0
- package/dist/src/thread-resolution-refusal.js.map +1 -0
- package/dist/src/tmux.js +126 -0
- package/dist/src/tmux.js.map +1 -0
- package/dist/src/trackerid.js +43 -0
- package/dist/src/trackerid.js.map +1 -0
- package/dist/src/transcriptindex.js +512 -0
- package/dist/src/transcriptindex.js.map +1 -0
- package/dist/src/tui/actions.js +404 -0
- package/dist/src/tui/actions.js.map +1 -0
- package/dist/src/tui/alerts.js +523 -0
- package/dist/src/tui/alerts.js.map +1 -0
- package/dist/src/tui/app.js +1835 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/archiveops.js +164 -0
- package/dist/src/tui/archiveops.js.map +1 -0
- package/dist/src/tui/autofile.js +191 -0
- package/dist/src/tui/autofile.js.map +1 -0
- package/dist/src/tui/board.js +1143 -0
- package/dist/src/tui/board.js.map +1 -0
- package/dist/src/tui/candidates.js +699 -0
- package/dist/src/tui/candidates.js.map +1 -0
- package/dist/src/tui/cellwidth.js +151 -0
- package/dist/src/tui/cellwidth.js.map +1 -0
- package/dist/src/tui/changelog-store.js +404 -0
- package/dist/src/tui/changelog-store.js.map +1 -0
- package/dist/src/tui/chord.js +26 -0
- package/dist/src/tui/chord.js.map +1 -0
- package/dist/src/tui/clipboard.js +81 -0
- package/dist/src/tui/clipboard.js.map +1 -0
- package/dist/src/tui/cmdbar.js +253 -0
- package/dist/src/tui/cmdbar.js.map +1 -0
- package/dist/src/tui/companion.js +1275 -0
- package/dist/src/tui/companion.js.map +1 -0
- package/dist/src/tui/companionplan.js +200 -0
- package/dist/src/tui/companionplan.js.map +1 -0
- package/dist/src/tui/companiontab.js +61 -0
- package/dist/src/tui/companiontab.js.map +1 -0
- package/dist/src/tui/confighome.js +105 -0
- package/dist/src/tui/confighome.js.map +1 -0
- package/dist/src/tui/connect.js +44 -0
- package/dist/src/tui/connect.js.map +1 -0
- package/dist/src/tui/deploy-ceremony.js +75 -0
- package/dist/src/tui/deploy-ceremony.js.map +1 -0
- package/dist/src/tui/deploy-drain.js +93 -0
- package/dist/src/tui/deploy-drain.js.map +1 -0
- package/dist/src/tui/deploy-process.js +234 -0
- package/dist/src/tui/deploy-process.js.map +1 -0
- package/dist/src/tui/deploytab.js +1263 -0
- package/dist/src/tui/deploytab.js.map +1 -0
- package/dist/src/tui/design.js +111 -0
- package/dist/src/tui/design.js.map +1 -0
- package/dist/src/tui/digesttab.js +148 -0
- package/dist/src/tui/digesttab.js.map +1 -0
- package/dist/src/tui/emptystate.js +32 -0
- package/dist/src/tui/emptystate.js.map +1 -0
- package/dist/src/tui/evidence.js +790 -0
- package/dist/src/tui/evidence.js.map +1 -0
- package/dist/src/tui/feed.js +415 -0
- package/dist/src/tui/feed.js.map +1 -0
- package/dist/src/tui/feedbacktab.js +907 -0
- package/dist/src/tui/feedbacktab.js.map +1 -0
- package/dist/src/tui/filters.js +72 -0
- package/dist/src/tui/filters.js.map +1 -0
- package/dist/src/tui/ghread.js +272 -0
- package/dist/src/tui/ghread.js.map +1 -0
- package/dist/src/tui/historypull.js +61 -0
- package/dist/src/tui/historypull.js.map +1 -0
- package/dist/src/tui/inboxpull.js +197 -0
- package/dist/src/tui/inboxpull.js.map +1 -0
- package/dist/src/tui/index.js +1425 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/issuesink.js +206 -0
- package/dist/src/tui/issuesink.js.map +1 -0
- package/dist/src/tui/jsonfile.js +32 -0
- package/dist/src/tui/jsonfile.js.map +1 -0
- package/dist/src/tui/keys.js +97 -0
- package/dist/src/tui/keys.js.map +1 -0
- package/dist/src/tui/layout.js +70 -0
- package/dist/src/tui/layout.js.map +1 -0
- package/dist/src/tui/learning.js +469 -0
- package/dist/src/tui/learning.js.map +1 -0
- package/dist/src/tui/lessonswitch.js +103 -0
- package/dist/src/tui/lessonswitch.js.map +1 -0
- package/dist/src/tui/livecontrol.js +167 -0
- package/dist/src/tui/livecontrol.js.map +1 -0
- package/dist/src/tui/memforward.js +310 -0
- package/dist/src/tui/memforward.js.map +1 -0
- package/dist/src/tui/memincident.js +287 -0
- package/dist/src/tui/memincident.js.map +1 -0
- package/dist/src/tui/memory.js +485 -0
- package/dist/src/tui/memory.js.map +1 -0
- package/dist/src/tui/memtab.js +513 -0
- package/dist/src/tui/memtab.js.map +1 -0
- package/dist/src/tui/metricstab.js +979 -0
- package/dist/src/tui/metricstab.js.map +1 -0
- package/dist/src/tui/model.js +104 -0
- package/dist/src/tui/model.js.map +1 -0
- package/dist/src/tui/mouse.js +83 -0
- package/dist/src/tui/mouse.js.map +1 -0
- package/dist/src/tui/msg.js +196 -0
- package/dist/src/tui/msg.js.map +1 -0
- package/dist/src/tui/nativecompanion.js +321 -0
- package/dist/src/tui/nativecompanion.js.map +1 -0
- package/dist/src/tui/openurl.js +17 -0
- package/dist/src/tui/openurl.js.map +1 -0
- package/dist/src/tui/paint.js +501 -0
- package/dist/src/tui/paint.js.map +1 -0
- package/dist/src/tui/panes.js +74 -0
- package/dist/src/tui/panes.js.map +1 -0
- package/dist/src/tui/pipane.js +166 -0
- package/dist/src/tui/pipane.js.map +1 -0
- package/dist/src/tui/poll-hooks.js +11 -0
- package/dist/src/tui/poll-hooks.js.map +1 -0
- package/dist/src/tui/poll.js +113 -0
- package/dist/src/tui/poll.js.map +1 -0
- package/dist/src/tui/proposals.js +715 -0
- package/dist/src/tui/proposals.js.map +1 -0
- package/dist/src/tui/prpause.js +132 -0
- package/dist/src/tui/prpause.js.map +1 -0
- package/dist/src/tui/reload.js +351 -0
- package/dist/src/tui/reload.js.map +1 -0
- package/dist/src/tui/remote.js +312 -0
- package/dist/src/tui/remote.js.map +1 -0
- package/dist/src/tui/rollover.js +767 -0
- package/dist/src/tui/rollover.js.map +1 -0
- package/dist/src/tui/scantab.js +1053 -0
- package/dist/src/tui/scantab.js.map +1 -0
- package/dist/src/tui/setupentry.js +81 -0
- package/dist/src/tui/setupentry.js.map +1 -0
- package/dist/src/tui/sidebar.js +602 -0
- package/dist/src/tui/sidebar.js.map +1 -0
- package/dist/src/tui/sshtriage.js +393 -0
- package/dist/src/tui/sshtriage.js.map +1 -0
- package/dist/src/tui/startup.js +172 -0
- package/dist/src/tui/startup.js.map +1 -0
- package/dist/src/tui/tabs.js +41 -0
- package/dist/src/tui/tabs.js.map +1 -0
- package/dist/src/tui/termmirror.js +217 -0
- package/dist/src/tui/termmirror.js.map +1 -0
- package/dist/src/tui/theme.js +95 -0
- package/dist/src/tui/theme.js.map +1 -0
- package/dist/src/tui/ticketstab.js +224 -0
- package/dist/src/tui/ticketstab.js.map +1 -0
- package/dist/src/tui/tmuxsocket.js +101 -0
- package/dist/src/tui/tmuxsocket.js.map +1 -0
- package/dist/src/tui/trackertickets.js +77 -0
- package/dist/src/tui/trackertickets.js.map +1 -0
- package/dist/src/tui/unwedge.js +245 -0
- package/dist/src/tui/unwedge.js.map +1 -0
- package/dist/src/tui/viewer.js +479 -0
- package/dist/src/tui/viewer.js.map +1 -0
- package/dist/src/tui/viewerinput.js +125 -0
- package/dist/src/tui/viewerinput.js.map +1 -0
- package/dist/src/updatenotice.js +143 -0
- package/dist/src/updatenotice.js.map +1 -0
- package/dist/src/usage.js +1007 -0
- package/dist/src/usage.js.map +1 -0
- package/dist/src/verdicts.js +3848 -0
- package/dist/src/verdicts.js.map +1 -0
- package/dist/src/version.js +58 -0
- package/dist/src/version.js.map +1 -0
- package/dist/src/wakes.js +411 -0
- package/dist/src/wakes.js.map +1 -0
- package/dist/src/webhook.js +725 -0
- package/dist/src/webhook.js.map +1 -0
- package/dist/src/webhookheal.js +238 -0
- package/dist/src/webhookheal.js.map +1 -0
- package/dist/src/wire.js +1801 -0
- package/dist/src/wire.js.map +1 -0
- package/dist/src/worker-session-host.js +531 -0
- package/dist/src/worker-session-host.js.map +1 -0
- package/dist/src/workerbreaker.js +112 -0
- package/dist/src/workerbreaker.js.map +1 -0
- package/dist/src/workercontrol.js +49 -0
- package/dist/src/workercontrol.js.map +1 -0
- package/dist/src/workerlease.js +351 -0
- package/dist/src/workerlease.js.map +1 -0
- package/dist/src/workerliveness.js +84 -0
- package/dist/src/workerliveness.js.map +1 -0
- package/dist/src/workerlog.js +65 -0
- package/dist/src/workerlog.js.map +1 -0
- package/dist/src/workerruntime.js +10 -0
- package/dist/src/workerruntime.js.map +1 -0
- package/dist/src/workersupervisor.js +1206 -0
- package/dist/src/workersupervisor.js.map +1 -0
- package/dist/src/workerusage.js +23 -0
- package/dist/src/workerusage.js.map +1 -0
- package/dist/src/workerworld.js +332 -0
- package/dist/src/workerworld.js.map +1 -0
- package/dist/src/worktrees.js +984 -0
- package/dist/src/worktrees.js.map +1 -0
- package/docker/Dockerfile +284 -0
- package/docker/Dockerfile.dockerignore +35 -0
- package/docker/README.md +221 -0
- package/docker/companion/Dockerfile +139 -0
- package/docker/companion/agents/evidence.md +34 -0
- package/docker/companion/agents/explore.md +26 -0
- package/docker/companion/agents/pass-survey.md +49 -0
- package/docker/companion/agents/study.md +26 -0
- package/docker/companion/entrypoint.sh +343 -0
- package/docker/companion/memory-health.mjs +269 -0
- package/docker/entrypoint.sh +782 -0
- package/docker/memory/Dockerfile +191 -0
- package/docker/memory/Dockerfile.dockerignore +20 -0
- package/docker/memory/README.md +60 -0
- package/docker/memory/entrypoint.sh +163 -0
- package/docker/setid/qcr-setid.c +109 -0
- package/docker/tunnel/Dockerfile.cloudflared +51 -0
- package/docker/tunnel/Dockerfile.ngrok +40 -0
- package/docker/tunnel/sidecar.mjs +411 -0
- package/docker/vm/tmux.conf +26 -0
- package/docker-compose.yml +348 -0
- package/extensions/cli/bash-guard-ambient.ts +71 -0
- package/extensions/cli/bash-guard.ts +12 -0
- package/extensions/cli/companion-guard.ts +8 -0
- package/extensions/cli/debug-round.ts +9 -0
- package/extensions/cli/inject-bridge.ts +8 -0
- package/extensions/cli/ledger-pin.ts +13 -0
- package/extensions/cli/lens.ts +22 -0
- package/extensions/cli/muted-theme.ts +9 -0
- package/extensions/cli/onboarding.ts +8 -0
- package/extensions/cli/setup.ts +8 -0
- package/extensions/cli/tui-view.ts +8 -0
- package/extensions/companion-guard.ts +411 -0
- package/extensions/debug-round.ts +281 -0
- package/extensions/inject-bridge.ts +630 -0
- package/extensions/inline-bash.ts +102 -0
- package/extensions/muted-theme.json +68 -0
- package/extensions/muted-theme.ts +23 -0
- package/extensions/onboarding.ts +233 -0
- package/extensions/setup-replay.ts +336 -0
- package/extensions/setup-scan.ts +1236 -0
- package/extensions/setup-triage.ts +190 -0
- package/extensions/setup.ts +1428 -0
- package/extensions/tui-view.ts +489 -0
- package/extensions/vendor/openviking-pi/LICENSE +201 -0
- package/extensions/vendor/openviking-pi/NOTICE +68 -0
- package/extensions/vendor/openviking-pi/README.md +550 -0
- package/extensions/vendor/openviking-pi/client.ts +588 -0
- package/extensions/vendor/openviking-pi/config.json +28 -0
- package/extensions/vendor/openviking-pi/config.ts +271 -0
- package/extensions/vendor/openviking-pi/index.ts +523 -0
- package/extensions/vendor/openviking-pi/lib/capture-adapter.d.mts +10 -0
- package/extensions/vendor/openviking-pi/lib/capture-adapter.mjs +88 -0
- package/extensions/vendor/openviking-pi/lib/takeover-core.d.mts +80 -0
- package/extensions/vendor/openviking-pi/lib/takeover-core.mjs +406 -0
- package/extensions/vendor/openviking-pi/lib/uri-guard-adapter.d.mts +1 -0
- package/extensions/vendor/openviking-pi/lib/uri-guard-adapter.mjs +42 -0
- package/extensions/vendor/openviking-pi/patches/0000-vendoring-and-build-conformance.patch +726 -0
- package/extensions/vendor/openviking-pi/patches/0001-remove-session-before-compact-handler.patch +101 -0
- package/extensions/vendor/openviking-pi/patches/0002-no-ambient-work-in-subagent-leaves.patch +202 -0
- package/extensions/vendor/openviking-pi/patches/0003-never-auto-create-openviking-sessions.patch +120 -0
- package/extensions/vendor/openviking-pi/patches/0004-viking-write-durable-batch-write.patch +521 -0
- package/extensions/vendor/openviking-pi/patches/0005-second-memory-namespace.patch +786 -0
- package/extensions/vendor/openviking-pi/patches/0006-writes-that-stick-and-honest-errors.patch +996 -0
- package/extensions/vendor/openviking-pi/patches/0007-bounded-recall-no-commit.patch +794 -0
- package/extensions/vendor/openviking-pi/patches/0008-pr-derived-recall.patch +379 -0
- package/extensions/vendor/openviking-pi/patches/0009-pr-session-tools-in-round-areas.patch +375 -0
- package/extensions/vendor/openviking-pi/patches/0010-typed-lessons.patch +448 -0
- package/extensions/vendor/openviking-pi/patches/0011-review-session-memory-boundary.patch +382 -0
- package/extensions/vendor/openviking-pi/patches/0012-typecheck-against-the-real-pi.patch +129 -0
- package/extensions/vendor/openviking-pi/patches/0013-createopenviking-factory.patch +1168 -0
- package/extensions/vendor/openviking-pi/qcr-hint.ts +313 -0
- package/extensions/vendor/openviking-pi/qcr-honest.ts +183 -0
- package/extensions/vendor/openviking-pi/qcr-hooks.ts +87 -0
- package/extensions/vendor/openviking-pi/qcr-leaf.ts +78 -0
- package/extensions/vendor/openviking-pi/qcr-lesson.ts +231 -0
- package/extensions/vendor/openviking-pi/qcr-namespaces.ts +198 -0
- package/extensions/vendor/openviking-pi/qcr-recall.ts +288 -0
- package/extensions/vendor/openviking-pi/qcr-shim.ts +142 -0
- package/extensions/vendor/openviking-pi/qcr-write.ts +427 -0
- package/extensions/vendor/openviking-pi/recall.ts +149 -0
- package/extensions/vendor/openviking-pi/shared/capture-utils.d.mts +9 -0
- package/extensions/vendor/openviking-pi/shared/capture-utils.mjs +515 -0
- package/extensions/vendor/openviking-pi/shared/credentials.d.mts +14 -0
- package/extensions/vendor/openviking-pi/shared/credentials.mjs +228 -0
- package/extensions/vendor/openviking-pi/shared/pending-queue.d.mts +19 -0
- package/extensions/vendor/openviking-pi/shared/pending-queue.mjs +458 -0
- package/extensions/vendor/openviking-pi/shared/profile-inject.d.mts +17 -0
- package/extensions/vendor/openviking-pi/shared/profile-inject.mjs +294 -0
- package/extensions/vendor/openviking-pi/shared/recall-compress-core.mjs +195 -0
- package/extensions/vendor/openviking-pi/shared/recall-core.d.mts +13 -0
- package/extensions/vendor/openviking-pi/shared/recall-core.mjs +609 -0
- package/extensions/vendor/openviking-pi/shared/retryable.mjs +9 -0
- package/extensions/vendor/openviking-pi/shared/session-model.d.mts +3 -0
- package/extensions/vendor/openviking-pi/shared/session-model.mjs +57 -0
- package/extensions/vendor/openviking-pi/shared/uri-guard.mjs +56 -0
- package/extensions/vendor/openviking-pi/shared/workspace-peer.d.mts +5 -0
- package/extensions/vendor/openviking-pi/shared/workspace-peer.mjs +16 -0
- package/extensions/vendor/openviking-pi/sync.ts +163 -0
- package/extensions/vendor/openviking-pi/takeover.ts +36 -0
- package/extensions/vendor/openviking-pi/tools.ts +479 -0
- package/extensions/vendor/openviking-pi/upstream.json +48 -0
- package/package.json +138 -4
- package/profiles/default/README.md +21 -0
- package/profiles/default/addenda/.gitkeep +0 -0
- package/profiles/default/profile.toml +17 -0
- package/profiles/example-django/README.md +21 -0
- package/profiles/example-django/addenda/10-migration-discipline.md +13 -0
- package/profiles/example-django/addenda/20-new-column-nullability.md +12 -0
- package/profiles/example-django/addenda/30-test-doctrine.md +12 -0
- package/profiles/example-django/addenda/40-orm-usage.md +19 -0
- package/profiles/example-django/addenda/50-declared-shape.md +10 -0
- package/profiles/example-django/addenda/60-config-placement.md +14 -0
- package/profiles/example-django/heuristics.toml +24 -0
- package/profiles/example-django/profile.toml +9 -0
- package/profiles/fast/README.md +24 -0
- package/profiles/fast/profile.toml +59 -0
- package/profiles/minimal/README.md +17 -0
- package/profiles/minimal/addenda/.gitkeep +0 -0
- package/profiles/minimal/profile.toml +8 -0
- package/profiles/snappy/README.md +24 -0
- package/profiles/snappy/addenda/10-race-as-question.md +6 -0
- package/profiles/snappy/profile.toml +46 -0
- package/prompts/companion-day-open.md +46 -0
- package/prompts/companion-first-run.md +104 -0
- package/prompts/companion.md +821 -0
- package/prompts/conversation-system.md +117 -0
- package/prompts/eod-sweep.md +120 -0
- package/prompts/onboarding.md +74 -0
- package/prompts/pass-common.md +52 -0
- package/prompts/pass-quality-common.md +22 -0
- package/prompts/round-first.md +874 -0
- package/prompts/round-follow-up.md +991 -0
- package/prompts/round-re-review.md +889 -0
- package/prompts/round-recheck.md +196 -0
- package/prompts/round-staleness.md +856 -0
- package/schemas/review-result.v1.json +391 -0
- package/schemas/scan-result.v1.json +421 -0
- package/schemas/version.v1.json +57 -0
- package/scripts/approve-pr.sh +16 -0
- package/scripts/build-stamp.mjs +67 -0
- package/scripts/commit-verdict.sh +155 -0
- package/scripts/companion-e2e.sh +250 -0
- package/scripts/companion-memory-forward.mjs +1966 -0
- package/scripts/config-fingerprint.sh +28 -0
- package/scripts/deploy-manifest.mjs +141 -0
- package/scripts/deploy.sh +1435 -0
- package/scripts/directory-lock.mjs +193 -0
- package/scripts/heartbeat-fresh.mjs +54 -0
- package/scripts/install-locator.sh +328 -0
- package/scripts/install-wrapper.sh +76 -0
- package/scripts/memory-search-check.mjs +98 -0
- package/scripts/mint-token.sh +212 -0
- package/scripts/openviking-embedder.py +392 -0
- package/scripts/openviking-ov-conf.mjs +161 -0
- package/scripts/openviking-provision.mjs +1122 -0
- package/scripts/openviking-reembed.mjs +1154 -0
- package/scripts/post-review.sh +16 -0
- package/scripts/pr-checks.sh +256 -0
- package/scripts/pr-context.py +174 -0
- package/scripts/pr-context.sh +63 -0
- package/scripts/pr-self.sh +144 -0
- package/scripts/pr-threads.sh +145 -0
- package/scripts/qcr +15 -0
- package/scripts/qcr-host.sh +769 -0
- package/scripts/render-review.sh +24 -0
- package/scripts/reply-thread.sh +16 -0
- package/scripts/required-passes.py +112 -0
- package/scripts/smoke-companion.sh +211 -0
- package/scripts/tui-deploy-runner.mjs +61 -0
- package/scripts/verify-dist.mjs +201 -0
- package/scripts/vm-ghcr-login.sh +188 -0
- package/seeds/agents/pass-baseline.md +61 -0
- package/seeds/agents/pass-contracts.md +30 -0
- package/seeds/agents/pass-data-safety.md +54 -0
- package/seeds/agents/pass-delivery.md +37 -0
- package/seeds/agents/pass-prod-risk.md +24 -0
- package/seeds/agents/pass-security.md +31 -0
- package/seeds/agents/pass-statelessness.md +27 -0
- package/seeds/agents/pass-ui.md +23 -0
- package/seeds/agents/pass-validate.md +50 -0
- package/seeds/prompts/conversation-system.md +117 -0
- package/seeds/prompts/eod-sweep.md +120 -0
- package/seeds/prompts/pass-common.md +52 -0
- package/skills/companion/adjudicate/SKILL.md +247 -0
- package/skills/companion/evidence/SKILL.md +150 -0
- package/skills/companion/land/SKILL.md +200 -0
- package/skills/companion/replay/SKILL.md +138 -0
- package/skills/companion/setup/SKILL.md +167 -0
- package/skills/companion/survey/SKILL.md +160 -0
- package/skills/selfimprove/README.md +34 -0
- package/skills/selfimprove/SKILL.md +127 -0
- package/skills/selfimprove/agents/openai.yaml +2 -0
- package/skills/selfimprove/commands/selfimprove.md +6 -0
- package/skills/selfimprove/references/fix-loop.md +49 -0
- package/skills/selfimprove/references/ledger.md +20 -0
- package/skills/selfimprove/references/setup.md +40 -0
- package/src/anomalies.ts +566 -0
- package/src/answerworker.ts +251 -0
- package/src/appstamp.ts +65 -0
- package/src/archive/admission.ts +3 -0
- package/src/archive/archivedb.ts +548 -0
- package/src/archive/archiver.ts +1963 -0
- package/src/archive/archivewrite.ts +279 -0
- package/src/archive/bundle.ts +333 -0
- package/src/archive/dbmove.ts +911 -0
- package/src/archive/duplicatecounts.ts +98 -0
- package/src/archive/eligibility.ts +181 -0
- package/src/archive/extract.ts +342 -0
- package/src/archive/fsutil.ts +415 -0
- package/src/archive/gzfile.ts +370 -0
- package/src/archive/kinds.ts +21 -0
- package/src/archive/livecheckpoint.ts +217 -0
- package/src/archive/liveretention.ts +180 -0
- package/src/archive/manifest.ts +519 -0
- package/src/archive/overseer.ts +336 -0
- package/src/archive/piglobal.ts +174 -0
- package/src/archive/plan.ts +612 -0
- package/src/archive/prarchive.ts +984 -0
- package/src/archive/prfiles.ts +406 -0
- package/src/archive/report.ts +252 -0
- package/src/archive/restore.ts +330 -0
- package/src/archive/rows.ts +187 -0
- package/src/archive/seal.ts +630 -0
- package/src/archive/status.ts +719 -0
- package/src/archive/storepass.ts +581 -0
- package/src/backfill.ts +362 -0
- package/src/bench/cost.ts +113 -0
- package/src/bench/exec.ts +90 -0
- package/src/bench/values.ts +13 -0
- package/src/botcontrol.ts +176 -0
- package/src/botworker.ts +953 -0
- package/src/capture.ts +321 -0
- package/src/cases.ts +1789 -0
- package/src/channelfs.ts +26 -0
- package/src/checklist.ts +506 -0
- package/src/ciretry.ts +141 -0
- package/src/cli.ts +2271 -0
- package/src/cliops.ts +384 -0
- package/src/clonedir.ts +15 -0
- package/src/commandeffects.ts +57 -0
- package/src/commands.ts +1678 -0
- package/src/companioninbox.ts +239 -0
- package/src/compare.ts +957 -0
- package/src/config.ts +2050 -0
- package/src/configcheck.ts +133 -0
- package/src/coreext.ts +47 -0
- package/src/daemon.ts +1302 -0
- package/src/debuground.ts +927 -0
- package/src/debugroundpi.ts +262 -0
- package/src/diagnostics.ts +14 -0
- package/src/digest.ts +183 -0
- package/src/dispatch.ts +2250 -0
- package/src/engine/answerguard.ts +27 -0
- package/src/engine/botsdk.ts +336 -0
- package/src/engine/caserunner-sdk.ts +423 -0
- package/src/engine/debugpi.ts +235 -0
- package/src/eod.ts +669 -0
- package/src/eodpinwatch.ts +556 -0
- package/src/escalation.ts +1253 -0
- package/src/eventloop.ts +1045 -0
- package/src/execboundary.ts +633 -0
- package/src/feedback.ts +1162 -0
- package/src/findingscheck.ts +298 -0
- package/src/fsdenied.ts +24 -0
- package/src/ghread.ts +242 -0
- package/src/github.ts +1497 -0
- package/src/homes.ts +175 -0
- package/src/hostroute.ts +53 -0
- package/src/improvements.ts +787 -0
- package/src/install.ts +1103 -0
- package/src/installkind.ts +50 -0
- package/src/ipc/capability.ts +333 -0
- package/src/ipc/client.ts +269 -0
- package/src/ipc/control.ts +90 -0
- package/src/ipc/ghreadshim.ts +94 -0
- package/src/ipc/launcher.ts +65 -0
- package/src/ipc/permits.ts +362 -0
- package/src/ipc/postshim.ts +164 -0
- package/src/ipc/protocol.ts +342 -0
- package/src/ipc/server.ts +371 -0
- package/src/ipc/workerspec.ts +218 -0
- package/src/learner/learner.ts +1655 -0
- package/src/learner/miner.ts +1290 -0
- package/src/learner/packet.ts +340 -0
- package/src/learner/receipt.ts +168 -0
- package/src/learner/status.ts +107 -0
- package/src/ledgercheck.ts +157 -0
- package/src/lessonledger.ts +703 -0
- package/src/lessonselect.ts +888 -0
- package/src/lessonshadow.ts +810 -0
- package/src/levers.ts +393 -0
- package/src/live/projection.ts +491 -0
- package/src/live/publish.ts +92 -0
- package/src/live/read.ts +86 -0
- package/src/livecli.ts +336 -0
- package/src/loginhint.ts +56 -0
- package/src/loginrefresh/atomic.ts +76 -0
- package/src/loginrefresh/lock.ts +104 -0
- package/src/loginrefresh/main.ts +59 -0
- package/src/loginrefresh/pirefresh.ts +57 -0
- package/src/loginrefresh/refresher.ts +326 -0
- package/src/loginrefresh/supervisor.ts +273 -0
- package/src/loginrefresh/types.ts +35 -0
- package/src/memory/context.ts +385 -0
- package/src/memory/datafence.ts +9 -0
- package/src/memory/delivery.ts +171 -0
- package/src/memory/eventtags.ts +80 -0
- package/src/memory/health.ts +953 -0
- package/src/memory/import.ts +664 -0
- package/src/memory/layout.ts +261 -0
- package/src/memory/legacy-file.ts +104 -0
- package/src/memory/lessons.ts +447 -0
- package/src/memory/ovsession.ts +601 -0
- package/src/memory/relayout.ts +335 -0
- package/src/memory/roundactivity.ts +209 -0
- package/src/memory/selection.ts +989 -0
- package/src/memory/shadowstatus.ts +125 -0
- package/src/memory/store.ts +275 -0
- package/src/memory/textidentity.ts +8 -0
- package/src/metrics.ts +1056 -0
- package/src/missingconfig.ts +7 -0
- package/src/npmverbs.ts +264 -0
- package/src/onboard/choices.ts +222 -0
- package/src/onboard/engine.ts +518 -0
- package/src/onboard/launch.ts +115 -0
- package/src/onboard/steps/appslug.ts +265 -0
- package/src/onboard/steps/bringup.ts +482 -0
- package/src/onboard/steps/compose.ts +459 -0
- package/src/onboard/steps/configdelivery.ts +58 -0
- package/src/onboard/steps/configfill.ts +1352 -0
- package/src/onboard/steps/deploysh.ts +105 -0
- package/src/onboard/steps/embeddings.ts +550 -0
- package/src/onboard/steps/escalation.ts +640 -0
- package/src/onboard/steps/githubapp.ts +1414 -0
- package/src/onboard/steps/golive.ts +577 -0
- package/src/onboard/steps/index.ts +71 -0
- package/src/onboard/steps/ingress.ts +907 -0
- package/src/onboard/steps/inventory.ts +526 -0
- package/src/onboard/steps/llmauth.ts +1095 -0
- package/src/onboard/steps/memory.ts +1290 -0
- package/src/onboard/steps/memorykeys.ts +85 -0
- package/src/onboard/steps/preflight.ts +191 -0
- package/src/onboard/steps/proof.ts +624 -0
- package/src/onboard/steps/ssh.ts +377 -0
- package/src/onboard/steps/topology.ts +337 -0
- package/src/onboard/steps/transport.ts +665 -0
- package/src/onboard/steps/verifyup.ts +448 -0
- package/src/onboard/steps/vmdeploy.ts +442 -0
- package/src/onboard/toml.ts +50 -0
- package/src/opencli.ts +591 -0
- package/src/openpr.ts +568 -0
- package/src/openviking/client.ts +1131 -0
- package/src/openviking/context.ts +263 -0
- package/src/openviking/embedder.ts +516 -0
- package/src/openviking/gapsink.ts +63 -0
- package/src/openviking/health.ts +83 -0
- package/src/openviking/index.ts +119 -0
- package/src/openviking/lessonfind.ts +92 -0
- package/src/openviking/probe.ts +129 -0
- package/src/openviking/proc.ts +110 -0
- package/src/openviking/provisionreport.ts +160 -0
- package/src/openviking/reembed.ts +412 -0
- package/src/openviking/relayout.ts +177 -0
- package/src/openviking/sidecar-main.ts +38 -0
- package/src/openviking/sidecar.ts +106 -0
- package/src/openviking/store.ts +2025 -0
- package/src/openviking/supervisor.ts +474 -0
- package/src/openviking/types.ts +174 -0
- package/src/operator-recovery.ts +237 -0
- package/src/operatormessage.ts +52 -0
- package/src/outcomes.ts +1670 -0
- package/src/piauthcopy.ts +12 -0
- package/src/picli.ts +49 -0
- package/src/picwd.ts +25 -0
- package/src/pilogin.ts +37 -0
- package/src/pingpong.ts +1339 -0
- package/src/posting-journal.ts +549 -0
- package/src/posting-outbox.ts +802 -0
- package/src/posting-receipt.ts +324 -0
- package/src/posting.ts +603 -0
- package/src/postops.ts +832 -0
- package/src/pr-activity.ts +20 -0
- package/src/pr-author.ts +6 -0
- package/src/pr-conversation.ts +432 -0
- package/src/pr-session-lifecycle.ts +631 -0
- package/src/preflight.ts +391 -0
- package/src/priorresolve.ts +343 -0
- package/src/qcrbin.ts +186 -0
- package/src/recheck.ts +1775 -0
- package/src/reconcile.ts +1030 -0
- package/src/recordedfindings.ts +27 -0
- package/src/regression.ts +833 -0
- package/src/replay.ts +816 -0
- package/src/requiredpasses.ts +148 -0
- package/src/resumecheck.ts +246 -0
- package/src/reviewcli.ts +787 -0
- package/src/reviewcontext.ts +35 -0
- package/src/reviewdetach.ts +734 -0
- package/src/reviewhistory.ts +427 -0
- package/src/reviewhome.ts +36 -0
- package/src/reviewmemory.ts +133 -0
- package/src/reviewrendercli.ts +139 -0
- package/src/round-work.ts +42 -0
- package/src/runhost.ts +108 -0
- package/src/scanauth.ts +36 -0
- package/src/scanbox.ts +1081 -0
- package/src/scancli.ts +1296 -0
- package/src/scandriverlog.ts +32 -0
- package/src/session-bridge.ts +139 -0
- package/src/session-command-payload.ts +35 -0
- package/src/session-command-supervisor.ts +1142 -0
- package/src/sessionjsonl.ts +88 -0
- package/src/sessions.ts +659 -0
- package/src/setup/adapters.ts +335 -0
- package/src/setup/baselines.ts +110 -0
- package/src/setup/caserunner.ts +611 -0
- package/src/setup/configcommit.ts +443 -0
- package/src/setup/engine.ts +1001 -0
- package/src/setup/facts.ts +627 -0
- package/src/setup/findings.ts +1264 -0
- package/src/setup/history.ts +443 -0
- package/src/setup/interview.ts +243 -0
- package/src/setup/ledger.ts +324 -0
- package/src/setup/pins.ts +66 -0
- package/src/setup/portrait.ts +635 -0
- package/src/setup/presentation.ts +18 -0
- package/src/setup/profile.ts +508 -0
- package/src/setup/replay.ts +370 -0
- package/src/setup/replaybuild.ts +392 -0
- package/src/setup/replayrun.ts +1096 -0
- package/src/setup/replaysource.ts +198 -0
- package/src/setup/retune.ts +415 -0
- package/src/setup/retunelog.ts +95 -0
- package/src/setup/scan.ts +1033 -0
- package/src/setup/scanbuild.ts +168 -0
- package/src/setup/scanfacts.ts +107 -0
- package/src/setup/scanlease.ts +297 -0
- package/src/setup/scanreport.ts +373 -0
- package/src/setup/scanrun.ts +2268 -0
- package/src/setup/scantree.ts +259 -0
- package/src/setup/stage2.ts +926 -0
- package/src/setup/stage2request.ts +347 -0
- package/src/setup/survey.ts +458 -0
- package/src/setup/surveyrun.ts +758 -0
- package/src/setup/textsniff.ts +95 -0
- package/src/setup/trackersink.ts +433 -0
- package/src/setup/triage.ts +768 -0
- package/src/setup/tuning.ts +766 -0
- package/src/setup/unitcut.ts +523 -0
- package/src/singleflight.ts +86 -0
- package/src/slack/announce.ts +911 -0
- package/src/slack/api.ts +303 -0
- package/src/slack/messages.ts +288 -0
- package/src/slack/origin.ts +599 -0
- package/src/slack/policy.ts +354 -0
- package/src/slack/reply.ts +201 -0
- package/src/slack/router.ts +285 -0
- package/src/slack/socket.ts +384 -0
- package/src/slack/types.ts +108 -0
- package/src/sqlitehint.ts +32 -0
- package/src/ssh-observation.ts +30 -0
- package/src/state.ts +8243 -0
- package/src/statemachine.ts +369 -0
- package/src/stubs.ts +68 -0
- package/src/takeover.ts +634 -0
- package/src/takeoverpi.ts +293 -0
- package/src/terminal-failure.ts +41 -0
- package/src/thread-resolution-refusal.ts +2 -0
- package/src/tmux.ts +153 -0
- package/src/trackerid.ts +41 -0
- package/src/transcriptindex.ts +665 -0
- package/src/tui/actions.ts +484 -0
- package/src/tui/alerts.ts +666 -0
- package/src/tui/app.ts +1979 -0
- package/src/tui/archiveops.ts +192 -0
- package/src/tui/autofile.ts +233 -0
- package/src/tui/board.ts +1432 -0
- package/src/tui/candidates.ts +889 -0
- package/src/tui/cellwidth.ts +148 -0
- package/src/tui/changelog-store.ts +503 -0
- package/src/tui/chord.ts +25 -0
- package/src/tui/clipboard.ts +92 -0
- package/src/tui/cmdbar.ts +296 -0
- package/src/tui/companion.ts +1427 -0
- package/src/tui/companionplan.ts +247 -0
- package/src/tui/companiontab.ts +83 -0
- package/src/tui/confighome.ts +155 -0
- package/src/tui/connect.ts +68 -0
- package/src/tui/deploy-ceremony.ts +104 -0
- package/src/tui/deploy-drain.ts +129 -0
- package/src/tui/deploy-process.ts +265 -0
- package/src/tui/deploytab.ts +1523 -0
- package/src/tui/design.ts +125 -0
- package/src/tui/digesttab.ts +214 -0
- package/src/tui/emptystate.ts +39 -0
- package/src/tui/evidence.ts +999 -0
- package/src/tui/feed.ts +604 -0
- package/src/tui/feedbacktab.ts +1077 -0
- package/src/tui/filters.ts +90 -0
- package/src/tui/ghread.ts +321 -0
- package/src/tui/historypull.ts +81 -0
- package/src/tui/inboxpull.ts +236 -0
- package/src/tui/index.ts +1565 -0
- package/src/tui/issuesink.ts +238 -0
- package/src/tui/jsonfile.ts +42 -0
- package/src/tui/keys.ts +109 -0
- package/src/tui/layout.ts +108 -0
- package/src/tui/learning.ts +627 -0
- package/src/tui/lessonswitch.ts +118 -0
- package/src/tui/livecontrol.ts +228 -0
- package/src/tui/memforward.ts +443 -0
- package/src/tui/memincident.ts +363 -0
- package/src/tui/memory.ts +620 -0
- package/src/tui/memtab.ts +606 -0
- package/src/tui/metricstab.ts +1177 -0
- package/src/tui/model.ts +131 -0
- package/src/tui/mouse.ts +98 -0
- package/src/tui/msg.ts +268 -0
- package/src/tui/nativecompanion.ts +417 -0
- package/src/tui/openurl.ts +21 -0
- package/src/tui/paint.ts +511 -0
- package/src/tui/panes.ts +98 -0
- package/src/tui/pipane.ts +219 -0
- package/src/tui/poll-hooks.ts +12 -0
- package/src/tui/poll.ts +147 -0
- package/src/tui/proposals.ts +838 -0
- package/src/tui/prpause.ts +150 -0
- package/src/tui/reload.ts +436 -0
- package/src/tui/remote.ts +413 -0
- package/src/tui/rollover.ts +969 -0
- package/src/tui/scantab.ts +1290 -0
- package/src/tui/setupentry.ts +93 -0
- package/src/tui/sidebar.ts +749 -0
- package/src/tui/sshtriage.ts +510 -0
- package/src/tui/startup.ts +231 -0
- package/src/tui/tabs.ts +45 -0
- package/src/tui/termmirror.ts +224 -0
- package/src/tui/theme.ts +95 -0
- package/src/tui/ticketstab.ts +310 -0
- package/src/tui/tmuxsocket.ts +129 -0
- package/src/tui/trackertickets.ts +84 -0
- package/src/tui/unwedge.ts +286 -0
- package/src/tui/viewer.ts +575 -0
- package/src/tui/viewerinput.ts +173 -0
- package/src/updatenotice.ts +178 -0
- package/src/usage.ts +1154 -0
- package/src/verdicts.ts +4689 -0
- package/src/version.ts +80 -0
- package/src/wakes.ts +476 -0
- package/src/webhook.ts +942 -0
- package/src/webhookheal.ts +276 -0
- package/src/wire.ts +2153 -0
- package/src/worker-session-host.ts +602 -0
- package/src/workerbreaker.ts +156 -0
- package/src/workercontrol.ts +104 -0
- package/src/workerlease.ts +441 -0
- package/src/workerliveness.ts +103 -0
- package/src/workerlog.ts +79 -0
- package/src/workerruntime.ts +30 -0
- package/src/workersupervisor.ts +1538 -0
- package/src/workerusage.ts +42 -0
- package/src/workerworld.ts +427 -0
- package/src/worktrees.ts +1138 -0
- package/tests/fixtures/regression-cases.json +795 -0
- package/tests/fixtures/seed-manifest.json +19 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# EOD sweep — daily injected prompt
|
|
2
|
+
|
|
3
|
+
Run today's end-of-day sweep. Four products, in order. Date: {{date}}.
|
|
4
|
+
|
|
5
|
+
## 1. Learnings → memory
|
|
6
|
+
|
|
7
|
+
**Start from the outcomes packet.** The daemon has already mined today's
|
|
8
|
+
evidence into candidates — the section "Outcomes to curate" below this prompt
|
|
9
|
+
(also `state/eod/{{date}}/outcomes.md`). Every candidate there names its
|
|
10
|
+
class, the lenses it touches, whose words its evidence is (a person's, or the
|
|
11
|
+
review system's own), and the lessons already covering its class. Decide every
|
|
12
|
+
offered candidate; an undecided one comes back tomorrow.
|
|
13
|
+
|
|
14
|
+
Then, for each PR with activity today (rounds, ping-pong, closes — `qcr
|
|
15
|
+
today` lists them), diff **what the bot claimed** against **what actually
|
|
16
|
+
happened**, for anything the packet does not already carry. Read today's own
|
|
17
|
+
memory material alongside it: the entries the PR sessions authored during
|
|
18
|
+
their rounds, and the day's event entries in the **events** area
|
|
19
|
+
(`viking://user/reviewer/memories/events/`, `day={{date}}` — `kind=feedback`,
|
|
20
|
+
`kind=bug`):
|
|
21
|
+
|
|
22
|
+
- Findings the author refuted with an argument the bot conceded to.
|
|
23
|
+
- Threads resolved as wontfix — extract the pattern if one exists.
|
|
24
|
+
- The validator's kill-log — repeated kill reasons are rubric smells.
|
|
25
|
+
- **Findings a human raised that the bot missed** (compare human review
|
|
26
|
+
comments on today's PRs against the ledger's finding list) — highest signal;
|
|
27
|
+
never skip this class.
|
|
28
|
+
|
|
29
|
+
Write each learning as a **typed lesson** in the **experiences** area
|
|
30
|
+
(`viking://user/reviewer/memories/experiences/`) via `viking_write` — the
|
|
31
|
+
durable write tool; it batches, so write today's lessons in one call. Pass the
|
|
32
|
+
lesson's fields as the tool's `lesson` parameter — `kind` (repo-fact |
|
|
33
|
+
look-for | dont-raise | convention), `lens` (the built lens ids it is for),
|
|
34
|
+
`class` (reuse the candidate's class), `paths` and `evidence` — and the
|
|
35
|
+
tool writes the header line; `content` is the one-sentence lesson and its
|
|
36
|
+
evidence PR link(s), nothing more. Cite every candidate a lesson adopts as
|
|
37
|
+
`cand:c<id>` in its evidence. No lesson without evidence. Consolidate
|
|
38
|
+
duplicates; retire lessons >90 days old that never recurred — nothing ages out
|
|
39
|
+
on its own, so date-filter a search and retire deliberately.
|
|
40
|
+
|
|
41
|
+
A learning that is really an **objective fact about the repo** — a convention,
|
|
42
|
+
a migration rule, how a subsystem actually behaves — is a lesson of kind
|
|
43
|
+
`repo-fact` (or `convention`), in the same experiences area. Write it that way
|
|
44
|
+
deliberately and only when it is a fact rather than a judgment; a lesson about
|
|
45
|
+
how to review stays a `look-for` or `dont-raise`.
|
|
46
|
+
|
|
47
|
+
**Close §1 with the curation receipt.** Write ONE command file into
|
|
48
|
+
`commands/` — `eod-curation-receipt`, with `day: "{{date}}"` and one decision
|
|
49
|
+
per group of candidates: `adopted` (with the `lesson` URI you wrote),
|
|
50
|
+
`declined` (with the reason it is not a lesson) or `refused` (with the write's
|
|
51
|
+
error). A missing receipt wakes the operator the next day.
|
|
52
|
+
|
|
53
|
+
<!-- RATIFIED memory-discipline (reseeded 2026-10-07) — do not edit; owner only -->
|
|
54
|
+
Memory discipline (the owner manages memory from the TUI):
|
|
55
|
+
|
|
56
|
+
- **The pinned area is untouchable**: `viking://user/reviewer/memories/
|
|
57
|
+
preferences/pinned/` — an entry is pinned by being placed there. Never
|
|
58
|
+
consolidate, rewrite, retire, or move an entry in it — those are the owner's
|
|
59
|
+
standing instructions, and the daemon prepends them verbatim to every round
|
|
60
|
+
prompt. Curation only ever adds new entries elsewhere; it never replaces one
|
|
61
|
+
of theirs. (A watchdog compares the pinned area before and after this sweep
|
|
62
|
+
and raises an anomaly on any change.)
|
|
63
|
+
- **`#manual` entries in `preferences/` are the owner's own words**: treat
|
|
64
|
+
them as standing instructions; consolidate or retire them only when one is
|
|
65
|
+
superseded by a newer manual entry, and say so in the digest.
|
|
66
|
+
- **Operational defects of the review system itself are `kind=bug` entries in
|
|
67
|
+
the events area**, with `kind=bug area=operations` in the entry's header
|
|
68
|
+
(never only in its body), one entry per distinct defect, evidence-linked.
|
|
69
|
+
The TUI auto-files each as an issue-tracker ticket keyed on the entry — so
|
|
70
|
+
keep one defect to one entry and amend the existing entry rather than
|
|
71
|
+
re-describing the same defect in a new one.
|
|
72
|
+
- **If memory is unreachable, say so in the digest and carry on** — an outage
|
|
73
|
+
costs today's learnings, never the sweep's other three products. Still write
|
|
74
|
+
the receipt, deciding every candidate you could not write as `refused` with
|
|
75
|
+
the error.
|
|
76
|
+
<!-- /RATIFIED memory-discipline -->
|
|
77
|
+
|
|
78
|
+
## 2. Rubric candidates (when justified)
|
|
79
|
+
|
|
80
|
+
If ≥3 related learnings have accumulated for one lens — or one severe miss
|
|
81
|
+
justifies it alone — **flag it as a rubric candidate and author nothing
|
|
82
|
+
else**. You do not draft rubric changes: no proposal directory, no patch, no
|
|
83
|
+
edit to any file under `agents/` or `prompts/`.
|
|
84
|
+
|
|
85
|
+
- Name the candidate in the digest under "Rubric candidates": the lens, the
|
|
86
|
+
one-line problem, the evidence PRs, and the memory entries it rests on.
|
|
87
|
+
- That is the whole product. Changing a rubric is the owner's call, made
|
|
88
|
+
elsewhere; your job is to surface the signal, never to prepare the change.
|
|
89
|
+
|
|
90
|
+
## 3. Improvement PRs / issues (within caps)
|
|
91
|
+
|
|
92
|
+
If today's reviews surfaced repo improvements:
|
|
93
|
+
|
|
94
|
+
<!-- RATIFIED improvement-caps — do not edit; owner only -->
|
|
95
|
+
- **Small** (≤50 changed lines, ≤3 files; docs/comments/tests/lint/dead-code;
|
|
96
|
+
no migrations, no infra, no behavior change without a test; max 1/day,
|
|
97
|
+
3/week): prepare the change in a scratch worktree off latest master, write
|
|
98
|
+
the `file-improvement-pr` command file (branch `bot/improve-<slug>`,
|
|
99
|
+
rationale + origin-PR evidence in the body, label `Bot improvement`). The
|
|
100
|
+
daemon diffstat-validates before pushing.
|
|
101
|
+
- **Bigger or deferred**: `file-issue` command (label `bot-filed`), after a
|
|
102
|
+
title-similarity dedup against open bot-filed issues; max 3/day.
|
|
103
|
+
<!-- /RATIFIED improvement-caps -->
|
|
104
|
+
|
|
105
|
+
## 4. The digest
|
|
106
|
+
|
|
107
|
+
Write `digest/{{date}}.md`:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
# Review sandbox — {{date}}
|
|
111
|
+
## Reviews — per PR: verdict, rounds, blockers found/fixed
|
|
112
|
+
## Awaiting the owner — oldest-first, with age (from daemon's requested-reviewers scan)
|
|
113
|
+
## Stuck/stale — PRs >5 days in awaiting_author; anomalies today
|
|
114
|
+
## Spend — tokens/$ per PR and total; rounds count; validator kill rate
|
|
115
|
+
## Learnings — candidates decided (adopted / declined / refused) and lessons written today (one line each)
|
|
116
|
+
## Filed — improvement PRs, issues, flagged rubric candidates
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Keep it scannable — the status dashboard renders it; a human reads it in 60
|
|
120
|
+
seconds. If today was quiet, say so in three lines; never pad.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Lens passes — shared contract
|
|
2
|
+
|
|
3
|
+
You are a **blank-slate review pass** over exactly one pull request, dispatched
|
|
4
|
+
by that PR's conversation session. Everything you know arrives in your task
|
|
5
|
+
string: the worktree path (the PR checked out at its head), the PR
|
|
6
|
+
number/title/claims digest, your lens's focus files, the SETTLED list, and any
|
|
7
|
+
gate notes (migration gate, staleness). You have no memory of prior rounds and
|
|
8
|
+
must not fetch PR history — the dispatching session owns history and gave you
|
|
9
|
+
what is settled.
|
|
10
|
+
|
|
11
|
+
## Discipline
|
|
12
|
+
|
|
13
|
+
- Work **from the worktree**: read full files, trace callers with grep/glob —
|
|
14
|
+
never judge from the diff alone. The diff tells you where to look; the
|
|
15
|
+
worktree tells you what is true.
|
|
16
|
+
- **Never re-raise a SETTLED point.** If your lens disagrees with a settled
|
|
17
|
+
decision, mark the finding `contests-settled:<thread-id>` and let the
|
|
18
|
+
session judge — do not relitigate inside your findings text.
|
|
19
|
+
- Verify claims mechanically: an author comment, a PR-body assertion, or a
|
|
20
|
+
resolved thread is a claim to check against code, never a fact.
|
|
21
|
+
<!-- RATIFIED RULE-9 passes-post-nothing — do not edit; owner only -->
|
|
22
|
+
- You post **nothing** to GitHub. Your findings block is your entire output.
|
|
23
|
+
<!-- /RATIFIED passes-post-nothing -->
|
|
24
|
+
|
|
25
|
+
## Output — findings block, nothing else
|
|
26
|
+
|
|
27
|
+
Return exactly:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
FINDINGS <lens> PR#<n> @<head-sha>
|
|
31
|
+
- path: <file>
|
|
32
|
+
line: <line> # inside a changed-line run of the diff; omit if unanchorable
|
|
33
|
+
side: RIGHT|LEFT
|
|
34
|
+
severity: P0|P1|P2|P3|nit
|
|
35
|
+
confidence: 0.0-1.0
|
|
36
|
+
reachability: routine|plausible|contrived
|
|
37
|
+
kind: <optional — e.g. injection>
|
|
38
|
+
claim: <one sentence — what is wrong and why it matters>
|
|
39
|
+
detail: <P0–P2: mechanism, failing scenario, invariant a fix restores>
|
|
40
|
+
request: <nit: the concrete change asked for>
|
|
41
|
+
evidence: <file:line refs / traced control flow / assembled string>
|
|
42
|
+
fix: <one sentence, optional>
|
|
43
|
+
NONE # literally, if the lens found nothing
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
<!-- RATIFIED severity-scale — do not edit; owner only -->
|
|
47
|
+
Severity: P0 = certain production breakage/data loss/security hole; P1 = bug
|
|
48
|
+
or contract violation that must not merge; P2 = probable defect needing an
|
|
49
|
+
answer; P3 = worth raising, not blocking; nit = style/convention. Confidence
|
|
50
|
+
is *your* probability the claim is true as stated — be honest; the validator
|
|
51
|
+
kills bluffs and the EOD critic audits misses either way.
|
|
52
|
+
<!-- /RATIFIED severity-scale -->
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adjudicate
|
|
3
|
+
description: Judge one piece of "the review was wrong" feedback — does the complaint survive contact with the code? Use when asked to work the feedback on a PR, settle a disputed finding, or decide whether a complaint about the reviewer is fair, and to attribute it, record it, and land any change it justifies.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Adjudicating feedback about the review
|
|
7
|
+
|
|
8
|
+
This file **is** the doctrine, decided with the owner. If the doctrine
|
|
9
|
+
changes, it changes here.
|
|
10
|
+
|
|
11
|
+
## The stance
|
|
12
|
+
|
|
13
|
+
`agents/pass-validate.md` tells the validator: *"You are the adversary: your
|
|
14
|
+
job is to kill what doesn't survive contact with the code. A
|
|
15
|
+
plausible-but-wrong finding posted to a teammate costs more than a missed
|
|
16
|
+
nit."*
|
|
17
|
+
|
|
18
|
+
**You are that adversary pointed the other way.** The question is not whether
|
|
19
|
+
the author was annoyed, whether the tone was bad, or whether a human said the
|
|
20
|
+
review was wrong. It is: **does this complaint survive contact with the code?**
|
|
21
|
+
|
|
22
|
+
Neither account is trusted on its own — not the complainant's, not the
|
|
23
|
+
review's. Accepting feedback at face value compromises the review's integrity;
|
|
24
|
+
refusing it throws away the only real signal there is.
|
|
25
|
+
|
|
26
|
+
## Step 1 — Pull totality. Three sources, always.
|
|
27
|
+
|
|
28
|
+
An adjudication is not started until you have reached for all three. This is a
|
|
29
|
+
**sourcing requirement, not a threshold** — there is no confidence cutoff and
|
|
30
|
+
no evidence score.
|
|
31
|
+
|
|
32
|
+
1. **The human side** — what the human actually said, in full: the thread, the
|
|
33
|
+
inline replies, the review body, the reaction, whether they merged over the
|
|
34
|
+
finding or dismissed the review. *For now this is only what is on the PR.*
|
|
35
|
+
Asking the human what they meant is deferred to the Slack channel when it
|
|
36
|
+
exists; do not substitute for it by profiling the person from old
|
|
37
|
+
statements elsewhere in the repo.
|
|
38
|
+
2. **The review side** — what the reviewer actually posted and why: the round,
|
|
39
|
+
the lens that raised it, the severity and its reachability, the delivery
|
|
40
|
+
shape (blocker vs question vs nit), the round number, how long the PR had
|
|
41
|
+
been in ping-pong.
|
|
42
|
+
3. **The fact from the code** — re-derive the finding yourself against the
|
|
43
|
+
reviewed source. Not "is the finding plausible" but "is it *true* of this
|
|
44
|
+
code". This is the source that settles most episodes, and the one most
|
|
45
|
+
easily skipped.
|
|
46
|
+
|
|
47
|
+
If a source is genuinely unreachable, say which one and what that costs the
|
|
48
|
+
verdict. Never fill the gap by inference and never present two sources as
|
|
49
|
+
three.
|
|
50
|
+
|
|
51
|
+
## Step 2 — Ask the three questions. Every time.
|
|
52
|
+
|
|
53
|
+
Feedback almost always says *"too much"*, and the useful reading is usually
|
|
54
|
+
adjacent to the stated one. All three are asked on every episode, even when
|
|
55
|
+
the answer is a quick no:
|
|
56
|
+
|
|
57
|
+
a. **Was the finding RIGHT but the DELIVERY wrong?** The most common real
|
|
58
|
+
pattern in the evidence. The migration-renumber class was a *correct*
|
|
59
|
+
finding delivered as a blocker — ~15% of all blockers — and the fix changed
|
|
60
|
+
how it is delivered, never whether it runs.
|
|
61
|
+
b. **Did we MISS something worse?** A PR that drew a complaint is a PR someone
|
|
62
|
+
read hard. This is the false-negative direction nothing else measures, and
|
|
63
|
+
the retro's biggest blind spot. Look while you have the code open.
|
|
64
|
+
c. **Is the complaint about VOLUME rather than merit?** Blocker precision was
|
|
65
|
+
at ceiling (0 disputed of 68) while nits and questions were 85% of output.
|
|
66
|
+
A volume complaint answered by moving the blocker bar cuts the wrong thing.
|
|
67
|
+
|
|
68
|
+
## Step 3 — Attribute. The vocabulary is fully open.
|
|
69
|
+
|
|
70
|
+
*review-defect* (false positive, overzealous, wrong evidence), *author-fault*
|
|
71
|
+
(bad code, a wrong assumption from the start, a PR that degenerated into a nit
|
|
72
|
+
storm and ended in misattributed frustration), *process-defect* (delivery,
|
|
73
|
+
verdict shape, wall-clock cost), *noise* — these are a **starting point, not a
|
|
74
|
+
set**. Name the fault as the episode demands and **invent a class when none
|
|
75
|
+
fits**, with the reason recorded in the same entry.
|
|
76
|
+
|
|
77
|
+
Attribution may land on the review, on the author, on the code, on the
|
|
78
|
+
process, or on **nobody at all**. "Nobody was wrong; this is what a hard PR
|
|
79
|
+
looks like" is a real verdict.
|
|
80
|
+
|
|
81
|
+
**The accepted cost, recorded deliberately:** an open vocabulary means
|
|
82
|
+
verdicts are **not queryable by tag**. Finding cross-episode patterns means
|
|
83
|
+
re-reading prose, not running a query. Fidelity per item was preferred to
|
|
84
|
+
mineability across items — do not "fix" this by quietly collapsing back to a
|
|
85
|
+
fixed set.
|
|
86
|
+
|
|
87
|
+
## Step 4 — Every attribution carries a FALSIFIER. Never a confidence number.
|
|
88
|
+
|
|
89
|
+
Write the **specific observation that would flip this verdict**: the fact
|
|
90
|
+
someone could go and check, that would prove the attribution wrong.
|
|
91
|
+
|
|
92
|
+
> Falsifier: if the base branch had `flush_on_close = True` at the merge base,
|
|
93
|
+
> the finding was correct and this is not a review defect.
|
|
94
|
+
|
|
95
|
+
**Do not attach a confidence number, a percentage, a likelihood, or a hedging
|
|
96
|
+
adjective standing in for one.** `docs/review-merit-assessment.md` §6 found
|
|
97
|
+
self-reported confidence is *unaudited*, and the P2 blocking threshold already
|
|
98
|
+
keys off one — a generous lens silently lowers the merge bar. A second
|
|
99
|
+
self-reported number invites the same failure. A named falsifier is checkable,
|
|
100
|
+
and it tells the next session where to look. If you find yourself wanting to
|
|
101
|
+
write "probably" or "70%", you are describing evidence you have not gone and
|
|
102
|
+
got: go and get it, or state the falsifier instead.
|
|
103
|
+
|
|
104
|
+
## Step 5 — The counter-case is mandatory whenever the verdict CHANGES something.
|
|
105
|
+
|
|
106
|
+
Construct the **strongest case that the author was at fault**, and write it
|
|
107
|
+
down **even when it loses**. Not a token paragraph — the version that would
|
|
108
|
+
persuade someone who had not read your verdict.
|
|
109
|
+
|
|
110
|
+
A verdict of *"the review was right, no change"* needs no counter-case:
|
|
111
|
+
nothing is at risk. Ceremony falls where the blast radius is.
|
|
112
|
+
|
|
113
|
+
## Step 6 — Ambiguity resolves to the owner, never by rule.
|
|
114
|
+
|
|
115
|
+
When the three sources disagree and the code does not settle it, **present the
|
|
116
|
+
conflict and let them decide, in the column**. Do not force a verdict on
|
|
117
|
+
ambiguous evidence, and do not break ties by rule — least of all by
|
|
118
|
+
code-always-wins, which is deaf to complaints about delivery, tone and volume,
|
|
119
|
+
and that is most of what the humans actually said.
|
|
120
|
+
|
|
121
|
+
Say what each source says, say what would settle it, and stop.
|
|
122
|
+
|
|
123
|
+
## Step 7 — The record
|
|
124
|
+
|
|
125
|
+
There are three durable receipts, and they mean different things. The feedback
|
|
126
|
+
inbox derives its state from them; writing the wrong one makes work disappear
|
|
127
|
+
or look undone.
|
|
128
|
+
|
|
129
|
+
### Investigated, but no verdict: needs attention
|
|
130
|
+
|
|
131
|
+
When totality was attempted but a missing source or genuine ambiguity prevents
|
|
132
|
+
an adjudication, write exactly one reviewer-memory `note` for the exact episode:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
#feedback-review #feedback pr=<n> episode=<stable-episode> status=needs-attention reviewed=<date>
|
|
136
|
+
Reason: <what was examined, exactly what is missing or conflicted, and what the owner must decide or supply>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
This is NOT an adjudication and never substitutes for one. It changes the inbox
|
|
140
|
+
from `UNPROCESSED` to `PROCESSED · NEEDS ATTENTION`; a later exact
|
|
141
|
+
`#adjudication` supersedes it.
|
|
142
|
+
|
|
143
|
+
### Reached verdict: settled
|
|
144
|
+
|
|
145
|
+
**Every adjudication gets a structured memory entry** in the **reviewer**
|
|
146
|
+
namespace, written as a `note` (a machine writer's entry, stored verbatim with
|
|
147
|
+
its own tags — never as `add`, which marks an entry as the owner's own words).
|
|
148
|
+
Fixed fields wrapped around free-form attribution and reasoning, in the
|
|
149
|
+
existing `#tag` + `k=v` header shape (`src/memory/eventtags.ts`):
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
#adjudication #feedback pr=<n> episode=f2-flush-on-close attribution=review-defect changed=yes adjudicated=<date>
|
|
153
|
+
Complaint: <the human's own words, or the closest fair paraphrase, one line>
|
|
154
|
+
Attribution: <the class — invent one if none fits, and say why in a clause>
|
|
155
|
+
Falsifier: <the one observation that would flip this verdict>
|
|
156
|
+
Missed-worse: <what a look for the false-negative direction turned up, or `nothing found`>
|
|
157
|
+
Volume-or-merit: <which, in a clause>
|
|
158
|
+
Changed: <the exact surface and commit — or `nothing`>
|
|
159
|
+
Counter-case: <the strongest case the author was at fault; required whenever Changed is not `nothing`>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Header mechanics that matter, because the parser is header-only by design:
|
|
163
|
+
|
|
164
|
+
- The header is the **leading run** of `#tag` tokens followed by the `k=v`
|
|
165
|
+
run; the scan stops at the first token that is neither. Anything after the
|
|
166
|
+
first prose word cannot mint a tag — which is exactly why quoted human text
|
|
167
|
+
in the body is safe to include verbatim. Keep the whole header on line one.
|
|
168
|
+
- `k=v` values carry **no whitespace** (`[a-z][a-z0-9_-]*=<no-spaces>`). That
|
|
169
|
+
is why the falsifier is a prose line and not a tag value: it is a sentence,
|
|
170
|
+
and a sentence does not fit in a value.
|
|
171
|
+
- **`#adjudication` is the one fixed handle.** Because attribution is open
|
|
172
|
+
(Step 3), that tag is the only thing making the set of verdicts findable at
|
|
173
|
+
all. Never drop it, never rename it, never let it drift to a synonym.
|
|
174
|
+
- Never `#pinned`. Pinned entries ride the guaranteed head of every review
|
|
175
|
+
round; an adjudication is evidence, not a standing instruction.
|
|
176
|
+
- One fact per entry, evidence-linked. Never store anything derivable from
|
|
177
|
+
current state — PR lists, queue contents, spend, verdicts on the board.
|
|
178
|
+
|
|
179
|
+
**An adjudication that changes something ALSO gets a tracker ticket**, on the
|
|
180
|
+
review-feedback-loop effort, carrying the counter-case and the diff. The
|
|
181
|
+
memory entry is the durable trace; the ticket is the argument.
|
|
182
|
+
|
|
183
|
+
Writing to reviewer memory is otherwise only done on the owner's explicit ask —
|
|
184
|
+
here, the ask to adjudicate is the ask to record. Say what you wrote. A write
|
|
185
|
+
refused on `expect_hash` means someone else edited that entry: re-read and
|
|
186
|
+
re-decide, never force.
|
|
187
|
+
|
|
188
|
+
### Actually landed and live: acted on
|
|
189
|
+
|
|
190
|
+
An adjudication with `Changed: …` stays in the active inbox while the change is
|
|
191
|
+
only proposed, ticketed, committed locally, or waiting to deploy. Archive it
|
|
192
|
+
ONLY after the exact improvement reached its target surface and was verified
|
|
193
|
+
there. Then write one additional reviewer-memory `note` for each exact episode:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
#feedback-action #feedback pr=<n> episode=<stable-episode> action=landed acted=<date>
|
|
197
|
+
Result: <commit/ticket outcome and the verification that proves it is live>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
That receipt changes the card to `ACTED ON · ARCHIVED` and removes the original
|
|
201
|
+
signal from the active `#feedback` inbox without deleting any record. Never
|
|
202
|
+
mint it for a filed ticket, an unratified diff, a local-only commit, a failed or
|
|
203
|
+
unverified deploy, or an action on a different episode. If one change settles
|
|
204
|
+
several episodes, each episode gets its own exact receipt only after the shared
|
|
205
|
+
change is live.
|
|
206
|
+
|
|
207
|
+
## Step 8 — Landing follows the ratifying turn
|
|
208
|
+
|
|
209
|
+
A verdict that changes something becomes a commit only after a ratifying turn:
|
|
210
|
+
|
|
211
|
+
- **Commit only after the owner approves THAT change, in this session, in
|
|
212
|
+
words.** Not inferred from them reading the verdict, not from "they asked me to
|
|
213
|
+
adjudicate", not from a general instruction to fix the review.
|
|
214
|
+
- **The approval is per batch and dies with the session.** One "yes, all
|
|
215
|
+
three" covers the set just discussed and nothing else. It is **void at
|
|
216
|
+
session end** — after a compaction, a day rollover, or a restart, a prior
|
|
217
|
+
yes is not permission, it is history. Ask again.
|
|
218
|
+
- **One purpose per commit.** Touch only what this adjudication justified.
|
|
219
|
+
Prefixed `[companion]` where the companion is the author, with a plain
|
|
220
|
+
message: what changed and why, and no trailers, quotes or ticket ids.
|
|
221
|
+
|
|
222
|
+
- **Ratified invariants: propose only, never edit.** The CI gate,
|
|
223
|
+
reachability, NIT SCOPE, recheck's one-way transition and the blocker bar
|
|
224
|
+
are the owner's. They are fenced in the files
|
|
225
|
+
(`<!-- RATIFIED … -->`, `tests/invariant-fences.test.ts`): edit
|
|
226
|
+
freely around a fence, never inside one. Arguing for a change is allowed;
|
|
227
|
+
making it is not.
|
|
228
|
+
- `npm test` green and `npm run build` clean before the commit, always.
|
|
229
|
+
|
|
230
|
+
**The load-bearing sentence, and the first thing to check if this ever goes
|
|
231
|
+
wrong:** *the widening rests entirely on the ratifying turn. If a
|
|
232
|
+
feedback-derived change ever lands without one — implicitly, by inference, or
|
|
233
|
+
from a prior session — the widening is void, not merely violated.*
|
|
234
|
+
|
|
235
|
+
## Never
|
|
236
|
+
|
|
237
|
+
- Never treat a complaint as established because a human made it, and never
|
|
238
|
+
protect the review because it is the review.
|
|
239
|
+
- Never emit a confidence number, or a hedge that is one in prose.
|
|
240
|
+
- Never land a change without the falsifier written down first.
|
|
241
|
+
- Never land a change that alters a ratified invariant.
|
|
242
|
+
- Never resolve genuine ambiguity by rule instead of handing it to the owner.
|
|
243
|
+
- Never claim a source you did not reach, and never write an entry for an
|
|
244
|
+
adjudication that did not happen.
|
|
245
|
+
- Never call GitHub, the mutation gate, `deploy.sh`, or the VM. The reviewed
|
|
246
|
+
repo is read-only; feedback and review artifacts reach you through daemon
|
|
247
|
+
state and memory.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evidence
|
|
3
|
+
description: Reconstruct what actually happened on a past review round — the prompt it was given, the session transcript, the ledger, the verdict, and the code it was reading. Use when asked what happened on a PR, why a round said what it said, which lens raised something, or to assemble the record before anything is judged. Reconstruction only — it reaches no verdict, proposes nothing, and changes no file.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Reconstructing a review episode
|
|
7
|
+
|
|
8
|
+
This file **is** the doctrine, decided with the owner. If the doctrine
|
|
9
|
+
changes, it changes here.
|
|
10
|
+
|
|
11
|
+
## What this is, and what it is not
|
|
12
|
+
|
|
13
|
+
You are rebuilding an episode so that someone — usually the owner, sometimes you
|
|
14
|
+
in a later step — can see what happened. **You are not judging it.** No
|
|
15
|
+
attribution, no falsifier, no verdict on whether the review was right. If the
|
|
16
|
+
question turns out to be "was the reviewer wrong here?", finish the
|
|
17
|
+
reconstruction and then invoke **`adjudicate`**; the doctrine there needs
|
|
18
|
+
exactly what you are assembling, and it will not re-do this work.
|
|
19
|
+
|
|
20
|
+
The output is an account with citations. Every claim in it points at a file you
|
|
21
|
+
actually read.
|
|
22
|
+
|
|
23
|
+
## The read surfaces, in the order you reach for them
|
|
24
|
+
|
|
25
|
+
**Reach for `/evidence` FIRST for anything in the past.** The VM's live session
|
|
26
|
+
is recycled within days; the local copy is indefinite. Everything else is either
|
|
27
|
+
about *now* or is a supplement.
|
|
28
|
+
|
|
29
|
+
1. **`/evidence/pr-<n>/round-<k>/`** (read-only) — what the round actually
|
|
30
|
+
produced. Five legs:
|
|
31
|
+
- `manifest.json` — written **last and atomically**, so its presence means
|
|
32
|
+
the round copied completely. Read it first: it names what landed, what was
|
|
33
|
+
`missing`, whether any file was `truncated`, and carries the round row
|
|
34
|
+
(`status`, `verdict`, `finished_at`) the daemon had. It also scopes every
|
|
35
|
+
file: `scope: "round"` means the file belongs to this round;
|
|
36
|
+
`scope: "pr-current"` means it is **the PR's file as it stood at copy
|
|
37
|
+
time** — see the caution below.
|
|
38
|
+
- `prompt.md` — the order the session was given. What it was asked is half
|
|
39
|
+
of why it answered as it did. **PR-current at copy time**, not
|
|
40
|
+
round-scoped.
|
|
41
|
+
- `session.jsonl` — the transcript. **The lens passes are in here**: they run
|
|
42
|
+
as subagent children inside the PR's one session (the single-shepherd invariant —
|
|
43
|
+
passes are leaves), so there is no separate per-pass artefact and never was. This is
|
|
44
|
+
where "which lens raised it, and what did the validator do with it" is
|
|
45
|
+
answered. Also **PR-current at copy time** (the newest session JSONL).
|
|
46
|
+
- `ledger.md` — the session's own running account of the PR across rounds.
|
|
47
|
+
It is per-PR, not per-round: the copy in `round-<k>/` is the ledger *as it
|
|
48
|
+
stood at copy time*.
|
|
49
|
+
- `verdict.json` — what it decided, in the daemon's own vocabulary. The one
|
|
50
|
+
genuinely **round-scoped** artefact, always copied.
|
|
51
|
+
|
|
52
|
+
**The pr-current caution.** Transcript, ledger and prompt are honest records
|
|
53
|
+
of a round only when the copy happened while that round was fresh — for a
|
|
54
|
+
round that finished before the copier first saw the PR, today's files would
|
|
55
|
+
have been someone else's evidence, so the copier **does not copy them at
|
|
56
|
+
all**: the manifest lists those roles under `skipped_stale` and copies only
|
|
57
|
+
`verdict.json`. Never read a backfilled round's transcript as that round's
|
|
58
|
+
transcript — if a role is in `skipped_stale`, that round's session record
|
|
59
|
+
simply does not exist locally, and the account must say so.
|
|
60
|
+
2. **`/reviewed-repo`** (read-only) — the reviewed source. Reach for it the
|
|
61
|
+
moment a question turns on what the code *does* rather than on what a finding
|
|
62
|
+
*says* about it. Two standing cautions: the working tree is whatever the owner
|
|
63
|
+
has checked out locally, usually **not** the PR's head — so treat it as the
|
|
64
|
+
repo's shape and history and take the PR's own diff from daemon state; and it
|
|
65
|
+
is mounted `:ro`, so you cannot check anything out, ever.
|
|
66
|
+
3. **`/feed/snapshot.json` and `/feed/events.jsonl`** — the board as it is now,
|
|
67
|
+
and the event tail. Ground truth about *the daemon's current view*, and the
|
|
68
|
+
only honest source for "what state is it in right now". Never a source for
|
|
69
|
+
what a past round did.
|
|
70
|
+
4. **`qcr why <pr> --json`, `qcr status --json`, `qcr events --json`** — the
|
|
71
|
+
daemon's structured account: round rows, heads, marks, corrections.
|
|
72
|
+
5. **Reviewer memory** — `#feedback`, `#bug` and `#adjudication` entries about
|
|
73
|
+
this PR or this class of finding. Memory is a *record of past reasoning*, not
|
|
74
|
+
an observation: cite it as "we concluded X on <date>", never as a fact about
|
|
75
|
+
the code.
|
|
76
|
+
|
|
77
|
+
## When a leg is missing
|
|
78
|
+
|
|
79
|
+
Missing legs are normal, and each one means something specific. **Say which leg
|
|
80
|
+
is missing and what it costs the account** — that sentence is not optional, and
|
|
81
|
+
it is the difference between a reconstruction and a guess.
|
|
82
|
+
|
|
83
|
+
- **No `round-<k>/` dir at all** — that round was never copied down. The TUI was
|
|
84
|
+
not running when it finished, or the copy is still pending on a later poll.
|
|
85
|
+
It does **not** mean the round did not happen: the daemon's round row in
|
|
86
|
+
`qcr why --json` is the authority on that. Say "no local record of round k".
|
|
87
|
+
- **A `manifest.json` with a non-empty `missing`** — the artefact did not exist
|
|
88
|
+
on the VM when the copier looked. A round that died before writing a verdict
|
|
89
|
+
has no `verdict.json`, and that absence is itself the finding.
|
|
90
|
+
- **A `manifest.json` with a non-empty `skipped_stale`** — a backfilled round:
|
|
91
|
+
it finished before the copier first saw the PR, so the pr-current roles were
|
|
92
|
+
deliberately not copied (they would have been TODAY's files wearing an old
|
|
93
|
+
round's name). Only the verdict is on record; say "no session record of
|
|
94
|
+
round k (backfilled)".
|
|
95
|
+
- **No `manifest.json` but files present** — a half-copy. Trust nothing in that
|
|
96
|
+
dir; it will be redone on a later sweep.
|
|
97
|
+
- **`truncated: true`** — you are reading the first 32 MiB of that artefact. For
|
|
98
|
+
a transcript that means the *beginning* of the session, and the tail — where
|
|
99
|
+
the verdict is decided — is what you are missing. Say so before quoting.
|
|
100
|
+
- **The `/reviewed-repo` mount is absent** — no local checkout. Then you cannot
|
|
101
|
+
read the code, and any question that turns on the code is unanswerable rather
|
|
102
|
+
than answerable-with-caution. Say that instead of reasoning from the diff.
|
|
103
|
+
- **The feed is stale** — the TUI is down. Everything you say about "now" is as
|
|
104
|
+
of the snapshot's timestamp; quote it.
|
|
105
|
+
|
|
106
|
+
Never fill a gap by inference, and never present the daemon's round row as if it
|
|
107
|
+
were the session's own account. A missing leg is a fact about the record, and
|
|
108
|
+
recording it is part of the job.
|
|
109
|
+
|
|
110
|
+
## Working through it
|
|
111
|
+
|
|
112
|
+
You have **no subagents** — every reach is yours, one after another. That is
|
|
113
|
+
fine here, because the order above is a funnel and most episodes are settled by
|
|
114
|
+
the first two surfaces. Do not read a 0.6 MB transcript end to end: find the
|
|
115
|
+
round's verdict decision and the passages around the finding in question, and
|
|
116
|
+
work outward.
|
|
117
|
+
|
|
118
|
+
You have **no `Skill` tool** — when this file says to hand off to `adjudicate`
|
|
119
|
+
or `land`, invoke it by name the way you invoke any skill, or read
|
|
120
|
+
`/workspace/skills/companion/<name>/SKILL.md` directly.
|
|
121
|
+
|
|
122
|
+
## The account
|
|
123
|
+
|
|
124
|
+
Short, and citation-first. The shape that works:
|
|
125
|
+
|
|
126
|
+
- **What happened** — one or two lines. Rounds, verdicts, how it ended.
|
|
127
|
+
- **The timeline** — round by round, each line naming the artefact it rests on
|
|
128
|
+
(`round-2/verdict.json`, `round-3/session.jsonl:…`).
|
|
129
|
+
- **What is not in the record** — the missing legs, plainly.
|
|
130
|
+
- **What would settle the open question**, if one is left — which artefact,
|
|
131
|
+
which file in `/reviewed-repo`, which memory entry.
|
|
132
|
+
|
|
133
|
+
No verdict, no attribution, no recommendation to change anything. If the
|
|
134
|
+
reconstruction makes a change look obvious, say what you saw and stop — deciding
|
|
135
|
+
is `adjudicate`, landing is `land`.
|
|
136
|
+
|
|
137
|
+
## Never
|
|
138
|
+
|
|
139
|
+
- Never judge the review here. Reconstruct, then hand off.
|
|
140
|
+
- Never infer what a session must have done from a round row, a verdict, or the
|
|
141
|
+
shape of the PR. If the transcript is not there, the session's reasoning is
|
|
142
|
+
not known.
|
|
143
|
+
- Never claim a surface you did not read, and never present four sources as
|
|
144
|
+
five.
|
|
145
|
+
- Never write to `/evidence` or `/reviewed-repo` — both are `:ro`, and that is
|
|
146
|
+
the guarantee, not an inconvenience.
|
|
147
|
+
- Never call GitHub, the mutation gate, `deploy.sh`, or the VM. Everything
|
|
148
|
+
above is a local file or a daemon-produced read.
|
|
149
|
+
- Never write a memory entry for a reconstruction. Reconstruction is not a
|
|
150
|
+
conclusion; only an adjudication is recorded.
|