peaks-loop 4.0.54 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +86 -39
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +57 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +32 -17
- package/dist/cli/commands/core/standards-command.js +56 -14
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +18 -23
- package/dist/cli/commands/ecc-commands.js +39 -36
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +16 -6
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +8 -10
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +66 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +25 -69
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -6
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +57 -0
- package/dist/services/comments/comment-audit.js +100 -0
- package/dist/services/comments/comment-citations.d.ts +60 -0
- package/dist/services/comments/comment-citations.js +186 -0
- package/dist/services/comments/comment-hygiene.d.ts +79 -0
- package/dist/services/comments/comment-hygiene.js +133 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +148 -0
- package/dist/services/comments/prune-apply.d.ts +60 -0
- package/dist/services/comments/prune-apply.js +150 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.d.ts +0 -16
- package/dist/services/log/retention.js +2 -18
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +144 -38
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +62 -1
- package/dist/services/prd/handoff-gate-evidence.js +14 -10
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +12 -38
- package/dist/services/prd/handoff-service.js +25 -147
- package/dist/services/prd/handoff-types.d.ts +33 -1
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/recommendations/installed-capability-detector.d.ts +5 -5
- package/dist/services/recommendations/installed-capability-detector.js +11 -10
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +74 -0
- package/dist/services/scan/archetype-detection.js +315 -0
- package/dist/services/scan/archetype-service.js +58 -133
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/scan-types.d.ts +9 -0
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +12 -4
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +286 -283
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -94
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -405
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { PrePostDiffConclusion } from './pre-post-diff.js';
|
|
2
|
+
import type { DimensionEvidence, DimensionKind } from './final-review-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* F2 — read what the delivered conclusion SAYS, and make a detected drift
|
|
5
|
+
* impossible to hand over as "nothing needs attention".
|
|
6
|
+
*
|
|
7
|
+
* The layer that made delivery a machine fact stopped one step short: it
|
|
8
|
+
* verified that the reviewer received the `VERDICT:` line and then threw the
|
|
9
|
+
* line away, keeping only a boolean. Measured (QA round 5, one export removed,
|
|
10
|
+
* the model replying 4/4 `pass`):
|
|
11
|
+
*
|
|
12
|
+
* VERDICT: STRUCTURAL DRIFT DETECTED — ... 1 export name(s).
|
|
13
|
+
* existing-functionality-intact: pass/high
|
|
14
|
+
* allPass: true | needsAttention: []
|
|
15
|
+
*
|
|
16
|
+
* — an envelope that says "clean handoff" directly above the evidence it
|
|
17
|
+
* attached itself, whose first line says a removal was detected. That is the
|
|
18
|
+
* same shape as every other hole here: a check that ran, whose RESULT was never
|
|
19
|
+
* consumed, so the check's presence was mistaken for its verdict.
|
|
20
|
+
*
|
|
21
|
+
* The verdict is deliberately NOT forced to `fail`: a removal can be authorized
|
|
22
|
+
* by the approved scope, and that judgement belongs to the reviewer and to the
|
|
23
|
+
* human. What is refused is SILENCE — a drift the service detected is a
|
|
24
|
+
* dimension a human has to look at, so it is named in `needsAttention` (which
|
|
25
|
+
* also clears `allPass`: a handoff with an open question is not a clean one)
|
|
26
|
+
* and its dimension says so in its own summary.
|
|
27
|
+
*
|
|
28
|
+
* `indeterminate` counts too. A delivered conclusion this service cannot
|
|
29
|
+
* classify is not "no drift" — it is a conclusion nobody read, which is the
|
|
30
|
+
* defect this function exists to close, so it is surfaced rather than dropped.
|
|
31
|
+
*/
|
|
32
|
+
export declare function enforceStructuralDriftAttention(dimensions: readonly DimensionEvidence[], deliveredConclusion: PrePostDiffConclusion | null): {
|
|
33
|
+
readonly dimensions: readonly DimensionEvidence[];
|
|
34
|
+
readonly mustAttend: boolean;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* `allPass` / `needsAttention` are DERIVED from the verdicts, never copied
|
|
38
|
+
* verbatim from the model's own summary fields: a model that writes a fabricated
|
|
39
|
+
* `pass` line plus a matching `allPass: true` would otherwise produce exactly
|
|
40
|
+
* the forged clean handoff this primitive exists to prevent, and once the gate
|
|
41
|
+
* above rewrites a verdict the two would silently disagree.
|
|
42
|
+
*
|
|
43
|
+
* Both fields are only ever NARROWED, never widened — `allPass` cannot become
|
|
44
|
+
* true unless the model also said true and no dimension is non-`pass`, and a
|
|
45
|
+
* dimension the model itself flagged is never dropped from `needsAttention`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function summarizeVerdicts(dimensions: readonly DimensionEvidence[], modelFlags: {
|
|
48
|
+
readonly allPass: unknown;
|
|
49
|
+
readonly needsAttention: unknown;
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Dimensions the SERVICE must flag whatever the model said — today, the one
|
|
53
|
+
* F2 names when the delivered baseline reports structural drift. A handoff
|
|
54
|
+
* with a machine-detected drift in it is not clean, so this also clears
|
|
55
|
+
* `allPass`, exactly as a non-`pass` verdict does.
|
|
56
|
+
*/
|
|
57
|
+
mustAttend?: readonly DimensionKind[]): {
|
|
58
|
+
readonly allPass: boolean;
|
|
59
|
+
readonly needsAttention: readonly DimensionKind[];
|
|
60
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// src/services/final-review/final-review-verdicts.ts
|
|
2
|
+
//
|
|
3
|
+
// F2 — reading the delivered conclusion — and the derived allPass /
|
|
4
|
+
// needsAttention summary. Hoisted verbatim from final-review-service.ts
|
|
5
|
+
// (C wave 7 file-size split).
|
|
6
|
+
/**
|
|
7
|
+
* F2 — read what the delivered conclusion SAYS, and make a detected drift
|
|
8
|
+
* impossible to hand over as "nothing needs attention".
|
|
9
|
+
*
|
|
10
|
+
* The layer that made delivery a machine fact stopped one step short: it
|
|
11
|
+
* verified that the reviewer received the `VERDICT:` line and then threw the
|
|
12
|
+
* line away, keeping only a boolean. Measured (QA round 5, one export removed,
|
|
13
|
+
* the model replying 4/4 `pass`):
|
|
14
|
+
*
|
|
15
|
+
* VERDICT: STRUCTURAL DRIFT DETECTED — ... 1 export name(s).
|
|
16
|
+
* existing-functionality-intact: pass/high
|
|
17
|
+
* allPass: true | needsAttention: []
|
|
18
|
+
*
|
|
19
|
+
* — an envelope that says "clean handoff" directly above the evidence it
|
|
20
|
+
* attached itself, whose first line says a removal was detected. That is the
|
|
21
|
+
* same shape as every other hole here: a check that ran, whose RESULT was never
|
|
22
|
+
* consumed, so the check's presence was mistaken for its verdict.
|
|
23
|
+
*
|
|
24
|
+
* The verdict is deliberately NOT forced to `fail`: a removal can be authorized
|
|
25
|
+
* by the approved scope, and that judgement belongs to the reviewer and to the
|
|
26
|
+
* human. What is refused is SILENCE — a drift the service detected is a
|
|
27
|
+
* dimension a human has to look at, so it is named in `needsAttention` (which
|
|
28
|
+
* also clears `allPass`: a handoff with an open question is not a clean one)
|
|
29
|
+
* and its dimension says so in its own summary.
|
|
30
|
+
*
|
|
31
|
+
* `indeterminate` counts too. A delivered conclusion this service cannot
|
|
32
|
+
* classify is not "no drift" — it is a conclusion nobody read, which is the
|
|
33
|
+
* defect this function exists to close, so it is surfaced rather than dropped.
|
|
34
|
+
*/
|
|
35
|
+
export function enforceStructuralDriftAttention(dimensions, deliveredConclusion) {
|
|
36
|
+
// `null` is "no conclusion was DELIVERED" — the gate above owns that case. It
|
|
37
|
+
// must not be folded into `indeterminate`: a project with no baseline has not
|
|
38
|
+
// delivered an unreadable conclusion, it has delivered none, and saying
|
|
39
|
+
// otherwise would put a false "the comparison was never read" marker on every
|
|
40
|
+
// non-git run.
|
|
41
|
+
if (deliveredConclusion === null)
|
|
42
|
+
return { dimensions, mustAttend: false };
|
|
43
|
+
if (deliveredConclusion === 'no-drift' || deliveredConclusion === 'additions-only') {
|
|
44
|
+
return { dimensions, mustAttend: false };
|
|
45
|
+
}
|
|
46
|
+
const what = deliveredConclusion === 'drift-detected'
|
|
47
|
+
? 'the delivered pre/post baseline diff reports STRUCTURAL DRIFT DETECTED'
|
|
48
|
+
: 'the delivered pre/post baseline diff carries a VERDICT line this service cannot classify, so the comparison was never actually read';
|
|
49
|
+
return {
|
|
50
|
+
dimensions: dimensions.map((dimension) => {
|
|
51
|
+
if (dimension.dimension !== 'existing-functionality-intact')
|
|
52
|
+
return dimension;
|
|
53
|
+
return {
|
|
54
|
+
...dimension,
|
|
55
|
+
summary: `${dimension.summary} [pre-post-diff-drift-gate: ${what}. The removal may well be authorized by the approved scope — that is the reviewer's and the human's call — but a detected drift is never "nothing needs attention": this dimension is listed in needsAttention and allPass is false.]`
|
|
56
|
+
};
|
|
57
|
+
}),
|
|
58
|
+
mustAttend: true
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* `allPass` / `needsAttention` are DERIVED from the verdicts, never copied
|
|
63
|
+
* verbatim from the model's own summary fields: a model that writes a fabricated
|
|
64
|
+
* `pass` line plus a matching `allPass: true` would otherwise produce exactly
|
|
65
|
+
* the forged clean handoff this primitive exists to prevent, and once the gate
|
|
66
|
+
* above rewrites a verdict the two would silently disagree.
|
|
67
|
+
*
|
|
68
|
+
* Both fields are only ever NARROWED, never widened — `allPass` cannot become
|
|
69
|
+
* true unless the model also said true and no dimension is non-`pass`, and a
|
|
70
|
+
* dimension the model itself flagged is never dropped from `needsAttention`.
|
|
71
|
+
*/
|
|
72
|
+
export function summarizeVerdicts(dimensions, modelFlags,
|
|
73
|
+
/**
|
|
74
|
+
* Dimensions the SERVICE must flag whatever the model said — today, the one
|
|
75
|
+
* F2 names when the delivered baseline reports structural drift. A handoff
|
|
76
|
+
* with a machine-detected drift in it is not clean, so this also clears
|
|
77
|
+
* `allPass`, exactly as a non-`pass` verdict does.
|
|
78
|
+
*/
|
|
79
|
+
mustAttend = []) {
|
|
80
|
+
const nonPass = dimensions.filter((d) => d.verdict !== 'pass').map((d) => d.dimension);
|
|
81
|
+
const flaggedByModel = Array.isArray(modelFlags.needsAttention)
|
|
82
|
+
? modelFlags.needsAttention
|
|
83
|
+
: [];
|
|
84
|
+
return {
|
|
85
|
+
allPass: modelFlags.allPass !== false &&
|
|
86
|
+
dimensions.length > 0 &&
|
|
87
|
+
nonPass.length === 0 &&
|
|
88
|
+
mustAttend.length === 0,
|
|
89
|
+
needsAttention: [...new Set([...flaggedByModel, ...nonPass, ...mustAttend])]
|
|
90
|
+
};
|
|
91
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { prepareFinalReview, type PrepareFinalReviewOptions, type LlmRunner, IncompleteFinalReviewError, MAX_EVIDENCE_BYTES_PER_FILE, MAX_EVIDENCE_BYTES_TOTAL, assertFloorReservationAffordable, undeliverableDimensions, type UndeliverableDimensionEvidence
|
|
2
|
-
export { classifyPrePostDiffVerdict, type PrePostDiffConclusion
|
|
3
|
-
export type { DimensionKind, DimensionVerdict, EvidenceKind, DimensionConfidence, EvidenceItem, DimensionEvidence, FinalReviewOutput
|
|
1
|
+
export { prepareFinalReview, type PrepareFinalReviewOptions, type LlmRunner, IncompleteFinalReviewError, MAX_EVIDENCE_BYTES_PER_FILE, MAX_EVIDENCE_BYTES_TOTAL, assertFloorReservationAffordable, undeliverableDimensions, type UndeliverableDimensionEvidence } from './final-review-service.js';
|
|
2
|
+
export { classifyPrePostDiffVerdict, type PrePostDiffConclusion } from './pre-post-diff.js';
|
|
3
|
+
export type { DimensionKind, DimensionVerdict, EvidenceKind, DimensionConfidence, EvidenceItem, DimensionEvidence, FinalReviewOutput } from './final-review-types.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { prepareFinalReview, IncompleteFinalReviewError, MAX_EVIDENCE_BYTES_PER_FILE, MAX_EVIDENCE_BYTES_TOTAL, assertFloorReservationAffordable, undeliverableDimensions
|
|
2
|
-
export { classifyPrePostDiffVerdict
|
|
1
|
+
export { prepareFinalReview, IncompleteFinalReviewError, MAX_EVIDENCE_BYTES_PER_FILE, MAX_EVIDENCE_BYTES_TOTAL, assertFloorReservationAffordable, undeliverableDimensions } from './final-review-service.js';
|
|
2
|
+
export { classifyPrePostDiffVerdict } from './pre-post-diff.js';
|
|
@@ -84,7 +84,9 @@ export const PRE_POST_DIFF_DRIFT_DETECTED = 'STRUCTURAL DRIFT DETECTED';
|
|
|
84
84
|
* prose masquerade as its conclusion.
|
|
85
85
|
*/
|
|
86
86
|
export function classifyPrePostDiffVerdict(content) {
|
|
87
|
-
const line = content
|
|
87
|
+
const line = content
|
|
88
|
+
.split(/\r?\n/)
|
|
89
|
+
.find((candidate) => candidate.startsWith(PRE_POST_DIFF_VERDICT_MARKER));
|
|
88
90
|
if (line === undefined)
|
|
89
91
|
return 'indeterminate';
|
|
90
92
|
const conclusion = line.slice(PRE_POST_DIFF_VERDICT_MARKER.length);
|
|
@@ -98,12 +100,7 @@ export function classifyPrePostDiffVerdict(content) {
|
|
|
98
100
|
}
|
|
99
101
|
/** Test-file globs — the single definition both the file count and the case
|
|
100
102
|
* count use, so the two can never disagree about what a "test file" is. */
|
|
101
|
-
export const TEST_FILE_GLOBS = [
|
|
102
|
-
'*.test.ts',
|
|
103
|
-
'*.test.tsx',
|
|
104
|
-
'*.spec.ts',
|
|
105
|
-
'*.spec.tsx'
|
|
106
|
-
];
|
|
103
|
+
export const TEST_FILE_GLOBS = ['*.test.ts', '*.test.tsx', '*.spec.ts', '*.spec.tsx'];
|
|
107
104
|
/** Source globs for the public-API surface. */
|
|
108
105
|
export const API_SOURCE_GLOBS = ['*.ts', '*.tsx'];
|
|
109
106
|
const TEST_FILE_RE = /\.(test|spec)\.(ts|tsx)$/;
|
|
@@ -189,8 +186,8 @@ function runGit(cwd, args) {
|
|
|
189
186
|
function lines(text) {
|
|
190
187
|
return text
|
|
191
188
|
.split(/\r?\n/)
|
|
192
|
-
.map(line => line.trim())
|
|
193
|
-
.filter(line => line.length > 0);
|
|
189
|
+
.map((line) => line.trim())
|
|
190
|
+
.filter((line) => line.length > 0);
|
|
194
191
|
}
|
|
195
192
|
function isTestPath(path) {
|
|
196
193
|
return TEST_FILE_RE.test(path);
|
|
@@ -203,13 +200,13 @@ function isTestPath(path) {
|
|
|
203
200
|
function namesInExportList(body) {
|
|
204
201
|
return body
|
|
205
202
|
.split(',')
|
|
206
|
-
.map(part => part.replace(/^\s*type\s+/, '').trim())
|
|
207
|
-
.filter(part => part.length > 0)
|
|
208
|
-
.map(part => {
|
|
203
|
+
.map((part) => part.replace(/^\s*type\s+/, '').trim())
|
|
204
|
+
.filter((part) => part.length > 0)
|
|
205
|
+
.map((part) => {
|
|
209
206
|
const alias = /\s+as\s+([A-Za-z_$][\w$]*)$/.exec(part);
|
|
210
207
|
return alias === null ? part : alias[1];
|
|
211
208
|
})
|
|
212
|
-
.filter(name => /^[A-Za-z_$][\w$]*$/.test(name));
|
|
209
|
+
.filter((name) => /^[A-Za-z_$][\w$]*$/.test(name));
|
|
213
210
|
}
|
|
214
211
|
/**
|
|
215
212
|
* The exported NAMES bound by one source line. Approximate by design: the
|
|
@@ -286,7 +283,12 @@ function countFilesMatching(repoRoot, paths, re) {
|
|
|
286
283
|
function resolveBaseRef(repoRoot, explicit) {
|
|
287
284
|
if (explicit !== undefined && explicit.trim() !== '') {
|
|
288
285
|
const requested = explicit.trim();
|
|
289
|
-
const resolved = runGit(repoRoot, [
|
|
286
|
+
const resolved = runGit(repoRoot, [
|
|
287
|
+
'rev-parse',
|
|
288
|
+
'--verify',
|
|
289
|
+
'--quiet',
|
|
290
|
+
`${requested}^{commit}`
|
|
291
|
+
]);
|
|
290
292
|
if (resolved.stdout.trim() !== '') {
|
|
291
293
|
return { ok: true, ref: resolved.stdout.trim(), label: requested, reason: '' };
|
|
292
294
|
}
|
|
@@ -350,10 +352,10 @@ function delta(before, after) {
|
|
|
350
352
|
function renderFileList(label, added, removed, netDelta) {
|
|
351
353
|
const lines = [];
|
|
352
354
|
if (netDelta < 0 && removed.length > 0) {
|
|
353
|
-
lines.push(`Removed ${label} (${String(removed.length)}):`, ...removed.map(p => ` - ${p}`));
|
|
355
|
+
lines.push(`Removed ${label} (${String(removed.length)}):`, ...removed.map((p) => ` - ${p}`));
|
|
354
356
|
}
|
|
355
357
|
if (netDelta > 0 && added.length > 0) {
|
|
356
|
-
lines.push(`Added ${label} (${String(added.length)}):`, ...added.map(p => ` + ${p}`));
|
|
358
|
+
lines.push(`Added ${label} (${String(added.length)}):`, ...added.map((p) => ` + ${p}`));
|
|
357
359
|
}
|
|
358
360
|
if (netDelta === 0 && (added.length > 0 || removed.length > 0)) {
|
|
359
361
|
lines.push(`${label}: ${String(removed.length)} path(s) gone / ${String(added.length)} new, with NO net change — so this is a path change (a move or a rename), not a removal.`);
|
|
@@ -427,11 +429,11 @@ export function producePrePostDiff(opts) {
|
|
|
427
429
|
const trackedFiles = lines(runGit(repoRoot, ['ls-files', '-co', '--exclude-standard']).stdout);
|
|
428
430
|
const untrackedFiles = lines(runGit(repoRoot, ['ls-files', '--others', '--exclude-standard']).stdout);
|
|
429
431
|
// `ls-files` lists INDEX entries, and an entry can outlive its file on disk.
|
|
430
|
-
const afterFiles = trackedFiles.filter(path => existsSync(join(repoRoot, path)));
|
|
432
|
+
const afterFiles = trackedFiles.filter((path) => existsSync(join(repoRoot, path)));
|
|
431
433
|
const testFilesBefore = baseFiles.filter(isTestPath);
|
|
432
434
|
const testFilesAfter = afterFiles.filter(isTestPath);
|
|
433
|
-
const addedTestFiles = testFilesAfter.filter(path => !baseFiles.includes(path));
|
|
434
|
-
const removedTestFiles = testFilesBefore.filter(path => !afterFiles.includes(path));
|
|
435
|
+
const addedTestFiles = testFilesAfter.filter((path) => !baseFiles.includes(path));
|
|
436
|
+
const removedTestFiles = testFilesBefore.filter((path) => !afterFiles.includes(path));
|
|
435
437
|
// F4 — the SOURCE FILE lists, so a deleted module is visible even when the
|
|
436
438
|
// counts it would have moved do not move at all: a `.ts` module with no
|
|
437
439
|
// top-level `export ` line leaves the export count untouched, and a module
|
|
@@ -443,13 +445,12 @@ export function producePrePostDiff(opts) {
|
|
|
443
445
|
// never counted twice.
|
|
444
446
|
const sourceFilesBefore = baseFiles.filter(isSourcePath);
|
|
445
447
|
const sourceFilesAfter = afterFiles.filter(isSourcePath);
|
|
446
|
-
const addedSourceFiles = sourceFilesAfter.filter(path => !baseFiles.includes(path));
|
|
447
|
-
const removedSourceFiles = sourceFilesBefore.filter(path => !afterFiles.includes(path));
|
|
448
|
+
const addedSourceFiles = sourceFilesAfter.filter((path) => !baseFiles.includes(path));
|
|
449
|
+
const removedSourceFiles = sourceFilesBefore.filter((path) => !afterFiles.includes(path));
|
|
448
450
|
// ---- test surface --------------------------------------------------------
|
|
449
451
|
// Before: the base TREE (a tree grep cannot hit the ignore-walk trap above).
|
|
450
452
|
// After: the working tree, read from the files `afterFiles` lists.
|
|
451
|
-
const testCasesBefore = sumGrepCounts(runGit(repoRoot, ['grep', '-c', '-E', TEST_CASE_ERE, base.ref, '--', ...TEST_FILE_GLOBS])
|
|
452
|
-
.stdout);
|
|
453
|
+
const testCasesBefore = sumGrepCounts(runGit(repoRoot, ['grep', '-c', '-E', TEST_CASE_ERE, base.ref, '--', ...TEST_FILE_GLOBS]).stdout);
|
|
453
454
|
const testCasesAfter = countFilesMatching(repoRoot, testFilesAfter, TEST_CASE_LINE_RE);
|
|
454
455
|
// ---- public API surface (changed .ts / .tsx files only) ------------------
|
|
455
456
|
// The COUNT keeps the `*.ts` / `*.tsx` glob semantics on both sides — the base
|
|
@@ -457,7 +458,7 @@ export function producePrePostDiff(opts) {
|
|
|
457
458
|
// and the working-tree side must not either, or the two sides would count
|
|
458
459
|
// different file sets. The FILE LISTS (`sourceFiles*`) are the disjoint
|
|
459
460
|
// non-test surface used for the artifact and the removal rule.
|
|
460
|
-
const countedSourceAfter = afterFiles.filter(path => /\.(ts|tsx)$/.test(path));
|
|
461
|
+
const countedSourceAfter = afterFiles.filter((path) => /\.(ts|tsx)$/.test(path));
|
|
461
462
|
const exportsBefore = sumGrepCounts(runGit(repoRoot, ['grep', '-c', '-E', EXPORT_LINE_ERE, base.ref, '--', ...API_SOURCE_GLOBS])
|
|
462
463
|
.stdout);
|
|
463
464
|
const exportsAfter = countFilesMatching(repoRoot, countedSourceAfter, EXPORT_LINE_RE);
|
|
@@ -513,11 +514,11 @@ export function producePrePostDiff(opts) {
|
|
|
513
514
|
}
|
|
514
515
|
// Untracked files are invisible to `git diff`, and in this repo's workflow the
|
|
515
516
|
// slice's new files are exactly the ones still untracked.
|
|
516
|
-
for (const path of untrackedFiles.filter(path => /\.(ts|tsx)$/.test(path))) {
|
|
517
|
+
for (const path of untrackedFiles.filter((path) => /\.(ts|tsx)$/.test(path))) {
|
|
517
518
|
try {
|
|
518
519
|
for (const name of readFileSync(join(repoRoot, path), 'utf8')
|
|
519
520
|
.split(/\r?\n/)
|
|
520
|
-
.flatMap(line => extractExportedNames(line))) {
|
|
521
|
+
.flatMap((line) => extractExportedNames(line))) {
|
|
521
522
|
addedExports.push({ name, path });
|
|
522
523
|
}
|
|
523
524
|
}
|
|
@@ -576,7 +577,7 @@ export function producePrePostDiff(opts) {
|
|
|
576
577
|
'## Verdict',
|
|
577
578
|
verdict,
|
|
578
579
|
'',
|
|
579
|
-
|
|
580
|
+
"# The verdict above is repeated nowhere: it is the file's conclusion. The method",
|
|
580
581
|
'# and the raw counts it rests on follow, for a human who wants to check it.',
|
|
581
582
|
'#',
|
|
582
583
|
`# Base ref : ${base.label} (${base.ref})`,
|
|
@@ -594,7 +595,7 @@ export function producePrePostDiff(opts) {
|
|
|
594
595
|
'#',
|
|
595
596
|
'# METHOD — public API surface (changed .ts / .tsx files only)',
|
|
596
597
|
'# Top-level `export` statements (lines anchored at column 0) are counted with',
|
|
597
|
-
|
|
598
|
+
'# `git grep -c` on both sides. The added/removed NAMES come from the changed',
|
|
598
599
|
"# lines of `git diff -U0 <base> -- '*.ts' '*.tsx'`, plus any untracked file",
|
|
599
600
|
'# read from disk. The FILE lists below cover non-test `.ts` / `.tsx` files.',
|
|
600
601
|
'#',
|
|
@@ -660,6 +661,8 @@ export function producePrePostDiff(opts) {
|
|
|
660
661
|
`non-test source files ${delta(sourceFilesBefore.length, sourceFilesAfter.length)}, ` +
|
|
661
662
|
`top-level export statements ${delta(exportsBefore, exportsAfter)}, ` +
|
|
662
663
|
`+${String(addedExports.length)} / -${String(removedExports.length)} export names. ` +
|
|
663
|
-
(removals.length === 0
|
|
664
|
+
(removals.length === 0
|
|
665
|
+
? 'No structural removal detected.'
|
|
666
|
+
: `Structural removals: ${removals.join('; ')}.`);
|
|
664
667
|
return { status: 'computed', summary, relativePath, absolutePath, content };
|
|
665
668
|
}
|
|
@@ -178,7 +178,8 @@ function inferEnvelopeFromBody(body) {
|
|
|
178
178
|
return 'audit-security';
|
|
179
179
|
if (/^---\n[\s\S]*?verdict\s*:/m.test(body) && /perf|baseline|threshold/i.test(body))
|
|
180
180
|
return 'audit-perf';
|
|
181
|
-
if (/^## Karpathy-Gate[\s\S]*?gateAction\s*:/m.test(body) ||
|
|
181
|
+
if (/^## Karpathy-Gate[\s\S]*?gateAction\s*:/m.test(body) ||
|
|
182
|
+
/gateAction\s*:\s*(pass|warn|block)/m.test(body))
|
|
182
183
|
return 'karpathy-review';
|
|
183
184
|
if (/^---$|schemaVersion.*2|sha256\s*:/m.test(body))
|
|
184
185
|
return 'prd-handoff';
|
|
@@ -250,7 +251,15 @@ function applyEdgeCaseVariant(raw, variant, envelope) {
|
|
|
250
251
|
// The parser must still recover the frontmatter envelope.
|
|
251
252
|
const json = JSON.stringify({
|
|
252
253
|
verdict: 'warn',
|
|
253
|
-
violations: [
|
|
254
|
+
violations: [
|
|
255
|
+
{
|
|
256
|
+
dimension: 'embed',
|
|
257
|
+
severity: 'HIGH',
|
|
258
|
+
file: 'embed.ts',
|
|
259
|
+
line: 1,
|
|
260
|
+
hint: 'embedded json'
|
|
261
|
+
}
|
|
262
|
+
],
|
|
254
263
|
summary: 'embedded json inside markdown'
|
|
255
264
|
}, null, 2);
|
|
256
265
|
return `${raw}\n\n## Embedded JSON\n\n\`\`\`json\n${json}\n\`\`\`\n`;
|
|
@@ -274,11 +283,10 @@ function applyEdgeCaseVariant(raw, variant, envelope) {
|
|
|
274
283
|
const body = fmMatch !== null ? fmMatch[2] : raw;
|
|
275
284
|
const kept = body
|
|
276
285
|
.split('\n')
|
|
277
|
-
.filter((line) => /^\s*(verdict|passed|gateAction|verdict\s*:)\s*[::]/i.test(line) ||
|
|
286
|
+
.filter((line) => /^\s*(verdict|passed|gateAction|verdict\s*:)\s*[::]/i.test(line) ||
|
|
287
|
+
line.trim().length === 0)
|
|
278
288
|
.join('\n');
|
|
279
|
-
return fmMatch !== null
|
|
280
|
-
? `---\n${fmMatch[1]}\n---\n${kept}`
|
|
281
|
-
: kept;
|
|
289
|
+
return fmMatch !== null ? `---\n${fmMatch[1]}\n---\n${kept}` : kept;
|
|
282
290
|
}
|
|
283
291
|
case 'multi-findings': {
|
|
284
292
|
// For envelopes with `## Findings` sections, duplicate the
|
|
@@ -15,8 +15,19 @@
|
|
|
15
15
|
*/
|
|
16
16
|
/** Signal keywords — matched case-insensitively as substrings. */
|
|
17
17
|
export const SIGNAL_KEYWORDS = [
|
|
18
|
-
'升级',
|
|
19
|
-
'
|
|
18
|
+
'升级',
|
|
19
|
+
'迁移',
|
|
20
|
+
'最新',
|
|
21
|
+
'latest',
|
|
22
|
+
'new',
|
|
23
|
+
'版本',
|
|
24
|
+
'兼容',
|
|
25
|
+
'breaking',
|
|
26
|
+
'upgrade',
|
|
27
|
+
'migrate',
|
|
28
|
+
'新框架',
|
|
29
|
+
'推荐库',
|
|
30
|
+
'选型'
|
|
20
31
|
];
|
|
21
32
|
/** Force keywords — the user explicitly asks for a live search. */
|
|
22
33
|
export const FORCE_KEYWORDS = ['联网搜', '查最新', '搜一下'];
|
|
@@ -32,7 +32,7 @@ export function fuzzyMatchWithKey(query, items, options) {
|
|
|
32
32
|
limit,
|
|
33
33
|
// Per spec: default is case-insensitive (NOT fzf's smart-case).
|
|
34
34
|
// The user explicitly opts into case-sensitive via caseSensitive:true.
|
|
35
|
-
casing: options.caseSensitive === true ? 'case-sensitive' : 'case-insensitive'
|
|
35
|
+
casing: options.caseSensitive === true ? 'case-sensitive' : 'case-insensitive'
|
|
36
36
|
// normalize:true (default) strips diacritics; fzf returns more matches
|
|
37
37
|
// for non-ASCII text this way, which is what we want for
|
|
38
38
|
// bilingual (zh-CN + en) memory entries.
|
|
@@ -48,7 +48,12 @@ export async function pickFromList(options) {
|
|
|
48
48
|
if (options.items.length === 0) {
|
|
49
49
|
// Nothing to pick from. Still write an empty picked artifact so
|
|
50
50
|
// downstream commands have a stable file contract.
|
|
51
|
-
const emptyPayload = {
|
|
51
|
+
const emptyPayload = {
|
|
52
|
+
...options.meta,
|
|
53
|
+
pickedAt: new Date().toISOString(),
|
|
54
|
+
fzfVersion,
|
|
55
|
+
picked: []
|
|
56
|
+
};
|
|
52
57
|
writeArtifact(options.outputPath, emptyPayload);
|
|
53
58
|
return { picked: [], outputPath: options.outputPath, fzfVersion };
|
|
54
59
|
}
|
|
@@ -26,7 +26,7 @@ export const HARD_BLOCKED_PATH_FAMILIES = [
|
|
|
26
26
|
'tests/integration/',
|
|
27
27
|
'config/',
|
|
28
28
|
'bin/',
|
|
29
|
-
'scripts/'
|
|
29
|
+
'scripts/'
|
|
30
30
|
];
|
|
31
31
|
/** Allow-listed path prefixes / suffixes — orchestrator may freely Edit/Write these. */
|
|
32
32
|
export const ALLOW_LISTED_PATH_PATTERNS = [
|
|
@@ -36,7 +36,7 @@ export const ALLOW_LISTED_PATH_PATTERNS = [
|
|
|
36
36
|
'docs/',
|
|
37
37
|
'.md',
|
|
38
38
|
'CHANGELOG.md',
|
|
39
|
-
'README.md'
|
|
39
|
+
'README.md'
|
|
40
40
|
];
|
|
41
41
|
/** Pull the target file path from `input.file_path | input.path | input.notebook_path`. */
|
|
42
42
|
export function extractFilePath(input) {
|
|
@@ -105,12 +105,22 @@ export function detectPresenceMarker(input) {
|
|
|
105
105
|
const markerFound = messageHasMarker(message);
|
|
106
106
|
if (markerFound) {
|
|
107
107
|
if (brokenGraph !== null) {
|
|
108
|
-
return {
|
|
108
|
+
return {
|
|
109
|
+
active: true,
|
|
110
|
+
skill: presence.skill,
|
|
111
|
+
markerFound: true,
|
|
112
|
+
warning: `Peaks presence active but graph is broken (${brokenGraph}); run \`peaks workspace reconcile\` to repair.`
|
|
113
|
+
};
|
|
109
114
|
}
|
|
110
115
|
return { active: true, skill: presence.skill, markerFound: true };
|
|
111
116
|
}
|
|
112
117
|
if (brokenGraph !== null) {
|
|
113
|
-
return {
|
|
118
|
+
return {
|
|
119
|
+
active: true,
|
|
120
|
+
skill: presence.skill,
|
|
121
|
+
markerFound: false,
|
|
122
|
+
warning: `Peaks presence active but graph is broken (${brokenGraph}); run \`peaks workspace reconcile\` to repair.`
|
|
123
|
+
};
|
|
114
124
|
}
|
|
115
125
|
return {
|
|
116
126
|
active: true,
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
import { createHash } from 'node:crypto';
|
|
36
36
|
import { existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
37
37
|
import { dirname, join } from 'node:path';
|
|
38
|
-
import { deserializeLease, isLeaseActive, leaseFilePath
|
|
38
|
+
import { deserializeLease, isLeaseActive, leaseFilePath } from '../worktree/worktree-lease.js';
|
|
39
39
|
import { readDispatchProvenance } from '../worktree/dispatch-provenance.js';
|
|
40
|
-
import { containerLeaseFilePath, deserializeContainerLease, isContainerLeaseActive
|
|
40
|
+
import { containerLeaseFilePath, deserializeContainerLease, isContainerLeaseActive } from '../container/container-lease.js';
|
|
41
41
|
export const WORKTREE_AUTH_FILE = 'worktree-auth.json';
|
|
42
42
|
/** Stable identifier of the current "user authorization" — derived from session + tool + key args. */
|
|
43
43
|
export function currentAuthFingerprint(input) {
|
|
@@ -184,7 +184,12 @@ export function decideFromAuthorization(input, operation, file) {
|
|
|
184
184
|
.filter((g) => Date.parse(g.expiresAt) > now)
|
|
185
185
|
.find((g) => g.requestId === null || g.requestId === input.requestId);
|
|
186
186
|
if (requestMatched !== undefined) {
|
|
187
|
-
return {
|
|
187
|
+
return {
|
|
188
|
+
allow: true,
|
|
189
|
+
authorization: requestMatched,
|
|
190
|
+
remaining: file.grants.length,
|
|
191
|
+
viaLease: null
|
|
192
|
+
};
|
|
188
193
|
}
|
|
189
194
|
// No live grant matched the current rid (or the caller's rid is null). Diagnose why.
|
|
190
195
|
const sameOpAnyState = file.grants.filter((g) => g.operation === operation);
|
|
@@ -197,7 +202,8 @@ export function decideFromAuthorization(input, operation, file) {
|
|
|
197
202
|
};
|
|
198
203
|
}
|
|
199
204
|
const ridScoped = sameOpAnyState.find((g) => g.requestId !== null);
|
|
200
|
-
const ridMatchesScope = ridScoped !== undefined &&
|
|
205
|
+
const ridMatchesScope = ridScoped !== undefined &&
|
|
206
|
+
(input.requestId === null || ridScoped.requestId === input.requestId);
|
|
201
207
|
if (ridScoped !== undefined && !ridMatchesScope) {
|
|
202
208
|
return {
|
|
203
209
|
allow: false,
|
|
@@ -236,7 +242,11 @@ export function evaluateWorktreeAuth(input) {
|
|
|
236
242
|
if (operation === 'agent-isolation-worktree') {
|
|
237
243
|
const token = input.dispatchProvenanceToken ?? '';
|
|
238
244
|
const provenance = token.length > 0
|
|
239
|
-
? readDispatchProvenance({
|
|
245
|
+
? readDispatchProvenance({
|
|
246
|
+
projectRoot: input.projectRoot,
|
|
247
|
+
sessionId: input.sessionId,
|
|
248
|
+
token
|
|
249
|
+
})
|
|
240
250
|
: null;
|
|
241
251
|
if (provenance === null ||
|
|
242
252
|
input.leaseId === null ||
|
|
@@ -309,7 +319,9 @@ export function evaluateWorktreeAuth(input) {
|
|
|
309
319
|
// `peaks worktree auth grant` are unaffected (their grants already allowed above).
|
|
310
320
|
if (input.leaseId === null || input.leaseId === undefined || input.leaseId.length === 0) {
|
|
311
321
|
// Part 19: try the container lease fallback before giving up.
|
|
312
|
-
if (input.containerLeaseId !== null &&
|
|
322
|
+
if (input.containerLeaseId !== null &&
|
|
323
|
+
input.containerLeaseId !== undefined &&
|
|
324
|
+
input.containerLeaseId.length > 0) {
|
|
313
325
|
return decideFromContainerLease(input);
|
|
314
326
|
}
|
|
315
327
|
return decision;
|
|
@@ -320,7 +332,9 @@ export function evaluateWorktreeAuth(input) {
|
|
|
320
332
|
// Part 19: if the worktree lease did not allow, try the container
|
|
321
333
|
// lease as a second lease path (sub-agents with container
|
|
322
334
|
// isolation).
|
|
323
|
-
if (input.containerLeaseId !== null &&
|
|
335
|
+
if (input.containerLeaseId !== null &&
|
|
336
|
+
input.containerLeaseId !== undefined &&
|
|
337
|
+
input.containerLeaseId.length > 0) {
|
|
324
338
|
return decideFromContainerLease(input);
|
|
325
339
|
}
|
|
326
340
|
return leaseResult;
|