peaks-loop 4.0.54 → 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 +36 -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 +11 -6
- 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 +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +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 +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +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 +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/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 +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +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.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.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/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.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- 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 +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/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 +31 -8
- 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/peaks-code/SKILL.md +1 -1
|
@@ -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
|
}
|
|
@@ -134,9 +134,7 @@ async function runCodegraphRepairCommand(io, options, asJson, mode) {
|
|
|
134
134
|
// in the third slot reads as a problem — and a real warning parked
|
|
135
135
|
// there double-prefixes. Confirmations go to `nextActions`; only a
|
|
136
136
|
// genuine `report.warning` reaches `warnings`, verbatim.
|
|
137
|
-
const confirmations = [
|
|
138
|
-
report.applied ? appliedRepairNote(report) : spec.noopNote
|
|
139
|
-
];
|
|
137
|
+
const confirmations = [report.applied ? appliedRepairNote(report) : spec.noopNote];
|
|
140
138
|
if (report.applied || mode === 'index') {
|
|
141
139
|
confirmations.push('Re-run `peaks codegraph status --project <root>` to confirm the gap is closed.');
|
|
142
140
|
}
|
|
@@ -525,8 +523,12 @@ async function runCodegraphAffectedCommand(io, files, options, asJson) {
|
|
|
525
523
|
}
|
|
526
524
|
}
|
|
527
525
|
export function registerCodegraphCommands(program, io) {
|
|
528
|
-
const codegraph = program
|
|
529
|
-
|
|
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));
|
|
530
532
|
addProjectOption(codegraph
|
|
531
533
|
.command('repair-exclude')
|
|
532
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'));
|
|
@@ -578,7 +580,10 @@ export function registerCodegraphCommands(program, io) {
|
|
|
578
580
|
...(options.maxDepth !== undefined ? { maxDepth: options.maxDepth } : {})
|
|
579
581
|
}, options.peaksJson);
|
|
580
582
|
});
|
|
581
|
-
addProjectOption(codegraph
|
|
583
|
+
addProjectOption(codegraph
|
|
584
|
+
.command('context')
|
|
585
|
+
.description('Build task context with codegraph')
|
|
586
|
+
.argument('<task>', 'task text')).action(async (task, options) => {
|
|
582
587
|
await runCodegraphCommand(io, 'codegraph.context', { subcommand: 'context', project: options.project, task }, options.peaksJson);
|
|
583
588
|
});
|
|
584
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
|
|
@@ -4,7 +4,7 @@ import { fail, ok, getErrorMessage } from 'peaks-loop-shared/result';
|
|
|
4
4
|
import { addJsonOption, printResult } from '../cli-helpers.js';
|
|
5
5
|
import { writeCheckpoint } from '../../services/session/session-checkpoint-service.js';
|
|
6
6
|
import { getSessionIdCanonical } from '../../services/session/session-manager.js';
|
|
7
|
-
import { computeWindowCalibration, readCompactHistory, summarizeCompactHistory
|
|
7
|
+
import { computeWindowCalibration, readCompactHistory, summarizeCompactHistory } from '../../services/compact-history/compact-history-service.js';
|
|
8
8
|
import { readHarnessWindowState, resolveHarnessWindowLocation } from '../../services/context/auto-compact-reader.js';
|
|
9
9
|
import { disableHarnessWindowSync, reenableHarnessWindowSync, resetHarnessWindow } from '../../services/context/harness-window-config.js';
|
|
10
10
|
import { buildRecommendEnvelopePure, dryRunCompact, suggestCompact } from '../../services/compact/suggest-service.js';
|
|
@@ -47,7 +47,8 @@ async function readHookPayload() {
|
|
|
47
47
|
try {
|
|
48
48
|
return JSON.parse(raw);
|
|
49
49
|
}
|
|
50
|
-
catch {
|
|
50
|
+
catch {
|
|
51
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
51
52
|
return null;
|
|
52
53
|
}
|
|
53
54
|
}
|
|
@@ -117,7 +118,9 @@ export function registerCompactCommands(program, io) {
|
|
|
117
118
|
]), options.json);
|
|
118
119
|
}
|
|
119
120
|
catch (error) {
|
|
120
|
-
printResult(io, fail('compact.suggest', 'COMPACT_SUGGEST_FAILED', getErrorMessage(error), {}, [
|
|
121
|
+
printResult(io, fail('compact.suggest', 'COMPACT_SUGGEST_FAILED', getErrorMessage(error), {}, [
|
|
122
|
+
'Verify project root and session binding before retrying'
|
|
123
|
+
]), options.json);
|
|
121
124
|
process.exitCode = 1;
|
|
122
125
|
}
|
|
123
126
|
});
|
|
@@ -151,7 +154,11 @@ export function registerCompactCommands(program, io) {
|
|
|
151
154
|
rationale: envelope.rationale,
|
|
152
155
|
suggestedMessage: envelope.suggestedMessage,
|
|
153
156
|
notInTable: lookup.notInTable
|
|
154
|
-
}, lookup.notInTable
|
|
157
|
+
}, lookup.notInTable
|
|
158
|
+
? [
|
|
159
|
+
`Transition ${options.from} → ${options.to} is not in the strategic-compact table; defaulting to severity=no.`
|
|
160
|
+
]
|
|
161
|
+
: []), options.json);
|
|
155
162
|
}
|
|
156
163
|
catch (error) {
|
|
157
164
|
printResult(io, fail('compact.recommend', 'COMPACT_RECOMMEND_FAILED', getErrorMessage(error), { from: options.from, to: options.to }, ['Verify the phase pair against the documented transitions']), options.json);
|
|
@@ -224,7 +231,9 @@ export function registerCompactCommands(program, io) {
|
|
|
224
231
|
]), options.json);
|
|
225
232
|
}
|
|
226
233
|
catch (error) {
|
|
227
|
-
printResult(io, fail('compact.dry-run', 'COMPACT_DRY_RUN_FAILED', getErrorMessage(error), {}, [
|
|
234
|
+
printResult(io, fail('compact.dry-run', 'COMPACT_DRY_RUN_FAILED', getErrorMessage(error), {}, [
|
|
235
|
+
'Verify project root, session binding, and phase pair before retrying'
|
|
236
|
+
]), options.json);
|
|
228
237
|
process.exitCode = 1;
|
|
229
238
|
}
|
|
230
239
|
});
|
|
@@ -234,7 +243,7 @@ export function registerCompactCommands(program, io) {
|
|
|
234
243
|
addJsonOption(compact
|
|
235
244
|
.command('force')
|
|
236
245
|
.description('Write a pre-compact checkpoint via `peaks session checkpoint --reason context-fill`. ' +
|
|
237
|
-
|
|
246
|
+
"The IDE-side `/compact` is still the LLM's call; this primitive guarantees " +
|
|
238
247
|
'the pre-compact state is persisted. NO sleep, NO wait for IDE response.')
|
|
239
248
|
.option('--reason <text>', 'human-readable reason for the pre-compact checkpoint', 'pre-force-compact')
|
|
240
249
|
.option('--project <path>', 'project root (defaults to git root or cwd)')
|
|
@@ -284,13 +293,15 @@ export function registerCompactCommands(program, io) {
|
|
|
284
293
|
sessionId: result.sessionId,
|
|
285
294
|
createdAt: result.createdAt,
|
|
286
295
|
totalRetained: result.totalRetained,
|
|
287
|
-
message:
|
|
296
|
+
message: "Pre-compact checkpoint written. The IDE-side /compact is still the LLM's call; this CLI does NOT invoke the IDE slash command."
|
|
288
297
|
}, [], [
|
|
289
298
|
'After the LLM fires the IDE-side /compact, call `peaks compact survival` to see what to persist before the next compact.'
|
|
290
299
|
]), options.json);
|
|
291
300
|
}
|
|
292
301
|
catch (error) {
|
|
293
|
-
printResult(io, fail('compact.force', 'COMPACT_FORCE_FAILED', getErrorMessage(error), {}, [
|
|
302
|
+
printResult(io, fail('compact.force', 'COMPACT_FORCE_FAILED', getErrorMessage(error), {}, [
|
|
303
|
+
'Verify the project path is writable and a session is bound'
|
|
304
|
+
]), options.json);
|
|
294
305
|
process.exitCode = 1;
|
|
295
306
|
}
|
|
296
307
|
});
|
|
@@ -312,13 +323,16 @@ export function registerCompactCommands(program, io) {
|
|
|
312
323
|
process.exitCode = 1;
|
|
313
324
|
return;
|
|
314
325
|
}
|
|
315
|
-
const result = readCompactHistory({
|
|
326
|
+
const result = readCompactHistory({
|
|
327
|
+
projectRoot: project,
|
|
328
|
+
sessionId: session.sid
|
|
329
|
+
});
|
|
316
330
|
if (result.kind === 'file-missing') {
|
|
317
331
|
printResult(io, ok('compact.history', {
|
|
318
332
|
sessionId: session.sid,
|
|
319
333
|
totalCompacts: 0,
|
|
320
334
|
message: 'No compact-history.jsonl yet; auto-compact has not fired in this session.',
|
|
321
|
-
historyPath: result.path
|
|
335
|
+
historyPath: result.path
|
|
322
336
|
}), options.json);
|
|
323
337
|
return;
|
|
324
338
|
}
|
|
@@ -327,7 +341,7 @@ export function registerCompactCommands(program, io) {
|
|
|
327
341
|
sessionId: session.sid,
|
|
328
342
|
totalCompacts: 0,
|
|
329
343
|
message: 'compact-history.jsonl exists but is empty.',
|
|
330
|
-
historyPath: result.path
|
|
344
|
+
historyPath: result.path
|
|
331
345
|
}), options.json);
|
|
332
346
|
return;
|
|
333
347
|
}
|
|
@@ -344,11 +358,13 @@ export function registerCompactCommands(program, io) {
|
|
|
344
358
|
windowCalibration,
|
|
345
359
|
events: result.events,
|
|
346
360
|
parseErrors: result.parseErrors,
|
|
347
|
-
historyPath: result.path
|
|
361
|
+
historyPath: result.path
|
|
348
362
|
}), options.json);
|
|
349
363
|
}
|
|
350
364
|
catch (error) {
|
|
351
|
-
printResult(io, fail('compact.history', 'COMPACT_HISTORY_READ_FAILED', getErrorMessage(error), {}, [
|
|
365
|
+
printResult(io, fail('compact.history', 'COMPACT_HISTORY_READ_FAILED', getErrorMessage(error), {}, [
|
|
366
|
+
'Verify the project path is readable and a session is bound'
|
|
367
|
+
]), options.json);
|
|
352
368
|
process.exitCode = 1;
|
|
353
369
|
}
|
|
354
370
|
}));
|
|
@@ -368,7 +384,7 @@ export function registerCompactCommands(program, io) {
|
|
|
368
384
|
addJsonOption(compact
|
|
369
385
|
.command('harness-window')
|
|
370
386
|
.description('Report / roll back the auto-compact window peaks-loop writes into the ' +
|
|
371
|
-
|
|
387
|
+
"harness's own machine-local settings (the adapter-declared " +
|
|
372
388
|
'autoCompactWindowEnvVar, e.g. CLAUDE_CODE_AUTO_COMPACT_WINDOW in ' +
|
|
373
389
|
'.claude/settings.local.json). peaks-loop computes its context ratio ' +
|
|
374
390
|
'against exactly this number, so the value it reports as "85%" and the ' +
|
|
@@ -390,13 +406,16 @@ export function registerCompactCommands(program, io) {
|
|
|
390
406
|
const project = options.project !== undefined
|
|
391
407
|
? resolveCanonicalProjectRoot(options.project)
|
|
392
408
|
: (findProjectRoot(process.cwd()) ?? process.cwd());
|
|
393
|
-
const location = resolveHarnessWindowLocation({
|
|
409
|
+
const location = resolveHarnessWindowLocation({
|
|
410
|
+
projectRoot: project,
|
|
411
|
+
env: process.env
|
|
412
|
+
});
|
|
394
413
|
if (location === null) {
|
|
395
414
|
printResult(io, ok('compact.harness-window', {
|
|
396
415
|
projectRoot: project,
|
|
397
416
|
managed: false,
|
|
398
417
|
message: 'The active IDE adapter declares no auto-compact window key, so peaks-loop cannot tie ' +
|
|
399
|
-
'the harness window to its own ratio. Nothing was written and there is nothing to roll back.'
|
|
418
|
+
'the harness window to its own ratio. Nothing was written and there is nothing to roll back.'
|
|
400
419
|
}), options.json);
|
|
401
420
|
return;
|
|
402
421
|
}
|
|
@@ -407,11 +426,11 @@ export function registerCompactCommands(program, io) {
|
|
|
407
426
|
action: result.action,
|
|
408
427
|
key: location.envVar,
|
|
409
428
|
settingsPath: result.settingsPath,
|
|
410
|
-
previousTokens: result.previousTokens
|
|
429
|
+
previousTokens: result.previousTokens
|
|
411
430
|
}, [], [
|
|
412
431
|
result.action === 'removed'
|
|
413
432
|
? `Removed ${location.envVar} from ${result.settingsPath} and opted this project out, so later probes stop writing it. Undo with \`peaks compact harness-window --reenable\`.`
|
|
414
|
-
: `Nothing to remove — ${location.envVar} was already absent from ${result.settingsPath}, so nothing was written and no opt-out row was recorded: if a probe writes a window here later, run --reset again to remove it. To say "never manage this key here" WITHOUT waiting for that first write, run \`peaks compact harness-window --disable
|
|
433
|
+
: `Nothing to remove — ${location.envVar} was already absent from ${result.settingsPath}, so nothing was written and no opt-out row was recorded: if a probe writes a window here later, run --reset again to remove it. To say "never manage this key here" WITHOUT waiting for that first write, run \`peaks compact harness-window --disable\`.`
|
|
415
434
|
]), options.json);
|
|
416
435
|
return;
|
|
417
436
|
}
|
|
@@ -421,7 +440,7 @@ export function registerCompactCommands(program, io) {
|
|
|
421
440
|
projectRoot: project,
|
|
422
441
|
action: result.action,
|
|
423
442
|
key: location.envVar,
|
|
424
|
-
settingsPath: result.settingsPath
|
|
443
|
+
settingsPath: result.settingsPath
|
|
425
444
|
}, [], [
|
|
426
445
|
result.action === 'disabled'
|
|
427
446
|
? `Recorded the opt-out in ${result.settingsPath}: peaks-loop will not write ${location.envVar} here, and left any value already in the file exactly as it was. Undo with \`peaks compact harness-window --reenable\`.`
|
|
@@ -429,16 +448,21 @@ export function registerCompactCommands(program, io) {
|
|
|
429
448
|
? `Already opted out — ${result.settingsPath} carries ${location.envVar}'s opt-out, so nothing was written. Undo with \`peaks compact harness-window --reenable\`.`
|
|
430
449
|
: result.action === 'refused-unsafe-project-root'
|
|
431
450
|
? `Nothing written: the resolved project root is the user's own home directory, so ${result.settingsPath} is their PERSONAL harness settings, not a project's. peaks-loop already refuses to write ${location.envVar} there, so an opt-out would change nothing except which refusal you see. Point --project at a project (a subdirectory of home is fine) and the opt-out lands there.`
|
|
432
|
-
: `Nothing written — ${result.settingsPath} is not a JSON object peaks-loop can safely edit, so the opt-out could not be recorded there
|
|
451
|
+
: `Nothing written — ${result.settingsPath} is not a JSON object peaks-loop can safely edit, so the opt-out could not be recorded there.`
|
|
433
452
|
]), options.json);
|
|
434
453
|
return;
|
|
435
454
|
}
|
|
436
455
|
if (options.reenable === true) {
|
|
437
456
|
const result = reenableHarnessWindowSync({ location });
|
|
438
|
-
printResult(io, ok('compact.harness-window', {
|
|
457
|
+
printResult(io, ok('compact.harness-window', {
|
|
458
|
+
projectRoot: project,
|
|
459
|
+
action: result.action,
|
|
460
|
+
key: location.envVar,
|
|
461
|
+
settingsPath: result.settingsPath
|
|
462
|
+
}, [], [
|
|
439
463
|
result.action === 'reenabled'
|
|
440
464
|
? 'Opt-out cleared; the next context probe will materialize the window again.'
|
|
441
|
-
: 'No opt-out was recorded for this project.'
|
|
465
|
+
: 'No opt-out was recorded for this project.'
|
|
442
466
|
]), options.json);
|
|
443
467
|
return;
|
|
444
468
|
}
|
|
@@ -455,15 +479,15 @@ export function registerCompactCommands(program, io) {
|
|
|
455
479
|
// Provenance: whether this value is peaks-loop's own write or
|
|
456
480
|
// one the user set by hand. It decides whether the late 1M
|
|
457
481
|
// rescue may override it, so it is not just diagnostics.
|
|
458
|
-
peakWritten: state?.peakWritten ?? false
|
|
482
|
+
peakWritten: state?.peakWritten ?? false
|
|
459
483
|
}, [], [
|
|
460
484
|
state?.tokens === null || state?.tokens === undefined
|
|
461
485
|
? 'No window is set yet. The next `peaks code context-now` probe materializes the window it computes its ratio against.'
|
|
462
486
|
: `peaks-loop computes its context ratio against ${state.tokens} tokens; the harness fires near the end of that window. ${state.peakWritten
|
|
463
487
|
? 'peaks-loop wrote this value; it may raise it if a session outgrows it.'
|
|
464
|
-
:
|
|
488
|
+
: "This value is not peaks-loop's own write, so peaks-loop will not raise it — it is treated as your setting."}`,
|
|
465
489
|
'Rollback: `peaks compact harness-window --reset`.',
|
|
466
|
-
'Intent-vs-observed calibration: `peaks compact history --json` → windowCalibration.'
|
|
490
|
+
'Intent-vs-observed calibration: `peaks compact history --json` → windowCalibration.'
|
|
467
491
|
]), options.json);
|
|
468
492
|
}
|
|
469
493
|
catch (error) {
|
|
@@ -536,7 +560,9 @@ export function registerCompactCommands(program, io) {
|
|
|
536
560
|
catch (error) {
|
|
537
561
|
if (options.json !== true)
|
|
538
562
|
return;
|
|
539
|
-
printResult(io, fail('compact.settle', 'COMPACT_SETTLE_FAILED', getErrorMessage(error), {}, [
|
|
563
|
+
printResult(io, fail('compact.settle', 'COMPACT_SETTLE_FAILED', getErrorMessage(error), {}, [
|
|
564
|
+
'Verify the project path and session binding'
|
|
565
|
+
]), true);
|
|
540
566
|
}
|
|
541
567
|
});
|
|
542
568
|
}
|
|
@@ -19,16 +19,15 @@ export function registerComplexityCommands(program, io) {
|
|
|
19
19
|
.requiredOption('--files <list>', 'comma-separated file paths (relative to project root)')
|
|
20
20
|
.option('--project <path>', 'project root (default: cwd)')).action((opts) => {
|
|
21
21
|
const projectRoot = opts.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
|
|
22
|
-
const files = opts.files
|
|
22
|
+
const files = opts.files
|
|
23
|
+
.split(',')
|
|
24
|
+
.map((s) => s.trim())
|
|
25
|
+
.filter((s) => s.length > 0);
|
|
23
26
|
if (files.length === 0) {
|
|
24
|
-
printResult(io, fail('complexity-estimate', 'INVALID_INPUT', 'no files provided (--files)', { projectRoot }, [
|
|
25
|
-
'Pass --files with at least one file path.'
|
|
26
|
-
]), opts.json ?? false);
|
|
27
|
+
printResult(io, fail('complexity-estimate', 'INVALID_INPUT', 'no files provided (--files)', { projectRoot }, ['Pass --files with at least one file path.']), opts.json ?? false);
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
29
30
|
const report = estimateComplexity(projectRoot, files);
|
|
30
|
-
printResult(io, ok('complexity-estimate', { projectRoot, report }, [], [
|
|
31
|
-
`Overall tier: ${report.overall}. Schedule accordingly.`
|
|
32
|
-
]), opts.json ?? false);
|
|
31
|
+
printResult(io, ok('complexity-estimate', { projectRoot, report }, [], [`Overall tier: ${report.overall}. Schedule accordingly.`]), opts.json ?? false);
|
|
33
32
|
});
|
|
34
33
|
}
|