peaks-loop 4.0.54 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/peaks-code/SKILL.md +1 -1
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
// build), not `init`.
|
|
56
56
|
import { existsSync, statSync } from 'node:fs';
|
|
57
57
|
import { join } from 'node:path';
|
|
58
|
-
import { CODEGRAPH_DIR_NAME, CODEGRAPH_MARKER_NAME, createCodegraphInvocation, executeCodegraphInvocation, isCodegraphInitialized
|
|
58
|
+
import { CODEGRAPH_DIR_NAME, CODEGRAPH_MARKER_NAME, createCodegraphInvocation, executeCodegraphInvocation, isCodegraphInitialized } from './codegraph-service.js';
|
|
59
59
|
import { repairCodegraphExcludeFromProject } from './codegraph-exclude-repair.js';
|
|
60
60
|
/**
|
|
61
61
|
* The operator-facing line for a refresh that did not happen, or `null` when
|
|
@@ -115,6 +115,50 @@ function firstMeaningfulLine(text) {
|
|
|
115
115
|
const first = trimmed.split(/\r?\n/)[0];
|
|
116
116
|
return first !== undefined ? first.slice(0, 200) : 'no upstream output';
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Self-heal a `.codegraph/` dir that exists without a `codegraph.db`
|
|
120
|
+
* (extracted verbatim from `refreshCodegraphAfterSlice` to clear the
|
|
121
|
+
* `max-lines-per-function` arm; behavior unchanged). Returns a terminal
|
|
122
|
+
* result when the refresh must stop, `null` when the caller may proceed
|
|
123
|
+
* to the index step.
|
|
124
|
+
*/
|
|
125
|
+
async function selfHealUninitializedCodegraph(projectRoot, runner) {
|
|
126
|
+
// A `.codegraph/` dir without a `codegraph.db` is uninitialized:
|
|
127
|
+
// - NOT peaks-loop-managed → foreign schema, never touch it.
|
|
128
|
+
// - peaks-loop-managed → the dangling state left by the pre-fix
|
|
129
|
+
// rid-CG-001 auto-stake (marker stamped, no upstream init). Run
|
|
130
|
+
// init (fast, offline-safe — no full index) so the subsequent
|
|
131
|
+
// index has a schema to write into.
|
|
132
|
+
if (!isCodegraphInitialized(projectRoot)) {
|
|
133
|
+
if (!isCodegraphPeaksLoopManaged(projectRoot)) {
|
|
134
|
+
return {
|
|
135
|
+
refreshed: false,
|
|
136
|
+
reason: 'no-codegraph-dir',
|
|
137
|
+
note: `auto codegraph refresh skipped: ${CODEGRAPH_DIR_NAME}/ exists without a codegraph.db and is not peaks-loop-managed. Run \`peaks codegraph init\` once to enable post-slice auto-refresh.`
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const initResult = await executeCodegraphInvocation(createCodegraphInvocation({ subcommand: 'init', project: projectRoot }), runner);
|
|
141
|
+
if (initResult.exitCode !== 0) {
|
|
142
|
+
return {
|
|
143
|
+
refreshed: false,
|
|
144
|
+
reason: 'index-failed',
|
|
145
|
+
note: `auto codegraph refresh self-heal init failed (exit ${String(initResult.exitCode)}): ${firstMeaningfulLine(initResult.stderr || initResult.stdout)}. ${REFRESH_REMEDY}`
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// That init just wrote upstream's 99-rule default `exclude`
|
|
149
|
+
// template, some of which block tracked source files — the same
|
|
150
|
+
// self-heal the CLI's `peaks codegraph init` performs, via the
|
|
151
|
+
// same shared helper. Skipped, this path would stamp the
|
|
152
|
+
// peaks-loop marker over an incomplete index that no later
|
|
153
|
+
// `init` (it would no-op) could ever repair.
|
|
154
|
+
//
|
|
155
|
+
// Never throws (the helper catches everything), and
|
|
156
|
+
// `reindex: false` because the index call below covers the
|
|
157
|
+
// recovered files.
|
|
158
|
+
await repairCodegraphExcludeFromProject(projectRoot, runner, { reindex: false });
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
118
162
|
/**
|
|
119
163
|
* Run a best-effort `codegraph index` refresh for `projectRoot` after a
|
|
120
164
|
* slice-complete boundary. NEVER throws — every failure path returns a
|
|
@@ -128,51 +172,24 @@ export async function refreshCodegraphAfterSlice(projectRoot, runner) {
|
|
|
128
172
|
return {
|
|
129
173
|
refreshed: false,
|
|
130
174
|
reason: 'no-codegraph-dir',
|
|
131
|
-
note: `auto codegraph refresh skipped: no ${CODEGRAPH_DIR_NAME} directory at ${join(projectRoot, CODEGRAPH_DIR_NAME)}. Run \`peaks codegraph init\` once to enable post-slice auto-refresh
|
|
175
|
+
note: `auto codegraph refresh skipped: no ${CODEGRAPH_DIR_NAME} directory at ${join(projectRoot, CODEGRAPH_DIR_NAME)}. Run \`peaks codegraph init\` once to enable post-slice auto-refresh.`
|
|
132
176
|
};
|
|
133
177
|
}
|
|
134
178
|
try {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return {
|
|
144
|
-
refreshed: false,
|
|
145
|
-
reason: 'no-codegraph-dir',
|
|
146
|
-
note: `auto codegraph refresh skipped: ${CODEGRAPH_DIR_NAME}/ exists without a codegraph.db and is not peaks-loop-managed. Run \`peaks codegraph init\` once to enable post-slice auto-refresh.`,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
const initResult = await executeCodegraphInvocation(createCodegraphInvocation({ subcommand: 'init', project: projectRoot }), runner);
|
|
150
|
-
if (initResult.exitCode !== 0) {
|
|
151
|
-
return {
|
|
152
|
-
refreshed: false,
|
|
153
|
-
reason: 'index-failed',
|
|
154
|
-
note: `auto codegraph refresh self-heal init failed (exit ${String(initResult.exitCode)}): ${firstMeaningfulLine(initResult.stderr || initResult.stdout)}. ${REFRESH_REMEDY}`,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
// That init just wrote upstream's 99-rule default `exclude`
|
|
158
|
-
// template, some of which block tracked source files — the same
|
|
159
|
-
// self-heal the CLI's `peaks codegraph init` performs, via the
|
|
160
|
-
// same shared helper. Skipped, this path would stamp the
|
|
161
|
-
// peaks-loop marker over an incomplete index that no later
|
|
162
|
-
// `init` (it would no-op) could ever repair.
|
|
163
|
-
//
|
|
164
|
-
// Never throws (the helper catches everything), and
|
|
165
|
-
// `reindex: false` because the index call below covers the
|
|
166
|
-
// recovered files.
|
|
167
|
-
await repairCodegraphExcludeFromProject(projectRoot, runner, { reindex: false });
|
|
168
|
-
}
|
|
169
|
-
const invocation = createCodegraphInvocation({ subcommand: 'index', project: projectRoot, quiet: true });
|
|
179
|
+
const selfHeal = await selfHealUninitializedCodegraph(projectRoot, runner);
|
|
180
|
+
if (selfHeal !== null)
|
|
181
|
+
return selfHeal;
|
|
182
|
+
const invocation = createCodegraphInvocation({
|
|
183
|
+
subcommand: 'index',
|
|
184
|
+
project: projectRoot,
|
|
185
|
+
quiet: true
|
|
186
|
+
});
|
|
170
187
|
const result = await executeCodegraphInvocation(invocation, runner);
|
|
171
188
|
if (result.exitCode !== 0) {
|
|
172
189
|
return {
|
|
173
190
|
refreshed: false,
|
|
174
191
|
reason: 'index-failed',
|
|
175
|
-
note: `auto codegraph refresh failed (exit ${String(result.exitCode)}): ${firstMeaningfulLine(result.stderr || result.stdout)}. ${REFRESH_REMEDY}
|
|
192
|
+
note: `auto codegraph refresh failed (exit ${String(result.exitCode)}): ${firstMeaningfulLine(result.stderr || result.stdout)}. ${REFRESH_REMEDY}`
|
|
176
193
|
};
|
|
177
194
|
}
|
|
178
195
|
return { refreshed: true };
|
|
@@ -181,7 +198,7 @@ export async function refreshCodegraphAfterSlice(projectRoot, runner) {
|
|
|
181
198
|
return {
|
|
182
199
|
refreshed: false,
|
|
183
200
|
reason: 'unavailable',
|
|
184
|
-
note: `auto codegraph refresh unavailable: ${errorMessage(error)}. ${REFRESH_REMEDY}
|
|
201
|
+
note: `auto codegraph refresh unavailable: ${errorMessage(error)}. ${REFRESH_REMEDY}`
|
|
185
202
|
};
|
|
186
203
|
}
|
|
187
204
|
}
|
|
@@ -314,7 +314,10 @@ export function applyCodegraphConfigRepair(projectRoot, repair) {
|
|
|
314
314
|
// is how a wrong `include` would survive a repair that reported success.
|
|
315
315
|
const include = record.include === undefined ? [] : assertStringArray(record.include, 'include', configPath);
|
|
316
316
|
const excludePlan = repairCodegraphExclude({ exclude, rulesToRemove: repair.rulesToRemove });
|
|
317
|
-
const includePlan = repairCodegraphInclude({
|
|
317
|
+
const includePlan = repairCodegraphInclude({
|
|
318
|
+
include,
|
|
319
|
+
patternsToAdd: repair.includePatternsToAdd
|
|
320
|
+
});
|
|
318
321
|
if (!excludePlan.changed && !includePlan.changed) {
|
|
319
322
|
return {
|
|
320
323
|
applied: false,
|
|
@@ -84,7 +84,10 @@ export function inspectCodegraphExcludeIntegrity(projectRoot, inputs = {}) {
|
|
|
84
84
|
excludedTrackedCount: result.excludedTrackedCount,
|
|
85
85
|
violations: result.violations,
|
|
86
86
|
rulesToRemove: result.rulesToRemove,
|
|
87
|
-
ruleImpacts: result.rulesToRemove.map((rule) => ({
|
|
87
|
+
ruleImpacts: result.rulesToRemove.map((rule) => ({
|
|
88
|
+
rule,
|
|
89
|
+
blockedCount: blockedCounts.get(rule) ?? 0
|
|
90
|
+
}))
|
|
88
91
|
};
|
|
89
92
|
}
|
|
90
93
|
/**
|
|
@@ -210,8 +210,7 @@ export async function repairCodegraphExcludeFromProject(projectRoot, runner, opt
|
|
|
210
210
|
// pass runs only on the one run per project that actually widens
|
|
211
211
|
// `include`, where a repair is about to spend seconds rebuilding an index.
|
|
212
212
|
const includeFilesRecovered = includePlan.changed
|
|
213
|
-
? includeAdmittedAfter -
|
|
214
|
-
filterAdmittedTrackedFiles(trackedFiles, config.include).length
|
|
213
|
+
? includeAdmittedAfter - filterAdmittedTrackedFiles(trackedFiles, config.include).length
|
|
215
214
|
: 0;
|
|
216
215
|
const nothingToRepair = includePlan.addedPatterns.length === 0 && reconcile.rulesToRemove.length === 0;
|
|
217
216
|
const unchanged = {
|
|
@@ -135,7 +135,7 @@ export const CODEGRAPH_REPAIR_INDEX_COMMAND = 'peaks codegraph repair-index --pr
|
|
|
135
135
|
export const CODEGRAPH_INDEX_STRICT_ENV_VAR = 'PEAKS_CODEGRAPH_INDEX_STRICT';
|
|
136
136
|
/** True when the project opted in to blocking index-gap verdicts. */
|
|
137
137
|
export function isCodegraphIndexStrictMode(env = process.env) {
|
|
138
|
-
return env[CODEGRAPH_INDEX_STRICT_ENV_VAR] === '1' || env[CODEGRAPH_INDEX_STRICT_ENV_VAR] === 'true';
|
|
138
|
+
return (env[CODEGRAPH_INDEX_STRICT_ENV_VAR] === '1' || env[CODEGRAPH_INDEX_STRICT_ENV_VAR] === 'true');
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
141
|
* Fold the inspected report (null when there is no index to inspect) and
|
|
@@ -1,30 +1,7 @@
|
|
|
1
1
|
import { type CodegraphProcessRunner } from './codegraph-service.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
fileCount: number;
|
|
6
|
-
truncated: boolean;
|
|
7
|
-
} | {
|
|
8
|
-
available: false;
|
|
9
|
-
note: string;
|
|
10
|
-
};
|
|
11
|
-
/** Cap for the directory histogram in the rendered structure block. */
|
|
12
|
-
export declare const CODEGRAPH_STRUCTURE_MAX_DIRS = 40;
|
|
13
|
-
/** Cap for bare root files listed in the rendered structure block. */
|
|
14
|
-
export declare const CODEGRAPH_STRUCTURE_MAX_ROOT_FILES = 12;
|
|
15
|
-
export interface CodegraphStructureFileEntry {
|
|
16
|
-
readonly path: string;
|
|
17
|
-
}
|
|
18
|
-
export interface CodegraphStructureRenderOptions {
|
|
19
|
-
readonly maxDirs?: number;
|
|
20
|
-
readonly maxRootFiles?: number;
|
|
21
|
-
}
|
|
22
|
-
export interface CodegraphStructureSummary {
|
|
23
|
-
/** Full `## Codegraph structure` markdown block, ending on its own paragraph. */
|
|
24
|
-
block: string;
|
|
25
|
-
total: number;
|
|
26
|
-
truncated: boolean;
|
|
27
|
-
}
|
|
2
|
+
import { type CodegraphPreflightResult, type CodegraphStructureFileEntry, type CodegraphStructureRenderOptions, type CodegraphStructureSummary } from './codegraph-preflight-structure.js';
|
|
3
|
+
export { CODEGRAPH_STRUCTURE_MAX_DIRS, CODEGRAPH_STRUCTURE_MAX_ROOT_FILES } from './codegraph-preflight-structure.js';
|
|
4
|
+
export type { CodegraphPreflightResult, CodegraphStructureFileEntry, CodegraphStructureRenderOptions, CodegraphStructureSummary } from './codegraph-preflight-structure.js';
|
|
28
5
|
/**
|
|
29
6
|
* Pure renderer: turn the codegraph `files --json` payload into a bounded
|
|
30
7
|
* `## Codegraph structure` block. Files are aggregated into a directory
|
|
@@ -31,17 +31,11 @@
|
|
|
31
31
|
// - CODEGRAPH_STRUCTURE_MAX_DIRS = 40 directory rows
|
|
32
32
|
// - CODEGRAPH_STRUCTURE_MAX_ROOT_FILES = 12 bare root files
|
|
33
33
|
import { mkdirSync } from 'node:fs';
|
|
34
|
-
import { CODEGRAPH_DIR_NAME, createCodegraphInvocation, defaultCodegraphInitGuard, executeCodegraphInvocation, isCodegraphInitialized, writeCodegraphMarker
|
|
34
|
+
import { CODEGRAPH_DIR_NAME, createCodegraphInvocation, defaultCodegraphInitGuard, executeCodegraphInvocation, isCodegraphInitialized, writeCodegraphMarker } from './codegraph-service.js';
|
|
35
35
|
import { defaultCodegraphProcessRunner } from './codegraph-process-runner.js';
|
|
36
36
|
import { repairCodegraphExcludeFromProject } from './codegraph-exclude-repair.js';
|
|
37
|
-
|
|
38
|
-
export
|
|
39
|
-
/** Cap for bare root files listed in the rendered structure block. */
|
|
40
|
-
export const CODEGRAPH_STRUCTURE_MAX_ROOT_FILES = 12;
|
|
41
|
-
/** Strip a leading `./` (upstream codegraph paths may carry it). */
|
|
42
|
-
function normalizeCodegraphPath(path) {
|
|
43
|
-
return path.startsWith('./') ? path.slice(2) : path;
|
|
44
|
-
}
|
|
37
|
+
import { CODEGRAPH_STRUCTURE_MAX_DIRS, CODEGRAPH_STRUCTURE_MAX_ROOT_FILES, normalizeCodegraphPath, parseFilesPayload } from './codegraph-preflight-structure.js';
|
|
38
|
+
export { CODEGRAPH_STRUCTURE_MAX_DIRS, CODEGRAPH_STRUCTURE_MAX_ROOT_FILES } from './codegraph-preflight-structure.js';
|
|
45
39
|
/**
|
|
46
40
|
* Pure renderer: turn the codegraph `files --json` payload into a bounded
|
|
47
41
|
* `## Codegraph structure` block. Files are aggregated into a directory
|
|
@@ -69,8 +63,7 @@ export function renderCodegraphStructureBlock(files, options = {}) {
|
|
|
69
63
|
const dir = raw.slice(0, slash);
|
|
70
64
|
dirCounts.set(dir, (dirCounts.get(dir) ?? 0) + 1);
|
|
71
65
|
}
|
|
72
|
-
const sortedDirs = [...dirCounts.entries()]
|
|
73
|
-
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
|
66
|
+
const sortedDirs = [...dirCounts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
|
74
67
|
const shownDirs = sortedDirs.slice(0, maxDirs);
|
|
75
68
|
const truncatedDirs = sortedDirs.length > maxDirs;
|
|
76
69
|
const sortedRoot = [...rootFiles].sort((a, b) => a.localeCompare(b));
|
|
@@ -102,28 +95,14 @@ function firstMeaningfulLine(text) {
|
|
|
102
95
|
const first = trimmed.split(/\r?\n/)[0];
|
|
103
96
|
return first !== undefined ? first.slice(0, 200) : 'no upstream output';
|
|
104
97
|
}
|
|
105
|
-
function parseFilesPayload(stdout) {
|
|
106
|
-
try {
|
|
107
|
-
const parsed = JSON.parse(stdout);
|
|
108
|
-
if (Array.isArray(parsed)) {
|
|
109
|
-
const entries = parsed
|
|
110
|
-
.filter((entry) => typeof entry === 'object' && entry !== null && 'path' in entry)
|
|
111
|
-
.map((entry) => ({ path: typeof entry.path === 'string' ? entry.path : '' }))
|
|
112
|
-
.filter((entry) => entry.path.length > 0);
|
|
113
|
-
return { ok: true, entries };
|
|
114
|
-
}
|
|
115
|
-
// JSON but not an array — not the shape we expect.
|
|
116
|
-
return { ok: false, entries: [] };
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
// Not JSON at all — e.g. the upstream text path ("No files indexed…").
|
|
120
|
-
return { ok: false, entries: [] };
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
98
|
async function readStructure(projectRoot, runner) {
|
|
124
99
|
let result;
|
|
125
100
|
try {
|
|
126
|
-
const invocation = createCodegraphInvocation({
|
|
101
|
+
const invocation = createCodegraphInvocation({
|
|
102
|
+
subcommand: 'files',
|
|
103
|
+
project: projectRoot,
|
|
104
|
+
json: true
|
|
105
|
+
});
|
|
127
106
|
result = await executeCodegraphInvocation(invocation, runner);
|
|
128
107
|
}
|
|
129
108
|
catch (error) {
|
|
@@ -132,20 +111,20 @@ async function readStructure(projectRoot, runner) {
|
|
|
132
111
|
if (result.exitCode !== 0) {
|
|
133
112
|
return {
|
|
134
113
|
available: false,
|
|
135
|
-
note: `codegraph files failed (exit ${String(result.exitCode)}): ${firstMeaningfulLine(result.stderr || result.stdout)}
|
|
114
|
+
note: `codegraph files failed (exit ${String(result.exitCode)}): ${firstMeaningfulLine(result.stderr || result.stdout)}`
|
|
136
115
|
};
|
|
137
116
|
}
|
|
138
117
|
const { ok, entries } = parseFilesPayload(result.stdout);
|
|
139
118
|
if (!ok) {
|
|
140
119
|
return {
|
|
141
120
|
available: false,
|
|
142
|
-
note: 'codegraph files returned no parseable structure — run `peaks codegraph index` before dispatch for symbol-accurate structure.'
|
|
121
|
+
note: 'codegraph files returned no parseable structure — run `peaks codegraph index` before dispatch for symbol-accurate structure.'
|
|
143
122
|
};
|
|
144
123
|
}
|
|
145
124
|
if (entries.length === 0) {
|
|
146
125
|
return {
|
|
147
126
|
available: false,
|
|
148
|
-
note: 'codegraph index has no files — run `peaks codegraph index` before dispatch for symbol-accurate structure.'
|
|
127
|
+
note: 'codegraph index has no files — run `peaks codegraph index` before dispatch for symbol-accurate structure.'
|
|
149
128
|
};
|
|
150
129
|
}
|
|
151
130
|
const summary = renderCodegraphStructureBlock(entries);
|
|
@@ -153,7 +132,7 @@ async function readStructure(projectRoot, runner) {
|
|
|
153
132
|
available: true,
|
|
154
133
|
block: summary.block,
|
|
155
134
|
fileCount: summary.total,
|
|
156
|
-
truncated: summary.truncated
|
|
135
|
+
truncated: summary.truncated
|
|
157
136
|
};
|
|
158
137
|
}
|
|
159
138
|
/**
|
|
@@ -181,7 +160,7 @@ export async function buildCodegraphPreflightBlock(projectRoot, runner) {
|
|
|
181
160
|
if (guard.status === 'conflict-foreign-schema') {
|
|
182
161
|
return {
|
|
183
162
|
available: false,
|
|
184
|
-
note: `codegraph unavailable: ${CODEGRAPH_DIR_NAME}/ exists with a non-peaks-loop schema and was not touched. Move or rename the foreign directory, then re-run \`peaks codegraph init\` to enable pre-dispatch structure reads
|
|
163
|
+
note: `codegraph unavailable: ${CODEGRAPH_DIR_NAME}/ exists with a non-peaks-loop schema and was not touched. Move or rename the foreign directory, then re-run \`peaks codegraph init\` to enable pre-dispatch structure reads.`
|
|
185
164
|
};
|
|
186
165
|
}
|
|
187
166
|
// 'fresh' (no dir) OR a dangling peaks-loop dir (marker present, no
|
|
@@ -196,7 +175,7 @@ export async function buildCodegraphPreflightBlock(projectRoot, runner) {
|
|
|
196
175
|
if (initResult.exitCode !== 0) {
|
|
197
176
|
return {
|
|
198
177
|
available: false,
|
|
199
|
-
note: `codegraph init failed (exit ${String(initResult.exitCode)}): ${firstMeaningfulLine(initResult.stderr || initResult.stdout)}
|
|
178
|
+
note: `codegraph init failed (exit ${String(initResult.exitCode)}): ${firstMeaningfulLine(initResult.stderr || initResult.stdout)}`
|
|
200
179
|
};
|
|
201
180
|
}
|
|
202
181
|
try {
|
|
@@ -230,7 +209,7 @@ export async function buildCodegraphPreflightBlock(projectRoot, runner) {
|
|
|
230
209
|
if (indexResult.exitCode !== 0) {
|
|
231
210
|
return {
|
|
232
211
|
available: false,
|
|
233
|
-
note: `codegraph index failed (exit ${String(indexResult.exitCode)}): ${firstMeaningfulLine(indexResult.stderr || indexResult.stdout)}
|
|
212
|
+
note: `codegraph index failed (exit ${String(indexResult.exitCode)}): ${firstMeaningfulLine(indexResult.stderr || indexResult.stdout)}`
|
|
234
213
|
};
|
|
235
214
|
}
|
|
236
215
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type CodegraphPreflightResult = {
|
|
2
|
+
available: true;
|
|
3
|
+
block: string;
|
|
4
|
+
fileCount: number;
|
|
5
|
+
truncated: boolean;
|
|
6
|
+
} | {
|
|
7
|
+
available: false;
|
|
8
|
+
note: string;
|
|
9
|
+
};
|
|
10
|
+
/** Cap for the directory histogram in the rendered structure block. */
|
|
11
|
+
export declare const CODEGRAPH_STRUCTURE_MAX_DIRS = 40;
|
|
12
|
+
/** Cap for bare root files listed in the rendered structure block. */
|
|
13
|
+
export declare const CODEGRAPH_STRUCTURE_MAX_ROOT_FILES = 12;
|
|
14
|
+
export interface CodegraphStructureFileEntry {
|
|
15
|
+
readonly path: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CodegraphStructureRenderOptions {
|
|
18
|
+
readonly maxDirs?: number;
|
|
19
|
+
readonly maxRootFiles?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface CodegraphStructureSummary {
|
|
22
|
+
/** Full `## Codegraph structure` markdown block, ending on its own paragraph. */
|
|
23
|
+
block: string;
|
|
24
|
+
total: number;
|
|
25
|
+
truncated: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Strip a leading `./` (upstream codegraph paths may carry it). */
|
|
28
|
+
export declare function normalizeCodegraphPath(path: string): string;
|
|
29
|
+
export declare function parseFilesPayload(stdout: string): {
|
|
30
|
+
ok: boolean;
|
|
31
|
+
entries: CodegraphStructureFileEntry[];
|
|
32
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/services/codegraph/codegraph-preflight-structure.ts
|
|
2
|
+
//
|
|
3
|
+
// The declaration + payload-parsing surface of the pre-dispatch codegraph
|
|
4
|
+
// preflight (`codegraph-preflight-service.ts`), extracted so the service
|
|
5
|
+
// module stays under the repo file-size cap. `codegraph-preflight-service.ts`
|
|
6
|
+
// imports these and re-exports the public ones, so importers keep resolving
|
|
7
|
+
// every name from the original path.
|
|
8
|
+
/** Cap for the directory histogram in the rendered structure block. */
|
|
9
|
+
export const CODEGRAPH_STRUCTURE_MAX_DIRS = 40;
|
|
10
|
+
/** Cap for bare root files listed in the rendered structure block. */
|
|
11
|
+
export const CODEGRAPH_STRUCTURE_MAX_ROOT_FILES = 12;
|
|
12
|
+
/** Strip a leading `./` (upstream codegraph paths may carry it). */
|
|
13
|
+
export function normalizeCodegraphPath(path) {
|
|
14
|
+
return path.startsWith('./') ? path.slice(2) : path;
|
|
15
|
+
}
|
|
16
|
+
export function parseFilesPayload(stdout) {
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(stdout);
|
|
19
|
+
if (Array.isArray(parsed)) {
|
|
20
|
+
const entries = parsed
|
|
21
|
+
.filter((entry) => typeof entry === 'object' && entry !== null && 'path' in entry)
|
|
22
|
+
.map((entry) => ({ path: typeof entry.path === 'string' ? entry.path : '' }))
|
|
23
|
+
.filter((entry) => entry.path.length > 0);
|
|
24
|
+
return { ok: true, entries };
|
|
25
|
+
}
|
|
26
|
+
// JSON but not an array — not the shape we expect.
|
|
27
|
+
return { ok: false, entries: [] };
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Not JSON at all — e.g. the upstream text path ("No files indexed…").
|
|
31
|
+
return { ok: false, entries: [] };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -3,7 +3,18 @@ import { join } from 'node:path';
|
|
|
3
3
|
const CODEGRAPH_PROCESS_TIMEOUT_MS = 600_000;
|
|
4
4
|
const CODEGRAPH_OUTPUT_LIMIT_BYTES = 10 * 1024 * 1024;
|
|
5
5
|
function createCodegraphEnvironment(sourceEnv = process.env) {
|
|
6
|
-
const preservedKeys = [
|
|
6
|
+
const preservedKeys = [
|
|
7
|
+
'PATH',
|
|
8
|
+
'Path',
|
|
9
|
+
'HOME',
|
|
10
|
+
'USERPROFILE',
|
|
11
|
+
'APPDATA',
|
|
12
|
+
'LOCALAPPDATA',
|
|
13
|
+
'TEMP',
|
|
14
|
+
'TMP',
|
|
15
|
+
'SystemRoot',
|
|
16
|
+
'WINDIR'
|
|
17
|
+
];
|
|
7
18
|
const environment = {};
|
|
8
19
|
for (const key of preservedKeys) {
|
|
9
20
|
const value = sourceEnv[key];
|
|
@@ -9,7 +9,15 @@ const CODEGRAPH_PACKAGE_VERSION = '0.7.10';
|
|
|
9
9
|
const CODEGRAPH_EXECUTABLE = process.execPath;
|
|
10
10
|
const CODEGRAPH_BINARY_PATH = resolveCodegraphBinaryPath();
|
|
11
11
|
const POSITIONAL_ARGUMENT_PREFIX = '-';
|
|
12
|
-
const ALLOWED_SUBCOMMANDS = [
|
|
12
|
+
const ALLOWED_SUBCOMMANDS = [
|
|
13
|
+
'status',
|
|
14
|
+
'init',
|
|
15
|
+
'index',
|
|
16
|
+
'query',
|
|
17
|
+
'files',
|
|
18
|
+
'context',
|
|
19
|
+
'affected'
|
|
20
|
+
];
|
|
13
21
|
const NUMERIC_FLAG_NAMES = ['limit', 'maxDepth'];
|
|
14
22
|
const COMMON_OPTION_KEYS = ['subcommand', 'project'];
|
|
15
23
|
const ALLOWED_OPTIONS_BY_SUBCOMMAND = {
|
|
@@ -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
|
+
}
|