toolroll 0.5.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 +21 -0
- package/README.md +1113 -0
- package/THIRD_PARTY_NOTICES.md +449 -0
- package/dist/accent-colors.d.ts +48 -0
- package/dist/accent-colors.js +122 -0
- package/dist/action-ledger.d.ts +26 -0
- package/dist/action-ledger.js +75 -0
- package/dist/agent-fence.d.ts +42 -0
- package/dist/agent-fence.js +183 -0
- package/dist/agentconfig.d.ts +216 -0
- package/dist/agentconfig.js +454 -0
- package/dist/api-tokens.d.ts +16 -0
- package/dist/api-tokens.js +27 -0
- package/dist/approval-policy.d.ts +69 -0
- package/dist/approval-policy.js +137 -0
- package/dist/approval-rules-ui.d.ts +25 -0
- package/dist/approval-rules-ui.js +39 -0
- package/dist/assignment-adapters.d.ts +180 -0
- package/dist/assignment-adapters.js +239 -0
- package/dist/assignment-brief.d.ts +71 -0
- package/dist/assignment-brief.js +129 -0
- package/dist/assignment-delivery.d.ts +56 -0
- package/dist/assignment-delivery.js +160 -0
- package/dist/assignment-presentation.d.ts +26 -0
- package/dist/assignment-presentation.js +80 -0
- package/dist/assignment-status.d.ts +62 -0
- package/dist/assignment-status.js +152 -0
- package/dist/assignment-ui.d.ts +71 -0
- package/dist/assignment-ui.js +103 -0
- package/dist/assignment.d.ts +222 -0
- package/dist/assignment.js +399 -0
- package/dist/attest.d.ts +56 -0
- package/dist/attest.js +153 -0
- package/dist/backend.d.ts +97 -0
- package/dist/backend.js +166 -0
- package/dist/backup-ui.d.ts +22 -0
- package/dist/backup-ui.js +59 -0
- package/dist/backup.d.ts +84 -0
- package/dist/backup.js +421 -0
- package/dist/beads.d.ts +34 -0
- package/dist/beads.js +135 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +22 -0
- package/dist/board.d.ts +150 -0
- package/dist/board.js +210 -0
- package/dist/boot-identity.d.ts +63 -0
- package/dist/boot-identity.js +99 -0
- package/dist/browser/THIRD_PARTY_NOTICES.txt +2295 -0
- package/dist/browser/workspace.css +4 -0
- package/dist/browser/workspace.js +225 -0
- package/dist/browser-crew.d.ts +11 -0
- package/dist/browser-crew.js +50 -0
- package/dist/browser-shell.d.ts +8 -0
- package/dist/browser-shell.js +60 -0
- package/dist/browser-workspace.d.ts +780 -0
- package/dist/browser-workspace.js +47 -0
- package/dist/budget-alerts.d.ts +19 -0
- package/dist/budget-alerts.js +46 -0
- package/dist/builder.d.ts +370 -0
- package/dist/builder.js +3262 -0
- package/dist/capscan.d.ts +35 -0
- package/dist/capscan.js +113 -0
- package/dist/chat-acceptance.d.ts +71 -0
- package/dist/chat-acceptance.js +120 -0
- package/dist/chat-actions.d.ts +265 -0
- package/dist/chat-actions.js +1273 -0
- package/dist/chat-channel.d.ts +109 -0
- package/dist/chat-channel.js +652 -0
- package/dist/chat-continuity.d.ts +32 -0
- package/dist/chat-continuity.js +317 -0
- package/dist/chat-controls.d.ts +113 -0
- package/dist/chat-controls.js +53 -0
- package/dist/chat-delivery-state.d.ts +159 -0
- package/dist/chat-delivery-state.js +309 -0
- package/dist/chat-delivery.d.ts +38 -0
- package/dist/chat-delivery.js +693 -0
- package/dist/chat-display.d.ts +1 -0
- package/dist/chat-display.js +18 -0
- package/dist/chat-evidence.d.ts +123 -0
- package/dist/chat-evidence.js +207 -0
- package/dist/chat-flow.d.ts +44 -0
- package/dist/chat-flow.js +215 -0
- package/dist/chat-inbox.d.ts +57 -0
- package/dist/chat-inbox.js +123 -0
- package/dist/chat-polish.d.ts +16 -0
- package/dist/chat-polish.js +135 -0
- package/dist/chat-review.d.ts +46 -0
- package/dist/chat-review.js +98 -0
- package/dist/chat-rooms.d.ts +123 -0
- package/dist/chat-rooms.js +216 -0
- package/dist/chat-task-actions.d.ts +44 -0
- package/dist/chat-task-actions.js +79 -0
- package/dist/check-progress.d.ts +51 -0
- package/dist/check-progress.js +290 -0
- package/dist/child-database.d.ts +12 -0
- package/dist/child-database.js +30 -0
- package/dist/claim.d.ts +688 -0
- package/dist/claim.js +1740 -0
- package/dist/cli.d.ts +137 -0
- package/dist/cli.js +1461 -0
- package/dist/codex-limits.d.ts +15 -0
- package/dist/codex-limits.js +145 -0
- package/dist/coding-context.d.ts +55 -0
- package/dist/coding-context.js +92 -0
- package/dist/coding-handoff.d.ts +57 -0
- package/dist/coding-handoff.js +277 -0
- package/dist/coding-provider.d.ts +72 -0
- package/dist/coding-provider.js +424 -0
- package/dist/coding-shipping-ui.d.ts +4 -0
- package/dist/coding-shipping-ui.js +12 -0
- package/dist/coding-types.d.ts +62 -0
- package/dist/coding-types.js +1 -0
- package/dist/coding-ui.d.ts +17 -0
- package/dist/coding-ui.js +364 -0
- package/dist/coding-update.d.ts +15 -0
- package/dist/coding-update.js +149 -0
- package/dist/coding-workspace.d.ts +124 -0
- package/dist/coding-workspace.js +768 -0
- package/dist/container-state.d.ts +5 -0
- package/dist/container-state.js +62 -0
- package/dist/containment.d.ts +197 -0
- package/dist/containment.js +559 -0
- package/dist/contest.d.ts +318 -0
- package/dist/contest.js +753 -0
- package/dist/control-setup.d.ts +35 -0
- package/dist/control-setup.js +40 -0
- package/dist/control-ui.d.ts +29 -0
- package/dist/control-ui.js +53 -0
- package/dist/controller-service.d.ts +1 -0
- package/dist/controller-service.js +19 -0
- package/dist/controller-supervisor.d.ts +30 -0
- package/dist/controller-supervisor.js +104 -0
- package/dist/converse.d.ts +304 -0
- package/dist/converse.js +849 -0
- package/dist/coordinator-proposals.d.ts +29 -0
- package/dist/coordinator-proposals.js +137 -0
- package/dist/coordinator.d.ts +186 -0
- package/dist/coordinator.js +447 -0
- package/dist/credentials-ui.d.ts +25 -0
- package/dist/credentials-ui.js +48 -0
- package/dist/daemon.d.ts +209 -0
- package/dist/daemon.js +604 -0
- package/dist/decision.d.ts +120 -0
- package/dist/decision.js +388 -0
- package/dist/demo.d.ts +55 -0
- package/dist/demo.js +992 -0
- package/dist/desktop-access.d.ts +28 -0
- package/dist/desktop-access.js +88 -0
- package/dist/desktop-bundle.d.ts +16 -0
- package/dist/desktop-bundle.js +74 -0
- package/dist/desktop-host.d.ts +54 -0
- package/dist/desktop-host.js +508 -0
- package/dist/desktop-update-gate.d.ts +12 -0
- package/dist/desktop-update-gate.js +91 -0
- package/dist/desktop-update-recovery.d.ts +14 -0
- package/dist/desktop-update-recovery.js +243 -0
- package/dist/desktop-update.d.ts +110 -0
- package/dist/desktop-update.js +740 -0
- package/dist/discord-api.d.ts +20 -0
- package/dist/discord-api.js +138 -0
- package/dist/discord-chat.d.ts +16 -0
- package/dist/discord-chat.js +381 -0
- package/dist/discord-settings.d.ts +7 -0
- package/dist/discord-settings.js +75 -0
- package/dist/discord.d.ts +10 -0
- package/dist/discord.js +169 -0
- package/dist/discover.d.ts +75 -0
- package/dist/discover.js +150 -0
- package/dist/dispatch.d.ts +100 -0
- package/dist/dispatch.js +311 -0
- package/dist/dispose.d.ts +161 -0
- package/dist/dispose.js +803 -0
- package/dist/email-settings.d.ts +34 -0
- package/dist/email-settings.js +50 -0
- package/dist/envelope.d.ts +47 -0
- package/dist/envelope.js +105 -0
- package/dist/evidence-pack.d.ts +185 -0
- package/dist/evidence-pack.js +258 -0
- package/dist/evidence.d.ts +345 -0
- package/dist/evidence.js +782 -0
- package/dist/exec.d.ts +285 -0
- package/dist/exec.js +1841 -0
- package/dist/exhaustion.d.ts +85 -0
- package/dist/exhaustion.js +141 -0
- package/dist/export-ui.d.ts +4 -0
- package/dist/export-ui.js +17 -0
- package/dist/export.d.ts +48 -0
- package/dist/export.js +305 -0
- package/dist/flow-actions.d.ts +77 -0
- package/dist/flow-actions.js +203 -0
- package/dist/flow-code.d.ts +50 -0
- package/dist/flow-code.js +159 -0
- package/dist/flow-draft.d.ts +38 -0
- package/dist/flow-draft.js +80 -0
- package/dist/flow-engine.d.ts +66 -0
- package/dist/flow-engine.js +416 -0
- package/dist/flow-insights.d.ts +95 -0
- package/dist/flow-insights.js +149 -0
- package/dist/flow-live.d.ts +24 -0
- package/dist/flow-live.js +150 -0
- package/dist/flow-people.d.ts +24 -0
- package/dist/flow-people.js +91 -0
- package/dist/flow-replies.d.ts +48 -0
- package/dist/flow-replies.js +113 -0
- package/dist/flow-scripts.d.ts +38 -0
- package/dist/flow-scripts.js +73 -0
- package/dist/flow-secrets.d.ts +13 -0
- package/dist/flow-secrets.js +45 -0
- package/dist/flow-sort.d.ts +82 -0
- package/dist/flow-sort.js +153 -0
- package/dist/flow-steps.d.ts +40 -0
- package/dist/flow-steps.js +408 -0
- package/dist/flow-triggers.d.ts +244 -0
- package/dist/flow-triggers.js +959 -0
- package/dist/flows-ui.d.ts +20 -0
- package/dist/flows-ui.js +175 -0
- package/dist/flows.d.ts +229 -0
- package/dist/flows.js +968 -0
- package/dist/fonts.d.ts +19 -0
- package/dist/fonts.js +19 -0
- package/dist/gaps.d.ts +35 -0
- package/dist/gaps.js +101 -0
- package/dist/gate-failure.d.ts +40 -0
- package/dist/gate-failure.js +66 -0
- package/dist/git.d.ts +54 -0
- package/dist/git.js +94 -0
- package/dist/google-mail.d.ts +58 -0
- package/dist/google-mail.js +151 -0
- package/dist/grant.d.ts +136 -0
- package/dist/grant.js +238 -0
- package/dist/graph.d.ts +164 -0
- package/dist/graph.js +383 -0
- package/dist/guides.d.ts +22 -0
- package/dist/guides.js +363 -0
- package/dist/held.d.ts +150 -0
- package/dist/held.js +799 -0
- package/dist/invoke.d.ts +112 -0
- package/dist/invoke.js +780 -0
- package/dist/issues.d.ts +41 -0
- package/dist/issues.js +131 -0
- package/dist/job-object-helper.ps1 +252 -0
- package/dist/jsonl-discriminants.d.ts +11 -0
- package/dist/jsonl-discriminants.js +93 -0
- package/dist/keys.d.ts +104 -0
- package/dist/keys.js +229 -0
- package/dist/kits-ui.d.ts +17 -0
- package/dist/kits-ui.js +46 -0
- package/dist/kits.d.ts +86 -0
- package/dist/kits.js +215 -0
- package/dist/knowledge-cli.d.ts +101 -0
- package/dist/knowledge-cli.js +92 -0
- package/dist/knowledge-ui.d.ts +24 -0
- package/dist/knowledge-ui.js +40 -0
- package/dist/lead-context.d.ts +8 -0
- package/dist/lead-context.js +56 -0
- package/dist/lead-follow.d.ts +22 -0
- package/dist/lead-follow.js +167 -0
- package/dist/lead-status.d.ts +75 -0
- package/dist/lead-status.js +285 -0
- package/dist/ledger-chain.d.ts +46 -0
- package/dist/ledger-chain.js +187 -0
- package/dist/ledger-csv.d.ts +4 -0
- package/dist/ledger-csv.js +11 -0
- package/dist/ledger-view.d.ts +24 -0
- package/dist/ledger-view.js +58 -0
- package/dist/limits-ui.d.ts +26 -0
- package/dist/limits-ui.js +67 -0
- package/dist/link.d.ts +72 -0
- package/dist/link.js +217 -0
- package/dist/live.d.ts +96 -0
- package/dist/live.js +366 -0
- package/dist/liveness.d.ts +30 -0
- package/dist/liveness.js +42 -0
- package/dist/log.d.ts +7 -0
- package/dist/log.js +25 -0
- package/dist/mailbox.d.ts +57 -0
- package/dist/mailbox.js +150 -0
- package/dist/maintenance.d.ts +11 -0
- package/dist/maintenance.js +35 -0
- package/dist/mate-cli.d.ts +52 -0
- package/dist/mate-cli.js +345 -0
- package/dist/mate-contract.d.ts +10 -0
- package/dist/mate-contract.js +30 -0
- package/dist/mate-doors.d.ts +69 -0
- package/dist/mate-doors.js +548 -0
- package/dist/mate-progress.d.ts +29 -0
- package/dist/mate-progress.js +121 -0
- package/dist/mate-tools.d.ts +94 -0
- package/dist/mate-tools.js +1878 -0
- package/dist/mate.d.ts +92 -0
- package/dist/mate.js +435 -0
- package/dist/mcp-connect.d.ts +103 -0
- package/dist/mcp-connect.js +252 -0
- package/dist/mcp.d.ts +27 -0
- package/dist/mcp.js +651 -0
- package/dist/memory-cli.d.ts +466 -0
- package/dist/memory-cli.js +111 -0
- package/dist/memory-pass.d.ts +160 -0
- package/dist/memory-pass.js +409 -0
- package/dist/metrics.d.ts +3 -0
- package/dist/metrics.js +56 -0
- package/dist/mobile-viewport.d.ts +3 -0
- package/dist/mobile-viewport.js +37 -0
- package/dist/model-catalog.d.ts +118 -0
- package/dist/model-catalog.js +376 -0
- package/dist/models-cli.d.ts +102 -0
- package/dist/models-cli.js +66 -0
- package/dist/models-ui.d.ts +34 -0
- package/dist/models-ui.js +68 -0
- package/dist/modes.d.ts +80 -0
- package/dist/modes.js +182 -0
- package/dist/monitoring-settings.d.ts +44 -0
- package/dist/monitoring-settings.js +173 -0
- package/dist/monitoring-ui.d.ts +20 -0
- package/dist/monitoring-ui.js +51 -0
- package/dist/monitoring.d.ts +34 -0
- package/dist/monitoring.js +221 -0
- package/dist/names.d.ts +67 -0
- package/dist/names.js +102 -0
- package/dist/observations.d.ts +40 -0
- package/dist/observations.js +211 -0
- package/dist/oidc.d.ts +71 -0
- package/dist/oidc.js +182 -0
- package/dist/onboard.d.ts +108 -0
- package/dist/onboard.js +325 -0
- package/dist/openrouter-models.d.ts +30 -0
- package/dist/openrouter-models.js +120 -0
- package/dist/operate.d.ts +118 -0
- package/dist/operate.js +11321 -0
- package/dist/peek-cli.d.ts +97 -0
- package/dist/peek-cli.js +215 -0
- package/dist/peek.d.ts +134 -0
- package/dist/peek.js +578 -0
- package/dist/phase-routing.d.ts +307 -0
- package/dist/phase-routing.js +658 -0
- package/dist/plan-auto.d.ts +14 -0
- package/dist/plan-auto.js +92 -0
- package/dist/plan.d.ts +186 -0
- package/dist/plan.js +401 -0
- package/dist/planner-source.d.ts +251 -0
- package/dist/planner-source.js +460 -0
- package/dist/planner.d.ts +75 -0
- package/dist/planner.js +992 -0
- package/dist/policy-ui.d.ts +20 -0
- package/dist/policy-ui.js +41 -0
- package/dist/policy.d.ts +111 -0
- package/dist/policy.js +231 -0
- package/dist/prepared-evidence.d.ts +16 -0
- package/dist/prepared-evidence.js +96 -0
- package/dist/pricing.d.ts +45 -0
- package/dist/pricing.js +77 -0
- package/dist/principal.d.ts +42 -0
- package/dist/principal.js +82 -0
- package/dist/probe.d.ts +46 -0
- package/dist/probe.js +79 -0
- package/dist/process-custody.d.ts +17 -0
- package/dist/process-custody.js +91 -0
- package/dist/process-liveness.d.ts +10 -0
- package/dist/process-liveness.js +81 -0
- package/dist/process-recovery-anchor.d.ts +75 -0
- package/dist/process-recovery-anchor.js +188 -0
- package/dist/process-recovery-coalition.d.ts +25 -0
- package/dist/process-recovery-coalition.js +105 -0
- package/dist/process-recovery-eligibility.d.ts +178 -0
- package/dist/process-recovery-eligibility.js +170 -0
- package/dist/process-recovery-native.d.ts +172 -0
- package/dist/process-recovery-native.js +592 -0
- package/dist/process-recovery-provenance.d.ts +163 -0
- package/dist/process-recovery-provenance.js +292 -0
- package/dist/process-recovery-services.d.ts +56 -0
- package/dist/process-recovery-services.js +191 -0
- package/dist/process-recovery-settlement.d.ts +32 -0
- package/dist/process-recovery-settlement.js +132 -0
- package/dist/process-recovery.d.ts +41 -0
- package/dist/process-recovery.js +91 -0
- package/dist/process-tree.d.ts +41 -0
- package/dist/process-tree.js +264 -0
- package/dist/project-access.d.ts +14 -0
- package/dist/project-access.js +34 -0
- package/dist/project-cli.d.ts +18 -0
- package/dist/project-cli.js +104 -0
- package/dist/project-delete-ui.d.ts +22 -0
- package/dist/project-delete-ui.js +48 -0
- package/dist/project-delete.d.ts +55 -0
- package/dist/project-delete.js +413 -0
- package/dist/project-knowledge.d.ts +111 -0
- package/dist/project-knowledge.js +241 -0
- package/dist/project-learning.d.ts +100 -0
- package/dist/project-learning.js +438 -0
- package/dist/project-memory.d.ts +81 -0
- package/dist/project-memory.js +264 -0
- package/dist/project-skills.d.ts +152 -0
- package/dist/project-skills.js +660 -0
- package/dist/project-tools.d.ts +219 -0
- package/dist/project-tools.js +796 -0
- package/dist/project.d.ts +61 -0
- package/dist/project.js +125 -0
- package/dist/prompt.d.ts +22 -0
- package/dist/prompt.js +72 -0
- package/dist/proof.d.ts +513 -0
- package/dist/proof.js +1140 -0
- package/dist/proposal.d.ts +82 -0
- package/dist/proposal.js +210 -0
- package/dist/provider-connection.d.ts +22 -0
- package/dist/provider-connection.js +98 -0
- package/dist/provider-limits.d.ts +35 -0
- package/dist/provider-limits.js +95 -0
- package/dist/provider.d.ts +279 -0
- package/dist/provider.js +935 -0
- package/dist/publish.d.ts +107 -0
- package/dist/publish.js +650 -0
- package/dist/pulls.d.ts +118 -0
- package/dist/pulls.js +240 -0
- package/dist/push.d.ts +95 -0
- package/dist/push.js +353 -0
- package/dist/quality.d.ts +8 -0
- package/dist/quality.js +6 -0
- package/dist/recipe-ui.d.ts +18 -0
- package/dist/recipe-ui.js +152 -0
- package/dist/recipes.d.ts +81 -0
- package/dist/recipes.js +332 -0
- package/dist/remote.d.ts +67 -0
- package/dist/remote.js +122 -0
- package/dist/render.d.ts +64 -0
- package/dist/render.js +587 -0
- package/dist/report-summary.d.ts +13 -0
- package/dist/report-summary.js +15 -0
- package/dist/repos.d.ts +65 -0
- package/dist/repos.js +277 -0
- package/dist/repository-context-ui.d.ts +2 -0
- package/dist/repository-context-ui.js +10 -0
- package/dist/repository-context.d.ts +67 -0
- package/dist/repository-context.js +376 -0
- package/dist/restart-certification.d.ts +134 -0
- package/dist/restart-certification.js +226 -0
- package/dist/result-actions.d.ts +28 -0
- package/dist/result-actions.js +270 -0
- package/dist/result-completion.d.ts +18 -0
- package/dist/result-completion.js +66 -0
- package/dist/result-review.d.ts +213 -0
- package/dist/result-review.js +430 -0
- package/dist/retention-ui.d.ts +12 -0
- package/dist/retention-ui.js +39 -0
- package/dist/retention.d.ts +72 -0
- package/dist/retention.js +288 -0
- package/dist/review-context.d.ts +243 -0
- package/dist/review-context.js +1043 -0
- package/dist/review-evidence.d.ts +33 -0
- package/dist/review-evidence.js +56 -0
- package/dist/reviewer.d.ts +97 -0
- package/dist/reviewer.js +202 -0
- package/dist/routine.d.ts +228 -0
- package/dist/routine.js +764 -0
- package/dist/runner.d.ts +266 -0
- package/dist/runner.js +399 -0
- package/dist/scan.d.ts +32 -0
- package/dist/scan.js +92 -0
- package/dist/scope.d.ts +695 -0
- package/dist/scope.js +1176 -0
- package/dist/scout-report.d.ts +42 -0
- package/dist/scout-report.js +108 -0
- package/dist/scout.d.ts +69 -0
- package/dist/scout.js +351 -0
- package/dist/serve.d.ts +313 -0
- package/dist/serve.js +21776 -0
- package/dist/session-brief.d.ts +8 -0
- package/dist/session-brief.js +24 -0
- package/dist/session-cli.d.ts +13 -0
- package/dist/session-cli.js +284 -0
- package/dist/session-contract.d.ts +183 -0
- package/dist/session-contract.js +122 -0
- package/dist/session-http.d.ts +19 -0
- package/dist/session-http.js +154 -0
- package/dist/session-server.d.ts +12 -0
- package/dist/session-server.js +37 -0
- package/dist/session-service.d.ts +22 -0
- package/dist/session-service.js +157 -0
- package/dist/setup-guide.d.ts +39 -0
- package/dist/setup-guide.js +93 -0
- package/dist/sign-in-guard.d.ts +45 -0
- package/dist/sign-in-guard.js +74 -0
- package/dist/skills-ui.d.ts +11 -0
- package/dist/skills-ui.js +58 -0
- package/dist/skills.d.ts +97 -0
- package/dist/skills.js +276 -0
- package/dist/slack-api.d.ts +55 -0
- package/dist/slack-api.js +229 -0
- package/dist/slack-chat.d.ts +28 -0
- package/dist/slack-chat.js +413 -0
- package/dist/slack-settings.d.ts +7 -0
- package/dist/slack-settings.js +75 -0
- package/dist/slack-state.d.ts +13 -0
- package/dist/slack-state.js +9 -0
- package/dist/slack.d.ts +13 -0
- package/dist/slack.js +167 -0
- package/dist/spend-ui.d.ts +28 -0
- package/dist/spend-ui.js +95 -0
- package/dist/spend.d.ts +142 -0
- package/dist/spend.js +313 -0
- package/dist/sqlite-runtime.d.ts +3 -0
- package/dist/sqlite-runtime.js +6 -0
- package/dist/sso-settings.d.ts +33 -0
- package/dist/sso-settings.js +103 -0
- package/dist/sso-ui.d.ts +22 -0
- package/dist/sso-ui.js +39 -0
- package/dist/storage.d.ts +15 -0
- package/dist/storage.js +84 -0
- package/dist/store.d.ts +7754 -0
- package/dist/store.js +23279 -0
- package/dist/structured-output.d.ts +58 -0
- package/dist/structured-output.js +103 -0
- package/dist/style-asset.d.ts +7 -0
- package/dist/style-asset.js +41 -0
- package/dist/subscription-chat.d.ts +46 -0
- package/dist/subscription-chat.js +275 -0
- package/dist/summary.d.ts +33 -0
- package/dist/summary.js +71 -0
- package/dist/supervisor.mjs +297 -0
- package/dist/surface.d.ts +63 -0
- package/dist/surface.js +352 -0
- package/dist/sync.d.ts +94 -0
- package/dist/sync.js +279 -0
- package/dist/task-composer.d.ts +13 -0
- package/dist/task-composer.js +52 -0
- package/dist/task-control.d.ts +165 -0
- package/dist/task-control.js +214 -0
- package/dist/task-outcome-cli.d.ts +10 -0
- package/dist/task-outcome-cli.js +92 -0
- package/dist/task-text.d.ts +30 -0
- package/dist/task-text.js +41 -0
- package/dist/team-cli.d.ts +15 -0
- package/dist/team-cli.js +618 -0
- package/dist/team-contract.d.ts +92 -0
- package/dist/team-contract.js +1 -0
- package/dist/team-http.d.ts +17 -0
- package/dist/team-http.js +144 -0
- package/dist/team-leads.d.ts +81 -0
- package/dist/team-leads.js +565 -0
- package/dist/team-runtime.d.ts +27 -0
- package/dist/team-runtime.js +264 -0
- package/dist/team-ui.d.ts +3 -0
- package/dist/team-ui.js +9 -0
- package/dist/team-updates.d.ts +8 -0
- package/dist/team-updates.js +57 -0
- package/dist/teammate-admin.d.ts +53 -0
- package/dist/teammate-admin.js +111 -0
- package/dist/teammate-desk.d.ts +60 -0
- package/dist/teammate-desk.js +154 -0
- package/dist/teammate-memory.d.ts +64 -0
- package/dist/teammate-memory.js +196 -0
- package/dist/teammate-question.d.ts +59 -0
- package/dist/teammate-question.js +175 -0
- package/dist/teammate-tools.d.ts +108 -0
- package/dist/teammate-tools.js +271 -0
- package/dist/teammate-week.d.ts +68 -0
- package/dist/teammate-week.js +132 -0
- package/dist/teammate-work.d.ts +76 -0
- package/dist/teammate-work.js +280 -0
- package/dist/teammates-ui.d.ts +20 -0
- package/dist/teammates-ui.js +166 -0
- package/dist/teammates.d.ts +180 -0
- package/dist/teammates.js +253 -0
- package/dist/teams-api.d.ts +33 -0
- package/dist/teams-api.js +204 -0
- package/dist/teams-chat.d.ts +26 -0
- package/dist/teams-chat.js +215 -0
- package/dist/teams-settings.d.ts +12 -0
- package/dist/teams-settings.js +57 -0
- package/dist/teams.d.ts +21 -0
- package/dist/teams.js +124 -0
- package/dist/telegram-flow.d.ts +49 -0
- package/dist/telegram-flow.js +110 -0
- package/dist/telegram-mate.d.ts +137 -0
- package/dist/telegram-mate.js +707 -0
- package/dist/telegram-progress.d.ts +14 -0
- package/dist/telegram-progress.js +129 -0
- package/dist/telegram-settings.d.ts +9 -0
- package/dist/telegram-settings.js +36 -0
- package/dist/telegram-status.d.ts +75 -0
- package/dist/telegram-status.js +265 -0
- package/dist/telegram-team.d.ts +85 -0
- package/dist/telegram-team.js +359 -0
- package/dist/telegram.d.ts +230 -0
- package/dist/telegram.js +1931 -0
- package/dist/templates.d.ts +65 -0
- package/dist/templates.js +118 -0
- package/dist/tool-launcher.d.ts +1 -0
- package/dist/tool-launcher.js +101 -0
- package/dist/tools-ui.d.ts +30 -0
- package/dist/tools-ui.js +40 -0
- package/dist/transitions-recipes.d.ts +1 -0
- package/dist/transitions-recipes.js +203 -0
- package/dist/tree-proof.d.ts +34 -0
- package/dist/tree-proof.js +58 -0
- package/dist/verification-evidence.d.ts +44 -0
- package/dist/verification-evidence.js +238 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +10 -0
- package/dist/webhooks.d.ts +91 -0
- package/dist/webhooks.js +283 -0
- package/dist/work-index.d.ts +68 -0
- package/dist/work-index.js +384 -0
- package/dist/work-summary.d.ts +57 -0
- package/dist/work-summary.js +116 -0
- package/dist/workspace-motion.d.ts +4 -0
- package/dist/workspace-motion.js +133 -0
- package/dist/workspace-revision.d.ts +19 -0
- package/dist/workspace-revision.js +92 -0
- package/dist/workspace-ui.d.ts +204 -0
- package/dist/workspace-ui.js +411 -0
- package/dist/worktree-notices.d.ts +13 -0
- package/dist/worktree-notices.js +17 -0
- package/dist/worktree.d.ts +249 -0
- package/dist/worktree.js +720 -0
- package/package.json +122 -0
- package/scripts/canary-assertions.mjs +42 -0
- package/scripts/crash-canary.mjs +253 -0
- package/scripts/fixtures/crash-process.mjs +74 -0
- package/scripts/fixtures/pilot-scenarios.mjs +85 -0
- package/scripts/fixtures/restart-service.mjs +27 -0
- package/scripts/launchd-certification.mjs +143 -0
- package/scripts/pilot.mjs +121 -0
- package/scripts/proof-preflight.mjs +140 -0
- package/scripts/provider-canary.mjs +379 -0
- package/scripts/recovery-canary.mjs +135 -0
- package/scripts/restart-certification.mjs +98 -0
package/dist/proof.d.ts
ADDED
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The build's own claim, adjudicated against evidence the plane captured
|
|
3
|
+
* itself (`docs/PRIORITIES.md` Priority 2). Modelled line-for-line on the
|
|
4
|
+
* scout's report (`scout-report.ts`): fail closed, every problem reported at
|
|
5
|
+
* once, stable reasons, byte caps, control-character rejection on every
|
|
6
|
+
* string.
|
|
7
|
+
*
|
|
8
|
+
* The proof is a distinct deliverable from the terminal handoff every
|
|
9
|
+
* attempt writes (including `failed` ones, whose lists are deliberately
|
|
10
|
+
* compacted prose) — only a `completed` attempt owes one, and the plane
|
|
11
|
+
* judges it. A missing or malformed proof never fails the attempt or
|
|
12
|
+
* touches the commit; it only keeps the verdict off "verified".
|
|
13
|
+
*
|
|
14
|
+
* `adjudicate` is pure and does no I/O: every fact it reasons over — whether
|
|
15
|
+
* the proof artifact exists, whether the handoff and terminal diff exist,
|
|
16
|
+
* what the sealed diff-stat says, whether a screenshot's bytes actually are
|
|
17
|
+
* a PNG or JPEG, whether an approved verification command ran and what it
|
|
18
|
+
* returned — is gathered by the caller (`builder.ts`) and handed in as data,
|
|
19
|
+
* so the review itself stays testable without a filesystem or a database.
|
|
20
|
+
*/
|
|
21
|
+
import { type EvidenceKind } from "./scope.js";
|
|
22
|
+
export type ProofVerdict = "verified" | "attested" | "short" | "refuted";
|
|
23
|
+
/** One typed reference the proof cites to answer a criterion's required
|
|
24
|
+
* evidence: `ref` names an existing check's command, an existing
|
|
25
|
+
* screenshot's path, a path inside `changed`, or (kind `manual-review`)
|
|
26
|
+
* free-text pointing at nothing machine-checkable. Additive (v39): a
|
|
27
|
+
* criterion with no `evidence` array parses the same as one that always
|
|
28
|
+
* had none — legacy proofs, and every proof against a rubric-less scope,
|
|
29
|
+
* are untouched. */
|
|
30
|
+
export type CriterionEvidenceRef = {
|
|
31
|
+
kind: EvidenceKind;
|
|
32
|
+
ref: string;
|
|
33
|
+
};
|
|
34
|
+
export type ParsedCriterion = {
|
|
35
|
+
id: string;
|
|
36
|
+
statement: string;
|
|
37
|
+
/** pending-verification asserts all agent-owned work is met; only the
|
|
38
|
+
* machine-owned final check remains. It never upgrades a legacy failure. */
|
|
39
|
+
verdict: "met" | "not-met" | "not-checked" | "pending-verification";
|
|
40
|
+
how: string;
|
|
41
|
+
/** v39: typed references answering a SIGNED criterion by exact id.
|
|
42
|
+
* `[]` for a criterion the agent added beyond the rubric, or for any
|
|
43
|
+
* proof written before this migration. */
|
|
44
|
+
evidence: CriterionEvidenceRef[];
|
|
45
|
+
};
|
|
46
|
+
/** v39: the rubric side of a criterion, as `adjudicate` reads it — the
|
|
47
|
+
* SIGNED id, statement, and required evidence kinds. Never `how` (never
|
|
48
|
+
* signed). Empty = nothing signed: `adjudicate` runs the v1 rules,
|
|
49
|
+
* byte for byte. */
|
|
50
|
+
export type ApprovedCriterion = {
|
|
51
|
+
id: string;
|
|
52
|
+
statement: string;
|
|
53
|
+
evidence: readonly EvidenceKind[];
|
|
54
|
+
};
|
|
55
|
+
/** Only submission defects. A truthful not-met answer is not malformed. */
|
|
56
|
+
export declare function proofSubmissionProblems(proof: ParsedProof, rubric: readonly ApprovedCriterion[]): string[];
|
|
57
|
+
export type ParsedCheck = {
|
|
58
|
+
command: string;
|
|
59
|
+
exitCode: number;
|
|
60
|
+
summary: string;
|
|
61
|
+
};
|
|
62
|
+
/** A screenshot the agent claims proves UI-facing work. `path` is the
|
|
63
|
+
* repository-relative path the file lived at in the worktree when the
|
|
64
|
+
* agent wrote the proof — validated as a path shape here; validated as an
|
|
65
|
+
* actual bounded PNG/JPEG, and read, by the caller. */
|
|
66
|
+
export type ParsedScreenshot = {
|
|
67
|
+
path: string;
|
|
68
|
+
caption: string;
|
|
69
|
+
};
|
|
70
|
+
export type ParsedProof = {
|
|
71
|
+
version: 1;
|
|
72
|
+
criteria: ParsedCriterion[];
|
|
73
|
+
checks: ParsedCheck[];
|
|
74
|
+
changed: string[];
|
|
75
|
+
caveats: string[];
|
|
76
|
+
screenshots: ParsedScreenshot[];
|
|
77
|
+
};
|
|
78
|
+
export type ProofProblem = {
|
|
79
|
+
reason: string;
|
|
80
|
+
message: string;
|
|
81
|
+
};
|
|
82
|
+
export type ProofParseResult = {
|
|
83
|
+
ok: true;
|
|
84
|
+
proof: ParsedProof;
|
|
85
|
+
} | {
|
|
86
|
+
ok: false;
|
|
87
|
+
problems: ProofProblem[];
|
|
88
|
+
};
|
|
89
|
+
/** Caps are BYTES of UTF-8, matching the scout report's rule: a payload is
|
|
90
|
+
* the same size whatever script it is written in. */
|
|
91
|
+
export declare const PROOF_LIMITS: {
|
|
92
|
+
readonly payload: number;
|
|
93
|
+
readonly criteria: 12;
|
|
94
|
+
readonly criterionId: 40;
|
|
95
|
+
readonly criterionStatement: 300;
|
|
96
|
+
readonly criterionHow: 500;
|
|
97
|
+
readonly evidencePerCriterion: 4;
|
|
98
|
+
readonly evidenceRef: 300;
|
|
99
|
+
readonly checks: 12;
|
|
100
|
+
readonly checkCommand: 300;
|
|
101
|
+
readonly checkSummary: 300;
|
|
102
|
+
readonly changed: 64;
|
|
103
|
+
readonly changedPath: 300;
|
|
104
|
+
readonly caveats: 8;
|
|
105
|
+
readonly caveat: 300;
|
|
106
|
+
readonly screenshots: 8;
|
|
107
|
+
readonly screenshotPath: 300;
|
|
108
|
+
readonly screenshotCaption: 300;
|
|
109
|
+
};
|
|
110
|
+
export declare function parseProof(raw: string): ProofParseResult;
|
|
111
|
+
/** Re-serialize the validated shape, never the agent's raw bytes (the
|
|
112
|
+
* scout report's rule, `scout.ts`): what is stored and later hash-verified
|
|
113
|
+
* is exactly what this parser admitted, key order and all. */
|
|
114
|
+
export declare function serializeProof(proof: ParsedProof): string;
|
|
115
|
+
/** One caveat that admits an exception to a criterion the same proof marks
|
|
116
|
+
* `met` — the proof's own verdict disagreeing with its own words (atomic
|
|
117
|
+
* authority closure). A caveat NAMES a criterion when the criterion's exact
|
|
118
|
+
* id appears in it as a standalone token (`c1: …`, `(c1)`, `c1,c4`); a
|
|
119
|
+
* named criterion must then be `not-met` or `not-checked`. Nothing here is
|
|
120
|
+
* semantic — the machine cannot read a free-text caveat's meaning, so the
|
|
121
|
+
* contract is the token, stated in the brief and refused by the preflight
|
|
122
|
+
* before the attempt ends. */
|
|
123
|
+
export type BlockingCaveat = {
|
|
124
|
+
caveat: string;
|
|
125
|
+
index: number;
|
|
126
|
+
criterionId: string;
|
|
127
|
+
};
|
|
128
|
+
/** Every (caveat, criterion) pair where the caveat names a criterion the
|
|
129
|
+
* proof marks `met` — the proof contradicts itself and cannot verify. In
|
|
130
|
+
* caveat order, then criterion order; `[]` for a proof at peace with its
|
|
131
|
+
* own caveats. */
|
|
132
|
+
export declare function blockingCaveats(proof: Pick<ParsedProof, "criteria" | "caveats">): BlockingCaveat[];
|
|
133
|
+
/** One check a criterion marked `met` cites that exited nonzero — the
|
|
134
|
+
* criterion's id, the exact cited command, and the exit code the proof
|
|
135
|
+
* itself reported. */
|
|
136
|
+
export type FailedCheckCitation = {
|
|
137
|
+
criterionId: string;
|
|
138
|
+
ref: string;
|
|
139
|
+
exitCode: number;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Every check a criterion marked `met` cites that the proof's own `checks`
|
|
143
|
+
* list says exited nonzero (proof preflight closure): a met criterion
|
|
144
|
+
* resting on a failing command is not evidence, it is a contradiction the
|
|
145
|
+
* adjudicator fails the row for. A not-met or not-checked criterion may
|
|
146
|
+
* cite a failed check honestly — it is reporting, not claiming — so only
|
|
147
|
+
* `met` and `pending-verification` count here: pending asserts the agent's
|
|
148
|
+
* own checks already passed. A ref that resolves to no check is a different
|
|
149
|
+
* problem (an unresolved ref), not this one. In criterion order, then
|
|
150
|
+
* evidence order.
|
|
151
|
+
*/
|
|
152
|
+
export declare function failedMetChecks(proof: Pick<ParsedProof, "criteria" | "checks">): FailedCheckCitation[];
|
|
153
|
+
/** The one actionable fact a failed check citation is reported as — the
|
|
154
|
+
* adjudicator's matrix detail and the agent's exit preflight say exactly
|
|
155
|
+
* this, so what the preflight refuses is what the plane would have said. */
|
|
156
|
+
export declare function failedCheckWords(one: FailedCheckCitation): string;
|
|
157
|
+
/**
|
|
158
|
+
* One caveat the machine cannot attribute (final authority closure): every
|
|
159
|
+
* caveat is an exception to a signed criterion, and it names that
|
|
160
|
+
* criterion's exact id as a standalone token — so a caveat that names NO
|
|
161
|
+
* known criterion (`unassigned`), or whose leading tag names an id nobody
|
|
162
|
+
* signed (`unknown`), is a claim the verdict cannot be reconciled with.
|
|
163
|
+
* An idea that is not an exception to any criterion belongs in the
|
|
164
|
+
* handoff's follow-ups, not here.
|
|
165
|
+
*
|
|
166
|
+
* THE KNOWN IDS ARE THE SIGNED ONES (final admission closure): when a
|
|
167
|
+
* rubric was signed, only its ids count — an extra criterion the proof
|
|
168
|
+
* authored for itself is the proof's own word, never signed authority, so
|
|
169
|
+
* a caveat tagged with it alone is unknown in preflight and adjudication
|
|
170
|
+
* alike. Only a proof with NO signed rubric may attribute its caveats to
|
|
171
|
+
* the criteria it answered.
|
|
172
|
+
*/
|
|
173
|
+
export type CaveatAttributionProblem = {
|
|
174
|
+
caveat: string;
|
|
175
|
+
index: number;
|
|
176
|
+
kind: "unassigned" | "unknown";
|
|
177
|
+
tags: string[];
|
|
178
|
+
/** The unknown tags the proof answered for itself (present only when a
|
|
179
|
+
* rubric was signed and at least one such tag exists): the words say
|
|
180
|
+
* the criterion is the proof's own, not that nobody answered it. */
|
|
181
|
+
answered?: string[];
|
|
182
|
+
};
|
|
183
|
+
export declare function caveatAttributionProblems(proof: Pick<ParsedProof, "criteria" | "caveats">, signedIds?: readonly string[]): CaveatAttributionProblem[];
|
|
184
|
+
/** The words one attribution problem refuses in — shared by the plane's
|
|
185
|
+
* adjudication and the agent's exit preflight so both say the same thing. */
|
|
186
|
+
export declare function caveatAttributionWords(problem: CaveatAttributionProblem): string;
|
|
187
|
+
/** One claimed screenshot's fate once the caller has read its bytes off the
|
|
188
|
+
* worktree and checked them against the PNG/JPEG signature and size cap. */
|
|
189
|
+
export type ScreenshotOutcome = {
|
|
190
|
+
path: string;
|
|
191
|
+
ok: boolean;
|
|
192
|
+
/** Set when ok is false — why the claimed file did not become evidence. */
|
|
193
|
+
problem?: string;
|
|
194
|
+
/** v39: set when ok is true — the bytes actually read, for the
|
|
195
|
+
* "meaningful byte size" half of the screenshot-evidence rule. */
|
|
196
|
+
bytes?: number;
|
|
197
|
+
/** v39: set when ok is true and dimensions could be read from the
|
|
198
|
+
* image header; null when the format parsed but dimensions could not
|
|
199
|
+
* be determined. Absent entirely for a pre-v39 caller. */
|
|
200
|
+
dims?: {
|
|
201
|
+
width: number;
|
|
202
|
+
height: number;
|
|
203
|
+
} | null;
|
|
204
|
+
};
|
|
205
|
+
/** v39: the floor a criterion's screenshot evidence must clear — "real,
|
|
206
|
+
* not placeholder-sized" in exact numbers (scope: "meaningful byte size
|
|
207
|
+
* and at least 320 by 200 dimensions"). */
|
|
208
|
+
export declare const SCREENSHOT_EVIDENCE_MIN_BYTES = 1024;
|
|
209
|
+
export declare const SCREENSHOT_EVIDENCE_MIN_WIDTH = 320;
|
|
210
|
+
export declare const SCREENSHOT_EVIDENCE_MIN_HEIGHT = 200;
|
|
211
|
+
/** What `captureTerminalDiff` gives back, restated for adjudication:
|
|
212
|
+
* whether the sealed stat parsed at all, whether the file list was cut to
|
|
213
|
+
* fit the cap, and the set of paths it names. A truncated stat cannot prove
|
|
214
|
+
* a claimed path is ABSENT, so rule 4 does not fire against one. */
|
|
215
|
+
export type DiffStatFacts = {
|
|
216
|
+
captured: boolean;
|
|
217
|
+
truncated: boolean;
|
|
218
|
+
paths: ReadonlySet<string>;
|
|
219
|
+
/** Old name → destination for every entry git paired as a rename or
|
|
220
|
+
* move. The old name is provenance the stat keeps; it is never one of
|
|
221
|
+
* `paths`. Absent on a stat that recorded no renames. */
|
|
222
|
+
renames?: ReadonlyMap<string, string>;
|
|
223
|
+
};
|
|
224
|
+
/** How a proof's `changed` list compares with the sealed diff-stat, read
|
|
225
|
+
* before the first review so the same session can correct a receipt the
|
|
226
|
+
* sealed facts themselves explain (the Goose FinalOutputTool pattern: a
|
|
227
|
+
* precise error plus the exact expected value, never a silent rewrite).
|
|
228
|
+
*
|
|
229
|
+
* `problems` names every discrepancy, one line per path. `recoverable` is
|
|
230
|
+
* true only when the stat is complete and EVERY discrepancy is one the
|
|
231
|
+
* sealed input establishes on its own: the old name of a rename git
|
|
232
|
+
* paired (the diff holds its destination once), or a sealed path the
|
|
233
|
+
* list left out. Then `sealed` is the one admissible correction — the
|
|
234
|
+
* complete sealed inventory, sorted — and nothing else is. A claimed path
|
|
235
|
+
* the diff never had is an unexplained contradiction: reported, never
|
|
236
|
+
* recoverable, so adjudication refutes it by name. An unavailable or
|
|
237
|
+
* truncated stat proves nothing either way: no problems, not recoverable. */
|
|
238
|
+
export type ChangedListReview = {
|
|
239
|
+
problems: string[];
|
|
240
|
+
recoverable: boolean;
|
|
241
|
+
sealed: string[] | null;
|
|
242
|
+
};
|
|
243
|
+
export declare function changedListProblems(changed: readonly string[], stat: DiffStatFacts | null): ChangedListReview;
|
|
244
|
+
/** What a receipt-only correction may never touch: the exact criterion
|
|
245
|
+
* id/verdict pairs the agent submitted (comment 397, run 1648). A
|
|
246
|
+
* correction restates a signed statement or repairs an evidence reference
|
|
247
|
+
* against the exact rubric; it cannot move an answer (not-met or
|
|
248
|
+
* not-checked becoming pending-verification, or any other change of
|
|
249
|
+
* word), drop a criterion — an extra negative answer is a finding, not a
|
|
250
|
+
* formatting defect — or add one. One line per frozen pair broken. */
|
|
251
|
+
export declare function frozenCriterionProblems(submitted: ParsedProof, corrected: ParsedProof): string[];
|
|
252
|
+
/** Whether two readings of the sealed diff-stat state the same facts:
|
|
253
|
+
* the same capture standing, the same paths and the same rename
|
|
254
|
+
* provenance. Settlement reads the stat once before the receipt
|
|
255
|
+
* correction and re-reads it after that correction and after the final
|
|
256
|
+
* gate; a reading that differs is never adjudicated from the cached one. */
|
|
257
|
+
export declare function sameDiffStatFacts(a: DiffStatFacts | null, b: DiffStatFacts | null): boolean;
|
|
258
|
+
/** The plane's own re-run of the repository's approved verification
|
|
259
|
+
* command, when one is configured. `ran: false` covers both "none
|
|
260
|
+
* configured" and "configured but the run could not attempt it" — the
|
|
261
|
+
* latter is distinguished by `attemptFailed`, which downgrades to `short`
|
|
262
|
+
* rather than `refuted`: "we could not check" is not "the claim is false". */
|
|
263
|
+
export type VerifyCommandFacts = {
|
|
264
|
+
configured: false;
|
|
265
|
+
} | {
|
|
266
|
+
configured: true;
|
|
267
|
+
ran: false;
|
|
268
|
+
attemptFailed: true;
|
|
269
|
+
failure?: "spawn-failed" | "timed-out" | "dependency-missing" | "setup-stale" | "setup-failed" | "tracked-files-changed" | "setup-changed-files" | "checkout-moved" | "cleanliness-unavailable" | "dependency-still-missing" | "retry-spawn-failed" | "retry-timed-out" | "custody-lost";
|
|
270
|
+
} | {
|
|
271
|
+
configured: true;
|
|
272
|
+
ran: true;
|
|
273
|
+
exitCode: number;
|
|
274
|
+
setupReplayed?: true;
|
|
275
|
+
};
|
|
276
|
+
export type AdjudicateInput = {
|
|
277
|
+
/** New captures may assess the signed goal directly when the builder wrote
|
|
278
|
+
* no optional proof. Historical calls retain their original contract. */
|
|
279
|
+
directAssessment?: boolean;
|
|
280
|
+
/** Controller-owned command label, never a builder-reported check. */
|
|
281
|
+
verificationCommand?: string;
|
|
282
|
+
/** Whether a `proof` artifact was stored at all for this run. */
|
|
283
|
+
proofArtifactPresent: boolean;
|
|
284
|
+
/** null when no proof artifact exists; otherwise the parse of its bytes. */
|
|
285
|
+
proofParse: ProofParseResult | null;
|
|
286
|
+
handoffPresent: boolean;
|
|
287
|
+
terminalDiffPresent: boolean;
|
|
288
|
+
terminalDiffCaptureStatus: "ok" | "failed" | null;
|
|
289
|
+
diffStat: DiffStatFacts | null;
|
|
290
|
+
verifyCommand: VerifyCommandFacts;
|
|
291
|
+
/** One entry per screenshot the proof claimed, in the order claimed.
|
|
292
|
+
* Empty when the proof named none. */
|
|
293
|
+
screenshots: readonly ScreenshotOutcome[];
|
|
294
|
+
/** v39: the SIGNED rubric this run's scope carried at dispatch, in id
|
|
295
|
+
* order. `[]` (the default) is the grandfathering promise made good:
|
|
296
|
+
* every rule below that reads this is skipped whole, and adjudication
|
|
297
|
+
* runs exactly the v1 rules that follow it. */
|
|
298
|
+
approvedCriteria?: readonly ApprovedCriterion[];
|
|
299
|
+
/** v51: the sealed review-context inventory's per-criterion coverage,
|
|
300
|
+
* when this run captured one. Attached to the matrix rows verbatim; it
|
|
301
|
+
* never moves the verdict — context is for the reviewer, the verdict is
|
|
302
|
+
* the machine's. Absent = no coverage key on any row. */
|
|
303
|
+
reviewContext?: readonly ({
|
|
304
|
+
id: string;
|
|
305
|
+
} & CriterionCoverage)[];
|
|
306
|
+
};
|
|
307
|
+
export type AdjudicateResult = {
|
|
308
|
+
verdict: ProofVerdict;
|
|
309
|
+
reasons: string[];
|
|
310
|
+
matrix: CriterionMatrixRow[];
|
|
311
|
+
machineVerdict?: ProofVerdict;
|
|
312
|
+
};
|
|
313
|
+
export declare const GOAL_ASSESSMENT_PENDING = "The saved evidence is awaiting independent goal assessment.";
|
|
314
|
+
/** Legacy folds could only lower a verdict. Direct assessment also records an
|
|
315
|
+
* ordinary wait between green machine checks and the goal judgement. */
|
|
316
|
+
export declare function reviewConflict(matrix: readonly CriterionMatrixRow[], machine: ProofVerdict | null, verdict: ProofVerdict | null): boolean;
|
|
317
|
+
/** One row of the criterion-to-evidence matrix every result-facing surface
|
|
318
|
+
* renders identically (task, run, done, builds, board, inbox, chat —
|
|
319
|
+
* Priority 2's "one surface, six places" rule, extended). `pass`: every
|
|
320
|
+
* required evidence kind resolved. `missing`: the criterion went
|
|
321
|
+
* unanswered, or a required kind has no reference at all. `failed`: a
|
|
322
|
+
* reference exists but did not resolve (wrong check exit code, invalid
|
|
323
|
+
* screenshot, a changed-path claim the sealed diff does not back).
|
|
324
|
+
* `manual-review`: every required kind resolved EXCEPT at least one
|
|
325
|
+
* `manual-review` kind, which is never machine-verifiable by design — the
|
|
326
|
+
* row still needs a human's eyes even though nothing failed. */
|
|
327
|
+
export type CriterionMatrixState = "pass" | "missing" | "failed" | "manual-review";
|
|
328
|
+
/** Human sign-off is owed, with no other recorded evidence failure. This is
|
|
329
|
+
* presentation only; it never changes a verdict or grants acceptance. */
|
|
330
|
+
export declare function manualReviewOnly(proof: {
|
|
331
|
+
verdict: string;
|
|
332
|
+
reasons: readonly string[];
|
|
333
|
+
matrix?: readonly CriterionMatrixRow[];
|
|
334
|
+
} | null): boolean;
|
|
335
|
+
export type CriterionMatrixRow = {
|
|
336
|
+
/** Controller-captured evidence for direct goal assessment. Kept separately
|
|
337
|
+
* from the final row state: available evidence is not a satisfied goal. */
|
|
338
|
+
assessment?: {
|
|
339
|
+
evidenceState: CriterionMatrixState;
|
|
340
|
+
detail: string[];
|
|
341
|
+
};
|
|
342
|
+
id: string;
|
|
343
|
+
statement: string;
|
|
344
|
+
requiredEvidence: readonly EvidenceKind[];
|
|
345
|
+
state: CriterionMatrixState;
|
|
346
|
+
/** Why this row is not a plain pass — empty for `pass`. */
|
|
347
|
+
detail: string[];
|
|
348
|
+
/** The proof's OWN typed evidence references for this criterion, exactly
|
|
349
|
+
* as it answered them — never only the required kinds, so a render can
|
|
350
|
+
* show what was actually cited (and link the artifact behind it, where
|
|
351
|
+
* one exists). `[]` when the criterion went unanswered. */
|
|
352
|
+
answered: readonly CriterionEvidenceRef[];
|
|
353
|
+
/** v40: the independent reviewer's judgement on this criterion, folded in
|
|
354
|
+
* by `foldReview` after `adjudicate` has already run — `null` until a
|
|
355
|
+
* review has settled, and for every criterion no review addressed. */
|
|
356
|
+
review: {
|
|
357
|
+
judgement: CriterionJudgementWord;
|
|
358
|
+
note: string;
|
|
359
|
+
author: string;
|
|
360
|
+
} | null;
|
|
361
|
+
/** v51 (inherited review context): where an independent reviewer's
|
|
362
|
+
* evidence for this criterion comes from — this run's own patch, a
|
|
363
|
+
* sealed context inventory, or nowhere (a named gap). Present only on
|
|
364
|
+
* runs that captured an inventory (revisions); absent on every other
|
|
365
|
+
* run, which reads exactly as before: judged from the patch. */
|
|
366
|
+
coverage?: CriterionCoverage;
|
|
367
|
+
};
|
|
368
|
+
/** The per-criterion context projection stored on the matrix row (v51),
|
|
369
|
+
* copied from the sealed inventory's coverage at adjudication. */
|
|
370
|
+
export type CriterionCoverage = {
|
|
371
|
+
state: "patch" | "context" | "gap";
|
|
372
|
+
/** Same id AND statement as the source run's signed rubric. */
|
|
373
|
+
inherited: boolean;
|
|
374
|
+
/** Provenance tokens (`ctx-<n>`) for complete files or explicitly partial
|
|
375
|
+
* ancestor patches. A partial patch keeps state `gap`, even with eligible
|
|
376
|
+
* prior support; neither property supplies a current judgement. */
|
|
377
|
+
items: string[];
|
|
378
|
+
/** Why context is missing or partial — empty for `patch` and `context`. */
|
|
379
|
+
gaps: string[];
|
|
380
|
+
/** Whether an earlier review of the source run may be weighed as
|
|
381
|
+
* context: eligible only with the same text, verified ancestry, and
|
|
382
|
+
* byte-identical relevant code. Never a judgement on this run. */
|
|
383
|
+
priorSupport: "eligible" | "invalid" | "none";
|
|
384
|
+
};
|
|
385
|
+
/** v40: the three words an evidence reviewer can say about one signed
|
|
386
|
+
* criterion, and nothing else — `cannot-tell` is a CORRECT answer whenever
|
|
387
|
+
* the sealed patch alone cannot settle a criterion, not a hedge. */
|
|
388
|
+
export type CriterionJudgementWord = "upholds" | "contradicts" | "cannot-tell";
|
|
389
|
+
/** One reviewer's typed judgement on one signed criterion (v40), ready to
|
|
390
|
+
* fold into an already-adjudicated result. */
|
|
391
|
+
export type CriterionJudgement = {
|
|
392
|
+
id: string;
|
|
393
|
+
judgement: CriterionJudgementWord;
|
|
394
|
+
note: string;
|
|
395
|
+
author: string;
|
|
396
|
+
};
|
|
397
|
+
/**
|
|
398
|
+
* Ordered rules; the first that fires wins. Every reason is a sentence the
|
|
399
|
+
* surfaces print verbatim — this function is the only place that decides
|
|
400
|
+
* wording, so the task page, run page, board, CLI, and chat cards cannot
|
|
401
|
+
* drift from each other (Priority 2, the "one surface, six places" rule).
|
|
402
|
+
*
|
|
403
|
+
* v39: `input.approvedCriteria` empty runs the rules below byte for byte —
|
|
404
|
+
* the grandfathering promise. Non-empty inserts the rubric rules AFTER the
|
|
405
|
+
* diff-stat and verify-command rules and BEFORE the legacy unmet check,
|
|
406
|
+
* exactly as approved in the v2 plan: a proof that alters a signed
|
|
407
|
+
* criterion's statement is REFUTED (the same severity as any other
|
|
408
|
+
* altered term); an unanswered criterion, an evidence reference that does
|
|
409
|
+
* not resolve, or a criterion capped at manual-review is SHORT (a gap, or
|
|
410
|
+
* a review a machine cannot finish, never a lie). The legacy self-declared
|
|
411
|
+
* `verdict` field still runs afterward and can only downgrade further,
|
|
412
|
+
* never upgrade past what the evidence proved.
|
|
413
|
+
*
|
|
414
|
+
* The changed[] vs. sealed-diff exactness check (review finding, post-v39)
|
|
415
|
+
* runs GLOBALLY, ahead of the rubric rules and independent of whether any
|
|
416
|
+
* criterion cites changed-path evidence at all — a rubric with none of
|
|
417
|
+
* those must not let an untruthful or incomplete changed[] through
|
|
418
|
+
* unchecked. An unavailable or truncated diff-stat cannot prove either
|
|
419
|
+
* direction, so it can only ever produce SHORT, never REFUTED.
|
|
420
|
+
*/
|
|
421
|
+
/** An optional screenshot inventory carries no builder-authored completion
|
|
422
|
+
* claims. The existing bounded parser still validates every supplied field. */
|
|
423
|
+
export declare function artifactManifestOnly(proof: ParsedProof): boolean;
|
|
424
|
+
export declare function adjudicate(input: AdjudicateInput): AdjudicateResult;
|
|
425
|
+
/**
|
|
426
|
+
* Folds an independent reviewer's per-criterion judgements into an ALREADY
|
|
427
|
+
* ADJUDICATED result (v40, evidence-review-v1) — pure, and never re-derives
|
|
428
|
+
* verdict facts that were not persisted (verify-command outcome, screenshot
|
|
429
|
+
* bytes): it folds over the STORED result, it does not re-run `adjudicate`.
|
|
430
|
+
*
|
|
431
|
+
* Three rules, and they are the whole contract:
|
|
432
|
+
* - `contradicts` -> refuted. A second reader saying a signed term is not
|
|
433
|
+
* met is the same severity as a proof that altered the term: the
|
|
434
|
+
* matching row becomes `failed`, with the reviewer's note as an
|
|
435
|
+
* attributed `detail` line.
|
|
436
|
+
* - `cannot-tell` changes nothing. Recorded and rendered, never moves the
|
|
437
|
+
* verdict — "we could not check" is not "the claim is false" (the same
|
|
438
|
+
* maxim `adjudicate` already lives by for an unavailable diff or a
|
|
439
|
+
* failed verify-command attempt).
|
|
440
|
+
* - `upholds` never upgrades. A `short` (or `attested`) run stays exactly
|
|
441
|
+
* what it was — this is the law that stops a second model laundering a
|
|
442
|
+
* bad proof, and the reason `foldReview` can only LOWER a verdict, never
|
|
443
|
+
* raise one.
|
|
444
|
+
*
|
|
445
|
+
* A judgement naming a criterion absent from `base.matrix` is ignored —
|
|
446
|
+
* `parseReview` already refuses a payload naming an unsigned id, so this is
|
|
447
|
+
* belt and suspenders, never a live path.
|
|
448
|
+
*/
|
|
449
|
+
export declare function foldReview(base: AdjudicateResult, judgements: readonly CriterionJudgement[]): AdjudicateResult;
|
|
450
|
+
/**
|
|
451
|
+
* SEMANTIC coverage (v51): what an INDEPENDENT reviewer actually settled,
|
|
452
|
+
* shown distinctly from the machine proof the matrix `state` records. One
|
|
453
|
+
* projection for the task page, run page, receipt, chat card, and CLI —
|
|
454
|
+
* never a second status engine: it reads the stored matrix and the run's
|
|
455
|
+
* signed quality mode and moves nothing.
|
|
456
|
+
*
|
|
457
|
+
* The policy is explicit and unchanged from v41: under `default` an
|
|
458
|
+
* independent review is optional, so absent or uncertain judgements are
|
|
459
|
+
* reported and nothing is "unsatisfied"; under `strict` (Strict / release)
|
|
460
|
+
* independent coverage is REQUIRED, and only `upholds` satisfies it — a
|
|
461
|
+
* `cannot-tell` is an honest answer that leaves the criterion uncovered,
|
|
462
|
+
* a `contradicts` is a failure, and an unreviewed criterion is uncovered.
|
|
463
|
+
* `cannot-tell` never satisfies required coverage under either policy.
|
|
464
|
+
* Context gaps (`coverage.state === "gap"`) are listed so a reader sees
|
|
465
|
+
* WHY a reviewer could not tell, in the same words the inventory used.
|
|
466
|
+
*/
|
|
467
|
+
export type SemanticCoverage = {
|
|
468
|
+
policy: "default" | "strict";
|
|
469
|
+
/** Independent coverage is required by the signed policy. */
|
|
470
|
+
required: boolean;
|
|
471
|
+
total: number;
|
|
472
|
+
upheld: string[];
|
|
473
|
+
contradicted: string[];
|
|
474
|
+
uncertain: string[];
|
|
475
|
+
unreviewed: string[];
|
|
476
|
+
/** Criterion ids with a named context gap, with the reasons — every
|
|
477
|
+
* row that carries one, whether or not the patch still judges it. */
|
|
478
|
+
contextGaps: {
|
|
479
|
+
id: string;
|
|
480
|
+
gaps: string[];
|
|
481
|
+
}[];
|
|
482
|
+
/** null when no review has folded at all (nothing to satisfy or fail);
|
|
483
|
+
* otherwise whether every criterion is upheld — the only reading under
|
|
484
|
+
* which required coverage counts as satisfied. */
|
|
485
|
+
satisfied: boolean | null;
|
|
486
|
+
};
|
|
487
|
+
export declare function semanticCoverage(matrix: readonly CriterionMatrixRow[], policy: "default" | "strict"): SemanticCoverage;
|
|
488
|
+
/** The coverage in plain words — one line every surface prints the same
|
|
489
|
+
* way. `[]` for a run with no rubric: nothing to cover. */
|
|
490
|
+
export declare function coverageWords(coverage: SemanticCoverage): string[];
|
|
491
|
+
/** The pass fraction of a criterion matrix — the one number every list
|
|
492
|
+
* surface (board, chat) needs, shared so "N/M criteria" is computed in
|
|
493
|
+
* exactly one place (v40 closes the two hand-rolled copies). */
|
|
494
|
+
export declare function passFraction(matrix: readonly CriterionMatrixRow[]): {
|
|
495
|
+
passed: number;
|
|
496
|
+
total: number;
|
|
497
|
+
};
|
|
498
|
+
/** The matrix in plain lines, for a text surface (the CLI, `brief`) — the
|
|
499
|
+
* same shared vocabulary `criterionMatrixHtml` renders in the console, so
|
|
500
|
+
* the words never drift between the two (Priority 2's rule, extended). */
|
|
501
|
+
export declare function matrixWords(matrix: readonly CriterionMatrixRow[]): string[];
|
|
502
|
+
/** One criterion's context standing in words — shared by the CLI matrix
|
|
503
|
+
* and the console badge title so the two never drift. */
|
|
504
|
+
export declare function coverageStateWords(coverage: CriterionCoverage): string;
|
|
505
|
+
/** Plain words for a verdict, shared by every surface (the `summary.ts`
|
|
506
|
+
* pattern) so the task page, run page, board, CLI, and chat cannot say
|
|
507
|
+
* three different things about the same run. */
|
|
508
|
+
export declare function verdictWords(verdict: ProofVerdict, reasons: readonly string[]): {
|
|
509
|
+
word: string;
|
|
510
|
+
detail: string;
|
|
511
|
+
};
|
|
512
|
+
/** The `data-dispatch-status` token a page's CSS and tests key off. */
|
|
513
|
+
export declare function dispatchStatusToken(verdict: ProofVerdict): "complete-verified" | "complete-with-evidence" | "needs-verification" | "proof-refuted";
|