peaks-loop 4.0.53 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +175 -11
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +81 -22
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +69 -34
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +21 -2
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.d.ts +23 -0
- package/dist/cli/commands/sub-agent-shared.js +40 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +44 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcer-liveness.js +1 -1
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +44 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.js +116 -14
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +23 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +7 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +16 -189
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +59 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.js +189 -17
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/gate-evidence-derivation.d.ts +160 -0
- package/dist/services/prd/gate-evidence-derivation.js +270 -0
- package/dist/services/prd/handoff-auto-regen.js +13 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.d.ts +1 -1
- package/dist/services/prd/handoff-frontmatter.js +63 -1
- package/dist/services/prd/handoff-gate-evidence.d.ts +95 -1
- package/dist/services/prd/handoff-gate-evidence.js +125 -57
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +22 -38
- package/dist/services/prd/handoff-service.js +38 -127
- package/dist/services/prd/handoff-types.d.ts +40 -0
- package/dist/services/prd/handoff-types.js +28 -1
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.d.ts +7 -0
- package/dist/services/prd/project-scan-reader.js +8 -5
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +36 -8
- package/dist/services/rd/reviewer-dispatch-policy.js +40 -15
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +32 -9
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/bee/peaks-rd/SKILL.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +26 -10
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +1 -1
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +6 -1
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/periodic-checkpoint.md +7 -5
- package/skills/peaks-code/references/startup-sequence.md +1 -1
- package/skills/peaks-final-review/SKILL.md +1 -1
- /package/{docs → contracts}/test-style-contract.md +0 -0
|
@@ -47,10 +47,7 @@ const LEGACY_DOTFILES = ['.session.json'];
|
|
|
47
47
|
// specific issue ("stale single-slot presence") and the operator
|
|
48
48
|
// can delete the file. The canonical sid-scoped lease at
|
|
49
49
|
// `.peaks/_runtime/<sid>/leases/presence-*.json` is the source of truth.
|
|
50
|
-
const STALE_SINGLE_SLOT_FILES = [
|
|
51
|
-
'active-skill.json',
|
|
52
|
-
'.active-skill.json'
|
|
53
|
-
];
|
|
50
|
+
const STALE_SINGLE_SLOT_FILES = ['active-skill.json', '.active-skill.json'];
|
|
54
51
|
/**
|
|
55
52
|
* Pure helper that inspects the on-disk workspace layout for
|
|
56
53
|
* post-F3-canonical violations. Exported so tests can drive the
|
|
@@ -190,7 +187,12 @@ function defaultPerChangeIdDirScanner(projectRoot) {
|
|
|
190
187
|
function defaultWorkspaceLayoutProbe(projectRootResolver) {
|
|
191
188
|
const projectRoot = projectRootResolver();
|
|
192
189
|
if (projectRoot === null) {
|
|
193
|
-
return {
|
|
190
|
+
return {
|
|
191
|
+
topLevelSessionDirs: [],
|
|
192
|
+
legacyDotfiles: [],
|
|
193
|
+
perChangeIdDirs: [],
|
|
194
|
+
staleSingleSlotFiles: []
|
|
195
|
+
};
|
|
194
196
|
}
|
|
195
197
|
return inspectWorkspaceLayout({ projectRoot });
|
|
196
198
|
}
|
|
@@ -209,11 +211,13 @@ function run({ options, projectRootResolver }) {
|
|
|
209
211
|
layout.legacyDotfiles.length === 0 &&
|
|
210
212
|
perChangeIdDirs.length === 0 &&
|
|
211
213
|
staleSingleSlotFiles.length === 0) {
|
|
212
|
-
return [
|
|
214
|
+
return [
|
|
215
|
+
{
|
|
213
216
|
id: 'build:workspace-layout-canonical',
|
|
214
217
|
ok: true,
|
|
215
218
|
message: 'Workspace layout is canonical: no top-level session dirs, no legacy runtime dotfiles, no per-change-id top-level dirs, no stale single-slot presence files'
|
|
216
|
-
}
|
|
219
|
+
}
|
|
220
|
+
];
|
|
217
221
|
}
|
|
218
222
|
const offenders = [
|
|
219
223
|
...layout.topLevelSessionDirs.map((p) => `top-level session dir: ${p}`),
|
|
@@ -221,18 +225,22 @@ function run({ options, projectRootResolver }) {
|
|
|
221
225
|
...perChangeIdDirs.map((p) => `per-change-id top-level dir: ${p}`),
|
|
222
226
|
...staleSingleSlotFiles.map((p) => `stale single-slot presence: ${p}`)
|
|
223
227
|
];
|
|
224
|
-
return [
|
|
228
|
+
return [
|
|
229
|
+
{
|
|
225
230
|
id: 'build:workspace-layout-canonical',
|
|
226
231
|
ok: false,
|
|
227
232
|
message: `Workspace layout is not canonical. Offenders: ${offenders.join('; ')}. Run \`peaks workspace migrate --to-runtime --project <repo> --apply\` to consolidate; delete stale single-slot presence files manually after migration.`
|
|
228
|
-
}
|
|
233
|
+
}
|
|
234
|
+
];
|
|
229
235
|
}
|
|
230
236
|
catch (error) {
|
|
231
|
-
return [
|
|
237
|
+
return [
|
|
238
|
+
{
|
|
232
239
|
id: 'build:workspace-layout-canonical',
|
|
233
240
|
ok: false,
|
|
234
241
|
message: `Workspace layout check failed: ${getErrorMessage(error)}`
|
|
235
|
-
}
|
|
242
|
+
}
|
|
243
|
+
];
|
|
236
244
|
}
|
|
237
245
|
}
|
|
238
246
|
export const check = {
|
|
@@ -190,7 +190,8 @@ export async function runDoctor(options = {}) {
|
|
|
190
190
|
const listDirectoriesImpl = (target) => fsModule.listDirectories(target);
|
|
191
191
|
const pathExistsImpl = (target) => fsModule.pathExists(target);
|
|
192
192
|
const readTextImpl = (target) => fsModule.readText(target);
|
|
193
|
-
const loadSkills = options.loadSkills ??
|
|
193
|
+
const loadSkills = options.loadSkills ??
|
|
194
|
+
((baseDir) => defaultLoadSkills(baseDir, listDirectoriesImpl, pathExistsImpl, readTextImpl));
|
|
194
195
|
const registry = await loadSkills(options.skillsBaseDir);
|
|
195
196
|
const skills = registry.skills;
|
|
196
197
|
const schemaRoot = options.schemasBaseDir ?? schemasDir;
|
|
@@ -205,7 +206,8 @@ export async function runDoctor(options = {}) {
|
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
// Workspace initialized: probe once up front, swallowing probe errors.
|
|
208
|
-
const workspaceProbe = options.workspaceInitializedProbe ??
|
|
209
|
+
const workspaceProbe = options.workspaceInitializedProbe ??
|
|
210
|
+
(() => defaultWorkspaceInitializedProbe(projectRootResolver));
|
|
209
211
|
let workspaceInitialized = false;
|
|
210
212
|
try {
|
|
211
213
|
workspaceInitialized = workspaceProbe();
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* multi-binary-drift-helpers — the pure PATH-probing primitives behind the
|
|
3
|
+
* `build:multi-binary-drift` doctor check (`multi-binary-drift.ts`).
|
|
4
|
+
*
|
|
5
|
+
* These are declarations + small pure helpers only: the record shape, the
|
|
6
|
+
* cross-platform candidate names, the read-only `exists` probe, and the
|
|
7
|
+
* version dedupe. `multi-binary-drift.ts` imports them and re-exports
|
|
8
|
+
* `PeaksBinaryRecord`, so the check's public surface is unchanged.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Local record shape — same as the canonical
|
|
12
|
+
* `MultiBinaryDriftInspection.binaries[number]`. Re-declared so the
|
|
13
|
+
* helper signature carries the concrete shape (the canonical
|
|
14
|
+
* `MultiBinaryDriftInspection` widens `version` + `installDate` to
|
|
15
|
+
* `string | null` so external consumers do not depend on the
|
|
16
|
+
* field being nullable).
|
|
17
|
+
*/
|
|
18
|
+
export type PeaksBinaryRecord = {
|
|
19
|
+
readonly path: string;
|
|
20
|
+
readonly version: string | null;
|
|
21
|
+
readonly installDate: string | null;
|
|
22
|
+
readonly realpath: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Cross-platform candidate names. Windows shims the executable as
|
|
26
|
+
* `peaks.cmd` and `peaks.ps1` (npm writes both); POSIX names the
|
|
27
|
+
* binary `peaks`. We probe all three names on every platform —
|
|
28
|
+
* probing a non-existent file is a no-op, so cross-list probing is
|
|
29
|
+
* safe.
|
|
30
|
+
*/
|
|
31
|
+
export declare function candidateBinaryNames(dir: string): ReadonlyArray<string>;
|
|
32
|
+
export declare function existsSafe(p: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* `version === null` means we could not read the package.json (or
|
|
35
|
+
* its `name` did not equal `peaks-loop`). Those records stay in
|
|
36
|
+
* `binaries` for the report but do NOT contribute to
|
|
37
|
+
* `uniqueVersions` — including null would falsely trigger drift
|
|
38
|
+
* detection when the only failures are unreadable binaries.
|
|
39
|
+
*/
|
|
40
|
+
export declare function dedupeVersions(versions: ReadonlyArray<string | null>): ReadonlyArray<string>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* multi-binary-drift-helpers — the pure PATH-probing primitives behind the
|
|
3
|
+
* `build:multi-binary-drift` doctor check (`multi-binary-drift.ts`).
|
|
4
|
+
*
|
|
5
|
+
* These are declarations + small pure helpers only: the record shape, the
|
|
6
|
+
* cross-platform candidate names, the read-only `exists` probe, and the
|
|
7
|
+
* version dedupe. `multi-binary-drift.ts` imports them and re-exports
|
|
8
|
+
* `PeaksBinaryRecord`, so the check's public surface is unchanged.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
/**
|
|
13
|
+
* Cross-platform candidate names. Windows shims the executable as
|
|
14
|
+
* `peaks.cmd` and `peaks.ps1` (npm writes both); POSIX names the
|
|
15
|
+
* binary `peaks`. We probe all three names on every platform —
|
|
16
|
+
* probing a non-existent file is a no-op, so cross-list probing is
|
|
17
|
+
* safe.
|
|
18
|
+
*/
|
|
19
|
+
export function candidateBinaryNames(dir) {
|
|
20
|
+
return [join(dir, 'peaks'), join(dir, 'peaks.cmd'), join(dir, 'peaks.ps1')];
|
|
21
|
+
}
|
|
22
|
+
export function existsSafe(p) {
|
|
23
|
+
try {
|
|
24
|
+
return existsSync(p);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* `version === null` means we could not read the package.json (or
|
|
32
|
+
* its `name` did not equal `peaks-loop`). Those records stay in
|
|
33
|
+
* `binaries` for the report but do NOT contribute to
|
|
34
|
+
* `uniqueVersions` — including null would falsely trigger drift
|
|
35
|
+
* detection when the only failures are unreadable binaries.
|
|
36
|
+
*/
|
|
37
|
+
export function dedupeVersions(versions) {
|
|
38
|
+
const seen = new Set();
|
|
39
|
+
const out = [];
|
|
40
|
+
for (const v of versions) {
|
|
41
|
+
if (typeof v !== 'string' || v.length === 0)
|
|
42
|
+
continue;
|
|
43
|
+
if (seen.has(v))
|
|
44
|
+
continue;
|
|
45
|
+
seen.add(v);
|
|
46
|
+
out.push(v);
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
@@ -81,5 +81,5 @@ export const PLUGINS = [
|
|
|
81
81
|
eccHooksSchemaDrift, // id "integration:ecc-hooks-schema-drift"
|
|
82
82
|
checkIdSchema, // id "doctor-self:check-id-pattern"
|
|
83
83
|
l3OrphanSessions, // id "L3:l3-orphan-sessions"
|
|
84
|
-
l3MemoryHealth
|
|
84
|
+
l3MemoryHealth // id "L3:l3-memory-health"
|
|
85
85
|
];
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injected-probe payload types for the doctor registry, hoisted verbatim out
|
|
3
|
+
* of `types.ts` by the b1 file-size campaign: the codegraph capability /
|
|
4
|
+
* exclude-integrity / index-integrity shapes, the dist-version, multi-binary
|
|
5
|
+
* drift, workspace-layout and gateguard / ECC-hooks probe results, the
|
|
6
|
+
* skill-presence / skill-registry subsets, and the function aliases
|
|
7
|
+
* `DoctorOptions` takes for each. Every name is re-exported from `types.ts`,
|
|
8
|
+
* so the check plugins reading `import type { … } from '../types.js'` and the
|
|
9
|
+
* tests importing `doctor-service/types` keep resolving through the original
|
|
10
|
+
* path; the `DoctorCheck` / `DoctorReport` / `DoctorOptions` /
|
|
11
|
+
* `DoctorContext` / `DoctorCheckPlugin` contract surface stays where it was.
|
|
12
|
+
* No field, doc comment or union member was edited.
|
|
13
|
+
*/
|
|
14
|
+
export type CodegraphManagedPathInfo = {
|
|
15
|
+
source: 'root';
|
|
16
|
+
codegraphDir: string;
|
|
17
|
+
cwd: string;
|
|
18
|
+
};
|
|
19
|
+
export type CodegraphCapabilityProbe = {
|
|
20
|
+
packagePath: string;
|
|
21
|
+
version: string;
|
|
22
|
+
binaryPath: string;
|
|
23
|
+
binaryExists: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Root-only managed-path resolution result. The check resolves the
|
|
26
|
+
* single codegraph data directory, `<cwd>/.codegraph/`, relative to
|
|
27
|
+
* the cwd the doctor was invoked from; null only when resolution is
|
|
28
|
+
* unavailable (e.g. the operator invoked `peaks doctor` outside a
|
|
29
|
+
* resolvable directory).
|
|
30
|
+
*/
|
|
31
|
+
managedPath: CodegraphManagedPathInfo | null;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Structural shape of the codegraph exclude-integrity report the
|
|
35
|
+
* `capability:codegraph-exclude-integrity` check gates on. Declared
|
|
36
|
+
* structurally (rather than imported from the codegraph service) to
|
|
37
|
+
* keep this type module dependency-free — the default probe returns a
|
|
38
|
+
* `CodegraphExcludeIntegrityReport`, which is assignable here.
|
|
39
|
+
*/
|
|
40
|
+
export type CodegraphExcludeIntegrityProbe = {
|
|
41
|
+
readonly configPath: string;
|
|
42
|
+
readonly gap: boolean;
|
|
43
|
+
readonly trackedSourceCount: number;
|
|
44
|
+
readonly excludedTrackedCount: number;
|
|
45
|
+
readonly rulesToRemove: readonly string[];
|
|
46
|
+
/** One entry per (file, rule) pair. */
|
|
47
|
+
readonly violations: readonly {
|
|
48
|
+
readonly path: string;
|
|
49
|
+
readonly matchedRule: string;
|
|
50
|
+
}[];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Structural shape of the codegraph index-integrity report the
|
|
54
|
+
* `capability:codegraph-index-integrity` check gates on. Declared
|
|
55
|
+
* structurally (rather than imported from the codegraph service) to
|
|
56
|
+
* keep this type module dependency-free — the default probe returns a
|
|
57
|
+
* `CodegraphIndexIntegrityReport`, which is assignable here.
|
|
58
|
+
*/
|
|
59
|
+
export type CodegraphIndexIntegrityProbe = {
|
|
60
|
+
readonly gap: boolean;
|
|
61
|
+
readonly trackedSourceCount: number;
|
|
62
|
+
readonly admittedTrackedCount: number;
|
|
63
|
+
/** Class ① — extractor-supported tracked files `include` does not admit. */
|
|
64
|
+
readonly includeGap: readonly string[];
|
|
65
|
+
readonly indexedFileCount: number;
|
|
66
|
+
/** Class ② — index rows whose path is gone from disk. */
|
|
67
|
+
readonly deadRows: readonly string[];
|
|
68
|
+
};
|
|
69
|
+
export type DistVersionComparison = {
|
|
70
|
+
dist: string | null;
|
|
71
|
+
source: string;
|
|
72
|
+
match: boolean;
|
|
73
|
+
distReadable: boolean;
|
|
74
|
+
};
|
|
75
|
+
export type DistVersionProbe = () => DistVersionComparison;
|
|
76
|
+
/**
|
|
77
|
+
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
78
|
+
* (G3/G4) — probe for the multi-binary drift check. The probe returns
|
|
79
|
+
* the discovered peaks-loop binaries on PATH (with their resolved
|
|
80
|
+
* version + install date) and a `driftDetected` flag. Injected so tests
|
|
81
|
+
* can drive the filesystem walk without monkey-patching
|
|
82
|
+
* `process.env.PATH` or `realpathSync`.
|
|
83
|
+
*/
|
|
84
|
+
export type MultiBinaryDriftInspection = {
|
|
85
|
+
readonly binaries: ReadonlyArray<{
|
|
86
|
+
readonly path: string;
|
|
87
|
+
readonly version: string | null;
|
|
88
|
+
readonly installDate: string | null;
|
|
89
|
+
}>;
|
|
90
|
+
readonly driftDetected: boolean;
|
|
91
|
+
readonly uniqueVersions: ReadonlyArray<string>;
|
|
92
|
+
};
|
|
93
|
+
export type MultiBinaryDriftProbe = () => MultiBinaryDriftInspection;
|
|
94
|
+
export type WorkspaceLayoutInspection = {
|
|
95
|
+
topLevelSessionDirs: string[];
|
|
96
|
+
legacyDotfiles: string[];
|
|
97
|
+
/**
|
|
98
|
+
* Slice 007 — per-change-id top-level dirs (e.g. `.peaks/001-2026-06-06-.../`).
|
|
99
|
+
* The pre-F3 canonical layout put reviewable artifacts under a
|
|
100
|
+
* per-change-id top-level dir; the post-F3 canonical layout
|
|
101
|
+
* consolidates them under `.peaks/_runtime/<sid>/<role>/`. Any
|
|
102
|
+
* leftover per-change-id top-level dir is a regression to flag.
|
|
103
|
+
* Slice 008's migration will consolidate these; until then, the
|
|
104
|
+
* check reports them as `ok: false`.
|
|
105
|
+
*
|
|
106
|
+
* Optional in the type for back-compat with test probes that
|
|
107
|
+
* pre-date the slice 007 broadening; the check itself falls back
|
|
108
|
+
* to an empty array when the field is missing.
|
|
109
|
+
*/
|
|
110
|
+
perChangeIdDirs?: string[];
|
|
111
|
+
/**
|
|
112
|
+
* Slice 4.0.11 statusline-sid-scoped-lease C — single-slot
|
|
113
|
+
* presence files that are stale after the sid-scoped lease
|
|
114
|
+
* projection shipped in 4.0.8. Reported separately from
|
|
115
|
+
* `legacyDotfiles` so the doctor message names the specific
|
|
116
|
+
* "stale single-slot presence" condition. Optional for back-compat
|
|
117
|
+
* with probes injected by older tests.
|
|
118
|
+
*/
|
|
119
|
+
staleSingleSlotFiles?: string[];
|
|
120
|
+
};
|
|
121
|
+
export type WorkspaceLayoutProbe = () => WorkspaceLayoutInspection;
|
|
122
|
+
/**
|
|
123
|
+
* 2026-06-10 — `gateguard-fact-force` (a third-party PreToolUse hook,
|
|
124
|
+
* NOT peaks-loop) fires on Edit / Write and demands a 4-fact questionnaire
|
|
125
|
+
* before allowing the edit. When the LLM is in a peaks-qa flow and tries
|
|
126
|
+
* to update `.peaks/_runtime/<sid>/qa/requests/*.md` via the Edit/Write
|
|
127
|
+
* tool, the hook demands facts that are inapplicable to QA envelope
|
|
128
|
+
* templates (no importers, no public API, no data files, user
|
|
129
|
+
* instruction already in the conversation context). The check detects
|
|
130
|
+
* this hook in the user's global and project `.claude/settings.json` and
|
|
131
|
+
* warns when no `.peaks/**` skip is configured. The probe is injected so
|
|
132
|
+
* tests do not depend on the real `~/.claude/settings.json` state.
|
|
133
|
+
*/
|
|
134
|
+
export type GateguardHookLocation = {
|
|
135
|
+
/** Source file the hook was discovered in (`global` or `project .claude/settings.json`). */
|
|
136
|
+
source: 'global' | 'project';
|
|
137
|
+
/** Resolved absolute path to the source file (for the message). */
|
|
138
|
+
sourcePath: string;
|
|
139
|
+
/** The PreToolUse entry that contains a gateguard hook command. */
|
|
140
|
+
entry: {
|
|
141
|
+
matcher?: string;
|
|
142
|
+
hooks: ReadonlyArray<{
|
|
143
|
+
type?: string;
|
|
144
|
+
command?: string;
|
|
145
|
+
}>;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
export type GateguardProbeResult = {
|
|
149
|
+
/** Absolute path to `~/.claude/settings.json` (or null when the probe could not resolve it). */
|
|
150
|
+
globalSettingsPath: string | null;
|
|
151
|
+
/** Parsed global settings payload (or null when missing / unreadable / malformed). */
|
|
152
|
+
globalSettings: unknown;
|
|
153
|
+
/** Absolute path to the project `.claude/settings.json` (or null when the project root is not in a peaks project). */
|
|
154
|
+
projectSettingsPath: string | null;
|
|
155
|
+
/** Parsed project settings payload (or null when missing / unreadable / malformed). */
|
|
156
|
+
projectSettings: unknown;
|
|
157
|
+
};
|
|
158
|
+
export type GateguardProbe = () => GateguardProbeResult;
|
|
159
|
+
/**
|
|
160
|
+
* 2026-09-12 — the third-party ECC plugin (github.com/affaan-m/ECC)
|
|
161
|
+
* ships `$schema` at the root of its `hooks/hooks.json` plus
|
|
162
|
+
* `description` + `id` on every matcher group. Claude Code's plugin
|
|
163
|
+
* hook schema accepts only `{ matcher, hooks }` per matcher group, and
|
|
164
|
+
* at the root `hooks` plus an OPTIONAL top-level `description`, so it
|
|
165
|
+
* prints an `unknown keys ... ignored`
|
|
166
|
+
* line at startup for the 47 extra keys (cosmetic — the hooks still
|
|
167
|
+
* load). The probe is injected so tests never read the real
|
|
168
|
+
* `~/.claude/plugins/` tree.
|
|
169
|
+
*/
|
|
170
|
+
export type EccHooksDriftProbeResult = {
|
|
171
|
+
/** Absolute path to the ECC plugin's `hooks/hooks.json` (null when the plugin is not installed). */
|
|
172
|
+
hooksPath: string | null;
|
|
173
|
+
/** Parsed `hooks/hooks.json` payload (null when missing / unreadable). */
|
|
174
|
+
hooks: unknown;
|
|
175
|
+
};
|
|
176
|
+
export type EccHooksDriftProbe = () => EccHooksDriftProbeResult;
|
|
177
|
+
/**
|
|
178
|
+
* Subset of SkillPresence consumed by the doctor (slice-3b: the full
|
|
179
|
+
* `SkillPresence` type lives in `src/services/skills/skill-presence-service.ts`;
|
|
180
|
+
* the doctor only needs `skill / mode / gate / setAt` for the freshness /
|
|
181
|
+
* workspace / statusline checks). The probe-returned object must satisfy
|
|
182
|
+
* this structural shape; the main package reuses the upstream
|
|
183
|
+
* `SkillPresence` directly so callers do not need to remap.
|
|
184
|
+
*/
|
|
185
|
+
export type DoctorSkillPresence = {
|
|
186
|
+
skill: string;
|
|
187
|
+
mode?: string;
|
|
188
|
+
gate?: string;
|
|
189
|
+
setAt: string;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Subset of SkillMetadata consumed by the doctor (slice-3b: the full
|
|
193
|
+
* type lives in `src/services/skills/skill-registry.ts`; the doctor only
|
|
194
|
+
* needs `name / directory / skillPath` for the runbook / name-match /
|
|
195
|
+
* schema checks). Failures from upstream have `directory + message`.
|
|
196
|
+
*/
|
|
197
|
+
export type DoctorSkillEntry = {
|
|
198
|
+
name: string;
|
|
199
|
+
directory: string;
|
|
200
|
+
skillPath: string;
|
|
201
|
+
};
|
|
202
|
+
export type DoctorSkillLoadFailure = {
|
|
203
|
+
directory: string;
|
|
204
|
+
skillPath: string;
|
|
205
|
+
message: string;
|
|
206
|
+
};
|
|
207
|
+
export type DoctorSkillsResult = {
|
|
208
|
+
skills: DoctorSkillEntry[];
|
|
209
|
+
failures: DoctorSkillLoadFailure[];
|
|
210
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injected-probe payload types for the doctor registry, hoisted verbatim out
|
|
3
|
+
* of `types.ts` by the b1 file-size campaign: the codegraph capability /
|
|
4
|
+
* exclude-integrity / index-integrity shapes, the dist-version, multi-binary
|
|
5
|
+
* drift, workspace-layout and gateguard / ECC-hooks probe results, the
|
|
6
|
+
* skill-presence / skill-registry subsets, and the function aliases
|
|
7
|
+
* `DoctorOptions` takes for each. Every name is re-exported from `types.ts`,
|
|
8
|
+
* so the check plugins reading `import type { … } from '../types.js'` and the
|
|
9
|
+
* tests importing `doctor-service/types` keep resolving through the original
|
|
10
|
+
* path; the `DoctorCheck` / `DoctorReport` / `DoctorOptions` /
|
|
11
|
+
* `DoctorContext` / `DoctorCheckPlugin` contract surface stays where it was.
|
|
12
|
+
* No field, doc comment or union member was edited.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
* flow through the same names so the main package's `import { runDoctor }`
|
|
13
13
|
* keeps working unchanged.
|
|
14
14
|
*/
|
|
15
|
+
import type { CodegraphManagedPathInfo, CodegraphCapabilityProbe, CodegraphExcludeIntegrityProbe, CodegraphIndexIntegrityProbe, DistVersionProbe, MultiBinaryDriftProbe, WorkspaceLayoutProbe, GateguardProbe, EccHooksDriftProbe, DoctorSkillPresence, DoctorSkillEntry, DoctorSkillsResult } from './probe-types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Re-exported so `import type { … } from './types.js'` still sees the whole
|
|
18
|
+
* probe surface after the b1 file-size split. The names are declared once,
|
|
19
|
+
* in `./probe-types.js`.
|
|
20
|
+
*/
|
|
21
|
+
export type { CodegraphManagedPathInfo, CodegraphCapabilityProbe, CodegraphExcludeIntegrityProbe, CodegraphIndexIntegrityProbe, DistVersionComparison, DistVersionProbe, MultiBinaryDriftInspection, MultiBinaryDriftProbe, WorkspaceLayoutInspection, WorkspaceLayoutProbe, GateguardHookLocation, GateguardProbeResult, GateguardProbe, EccHooksDriftProbeResult, EccHooksDriftProbe, DoctorSkillPresence, DoctorSkillEntry, DoctorSkillLoadFailure, DoctorSkillsResult } from './probe-types.js';
|
|
15
22
|
/**
|
|
16
23
|
* Severity for a single doctor check. `'error'` flips the exit code
|
|
17
24
|
* (via `buildReport` and the CLI dispatcher); `'warning'` surfaces
|
|
@@ -56,203 +63,6 @@ export type DoctorReport = {
|
|
|
56
63
|
warnings: number;
|
|
57
64
|
};
|
|
58
65
|
};
|
|
59
|
-
export type CodegraphManagedPathInfo = {
|
|
60
|
-
source: 'root';
|
|
61
|
-
codegraphDir: string;
|
|
62
|
-
cwd: string;
|
|
63
|
-
};
|
|
64
|
-
export type CodegraphCapabilityProbe = {
|
|
65
|
-
packagePath: string;
|
|
66
|
-
version: string;
|
|
67
|
-
binaryPath: string;
|
|
68
|
-
binaryExists: boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Root-only managed-path resolution result. The check resolves the
|
|
71
|
-
* single codegraph data directory, `<cwd>/.codegraph/`, relative to
|
|
72
|
-
* the cwd the doctor was invoked from; null only when resolution is
|
|
73
|
-
* unavailable (e.g. the operator invoked `peaks doctor` outside a
|
|
74
|
-
* resolvable directory).
|
|
75
|
-
*/
|
|
76
|
-
managedPath: CodegraphManagedPathInfo | null;
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* Structural shape of the codegraph exclude-integrity report the
|
|
80
|
-
* `capability:codegraph-exclude-integrity` check gates on. Declared
|
|
81
|
-
* structurally (rather than imported from the codegraph service) to
|
|
82
|
-
* keep this type module dependency-free — the default probe returns a
|
|
83
|
-
* `CodegraphExcludeIntegrityReport`, which is assignable here.
|
|
84
|
-
*/
|
|
85
|
-
export type CodegraphExcludeIntegrityProbe = {
|
|
86
|
-
readonly configPath: string;
|
|
87
|
-
readonly gap: boolean;
|
|
88
|
-
readonly trackedSourceCount: number;
|
|
89
|
-
readonly excludedTrackedCount: number;
|
|
90
|
-
readonly rulesToRemove: readonly string[];
|
|
91
|
-
/** One entry per (file, rule) pair. */
|
|
92
|
-
readonly violations: readonly {
|
|
93
|
-
readonly path: string;
|
|
94
|
-
readonly matchedRule: string;
|
|
95
|
-
}[];
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Structural shape of the codegraph index-integrity report the
|
|
99
|
-
* `capability:codegraph-index-integrity` check gates on. Declared
|
|
100
|
-
* structurally (rather than imported from the codegraph service) to
|
|
101
|
-
* keep this type module dependency-free — the default probe returns a
|
|
102
|
-
* `CodegraphIndexIntegrityReport`, which is assignable here.
|
|
103
|
-
*/
|
|
104
|
-
export type CodegraphIndexIntegrityProbe = {
|
|
105
|
-
readonly gap: boolean;
|
|
106
|
-
readonly trackedSourceCount: number;
|
|
107
|
-
readonly admittedTrackedCount: number;
|
|
108
|
-
/** Class ① — extractor-supported tracked files `include` does not admit. */
|
|
109
|
-
readonly includeGap: readonly string[];
|
|
110
|
-
readonly indexedFileCount: number;
|
|
111
|
-
/** Class ② — index rows whose path is gone from disk. */
|
|
112
|
-
readonly deadRows: readonly string[];
|
|
113
|
-
};
|
|
114
|
-
export type DistVersionComparison = {
|
|
115
|
-
dist: string | null;
|
|
116
|
-
source: string;
|
|
117
|
-
match: boolean;
|
|
118
|
-
distReadable: boolean;
|
|
119
|
-
};
|
|
120
|
-
export type DistVersionProbe = () => DistVersionComparison;
|
|
121
|
-
/**
|
|
122
|
-
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
123
|
-
* (G3/G4) — probe for the multi-binary drift check. The probe returns
|
|
124
|
-
* the discovered peaks-loop binaries on PATH (with their resolved
|
|
125
|
-
* version + install date) and a `driftDetected` flag. Injected so tests
|
|
126
|
-
* can drive the filesystem walk without monkey-patching
|
|
127
|
-
* `process.env.PATH` or `realpathSync`.
|
|
128
|
-
*/
|
|
129
|
-
export type MultiBinaryDriftInspection = {
|
|
130
|
-
readonly binaries: ReadonlyArray<{
|
|
131
|
-
readonly path: string;
|
|
132
|
-
readonly version: string | null;
|
|
133
|
-
readonly installDate: string | null;
|
|
134
|
-
}>;
|
|
135
|
-
readonly driftDetected: boolean;
|
|
136
|
-
readonly uniqueVersions: ReadonlyArray<string>;
|
|
137
|
-
};
|
|
138
|
-
export type MultiBinaryDriftProbe = () => MultiBinaryDriftInspection;
|
|
139
|
-
export type WorkspaceLayoutInspection = {
|
|
140
|
-
topLevelSessionDirs: string[];
|
|
141
|
-
legacyDotfiles: string[];
|
|
142
|
-
/**
|
|
143
|
-
* Slice 007 — per-change-id top-level dirs (e.g. `.peaks/001-2026-06-06-.../`).
|
|
144
|
-
* The pre-F3 canonical layout put reviewable artifacts under a
|
|
145
|
-
* per-change-id top-level dir; the post-F3 canonical layout
|
|
146
|
-
* consolidates them under `.peaks/_runtime/<sid>/<role>/`. Any
|
|
147
|
-
* leftover per-change-id top-level dir is a regression to flag.
|
|
148
|
-
* Slice 008's migration will consolidate these; until then, the
|
|
149
|
-
* check reports them as `ok: false`.
|
|
150
|
-
*
|
|
151
|
-
* Optional in the type for back-compat with test probes that
|
|
152
|
-
* pre-date the slice 007 broadening; the check itself falls back
|
|
153
|
-
* to an empty array when the field is missing.
|
|
154
|
-
*/
|
|
155
|
-
perChangeIdDirs?: string[];
|
|
156
|
-
/**
|
|
157
|
-
* Slice 4.0.11 statusline-sid-scoped-lease C — single-slot
|
|
158
|
-
* presence files that are stale after the sid-scoped lease
|
|
159
|
-
* projection shipped in 4.0.8. Reported separately from
|
|
160
|
-
* `legacyDotfiles` so the doctor message names the specific
|
|
161
|
-
* "stale single-slot presence" condition. Optional for back-compat
|
|
162
|
-
* with probes injected by older tests.
|
|
163
|
-
*/
|
|
164
|
-
staleSingleSlotFiles?: string[];
|
|
165
|
-
};
|
|
166
|
-
export type WorkspaceLayoutProbe = () => WorkspaceLayoutInspection;
|
|
167
|
-
/**
|
|
168
|
-
* 2026-06-10 — `gateguard-fact-force` (a third-party PreToolUse hook,
|
|
169
|
-
* NOT peaks-loop) fires on Edit / Write and demands a 4-fact questionnaire
|
|
170
|
-
* before allowing the edit. When the LLM is in a peaks-qa flow and tries
|
|
171
|
-
* to update `.peaks/_runtime/<sid>/qa/requests/*.md` via the Edit/Write
|
|
172
|
-
* tool, the hook demands facts that are inapplicable to QA envelope
|
|
173
|
-
* templates (no importers, no public API, no data files, user
|
|
174
|
-
* instruction already in the conversation context). The check detects
|
|
175
|
-
* this hook in the user's global and project `.claude/settings.json` and
|
|
176
|
-
* warns when no `.peaks/**` skip is configured. The probe is injected so
|
|
177
|
-
* tests do not depend on the real `~/.claude/settings.json` state.
|
|
178
|
-
*/
|
|
179
|
-
export type GateguardHookLocation = {
|
|
180
|
-
/** Source file the hook was discovered in (`global` or `project .claude/settings.json`). */
|
|
181
|
-
source: 'global' | 'project';
|
|
182
|
-
/** Resolved absolute path to the source file (for the message). */
|
|
183
|
-
sourcePath: string;
|
|
184
|
-
/** The PreToolUse entry that contains a gateguard hook command. */
|
|
185
|
-
entry: {
|
|
186
|
-
matcher?: string;
|
|
187
|
-
hooks: ReadonlyArray<{
|
|
188
|
-
type?: string;
|
|
189
|
-
command?: string;
|
|
190
|
-
}>;
|
|
191
|
-
};
|
|
192
|
-
};
|
|
193
|
-
export type GateguardProbeResult = {
|
|
194
|
-
/** Absolute path to `~/.claude/settings.json` (or null when the probe could not resolve it). */
|
|
195
|
-
globalSettingsPath: string | null;
|
|
196
|
-
/** Parsed global settings payload (or null when missing / unreadable / malformed). */
|
|
197
|
-
globalSettings: unknown;
|
|
198
|
-
/** Absolute path to the project `.claude/settings.json` (or null when the project root is not in a peaks project). */
|
|
199
|
-
projectSettingsPath: string | null;
|
|
200
|
-
/** Parsed project settings payload (or null when missing / unreadable / malformed). */
|
|
201
|
-
projectSettings: unknown;
|
|
202
|
-
};
|
|
203
|
-
export type GateguardProbe = () => GateguardProbeResult;
|
|
204
|
-
/**
|
|
205
|
-
* 2026-09-12 — the third-party ECC plugin (github.com/affaan-m/ECC)
|
|
206
|
-
* ships `$schema` at the root of its `hooks/hooks.json` plus
|
|
207
|
-
* `description` + `id` on every matcher group. Claude Code's plugin
|
|
208
|
-
* hook schema accepts only `{ matcher, hooks }` per matcher group, and
|
|
209
|
-
* at the root `hooks` plus an OPTIONAL top-level `description`, so it
|
|
210
|
-
* prints an `unknown keys ... ignored`
|
|
211
|
-
* line at startup for the 47 extra keys (cosmetic — the hooks still
|
|
212
|
-
* load). The probe is injected so tests never read the real
|
|
213
|
-
* `~/.claude/plugins/` tree.
|
|
214
|
-
*/
|
|
215
|
-
export type EccHooksDriftProbeResult = {
|
|
216
|
-
/** Absolute path to the ECC plugin's `hooks/hooks.json` (null when the plugin is not installed). */
|
|
217
|
-
hooksPath: string | null;
|
|
218
|
-
/** Parsed `hooks/hooks.json` payload (null when missing / unreadable). */
|
|
219
|
-
hooks: unknown;
|
|
220
|
-
};
|
|
221
|
-
export type EccHooksDriftProbe = () => EccHooksDriftProbeResult;
|
|
222
|
-
/**
|
|
223
|
-
* Subset of SkillPresence consumed by the doctor (slice-3b: the full
|
|
224
|
-
* `SkillPresence` type lives in `src/services/skills/skill-presence-service.ts`;
|
|
225
|
-
* the doctor only needs `skill / mode / gate / setAt` for the freshness /
|
|
226
|
-
* workspace / statusline checks). The probe-returned object must satisfy
|
|
227
|
-
* this structural shape; the main package reuses the upstream
|
|
228
|
-
* `SkillPresence` directly so callers do not need to remap.
|
|
229
|
-
*/
|
|
230
|
-
export type DoctorSkillPresence = {
|
|
231
|
-
skill: string;
|
|
232
|
-
mode?: string;
|
|
233
|
-
gate?: string;
|
|
234
|
-
setAt: string;
|
|
235
|
-
};
|
|
236
|
-
/**
|
|
237
|
-
* Subset of SkillMetadata consumed by the doctor (slice-3b: the full
|
|
238
|
-
* type lives in `src/services/skills/skill-registry.ts`; the doctor only
|
|
239
|
-
* needs `name / directory / skillPath` for the runbook / name-match /
|
|
240
|
-
* schema checks). Failures from upstream have `directory + message`.
|
|
241
|
-
*/
|
|
242
|
-
export type DoctorSkillEntry = {
|
|
243
|
-
name: string;
|
|
244
|
-
directory: string;
|
|
245
|
-
skillPath: string;
|
|
246
|
-
};
|
|
247
|
-
export type DoctorSkillLoadFailure = {
|
|
248
|
-
directory: string;
|
|
249
|
-
skillPath: string;
|
|
250
|
-
message: string;
|
|
251
|
-
};
|
|
252
|
-
export type DoctorSkillsResult = {
|
|
253
|
-
skills: DoctorSkillEntry[];
|
|
254
|
-
failures: DoctorSkillLoadFailure[];
|
|
255
|
-
};
|
|
256
66
|
export type DoctorOptions = {
|
|
257
67
|
schemasBaseDir?: string;
|
|
258
68
|
skillsBaseDir?: string;
|
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
* See .peaks/_runtime/2026-07-17-session-1d5ac0/rd/slice-3b-doctor.md
|
|
20
20
|
* for the slice-3b Option C decision rationale.
|
|
21
21
|
*/
|
|
22
|
-
export { runDoctor, isWorkspaceInitializedAt, compareDistVersion, inspectWorkspaceLayout, inspectMultiBinaryDrift, collectGateguardEntries, type DoctorCheck, type DoctorReport, type DoctorOptions, type CodegraphCapabilityProbe, type DistVersionComparison, type DistVersionProbe, type MultiBinaryDriftInspection, type MultiBinaryDriftProbe, type PeaksBinaryRecord, type WorkspaceLayoutInspection, type WorkspaceLayoutProbe, type GateguardHookLocation, type GateguardProbeResult, type GateguardProbe
|
|
22
|
+
export { runDoctor, isWorkspaceInitializedAt, compareDistVersion, inspectWorkspaceLayout, inspectMultiBinaryDrift, collectGateguardEntries, type DoctorCheck, type DoctorReport, type DoctorOptions, type CodegraphCapabilityProbe, type DistVersionComparison, type DistVersionProbe, type MultiBinaryDriftInspection, type MultiBinaryDriftProbe, type PeaksBinaryRecord, type WorkspaceLayoutInspection, type WorkspaceLayoutProbe, type GateguardHookLocation, type GateguardProbeResult, type GateguardProbe } from './doctor-service.js';
|
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
* See .peaks/_runtime/2026-07-17-session-1d5ac0/rd/slice-3b-doctor.md
|
|
20
20
|
* for the slice-3b Option C decision rationale.
|
|
21
21
|
*/
|
|
22
|
-
export { runDoctor, isWorkspaceInitializedAt, compareDistVersion, inspectWorkspaceLayout, inspectMultiBinaryDrift, collectGateguardEntries
|
|
22
|
+
export { runDoctor, isWorkspaceInitializedAt, compareDistVersion, inspectWorkspaceLayout, inspectMultiBinaryDrift, collectGateguardEntries } from './doctor-service.js';
|
|
@@ -44,7 +44,10 @@ const defaultRunner = {
|
|
|
44
44
|
resolveRun(value);
|
|
45
45
|
};
|
|
46
46
|
try {
|
|
47
|
-
const child = spawn(command, args, {
|
|
47
|
+
const child = spawn(command, args, {
|
|
48
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
49
|
+
windowsHide: true
|
|
50
|
+
});
|
|
48
51
|
let stdout = '';
|
|
49
52
|
child.stdout?.on('data', (chunk) => {
|
|
50
53
|
stdout += chunk.toString('utf8');
|
|
@@ -123,7 +126,10 @@ export async function probeShell(options = {}) {
|
|
|
123
126
|
// directory.
|
|
124
127
|
const where = await runner.run('where', ['bash'], { timeoutMs });
|
|
125
128
|
if (where !== null && where.stdout.trim().length > 0) {
|
|
126
|
-
const first = where.stdout
|
|
129
|
+
const first = where.stdout
|
|
130
|
+
.split(/\r?\n/)
|
|
131
|
+
.map((l) => l.trim())
|
|
132
|
+
.find((l) => l.length > 0);
|
|
127
133
|
if (first !== undefined) {
|
|
128
134
|
return {
|
|
129
135
|
available: true,
|