peaks-loop 4.0.54 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +86 -39
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +57 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +32 -17
- package/dist/cli/commands/core/standards-command.js +56 -14
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +18 -23
- package/dist/cli/commands/ecc-commands.js +39 -36
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +16 -6
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +8 -10
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +66 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +25 -69
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -6
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +57 -0
- package/dist/services/comments/comment-audit.js +100 -0
- package/dist/services/comments/comment-citations.d.ts +60 -0
- package/dist/services/comments/comment-citations.js +186 -0
- package/dist/services/comments/comment-hygiene.d.ts +79 -0
- package/dist/services/comments/comment-hygiene.js +133 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +148 -0
- package/dist/services/comments/prune-apply.d.ts +60 -0
- package/dist/services/comments/prune-apply.js +150 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.d.ts +0 -16
- package/dist/services/log/retention.js +2 -18
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +144 -38
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +62 -1
- package/dist/services/prd/handoff-gate-evidence.js +14 -10
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +12 -38
- package/dist/services/prd/handoff-service.js +25 -147
- package/dist/services/prd/handoff-types.d.ts +33 -1
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/recommendations/installed-capability-detector.d.ts +5 -5
- package/dist/services/recommendations/installed-capability-detector.js +11 -10
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +74 -0
- package/dist/services/scan/archetype-detection.js +315 -0
- package/dist/services/scan/archetype-service.js +58 -133
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/scan-types.d.ts +9 -0
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +12 -4
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +286 -283
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -94
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -405
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is a path required to exist in a checkout at all?
|
|
3
|
+
*
|
|
4
|
+
* The dominant false positive on `dead-reference` was never a stale comment: it
|
|
5
|
+
* was a correct reference to a file git is told not to track. Ranked over this
|
|
6
|
+
* repository, the top twelve "dead" citations were `.claude/settings.local.json`,
|
|
7
|
+
* `.peaks/_runtime/session.json`, `.peaks/.session.json`,
|
|
8
|
+
* `.peaks/_runtime/active-skill.json`, `.codegraph/config.json`,
|
|
9
|
+
* `.peaks/preferences.json` and friends — all generated state, all named
|
|
10
|
+
* correctly by the code that writes them.
|
|
11
|
+
*
|
|
12
|
+
* So the probe answers "exists OR ignored", and the ignore reading is deliberately
|
|
13
|
+
* bounded: trailing-slash prefixes, whole-path entries, and bare-basename entries.
|
|
14
|
+
* That limit has a direction, and the direction is the safe one — a rule
|
|
15
|
+
* `.gitignore` expresses fancily (negation, `**`, character classes) is NOT read
|
|
16
|
+
* here, so such a path stays reported. A missed exemption is a finding a human
|
|
17
|
+
* reads and dismisses; a phantom exemption is a silent false green in a gate that
|
|
18
|
+
* exists to catch claims that outlived their referent.
|
|
19
|
+
*/
|
|
20
|
+
type IgnoreRules = {
|
|
21
|
+
/** Directory rules: match the path and everything below it. */
|
|
22
|
+
readonly prefixes: readonly string[];
|
|
23
|
+
/** File rules written with a slash: match that exact repo-relative path. */
|
|
24
|
+
readonly exact: ReadonlySet<string>;
|
|
25
|
+
/** Basename rules: match that name in any directory. */
|
|
26
|
+
readonly basenames: ReadonlySet<string>;
|
|
27
|
+
};
|
|
28
|
+
/** True when `.gitignore` says this repo-relative path need not be on disk. */
|
|
29
|
+
export declare function isIgnoredPath(relPath: string, rules: IgnoreRules): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Build the existence probe a scan should use: a real filesystem lookup, widened
|
|
32
|
+
* by the repository's own ignore list read from its root.
|
|
33
|
+
*
|
|
34
|
+
* The second export below is the deliberate exception. "Is this an installed
|
|
35
|
+
* package name?" must NOT be widened by the ignore list, because `node_modules` is
|
|
36
|
+
* itself ignored — an ignore-aware probe answers yes for every first segment, and
|
|
37
|
+
* the whole `dead-reference` count collapses to zero while looking perfectly
|
|
38
|
+
* healthy.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createRepoProbe(repoRoot: string): (relPath: string) => boolean;
|
|
41
|
+
/** Filesystem-only existence, for questions where "git ignores it" is no answer. */
|
|
42
|
+
export declare function createFsProbe(repoRoot: string): (relPath: string) => boolean;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is a path required to exist in a checkout at all?
|
|
3
|
+
*
|
|
4
|
+
* The dominant false positive on `dead-reference` was never a stale comment: it
|
|
5
|
+
* was a correct reference to a file git is told not to track. Ranked over this
|
|
6
|
+
* repository, the top twelve "dead" citations were `.claude/settings.local.json`,
|
|
7
|
+
* `.peaks/_runtime/session.json`, `.peaks/.session.json`,
|
|
8
|
+
* `.peaks/_runtime/active-skill.json`, `.codegraph/config.json`,
|
|
9
|
+
* `.peaks/preferences.json` and friends — all generated state, all named
|
|
10
|
+
* correctly by the code that writes them.
|
|
11
|
+
*
|
|
12
|
+
* So the probe answers "exists OR ignored", and the ignore reading is deliberately
|
|
13
|
+
* bounded: trailing-slash prefixes, whole-path entries, and bare-basename entries.
|
|
14
|
+
* That limit has a direction, and the direction is the safe one — a rule
|
|
15
|
+
* `.gitignore` expresses fancily (negation, `**`, character classes) is NOT read
|
|
16
|
+
* here, so such a path stays reported. A missed exemption is a finding a human
|
|
17
|
+
* reads and dismisses; a phantom exemption is a silent false green in a gate that
|
|
18
|
+
* exists to catch claims that outlived their referent.
|
|
19
|
+
*/
|
|
20
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
21
|
+
import { join } from 'node:path';
|
|
22
|
+
function parseGitignore(source) {
|
|
23
|
+
const prefixes = [];
|
|
24
|
+
const exact = new Set();
|
|
25
|
+
const basenames = new Set();
|
|
26
|
+
for (const raw of source.split(/\r?\n/)) {
|
|
27
|
+
const rule = raw.trim();
|
|
28
|
+
if (rule.length === 0 || rule.startsWith('#') || rule.startsWith('!'))
|
|
29
|
+
continue;
|
|
30
|
+
const cleaned = rule.replace(/^\//, '').replace(/\/$/, '');
|
|
31
|
+
if (cleaned.length === 0)
|
|
32
|
+
continue;
|
|
33
|
+
if (!cleaned.includes('/')) {
|
|
34
|
+
basenames.add(cleaned);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
// A rule with a slash is registered both ways rather than guessed: `.peaks/_runtime/`
|
|
38
|
+
// is a directory, `.claude/settings.local.json` is one file, and a rule that
|
|
39
|
+
// matched only `path/` silently failed every single-file ignore in the
|
|
40
|
+
// repository. Registering both costs nothing — an over-broad directory prefix
|
|
41
|
+
// here can only ever name the path it was written for and things under it.
|
|
42
|
+
prefixes.push(`${cleaned}/`);
|
|
43
|
+
exact.add(cleaned);
|
|
44
|
+
}
|
|
45
|
+
return { prefixes, exact, basenames };
|
|
46
|
+
}
|
|
47
|
+
/** True when `.gitignore` says this repo-relative path need not be on disk. */
|
|
48
|
+
export function isIgnoredPath(relPath, rules) {
|
|
49
|
+
const posix = relPath.replace(/\\/g, '/');
|
|
50
|
+
if (rules.exact.has(posix))
|
|
51
|
+
return true;
|
|
52
|
+
if (rules.prefixes.some((prefix) => posix.startsWith(prefix)))
|
|
53
|
+
return true;
|
|
54
|
+
const segments = posix.split('/');
|
|
55
|
+
return segments.some((segment) => rules.basenames.has(segment));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the existence probe a scan should use: a real filesystem lookup, widened
|
|
59
|
+
* by the repository's own ignore list read from its root.
|
|
60
|
+
*
|
|
61
|
+
* The second export below is the deliberate exception. "Is this an installed
|
|
62
|
+
* package name?" must NOT be widened by the ignore list, because `node_modules` is
|
|
63
|
+
* itself ignored — an ignore-aware probe answers yes for every first segment, and
|
|
64
|
+
* the whole `dead-reference` count collapses to zero while looking perfectly
|
|
65
|
+
* healthy.
|
|
66
|
+
*/
|
|
67
|
+
export function createRepoProbe(repoRoot) {
|
|
68
|
+
let rules = { prefixes: [], exact: new Set(), basenames: new Set() };
|
|
69
|
+
const ignorePath = join(repoRoot, '.gitignore');
|
|
70
|
+
if (existsSync(ignorePath)) {
|
|
71
|
+
rules = parseGitignore(readFileSync(ignorePath, 'utf8'));
|
|
72
|
+
}
|
|
73
|
+
return (relPath) => existsSync(join(repoRoot, relPath)) || isIgnoredPath(relPath, rules);
|
|
74
|
+
}
|
|
75
|
+
/** Filesystem-only existence, for questions where "git ignores it" is no answer. */
|
|
76
|
+
export function createFsProbe(repoRoot) {
|
|
77
|
+
return (relPath) => existsSync(join(repoRoot, relPath));
|
|
78
|
+
}
|
|
@@ -43,7 +43,8 @@ function readLatestUsageRow(projectRoot, sessionId) {
|
|
|
43
43
|
return null;
|
|
44
44
|
return JSON.parse(last);
|
|
45
45
|
}
|
|
46
|
-
catch {
|
|
46
|
+
catch {
|
|
47
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
47
48
|
return null;
|
|
48
49
|
}
|
|
49
50
|
}
|
|
@@ -1,66 +1,6 @@
|
|
|
1
1
|
import { type Phase, type Severity } from './decision-tables.js';
|
|
2
|
-
|
|
3
|
-
export type WindowKind = '200k' | '1m';
|
|
4
|
-
export interface SuggestOptions {
|
|
5
|
-
readonly projectRoot: string;
|
|
6
|
-
readonly sessionId: string | null;
|
|
7
|
-
readonly env?: NodeJS.ProcessEnv;
|
|
8
|
-
}
|
|
9
|
-
export interface SuggestResult {
|
|
10
|
-
readonly shouldSuggest: boolean;
|
|
11
|
-
readonly reason: string;
|
|
12
|
-
readonly ratio: number;
|
|
13
|
-
readonly windowKind: WindowKind;
|
|
14
|
-
readonly tokensUsed: number;
|
|
15
|
-
readonly toolCalls: number;
|
|
16
|
-
readonly thresholds: {
|
|
17
|
-
readonly contextTokens: number;
|
|
18
|
-
readonly contextInterval: number;
|
|
19
|
-
readonly toolCalls: number;
|
|
20
|
-
};
|
|
21
|
-
readonly dataUnavailable: boolean;
|
|
22
|
-
readonly source: 'usage-jsonl' | 'env-vars' | 'none';
|
|
23
|
-
}
|
|
24
|
-
/** Default tool-call threshold before first suggestion. */
|
|
25
|
-
export declare const DEFAULT_TOOL_CALL_THRESHOLD = 50;
|
|
26
|
-
/** Default additional tool calls before the suggestion repeats. */
|
|
27
|
-
export declare const TOOL_CALL_REMIND_STEP = 25;
|
|
28
|
-
/** Default context-size threshold on a 200k window. */
|
|
29
|
-
export declare const DEFAULT_CONTEXT_THRESHOLD_200K = 160000;
|
|
30
|
-
/** Default context-size threshold on a 1M window. */
|
|
31
|
-
export declare const DEFAULT_CONTEXT_THRESHOLD_1M = 250000;
|
|
32
|
-
/** Default re-remind interval for context size. */
|
|
33
|
-
export declare const DEFAULT_CONTEXT_INTERVAL = 60000;
|
|
2
|
+
import { type SuggestOptions, type SuggestResult, type DryRunOptions, type DryRunResult } from './suggest-types.js';
|
|
34
3
|
export declare function suggestCompact(options: SuggestOptions): SuggestResult;
|
|
35
|
-
/**
|
|
36
|
-
* `peaks compact dry-run` envelope — composed of (a) suggest, (b)
|
|
37
|
-
* recommend, (c) survival. Pure composition over the helpers; no
|
|
38
|
-
* additional I/O. The CLI emits this so the LLM can decide in one
|
|
39
|
-
* tool-call whether to act.
|
|
40
|
-
*/
|
|
41
|
-
export interface DryRunOptions {
|
|
42
|
-
readonly projectRoot: string;
|
|
43
|
-
readonly sessionId: string | null;
|
|
44
|
-
readonly from?: Phase;
|
|
45
|
-
readonly to?: Phase;
|
|
46
|
-
readonly env?: NodeJS.ProcessEnv;
|
|
47
|
-
}
|
|
48
|
-
export interface DryRunResult {
|
|
49
|
-
readonly action: 'compact' | 'skip';
|
|
50
|
-
readonly suggest: SuggestResult;
|
|
51
|
-
readonly recommend: {
|
|
52
|
-
readonly from: Phase | null;
|
|
53
|
-
readonly to: Phase | null;
|
|
54
|
-
readonly shouldCompact: boolean;
|
|
55
|
-
readonly severity: Severity | null;
|
|
56
|
-
readonly rationale: string | null;
|
|
57
|
-
readonly suggestedMessage: string | null;
|
|
58
|
-
};
|
|
59
|
-
readonly survival: {
|
|
60
|
-
readonly persists: readonly string[];
|
|
61
|
-
readonly lost: readonly string[];
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
4
|
export declare function dryRunCompact(options: DryRunOptions): DryRunResult;
|
|
65
5
|
export declare function buildRecommendEnvelopePure(from: Phase, to: Phase): {
|
|
66
6
|
from: Phase;
|
|
@@ -72,3 +12,5 @@ export declare function buildRecommendEnvelopePure(from: Phase, to: Phase): {
|
|
|
72
12
|
};
|
|
73
13
|
export { PHASE_TRANSITIONS, lookupPhaseTransition, buildSuggestedCompactMessage, PHASES, isPhase, SURVIVAL_TABLE } from './decision-tables.js';
|
|
74
14
|
export type { Phase, Severity } from './decision-tables.js';
|
|
15
|
+
export { DEFAULT_TOOL_CALL_THRESHOLD, TOOL_CALL_REMIND_STEP, DEFAULT_CONTEXT_THRESHOLD_200K, DEFAULT_CONTEXT_THRESHOLD_1M, DEFAULT_CONTEXT_INTERVAL } from './suggest-types.js';
|
|
16
|
+
export type { WindowKind, SuggestOptions, SuggestResult, DryRunOptions, DryRunResult } from './suggest-types.js';
|
|
@@ -25,19 +25,10 @@
|
|
|
25
25
|
import { existsSync, readFileSync } from 'node:fs';
|
|
26
26
|
import { join } from 'node:path';
|
|
27
27
|
import { lookupPhaseTransition, buildSuggestedCompactMessage, SURVIVAL_TABLE } from './decision-tables.js';
|
|
28
|
+
import { DEFAULT_TOOL_CALL_THRESHOLD, DEFAULT_CONTEXT_THRESHOLD_200K, DEFAULT_CONTEXT_THRESHOLD_1M, DEFAULT_CONTEXT_INTERVAL } from './suggest-types.js';
|
|
28
29
|
/** Snapshot of the survival table for the dry-run envelope. */
|
|
29
30
|
const SURVIVAL_TABLE_PERSISTS = SURVIVAL_TABLE.persists;
|
|
30
31
|
const SURVIVAL_TABLE_LOST = SURVIVAL_TABLE.lost;
|
|
31
|
-
/** Default tool-call threshold before first suggestion. */
|
|
32
|
-
export const DEFAULT_TOOL_CALL_THRESHOLD = 50;
|
|
33
|
-
/** Default additional tool calls before the suggestion repeats. */
|
|
34
|
-
export const TOOL_CALL_REMIND_STEP = 25;
|
|
35
|
-
/** Default context-size threshold on a 200k window. */
|
|
36
|
-
export const DEFAULT_CONTEXT_THRESHOLD_200K = 160_000;
|
|
37
|
-
/** Default context-size threshold on a 1M window. */
|
|
38
|
-
export const DEFAULT_CONTEXT_THRESHOLD_1M = 250_000;
|
|
39
|
-
/** Default re-remind interval for context size. */
|
|
40
|
-
export const DEFAULT_CONTEXT_INTERVAL = 60_000;
|
|
41
32
|
function readLatestUsageRow(projectRoot, sessionId) {
|
|
42
33
|
const path = join(projectRoot, '.peaks', '_runtime', sessionId, 'usage.jsonl');
|
|
43
34
|
if (!existsSync(path))
|
|
@@ -52,7 +43,8 @@ function readLatestUsageRow(projectRoot, sessionId) {
|
|
|
52
43
|
return null;
|
|
53
44
|
return JSON.parse(last);
|
|
54
45
|
}
|
|
55
|
-
catch {
|
|
46
|
+
catch {
|
|
47
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
56
48
|
return null;
|
|
57
49
|
}
|
|
58
50
|
}
|
|
@@ -118,7 +110,9 @@ export function suggestCompact(options) {
|
|
|
118
110
|
const windowCapacity = windowKind === '1m' ? 1_000_000 : 200_000;
|
|
119
111
|
const effectiveContextThreshold = contextThreshold > 0
|
|
120
112
|
? contextThreshold
|
|
121
|
-
:
|
|
113
|
+
: windowKind === '1m'
|
|
114
|
+
? DEFAULT_CONTEXT_THRESHOLD_1M
|
|
115
|
+
: DEFAULT_CONTEXT_THRESHOLD_200K;
|
|
122
116
|
const ratio = windowCapacity > 0 ? tokensUsed / windowCapacity : 0;
|
|
123
117
|
const dataUnavailable = tokensUsed === 0 && toolCalls === 0;
|
|
124
118
|
// Two-signal suggestion. The context signal is primary: the LLM
|
|
@@ -201,3 +195,6 @@ export function buildRecommendEnvelopePure(from, to) {
|
|
|
201
195
|
// to keep the validation path co-located with the recommend envelope
|
|
202
196
|
// builder.
|
|
203
197
|
export { PHASE_TRANSITIONS, lookupPhaseTransition, buildSuggestedCompactMessage, PHASES, isPhase, SURVIVAL_TABLE } from './decision-tables.js';
|
|
198
|
+
// The public types and default thresholds live in suggest-types.ts; they are
|
|
199
|
+
// re-exported here so importers keep using this same path.
|
|
200
|
+
export { DEFAULT_TOOL_CALL_THRESHOLD, TOOL_CALL_REMIND_STEP, DEFAULT_CONTEXT_THRESHOLD_200K, DEFAULT_CONTEXT_THRESHOLD_1M, DEFAULT_CONTEXT_INTERVAL } from './suggest-types.js';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/compact/suggest-types.ts`
|
|
3
|
+
*
|
|
4
|
+
* Type declarations and default-threshold constants extracted verbatim
|
|
5
|
+
* from `suggest-service.ts` (wave 2, file-size cap campaign) so the
|
|
6
|
+
* service stays under the 300 raw-line cap. Mechanical move only —
|
|
7
|
+
* `suggest-service.ts` re-exports every public name from this module.
|
|
8
|
+
*/
|
|
9
|
+
import type { Phase, Severity } from './decision-tables.js';
|
|
10
|
+
/** Token window sizes supported by the suggest service. */
|
|
11
|
+
export type WindowKind = '200k' | '1m';
|
|
12
|
+
export interface SuggestOptions {
|
|
13
|
+
readonly projectRoot: string;
|
|
14
|
+
readonly sessionId: string | null;
|
|
15
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
16
|
+
}
|
|
17
|
+
export interface SuggestResult {
|
|
18
|
+
readonly shouldSuggest: boolean;
|
|
19
|
+
readonly reason: string;
|
|
20
|
+
readonly ratio: number;
|
|
21
|
+
readonly windowKind: WindowKind;
|
|
22
|
+
readonly tokensUsed: number;
|
|
23
|
+
readonly toolCalls: number;
|
|
24
|
+
readonly thresholds: {
|
|
25
|
+
readonly contextTokens: number;
|
|
26
|
+
readonly contextInterval: number;
|
|
27
|
+
readonly toolCalls: number;
|
|
28
|
+
};
|
|
29
|
+
readonly dataUnavailable: boolean;
|
|
30
|
+
readonly source: 'usage-jsonl' | 'env-vars' | 'none';
|
|
31
|
+
}
|
|
32
|
+
/** Default tool-call threshold before first suggestion. */
|
|
33
|
+
export declare const DEFAULT_TOOL_CALL_THRESHOLD = 50;
|
|
34
|
+
/** Default additional tool calls before the suggestion repeats. */
|
|
35
|
+
export declare const TOOL_CALL_REMIND_STEP = 25;
|
|
36
|
+
/** Default context-size threshold on a 200k window. */
|
|
37
|
+
export declare const DEFAULT_CONTEXT_THRESHOLD_200K = 160000;
|
|
38
|
+
/** Default context-size threshold on a 1M window. */
|
|
39
|
+
export declare const DEFAULT_CONTEXT_THRESHOLD_1M = 250000;
|
|
40
|
+
/** Default re-remind interval for context size. */
|
|
41
|
+
export declare const DEFAULT_CONTEXT_INTERVAL = 60000;
|
|
42
|
+
export interface UsageRow {
|
|
43
|
+
ts?: string;
|
|
44
|
+
tokens?: number;
|
|
45
|
+
toolCalls?: number;
|
|
46
|
+
modelKind?: '200k' | '1m';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* `peaks compact dry-run` envelope — composed of (a) suggest, (b)
|
|
50
|
+
* recommend, (c) survival. Pure composition over the helpers; no
|
|
51
|
+
* additional I/O. The CLI emits this so the LLM can decide in one
|
|
52
|
+
* tool-call whether to act.
|
|
53
|
+
*/
|
|
54
|
+
export interface DryRunOptions {
|
|
55
|
+
readonly projectRoot: string;
|
|
56
|
+
readonly sessionId: string | null;
|
|
57
|
+
readonly from?: Phase;
|
|
58
|
+
readonly to?: Phase;
|
|
59
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
60
|
+
}
|
|
61
|
+
export interface DryRunResult {
|
|
62
|
+
readonly action: 'compact' | 'skip';
|
|
63
|
+
readonly suggest: SuggestResult;
|
|
64
|
+
readonly recommend: {
|
|
65
|
+
readonly from: Phase | null;
|
|
66
|
+
readonly to: Phase | null;
|
|
67
|
+
readonly shouldCompact: boolean;
|
|
68
|
+
readonly severity: Severity | null;
|
|
69
|
+
readonly rationale: string | null;
|
|
70
|
+
readonly suggestedMessage: string | null;
|
|
71
|
+
};
|
|
72
|
+
readonly survival: {
|
|
73
|
+
readonly persists: readonly string[];
|
|
74
|
+
readonly lost: readonly string[];
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Default tool-call threshold before first suggestion. */
|
|
2
|
+
export const DEFAULT_TOOL_CALL_THRESHOLD = 50;
|
|
3
|
+
/** Default additional tool calls before the suggestion repeats. */
|
|
4
|
+
export const TOOL_CALL_REMIND_STEP = 25;
|
|
5
|
+
/** Default context-size threshold on a 200k window. */
|
|
6
|
+
export const DEFAULT_CONTEXT_THRESHOLD_200K = 160_000;
|
|
7
|
+
/** Default context-size threshold on a 1M window. */
|
|
8
|
+
export const DEFAULT_CONTEXT_THRESHOLD_1M = 250_000;
|
|
9
|
+
/** Default re-remind interval for context size. */
|
|
10
|
+
export const DEFAULT_CONTEXT_INTERVAL = 60_000;
|
|
@@ -96,7 +96,7 @@ export function summarizeCompactHistory(events) {
|
|
|
96
96
|
lastBeforeRatio: null,
|
|
97
97
|
lastRedLine: false,
|
|
98
98
|
redLineCount: 0,
|
|
99
|
-
failedCount: 0
|
|
99
|
+
failedCount: 0
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
const last = events[events.length - 1];
|
|
@@ -106,6 +106,6 @@ export function summarizeCompactHistory(events) {
|
|
|
106
106
|
lastBeforeRatio: last.beforeRatio,
|
|
107
107
|
lastRedLine: last.redLine,
|
|
108
108
|
redLineCount: events.filter((e) => e.redLine).length,
|
|
109
|
-
failedCount: events.filter((e) => !e.ok).length
|
|
109
|
+
failedCount: events.filter((e) => !e.ok).length
|
|
110
110
|
};
|
|
111
111
|
}
|
|
@@ -1,35 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Slice 2026-09-12-compact-band-policy: a compact trigger was
|
|
4
|
-
* REGISTERED but no compaction has started — e.g. claude-code's
|
|
5
|
-
* `ide-native` pathway only installs the PreToolUse hook, which
|
|
6
|
-
* compacts in-band at ratio ≥ 0.95. In the 0.80–0.95 band nothing
|
|
7
|
-
* is in flight, so claiming `compacting` was a false heartbeat.
|
|
8
|
-
*/
|
|
9
|
-
| 'armed' | 'verifying' | 'completed' | 'failed';
|
|
10
|
-
export interface CompactLifecycleRecord {
|
|
11
|
-
readonly schemaVersion: 1;
|
|
12
|
-
readonly runId: string;
|
|
13
|
-
readonly stage: CompactLifecycleStage;
|
|
14
|
-
readonly updatedAt: string;
|
|
15
|
-
readonly triggerRatio: number;
|
|
16
|
-
readonly afterRatio?: number;
|
|
17
|
-
readonly redLine: boolean;
|
|
18
|
-
readonly failedAt?: Exclude<CompactLifecycleStage, 'failed' | 'completed'>;
|
|
19
|
-
readonly errorSummary?: string;
|
|
20
|
-
}
|
|
21
|
-
export type CompactLifecycleRead = {
|
|
22
|
-
readonly kind: 'missing';
|
|
23
|
-
} | {
|
|
24
|
-
readonly kind: 'valid';
|
|
25
|
-
readonly record: CompactLifecycleRecord;
|
|
26
|
-
} | {
|
|
27
|
-
readonly kind: 'invalid';
|
|
28
|
-
readonly reason: string;
|
|
29
|
-
} | {
|
|
30
|
-
readonly kind: 'stalled';
|
|
31
|
-
readonly record: CompactLifecycleRecord;
|
|
32
|
-
};
|
|
1
|
+
import type { CompactLifecycleRead, CompactLifecycleRecord, CompactLifecycleStage } from './compact-lifecycle-types.js';
|
|
2
|
+
export type { CompactLifecycleRead, CompactLifecycleRecord, CompactLifecycleStage };
|
|
33
3
|
/**
|
|
34
4
|
* Atomically write a compact lifecycle record. Uses a temp file in
|
|
35
5
|
* the same directory plus `renameSync`, so a crash mid-write never
|
|
@@ -40,12 +40,7 @@ const ERROR_SUMMARY_MAX = 160;
|
|
|
40
40
|
* `armed` is deliberately NOT here — see the header. It is a resting
|
|
41
41
|
* state, not a heartbeat.
|
|
42
42
|
*/
|
|
43
|
-
const ACTIVE_STAGES = [
|
|
44
|
-
'queued',
|
|
45
|
-
'preparing',
|
|
46
|
-
'compacting',
|
|
47
|
-
'verifying',
|
|
48
|
-
];
|
|
43
|
+
const ACTIVE_STAGES = ['queued', 'preparing', 'compacting', 'verifying'];
|
|
49
44
|
const ALL_STAGES = [
|
|
50
45
|
'queued',
|
|
51
46
|
'preparing',
|
|
@@ -53,7 +48,7 @@ const ALL_STAGES = [
|
|
|
53
48
|
'armed',
|
|
54
49
|
'verifying',
|
|
55
50
|
'completed',
|
|
56
|
-
'failed'
|
|
51
|
+
'failed'
|
|
57
52
|
];
|
|
58
53
|
function lifecyclePath(projectRoot, sessionId) {
|
|
59
54
|
return join(getSessionDir(projectRoot, sessionId), LIFECYCLE_FILENAME);
|
|
@@ -114,7 +109,7 @@ function coerceRecord(raw) {
|
|
|
114
109
|
redLine: raw['redLine'],
|
|
115
110
|
failedAt: failedAt,
|
|
116
111
|
...(raw['afterRatio'] !== undefined ? { afterRatio: raw['afterRatio'] } : {}),
|
|
117
|
-
...(errorSummary !== undefined ? { errorSummary: errorSummary } : {})
|
|
112
|
+
...(errorSummary !== undefined ? { errorSummary: errorSummary } : {})
|
|
118
113
|
};
|
|
119
114
|
}
|
|
120
115
|
// Non-failed records must NOT carry a failedAt or errorSummary.
|
|
@@ -131,7 +126,7 @@ function coerceRecord(raw) {
|
|
|
131
126
|
updatedAt: raw['updatedAt'],
|
|
132
127
|
triggerRatio: raw['triggerRatio'],
|
|
133
128
|
redLine: raw['redLine'],
|
|
134
|
-
...(raw['afterRatio'] !== undefined ? { afterRatio: raw['afterRatio'] } : {})
|
|
129
|
+
...(raw['afterRatio'] !== undefined ? { afterRatio: raw['afterRatio'] } : {})
|
|
135
130
|
};
|
|
136
131
|
}
|
|
137
132
|
function clampErrorSummary(value) {
|
|
@@ -163,7 +158,7 @@ export function writeCompactLifecycle(input) {
|
|
|
163
158
|
// (Re-coercing also catches cases where the caller bypassed TypeScript.)
|
|
164
159
|
const validated = coerceRecord({
|
|
165
160
|
...input.record,
|
|
166
|
-
errorSummary: clampErrorSummary(input.record.errorSummary)
|
|
161
|
+
errorSummary: clampErrorSummary(input.record.errorSummary)
|
|
167
162
|
});
|
|
168
163
|
const tmp = `${path}.tmp-${process.pid}-${Date.now()}`;
|
|
169
164
|
try {
|
|
@@ -210,7 +205,7 @@ export function readCompactLifecycle(input) {
|
|
|
210
205
|
catch (error) {
|
|
211
206
|
return {
|
|
212
207
|
kind: 'invalid',
|
|
213
|
-
reason: `compact-lifecycle: unable to read record file: ${error.message}
|
|
208
|
+
reason: `compact-lifecycle: unable to read record file: ${error.message}`
|
|
214
209
|
};
|
|
215
210
|
}
|
|
216
211
|
let parsed;
|
|
@@ -220,7 +215,7 @@ export function readCompactLifecycle(input) {
|
|
|
220
215
|
catch (error) {
|
|
221
216
|
return {
|
|
222
217
|
kind: 'invalid',
|
|
223
|
-
reason: `compact-lifecycle: malformed JSON (${error.message})
|
|
218
|
+
reason: `compact-lifecycle: malformed JSON (${error.message})`
|
|
224
219
|
};
|
|
225
220
|
}
|
|
226
221
|
let record;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type CompactLifecycleStage = 'queued' | 'preparing' | 'compacting'
|
|
2
|
+
/**
|
|
3
|
+
* Slice 2026-09-12-compact-band-policy: a compact trigger was
|
|
4
|
+
* REGISTERED but no compaction has started — e.g. claude-code's
|
|
5
|
+
* `ide-native` pathway only installs the PreToolUse hook, which
|
|
6
|
+
* compacts in-band at ratio ≥ 0.95. In the 0.80–0.95 band nothing
|
|
7
|
+
* is in flight, so claiming `compacting` was a false heartbeat.
|
|
8
|
+
*/
|
|
9
|
+
| 'armed' | 'verifying' | 'completed' | 'failed';
|
|
10
|
+
export interface CompactLifecycleRecord {
|
|
11
|
+
readonly schemaVersion: 1;
|
|
12
|
+
readonly runId: string;
|
|
13
|
+
readonly stage: CompactLifecycleStage;
|
|
14
|
+
readonly updatedAt: string;
|
|
15
|
+
readonly triggerRatio: number;
|
|
16
|
+
readonly afterRatio?: number;
|
|
17
|
+
readonly redLine: boolean;
|
|
18
|
+
readonly failedAt?: Exclude<CompactLifecycleStage, 'failed' | 'completed'>;
|
|
19
|
+
readonly errorSummary?: string;
|
|
20
|
+
}
|
|
21
|
+
export type CompactLifecycleRead = {
|
|
22
|
+
readonly kind: 'missing';
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'valid';
|
|
25
|
+
readonly record: CompactLifecycleRecord;
|
|
26
|
+
} | {
|
|
27
|
+
readonly kind: 'invalid';
|
|
28
|
+
readonly reason: string;
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: 'stalled';
|
|
31
|
+
readonly record: CompactLifecycleRecord;
|
|
32
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// src/services/compact-statusline/compact-lifecycle-types.ts
|
|
2
|
+
//
|
|
3
|
+
// The record shape for the runtime compact-lifecycle store
|
|
4
|
+
// (`compact-lifecycle-store.ts`), split out to keep the store under the
|
|
5
|
+
// 300-raw-line file cap. Types only — no behaviour lives here. The store
|
|
6
|
+
// re-exports every name below, so importers keep using
|
|
7
|
+
// `compact-lifecycle-store.js` unchanged.
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CompactLifecycleStage } from './compact-lifecycle-store.js';
|
|
2
|
+
export type CompactDisplayKind = 'none' | 'queued' | 'preparing' | 'compacting' | 'verifying' | 'completed' | 'failed' | 'stalled' | 'invalid' | 'armed';
|
|
3
|
+
export interface CompactStatuslineState {
|
|
4
|
+
readonly kind: CompactDisplayKind;
|
|
5
|
+
readonly filledCells: 0 | 2 | 4 | 6 | 8;
|
|
6
|
+
readonly triggerRatio?: number;
|
|
7
|
+
readonly afterRatio?: number;
|
|
8
|
+
readonly redLine?: boolean;
|
|
9
|
+
readonly failedAt?: CompactLifecycleStage;
|
|
10
|
+
readonly detail?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Concrete first-version stale timeout. Adjustable after real timing
|
|
14
|
+
* evidence from the auto-compact orchestrator (it currently writes a
|
|
15
|
+
* heartbeat on every state transition; 120 s is the longest realistic
|
|
16
|
+
* gap between a heartbeat and an actual stall).
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_STALE_AFTER_MS = 120000;
|
|
19
|
+
/**
|
|
20
|
+
* 10-second completed-window expiry. The brief (Task 6 design requirement)
|
|
21
|
+
* calls out: once a compact lifecycle reaches `completed`, the primary
|
|
22
|
+
* statusline should surface the success indicator for at most 10 seconds,
|
|
23
|
+
* then fall back to the C1 baseline so the consumer (the IDE) does not
|
|
24
|
+
* keep a green ✓ pinned on the status bar indefinitely. The narrow window
|
|
25
|
+
* is sufficient for the human to see "we just compacted" and long enough
|
|
26
|
+
* to not flap on subsequent reads. Adjustable after real timing feedback.
|
|
27
|
+
*/
|
|
28
|
+
export declare const COMPLETED_EXPIRY_MS = 10000;
|
|
29
|
+
/**
|
|
30
|
+
* How recently the last history row must itself have been written for the
|
|
31
|
+
* legacy path to report it as "just compacted". Measured against the row's own
|
|
32
|
+
* `ts` — the fact — rather than the file's mtime, which is only a proxy for it
|
|
33
|
+
* and is also moved by rows that record no compaction (repair R9).
|
|
34
|
+
*/
|
|
35
|
+
export declare const LEGACY_JUST_COMPACTED_WINDOW_MS = 30000;
|
|
36
|
+
export declare const STAGE_CELL_COMPACTING = 4;
|
|
37
|
+
export declare const STAGE_CELL_VERIFYING = 6;
|
|
38
|
+
export declare const STAGE_CELL_COMPLETED = 8;
|
|
39
|
+
export declare const CELL_BY_STAGE: ReadonlyMap<CompactLifecycleStage, 0 | 2 | 4 | 6 | 8>;
|
|
40
|
+
export declare const NO_AFTER_RATIO_HINT = "after-ratio not recorded";
|
|
41
|
+
export declare function renderBar(filledCells: 0 | 2 | 4 | 6 | 8): string;
|
|
42
|
+
export declare function renderLegacyBar(filledCells: 0 | 2 | 4 | 6 | 8): string;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// src/services/compact-statusline/compact-statusline-cell-table.ts
|
|
2
|
+
//
|
|
3
|
+
// Wave-5 class-A hoist (rid 2026-10-01-wave5-w5-3-compact-release): the
|
|
4
|
+
// display-state types, timing windows, and frozen cell-table render
|
|
5
|
+
// primitives moved VERBATIM out of `compact-statusline-service.ts` (:51-135
|
|
6
|
+
// at the split) for the 300-raw-line cap. The
|
|
7
|
+
// `/* eslint-disable no-magic-numbers */ ... /* eslint-enable */` pair is
|
|
8
|
+
// relocated WHOLE with the region it suppresses — no chunk arrives here
|
|
9
|
+
// without its suppression. The parent re-exports `CompactDisplayKind`,
|
|
10
|
+
// `CompactStatuslineState` and `COMPLETED_EXPIRY_MS` so existing import
|
|
11
|
+
// paths keep working.
|
|
12
|
+
/**
|
|
13
|
+
* Concrete first-version stale timeout. Adjustable after real timing
|
|
14
|
+
* evidence from the auto-compact orchestrator (it currently writes a
|
|
15
|
+
* heartbeat on every state transition; 120 s is the longest realistic
|
|
16
|
+
* gap between a heartbeat and an actual stall).
|
|
17
|
+
*/
|
|
18
|
+
export const DEFAULT_STALE_AFTER_MS = 120_000;
|
|
19
|
+
/**
|
|
20
|
+
* 10-second completed-window expiry. The brief (Task 6 design requirement)
|
|
21
|
+
* calls out: once a compact lifecycle reaches `completed`, the primary
|
|
22
|
+
* statusline should surface the success indicator for at most 10 seconds,
|
|
23
|
+
* then fall back to the C1 baseline so the consumer (the IDE) does not
|
|
24
|
+
* keep a green ✓ pinned on the status bar indefinitely. The narrow window
|
|
25
|
+
* is sufficient for the human to see "we just compacted" and long enough
|
|
26
|
+
* to not flap on subsequent reads. Adjustable after real timing feedback.
|
|
27
|
+
*/
|
|
28
|
+
export const COMPLETED_EXPIRY_MS = 10_000;
|
|
29
|
+
/**
|
|
30
|
+
* How recently the last history row must itself have been written for the
|
|
31
|
+
* legacy path to report it as "just compacted". Measured against the row's own
|
|
32
|
+
* `ts` — the fact — rather than the file's mtime, which is only a proxy for it
|
|
33
|
+
* and is also moved by rows that record no compaction (repair R9).
|
|
34
|
+
*/
|
|
35
|
+
export const LEGACY_JUST_COMPACTED_WINDOW_MS = 30_000;
|
|
36
|
+
// PRD-002b slice 2 — extract cell-table magic numbers (4/6/8) into named
|
|
37
|
+
// consts so the no-magic-numbers lint rule stops flagging the typed
|
|
38
|
+
// literal-union cell-table values. Values match the documented contract.
|
|
39
|
+
export const STAGE_CELL_COMPACTING = 4;
|
|
40
|
+
export const STAGE_CELL_VERIFYING = 6;
|
|
41
|
+
export const STAGE_CELL_COMPLETED = 8;
|
|
42
|
+
/* eslint-disable no-magic-numbers -- cell-table contract uses literal-type unions (`0 | 2 | 4 | 6 | 8`); these are type-position discriminators, not runtime values. Magic-number extraction is done at the runtime call sites via STAGE_CELL_* constants above. */
|
|
43
|
+
export const CELL_BY_STAGE = new Map([
|
|
44
|
+
['queued', 0],
|
|
45
|
+
['preparing', 2],
|
|
46
|
+
['compacting', STAGE_CELL_COMPACTING],
|
|
47
|
+
['verifying', STAGE_CELL_VERIFYING],
|
|
48
|
+
['completed', STAGE_CELL_COMPLETED],
|
|
49
|
+
['failed', STAGE_CELL_COMPACTING]
|
|
50
|
+
// `armed` is not in the cell table: it renders WITHOUT a bar (see
|
|
51
|
+
// renderCompactStatusline). Lookups therefore miss and fall back to 0.
|
|
52
|
+
]);
|
|
53
|
+
const FILLED = '█';
|
|
54
|
+
const EMPTY = '░';
|
|
55
|
+
const BAR_WIDTH = STAGE_CELL_COMPLETED;
|
|
56
|
+
export const NO_AFTER_RATIO_HINT = 'after-ratio not recorded';
|
|
57
|
+
export function renderBar(filledCells) {
|
|
58
|
+
return `[${FILLED.repeat(filledCells)}${EMPTY.repeat(BAR_WIDTH - filledCells)}]`;
|
|
59
|
+
}
|
|
60
|
+
export function renderLegacyBar(filledCells) {
|
|
61
|
+
return renderBar(filledCells);
|
|
62
|
+
}
|
|
63
|
+
/* eslint-enable no-magic-numbers */
|
|
@@ -1,24 +1,7 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export type CompactDisplayKind
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
readonly filledCells: 0 | 2 | 4 | 6 | 8;
|
|
6
|
-
readonly triggerRatio?: number;
|
|
7
|
-
readonly afterRatio?: number;
|
|
8
|
-
readonly redLine?: boolean;
|
|
9
|
-
readonly failedAt?: CompactLifecycleStage;
|
|
10
|
-
readonly detail?: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* 10-second completed-window expiry. The brief (Task 6 design requirement)
|
|
14
|
-
* calls out: once a compact lifecycle reaches `completed`, the primary
|
|
15
|
-
* statusline should surface the success indicator for at most 10 seconds,
|
|
16
|
-
* then fall back to the C1 baseline so the consumer (the IDE) does not
|
|
17
|
-
* keep a green ✓ pinned on the status bar indefinitely. The narrow window
|
|
18
|
-
* is sufficient for the human to see "we just compacted" and long enough
|
|
19
|
-
* to not flap on subsequent reads. Adjustable after real timing feedback.
|
|
20
|
-
*/
|
|
21
|
-
export declare const COMPLETED_EXPIRY_MS = 10000;
|
|
1
|
+
import { type CompactStatuslineState } from './compact-statusline-cell-table.js';
|
|
2
|
+
export type { CompactDisplayKind } from './compact-statusline-cell-table.js';
|
|
3
|
+
export type { CompactStatuslineState } from './compact-statusline-cell-table.js';
|
|
4
|
+
export { COMPLETED_EXPIRY_MS } from './compact-statusline-cell-table.js';
|
|
22
5
|
export declare function decideCompactStatusline(input: {
|
|
23
6
|
readonly projectRoot: string;
|
|
24
7
|
readonly sessionId: string | null;
|