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
|
@@ -33,36 +33,22 @@
|
|
|
33
33
|
*
|
|
34
34
|
* Pure-function module. The CLI shim (code-orchestrator-can-do.ts)
|
|
35
35
|
* adapts the envelope into the program's `ResultEnvelope<T>` shape.
|
|
36
|
+
*
|
|
37
|
+
* Slice c2w1 (strict-remediation-abc) hoisted two cohesive halves out of this
|
|
38
|
+
* file into siblings, both re-exported here so nothing else moved:
|
|
39
|
+
* `./orchestrator-can-do-probes.js` (the Q2/Q4 subprocess probes) and
|
|
40
|
+
* `./orchestrator-can-do-advisories.js` (the Q1/Q2/Q3/Q4 message builders,
|
|
41
|
+
* incl. the 0.95 / 0.85 thresholds).
|
|
36
42
|
*/
|
|
37
|
-
import { execFile } from 'node:child_process';
|
|
38
|
-
import { promisify } from 'node:util';
|
|
39
43
|
import { randomUUID } from 'node:crypto';
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const execFileAsync = promisify(execFile);
|
|
49
|
-
/** Sentinel: no explicit binary was injected, so resolve this tree's own CLI. */
|
|
50
|
-
const DEFAULT_PEAKS_BIN = 'peaks';
|
|
51
|
-
/**
|
|
52
|
-
* Spawn argv for the peaks CLI. An explicitly injected `peaksBin` (the
|
|
53
|
-
* `--peaks-bin` test seam) is spawned verbatim; the default sentinel resolves
|
|
54
|
-
* to this tree's own CLI entry, interpreted by the running Node.
|
|
55
|
-
*/
|
|
56
|
-
function peaksSpawn(peaksBin) {
|
|
57
|
-
if (peaksBin !== DEFAULT_PEAKS_BIN) {
|
|
58
|
-
return { command: peaksBin, args: [] };
|
|
59
|
-
}
|
|
60
|
-
return { command: process.execPath, args: interpreterArgs(cliEntryPath()) };
|
|
61
|
-
}
|
|
62
|
-
/** Slice 2026-08-05-orchestrator-can-do-probe: red-line threshold. */
|
|
63
|
-
export const ORCHESTRATOR_REDLINE_RATIO = 0.95;
|
|
64
|
-
/** Slice 2026-08-05-orchestrator-can-do-probe: pre-compact threshold. */
|
|
65
|
-
export const ORCHESTRATOR_PRECOMPACT_RATIO = 0.85;
|
|
44
|
+
import { probeContextRatio, probeSubAgentAvailable } from './orchestrator-can-do-probes.js';
|
|
45
|
+
import { boundaryAdvisories, ORCHESTRATOR_PRECOMPACT_RATIO, ORCHESTRATOR_REDLINE_RATIO } from './orchestrator-can-do-advisories.js';
|
|
46
|
+
// The probes, the thresholds and `ContextProbe` keep THIS module path as their
|
|
47
|
+
// public surface: the CLI shim reaches the two probes through
|
|
48
|
+
// `await import('../../services/code/orchestrator-can-do.js')`, so the
|
|
49
|
+
// re-export below is load-bearing, not cosmetic.
|
|
50
|
+
export { probeContextRatio, probeSubAgentAvailable };
|
|
51
|
+
export { ORCHESTRATOR_PRECOMPACT_RATIO, ORCHESTRATOR_REDLINE_RATIO };
|
|
66
52
|
/** Source-code keywords that signal "do NOT Edit/Write directly". */
|
|
67
53
|
export const SOURCE_CODE_KEYWORDS = [
|
|
68
54
|
'src/',
|
|
@@ -76,7 +62,7 @@ export const SOURCE_CODE_KEYWORDS = [
|
|
|
76
62
|
'workflows/',
|
|
77
63
|
'.py',
|
|
78
64
|
'.go',
|
|
79
|
-
'.rs'
|
|
65
|
+
'.rs'
|
|
80
66
|
];
|
|
81
67
|
/**
|
|
82
68
|
* Slice 2026-08-06-codegate-vendor-neutral — hard-blocked path families.
|
|
@@ -96,7 +82,7 @@ export const HARD_BLOCKED_PATH_FAMILIES = [
|
|
|
96
82
|
'tests/integration/',
|
|
97
83
|
'config/',
|
|
98
84
|
'bin/',
|
|
99
|
-
'scripts/'
|
|
85
|
+
'scripts/'
|
|
100
86
|
];
|
|
101
87
|
/** Decision-marker keywords that signal "needs user AskUserQuestion". */
|
|
102
88
|
export const DECISION_KEYWORDS = [
|
|
@@ -107,7 +93,7 @@ export const DECISION_KEYWORDS = [
|
|
|
107
93
|
'选择',
|
|
108
94
|
'决定',
|
|
109
95
|
'design decision',
|
|
110
|
-
'user choice'
|
|
96
|
+
'user choice'
|
|
111
97
|
];
|
|
112
98
|
export class OrchestratorCanDoError extends Error {
|
|
113
99
|
code;
|
|
@@ -144,46 +130,16 @@ export function detectRequiresUserDecision(sliceSpec) {
|
|
|
144
130
|
const lower = sliceSpec.toLowerCase();
|
|
145
131
|
return DECISION_KEYWORDS.some((kw) => lower.includes(kw.toLowerCase()));
|
|
146
132
|
}
|
|
133
|
+
/** Suggestion surfaced when canDoInSession=true and no source code is touched. */
|
|
134
|
+
const NON_SOURCE_CODE_SLICE_SUGGESTION = 'non-source-code slice; orchestrator may handle in-session (e.g. via Write/Edit tools or directly)';
|
|
147
135
|
/**
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
* failure or non-zero exit.
|
|
136
|
+
* The concrete delegation verb for a source-code slice, with a fresh
|
|
137
|
+
* `--request-id` and `--batch-id` on every call (as before).
|
|
151
138
|
*/
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
cwd: projectRoot,
|
|
157
|
-
timeout: 5000,
|
|
158
|
-
windowsHide: true,
|
|
159
|
-
});
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
catch {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Q4: probe `peaks code context-now --json`. Parses the data.ratio
|
|
168
|
-
* field. Falls back to {ratio: 0, source: 'unavailable'} when the
|
|
169
|
-
* subprocess fails or returns malformed JSON.
|
|
170
|
-
*/
|
|
171
|
-
export async function probeContextRatio(projectRoot, peaksBin = DEFAULT_PEAKS_BIN) {
|
|
172
|
-
try {
|
|
173
|
-
const { command, args } = peaksSpawn(peaksBin);
|
|
174
|
-
const { stdout } = await execFileAsync(command, [...args, 'code', 'context-now', '--project', projectRoot, '--json'], {
|
|
175
|
-
cwd: projectRoot,
|
|
176
|
-
timeout: 10000,
|
|
177
|
-
windowsHide: true,
|
|
178
|
-
});
|
|
179
|
-
const parsed = JSON.parse(stdout);
|
|
180
|
-
const ratio = typeof parsed.data?.ratio === 'number' ? parsed.data.ratio : 0;
|
|
181
|
-
const source = typeof parsed.data?.source === 'string' ? parsed.data.source : 'unavailable';
|
|
182
|
-
return { ratio, source };
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
return { ratio: 0, source: 'unavailable' };
|
|
186
|
-
}
|
|
139
|
+
function subAgentDispatchSuggestion(projectRoot) {
|
|
140
|
+
const batchId = randomUUID();
|
|
141
|
+
const rid = 'rid-' + Date.now().toString(36);
|
|
142
|
+
return `peaks sub-agent dispatch rd --prompt "<slice-spec>" --request-id ${rid} --project ${projectRoot} --batch-id ${batchId}`;
|
|
187
143
|
}
|
|
188
144
|
/**
|
|
189
145
|
* Build the structured OrchestratorCanDoResult. Pure over the 4 Q
|
|
@@ -193,77 +149,24 @@ export function buildOrchestratorCanDoResult(input, signals) {
|
|
|
193
149
|
const blockers = [];
|
|
194
150
|
const warnings = [];
|
|
195
151
|
const suggestions = [];
|
|
196
|
-
//
|
|
197
|
-
// the
|
|
198
|
-
//
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
blockers.push('requires-sub-agent-dispatch: slice-spec mentions a hard-blocked path family ' +
|
|
204
|
-
'(src/, tests/unit/, tests/integration/, config/, bin/, scripts/); ' +
|
|
205
|
-
'orchestrator MUST NOT Edit/Write these directly. Use peaks sub-agent dispatch rd.');
|
|
206
|
-
}
|
|
207
|
-
// Q2 — sub-agent availability is a hard precondition.
|
|
208
|
-
if (!signals.q2SubAgentAvailable) {
|
|
209
|
-
blockers.push('sub-agent dispatch unavailable (peaks sub-agent dispatch --help failed)');
|
|
210
|
-
suggestions.push('verify peaks CLI is on PATH; check `peaks --version`');
|
|
211
|
-
}
|
|
212
|
-
// Q4 — context ratio. ≥0.95 → red-line; ≥0.85 → pre-compact. A WARNING, not
|
|
213
|
-
// a blocker, and the difference is deliberate (E3, rid 2026-09-13-defects-e).
|
|
214
|
-
//
|
|
215
|
-
// Why this is not a blocker any more, and why it is not an oversight:
|
|
216
|
-
//
|
|
217
|
-
// The peak this answers is "can this slice run in the current session".
|
|
218
|
-
// Context ratio cannot answer "no" to it. The reason is the one the
|
|
219
|
-
// T3 slice (2026-09-13-auto-compact-trigger-ownership) landed on the
|
|
220
|
-
// OTHER face of this same threshold: peaks-loop has no executor for a
|
|
221
|
-
// running session, so it cannot compact its way out of a high ratio —
|
|
222
|
-
// `evaluateCompactTrigger` therefore says of the red line "peaks-loop has
|
|
223
|
-
// asked the harness to compact and is WAITING for it — sub-agent dispatch
|
|
224
|
-
// is NOT blocked; carry on and re-probe". A probe that returned
|
|
225
|
-
// `canDoInSession: false` here would contradict that sentence for the same
|
|
226
|
-
// 0.95 on the same number, and its only programmatic consumer
|
|
227
|
-
// (`code-orchestrator-can-do.ts`) turns the false into exit code 1 — i.e.
|
|
228
|
-
// it would re-open, at the CLI layer, exactly the deadlock T3 deleted.
|
|
229
|
-
//
|
|
230
|
-
// Nor does the pre-compact zone (0.85–0.95) earn a blocker: the trigger's
|
|
231
|
-
// message there is "peaks-loop already fired the auto-compact pathway; the
|
|
232
|
-
// LLM does not need to act", which is the opposite of "you may not proceed".
|
|
233
|
-
//
|
|
234
|
-
// What a blocker would still need to be true: THE ORCHESTRATOR itself
|
|
235
|
-
// cannot continue. It can — the slice's edits are delegated to a sub-agent
|
|
236
|
-
// (Q1), and the orchestrator's own context is only spent co-ordinating.
|
|
237
|
-
//
|
|
238
|
-
// So the ratio is reported, warned about, and given a next action; the
|
|
239
|
-
// verdict is left to the blockers that really are un-survivable (a
|
|
240
|
-
// hard-blocked path family, an unreachable sub-agent dispatcher).
|
|
241
|
-
if (signals.q4ContextRatio >= ORCHESTRATOR_REDLINE_RATIO) {
|
|
242
|
-
warnings.push(`context red-line (ratio=${signals.q4ContextRatio.toFixed(2)} ≥ ${ORCHESTRATOR_REDLINE_RATIO}): peaks-loop has asked the harness to compact and is waiting for it; dispatch is NOT blocked — carry on and re-probe with \`peaks code context-now\``);
|
|
243
|
-
suggestions.push('peaks code auto-compact');
|
|
244
|
-
}
|
|
245
|
-
else if (signals.q4ContextRatio >= ORCHESTRATOR_PRECOMPACT_RATIO) {
|
|
246
|
-
warnings.push(`context near limit (ratio=${signals.q4ContextRatio.toFixed(2)} ≥ ${ORCHESTRATOR_PRECOMPACT_RATIO}): in the pre-compact band; peaks-loop fires the auto-compact pathway itself and dispatch is NOT blocked`);
|
|
247
|
-
suggestions.push('peaks code auto-compact');
|
|
248
|
-
}
|
|
249
|
-
// Q3 — user-decision keywords → soft warning, NOT a blocker. The
|
|
250
|
-
// LLM should AskUserQuestion, which is cheap.
|
|
251
|
-
if (signals.q3RequiresUserDecision) {
|
|
252
|
-
warnings.push('slice-spec contains decision keywords; AskUserQuestion before proceeding');
|
|
253
|
-
}
|
|
152
|
+
// Q1 (hard) / Q2 / Q4 / Q3 — the messages, in the order they were always
|
|
153
|
+
// pushed. The reasoning that keeps the context ratio a WARNING and never a
|
|
154
|
+
// blocker rides along in `boundaryAdvisories` (orchestrator-can-do-advisories).
|
|
155
|
+
const boundary = boundaryAdvisories(signals);
|
|
156
|
+
blockers.push(...boundary.blockers);
|
|
157
|
+
warnings.push(...boundary.warnings);
|
|
158
|
+
suggestions.push(...boundary.suggestions);
|
|
254
159
|
// Q1 (soft) — source-code touched is a sub-agent-dispatch hint. When
|
|
255
160
|
// not already hard-blocked (above), surface the dispatch verb. When
|
|
256
161
|
// already hard-blocked the blocker line carries the same instruction.
|
|
257
162
|
if (signals.q1SourceCodeTouched && signals.q2SubAgentAvailable) {
|
|
258
|
-
|
|
259
|
-
const rid = 'rid-' + Date.now().toString(36);
|
|
260
|
-
suggestions.push(`peaks sub-agent dispatch rd --prompt "<slice-spec>" --request-id ${rid} --project ${input.projectRoot} --batch-id ${batchId}`);
|
|
163
|
+
suggestions.push(subAgentDispatchSuggestion(input.projectRoot));
|
|
261
164
|
}
|
|
262
165
|
// When canDoInSession=true and there's no source code touched,
|
|
263
166
|
// surface a generic "do it" suggestion.
|
|
264
167
|
const canDoInSession = blockers.length === 0;
|
|
265
168
|
if (canDoInSession && !signals.q1SourceCodeTouched) {
|
|
266
|
-
suggestions.push(
|
|
169
|
+
suggestions.push(NON_SOURCE_CODE_SLICE_SUGGESTION);
|
|
267
170
|
}
|
|
268
171
|
return {
|
|
269
172
|
canDoInSession,
|
|
@@ -276,7 +179,7 @@ export function buildOrchestratorCanDoResult(input, signals) {
|
|
|
276
179
|
q1HardBlockedPath: signals.q1HardBlockedPath,
|
|
277
180
|
q2SubAgentAvailable: signals.q2SubAgentAvailable,
|
|
278
181
|
q3RequiresUserDecision: signals.q3RequiresUserDecision,
|
|
279
|
-
q4ContextRatio: signals.q4ContextRatio
|
|
182
|
+
q4ContextRatio: signals.q4ContextRatio
|
|
280
183
|
};
|
|
281
184
|
}
|
|
282
185
|
/**
|
|
@@ -292,15 +195,12 @@ export async function evaluateOrchestratorCanDo(input) {
|
|
|
292
195
|
const q3RequiresUserDecision = detectRequiresUserDecision(input.sliceSpec);
|
|
293
196
|
const probeSubAgent = input.probeSubAgentAvailable ?? (() => probeSubAgentAvailable(input.projectRoot));
|
|
294
197
|
const probeContext = input.probeContextRatio ?? (() => probeContextRatio(input.projectRoot));
|
|
295
|
-
const [subAgentAvailable, ctxProbe] = await Promise.all([
|
|
296
|
-
probeSubAgent(),
|
|
297
|
-
probeContext(),
|
|
298
|
-
]);
|
|
198
|
+
const [subAgentAvailable, ctxProbe] = await Promise.all([probeSubAgent(), probeContext()]);
|
|
299
199
|
return buildOrchestratorCanDoResult(input, {
|
|
300
200
|
q1SourceCodeTouched,
|
|
301
201
|
q1HardBlockedPath,
|
|
302
202
|
q2SubAgentAvailable: subAgentAvailable,
|
|
303
203
|
q3RequiresUserDecision,
|
|
304
|
-
q4ContextRatio: ctxProbe.ratio
|
|
204
|
+
q4ContextRatio: ctxProbe.ratio
|
|
305
205
|
});
|
|
306
206
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/code/post-compact-checkpoint.ts`
|
|
3
|
+
*
|
|
4
|
+
* The checkpoint read layer behind the post-compact auto-resume detector
|
|
5
|
+
* (`post-compact-detector.ts`): the two directory/name constants, the
|
|
6
|
+
* checkpoint record shapes, the same-day test, and the defensive single-file
|
|
7
|
+
* read. Moved verbatim (wave 3, file-size cap campaign) so the detector stays
|
|
8
|
+
* under the 300 raw-line cap — no detection decision lives here. These names
|
|
9
|
+
* were module-private to the detector before the move and stay private to it
|
|
10
|
+
* in effect: the detector imports them and does not re-export them, so the
|
|
11
|
+
* module's public surface is unchanged.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CHECKPOINTS_DIR = "checkpoints";
|
|
14
|
+
export declare const CHECKPOINT_EXT = ".json";
|
|
15
|
+
export interface CheckpointFile {
|
|
16
|
+
readonly path: string;
|
|
17
|
+
readonly mtime: Date;
|
|
18
|
+
readonly content: CheckpointContent;
|
|
19
|
+
}
|
|
20
|
+
interface CheckpointContent {
|
|
21
|
+
readonly currentPlan?: string;
|
|
22
|
+
readonly openQuestions?: readonly string[];
|
|
23
|
+
readonly recentDecisions?: readonly string[];
|
|
24
|
+
readonly mode?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function isToday(d: Date, now: Date): boolean;
|
|
27
|
+
export declare function safeReadCheckpoint(absPath: string): CheckpointFile | null;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/code/post-compact-checkpoint.ts`
|
|
3
|
+
*
|
|
4
|
+
* The checkpoint read layer behind the post-compact auto-resume detector
|
|
5
|
+
* (`post-compact-detector.ts`): the two directory/name constants, the
|
|
6
|
+
* checkpoint record shapes, the same-day test, and the defensive single-file
|
|
7
|
+
* read. Moved verbatim (wave 3, file-size cap campaign) so the detector stays
|
|
8
|
+
* under the 300 raw-line cap — no detection decision lives here. These names
|
|
9
|
+
* were module-private to the detector before the move and stay private to it
|
|
10
|
+
* in effect: the detector imports them and does not re-export them, so the
|
|
11
|
+
* module's public surface is unchanged.
|
|
12
|
+
*/
|
|
13
|
+
import { readFileSync, statSync } from 'node:fs';
|
|
14
|
+
import { isExpectedFsMiss } from '../../shared/fs-utils.js';
|
|
15
|
+
export const CHECKPOINTS_DIR = 'checkpoints';
|
|
16
|
+
export const CHECKPOINT_EXT = '.json';
|
|
17
|
+
export function isToday(d, now) {
|
|
18
|
+
return (d.getUTCFullYear() === now.getUTCFullYear() &&
|
|
19
|
+
d.getUTCMonth() === now.getUTCMonth() &&
|
|
20
|
+
d.getUTCDate() === now.getUTCDate());
|
|
21
|
+
}
|
|
22
|
+
export function safeReadCheckpoint(absPath) {
|
|
23
|
+
try {
|
|
24
|
+
const stat = statSync(absPath);
|
|
25
|
+
const raw = readFileSync(absPath, 'utf8');
|
|
26
|
+
const parsed = JSON.parse(raw);
|
|
27
|
+
const mutable = {};
|
|
28
|
+
if (typeof parsed['currentPlan'] === 'string') {
|
|
29
|
+
mutable.currentPlan = parsed['currentPlan'];
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(parsed['openQuestions'])) {
|
|
32
|
+
mutable.openQuestions = parsed['openQuestions'].filter((q) => typeof q === 'string');
|
|
33
|
+
}
|
|
34
|
+
if (Array.isArray(parsed['recentDecisions'])) {
|
|
35
|
+
mutable.recentDecisions = parsed['recentDecisions'].filter((d) => typeof d === 'string');
|
|
36
|
+
}
|
|
37
|
+
if (typeof parsed['mode'] === 'string') {
|
|
38
|
+
mutable.mode = parsed['mode'];
|
|
39
|
+
}
|
|
40
|
+
const content = mutable;
|
|
41
|
+
return { path: absPath, mtime: stat.mtime, content };
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
// P1 site (S6, 2026-09-15). The TODO(g2) marker this replaces said the
|
|
45
|
+
// catch "narrows to IO errors only" — it did not. It rethrew the two JS
|
|
46
|
+
// error classes it happened to name and swallowed everything else,
|
|
47
|
+
// including the ReferenceError an ESM `require()` bug produces on the one
|
|
48
|
+
// platform this file's whole defence exists for. Corrupt JSON stays loud
|
|
49
|
+
// (we cannot read a checkpoint we cannot parse); every non-fs-miss error
|
|
50
|
+
// now propagates. See `isExpectedFsMiss`.
|
|
51
|
+
if (err instanceof SyntaxError)
|
|
52
|
+
throw err;
|
|
53
|
+
if (!isExpectedFsMiss(err))
|
|
54
|
+
throw err;
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -21,11 +21,12 @@
|
|
|
21
21
|
* IO: readdir + readFile on `.peaks/_runtime/<sid>/checkpoints/`.
|
|
22
22
|
* No writes (caller logs the decision via the auto-decisions channel).
|
|
23
23
|
*/
|
|
24
|
-
import { existsSync, readdirSync
|
|
24
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
25
25
|
import { join } from 'node:path';
|
|
26
26
|
import { getSkillPresence } from '../skills/skill-presence-service.js';
|
|
27
27
|
import { isExpectedFsMiss } from '../../shared/fs-utils.js';
|
|
28
28
|
import { emitObservabilityEvent } from '../observability/observability-service.js';
|
|
29
|
+
import { CHECKPOINT_EXT, CHECKPOINTS_DIR, isToday, safeReadCheckpoint } from './post-compact-checkpoint.js';
|
|
29
30
|
import { isCodeMode } from './mode-gate.js';
|
|
30
31
|
export const POST_COMPACT_RESUME_REASONS = [
|
|
31
32
|
'post-compact-match',
|
|
@@ -38,49 +39,6 @@ export const POST_COMPACT_RESUME_REASONS = [
|
|
|
38
39
|
'active-skill-mismatch',
|
|
39
40
|
'checkpoint-read-failed'
|
|
40
41
|
];
|
|
41
|
-
const CHECKPOINTS_DIR = 'checkpoints';
|
|
42
|
-
const CHECKPOINT_EXT = '.json';
|
|
43
|
-
function isToday(d, now) {
|
|
44
|
-
return (d.getUTCFullYear() === now.getUTCFullYear() &&
|
|
45
|
-
d.getUTCMonth() === now.getUTCMonth() &&
|
|
46
|
-
d.getUTCDate() === now.getUTCDate());
|
|
47
|
-
}
|
|
48
|
-
function safeReadCheckpoint(absPath) {
|
|
49
|
-
try {
|
|
50
|
-
const stat = statSync(absPath);
|
|
51
|
-
const raw = readFileSync(absPath, 'utf8');
|
|
52
|
-
const parsed = JSON.parse(raw);
|
|
53
|
-
const mutable = {};
|
|
54
|
-
if (typeof parsed['currentPlan'] === 'string') {
|
|
55
|
-
mutable.currentPlan = parsed['currentPlan'];
|
|
56
|
-
}
|
|
57
|
-
if (Array.isArray(parsed['openQuestions'])) {
|
|
58
|
-
mutable.openQuestions = parsed['openQuestions'].filter((q) => typeof q === 'string');
|
|
59
|
-
}
|
|
60
|
-
if (Array.isArray(parsed['recentDecisions'])) {
|
|
61
|
-
mutable.recentDecisions = parsed['recentDecisions'].filter((d) => typeof d === 'string');
|
|
62
|
-
}
|
|
63
|
-
if (typeof parsed['mode'] === 'string') {
|
|
64
|
-
mutable.mode = parsed['mode'];
|
|
65
|
-
}
|
|
66
|
-
const content = mutable;
|
|
67
|
-
return { path: absPath, mtime: stat.mtime, content };
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
// P1 site (S6, 2026-09-15). The TODO(g2) marker this replaces said the
|
|
71
|
-
// catch "narrows to IO errors only" — it did not. It rethrew the two JS
|
|
72
|
-
// error classes it happened to name and swallowed everything else,
|
|
73
|
-
// including the ReferenceError an ESM `require()` bug produces on the one
|
|
74
|
-
// platform this file's whole defence exists for. Corrupt JSON stays loud
|
|
75
|
-
// (we cannot read a checkpoint we cannot parse); every non-fs-miss error
|
|
76
|
-
// now propagates. See `isExpectedFsMiss`.
|
|
77
|
-
if (err instanceof SyntaxError)
|
|
78
|
-
throw err;
|
|
79
|
-
if (!isExpectedFsMiss(err))
|
|
80
|
-
throw err;
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
42
|
function readLatestTodayCheckpoint(runtimeDir, now) {
|
|
85
43
|
const dir = join(runtimeDir, CHECKPOINTS_DIR);
|
|
86
44
|
if (!existsSync(dir)) {
|
|
@@ -206,11 +164,19 @@ export async function detectPostCompactResume(opts) {
|
|
|
206
164
|
checkpointPath: file.path,
|
|
207
165
|
checkpointMtime: file.mtime.toISOString(),
|
|
208
166
|
...(file.content.currentPlan !== undefined ? { task: file.content.currentPlan } : {}),
|
|
209
|
-
...(file.content.openQuestions !== undefined
|
|
210
|
-
|
|
167
|
+
...(file.content.openQuestions !== undefined
|
|
168
|
+
? { openQuestions: file.content.openQuestions }
|
|
169
|
+
: {}),
|
|
170
|
+
...(file.content.recentDecisions !== undefined
|
|
171
|
+
? { recentDecisions: file.content.recentDecisions }
|
|
172
|
+
: {}),
|
|
211
173
|
warnings
|
|
212
174
|
};
|
|
213
|
-
emitPostCompactEvent({
|
|
175
|
+
emitPostCompactEvent({
|
|
176
|
+
projectRoot: opts.projectRoot,
|
|
177
|
+
sessionId: opts.sessionId,
|
|
178
|
+
probe: successProbe
|
|
179
|
+
});
|
|
214
180
|
return successProbe;
|
|
215
181
|
}
|
|
216
182
|
// Slice C of v2.11.1 — observability hook #6/7. Fire-and-forget per
|
|
@@ -226,7 +192,9 @@ function emitPostCompactEvent(opts) {
|
|
|
226
192
|
shouldAutoResume: opts.probe.shouldAutoResume,
|
|
227
193
|
reason: opts.probe.reason,
|
|
228
194
|
...(opts.probe.mode !== undefined ? { mode: opts.probe.mode } : {}),
|
|
229
|
-
...(opts.probe.checkpointPath !== undefined
|
|
195
|
+
...(opts.probe.checkpointPath !== undefined
|
|
196
|
+
? { checkpointPath: opts.probe.checkpointPath }
|
|
197
|
+
: {})
|
|
230
198
|
}
|
|
231
199
|
}, { projectRoot: opts.projectRoot });
|
|
232
200
|
}
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* 1. `job-shape.json` exists with `decision.isJob === true`.
|
|
15
15
|
* → allow, print `{ ok, allow, mode: 'job', decision }`. When a
|
|
16
|
-
* matching `job/<jid>/progress.json` exists, also print
|
|
17
|
-
* `Next: slice
|
|
18
|
-
*
|
|
16
|
+
* matching `job/<jid>/progress.json` exists, also print the
|
|
17
|
+
* next-slice sentence from `describeNextSlice` — `Next: slice #N of M
|
|
18
|
+
* (<label>)` while a slice is pending, the `add-slice` remedy when none is
|
|
19
|
+
* — so the LLM sees its resume context BEFORE any Bash call lands.
|
|
19
20
|
* 2. `job-shape.json` exists with `decision.isJob === false`.
|
|
20
21
|
* → allow, print `{ ok, allow, mode: 'single' }`.
|
|
21
22
|
* 3. `job-shape.json` is MISSING — fail-closed guard. The LLM is the
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* 1. `job-shape.json` exists with `decision.isJob === true`.
|
|
15
15
|
* → allow, print `{ ok, allow, mode: 'job', decision }`. When a
|
|
16
|
-
* matching `job/<jid>/progress.json` exists, also print
|
|
17
|
-
* `Next: slice
|
|
18
|
-
*
|
|
16
|
+
* matching `job/<jid>/progress.json` exists, also print the
|
|
17
|
+
* next-slice sentence from `describeNextSlice` — `Next: slice #N of M
|
|
18
|
+
* (<label>)` while a slice is pending, the `add-slice` remedy when none is
|
|
19
|
+
* — so the LLM sees its resume context BEFORE any Bash call lands.
|
|
19
20
|
* 2. `job-shape.json` exists with `decision.isJob === false`.
|
|
20
21
|
* → allow, print `{ ok, allow, mode: 'single' }`.
|
|
21
22
|
* 3. `job-shape.json` is MISSING — fail-closed guard. The LLM is the
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
import { existsSync, readFileSync } from 'node:fs';
|
|
36
37
|
import { join } from 'node:path';
|
|
37
38
|
import { readJobShapeDecision, JobShapeDecisionError, JOB_SHAPE_NOT_DECIDED } from './job-shape-decision.js';
|
|
39
|
+
import { describeNextSlice } from '../job/job-progress-store.js';
|
|
38
40
|
import { isExpectedFsMiss } from '../../shared/fs-utils.js';
|
|
39
41
|
export const STEP_08_GATE_FILE_NAME = 'job-shape.json';
|
|
40
42
|
export const STEP_08_PROGRESS_FILE_NAME = 'progress.json';
|
|
@@ -129,9 +131,7 @@ export function evaluateStep08(input) {
|
|
|
129
131
|
const record = readJobShapeDecision(input.projectRoot, input.sessionId);
|
|
130
132
|
if (record.decision.isJob) {
|
|
131
133
|
const progress = readProgressIfAny(input.projectRoot, input.sessionId, record.decision.suggestedJobId);
|
|
132
|
-
const nextSliceLine = progress !== null
|
|
133
|
-
? `Next: slice #${progress.done + 1} of ${progress.total} (${progress.currentSlice})`
|
|
134
|
-
: null;
|
|
134
|
+
const nextSliceLine = progress !== null ? `Next: ${describeNextSlice(progress, progress.jobId)}` : null;
|
|
135
135
|
return {
|
|
136
136
|
allow: true,
|
|
137
137
|
verdict: { kind: 'allow-job', decision: record.decision, progress },
|
|
@@ -144,11 +144,23 @@ export function evaluateStep08(input) {
|
|
|
144
144
|
if (err instanceof JobShapeDecisionError && err.code === JOB_SHAPE_NOT_DECIDED) {
|
|
145
145
|
const promptText = input.prompt ?? readPromptFromLastPromptFile(input.projectRoot, input.sessionId);
|
|
146
146
|
const hit = promptText.length > 0 && STEP_08_BACKUP_REGEX.test(promptText);
|
|
147
|
-
const source = input.prompt !== undefined
|
|
147
|
+
const source = input.prompt !== undefined
|
|
148
|
+
? 'flag'
|
|
149
|
+
: promptText.length > 0
|
|
150
|
+
? 'last-prompt-file'
|
|
151
|
+
: 'stdin-empty';
|
|
148
152
|
if (hit) {
|
|
149
|
-
return {
|
|
153
|
+
return {
|
|
154
|
+
allow: false,
|
|
155
|
+
verdict: { kind: 'block-missing-decision', promptHit: true, promptSource: source },
|
|
156
|
+
nextSliceLine: null
|
|
157
|
+
};
|
|
150
158
|
}
|
|
151
|
-
return {
|
|
159
|
+
return {
|
|
160
|
+
allow: true,
|
|
161
|
+
verdict: { kind: 'block-missing-decision', promptHit: false, promptSource: source },
|
|
162
|
+
nextSliceLine: null
|
|
163
|
+
};
|
|
152
164
|
}
|
|
153
165
|
throw err;
|
|
154
166
|
}
|
|
@@ -42,13 +42,6 @@ const RAW_CLASSIFICATION = [
|
|
|
42
42
|
fullAutoCanProceed: false,
|
|
43
43
|
userShouldReview: 'always'
|
|
44
44
|
},
|
|
45
|
-
{
|
|
46
|
-
step: 'step-0.55-1x-upgrade',
|
|
47
|
-
kind: 'commit-floor',
|
|
48
|
-
description: '1.x → 2.0 升级检测。不可逆外部副作用(改写 config + cache schema),所有 mode 都必须 AskUserQuestion。full-auto 也暂停。',
|
|
49
|
-
fullAutoCanProceed: false,
|
|
50
|
-
userShouldReview: 'always'
|
|
51
|
-
},
|
|
52
45
|
{
|
|
53
46
|
step: 'step-0.75-checkpoint-resume',
|
|
54
47
|
kind: 'tech',
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
*
|
|
22
22
|
* === Why no `peaksConfig.ecc.*` block ===
|
|
23
23
|
*
|
|
24
|
-
* ECC
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* block
|
|
24
|
+
* ECC ships as the `ecc-universal` npm package — the same repository as
|
|
25
|
+
* github.com/affaan-m/ECC — and peaks-loop depends on it, so the agents are read
|
|
26
|
+
* from that dependency, not downloaded. ECC may ALSO be present as the
|
|
27
|
+
* `everything-claude-code` Claude Code plugin, the native path `detectEcc`
|
|
28
|
+
* prefers. Either way peaks-loop writes and reads no LLM endpoint config for ECC;
|
|
29
|
+
* add a `peaksConfig.ecc.*` block only when a release actually needs one.
|
|
30
30
|
*
|
|
31
31
|
* === Source: peaks-rd/references/parallel-review-fanout.md ===
|
|
32
32
|
*
|
|
@@ -89,6 +89,20 @@ function countByKind(violations) {
|
|
|
89
89
|
}
|
|
90
90
|
return counts;
|
|
91
91
|
}
|
|
92
|
+
function renderRequiredFixes(env) {
|
|
93
|
+
return env.violations.length === 0
|
|
94
|
+
? ''
|
|
95
|
+
: [
|
|
96
|
+
'## Required Fixes',
|
|
97
|
+
'',
|
|
98
|
+
...env.violations.map((v, i) => {
|
|
99
|
+
const safeSnippet = escapeMarkdownCell(v.snippet);
|
|
100
|
+
const safeHint = escapeMarkdownCell(v.hint);
|
|
101
|
+
return `- [${v.kind} @ line ${v.line}] ${safeHint} (snippet: \`${safeSnippet}\`)`;
|
|
102
|
+
}),
|
|
103
|
+
''
|
|
104
|
+
].join('\n');
|
|
105
|
+
}
|
|
92
106
|
/**
|
|
93
107
|
* Render an ECC envelope to the canonical `rd/code-review.md` shape.
|
|
94
108
|
* Verdict → sections:
|
|
@@ -113,18 +127,7 @@ export function adaptEccEnvelopeToRdCodeReview(env, opts) {
|
|
|
113
127
|
''
|
|
114
128
|
].join('\n');
|
|
115
129
|
const findingsSection = renderFindings(env.violations);
|
|
116
|
-
const requiredFixesSection = env
|
|
117
|
-
? ''
|
|
118
|
-
: [
|
|
119
|
-
'## Required Fixes',
|
|
120
|
-
'',
|
|
121
|
-
...env.violations.map((v, i) => {
|
|
122
|
-
const safeSnippet = escapeMarkdownCell(v.snippet);
|
|
123
|
-
const safeHint = escapeMarkdownCell(v.hint);
|
|
124
|
-
return `- [${v.kind} @ line ${v.line}] ${safeHint} (snippet: \`${safeSnippet}\`)`;
|
|
125
|
-
}),
|
|
126
|
-
''
|
|
127
|
-
].join('\n');
|
|
130
|
+
const requiredFixesSection = renderRequiredFixes(env);
|
|
128
131
|
const recommendedSection = env.gateAction === 'pass'
|
|
129
132
|
? ''
|
|
130
133
|
: [
|
|
@@ -145,13 +148,9 @@ export function adaptEccEnvelopeToRdCodeReview(env, opts) {
|
|
|
145
148
|
`CRITICAL: ${criticalCount}`,
|
|
146
149
|
''
|
|
147
150
|
].join('\n');
|
|
148
|
-
const body = [
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
requiredFixesSection,
|
|
152
|
-
recommendedSection,
|
|
153
|
-
verdictBlock
|
|
154
|
-
].filter((s) => s.length > 0).join('\n');
|
|
151
|
+
const body = [summary, findingsSection, requiredFixesSection, recommendedSection, verdictBlock]
|
|
152
|
+
.filter((s) => s.length > 0)
|
|
153
|
+
.join('\n');
|
|
155
154
|
return {
|
|
156
155
|
body,
|
|
157
156
|
verdict: env.gateAction,
|
|
@@ -244,9 +243,7 @@ export function detectEcc(input) {
|
|
|
244
243
|
state: 'agent-missing',
|
|
245
244
|
pluginInstalled: true,
|
|
246
245
|
agentAvailable: false,
|
|
247
|
-
warnings: [
|
|
248
|
-
'`ecc` is installed but its `code-reviewer` agent is not registered.'
|
|
249
|
-
],
|
|
246
|
+
warnings: ['`ecc` is installed but its `code-reviewer` agent is not registered.'],
|
|
250
247
|
nextActions: [
|
|
251
248
|
'Verify the plugin is enabled in your Claude Code settings (MCP servers / agent registry).',
|
|
252
249
|
`If your registry still exposes the old \`everything-claude-code\` plugin id, pin the native agent id explicitly (\`${DEFAULT_NATIVE_ECC_AGENT_ID}\`) instead of relying on detection.`,
|
|
@@ -311,7 +308,10 @@ export function runEccCodeReview(input) {
|
|
|
311
308
|
// A dispatchable state implies input.envelope passed isEccEnvelope; the runtime
|
|
312
309
|
// type is therefore EccEnvelope, not `unknown`. Cast is justified by detect's contract.
|
|
313
310
|
const env = input.envelope;
|
|
314
|
-
return {
|
|
311
|
+
return {
|
|
312
|
+
detect,
|
|
313
|
+
doc: adaptEccEnvelopeToRdCodeReview(env, { rid: input.rid, generatedAt: input.generatedAt })
|
|
314
|
+
};
|
|
315
315
|
}
|
|
316
316
|
/**
|
|
317
317
|
* The exact JSON shape the generic (cache-backed) sub-agent MUST return.
|