peaks-loop 4.0.53 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -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 +85 -38
- 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 +175 -11
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- 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 +81 -22
- 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 +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- 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 +69 -34
- 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 +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- 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 +21 -2
- 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.d.ts +23 -0
- package/dist/cli/commands/sub-agent-shared.js +40 -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/upgrade-commands.d.ts +1 -1
- 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 +6 -3
- 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 +44 -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/enforcer-liveness.js +1 -1
- 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 +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- 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-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +44 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.js +116 -14
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +23 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +7 -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/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 +16 -189
- 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.js +3 -2
- 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 +59 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.js +189 -17
- 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/gate-evidence-derivation.d.ts +160 -0
- package/dist/services/prd/gate-evidence-derivation.js +270 -0
- package/dist/services/prd/handoff-auto-regen.js +13 -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.d.ts +1 -1
- package/dist/services/prd/handoff-frontmatter.js +63 -1
- package/dist/services/prd/handoff-gate-evidence.d.ts +95 -1
- package/dist/services/prd/handoff-gate-evidence.js +125 -57
- 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 +22 -38
- package/dist/services/prd/handoff-service.js +38 -127
- package/dist/services/prd/handoff-types.d.ts +40 -0
- package/dist/services/prd/handoff-types.js +28 -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.d.ts +7 -0
- package/dist/services/prd/project-scan-reader.js +8 -5
- 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.d.ts +36 -8
- package/dist/services/rd/reviewer-dispatch-policy.js +40 -15
- 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/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 +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- 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/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/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- 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/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 +11 -3
- 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 +32 -9
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/bee/peaks-rd/SKILL.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +26 -10
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +1 -1
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +6 -1
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/periodic-checkpoint.md +7 -5
- package/skills/peaks-code/references/startup-sequence.md +1 -1
- package/skills/peaks-final-review/SKILL.md +1 -1
- /package/{docs → contracts}/test-style-contract.md +0 -0
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
13
13
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
14
14
|
import { detectPostCompactResume, formatPostCompactResumeLogLine } from '../../services/code/post-compact-detector.js';
|
|
15
|
-
import { runAutoCompact } from '../../services/code/auto-compact-orchestrator.js';
|
|
15
|
+
import { evaluateCompactTrigger, runAutoCompact } from '../../services/code/auto-compact-orchestrator.js';
|
|
16
|
+
import { thresholdFor } from '../../services/code/auto-compact-modes.js';
|
|
17
|
+
import { resolveAutoCompactProfile } from '../../services/mode/mode-status-service.js';
|
|
18
|
+
import { AUTO_COMPACT_SOFT_WARN_RATIO } from '../../services/context/auto-compact-types.js';
|
|
16
19
|
import { auditContext } from '../../services/context/context-audit.js';
|
|
17
20
|
import { syncHarnessWindowForProject } from '../../services/context/auto-compact-reader.js';
|
|
18
21
|
import { describeHarnessWindowSync, harnessWindowSyncWarning } from '../../services/context/harness-window-config.js';
|
|
@@ -25,6 +28,43 @@ import { readJobShapeDecision, JobShapeDecisionError } from '../../services/code
|
|
|
25
28
|
import { getSkillPresence } from '../../services/skills/skill-presence-service.js';
|
|
26
29
|
import { probeInFlightBatch } from '../../services/workflow/workflow-inflight-probe.js';
|
|
27
30
|
import { resolveOuterSessionId } from '../../services/session/binding-status-service.js';
|
|
31
|
+
/** The one dispatch verb the action and red-line tiers name. */
|
|
32
|
+
const COMPACT_CMD = 'peaks code auto-compact';
|
|
33
|
+
/**
|
|
34
|
+
* Slice H4 (rid=h4-context-now-mode-blind) — the ONE mapping from the shared
|
|
35
|
+
* `CompactTrigger` to this command's `action` vocabulary, so the two cannot
|
|
36
|
+
* drift: the trigger is `evaluateCompactTrigger`, the same function `peaks
|
|
37
|
+
* code auto-compact` decides with.
|
|
38
|
+
*
|
|
39
|
+
* `auto-fire` maps to `soft-warn` in BOTH modes: that tier is `peaks skill
|
|
40
|
+
* presence`'s — the every-turn probe, which reads this same table and mode
|
|
41
|
+
* resolver — so `context-now` has no auto-fire tier of its own (SKILL.md
|
|
42
|
+
* "two probes, two thresholds"). Reporting it as `auto-compact-now` would
|
|
43
|
+
* change every non-24h session's output, which slice H4 forbids.
|
|
44
|
+
*/
|
|
45
|
+
export function contextNowActionFor(ratio, mode) {
|
|
46
|
+
const kind = evaluateCompactTrigger(ratio, mode).kind;
|
|
47
|
+
if (kind === 'red-line')
|
|
48
|
+
return { action: 'red-line', next: COMPACT_CMD };
|
|
49
|
+
if (kind === 'pre-compact')
|
|
50
|
+
return { action: 'auto-compact-now', next: COMPACT_CMD };
|
|
51
|
+
return { action: kind === 'none' ? 'ok' : 'soft-warn', next: null };
|
|
52
|
+
}
|
|
53
|
+
/** Slice H4: the labels `context-now` prints, read out of the table for the mode
|
|
54
|
+
* in force — the old hard-coded "≥0.85 / ≥0.95 / 50–85%" told a 24h operator
|
|
55
|
+
* the wrong lines. `*Ratio` is the `0.85` form `gateModeNotice` uses. */
|
|
56
|
+
function contextNowBandLabels(mode) {
|
|
57
|
+
const pct = (r) => `${(r * 100).toFixed(0)}`;
|
|
58
|
+
const pre = thresholdFor(mode, 'preCompact');
|
|
59
|
+
const red = thresholdFor(mode, 'redLine');
|
|
60
|
+
return {
|
|
61
|
+
softWarn: pct(AUTO_COMPACT_SOFT_WARN_RATIO),
|
|
62
|
+
preCompact: pct(pre),
|
|
63
|
+
redLine: pct(red),
|
|
64
|
+
preCompactRatio: pre.toFixed(2),
|
|
65
|
+
redLineRatio: red.toFixed(2)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
28
68
|
/**
|
|
29
69
|
* Adapt `runAutoCompact`'s domain result to a `ResultEnvelope`.
|
|
30
70
|
*
|
|
@@ -55,7 +95,14 @@ export function buildAutoCompactEnvelope(result) {
|
|
|
55
95
|
// `fail()` hard-codes `warnings: []`, so the warning is spread back over it —
|
|
56
96
|
// a refused write can disagree with the ratio just as easily on the failure
|
|
57
97
|
// path, and the state does not become less true because the dispatch failed.
|
|
58
|
-
return {
|
|
98
|
+
return {
|
|
99
|
+
...fail('code.auto-compact', result.code, result.message, data, [...nextActions]),
|
|
100
|
+
warnings
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function printPostCompactNoActiveSession(io, opts) {
|
|
104
|
+
printResult(io, fail('code.post-compact-detect', 'NO_ACTIVE_SESSION', 'no active session id; pass --session-id or set presence via `peaks skill presence:set peaks-code`', null, ['Re-run with --session-id <sid>']), opts.json);
|
|
105
|
+
process.exitCode = 1;
|
|
59
106
|
}
|
|
60
107
|
export function registerCodeRuntimeCommands(code, io) {
|
|
61
108
|
addJsonOption(code
|
|
@@ -69,8 +116,7 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
69
116
|
try {
|
|
70
117
|
const sessionId = opts.sessionId ?? readActiveSid(opts.project);
|
|
71
118
|
if (sessionId === null) {
|
|
72
|
-
|
|
73
|
-
process.exitCode = 1;
|
|
119
|
+
printPostCompactNoActiveSession(io, opts);
|
|
74
120
|
return;
|
|
75
121
|
}
|
|
76
122
|
const probe = await detectPostCompactResume({
|
|
@@ -161,7 +207,7 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
161
207
|
// projects.
|
|
162
208
|
const out = probeInFlightBatch({ now: new Date().toISOString(), graphs: [] });
|
|
163
209
|
return out.inFlightBatch === true;
|
|
164
|
-
}
|
|
210
|
+
}
|
|
165
211
|
}
|
|
166
212
|
: {}),
|
|
167
213
|
force: opts.force === true,
|
|
@@ -191,14 +237,14 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
191
237
|
});
|
|
192
238
|
addJsonOption(code
|
|
193
239
|
.command('context-now')
|
|
194
|
-
.description(
|
|
240
|
+
.description("v2.13.0 AC-1: read the active IDE adapter's context-fill % " +
|
|
195
241
|
'without requiring the LLM to pass --prompt-size <bytes> manually. ' +
|
|
196
242
|
'Adapter-driven (no hard-coded IDE names): Claude Code is the MVP ' +
|
|
197
243
|
'implementation; trae / codex / cursor / qoder / tongyi-lingma / ' +
|
|
198
244
|
'hermes / openclaw register their own env-var via IdeAdapter.compact. ' +
|
|
199
|
-
|
|
200
|
-
'(MANDATORY
|
|
201
|
-
'
|
|
245
|
+
"v3.1.2 / 2026-09-12: the mode's pre-compact line emits " +
|
|
246
|
+
'action=auto-compact-now (MANDATORY, single-rid included) and ' +
|
|
247
|
+
'the red line emits action=red-line (the installed PreToolUse hook re-runs ' +
|
|
202
248
|
'this command on the next Bash/Task tool call; nothing is blocked). ' +
|
|
203
249
|
'--enforce-job-mode only changes the reported `jobMode` label; ' +
|
|
204
250
|
'the thresholds are identical. ' +
|
|
@@ -296,42 +342,30 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
296
342
|
});
|
|
297
343
|
const witnessNotice = describeHarnessWitness(harnessWitness);
|
|
298
344
|
const ratioPct = (probe.ratio * 100).toFixed(1);
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
}
|
|
321
|
-
const verdict = action === 'red-line' ? 'red-line'
|
|
322
|
-
: action === 'auto-compact-now' ? 'pre-compact'
|
|
323
|
-
: action === 'soft-warn' ? 'soft-warn'
|
|
324
|
-
: 'ok';
|
|
325
|
-
// Slice 2026-09-12-compact-band-policy: the two modes no longer
|
|
326
|
-
// differ in behaviour ABOVE 0.50 — both auto-fire at ≥0.85 and
|
|
327
|
-
// both red-line at ≥0.95 — so the old "advisory mode
|
|
328
|
-
// (single-rid)" notice was a lie the moment the downgrade was
|
|
329
|
-
// removed. Job mode's remaining difference is that its threshold
|
|
330
|
-
// policy is recorded up front (`job-shape.json`), which the
|
|
331
|
-
// `jobMode` field already reports. The notice now says only that.
|
|
345
|
+
// Slice H4 (rid=h4-context-now-mode-blind): ONE table, ONE mode
|
|
346
|
+
// resolver. The hard-coded ladder that used to live here (≥0.95 / ≥0.85
|
|
347
|
+
// / ≥0.5) read no mode at all, so on a 24h run (`partial` =
|
|
348
|
+
// 0.65/0.70/0.85) it answered `soft-warn` + `next: null` across
|
|
349
|
+
// [0.70, 0.85) — the band in which `peaks code auto-compact` had
|
|
350
|
+
// already decided to compact. SKILL.md calls THIS command the "single
|
|
351
|
+
// source of truth", so an LLM obeying it did nothing.
|
|
352
|
+
const compactMode = resolveAutoCompactProfile(canonicalProjectRoot);
|
|
353
|
+
const decided = contextNowActionFor(probe.ratio, compactMode);
|
|
354
|
+
const action = decided.action;
|
|
355
|
+
const next = decided.next;
|
|
356
|
+
const verdict = action === 'red-line'
|
|
357
|
+
? 'red-line'
|
|
358
|
+
: action === 'auto-compact-now'
|
|
359
|
+
? 'pre-compact'
|
|
360
|
+
: action;
|
|
361
|
+
const bands = contextNowBandLabels(compactMode);
|
|
362
|
+
// Slice H4: the text here used to claim "the two modes no longer differ
|
|
363
|
+
// in behaviour ABOVE 0.50 — both auto-fire at ≥0.85 and both red-line at
|
|
364
|
+
// ≥0.95". That was false: `partial` fires at 0.70, red-lines at 0.85.
|
|
365
|
+
// The lines now come from the table for the mode in force.
|
|
332
366
|
const gateModeNotice = isJobMode
|
|
333
|
-
?
|
|
334
|
-
:
|
|
367
|
+
? `Job mode (job-shape.json isJob=true): the same ≥${bands.preCompactRatio} / ≥${bands.redLineRatio} thresholds apply, and the decision is recorded in job-shape.json.`
|
|
368
|
+
: `Single-rid mode: the same ≥${bands.preCompactRatio} / ≥${bands.redLineRatio} thresholds apply — ≥${bands.preCompactRatio} is MANDATORY auto-compact, not advisory.`;
|
|
335
369
|
printResult(io, ok('code.context-now', {
|
|
336
370
|
ratio: probe.ratio,
|
|
337
371
|
ratioPct: `${ratioPct}%`,
|
|
@@ -366,12 +400,12 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
366
400
|
...(witnessNotice === null ? [] : [witnessNotice])
|
|
367
401
|
], [
|
|
368
402
|
action === 'red-line'
|
|
369
|
-
? `RED LINE: ≥
|
|
403
|
+
? `RED LINE: ≥ ${bands.redLine}%. Next: \`${next}\` — peaks-loop asks the harness to compact and KEEPS WORKING (dispatch is not blocked); re-probe to confirm it landed.`
|
|
370
404
|
: action === 'auto-compact-now'
|
|
371
|
-
? `MANDATORY auto-compact (
|
|
405
|
+
? `MANDATORY auto-compact (≥${bands.preCompact}%, every mode). Code MUST call \`${next}\` WITHOUT confirmation.`
|
|
372
406
|
: action === 'soft-warn'
|
|
373
|
-
? `Soft warn (
|
|
374
|
-
: `Below
|
|
407
|
+
? `Soft warn (${bands.softWarn}–${bands.preCompact}%). Continue working; the next \`peaks code auto-compact\` will re-check.`
|
|
408
|
+
: `Below ${bands.softWarn}%. No action required.`,
|
|
375
409
|
gateModeNotice,
|
|
376
410
|
// Single wording, shared with `peaks code auto-compact` — see
|
|
377
411
|
// `describeHarnessWindowSync`.
|
|
@@ -383,7 +417,9 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
383
417
|
// the same split, and note this one never asks a question.
|
|
384
418
|
...(witnessNotice === null
|
|
385
419
|
? []
|
|
386
|
-
: [
|
|
420
|
+
: [
|
|
421
|
+
'Re-probe with `peaks code context-now` to confirm; this is reported, not blocking.'
|
|
422
|
+
])
|
|
387
423
|
]),
|
|
388
424
|
// Slice 2026-09-13-auto-compact-trigger-ownership: was hard-coded
|
|
389
425
|
// `true`, which made the declared `--json` flag a no-op and left the
|
|
@@ -412,10 +448,10 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
412
448
|
// `available:false` with a reason and NEVER sets a non-zero exit code.
|
|
413
449
|
addJsonOption(code
|
|
414
450
|
.command('context-audit')
|
|
415
|
-
.description(
|
|
451
|
+
.description("Slice 2026-09-10 Slice A: report what fills the current session's " +
|
|
416
452
|
'context window, grouped by tool + short input key (command line / ' +
|
|
417
|
-
|
|
418
|
-
|
|
453
|
+
"path tail / pattern), sorted by bytes. Locates the CURRENT session's " +
|
|
454
|
+
"IDE transcript through the active adapter's " +
|
|
419
455
|
'`compact.resolveTranscriptPath` (vendor-neutral); emits total bytes, ' +
|
|
420
456
|
'entry count, and the top-N groups ' +
|
|
421
457
|
'(`{tool, key, bytes, pctOfTotal, count}`). Read-only and fail-soft — ' +
|
|
@@ -434,13 +470,17 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
434
470
|
const result = auditContext({
|
|
435
471
|
outerSessionId: outerSessionId ?? null,
|
|
436
472
|
...(opts.top !== undefined ? { topN: opts.top } : {}),
|
|
437
|
-
...(opts.transcript !== undefined ? { transcriptPath: opts.transcript } : {})
|
|
473
|
+
...(opts.transcript !== undefined ? { transcriptPath: opts.transcript } : {})
|
|
438
474
|
});
|
|
439
475
|
// Fail-soft contract: unavailability is DATA, not an error. The exit
|
|
440
476
|
// code stays 0 so a `context-audit` call can never block a workflow.
|
|
441
477
|
const nextActions = result.available
|
|
442
|
-
? [
|
|
443
|
-
|
|
478
|
+
? [
|
|
479
|
+
`${result.entryCount} tool result(s) across ${result.groupCount} group(s); showing top ${result.entries.length}.`
|
|
480
|
+
]
|
|
481
|
+
: [
|
|
482
|
+
`context-audit unavailable: ${result.reason ?? 'unknown'} — continue without it (read-only probe).`
|
|
483
|
+
];
|
|
444
484
|
printResult(io, ok('code.context-audit', { ...result }, [], nextActions), opts.json);
|
|
445
485
|
}
|
|
446
486
|
catch (err) {
|
|
@@ -482,9 +522,7 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
482
522
|
mode: 'no-session',
|
|
483
523
|
decision: null,
|
|
484
524
|
nextSlice: null
|
|
485
|
-
}, [], [
|
|
486
|
-
'No active session id; gate passes through (single-rid mode).'
|
|
487
|
-
]);
|
|
525
|
+
}, [], ['No active session id; gate passes through (single-rid mode).']);
|
|
488
526
|
printResult(io, envelope, opts.json);
|
|
489
527
|
return;
|
|
490
528
|
}
|
|
@@ -524,10 +562,7 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
524
562
|
mode: 'single',
|
|
525
563
|
decision: null,
|
|
526
564
|
nextSlice: null
|
|
527
|
-
}, [], [
|
|
528
|
-
'job-shape.json says isJob=false; single-rid mode (gate allows).',
|
|
529
|
-
...hintActions
|
|
530
|
-
]);
|
|
565
|
+
}, [], ['job-shape.json says isJob=false; single-rid mode (gate allows).', ...hintActions]);
|
|
531
566
|
printResult(io, envelope, opts.json);
|
|
532
567
|
return;
|
|
533
568
|
}
|
|
@@ -584,9 +619,7 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
584
619
|
try {
|
|
585
620
|
const sessionId = opts.sessionId ?? readActiveSid(opts.project);
|
|
586
621
|
if (sessionId === null) {
|
|
587
|
-
const envelope = ok('code.emit-handoff', { allow: true, mode: 'no-session' }, [], [
|
|
588
|
-
'No active session id; gate passes through (single-rid mode).'
|
|
589
|
-
]);
|
|
622
|
+
const envelope = ok('code.emit-handoff', { allow: true, mode: 'no-session' }, [], ['No active session id; gate passes through (single-rid mode).']);
|
|
590
623
|
printResult(io, envelope, opts.json);
|
|
591
624
|
return;
|
|
592
625
|
}
|
|
@@ -600,16 +633,12 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
600
633
|
evalInput.forceUnderJob = true;
|
|
601
634
|
const verdict = evaluateEmitHandoff(evalInput);
|
|
602
635
|
if (verdict.kind === 'allow-not-job') {
|
|
603
|
-
const envelope = ok('code.emit-handoff', { allow: true, mode: 'single' }, [], [
|
|
604
|
-
'job-shape.json says isJob=false (or absent); normal handoff allowed.'
|
|
605
|
-
]);
|
|
636
|
+
const envelope = ok('code.emit-handoff', { allow: true, mode: 'single' }, [], ['job-shape.json says isJob=false (or absent); normal handoff allowed.']);
|
|
606
637
|
printResult(io, envelope, opts.json);
|
|
607
638
|
return;
|
|
608
639
|
}
|
|
609
640
|
if (verdict.kind === 'allow-done') {
|
|
610
|
-
const envelope = ok('code.emit-handoff', { allow: true, mode: 'job-done', remaining: verdict.remaining }, [], [
|
|
611
|
-
`Job is complete (remaining=0); handoff allowed.`
|
|
612
|
-
]);
|
|
641
|
+
const envelope = ok('code.emit-handoff', { allow: true, mode: 'job-done', remaining: verdict.remaining }, [], [`Job is complete (remaining=0); handoff allowed.`]);
|
|
613
642
|
printResult(io, envelope, opts.json);
|
|
614
643
|
return;
|
|
615
644
|
}
|
|
@@ -621,7 +650,9 @@ export function registerCodeRuntimeCommands(code, io) {
|
|
|
621
650
|
return;
|
|
622
651
|
}
|
|
623
652
|
if (verdict.kind === 'block-not-initialized') {
|
|
624
|
-
const envelope = fail('code.emit-handoff', JOB_NOT_INITIALIZED, `Job ${verdict.jobId} has no state.json; peaks job init was skipped.`, { jobId: verdict.jobId }, [
|
|
653
|
+
const envelope = fail('code.emit-handoff', JOB_NOT_INITIALIZED, `Job ${verdict.jobId} has no state.json; peaks job init was skipped.`, { jobId: verdict.jobId }, [
|
|
654
|
+
`Run \`peaks job init --job-id ${verdict.jobId} --slice-list <...>\` before emitting handoff.`
|
|
655
|
+
]);
|
|
625
656
|
printResult(io, envelope, opts.json);
|
|
626
657
|
process.exitCode = 1;
|
|
627
658
|
return;
|
|
@@ -656,7 +687,8 @@ function readActiveSid(projectRoot) {
|
|
|
656
687
|
return null;
|
|
657
688
|
return presence.sessionId ?? null;
|
|
658
689
|
}
|
|
659
|
-
catch {
|
|
690
|
+
catch {
|
|
691
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
660
692
|
return null;
|
|
661
693
|
}
|
|
662
694
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// src/cli/commands/codegraph-commands.ts
|
|
2
2
|
//
|
|
3
3
|
// The codegraph verbs that MUTATE or PROXY: `repair-exclude`, `repair-index`,
|
|
4
|
-
// `init`, `affected`, plus the commander registration for
|
|
5
|
-
// subcommand.
|
|
4
|
+
// `config-restore`, `init`, `affected`, plus the commander registration for
|
|
5
|
+
// every codegraph subcommand.
|
|
6
6
|
//
|
|
7
7
|
// D1 (rid 2026-09-17-oversize-and-scale, the 800-line file-size cap) moved
|
|
8
8
|
// the shared invocation runtime to `codegraph-command-runtime.ts` and the
|
|
@@ -12,11 +12,13 @@
|
|
|
12
12
|
// re-exported below, so every existing importer still resolves.
|
|
13
13
|
import { InvalidArgumentError } from 'commander';
|
|
14
14
|
import { statSync } from 'node:fs';
|
|
15
|
-
import { resolve } from 'node:path';
|
|
16
|
-
import { createCodegraphInvocation, executeCodegraphInvocation, defaultCodegraphInitGuard, resolveProjectRoot, writeCodegraphMarker, writeCodegraphAffectedContext, CodegraphInitConflictError } from '../../services/codegraph/codegraph-service.js';
|
|
15
|
+
import { join, resolve } from 'node:path';
|
|
16
|
+
import { assertCodegraphDirContained, createCodegraphInvocation, executeCodegraphInvocation, defaultCodegraphInitGuard, resolveProjectRoot, writeCodegraphMarker, writeCodegraphAffectedContext, CodegraphInitConflictError, CODEGRAPH_DIR_NAME } from '../../services/codegraph/codegraph-service.js';
|
|
17
17
|
import { repairCodegraphExcludeFromProject } from '../../services/codegraph/codegraph-exclude-repair.js';
|
|
18
|
+
import { CODEGRAPH_CONFIG_FILENAME } from '../../services/codegraph/codegraph-exclude-reconciler.js';
|
|
19
|
+
import { rollbackCodegraphConfig } from '../../services/codegraph/codegraph-config-repair-writer.js';
|
|
18
20
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
19
|
-
import { printResult, redactSensitiveErrorMessage } from '../cli-helpers.js';
|
|
21
|
+
import { getErrorMessage, printResult, redactSensitiveErrorMessage } from '../cli-helpers.js';
|
|
20
22
|
import { printCodegraphFailure, runCodegraphCommand } from './codegraph-command-runtime.js';
|
|
21
23
|
import { runCodegraphStatusCommand } from './codegraph-status-command.js';
|
|
22
24
|
// Re-exported so the D1 split is invisible to importers of THIS path.
|
|
@@ -132,9 +134,7 @@ async function runCodegraphRepairCommand(io, options, asJson, mode) {
|
|
|
132
134
|
// in the third slot reads as a problem — and a real warning parked
|
|
133
135
|
// there double-prefixes. Confirmations go to `nextActions`; only a
|
|
134
136
|
// genuine `report.warning` reaches `warnings`, verbatim.
|
|
135
|
-
const confirmations = [
|
|
136
|
-
report.applied ? appliedRepairNote(report) : spec.noopNote
|
|
137
|
-
];
|
|
137
|
+
const confirmations = [report.applied ? appliedRepairNote(report) : spec.noopNote];
|
|
138
138
|
if (report.applied || mode === 'index') {
|
|
139
139
|
confirmations.push('Re-run `peaks codegraph status --project <root>` to confirm the gap is closed.');
|
|
140
140
|
}
|
|
@@ -158,6 +158,160 @@ async function runCodegraphRepairCommand(io, options, asJson, mode) {
|
|
|
158
158
|
process.exitCode = 1;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Exit code for a `config-restore` run that never reached the restore point:
|
|
163
|
+
* `--project` is missing or not a directory, or the containment guard refused
|
|
164
|
+
* the `.codegraph/` directory.
|
|
165
|
+
*
|
|
166
|
+
* Deliberately NOT `CODEGRAPH_CONFIG_RESTORE_EXIT_CODE` (77). The two codes
|
|
167
|
+
* answer different questions, and a CI job has to be able to tell them apart:
|
|
168
|
+
*
|
|
169
|
+
* - 1 — the command was never aimed at a usable project. Nothing looked at a
|
|
170
|
+
* rollback point, so "your backup is unusable" would be a verdict
|
|
171
|
+
* nothing reached, and the remedy is a different one (fix the path, or
|
|
172
|
+
* remove the link). The VALUE is 1 because that is what every other
|
|
173
|
+
* codegraph verb already exits with for this same input failure —
|
|
174
|
+
* `repair-exclude --project <bad>` and `status --project <bad>` both
|
|
175
|
+
* exit 1 (measured), so a caller that handles one handles this one.
|
|
176
|
+
* - 77 — the restore point WAS examined and the restore did not happen.
|
|
177
|
+
*
|
|
178
|
+
* Named rather than left as `printCodegraphFailure`'s default `1` so both
|
|
179
|
+
* classes are visible in one place, side by side, instead of one of them living
|
|
180
|
+
* only in another module's parameter default.
|
|
181
|
+
*/
|
|
182
|
+
const CODEGRAPH_CONFIG_RESTORE_PRECONDITION_EXIT_CODE = 1;
|
|
183
|
+
/**
|
|
184
|
+
* Exit code for `peaks codegraph config-restore` when the restore did not
|
|
185
|
+
* happen: the backup is absent, unreadable, or REFUSED (a symbolic link, a
|
|
186
|
+
* hard link or a directory occupies the fixed, guessable `.bak` path), or the
|
|
187
|
+
* reverse write itself failed.
|
|
188
|
+
*
|
|
189
|
+
* Its own code rather than the precondition `1`, for the same reason 73/74/75/76
|
|
190
|
+
* have theirs: it is an operator-actionable verdict about the RESTORE POINT, and
|
|
191
|
+
* a CI job has to be able to tell it apart from "the command was aimed wrong".
|
|
192
|
+
* The cause lives in `data.reason`, which names the path and the shape that was
|
|
193
|
+
* refused — a per-cause CODE would need the rollback helper to return a
|
|
194
|
+
* discriminated reason rather than a message, which is a change to that helper's
|
|
195
|
+
* contract for no operator-visible gain while the message already carries the
|
|
196
|
+
* details.
|
|
197
|
+
*/
|
|
198
|
+
const CODEGRAPH_CONFIG_RESTORE_EXIT_CODE = 77;
|
|
199
|
+
/**
|
|
200
|
+
* The failure envelope for EVERY `config-restore` failure, so all four `data`
|
|
201
|
+
* keys are present whatever went wrong.
|
|
202
|
+
*
|
|
203
|
+
* A JSON consumer reads `data.restored` and `data.reason` unconditionally, so a
|
|
204
|
+
* failure envelope that omits them leaves it guessing — and this verb reports a
|
|
205
|
+
* `reason` instead of an exit code alone precisely so a failure is never silent.
|
|
206
|
+
* Built here rather than delegated to `printCodegraphFailure`, whose `data` is
|
|
207
|
+
* always `{}` and therefore cannot satisfy that.
|
|
208
|
+
*
|
|
209
|
+
* `code` names the VERB's failure for all three cases; the exit code names the
|
|
210
|
+
* CLASS (precondition vs restore) and `reason` names the cause. That split is
|
|
211
|
+
* deliberate: one `code` a consumer can match on, plus the two facts it needs
|
|
212
|
+
* to decide what to do next.
|
|
213
|
+
*
|
|
214
|
+
* The verb-specific `code` is an INTENTIONAL DIVERGENCE from every other
|
|
215
|
+
* codegraph verb, not a consistency with them — `repair-exclude`,
|
|
216
|
+
* `repair-index` and `status` all report `CODEGRAPH_COMMAND_FAILED` out of
|
|
217
|
+
* `printCodegraphFailure` with `data: {}` (measured, 2026-09-17). Two reasons
|
|
218
|
+
* to diverge here anyway:
|
|
219
|
+
*
|
|
220
|
+
* 1. A generic `code` cannot be paired with a verb-specific `reason`
|
|
221
|
+
* contract: this verb's failure ALWAYS carries `restored`/`reason`, which
|
|
222
|
+
* `printCodegraphFailure` cannot express at all (`fail()` hard-codes the
|
|
223
|
+
* other verbs' `data` to `{}`).
|
|
224
|
+
* 2. `CODEGRAPH_CONFIG_RESTORE_FAILED` says WHICH restore failed, and a
|
|
225
|
+
* consumer matching on `code` gets that from the envelope rather than from
|
|
226
|
+
* the exit code alone.
|
|
227
|
+
*
|
|
228
|
+
* FOLLOW-UP (recorded, not done here — it is out of this slice's scope):
|
|
229
|
+
* `code` naming across the codegraph verb family is now inconsistent, and the
|
|
230
|
+
* rest of the family should either adopt verb-specific codes or this one should
|
|
231
|
+
* return to the generic one. See this slice's RD artifact,
|
|
232
|
+
* `## A1 QA 修复循环 2`.
|
|
233
|
+
*/
|
|
234
|
+
function printConfigRestoreFailure(io, asJson, reason, exitCode, nextActions) {
|
|
235
|
+
const redacted = redactSensitiveErrorMessage(reason);
|
|
236
|
+
printResult(io, fail('codegraph.config-restore', 'CODEGRAPH_CONFIG_RESTORE_FAILED', redacted, { restored: false, from: null, to: null, reason: redacted }, [...nextActions]), asJson);
|
|
237
|
+
process.exitCode = exitCode;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* `peaks codegraph config-restore` — put `.codegraph/config.json` back to the
|
|
241
|
+
* bytes the last repair backed up to `.codegraph/config.json.bak`.
|
|
242
|
+
*
|
|
243
|
+
* The EXPLICIT undo of a repair, and the only way the `.bak` is ever read: the
|
|
244
|
+
* repair seams leave the copy behind and never consume it, because a repair
|
|
245
|
+
* that restored its own write would cancel itself out (the config would be
|
|
246
|
+
* exactly as it was found, `status` would still report the gap, and exit 75
|
|
247
|
+
* would never clear).
|
|
248
|
+
*
|
|
249
|
+
* Touches the CONFIG FILE ONLY — no `codegraph` subprocess is spawned, so this
|
|
250
|
+
* is safe to run while nothing else is rebuilding. The index still reflects
|
|
251
|
+
* whatever config the last rebuild used; the envelope's `nextActions` says so
|
|
252
|
+
* rather than silently reindexing.
|
|
253
|
+
*/
|
|
254
|
+
async function runCodegraphConfigRestoreCommand(io, options, asJson) {
|
|
255
|
+
let configPath;
|
|
256
|
+
try {
|
|
257
|
+
// `resolveProjectRoot` for the same reason the repair verbs use it: the
|
|
258
|
+
// paths reported here must be the canonical ones, or a `--project` alias
|
|
259
|
+
// reports a restore that happened somewhere the operator cannot find.
|
|
260
|
+
const projectRoot = resolveProjectRoot(options.project);
|
|
261
|
+
// The containment refusal the repair seam makes before IT writes here. A
|
|
262
|
+
// `.codegraph/` that resolves outside the canonical project root (a junction
|
|
263
|
+
// or a symlink) would otherwise let this verb publish one project's bytes
|
|
264
|
+
// into another. Called for its refusal only — the paths below stay derived
|
|
265
|
+
// from the caller's canonical `projectRoot`.
|
|
266
|
+
assertCodegraphDirContained(projectRoot);
|
|
267
|
+
configPath = join(projectRoot, CODEGRAPH_DIR_NAME, CODEGRAPH_CONFIG_FILENAME);
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
// The PRECONDITION class: nothing below this line ran, so the envelope says
|
|
271
|
+
// the restore did not happen and stops short of blaming the rollback point.
|
|
272
|
+
printConfigRestoreFailure(io, asJson, getErrorMessage(error), CODEGRAPH_CONFIG_RESTORE_PRECONDITION_EXIT_CODE, [
|
|
273
|
+
'Check that `--project` names an existing directory whose `.codegraph/` resolves inside it.',
|
|
274
|
+
'Run `peaks codegraph config-restore --project <root>` again once the path is right.'
|
|
275
|
+
]);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
let result;
|
|
279
|
+
try {
|
|
280
|
+
result = await rollbackCodegraphConfig(configPath);
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
// Only the reverse write's own fs failure reaches here (the refusals are
|
|
284
|
+
// returned, not thrown). The RESTORE class, and the same code as a refusal:
|
|
285
|
+
// the restore was attempted and did not happen, and a script that can read
|
|
286
|
+
// one can read the other. What differs is the `reason`, which is this
|
|
287
|
+
// error's own message.
|
|
288
|
+
printConfigRestoreFailure(io, asJson, getErrorMessage(error), CODEGRAPH_CONFIG_RESTORE_EXIT_CODE, [
|
|
289
|
+
'Check that the `.codegraph/` directory is writable, then re-run.',
|
|
290
|
+
'The config was NOT restored; its bytes are unchanged.'
|
|
291
|
+
]);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (!result.rolledBack) {
|
|
295
|
+
// LOUD, never silent: the reason reaches the envelope's `message` (which
|
|
296
|
+
// `fail()` redacts) AND `data.reason`, and the exit code is this verb's
|
|
297
|
+
// own. A restore that quietly reported success over a `.bak` it refused to
|
|
298
|
+
// read is exactly the fail-silent family this release closed.
|
|
299
|
+
printConfigRestoreFailure(io, asJson, result.error, CODEGRAPH_CONFIG_RESTORE_EXIT_CODE, [
|
|
300
|
+
`There is no usable rollback point at ${result.backupPath}.`,
|
|
301
|
+
'A restore needs the `.bak` that a previous `peaks codegraph repair-exclude` or `repair-index` left next to the config.'
|
|
302
|
+
]);
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
printResult(io, ok('codegraph.config-restore', {
|
|
306
|
+
restored: true,
|
|
307
|
+
from: result.backupPath,
|
|
308
|
+
to: result.configPath,
|
|
309
|
+
reason: null
|
|
310
|
+
}, [], [
|
|
311
|
+
'Run `peaks codegraph status --project <root>` to see the restored config reflected in the integrity gate.',
|
|
312
|
+
'Run `peaks codegraph index` if the index should reflect the restored config too — this verb does not rebuild it.'
|
|
313
|
+
]), asJson);
|
|
314
|
+
}
|
|
161
315
|
/**
|
|
162
316
|
* rid-CG-006 — init conflict guard. Resolves the project root and
|
|
163
317
|
* probes `.codegraph/` for the peaks-loop marker before invoking the
|
|
@@ -369,14 +523,21 @@ async function runCodegraphAffectedCommand(io, files, options, asJson) {
|
|
|
369
523
|
}
|
|
370
524
|
}
|
|
371
525
|
export function registerCodegraphCommands(program, io) {
|
|
372
|
-
const codegraph = program
|
|
373
|
-
|
|
526
|
+
const codegraph = program
|
|
527
|
+
.command('codegraph')
|
|
528
|
+
.description('Run upstream codegraph commands through the Peaks launcher');
|
|
529
|
+
addProjectOption(codegraph
|
|
530
|
+
.command('status')
|
|
531
|
+
.description('Show codegraph status, including the exclude integrity gate')).action((options) => runCodegraphStatusCommand(io, options, options.peaksJson));
|
|
374
532
|
addProjectOption(codegraph
|
|
375
533
|
.command('repair-exclude')
|
|
376
534
|
.description('Normalize the codegraph include list, drop exclude rules that block tracked source files, then rebuild the index')).action((options) => runCodegraphRepairCommand(io, options, options.peaksJson, 'exclude'));
|
|
377
535
|
addProjectOption(codegraph
|
|
378
536
|
.command('repair-index')
|
|
379
537
|
.description('Repair both codegraph config axes, then rebuild the index from scratch (drops rows for deleted files)')).action((options) => runCodegraphRepairCommand(io, options, options.peaksJson, 'index'));
|
|
538
|
+
addProjectOption(codegraph
|
|
539
|
+
.command('config-restore')
|
|
540
|
+
.description('Restore .codegraph/config.json from the byte-exact .bak a repair left — the explicit undo of a repair')).action((options) => runCodegraphConfigRestoreCommand(io, options, options.peaksJson));
|
|
380
541
|
addProjectOption(codegraph.command('init').description('Initialize codegraph for a project')).action((options) => runCodegraphInitCommand(io, options, options.peaksJson));
|
|
381
542
|
addProjectOption(codegraph
|
|
382
543
|
.command('index')
|
|
@@ -419,7 +580,10 @@ export function registerCodegraphCommands(program, io) {
|
|
|
419
580
|
...(options.maxDepth !== undefined ? { maxDepth: options.maxDepth } : {})
|
|
420
581
|
}, options.peaksJson);
|
|
421
582
|
});
|
|
422
|
-
addProjectOption(codegraph
|
|
583
|
+
addProjectOption(codegraph
|
|
584
|
+
.command('context')
|
|
585
|
+
.description('Build task context with codegraph')
|
|
586
|
+
.argument('<task>', 'task text')).action(async (task, options) => {
|
|
423
587
|
await runCodegraphCommand(io, 'codegraph.context', { subcommand: 'context', project: options.project, task }, options.peaksJson);
|
|
424
588
|
});
|
|
425
589
|
addProjectOption(codegraph
|
|
@@ -113,10 +113,14 @@ async function runCodegraphStatusJson(io, options, integrity, integrityWarning,
|
|
|
113
113
|
indexIntegritySeverity: indexVerdict === 'gap' ? (strict ? 'error' : 'warning') : null
|
|
114
114
|
};
|
|
115
115
|
if (upstreamFailed) {
|
|
116
|
-
printResult(io, fail('codegraph.status', 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(upstream.stderr ||
|
|
116
|
+
printResult(io, fail('codegraph.status', 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(upstream.stderr ||
|
|
117
|
+
upstream.stdout ||
|
|
118
|
+
`codegraph exited with code ${String(result.exitCode)}`), data, ['Check the codegraph project path before retrying']), true);
|
|
117
119
|
}
|
|
118
120
|
else if (integrity?.gap === true) {
|
|
119
|
-
printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_INCOMPLETE', `codegraph index is incomplete: ${integrity.excludedTrackedCount} of ${integrity.trackedSourceCount} tracked source files are excluded by ${integrity.rulesToRemove.length} rule(s).`, data, [
|
|
121
|
+
printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_INCOMPLETE', `codegraph index is incomplete: ${integrity.excludedTrackedCount} of ${integrity.trackedSourceCount} tracked source files are excluded by ${integrity.rulesToRemove.length} rule(s).`, data, [
|
|
122
|
+
'Run `peaks codegraph repair-exclude --project <root>` to drop the offending rules and rebuild the index.'
|
|
123
|
+
]), true);
|
|
120
124
|
}
|
|
121
125
|
else if (indexVerdict === 'not-evaluated') {
|
|
122
126
|
// Distinct from the `ok` branch below on purpose: this axis produced
|