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
|
@@ -17,28 +17,26 @@
|
|
|
17
17
|
* on `category === 'lease'`; the schema is the same as every other
|
|
18
18
|
* observability event (Part 4.A reused the existing schema v1).
|
|
19
19
|
*/
|
|
20
|
-
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
21
|
-
import { join } from 'node:path';
|
|
22
20
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
23
21
|
import { addJsonOption, printResult } from '../cli-helpers.js';
|
|
24
22
|
import { findProjectRoot } from '../../services/config/config-safety.js';
|
|
25
23
|
import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
|
|
26
24
|
import { readObservabilityEvents } from '../../services/observability/observability-service.js';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
};
|
|
25
|
+
// Slice `b1-filesplit-campaign` (wave 3B): the options/kind/rate type layer,
|
|
26
|
+
// the EMPTY_COUNTS seed and the multi-session reader
|
|
27
|
+
// (`readAllSessionLeaseEvents`) moved VERBATIM to
|
|
28
|
+
// `./lease-metrics-commands-support.ts` so this file clears the 300 raw-line
|
|
29
|
+
// cap. `aggregateLeaseEvents` / `recomputeRate` stayed (they carry findings, and
|
|
30
|
+
// a new module must be clean outright). The two public names are re-exported
|
|
31
|
+
// from this path, so `./lease-stats-commands.ts` imports unchanged.
|
|
32
|
+
import { EMPTY_COUNTS, readAllSessionLeaseEvents } from './lease-metrics-commands-support.js';
|
|
33
|
+
export { readAllSessionLeaseEvents };
|
|
36
34
|
/** Compute per-kind counts + chronological tail from a list of events. */
|
|
37
35
|
function aggregateLeaseEvents(leaseEvents) {
|
|
38
36
|
const counts = { ...EMPTY_COUNTS };
|
|
39
37
|
const recent = [];
|
|
40
38
|
for (const ev of leaseEvents) {
|
|
41
|
-
const detail =
|
|
39
|
+
const detail = ev.detail ?? {};
|
|
42
40
|
const kind = typeof detail['kind'] === 'string' ? detail['kind'] : 'unknown';
|
|
43
41
|
const leaseId = typeof detail['leaseId'] === 'string' ? detail['leaseId'] : '';
|
|
44
42
|
const rid = typeof detail['rid'] === 'string' ? detail['rid'] : null;
|
|
@@ -55,7 +53,7 @@ export function recomputeRate(leaseEvents) {
|
|
|
55
53
|
// Count per-kind in one pass.
|
|
56
54
|
const counts = { ...EMPTY_COUNTS };
|
|
57
55
|
for (const ev of leaseEvents) {
|
|
58
|
-
const detail =
|
|
56
|
+
const detail = ev.detail ?? {};
|
|
59
57
|
const kind = typeof detail['kind'] === 'string' ? detail['kind'] : 'unknown';
|
|
60
58
|
if (kind in counts) {
|
|
61
59
|
counts[kind] = (counts[kind] ?? 0) + 1;
|
|
@@ -70,11 +68,11 @@ export function recomputeRate(leaseEvents) {
|
|
|
70
68
|
const firstTerminal = new Map();
|
|
71
69
|
const tsOf = (ev) => Date.parse(ev.ts);
|
|
72
70
|
const leaseIdOf = (ev) => {
|
|
73
|
-
const d =
|
|
71
|
+
const d = ev.detail ?? {};
|
|
74
72
|
return typeof d['leaseId'] === 'string' ? d['leaseId'] : '';
|
|
75
73
|
};
|
|
76
74
|
const kindOf = (ev) => {
|
|
77
|
-
const d =
|
|
75
|
+
const d = ev.detail ?? {};
|
|
78
76
|
return typeof d['kind'] === 'string' ? d['kind'] : 'unknown';
|
|
79
77
|
};
|
|
80
78
|
for (const ev of leaseEvents) {
|
|
@@ -101,10 +99,12 @@ export function recomputeRate(leaseEvents) {
|
|
|
101
99
|
lifetimes.push(dt);
|
|
102
100
|
}
|
|
103
101
|
lifetimes.sort((a, b) => a - b);
|
|
104
|
-
const avg = lifetimes.length === 0
|
|
102
|
+
const avg = lifetimes.length === 0
|
|
103
|
+
? null
|
|
104
|
+
: Math.round(lifetimes.reduce((s, v) => s + v, 0) / lifetimes.length);
|
|
105
105
|
const p99 = lifetimes.length === 0
|
|
106
106
|
? null
|
|
107
|
-
: lifetimes[Math.min(lifetimes.length - 1, Math.floor(lifetimes.length * 0.99))] ?? null;
|
|
107
|
+
: (lifetimes[Math.min(lifetimes.length - 1, Math.floor(lifetimes.length * 0.99))] ?? null);
|
|
108
108
|
return {
|
|
109
109
|
totalSpawn,
|
|
110
110
|
totalTerminal: totalRelease,
|
|
@@ -115,49 +115,6 @@ export function recomputeRate(leaseEvents) {
|
|
|
115
115
|
p99LifetimeMs: p99
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Part 5: enumerate every session under `.peaks/_runtime/` for a
|
|
120
|
-
* project root and aggregate their lease events. Sessions without
|
|
121
|
-
* a `metrics/slices.jsonl` are skipped silently (a clean project
|
|
122
|
-
* has no lease events to report; that's not an error).
|
|
123
|
-
*/
|
|
124
|
-
export function readAllSessionLeaseEvents(projectRoot) {
|
|
125
|
-
const runtimeDir = join(projectRoot, '.peaks', '_runtime');
|
|
126
|
-
if (!existsSync(runtimeDir))
|
|
127
|
-
return { sessions: [], missingSessions: 0 };
|
|
128
|
-
let entries;
|
|
129
|
-
try {
|
|
130
|
-
entries = readdirSync(runtimeDir);
|
|
131
|
-
}
|
|
132
|
-
catch {
|
|
133
|
-
return { sessions: [], missingSessions: 0 };
|
|
134
|
-
}
|
|
135
|
-
const sessions = [];
|
|
136
|
-
let missing = 0;
|
|
137
|
-
for (const sid of entries) {
|
|
138
|
-
const sessionDir = join(runtimeDir, sid);
|
|
139
|
-
try {
|
|
140
|
-
if (!statSync(sessionDir).isDirectory())
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
try {
|
|
147
|
-
const all = readObservabilityEvents(projectRoot, sid);
|
|
148
|
-
const leaseEvents = all.filter((e) => e.category === 'lease');
|
|
149
|
-
if (leaseEvents.length === 0) {
|
|
150
|
-
missing++;
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
sessions.push({ sessionId: sid, events: leaseEvents });
|
|
154
|
-
}
|
|
155
|
-
catch {
|
|
156
|
-
missing++;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return { sessions, missingSessions: missing };
|
|
160
|
-
}
|
|
161
118
|
export function registerLeaseMetricsCommand(parent, io) {
|
|
162
119
|
addJsonOption(parent
|
|
163
120
|
.command('lease-metrics')
|
|
@@ -197,7 +154,10 @@ export function registerLeaseMetricsCommand(parent, io) {
|
|
|
197
154
|
return;
|
|
198
155
|
}
|
|
199
156
|
// Single-session path (the Part 4.A default).
|
|
200
|
-
const sessionId = options.session ??
|
|
157
|
+
const sessionId = options.session ??
|
|
158
|
+
process.env.PEAKS_SESSION_ID ??
|
|
159
|
+
getCurrentSessionId(projectRoot) ??
|
|
160
|
+
'unknown-sid';
|
|
201
161
|
const allEvents = readObservabilityEvents(projectRoot, sessionId);
|
|
202
162
|
const leaseEvents = allEvents.filter((e) => e.category === 'lease');
|
|
203
163
|
const { counts, tail } = aggregateLeaseEvents(leaseEvents);
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* `lease-metrics --all-sessions` is the input, `lease-stats`
|
|
31
31
|
* is the answer.
|
|
32
32
|
*/
|
|
33
|
-
import { Command } from 'commander';
|
|
33
|
+
import type { Command } from 'commander';
|
|
34
34
|
import { type ProgramIO } from '../cli-helpers.js';
|
|
35
35
|
import { type RateStats } from './lease-metrics-commands.js';
|
|
36
36
|
type RidCount = {
|
|
@@ -74,7 +74,10 @@ export function computeLeaseStats(args) {
|
|
|
74
74
|
.map(([role, count]) => ({ role, count }))
|
|
75
75
|
.sort((a, b) => b.count - a.count),
|
|
76
76
|
perIsolation: Array.from(isoTally.entries())
|
|
77
|
-
.map(([isolation, count]) => ({
|
|
77
|
+
.map(([isolation, count]) => ({
|
|
78
|
+
isolation: isolation,
|
|
79
|
+
count
|
|
80
|
+
}))
|
|
78
81
|
.sort((a, b) => b.count - a.count)
|
|
79
82
|
};
|
|
80
83
|
}
|
|
@@ -88,19 +91,19 @@ export function registerLeaseStatsCommand(parent, io) {
|
|
|
88
91
|
const { sessions } = readAllSessionLeaseEvents(projectRoot);
|
|
89
92
|
const eventsBySession = sessions.map((s) => ({
|
|
90
93
|
sessionId: s.sessionId,
|
|
91
|
-
events: s.events.map((e) => ({ detail:
|
|
94
|
+
events: s.events.map((e) => ({ detail: e.detail ?? {} }))
|
|
92
95
|
}));
|
|
93
96
|
const stats = computeLeaseStats({ projectRoot, eventsBySession });
|
|
94
97
|
printResult(io, ok('lease.stats', stats, [], [
|
|
95
98
|
`${stats.totalLeaseEvents} lease events across ${stats.sessionCount} session(s); ${stats.rate.estimatedActive} estimated active, ${stats.rate.estimatedLeaked} estimated leaked.`,
|
|
96
|
-
stats.perRid.length > 0
|
|
99
|
+
stats.perRid.length > 0
|
|
100
|
+
? `Top rid: ${stats.perRid[0]?.rid} (${stats.perRid[0]?.count} events).`
|
|
101
|
+
: '',
|
|
97
102
|
'Pipe to `jq` or paste into a dashboard for visual rendering.'
|
|
98
103
|
].filter(Boolean)), options.json);
|
|
99
104
|
}
|
|
100
105
|
catch (err) {
|
|
101
|
-
printResult(io, fail('lease.stats', 'STATS_READ_FAILED', err instanceof Error ? err.message : String(err), { projectRoot: options.project }, [
|
|
102
|
-
'Verify the project root is correct.'
|
|
103
|
-
]), options.json);
|
|
106
|
+
printResult(io, fail('lease.stats', 'STATS_READ_FAILED', err instanceof Error ? err.message : String(err), { projectRoot: options.project }, ['Verify the project root is correct.']), options.json);
|
|
104
107
|
process.exitCode = 1;
|
|
105
108
|
}
|
|
106
109
|
});
|
|
@@ -5,9 +5,15 @@
|
|
|
5
5
|
* incremental-first / no-touch-stockcode options to the CLI surface.
|
|
6
6
|
*
|
|
7
7
|
* - `peaks lint baseline` — one-shot full-repo scan; writes
|
|
8
|
-
* `.peaks/lint/baseline.json
|
|
9
|
-
*
|
|
10
|
-
* is project
|
|
8
|
+
* `.peaks/lint/baseline.json`. Each project regenerates its own
|
|
9
|
+
* baseline (the file is project-aware, D6 binding). Whether that
|
|
10
|
+
* file is committed is the project's choice, and this repository
|
|
11
|
+
* commits it — `git ls-files` matches it here and `git check-ignore`
|
|
12
|
+
* reports it is NOT ignored (measured on this checkout). It is
|
|
13
|
+
* tracked deliberately, as the reference fixture the `baseline`
|
|
14
|
+
* subcommand's own nextAction describes. `file` keys are written
|
|
15
|
+
* repo-relative (`repoRelativeKey`), so a committed baseline stays
|
|
16
|
+
* valid on a different checkout — an absolute key would not.
|
|
11
17
|
* - `peaks lint check` — default; diffOnly=true + baselineFile
|
|
12
18
|
* waiver + redLineMode='baseline-aware'. This is the LLM-facing
|
|
13
19
|
* Gate B5 entry point.
|
|
@@ -2,8 +2,10 @@ import { mkdirSync, writeFileSync } from 'node:fs';
|
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
3
|
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
4
4
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
5
|
+
import { CLI_VERSION } from 'peaks-loop-shared/version';
|
|
6
|
+
import { repoRelativeKey } from '../../shared/path-utils.js';
|
|
5
7
|
import { detectEslint } from '../../services/lint/detect-eslint.js';
|
|
6
|
-
import { runEslint } from '../../services/lint/eslint-runner.js';
|
|
8
|
+
import { resolveProjectRoot, runEslint } from '../../services/lint/eslint-runner.js';
|
|
7
9
|
function parseTimeoutMs(value) {
|
|
8
10
|
if (value === undefined)
|
|
9
11
|
return undefined;
|
|
@@ -13,12 +15,15 @@ function parseTimeoutMs(value) {
|
|
|
13
15
|
}
|
|
14
16
|
return parsed;
|
|
15
17
|
}
|
|
16
|
-
function writeBaselineJson(
|
|
17
|
-
const fullPath = join(
|
|
18
|
+
function writeBaselineJson(projectRoot, baselineFile, result) {
|
|
19
|
+
const fullPath = join(projectRoot, baselineFile);
|
|
18
20
|
mkdirSync(dirname(fullPath), { recursive: true });
|
|
21
|
+
// Write the SAME key the reader matches on. Writing ESLint's absolute
|
|
22
|
+
// `filePath` here is what re-rooted the file on whichever machine ran
|
|
23
|
+
// the command, so the next checkout inherited keys it could not match.
|
|
19
24
|
const violations = result.findings.map((f) => ({
|
|
20
25
|
ruleId: f.ruleId,
|
|
21
|
-
file: f.filePath,
|
|
26
|
+
file: repoRelativeKey(f.filePath, projectRoot),
|
|
22
27
|
line: f.line,
|
|
23
28
|
severity: f.severity,
|
|
24
29
|
message: f.message
|
|
@@ -26,7 +31,7 @@ function writeBaselineJson(cwd, baselineFile, result) {
|
|
|
26
31
|
const payload = {
|
|
27
32
|
version: 1,
|
|
28
33
|
generatedAt: new Date().toISOString(),
|
|
29
|
-
toolVersion:
|
|
34
|
+
toolVersion: `peaks-loop-${CLI_VERSION}`,
|
|
30
35
|
violations
|
|
31
36
|
};
|
|
32
37
|
writeFileSync(fullPath, JSON.stringify(payload, null, 2), 'utf8');
|
|
@@ -116,7 +121,7 @@ export function registerLintCommands(program, io) {
|
|
|
116
121
|
});
|
|
117
122
|
addJsonOption(lint
|
|
118
123
|
.command('baseline')
|
|
119
|
-
.description('One-shot full-repo scan; writes .peaks/lint/baseline.json (project-level
|
|
124
|
+
.description('One-shot full-repo scan; writes .peaks/lint/baseline.json with repo-relative file keys (project-level; this repository commits it as a reference fixture).')
|
|
120
125
|
.option('--scope <path>', 'lint scope (default: project root)')
|
|
121
126
|
.option('--config <path>', 'explicit ESLint config path')
|
|
122
127
|
.option('--timeout-ms <ms>', 'subprocess timeout in milliseconds (default 60000)')
|
|
@@ -139,8 +144,10 @@ export function registerLintCommands(program, io) {
|
|
|
139
144
|
};
|
|
140
145
|
const result = runEslint(runOptions);
|
|
141
146
|
const baselineFile = options.baselineFile ?? '.peaks/lint/baseline.json';
|
|
142
|
-
const written = writeBaselineJson(cwd, baselineFile, result);
|
|
143
|
-
const envelope = ok('code.lint.baseline', { state: result.state, findings: result.findings.length, ...written }, [], [
|
|
147
|
+
const written = writeBaselineJson(resolveProjectRoot(cwd), baselineFile, result);
|
|
148
|
+
const envelope = ok('code.lint.baseline', { state: result.state, findings: result.findings.length, ...written }, [], [
|
|
149
|
+
'Commit baseline.json (or .gitignore it). Peak-loop ships its own baseline as a reference fixture.'
|
|
150
|
+
]);
|
|
144
151
|
printResult(io, envelope, options.json);
|
|
145
152
|
});
|
|
146
153
|
}
|
|
@@ -12,6 +12,6 @@
|
|
|
12
12
|
* `src/services/log/log-commands-service.ts`. That service is
|
|
13
13
|
* already covered by `tests/unit/log/log-commands.test.ts`.
|
|
14
14
|
*/
|
|
15
|
-
import { Command } from 'commander';
|
|
15
|
+
import type { Command } from 'commander';
|
|
16
16
|
import { type ProgramIO } from '../cli-helpers.js';
|
|
17
17
|
export declare function registerLogCommands(program: Command, io: ProgramIO): void;
|
|
@@ -23,7 +23,7 @@ export function registerLogCommands(program, io) {
|
|
|
23
23
|
.description('Inspect the peaks-loop JSONL log directory (default: ~/.peaks/logs/)');
|
|
24
24
|
addJsonOption(log
|
|
25
25
|
.command('tail')
|
|
26
|
-
.description(
|
|
26
|
+
.description("Print the last 50 lines of today's peaks-loop log (JSONL). Pass --lines N to change the count, --date YYYY-MM-DD to read a different day, --batch <id> to filter by batchId, --json to print a JSON envelope.")
|
|
27
27
|
.option('--lines <n>', 'number of lines to show (default 50)', (value) => Number(value))
|
|
28
28
|
.option('--date <YYYY-MM-DD>', 'read the log for this UTC date instead of today (PRD AC2: PEAKS_LOG_DATE_OVERRIDE)')
|
|
29
29
|
// Slice 2026-06-23-audit-4th #B2: --batch filter for cross-run
|
|
@@ -42,18 +42,20 @@ export function registerLogCommands(program, io) {
|
|
|
42
42
|
file: result.file,
|
|
43
43
|
total: result.total,
|
|
44
44
|
lines: safeLines,
|
|
45
|
-
...(options.batch !== undefined
|
|
45
|
+
...(options.batch !== undefined
|
|
46
|
+
? { batch: options.batch, batchMatches: result.batchMatches ?? 0 }
|
|
47
|
+
: {}),
|
|
46
48
|
entries: result.entries
|
|
47
49
|
}, []), options.json);
|
|
48
50
|
}
|
|
49
51
|
catch (error) {
|
|
50
|
-
printResult(io, fail('log.tail', 'LOG_TAIL_FAILED', getErrorMessage(error), {}, [
|
|
52
|
+
printResult(io, fail('log.tail', 'LOG_TAIL_FAILED', getErrorMessage(error), {}, [
|
|
53
|
+
'Check `peaks log ls` to see available log files'
|
|
54
|
+
]), options.json);
|
|
51
55
|
process.exitCode = 1;
|
|
52
56
|
}
|
|
53
57
|
});
|
|
54
|
-
addJsonOption(log
|
|
55
|
-
.command('ls')
|
|
56
|
-
.description('List peaks-loop-*.log files in ~/.peaks/logs/ (newest first).')).action((options) => {
|
|
58
|
+
addJsonOption(log.command('ls').description('List peaks-loop-*.log files in ~/.peaks/logs/ (newest first).')).action((options) => {
|
|
57
59
|
const files = listLogFiles();
|
|
58
60
|
printResult(io, ok('log.ls', {
|
|
59
61
|
logDir: join(homedir(), '.peaks', 'logs'),
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
* M7 only ADDs export / import — it does not modify the existing
|
|
23
23
|
* surface.
|
|
24
24
|
*/
|
|
25
|
-
import { Command } from 'commander';
|
|
25
|
+
import type { Command } from 'commander';
|
|
26
26
|
import { type ProgramIO } from '../cli-helpers.js';
|
|
27
27
|
export declare function registerLoopCommands(program: Command, io: ProgramIO): void;
|
|
@@ -28,8 +28,8 @@ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
|
28
28
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
29
29
|
import { findProjectRoot } from '../../services/config/config-safety.js';
|
|
30
30
|
import { openStateDb } from '../../services/skillhub/sqlite-store.js';
|
|
31
|
-
import { writeBundle, BundleNotShareableError, BundleAssetNotFoundError
|
|
32
|
-
import { readBundle, BundleMajorVersionMismatchError, BundleSchemaVersionsMismatchError, BundleImportToStableForbiddenError, BundleMalformedError
|
|
31
|
+
import { writeBundle, BundleNotShareableError, BundleAssetNotFoundError } from '../../services/share/bundle-writer.js';
|
|
32
|
+
import { readBundle, BundleMajorVersionMismatchError, BundleSchemaVersionsMismatchError, BundleImportToStableForbiddenError, BundleMalformedError } from '../../services/share/bundle-reader.js';
|
|
33
33
|
export function registerLoopCommands(program, io) {
|
|
34
34
|
// 14.5 peaks goal compose — registered as a TOP-LEVEL command (not under
|
|
35
35
|
// `peaks loop`) because IDE adapters expose it as `goalCommand`.
|
|
@@ -39,7 +39,7 @@ export function registerLoopCommands(program, io) {
|
|
|
39
39
|
.command('goal')
|
|
40
40
|
.description('14.5: compose an autonomous goal (returns the goal envelope that the LLM-side UX layer feeds to peaks sub-agent dispatch)')
|
|
41
41
|
.requiredOption('--project <path>', 'target project root')
|
|
42
|
-
.requiredOption('--goal <text>', 'the high-level goal to compose')).action(
|
|
42
|
+
.requiredOption('--goal <text>', 'the high-level goal to compose')).action((options) => {
|
|
43
43
|
try {
|
|
44
44
|
printResult(io, ok('goal.compose', {
|
|
45
45
|
project: options.project,
|
|
@@ -47,10 +47,10 @@ export function registerLoopCommands(program, io) {
|
|
|
47
47
|
status: 'placeholder',
|
|
48
48
|
nextSteps: [
|
|
49
49
|
'The composed goal is consumed by peaks sub-agent dispatch.',
|
|
50
|
-
'The hermes + openclaw IDE adapters (Slice #0.7) surface this as a goalCommand.'
|
|
51
|
-
]
|
|
50
|
+
'The hermes + openclaw IDE adapters (Slice #0.7) surface this as a goalCommand.'
|
|
51
|
+
]
|
|
52
52
|
}, [], [
|
|
53
|
-
'goal.compose is a thin facade; the LLM-side UX layer decomposes the goal into sub-agent tasks.'
|
|
53
|
+
'goal.compose is a thin facade; the LLM-side UX layer decomposes the goal into sub-agent tasks.'
|
|
54
54
|
]), options.json);
|
|
55
55
|
}
|
|
56
56
|
catch (error) {
|
|
@@ -59,9 +59,12 @@ export function registerLoopCommands(program, io) {
|
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
61
|
// peaks loop *
|
|
62
|
-
const loop = program
|
|
62
|
+
const loop = program
|
|
63
|
+
.command('loop')
|
|
64
|
+
.description('Slice #14: L4 Agent Loop sub-features (distill / preflight / detect-pattern / check-consistency)');
|
|
63
65
|
// 14.1 distill
|
|
64
|
-
addJsonOption(loop
|
|
66
|
+
addJsonOption(loop
|
|
67
|
+
.command('distill')
|
|
65
68
|
.description('14.1: distill patterns from past sessions into .peaks/memory/ (delegates to peaks memory extract)')
|
|
66
69
|
.requiredOption('--project <path>', 'target project root')
|
|
67
70
|
.option('--apply', 'write extracted memories to .peaks/memory/ (default: dry-run preview)', false)).action(async (options) => {
|
|
@@ -70,22 +73,24 @@ export function registerLoopCommands(program, io) {
|
|
|
70
73
|
// Delegate to the existing peaks memory extract CLI via dynamic
|
|
71
74
|
// import (avoids circular); the LLM-side UX layer composes the
|
|
72
75
|
// two commands.
|
|
73
|
-
const { execFileSync } = await import('node:child_process');
|
|
76
|
+
const { execFileSync } = (await import('node:child_process'));
|
|
74
77
|
const args = ['memory', 'extract', '--project', options.project];
|
|
75
78
|
if (apply)
|
|
76
79
|
args.push('--apply');
|
|
77
80
|
const stdout = execFileSync('node', ['bin/peaks.js', ...args], {
|
|
78
81
|
cwd: options.project,
|
|
79
82
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
80
|
-
windowsHide: true
|
|
83
|
+
windowsHide: true
|
|
81
84
|
}).toString('utf-8');
|
|
82
85
|
printResult(io, ok('loop.distill', {
|
|
83
86
|
project: options.project,
|
|
84
87
|
apply,
|
|
85
|
-
delegateStdout: stdout.slice(0, 200)
|
|
88
|
+
delegateStdout: stdout.slice(0, 200)
|
|
86
89
|
}, [], [
|
|
87
|
-
apply
|
|
88
|
-
|
|
90
|
+
apply
|
|
91
|
+
? 'peaks memory extract --apply was invoked'
|
|
92
|
+
: 'peaks memory extract dry-run was invoked',
|
|
93
|
+
'A future slice will inline the memory extract (not via execFileSync).'
|
|
89
94
|
]), options.json);
|
|
90
95
|
}
|
|
91
96
|
catch (error) {
|
|
@@ -94,49 +99,50 @@ export function registerLoopCommands(program, io) {
|
|
|
94
99
|
}
|
|
95
100
|
});
|
|
96
101
|
// 14.2 preflight
|
|
97
|
-
addJsonOption(loop
|
|
102
|
+
addJsonOption(loop
|
|
103
|
+
.command('preflight')
|
|
98
104
|
.description('14.2: pre-run sanity checks (placeholder; future slice runs peaks doctor + peaks audit before each loop iter)')
|
|
99
|
-
.requiredOption('--project <path>', 'target project root')).action(
|
|
105
|
+
.requiredOption('--project <path>', 'target project root')).action((options) => {
|
|
100
106
|
printResult(io, ok('loop.preflight', {
|
|
101
107
|
project: options.project,
|
|
102
108
|
status: 'placeholder',
|
|
103
109
|
nextSteps: [
|
|
104
110
|
'For each L4 loop iteration, call peaks doctor + peaks audit to surface regressions.',
|
|
105
|
-
'A future slice will inline the preflight checks (not just placeholder).'
|
|
106
|
-
]
|
|
111
|
+
'A future slice will inline the preflight checks (not just placeholder).'
|
|
112
|
+
]
|
|
107
113
|
}, [], [
|
|
108
|
-
'loop.preflight is a thin facade; the LLM-side UX layer composes peaks doctor + peaks audit.'
|
|
114
|
+
'loop.preflight is a thin facade; the LLM-side UX layer composes peaks doctor + peaks audit.'
|
|
109
115
|
]), options.json);
|
|
110
116
|
});
|
|
111
117
|
// 14.3 detect-pattern
|
|
112
|
-
addJsonOption(loop
|
|
118
|
+
addJsonOption(loop
|
|
119
|
+
.command('detect-pattern')
|
|
113
120
|
.description('14.3: detect repeating patterns across past sessions (placeholder; future slice uses peaks retrospective search)')
|
|
114
|
-
.requiredOption('--project <path>', 'target project root')).action(
|
|
121
|
+
.requiredOption('--project <path>', 'target project root')).action((options) => {
|
|
115
122
|
printResult(io, ok('loop.detect-pattern', {
|
|
116
123
|
project: options.project,
|
|
117
124
|
status: 'placeholder',
|
|
118
125
|
nextSteps: [
|
|
119
126
|
'Run peaks retrospective search --limit 50 to surface high-frequency patterns.',
|
|
120
|
-
'A future slice will rank by frequency + LLM confidence.'
|
|
121
|
-
]
|
|
127
|
+
'A future slice will rank by frequency + LLM confidence.'
|
|
128
|
+
]
|
|
122
129
|
}, [], [
|
|
123
|
-
'loop.detect-pattern is a thin facade; the LLM-side UX layer composes peaks retrospective search.'
|
|
130
|
+
'loop.detect-pattern is a thin facade; the LLM-side UX layer composes peaks retrospective search.'
|
|
124
131
|
]), options.json);
|
|
125
132
|
});
|
|
126
133
|
// 14.4 check-consistency
|
|
127
|
-
addJsonOption(loop
|
|
134
|
+
addJsonOption(loop
|
|
135
|
+
.command('check-consistency')
|
|
128
136
|
.description('14.4: verify state consistency (placeholder; future slice compares .peaks/_runtime across sessions)')
|
|
129
|
-
.requiredOption('--project <path>', 'target project root')).action(
|
|
137
|
+
.requiredOption('--project <path>', 'target project root')).action((options) => {
|
|
130
138
|
printResult(io, ok('loop.check-consistency', {
|
|
131
139
|
project: options.project,
|
|
132
140
|
status: 'placeholder',
|
|
133
141
|
nextSteps: [
|
|
134
142
|
'Compare .peaks/_runtime/<sid>/session.json across recent sessions for drift.',
|
|
135
|
-
'A future slice will report drift with severity (warn / fail).'
|
|
136
|
-
]
|
|
137
|
-
}, [], [
|
|
138
|
-
'loop.check-consistency is a thin facade; the LLM-side UX layer composes the drift scan.',
|
|
139
|
-
]), options.json);
|
|
143
|
+
'A future slice will report drift with severity (warn / fail).'
|
|
144
|
+
]
|
|
145
|
+
}, [], ['loop.check-consistency is a thin facade; the LLM-side UX layer composes the drift scan.']), options.json);
|
|
140
146
|
});
|
|
141
147
|
// ---------- M7: peaks loop export / import (spec §7A.2) ----------
|
|
142
148
|
const LOOP_EXPORT_IMPORT_OPTS = (cmd) => cmd
|
|
@@ -144,7 +150,7 @@ export function registerLoopCommands(program, io) {
|
|
|
144
150
|
.option('--json', 'print machine-readable JSON envelope');
|
|
145
151
|
LOOP_EXPORT_IMPORT_OPTS(loop
|
|
146
152
|
.command('export')
|
|
147
|
-
.description(
|
|
153
|
+
.description('M7: export a loop_release as a peaks.bundle/1 tarball (spec §7A.2 / §10 RL-9). Refuses to export when shareable=false.')
|
|
148
154
|
.requiredOption('--loop <id>', 'loop_release id (kebab-case)')
|
|
149
155
|
.requiredOption('--out <path>', 'output .tar.gz path')).action((options) => {
|
|
150
156
|
const asJson = options.json === true;
|
|
@@ -160,15 +166,15 @@ export function registerLoopCommands(program, io) {
|
|
|
160
166
|
blobsDir: join(projectRoot, '.peaks', 'blobs'),
|
|
161
167
|
kind: 'loop',
|
|
162
168
|
id: options.loop,
|
|
163
|
-
outPath: options.out
|
|
169
|
+
outPath: options.out
|
|
164
170
|
});
|
|
165
171
|
printResult(io, ok('loop.export', {
|
|
166
172
|
outPath: result.outPath,
|
|
167
173
|
kind: result.kind,
|
|
168
174
|
assetId: result.assetId,
|
|
169
|
-
importedAs: 'candidate'
|
|
175
|
+
importedAs: 'candidate'
|
|
170
176
|
}, [], [
|
|
171
|
-
`Receiver must run \`peaks loop import --in ${result.outPath}\` to land this bundle, then run an independent evolution_evaluation before any promote
|
|
177
|
+
`Receiver must run \`peaks loop import --in ${result.outPath}\` to land this bundle, then run an independent evolution_evaluation before any promote.`
|
|
172
178
|
]), asJson);
|
|
173
179
|
}
|
|
174
180
|
finally {
|
|
@@ -177,16 +183,12 @@ export function registerLoopCommands(program, io) {
|
|
|
177
183
|
}
|
|
178
184
|
catch (error) {
|
|
179
185
|
if (error instanceof BundleNotShareableError) {
|
|
180
|
-
printResult(io, fail('loop.export', error.code, error.message, { ok: false, loop: options.loop }, [
|
|
181
|
-
'Set shareable=true on the loop_release row, or share via desktop_visible=false.',
|
|
182
|
-
]), asJson);
|
|
186
|
+
printResult(io, fail('loop.export', error.code, error.message, { ok: false, loop: options.loop }, ['Set shareable=true on the loop_release row, or share via desktop_visible=false.']), asJson);
|
|
183
187
|
process.exitCode = 1;
|
|
184
188
|
return;
|
|
185
189
|
}
|
|
186
190
|
if (error instanceof BundleAssetNotFoundError) {
|
|
187
|
-
printResult(io, fail('loop.export', error.code, error.message, { ok: false, loop: options.loop }, [
|
|
188
|
-
'Verify the loop id with `peaks asset status --loop <id>`.',
|
|
189
|
-
]), asJson);
|
|
191
|
+
printResult(io, fail('loop.export', error.code, error.message, { ok: false, loop: options.loop }, ['Verify the loop id with `peaks asset status --loop <id>`.']), asJson);
|
|
190
192
|
process.exitCode = 1;
|
|
191
193
|
return;
|
|
192
194
|
}
|
|
@@ -196,7 +198,7 @@ export function registerLoopCommands(program, io) {
|
|
|
196
198
|
});
|
|
197
199
|
LOOP_EXPORT_IMPORT_OPTS(loop
|
|
198
200
|
.command('import')
|
|
199
|
-
.description(
|
|
201
|
+
.description('M7: import a peaks.bundle/1 tarball. Lands as candidate only — promotion requires an evolution_evaluation row (spec §7A.2 / §10 RL-9 / AC-25 / AC-26).')
|
|
200
202
|
.requiredOption('--in <path>', 'input .tar.gz path')
|
|
201
203
|
.option('--as <id>', 'optional rename for the loop id when landing')).action((options) => {
|
|
202
204
|
const asJson = options.json === true;
|
|
@@ -211,16 +213,16 @@ export function registerLoopCommands(program, io) {
|
|
|
211
213
|
db,
|
|
212
214
|
blobsDir: join(projectRoot, '.peaks', 'blobs'),
|
|
213
215
|
inPath: options.in,
|
|
214
|
-
...(options.as !== undefined ? { asName: options.as } : {})
|
|
216
|
+
...(options.as !== undefined ? { asName: options.as } : {})
|
|
215
217
|
});
|
|
216
218
|
printResult(io, ok('loop.import', {
|
|
217
219
|
assetId: result.assetId,
|
|
218
220
|
kind: result.kind,
|
|
219
221
|
importedAs: result.importedAs,
|
|
220
222
|
warnings: result.warnings,
|
|
221
|
-
evidenceBriefCount: result.evidenceBriefCount
|
|
223
|
+
evidenceBriefCount: result.evidenceBriefCount
|
|
222
224
|
}, result.warnings, [
|
|
223
|
-
`Run an independent evaluation against this release before promoting; peaks loop promote refuses without an evolution_evaluation row
|
|
225
|
+
`Run an independent evaluation against this release before promoting; peaks loop promote refuses without an evolution_evaluation row.`
|
|
224
226
|
]), asJson);
|
|
225
227
|
}
|
|
226
228
|
finally {
|
|
@@ -230,29 +232,27 @@ export function registerLoopCommands(program, io) {
|
|
|
230
232
|
catch (error) {
|
|
231
233
|
if (error instanceof BundleMajorVersionMismatchError) {
|
|
232
234
|
printResult(io, fail('loop.import', error.code, error.message, { ok: false, receivedMajor: error.receivedMajor }, [
|
|
233
|
-
'Use the matching peaks.bundle/<major> reader; this peaks build only supports major=1.'
|
|
235
|
+
'Use the matching peaks.bundle/<major> reader; this peaks build only supports major=1.'
|
|
234
236
|
]), asJson);
|
|
235
237
|
process.exitCode = 1;
|
|
236
238
|
return;
|
|
237
239
|
}
|
|
238
240
|
if (error instanceof BundleSchemaVersionsMismatchError) {
|
|
239
241
|
printResult(io, fail('loop.import', error.code, error.message, { ok: false }, [
|
|
240
|
-
'Source bundle did not declare the canonical schema versions; refuse the bundle.'
|
|
242
|
+
'Source bundle did not declare the canonical schema versions; refuse the bundle.'
|
|
241
243
|
]), asJson);
|
|
242
244
|
process.exitCode = 1;
|
|
243
245
|
return;
|
|
244
246
|
}
|
|
245
247
|
if (error instanceof BundleImportToStableForbiddenError) {
|
|
246
248
|
printResult(io, fail('loop.import', error.code, error.message, { ok: false }, [
|
|
247
|
-
'Bundles always land as candidate; promotion to stable requires an evolution_evaluation row (AC-26).'
|
|
249
|
+
'Bundles always land as candidate; promotion to stable requires an evolution_evaluation row (AC-26).'
|
|
248
250
|
]), asJson);
|
|
249
251
|
process.exitCode = 1;
|
|
250
252
|
return;
|
|
251
253
|
}
|
|
252
254
|
if (error instanceof BundleMalformedError) {
|
|
253
|
-
printResult(io, fail('loop.import', error.code, error.message, { ok: false, inPath: options.in }, [
|
|
254
|
-
'Re-export from the source via `peaks loop export`.',
|
|
255
|
-
]), asJson);
|
|
255
|
+
printResult(io, fail('loop.import', error.code, error.message, { ok: false, inPath: options.in }, ['Re-export from the source via `peaks loop export`.']), asJson);
|
|
256
256
|
process.exitCode = 1;
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
* Karpathy §2: separate file from workflow-commands.ts to stay under
|
|
16
16
|
* the 800-line budget.
|
|
17
17
|
*/
|
|
18
|
-
import { Command } from 'commander';
|
|
18
|
+
import type { Command } from 'commander';
|
|
19
19
|
import { type ProgramIO } from '../cli-helpers.js';
|
|
20
20
|
export declare function registerWorkflowEvalCommands(program: Command, io: ProgramIO): void;
|