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
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { join, resolve } from 'node:path';
|
|
3
1
|
import { findProjectRoot } from '../config/config-safety.js';
|
|
4
|
-
import { decideCompactStatusline } from '../compact-statusline/compact-statusline-service.js';
|
|
5
2
|
import { getSessionIdCanonical } from '../session/session-manager.js';
|
|
6
3
|
import { resolveActiveSkillForCaller } from '../audit/enforcers/active-skill-resolver.js';
|
|
7
4
|
import { listPresenceLeases } from './presence-lease-service.js';
|
|
8
|
-
import {
|
|
5
|
+
import { read24hOverlay, readActiveLeaf, readCompactState, resolveCallerId, resolveCwdFromStdin } from './skill-statusline-model.js';
|
|
6
|
+
export { parseStatusLineStdin, read24hOverlay } from './skill-statusline-model.js';
|
|
9
7
|
/**
|
|
10
8
|
* Out-of-band Peaks skill status renderer for the Claude Code statusLine.
|
|
11
9
|
*
|
|
@@ -32,133 +30,6 @@ import { readActiveDispatchIndex } from '../dispatch/dispatch-record-writer.js';
|
|
|
32
30
|
*/
|
|
33
31
|
import { normalizeSkillPresenceMode } from './skill-presence-service.js';
|
|
34
32
|
const STALE_THRESHOLD_MS = 24 * 60 * 60 * 1000;
|
|
35
|
-
/**
|
|
36
|
-
* Slice rid-statusline-24h-overlay (2026-08-10): name-distinct from
|
|
37
|
-
* the canonical `read24hState` in `src/services/24h-mode/store.ts:108`.
|
|
38
|
-
* The canonical reader calls `coerceSnapshot` (which throws on
|
|
39
|
-
* malformed shapes via `24H_STATE_INVALID`); this overlay reader
|
|
40
|
-
* returns `null` for ANY malformed shape (per PRD AC-3 — never
|
|
41
|
-
* throw across the statusline boundary).
|
|
42
|
-
*
|
|
43
|
-
* Returns null when:
|
|
44
|
-
* - `projectRoot` or `sessionId` is empty
|
|
45
|
-
* - the file does not exist (ENOENT)
|
|
46
|
-
* - JSON.parse fails (corrupt file)
|
|
47
|
-
* - root is not a non-array object
|
|
48
|
-
* - `state` is missing, non-string, or empty string
|
|
49
|
-
*/
|
|
50
|
-
export function read24hOverlay(projectRoot, sessionId) {
|
|
51
|
-
if (!projectRoot || !sessionId)
|
|
52
|
-
return null;
|
|
53
|
-
const path = join(projectRoot, '.peaks', '_runtime', sessionId, '24h-state.json');
|
|
54
|
-
let raw;
|
|
55
|
-
try {
|
|
56
|
-
raw = readFileSync(path, 'utf8');
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
// ENOENT, EACCES, EISDIR — all treated as "no overlay"
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
let parsed;
|
|
63
|
-
try {
|
|
64
|
-
parsed = JSON.parse(raw);
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
// corrupt JSON — graceful null (PRD AC-3)
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
71
|
-
return null;
|
|
72
|
-
const obj = parsed;
|
|
73
|
-
if (typeof obj['state'] !== 'string' || obj['state'].length === 0)
|
|
74
|
-
return null;
|
|
75
|
-
return { state: obj['state'] };
|
|
76
|
-
}
|
|
77
|
-
function resolveCwdFromStdin(stdin) {
|
|
78
|
-
const fromWorkspace = stdin?.workspace?.current_dir ?? stdin?.workspace?.project_dir;
|
|
79
|
-
if (typeof fromWorkspace === 'string' && fromWorkspace.length > 0) {
|
|
80
|
-
return resolve(fromWorkspace);
|
|
81
|
-
}
|
|
82
|
-
if (typeof stdin?.cwd === 'string' && stdin.cwd.length > 0) {
|
|
83
|
-
return resolve(stdin.cwd);
|
|
84
|
-
}
|
|
85
|
-
return process.cwd();
|
|
86
|
-
}
|
|
87
|
-
export function parseStatusLineStdin(raw) {
|
|
88
|
-
const trimmed = raw.trim();
|
|
89
|
-
if (trimmed.length === 0)
|
|
90
|
-
return null;
|
|
91
|
-
try {
|
|
92
|
-
const parsed = JSON.parse(trimmed);
|
|
93
|
-
if (parsed && typeof parsed === 'object') {
|
|
94
|
-
return parsed;
|
|
95
|
-
}
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Resolve the callerId for the read-side isolation. Order of resolution:
|
|
104
|
-
* 1. `stdin?.caller_id` (when the harness / IDE adapter forwards it)
|
|
105
|
-
* 2. `process.env.CLAUDE_CODE_SESSION_ID` (Claude Code's ambient session id;
|
|
106
|
-
* used as a coarse callerId surrogate when stdin omits caller_id)
|
|
107
|
-
* 3. `null` (no callerId — caller falls back to the project-level
|
|
108
|
-
* single-file read for back-compat)
|
|
109
|
-
*/
|
|
110
|
-
function resolveCallerId(stdin) {
|
|
111
|
-
const fromStdin = typeof stdin?.caller_id === 'string' && stdin.caller_id.length > 0
|
|
112
|
-
? stdin.caller_id
|
|
113
|
-
: null;
|
|
114
|
-
if (fromStdin !== null)
|
|
115
|
-
return fromStdin;
|
|
116
|
-
const fromEnv = process.env['CLAUDE_CODE_SESSION_ID'];
|
|
117
|
-
if (typeof fromEnv === 'string' && fromEnv.length > 0)
|
|
118
|
-
return fromEnv;
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Read the active-dispatch index for the canonical session, filter to
|
|
123
|
-
* in-flight entries (status NOT IN { done, failed, cancelled, no-execution,
|
|
124
|
-
* never-started, unreadable, stale }), and return the most-recent leaf role
|
|
125
|
-
* plus the total in-flight count. Returns `{ role: null, pendingCount: 0 }`
|
|
126
|
-
* when no session id resolves, the index is empty, or every entry is terminal.
|
|
127
|
-
*
|
|
128
|
-
* READ-ONLY: only reads `.peaks/_sub_agents/<sid>/active-dispatches.json`.
|
|
129
|
-
* Never mutates the on-disk record.
|
|
130
|
-
*/
|
|
131
|
-
function readActiveLeaf(projectRoot, sessionId) {
|
|
132
|
-
if (sessionId === null)
|
|
133
|
-
return null;
|
|
134
|
-
let index = {};
|
|
135
|
-
try {
|
|
136
|
-
index = readActiveDispatchIndex(projectRoot, sessionId);
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
const terminalStatuses = new Set([
|
|
142
|
-
'done',
|
|
143
|
-
'failed',
|
|
144
|
-
'cancelled',
|
|
145
|
-
'no-execution',
|
|
146
|
-
'never-started',
|
|
147
|
-
'unreadable',
|
|
148
|
-
'stale',
|
|
149
|
-
'queued', // Slice 2026-08-05 fix: stale dispatch entries stuck at 'queued' should
|
|
150
|
-
// not pollute statusline as in-flight leaves.
|
|
151
|
-
]);
|
|
152
|
-
const inFlight = Object.values(index).filter((e) => !terminalStatuses.has(e.status));
|
|
153
|
-
if (inFlight.length === 0)
|
|
154
|
-
return null;
|
|
155
|
-
// Sort by createdAt descending — the most recently dispatched leaf wins.
|
|
156
|
-
const sorted = inFlight.slice().sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
157
|
-
const latest = sorted[0];
|
|
158
|
-
if (latest === undefined)
|
|
159
|
-
return null;
|
|
160
|
-
return { role: latest.role, pendingCount: inFlight.length };
|
|
161
|
-
}
|
|
162
33
|
/**
|
|
163
34
|
* Read the presence file without any side effects. Returns null when the file is
|
|
164
35
|
* absent (idle) and a sentinel object for malformed content (invalid-presence).
|
|
@@ -195,9 +66,9 @@ function readPresenceReadOnly(projectRoot, callerId) {
|
|
|
195
66
|
return {
|
|
196
67
|
presence: {
|
|
197
68
|
skill: firstResolution.skill,
|
|
198
|
-
...(firstResolution.mode !== null ? { mode: firstResolution.mode } : {})
|
|
69
|
+
...(firstResolution.mode !== null ? { mode: firstResolution.mode } : {})
|
|
199
70
|
},
|
|
200
|
-
invalid: false
|
|
71
|
+
invalid: false
|
|
201
72
|
};
|
|
202
73
|
}
|
|
203
74
|
// callerId didn't match any lease — fall back to the session's most
|
|
@@ -254,9 +125,9 @@ function readPresenceReadOnly(projectRoot, callerId) {
|
|
|
254
125
|
presence: {
|
|
255
126
|
skill: latest.skill,
|
|
256
127
|
...(latestMode !== undefined ? { mode: latestMode } : {}),
|
|
257
|
-
setAt: latest.startedAt
|
|
128
|
+
setAt: latest.startedAt
|
|
258
129
|
},
|
|
259
|
-
invalid: false
|
|
130
|
+
invalid: false
|
|
260
131
|
};
|
|
261
132
|
}
|
|
262
133
|
export function buildStatusLineModel(stdin, nowMs) {
|
|
@@ -280,16 +151,43 @@ export function buildStatusLineModel(stdin, nowMs) {
|
|
|
280
151
|
}
|
|
281
152
|
}
|
|
282
153
|
if (projectRoot === null) {
|
|
283
|
-
return {
|
|
154
|
+
return {
|
|
155
|
+
state: 'idle',
|
|
156
|
+
projectRoot: null,
|
|
157
|
+
presence: null,
|
|
158
|
+
ageMs: null,
|
|
159
|
+
compact,
|
|
160
|
+
activeLeaf: null,
|
|
161
|
+
sessionId: null,
|
|
162
|
+
twentyFourHourState: null
|
|
163
|
+
};
|
|
284
164
|
}
|
|
285
165
|
// callerId resolves the read-side isolation; back-compat is `null`.
|
|
286
166
|
const callerId = resolveCallerId(stdin);
|
|
287
167
|
const { presence, invalid } = readPresenceReadOnly(projectRoot, callerId);
|
|
288
168
|
if (invalid) {
|
|
289
|
-
return {
|
|
169
|
+
return {
|
|
170
|
+
state: 'invalid-presence',
|
|
171
|
+
projectRoot,
|
|
172
|
+
presence: null,
|
|
173
|
+
ageMs: null,
|
|
174
|
+
compact,
|
|
175
|
+
activeLeaf: null,
|
|
176
|
+
sessionId,
|
|
177
|
+
twentyFourHourState: null
|
|
178
|
+
};
|
|
290
179
|
}
|
|
291
180
|
if (presence === null) {
|
|
292
|
-
return {
|
|
181
|
+
return {
|
|
182
|
+
state: 'idle',
|
|
183
|
+
projectRoot,
|
|
184
|
+
presence: null,
|
|
185
|
+
ageMs: null,
|
|
186
|
+
compact,
|
|
187
|
+
activeLeaf: null,
|
|
188
|
+
sessionId,
|
|
189
|
+
twentyFourHourState: null
|
|
190
|
+
};
|
|
293
191
|
}
|
|
294
192
|
// Session binding: when the presence was stamped with a Claude session id and
|
|
295
193
|
// the live session (from stdin) is a different one, the recorded skill belongs
|
|
@@ -298,7 +196,16 @@ export function buildStatusLineModel(stdin, nowMs) {
|
|
|
298
196
|
// fall back to the time-based behavior below for backward compatibility.
|
|
299
197
|
const liveSessionId = typeof stdin?.session_id === 'string' && stdin.session_id.length > 0 ? stdin.session_id : null;
|
|
300
198
|
if (presence.claudeSessionId && liveSessionId && presence.claudeSessionId !== liveSessionId) {
|
|
301
|
-
return {
|
|
199
|
+
return {
|
|
200
|
+
state: 'idle',
|
|
201
|
+
projectRoot,
|
|
202
|
+
presence: null,
|
|
203
|
+
ageMs: null,
|
|
204
|
+
compact,
|
|
205
|
+
activeLeaf: null,
|
|
206
|
+
sessionId,
|
|
207
|
+
twentyFourHourState: null
|
|
208
|
+
};
|
|
302
209
|
}
|
|
303
210
|
const setAtMs = presence.setAt ? Date.parse(presence.setAt) : Number.NaN;
|
|
304
211
|
const ageMs = Number.isNaN(setAtMs) ? null : nowMs - setAtMs;
|
|
@@ -321,28 +228,14 @@ export function buildStatusLineModel(stdin, nowMs) {
|
|
|
321
228
|
// 状态下 overlay 24h suffix"). When projectRoot or sessionId is
|
|
322
229
|
// missing, return null without re-reading disk.
|
|
323
230
|
const twentyFourHourState = state === 'active' ? read24hOverlay(projectRoot, sessionId ?? '') : null;
|
|
324
|
-
return {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
return { kind: 'none', filledCells: 0 };
|
|
335
|
-
}
|
|
336
|
-
try {
|
|
337
|
-
const sessionId = getSessionIdCanonical(projectRoot);
|
|
338
|
-
return decideCompactStatusline({
|
|
339
|
-
projectRoot,
|
|
340
|
-
sessionId,
|
|
341
|
-
now: nowMs,
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
catch {
|
|
345
|
-
// Read-only — never throw across the statusline boundary.
|
|
346
|
-
return { kind: 'none', filledCells: 0 };
|
|
347
|
-
}
|
|
231
|
+
return {
|
|
232
|
+
state,
|
|
233
|
+
projectRoot,
|
|
234
|
+
presence,
|
|
235
|
+
ageMs,
|
|
236
|
+
compact,
|
|
237
|
+
activeLeaf,
|
|
238
|
+
sessionId,
|
|
239
|
+
twentyFourHourState
|
|
240
|
+
};
|
|
348
241
|
}
|
|
@@ -21,7 +21,7 @@ const BRAND = 'Peaks';
|
|
|
21
21
|
const ATTENTION_GATE_LABELS = new Map([
|
|
22
22
|
['qa-validation', 'QA'],
|
|
23
23
|
['verdict-issued', 'Verdict'],
|
|
24
|
-
['blocked', 'Blocked']
|
|
24
|
+
['blocked', 'Blocked']
|
|
25
25
|
]);
|
|
26
26
|
export function isAttentionGate(gate) {
|
|
27
27
|
if (!gate)
|
|
@@ -117,12 +117,17 @@ function buildPalette(capability, noColor) {
|
|
|
117
117
|
idleLabel: 'empty',
|
|
118
118
|
invalidMessage: 'presence unreadable',
|
|
119
119
|
compact: {
|
|
120
|
-
queued: '[',
|
|
121
|
-
|
|
120
|
+
queued: '[',
|
|
121
|
+
preparing: '+',
|
|
122
|
+
compacting: '+',
|
|
123
|
+
armed: '~',
|
|
124
|
+
verifying: '+',
|
|
125
|
+
completed: '*',
|
|
126
|
+
failed
|
|
122
127
|
},
|
|
123
128
|
barFilled: '#',
|
|
124
129
|
barEmpty: '-',
|
|
125
|
-
ratioArrow: '->'
|
|
130
|
+
ratioArrow: '->'
|
|
126
131
|
};
|
|
127
132
|
}
|
|
128
133
|
return {
|
|
@@ -147,11 +152,11 @@ function buildPalette(capability, noColor) {
|
|
|
147
152
|
armed: brandGlyph('◔'),
|
|
148
153
|
verifying: brandGlyph('◓'),
|
|
149
154
|
completed: brandGlyph('✓'),
|
|
150
|
-
failed
|
|
155
|
+
failed
|
|
151
156
|
},
|
|
152
157
|
barFilled: brand('█'),
|
|
153
158
|
barEmpty: dimBrand('░'),
|
|
154
|
-
ratioArrow: dimBrand('→')
|
|
159
|
+
ratioArrow: dimBrand('→')
|
|
155
160
|
};
|
|
156
161
|
}
|
|
157
162
|
const BREATHING_GLYPHS_UNICODE = ['●', '◐', '◑', '◒', '◓'];
|
|
@@ -97,7 +97,8 @@ function atomicWriteJson(settingsPath, settings) {
|
|
|
97
97
|
try {
|
|
98
98
|
unlinkSync(tempPath);
|
|
99
99
|
}
|
|
100
|
-
catch {
|
|
100
|
+
catch {
|
|
101
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
101
102
|
// best effort cleanup
|
|
102
103
|
}
|
|
103
104
|
throw error;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { IdeId } from '../ide/ide-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The 8 platforms per Slice #12 final piece. Slice #0.7 + Slice
|
|
4
|
+
* #0.5.2 registered these in the IdeId union; this list is the
|
|
5
|
+
* single source of truth for the sync fan-out.
|
|
6
|
+
*/
|
|
7
|
+
export declare const SYNC_PLATFORMS: readonly IdeId[];
|
|
8
|
+
export interface PlatformSyncResult {
|
|
9
|
+
/** The platform that was attempted. */
|
|
10
|
+
readonly platform: IdeId;
|
|
11
|
+
/** True if installBundledSkills returned without error. */
|
|
12
|
+
readonly ok: boolean;
|
|
13
|
+
/** Skills newly symlinked (idempotent re-runs return []). */
|
|
14
|
+
readonly installed: readonly string[];
|
|
15
|
+
/** Skills whose target was not a managed symlink (third-party owned). */
|
|
16
|
+
readonly skipped: readonly string[];
|
|
17
|
+
/** Error message; present when ok=false. */
|
|
18
|
+
readonly error?: string;
|
|
19
|
+
/** Wall-clock duration in ms. */
|
|
20
|
+
readonly durationMs: number;
|
|
21
|
+
}
|
|
22
|
+
export interface SyncServiceInput {
|
|
23
|
+
readonly projectRoot: string;
|
|
24
|
+
/** When omitted, the service iterates all 8 platforms. */
|
|
25
|
+
readonly platforms?: readonly IdeId[] | undefined;
|
|
26
|
+
/** When true, the installer is invoked in dry-run mode. */
|
|
27
|
+
readonly dryRun?: boolean | undefined;
|
|
28
|
+
/** Reconcile managed Junctions that point at deleted host worktrees. */
|
|
29
|
+
readonly reconcileJunctions?: boolean | undefined;
|
|
30
|
+
}
|
|
31
|
+
export interface SyncServiceResult {
|
|
32
|
+
readonly applied: boolean;
|
|
33
|
+
readonly dryRun: boolean;
|
|
34
|
+
readonly projectRoot: string;
|
|
35
|
+
readonly perPlatform: readonly PlatformSyncResult[];
|
|
36
|
+
readonly syncedCount: number;
|
|
37
|
+
readonly failedCount: number;
|
|
38
|
+
readonly totalInstalled: number;
|
|
39
|
+
}
|
|
40
|
+
export interface InstallBundledSkillsOptions {
|
|
41
|
+
readonly ideId: IdeId;
|
|
42
|
+
readonly projectRoot: string;
|
|
43
|
+
readonly dryRun?: boolean;
|
|
44
|
+
readonly reconcileJunctions?: boolean;
|
|
45
|
+
readonly targetRoot?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface InstallResult {
|
|
48
|
+
readonly installed: readonly string[];
|
|
49
|
+
readonly skipped: readonly string[];
|
|
50
|
+
}
|
|
51
|
+
export type InstallerFn = (opts: InstallBundledSkillsOptions) => InstallResult;
|
|
52
|
+
/**
|
|
53
|
+
* Test seam: attempt to import the installer at `scriptPath`.
|
|
54
|
+
* Returns the `installBundledSkills` function on success, or
|
|
55
|
+
* `null` when the file is missing / not importable. The
|
|
56
|
+
* production code calls this through `loadInstaller`; tests
|
|
57
|
+
* `vi.spyOn` it to drive the three-tier probe without touching
|
|
58
|
+
* the real filesystem.
|
|
59
|
+
*/
|
|
60
|
+
export declare function loadInstallerForTest(scriptPath: string): Promise<InstallerFn | null>;
|
|
61
|
+
/**
|
|
62
|
+
* Validate a single platform id against the SYNC_PLATFORMS
|
|
63
|
+
* allowlist. Throws on a bogus value.
|
|
64
|
+
*/
|
|
65
|
+
export declare function assertValidPlatform(platform: string): asserts platform is IdeId;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declarations extracted from `sync-service.ts` by the b1 file-size
|
|
3
|
+
* campaign: the platform allowlist, the sync types, and the two small
|
|
4
|
+
* pure helpers (platform validator + installer test seam). `sync-service.ts`
|
|
5
|
+
* re-exports every name so importers keep the original path.
|
|
6
|
+
*/
|
|
7
|
+
import { pathToFileURL } from 'node:url';
|
|
8
|
+
/**
|
|
9
|
+
* The 8 platforms per Slice #12 final piece. Slice #0.7 + Slice
|
|
10
|
+
* #0.5.2 registered these in the IdeId union; this list is the
|
|
11
|
+
* single source of truth for the sync fan-out.
|
|
12
|
+
*/
|
|
13
|
+
export const SYNC_PLATFORMS = [
|
|
14
|
+
'claude-code',
|
|
15
|
+
'trae',
|
|
16
|
+
'codex',
|
|
17
|
+
'cursor',
|
|
18
|
+
'qoder',
|
|
19
|
+
'tongyi-lingma',
|
|
20
|
+
'hermes',
|
|
21
|
+
'openclaw'
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* Test seam: attempt to import the installer at `scriptPath`.
|
|
25
|
+
* Returns the `installBundledSkills` function on success, or
|
|
26
|
+
* `null` when the file is missing / not importable. The
|
|
27
|
+
* production code calls this through `loadInstaller`; tests
|
|
28
|
+
* `vi.spyOn` it to drive the three-tier probe without touching
|
|
29
|
+
* the real filesystem.
|
|
30
|
+
*/
|
|
31
|
+
export async function loadInstallerForTest(scriptPath) {
|
|
32
|
+
try {
|
|
33
|
+
const mod = (await import(pathToFileURL(scriptPath).href));
|
|
34
|
+
return mod.installBundledSkills;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validate a single platform id against the SYNC_PLATFORMS
|
|
43
|
+
* allowlist. Throws on a bogus value.
|
|
44
|
+
*/
|
|
45
|
+
export function assertValidPlatform(platform) {
|
|
46
|
+
if (!SYNC_PLATFORMS.includes(platform)) {
|
|
47
|
+
throw new Error(`peaks skill sync: unknown platform "${platform}". ` +
|
|
48
|
+
`Valid platforms: ${SYNC_PLATFORMS.join(', ')}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -1,54 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* #0.5.2 registered these in the IdeId union; this list is the
|
|
5
|
-
* single source of truth for the sync fan-out.
|
|
6
|
-
*/
|
|
7
|
-
export declare const SYNC_PLATFORMS: readonly IdeId[];
|
|
8
|
-
export interface PlatformSyncResult {
|
|
9
|
-
/** The platform that was attempted. */
|
|
10
|
-
readonly platform: IdeId;
|
|
11
|
-
/** True if installBundledSkills returned without error. */
|
|
12
|
-
readonly ok: boolean;
|
|
13
|
-
/** Skills newly symlinked (idempotent re-runs return []). */
|
|
14
|
-
readonly installed: readonly string[];
|
|
15
|
-
/** Skills whose target was not a managed symlink (third-party owned). */
|
|
16
|
-
readonly skipped: readonly string[];
|
|
17
|
-
/** Error message; present when ok=false. */
|
|
18
|
-
readonly error?: string;
|
|
19
|
-
/** Wall-clock duration in ms. */
|
|
20
|
-
readonly durationMs: number;
|
|
21
|
-
}
|
|
22
|
-
export interface SyncServiceInput {
|
|
23
|
-
readonly projectRoot: string;
|
|
24
|
-
/** When omitted, the service iterates all 8 platforms. */
|
|
25
|
-
readonly platforms?: readonly IdeId[] | undefined;
|
|
26
|
-
/** When true, the installer is invoked in dry-run mode. */
|
|
27
|
-
readonly dryRun?: boolean | undefined;
|
|
28
|
-
/** Reconcile managed Junctions that point at deleted host worktrees. */
|
|
29
|
-
readonly reconcileJunctions?: boolean | undefined;
|
|
30
|
-
}
|
|
31
|
-
export interface SyncServiceResult {
|
|
32
|
-
readonly applied: boolean;
|
|
33
|
-
readonly dryRun: boolean;
|
|
34
|
-
readonly projectRoot: string;
|
|
35
|
-
readonly perPlatform: readonly PlatformSyncResult[];
|
|
36
|
-
readonly syncedCount: number;
|
|
37
|
-
readonly failedCount: number;
|
|
38
|
-
readonly totalInstalled: number;
|
|
39
|
-
}
|
|
40
|
-
interface InstallBundledSkillsOptions {
|
|
41
|
-
readonly ideId: IdeId;
|
|
42
|
-
readonly projectRoot: string;
|
|
43
|
-
readonly dryRun?: boolean;
|
|
44
|
-
readonly reconcileJunctions?: boolean;
|
|
45
|
-
readonly targetRoot?: string;
|
|
46
|
-
}
|
|
47
|
-
interface InstallResult {
|
|
48
|
-
readonly installed: readonly string[];
|
|
49
|
-
readonly skipped: readonly string[];
|
|
50
|
-
}
|
|
51
|
-
type InstallerFn = (opts: InstallBundledSkillsOptions) => InstallResult;
|
|
1
|
+
import { assertValidPlatform, SYNC_PLATFORMS, loadInstallerForTest, type InstallerFn, type PlatformSyncResult, type SyncServiceInput, type SyncServiceResult } from './sync-service-support.js';
|
|
2
|
+
export { SYNC_PLATFORMS, assertValidPlatform, loadInstallerForTest };
|
|
3
|
+
export type { PlatformSyncResult, SyncServiceInput, SyncServiceResult };
|
|
52
4
|
/**
|
|
53
5
|
* Resolve the path of `install-skills.mjs` inside the peaks-loop
|
|
54
6
|
* install root, walking up from `import.meta.url` until a
|
|
@@ -57,20 +9,6 @@ type InstallerFn = (opts: InstallBundledSkillsOptions) => InstallResult;
|
|
|
57
9
|
* is absent (e.g. a partial install).
|
|
58
10
|
*/
|
|
59
11
|
export declare function resolvePeaksCliInstallerPath(): string | null;
|
|
60
|
-
/**
|
|
61
|
-
* Test seam: attempt to import the installer at `scriptPath`.
|
|
62
|
-
* Returns the `installBundledSkills` function on success, or
|
|
63
|
-
* `null` when the file is missing / not importable. The
|
|
64
|
-
* production code calls this through `loadInstaller`; tests
|
|
65
|
-
* `vi.spyOn` it to drive the three-tier probe without touching
|
|
66
|
-
* the real filesystem.
|
|
67
|
-
*/
|
|
68
|
-
export declare function loadInstallerForTest(scriptPath: string): Promise<InstallerFn | null>;
|
|
69
|
-
/**
|
|
70
|
-
* Validate a single platform id against the SYNC_PLATFORMS
|
|
71
|
-
* allowlist. Throws on a bogus value.
|
|
72
|
-
*/
|
|
73
|
-
export declare function assertValidPlatform(platform: string): asserts platform is IdeId;
|
|
74
12
|
export declare function runSkillSync(input: SyncServiceInput): Promise<SyncServiceResult>;
|
|
75
13
|
/**
|
|
76
14
|
* Test-only export surface. Not part of the public API; subject
|
|
@@ -86,4 +24,3 @@ export declare const __testing: {
|
|
|
86
24
|
};
|
|
87
25
|
resetInstallerCache(): void;
|
|
88
26
|
};
|
|
89
|
-
export {};
|
|
@@ -25,22 +25,9 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import { existsSync } from 'node:fs';
|
|
27
27
|
import { dirname, join, resolve as resolvePath } from 'node:path';
|
|
28
|
-
import { fileURLToPath
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* #0.5.2 registered these in the IdeId union; this list is the
|
|
32
|
-
* single source of truth for the sync fan-out.
|
|
33
|
-
*/
|
|
34
|
-
export const SYNC_PLATFORMS = [
|
|
35
|
-
'claude-code',
|
|
36
|
-
'trae',
|
|
37
|
-
'codex',
|
|
38
|
-
'cursor',
|
|
39
|
-
'qoder',
|
|
40
|
-
'tongyi-lingma',
|
|
41
|
-
'hermes',
|
|
42
|
-
'openclaw',
|
|
43
|
-
];
|
|
28
|
+
import { fileURLToPath } from 'node:url';
|
|
29
|
+
import { assertValidPlatform, SYNC_PLATFORMS, loadInstallerForTest } from './sync-service-support.js';
|
|
30
|
+
export { SYNC_PLATFORMS, assertValidPlatform, loadInstallerForTest };
|
|
44
31
|
/**
|
|
45
32
|
* Sentinel: the resolver ran, found no installer, and warned.
|
|
46
33
|
* Memoized so subsequent `loadInstaller()` calls short-circuit
|
|
@@ -62,8 +49,8 @@ function noopInstaller(_opts) {
|
|
|
62
49
|
return {
|
|
63
50
|
installed: [],
|
|
64
51
|
skipped: [
|
|
65
|
-
'install-skills.mjs not found in project; skill sync skipped — bundled skills are installed via peaks-loop postinstall'
|
|
66
|
-
]
|
|
52
|
+
'install-skills.mjs not found in project; skill sync skipped — bundled skills are installed via peaks-loop postinstall'
|
|
53
|
+
]
|
|
67
54
|
};
|
|
68
55
|
}
|
|
69
56
|
/**
|
|
@@ -76,7 +63,7 @@ function noopInstaller(_opts) {
|
|
|
76
63
|
*/
|
|
77
64
|
const services = {
|
|
78
65
|
resolvePeaksCliInstallerPath,
|
|
79
|
-
loadInstallerForTest
|
|
66
|
+
loadInstallerForTest
|
|
80
67
|
};
|
|
81
68
|
/**
|
|
82
69
|
* Resolve the path of `install-skills.mjs` inside the peaks-loop
|
|
@@ -103,7 +90,8 @@ export function resolvePeaksCliInstallerPath() {
|
|
|
103
90
|
cursor = parent;
|
|
104
91
|
}
|
|
105
92
|
}
|
|
106
|
-
catch {
|
|
93
|
+
catch {
|
|
94
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
107
95
|
// import.meta.url may be unavailable in some bundlers; fall through.
|
|
108
96
|
}
|
|
109
97
|
// Tier 1b: process.argv[1] (the entrypoint). Useful when this
|
|
@@ -125,7 +113,8 @@ export function resolvePeaksCliInstallerPath() {
|
|
|
125
113
|
}
|
|
126
114
|
}
|
|
127
115
|
}
|
|
128
|
-
catch {
|
|
116
|
+
catch {
|
|
117
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
129
118
|
// process.argv may be unavailable in some runtimes; fall through.
|
|
130
119
|
}
|
|
131
120
|
for (const candidate of candidates) {
|
|
@@ -135,23 +124,6 @@ export function resolvePeaksCliInstallerPath() {
|
|
|
135
124
|
}
|
|
136
125
|
return null;
|
|
137
126
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Test seam: attempt to import the installer at `scriptPath`.
|
|
140
|
-
* Returns the `installBundledSkills` function on success, or
|
|
141
|
-
* `null` when the file is missing / not importable. The
|
|
142
|
-
* production code calls this through `loadInstaller`; tests
|
|
143
|
-
* `vi.spyOn` it to drive the three-tier probe without touching
|
|
144
|
-
* the real filesystem.
|
|
145
|
-
*/
|
|
146
|
-
export async function loadInstallerForTest(scriptPath) {
|
|
147
|
-
try {
|
|
148
|
-
const mod = (await import(pathToFileURL(scriptPath).href));
|
|
149
|
-
return mod.installBundledSkills;
|
|
150
|
-
}
|
|
151
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
127
|
/**
|
|
156
128
|
* Resolve and load the installer, memoizing the outcome.
|
|
157
129
|
* Three-tier probe (peaks-loop install path → CWD → no-op),
|
|
@@ -194,16 +166,6 @@ async function loadInstaller() {
|
|
|
194
166
|
'skipping (bundled skills come from peaks-loop postinstall).');
|
|
195
167
|
return noopInstaller;
|
|
196
168
|
}
|
|
197
|
-
/**
|
|
198
|
-
* Validate a single platform id against the SYNC_PLATFORMS
|
|
199
|
-
* allowlist. Throws on a bogus value.
|
|
200
|
-
*/
|
|
201
|
-
export function assertValidPlatform(platform) {
|
|
202
|
-
if (!SYNC_PLATFORMS.includes(platform)) {
|
|
203
|
-
throw new Error(`peaks skill sync: unknown platform "${platform}". ` +
|
|
204
|
-
`Valid platforms: ${SYNC_PLATFORMS.join(', ')}`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
169
|
export async function runSkillSync(input) {
|
|
208
170
|
const platforms = input.platforms ?? SYNC_PLATFORMS;
|
|
209
171
|
for (const p of platforms) {
|
|
@@ -222,14 +184,14 @@ export async function runSkillSync(input) {
|
|
|
222
184
|
ideId: platform,
|
|
223
185
|
projectRoot: input.projectRoot,
|
|
224
186
|
...(dryRun ? { dryRun: true } : {}),
|
|
225
|
-
...(input.reconcileJunctions === true ? { reconcileJunctions: true } : {})
|
|
187
|
+
...(input.reconcileJunctions === true ? { reconcileJunctions: true } : {})
|
|
226
188
|
});
|
|
227
189
|
perPlatform.push({
|
|
228
190
|
platform,
|
|
229
191
|
ok: true,
|
|
230
192
|
installed: result.installed,
|
|
231
193
|
skipped: result.skipped,
|
|
232
|
-
durationMs: Date.now() - start
|
|
194
|
+
durationMs: Date.now() - start
|
|
233
195
|
});
|
|
234
196
|
syncedCount += 1;
|
|
235
197
|
totalInstalled += result.installed.length;
|
|
@@ -242,7 +204,7 @@ export async function runSkillSync(input) {
|
|
|
242
204
|
installed: [],
|
|
243
205
|
skipped: [],
|
|
244
206
|
error: message,
|
|
245
|
-
durationMs: Date.now() - start
|
|
207
|
+
durationMs: Date.now() - start
|
|
246
208
|
});
|
|
247
209
|
failedCount += 1;
|
|
248
210
|
}
|
|
@@ -254,7 +216,7 @@ export async function runSkillSync(input) {
|
|
|
254
216
|
perPlatform,
|
|
255
217
|
syncedCount,
|
|
256
218
|
failedCount,
|
|
257
|
-
totalInstalled
|
|
219
|
+
totalInstalled
|
|
258
220
|
};
|
|
259
221
|
}
|
|
260
222
|
/**
|
|
@@ -268,5 +230,5 @@ export const __testing = {
|
|
|
268
230
|
services,
|
|
269
231
|
resetInstallerCache() {
|
|
270
232
|
cachedInstaller = null;
|
|
271
|
-
}
|
|
233
|
+
}
|
|
272
234
|
};
|