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
|
@@ -4,7 +4,7 @@ import { fail, ok, getErrorMessage } from 'peaks-loop-shared/result';
|
|
|
4
4
|
import { addJsonOption, printResult } from '../cli-helpers.js';
|
|
5
5
|
import { writeCheckpoint } from '../../services/session/session-checkpoint-service.js';
|
|
6
6
|
import { getSessionIdCanonical } from '../../services/session/session-manager.js';
|
|
7
|
-
import { computeWindowCalibration, readCompactHistory, summarizeCompactHistory
|
|
7
|
+
import { computeWindowCalibration, readCompactHistory, summarizeCompactHistory } from '../../services/compact-history/compact-history-service.js';
|
|
8
8
|
import { readHarnessWindowState, resolveHarnessWindowLocation } from '../../services/context/auto-compact-reader.js';
|
|
9
9
|
import { disableHarnessWindowSync, reenableHarnessWindowSync, resetHarnessWindow } from '../../services/context/harness-window-config.js';
|
|
10
10
|
import { buildRecommendEnvelopePure, dryRunCompact, suggestCompact } from '../../services/compact/suggest-service.js';
|
|
@@ -47,7 +47,8 @@ async function readHookPayload() {
|
|
|
47
47
|
try {
|
|
48
48
|
return JSON.parse(raw);
|
|
49
49
|
}
|
|
50
|
-
catch {
|
|
50
|
+
catch {
|
|
51
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
51
52
|
return null;
|
|
52
53
|
}
|
|
53
54
|
}
|
|
@@ -117,7 +118,9 @@ export function registerCompactCommands(program, io) {
|
|
|
117
118
|
]), options.json);
|
|
118
119
|
}
|
|
119
120
|
catch (error) {
|
|
120
|
-
printResult(io, fail('compact.suggest', 'COMPACT_SUGGEST_FAILED', getErrorMessage(error), {}, [
|
|
121
|
+
printResult(io, fail('compact.suggest', 'COMPACT_SUGGEST_FAILED', getErrorMessage(error), {}, [
|
|
122
|
+
'Verify project root and session binding before retrying'
|
|
123
|
+
]), options.json);
|
|
121
124
|
process.exitCode = 1;
|
|
122
125
|
}
|
|
123
126
|
});
|
|
@@ -151,7 +154,11 @@ export function registerCompactCommands(program, io) {
|
|
|
151
154
|
rationale: envelope.rationale,
|
|
152
155
|
suggestedMessage: envelope.suggestedMessage,
|
|
153
156
|
notInTable: lookup.notInTable
|
|
154
|
-
}, lookup.notInTable
|
|
157
|
+
}, lookup.notInTable
|
|
158
|
+
? [
|
|
159
|
+
`Transition ${options.from} → ${options.to} is not in the strategic-compact table; defaulting to severity=no.`
|
|
160
|
+
]
|
|
161
|
+
: []), options.json);
|
|
155
162
|
}
|
|
156
163
|
catch (error) {
|
|
157
164
|
printResult(io, fail('compact.recommend', 'COMPACT_RECOMMEND_FAILED', getErrorMessage(error), { from: options.from, to: options.to }, ['Verify the phase pair against the documented transitions']), options.json);
|
|
@@ -224,7 +231,9 @@ export function registerCompactCommands(program, io) {
|
|
|
224
231
|
]), options.json);
|
|
225
232
|
}
|
|
226
233
|
catch (error) {
|
|
227
|
-
printResult(io, fail('compact.dry-run', 'COMPACT_DRY_RUN_FAILED', getErrorMessage(error), {}, [
|
|
234
|
+
printResult(io, fail('compact.dry-run', 'COMPACT_DRY_RUN_FAILED', getErrorMessage(error), {}, [
|
|
235
|
+
'Verify project root, session binding, and phase pair before retrying'
|
|
236
|
+
]), options.json);
|
|
228
237
|
process.exitCode = 1;
|
|
229
238
|
}
|
|
230
239
|
});
|
|
@@ -234,7 +243,7 @@ export function registerCompactCommands(program, io) {
|
|
|
234
243
|
addJsonOption(compact
|
|
235
244
|
.command('force')
|
|
236
245
|
.description('Write a pre-compact checkpoint via `peaks session checkpoint --reason context-fill`. ' +
|
|
237
|
-
|
|
246
|
+
"The IDE-side `/compact` is still the LLM's call; this primitive guarantees " +
|
|
238
247
|
'the pre-compact state is persisted. NO sleep, NO wait for IDE response.')
|
|
239
248
|
.option('--reason <text>', 'human-readable reason for the pre-compact checkpoint', 'pre-force-compact')
|
|
240
249
|
.option('--project <path>', 'project root (defaults to git root or cwd)')
|
|
@@ -284,13 +293,15 @@ export function registerCompactCommands(program, io) {
|
|
|
284
293
|
sessionId: result.sessionId,
|
|
285
294
|
createdAt: result.createdAt,
|
|
286
295
|
totalRetained: result.totalRetained,
|
|
287
|
-
message:
|
|
296
|
+
message: "Pre-compact checkpoint written. The IDE-side /compact is still the LLM's call; this CLI does NOT invoke the IDE slash command."
|
|
288
297
|
}, [], [
|
|
289
298
|
'After the LLM fires the IDE-side /compact, call `peaks compact survival` to see what to persist before the next compact.'
|
|
290
299
|
]), options.json);
|
|
291
300
|
}
|
|
292
301
|
catch (error) {
|
|
293
|
-
printResult(io, fail('compact.force', 'COMPACT_FORCE_FAILED', getErrorMessage(error), {}, [
|
|
302
|
+
printResult(io, fail('compact.force', 'COMPACT_FORCE_FAILED', getErrorMessage(error), {}, [
|
|
303
|
+
'Verify the project path is writable and a session is bound'
|
|
304
|
+
]), options.json);
|
|
294
305
|
process.exitCode = 1;
|
|
295
306
|
}
|
|
296
307
|
});
|
|
@@ -312,13 +323,16 @@ export function registerCompactCommands(program, io) {
|
|
|
312
323
|
process.exitCode = 1;
|
|
313
324
|
return;
|
|
314
325
|
}
|
|
315
|
-
const result = readCompactHistory({
|
|
326
|
+
const result = readCompactHistory({
|
|
327
|
+
projectRoot: project,
|
|
328
|
+
sessionId: session.sid
|
|
329
|
+
});
|
|
316
330
|
if (result.kind === 'file-missing') {
|
|
317
331
|
printResult(io, ok('compact.history', {
|
|
318
332
|
sessionId: session.sid,
|
|
319
333
|
totalCompacts: 0,
|
|
320
334
|
message: 'No compact-history.jsonl yet; auto-compact has not fired in this session.',
|
|
321
|
-
historyPath: result.path
|
|
335
|
+
historyPath: result.path
|
|
322
336
|
}), options.json);
|
|
323
337
|
return;
|
|
324
338
|
}
|
|
@@ -327,7 +341,7 @@ export function registerCompactCommands(program, io) {
|
|
|
327
341
|
sessionId: session.sid,
|
|
328
342
|
totalCompacts: 0,
|
|
329
343
|
message: 'compact-history.jsonl exists but is empty.',
|
|
330
|
-
historyPath: result.path
|
|
344
|
+
historyPath: result.path
|
|
331
345
|
}), options.json);
|
|
332
346
|
return;
|
|
333
347
|
}
|
|
@@ -344,11 +358,13 @@ export function registerCompactCommands(program, io) {
|
|
|
344
358
|
windowCalibration,
|
|
345
359
|
events: result.events,
|
|
346
360
|
parseErrors: result.parseErrors,
|
|
347
|
-
historyPath: result.path
|
|
361
|
+
historyPath: result.path
|
|
348
362
|
}), options.json);
|
|
349
363
|
}
|
|
350
364
|
catch (error) {
|
|
351
|
-
printResult(io, fail('compact.history', 'COMPACT_HISTORY_READ_FAILED', getErrorMessage(error), {}, [
|
|
365
|
+
printResult(io, fail('compact.history', 'COMPACT_HISTORY_READ_FAILED', getErrorMessage(error), {}, [
|
|
366
|
+
'Verify the project path is readable and a session is bound'
|
|
367
|
+
]), options.json);
|
|
352
368
|
process.exitCode = 1;
|
|
353
369
|
}
|
|
354
370
|
}));
|
|
@@ -368,7 +384,7 @@ export function registerCompactCommands(program, io) {
|
|
|
368
384
|
addJsonOption(compact
|
|
369
385
|
.command('harness-window')
|
|
370
386
|
.description('Report / roll back the auto-compact window peaks-loop writes into the ' +
|
|
371
|
-
|
|
387
|
+
"harness's own machine-local settings (the adapter-declared " +
|
|
372
388
|
'autoCompactWindowEnvVar, e.g. CLAUDE_CODE_AUTO_COMPACT_WINDOW in ' +
|
|
373
389
|
'.claude/settings.local.json). peaks-loop computes its context ratio ' +
|
|
374
390
|
'against exactly this number, so the value it reports as "85%" and the ' +
|
|
@@ -390,13 +406,16 @@ export function registerCompactCommands(program, io) {
|
|
|
390
406
|
const project = options.project !== undefined
|
|
391
407
|
? resolveCanonicalProjectRoot(options.project)
|
|
392
408
|
: (findProjectRoot(process.cwd()) ?? process.cwd());
|
|
393
|
-
const location = resolveHarnessWindowLocation({
|
|
409
|
+
const location = resolveHarnessWindowLocation({
|
|
410
|
+
projectRoot: project,
|
|
411
|
+
env: process.env
|
|
412
|
+
});
|
|
394
413
|
if (location === null) {
|
|
395
414
|
printResult(io, ok('compact.harness-window', {
|
|
396
415
|
projectRoot: project,
|
|
397
416
|
managed: false,
|
|
398
417
|
message: 'The active IDE adapter declares no auto-compact window key, so peaks-loop cannot tie ' +
|
|
399
|
-
'the harness window to its own ratio. Nothing was written and there is nothing to roll back.'
|
|
418
|
+
'the harness window to its own ratio. Nothing was written and there is nothing to roll back.'
|
|
400
419
|
}), options.json);
|
|
401
420
|
return;
|
|
402
421
|
}
|
|
@@ -407,11 +426,11 @@ export function registerCompactCommands(program, io) {
|
|
|
407
426
|
action: result.action,
|
|
408
427
|
key: location.envVar,
|
|
409
428
|
settingsPath: result.settingsPath,
|
|
410
|
-
previousTokens: result.previousTokens
|
|
429
|
+
previousTokens: result.previousTokens
|
|
411
430
|
}, [], [
|
|
412
431
|
result.action === 'removed'
|
|
413
432
|
? `Removed ${location.envVar} from ${result.settingsPath} and opted this project out, so later probes stop writing it. Undo with \`peaks compact harness-window --reenable\`.`
|
|
414
|
-
: `Nothing to remove — ${location.envVar} was already absent from ${result.settingsPath}, so nothing was written and no opt-out row was recorded: if a probe writes a window here later, run --reset again to remove it. To say "never manage this key here" WITHOUT waiting for that first write, run \`peaks compact harness-window --disable
|
|
433
|
+
: `Nothing to remove — ${location.envVar} was already absent from ${result.settingsPath}, so nothing was written and no opt-out row was recorded: if a probe writes a window here later, run --reset again to remove it. To say "never manage this key here" WITHOUT waiting for that first write, run \`peaks compact harness-window --disable\`.`
|
|
415
434
|
]), options.json);
|
|
416
435
|
return;
|
|
417
436
|
}
|
|
@@ -421,7 +440,7 @@ export function registerCompactCommands(program, io) {
|
|
|
421
440
|
projectRoot: project,
|
|
422
441
|
action: result.action,
|
|
423
442
|
key: location.envVar,
|
|
424
|
-
settingsPath: result.settingsPath
|
|
443
|
+
settingsPath: result.settingsPath
|
|
425
444
|
}, [], [
|
|
426
445
|
result.action === 'disabled'
|
|
427
446
|
? `Recorded the opt-out in ${result.settingsPath}: peaks-loop will not write ${location.envVar} here, and left any value already in the file exactly as it was. Undo with \`peaks compact harness-window --reenable\`.`
|
|
@@ -429,16 +448,21 @@ export function registerCompactCommands(program, io) {
|
|
|
429
448
|
? `Already opted out — ${result.settingsPath} carries ${location.envVar}'s opt-out, so nothing was written. Undo with \`peaks compact harness-window --reenable\`.`
|
|
430
449
|
: result.action === 'refused-unsafe-project-root'
|
|
431
450
|
? `Nothing written: the resolved project root is the user's own home directory, so ${result.settingsPath} is their PERSONAL harness settings, not a project's. peaks-loop already refuses to write ${location.envVar} there, so an opt-out would change nothing except which refusal you see. Point --project at a project (a subdirectory of home is fine) and the opt-out lands there.`
|
|
432
|
-
: `Nothing written — ${result.settingsPath} is not a JSON object peaks-loop can safely edit, so the opt-out could not be recorded there
|
|
451
|
+
: `Nothing written — ${result.settingsPath} is not a JSON object peaks-loop can safely edit, so the opt-out could not be recorded there.`
|
|
433
452
|
]), options.json);
|
|
434
453
|
return;
|
|
435
454
|
}
|
|
436
455
|
if (options.reenable === true) {
|
|
437
456
|
const result = reenableHarnessWindowSync({ location });
|
|
438
|
-
printResult(io, ok('compact.harness-window', {
|
|
457
|
+
printResult(io, ok('compact.harness-window', {
|
|
458
|
+
projectRoot: project,
|
|
459
|
+
action: result.action,
|
|
460
|
+
key: location.envVar,
|
|
461
|
+
settingsPath: result.settingsPath
|
|
462
|
+
}, [], [
|
|
439
463
|
result.action === 'reenabled'
|
|
440
464
|
? 'Opt-out cleared; the next context probe will materialize the window again.'
|
|
441
|
-
: 'No opt-out was recorded for this project.'
|
|
465
|
+
: 'No opt-out was recorded for this project.'
|
|
442
466
|
]), options.json);
|
|
443
467
|
return;
|
|
444
468
|
}
|
|
@@ -455,15 +479,15 @@ export function registerCompactCommands(program, io) {
|
|
|
455
479
|
// Provenance: whether this value is peaks-loop's own write or
|
|
456
480
|
// one the user set by hand. It decides whether the late 1M
|
|
457
481
|
// rescue may override it, so it is not just diagnostics.
|
|
458
|
-
peakWritten: state?.peakWritten ?? false
|
|
482
|
+
peakWritten: state?.peakWritten ?? false
|
|
459
483
|
}, [], [
|
|
460
484
|
state?.tokens === null || state?.tokens === undefined
|
|
461
485
|
? 'No window is set yet. The next `peaks code context-now` probe materializes the window it computes its ratio against.'
|
|
462
486
|
: `peaks-loop computes its context ratio against ${state.tokens} tokens; the harness fires near the end of that window. ${state.peakWritten
|
|
463
487
|
? 'peaks-loop wrote this value; it may raise it if a session outgrows it.'
|
|
464
|
-
:
|
|
488
|
+
: "This value is not peaks-loop's own write, so peaks-loop will not raise it — it is treated as your setting."}`,
|
|
465
489
|
'Rollback: `peaks compact harness-window --reset`.',
|
|
466
|
-
'Intent-vs-observed calibration: `peaks compact history --json` → windowCalibration.'
|
|
490
|
+
'Intent-vs-observed calibration: `peaks compact history --json` → windowCalibration.'
|
|
467
491
|
]), options.json);
|
|
468
492
|
}
|
|
469
493
|
catch (error) {
|
|
@@ -536,7 +560,9 @@ export function registerCompactCommands(program, io) {
|
|
|
536
560
|
catch (error) {
|
|
537
561
|
if (options.json !== true)
|
|
538
562
|
return;
|
|
539
|
-
printResult(io, fail('compact.settle', 'COMPACT_SETTLE_FAILED', getErrorMessage(error), {}, [
|
|
563
|
+
printResult(io, fail('compact.settle', 'COMPACT_SETTLE_FAILED', getErrorMessage(error), {}, [
|
|
564
|
+
'Verify the project path and session binding'
|
|
565
|
+
]), true);
|
|
540
566
|
}
|
|
541
567
|
});
|
|
542
568
|
}
|
|
@@ -19,16 +19,15 @@ export function registerComplexityCommands(program, io) {
|
|
|
19
19
|
.requiredOption('--files <list>', 'comma-separated file paths (relative to project root)')
|
|
20
20
|
.option('--project <path>', 'project root (default: cwd)')).action((opts) => {
|
|
21
21
|
const projectRoot = opts.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
|
|
22
|
-
const files = opts.files
|
|
22
|
+
const files = opts.files
|
|
23
|
+
.split(',')
|
|
24
|
+
.map((s) => s.trim())
|
|
25
|
+
.filter((s) => s.length > 0);
|
|
23
26
|
if (files.length === 0) {
|
|
24
|
-
printResult(io, fail('complexity-estimate', 'INVALID_INPUT', 'no files provided (--files)', { projectRoot }, [
|
|
25
|
-
'Pass --files with at least one file path.'
|
|
26
|
-
]), opts.json ?? false);
|
|
27
|
+
printResult(io, fail('complexity-estimate', 'INVALID_INPUT', 'no files provided (--files)', { projectRoot }, ['Pass --files with at least one file path.']), opts.json ?? false);
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
29
30
|
const report = estimateComplexity(projectRoot, files);
|
|
30
|
-
printResult(io, ok('complexity-estimate', { projectRoot, report }, [], [
|
|
31
|
-
`Overall tier: ${report.overall}. Schedule accordingly.`
|
|
32
|
-
]), opts.json ?? false);
|
|
31
|
+
printResult(io, ok('complexity-estimate', { projectRoot, report }, [], [`Overall tier: ${report.overall}. Schedule accordingly.`]), opts.json ?? false);
|
|
33
32
|
});
|
|
34
33
|
}
|
|
@@ -10,18 +10,30 @@ export function registerConfigCommands(program, io) {
|
|
|
10
10
|
registerConfigMigrationCommands(config, io);
|
|
11
11
|
}
|
|
12
12
|
function registerConfigGetSetCommands(config, io) {
|
|
13
|
-
addJsonOption(config
|
|
13
|
+
addJsonOption(config
|
|
14
|
+
.command('get')
|
|
15
|
+
.description('Get current config or a specific key')
|
|
16
|
+
.option('--key <path>', 'dot-notation key path')
|
|
17
|
+
.option('--layer <layer>', 'user or project')).action((options) => {
|
|
14
18
|
const layer = parseConfigLayer(options.layer);
|
|
15
19
|
if (layer === null) {
|
|
16
20
|
printInvalidConfigLayer(io, 'config.get', options.json);
|
|
17
21
|
return;
|
|
18
22
|
}
|
|
19
|
-
const getOpts = {
|
|
23
|
+
const getOpts = {
|
|
24
|
+
...(layer !== undefined ? { layer } : {}),
|
|
25
|
+
...(options.key !== undefined ? { key: options.key } : {})
|
|
26
|
+
};
|
|
20
27
|
const value = getConfig(getOpts);
|
|
21
28
|
const isSensitiveKey = options.key !== undefined && isSensitiveConfigPath(options.key);
|
|
22
29
|
printResult(io, ok('config.get', isSensitiveKey ? '***' : redactConfigSecrets(value, options.key ?? '')), options.json);
|
|
23
30
|
});
|
|
24
|
-
addJsonOption(config
|
|
31
|
+
addJsonOption(config
|
|
32
|
+
.command('set')
|
|
33
|
+
.description('Set a config value')
|
|
34
|
+
.requiredOption('--key <path>', 'dot-notation key path')
|
|
35
|
+
.requiredOption('--value <json>', 'JSON value')
|
|
36
|
+
.option('--layer <layer>', 'user or project')).action((options) => {
|
|
25
37
|
const parsedLayer = parseConfigLayer(options.layer);
|
|
26
38
|
if (parsedLayer === null) {
|
|
27
39
|
printInvalidConfigLayer(io, 'config.set', options.json);
|
|
@@ -32,7 +44,9 @@ function registerConfigGetSetCommands(config, io) {
|
|
|
32
44
|
parsed = JSON.parse(options.value);
|
|
33
45
|
}
|
|
34
46
|
catch {
|
|
35
|
-
printResult(io, fail('config.set', 'INVALID_JSON', 'Could not parse value as JSON', {}, [
|
|
47
|
+
printResult(io, fail('config.set', 'INVALID_JSON', 'Could not parse value as JSON', {}, [
|
|
48
|
+
'Use valid JSON: --value \'{"key":"value"}\''
|
|
49
|
+
]), options.json);
|
|
36
50
|
process.exitCode = 1;
|
|
37
51
|
return;
|
|
38
52
|
}
|
|
@@ -69,7 +83,9 @@ function registerConfigMigrationCommands(config, io) {
|
|
|
69
83
|
printResult(io, ok('config.migrate', { ...plan, applied: false }), options.json);
|
|
70
84
|
}
|
|
71
85
|
catch (error) {
|
|
72
|
-
printResult(io, fail('config.migrate', 'CONFIG_MIGRATE_FAILED', getErrorMessage(error), {}, [
|
|
86
|
+
printResult(io, fail('config.migrate', 'CONFIG_MIGRATE_FAILED', getErrorMessage(error), {}, [
|
|
87
|
+
'Inspect ~/.peaks/config.json and re-run with --apply'
|
|
88
|
+
]), options.json);
|
|
73
89
|
process.exitCode = 1;
|
|
74
90
|
}
|
|
75
91
|
});
|
|
@@ -95,7 +111,9 @@ function registerConfigMigrationCommands(config, io) {
|
|
|
95
111
|
// an `available: false` SUCCESS envelope (see `config-rollback.ts`).
|
|
96
112
|
const message = getErrorMessage(error);
|
|
97
113
|
io.stderr(`CONFIG_ROLLBACK_FAILED: ${message}`);
|
|
98
|
-
printResult(io, fail('config.rollback', 'CONFIG_ROLLBACK_FAILED', message, {}, [
|
|
114
|
+
printResult(io, fail('config.rollback', 'CONFIG_ROLLBACK_FAILED', message, {}, [
|
|
115
|
+
'Re-run peaks config migrate --apply to recreate the .bak'
|
|
116
|
+
]), options.json);
|
|
99
117
|
process.exitCode = 1;
|
|
100
118
|
}
|
|
101
119
|
});
|
|
@@ -141,15 +159,21 @@ function registerConfigMigrationCommands(config, io) {
|
|
|
141
159
|
function printConfigSetError(io, error, asJson) {
|
|
142
160
|
const message = getErrorMessage(error);
|
|
143
161
|
if (message === 'Sensitive config keys must be stored in the user config layer') {
|
|
144
|
-
printResult(io, fail('config.set', 'SECRET_CONFIG_REQUIRES_USER_LAYER', message, {}, [
|
|
162
|
+
printResult(io, fail('config.set', 'SECRET_CONFIG_REQUIRES_USER_LAYER', message, {}, [
|
|
163
|
+
'Use --layer user for sensitive config keys'
|
|
164
|
+
]), asJson);
|
|
145
165
|
process.exitCode = 1;
|
|
146
166
|
return;
|
|
147
167
|
}
|
|
148
168
|
if (message === 'Project config not found') {
|
|
149
|
-
printResult(io, fail('config.set', 'PROJECT_CONFIG_NOT_FOUND', message, {}, [
|
|
169
|
+
printResult(io, fail('config.set', 'PROJECT_CONFIG_NOT_FOUND', message, {}, [
|
|
170
|
+
'Create a safe .peaks/config.json in the project or use --layer user'
|
|
171
|
+
]), asJson);
|
|
150
172
|
process.exitCode = 1;
|
|
151
173
|
return;
|
|
152
174
|
}
|
|
153
|
-
printResult(io, fail('config.set', 'CONFIG_SET_FAILED', message, {}, [
|
|
175
|
+
printResult(io, fail('config.set', 'CONFIG_SET_FAILED', message, {}, [
|
|
176
|
+
'Check the config key and layer, then retry'
|
|
177
|
+
]), asJson);
|
|
154
178
|
process.exitCode = 1;
|
|
155
179
|
}
|
|
@@ -37,7 +37,11 @@ function detectContainerRuntime(explicit) {
|
|
|
37
37
|
const tryOrder = explicit ? [explicit] : ['docker', 'podman'];
|
|
38
38
|
for (const r of tryOrder) {
|
|
39
39
|
try {
|
|
40
|
-
const version = execSync(`${r} --version`, {
|
|
40
|
+
const version = execSync(`${r} --version`, {
|
|
41
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
42
|
+
encoding: 'utf8',
|
|
43
|
+
windowsHide: true
|
|
44
|
+
}).trim();
|
|
41
45
|
return { ok: true, runtime: r, binary: `${r} (${version.split('\n')[0] ?? ''})` };
|
|
42
46
|
}
|
|
43
47
|
catch {
|
|
@@ -65,8 +69,11 @@ function checkDockerAvailable() {
|
|
|
65
69
|
return { ok: false, stderr: 'deprecated — use detectContainerRuntime' };
|
|
66
70
|
}
|
|
67
71
|
export function registerContainerCommand(program, io) {
|
|
68
|
-
const cmd = program
|
|
69
|
-
|
|
72
|
+
const cmd = program
|
|
73
|
+
.command('container')
|
|
74
|
+
.description('L4 container isolation: spawn/release container leases (Part 12; pairs with --isolation container on dispatch).');
|
|
75
|
+
addJsonOption(cmd
|
|
76
|
+
.command('spawn')
|
|
70
77
|
.description('Spawn a container via `docker run` and write a container lease. ' +
|
|
71
78
|
'The lease is the source of truth for the L4 PreToolUse gate (Part 12 follow-up). ' +
|
|
72
79
|
'Default TTL is role-aware (rd=30m / qa=15m / ui=1h); pass --ttl <ms> to override. ' +
|
|
@@ -78,9 +85,12 @@ export function registerContainerCommand(program, io) {
|
|
|
78
85
|
.option('--ttl <ms>', 'time-to-live in ms (default role-aware; override with positive number)')
|
|
79
86
|
.option('--mount <path>', 'host path to mount as the container working dir (default: <projectRoot>)')
|
|
80
87
|
.option('--session <sid>', 'override session id')
|
|
81
|
-
.option('--project <path>', 'project root (default: findProjectRoot(cwd))')).action(
|
|
88
|
+
.option('--project <path>', 'project root (default: findProjectRoot(cwd))')).action((options) => {
|
|
82
89
|
const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
|
|
83
|
-
const sessionId = options.session ??
|
|
90
|
+
const sessionId = options.session ??
|
|
91
|
+
process.env.PEAKS_SESSION_ID ??
|
|
92
|
+
getCurrentSessionId(projectRoot) ??
|
|
93
|
+
'unknown-sid';
|
|
84
94
|
try {
|
|
85
95
|
const explicitRuntime = (() => {
|
|
86
96
|
if (options.runtime === 'docker')
|
|
@@ -101,7 +111,9 @@ export function registerContainerCommand(program, io) {
|
|
|
101
111
|
}
|
|
102
112
|
const leaseId = generateContainerLeaseId();
|
|
103
113
|
const now = Date.now();
|
|
104
|
-
const ttlMs = options.ttl === undefined
|
|
114
|
+
const ttlMs = options.ttl === undefined
|
|
115
|
+
? ttlForContainerRole(options.role)
|
|
116
|
+
: Number.parseInt(options.ttl, 10);
|
|
105
117
|
if (!Number.isInteger(ttlMs) || ttlMs <= 0) {
|
|
106
118
|
printResult(io, fail('container.spawn', 'INVALID_TTL', '--ttl must be a positive integer (ms)', { ttl: options.ttl }, ['Re-run with --ttl 1800000 (30 min) or omit to use role default.']), options.json);
|
|
107
119
|
process.exitCode = 1;
|
|
@@ -162,13 +174,17 @@ export function registerContainerCommand(program, io) {
|
|
|
162
174
|
process.exitCode = 1;
|
|
163
175
|
}
|
|
164
176
|
});
|
|
165
|
-
addJsonOption(cmd
|
|
177
|
+
addJsonOption(cmd
|
|
178
|
+
.command('release')
|
|
166
179
|
.description('Transition a container lease to released and run `docker rm --force`. Idempotent on already-released leases.')
|
|
167
180
|
.requiredOption('--lease-id <id>', 'lease id returned by `peaks container spawn`')
|
|
168
181
|
.option('--session <sid>', 'override session id')
|
|
169
182
|
.option('--project <path>', 'project root (default: findProjectRoot(cwd))')).action((options) => {
|
|
170
183
|
const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
|
|
171
|
-
const sessionId = options.session ??
|
|
184
|
+
const sessionId = options.session ??
|
|
185
|
+
process.env.PEAKS_SESSION_ID ??
|
|
186
|
+
getCurrentSessionId(projectRoot) ??
|
|
187
|
+
'unknown-sid';
|
|
172
188
|
try {
|
|
173
189
|
const file = containerLeaseFilePath(joinPathSession(projectRoot, sessionId), options.leaseId);
|
|
174
190
|
if (!existsSync(file)) {
|
|
@@ -199,23 +215,31 @@ export function registerContainerCommand(program, io) {
|
|
|
199
215
|
try {
|
|
200
216
|
const releaseRuntime = detectContainerRuntime(undefined);
|
|
201
217
|
const runtimeCmd = releaseRuntime.ok ? releaseRuntime.runtime : 'docker';
|
|
202
|
-
execSync(`${runtimeCmd} rm --force "${lease.containerId}"`, {
|
|
218
|
+
execSync(`${runtimeCmd} rm --force "${lease.containerId}"`, {
|
|
219
|
+
cwd: projectRoot,
|
|
220
|
+
stdio: 'pipe',
|
|
221
|
+
encoding: 'utf8',
|
|
222
|
+
windowsHide: true
|
|
223
|
+
});
|
|
203
224
|
}
|
|
204
225
|
catch {
|
|
205
226
|
dockerRmFailed = true;
|
|
206
227
|
}
|
|
207
228
|
const released = markContainerReleased(lease);
|
|
208
229
|
atomicWriteJson(file, released);
|
|
209
|
-
printResult(io, ok('container.release', { lease: released, sessionId, projectRoot, dockerRmFailed }, dockerRmFailed
|
|
230
|
+
printResult(io, ok('container.release', { lease: released, sessionId, projectRoot, dockerRmFailed }, dockerRmFailed
|
|
231
|
+
? [
|
|
232
|
+
'docker rm failed (likely the container was already removed); lease marked released.'
|
|
233
|
+
]
|
|
234
|
+
: [], [
|
|
210
235
|
`Lease ${lease.leaseId} marked released.`,
|
|
211
|
-
dockerRmFailed
|
|
236
|
+
dockerRmFailed
|
|
237
|
+
? 'Manual `docker ps -a` + `docker rm` may be needed.'
|
|
238
|
+
: `Container ${lease.containerId} removed.`
|
|
212
239
|
]), options.json);
|
|
213
240
|
}
|
|
214
241
|
catch (err) {
|
|
215
|
-
printResult(io, fail('container.release', 'RELEASE_FAILED', getErrorMessage(err), { leaseId: options.leaseId, sessionId }, [
|
|
216
|
-
'Verify the lease id and re-run.',
|
|
217
|
-
'If the lease was never spawned, no-op.'
|
|
218
|
-
]), options.json);
|
|
242
|
+
printResult(io, fail('container.release', 'RELEASE_FAILED', getErrorMessage(err), { leaseId: options.leaseId, sessionId }, ['Verify the lease id and re-run.', 'If the lease was never spawned, no-op.']), options.json);
|
|
219
243
|
process.exitCode = 1;
|
|
220
244
|
}
|
|
221
245
|
});
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - refactor: L0 + L1 + L2 + L3
|
|
16
16
|
* - migration: L0 + L1 + L2 + L3 + codegraph
|
|
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 type ContextLayer = 'L0' | 'L1' | 'L2' | 'L3';
|
|
21
21
|
export declare function registerContextCommands(program: Command, io: ProgramIO): void;
|
|
@@ -66,7 +66,14 @@ async function fetchL0(projectRoot) {
|
|
|
66
66
|
sizes.push({ path: rel, bytes: body.length });
|
|
67
67
|
byteSize += body.length;
|
|
68
68
|
}
|
|
69
|
-
return {
|
|
69
|
+
return {
|
|
70
|
+
layer: 'L0',
|
|
71
|
+
description: 'full read: every SKILL.md concatenated',
|
|
72
|
+
files: sizes,
|
|
73
|
+
content,
|
|
74
|
+
byteSize,
|
|
75
|
+
warnings
|
|
76
|
+
};
|
|
70
77
|
}
|
|
71
78
|
async function fetchL1(projectRoot) {
|
|
72
79
|
const files = readSkillsDir(projectRoot);
|
|
@@ -85,7 +92,14 @@ async function fetchL1(projectRoot) {
|
|
|
85
92
|
sizes.push({ path: rel, bytes: firstPara.length });
|
|
86
93
|
byteSize += firstPara.length;
|
|
87
94
|
}
|
|
88
|
-
return {
|
|
95
|
+
return {
|
|
96
|
+
layer: 'L1',
|
|
97
|
+
description: 'summary: first paragraph per skill',
|
|
98
|
+
files: sizes,
|
|
99
|
+
content,
|
|
100
|
+
byteSize,
|
|
101
|
+
warnings
|
|
102
|
+
};
|
|
89
103
|
}
|
|
90
104
|
async function fetchL2(projectRoot) {
|
|
91
105
|
const files = readSkillsDir(projectRoot);
|
|
@@ -97,14 +111,21 @@ async function fetchL2(projectRoot) {
|
|
|
97
111
|
files: files.map((f) => ({ path: f, bytes: 0 })),
|
|
98
112
|
content,
|
|
99
113
|
byteSize,
|
|
100
|
-
warnings: []
|
|
114
|
+
warnings: []
|
|
101
115
|
};
|
|
102
116
|
}
|
|
103
117
|
async function fetchL3(projectRoot, query) {
|
|
104
118
|
const warnings = [];
|
|
105
119
|
if (query.trim().length === 0) {
|
|
106
120
|
warnings.push('empty query; L3 requires a --query string for fuzzy search');
|
|
107
|
-
return {
|
|
121
|
+
return {
|
|
122
|
+
layer: 'L3',
|
|
123
|
+
description: 'fuzzy search (empty query)',
|
|
124
|
+
files: [],
|
|
125
|
+
content: '',
|
|
126
|
+
byteSize: 0,
|
|
127
|
+
warnings
|
|
128
|
+
};
|
|
108
129
|
}
|
|
109
130
|
try {
|
|
110
131
|
const hits = searchMemory({ projectRoot, query, limit: 10 });
|
|
@@ -119,7 +140,7 @@ async function fetchL3(projectRoot, query) {
|
|
|
119
140
|
files: hits.map((h) => ({ path: h.sourcePath, bytes: h.description.length })),
|
|
120
141
|
content,
|
|
121
142
|
byteSize: content.length,
|
|
122
|
-
warnings
|
|
143
|
+
warnings
|
|
123
144
|
};
|
|
124
145
|
}
|
|
125
146
|
catch (error) {
|
|
@@ -129,7 +150,7 @@ async function fetchL3(projectRoot, query) {
|
|
|
129
150
|
files: [],
|
|
130
151
|
content: '',
|
|
131
152
|
byteSize: 0,
|
|
132
|
-
warnings: [`L3 search failed: ${getErrorMessage(error)}`]
|
|
153
|
+
warnings: [`L3 search failed: ${getErrorMessage(error)}`]
|
|
133
154
|
};
|
|
134
155
|
}
|
|
135
156
|
}
|
|
@@ -161,7 +182,9 @@ export function registerContextCommands(program, io) {
|
|
|
161
182
|
payload = await fetchL3(options.project, options.query ?? '');
|
|
162
183
|
printResult(io, ok('context.layer', payload, [], [
|
|
163
184
|
`${payload.layer} loaded: ${payload.byteSize} bytes across ${payload.files.length} file(s)`,
|
|
164
|
-
payload.warnings.length > 0
|
|
185
|
+
payload.warnings.length > 0
|
|
186
|
+
? `${payload.warnings.length} warning(s); see envelope.warnings`
|
|
187
|
+
: null
|
|
165
188
|
].filter((x) => typeof x === 'string')), options.json);
|
|
166
189
|
}
|
|
167
190
|
catch (error) {
|
|
@@ -183,12 +206,12 @@ export function registerContextCommands(program, io) {
|
|
|
183
206
|
return;
|
|
184
207
|
}
|
|
185
208
|
const evaluation = evaluateMainSessionThreshold(promptSize, capacity);
|
|
186
|
-
printResult(io, ok('context.status', { ...evaluation, ide: detectIdeFromEnv() }, [...evaluation.warnings], [
|
|
187
|
-
`Main-session tier=${evaluation.tier} (${(evaluation.ratio * 100).toFixed(0)}%)`
|
|
188
|
-
]), opts.json);
|
|
209
|
+
printResult(io, ok('context.status', { ...evaluation, ide: detectIdeFromEnv() }, [...evaluation.warnings], [`Main-session tier=${evaluation.tier} (${(evaluation.ratio * 100).toFixed(0)}%)`]), opts.json);
|
|
189
210
|
}
|
|
190
211
|
catch (err) {
|
|
191
|
-
printResult(io, fail('context.status', 'CONTEXT_STATUS_FAILED', getErrorMessage(err), null, [
|
|
212
|
+
printResult(io, fail('context.status', 'CONTEXT_STATUS_FAILED', getErrorMessage(err), null, [
|
|
213
|
+
'Verify --prompt-size is a non-negative number'
|
|
214
|
+
]), opts.json);
|
|
192
215
|
process.exitCode = 1;
|
|
193
216
|
}
|
|
194
217
|
});
|
|
@@ -210,7 +233,9 @@ export function registerContextCommands(program, io) {
|
|
|
210
233
|
const trigger = pickMainSessionTrigger({
|
|
211
234
|
promptSize,
|
|
212
235
|
capacityBytes: capacity,
|
|
213
|
-
inFlightBatch: opts.inFlightBatch === true
|
|
236
|
+
inFlightBatch: opts.inFlightBatch === true
|
|
237
|
+
? { hasInFlightBatch: true, sharedChannelEntries: 1 }
|
|
238
|
+
: undefined
|
|
214
239
|
});
|
|
215
240
|
// Slice C of v2.11.1 — observability hook #5/7. Fire-and-forget
|
|
216
241
|
// per PRD Q4. The synchronous emit never throws.
|
|
@@ -248,7 +273,9 @@ export function registerContextCommands(program, io) {
|
|
|
248
273
|
]), opts.json);
|
|
249
274
|
}
|
|
250
275
|
catch (err) {
|
|
251
|
-
printResult(io, fail('context.check', 'CONTEXT_CHECK_FAILED', getErrorMessage(err), null, [
|
|
276
|
+
printResult(io, fail('context.check', 'CONTEXT_CHECK_FAILED', getErrorMessage(err), null, [
|
|
277
|
+
'Verify --prompt-size is a non-negative number'
|
|
278
|
+
]), opts.json);
|
|
252
279
|
process.exitCode = 1;
|
|
253
280
|
}
|
|
254
281
|
});
|
|
@@ -3,7 +3,9 @@ import { getArtifactWorkspaceStatus, planArtifactSync } from '../../../services/
|
|
|
3
3
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
4
4
|
import { addJsonOption, failUnsupportedNonDryRun, isArtifactProvider, isArtifactSetupStep, printResult } from '../../cli-helpers.js';
|
|
5
5
|
export function registerArtifactsCommand(program, io) {
|
|
6
|
-
const artifacts = program
|
|
6
|
+
const artifacts = program
|
|
7
|
+
.command('artifacts')
|
|
8
|
+
.description('Manage intermediate artifact repositories');
|
|
7
9
|
addJsonOption(artifacts.command('status').description('Show artifact repository status')).action((options) => {
|
|
8
10
|
printResult(io, ok('artifacts.status', getArtifactStatus()), options.json);
|
|
9
11
|
});
|
|
@@ -43,10 +45,16 @@ export function registerArtifactsCommand(program, io) {
|
|
|
43
45
|
}
|
|
44
46
|
printResult(io, ok('artifacts.sync', planArtifactSync(options.workspace, true)), options.json);
|
|
45
47
|
});
|
|
46
|
-
addJsonOption(artifacts
|
|
48
|
+
addJsonOption(artifacts
|
|
49
|
+
.command('workspace')
|
|
50
|
+
.description('Show artifact workspace status for current or specified workspace')
|
|
51
|
+
.option('--workspace <id>', 'workspace identifier')).action((options) => {
|
|
47
52
|
printResult(io, ok('artifacts.workspace', getArtifactWorkspaceStatus(options.workspace)), options.json);
|
|
48
53
|
});
|
|
49
|
-
addJsonOption(artifacts
|
|
54
|
+
addJsonOption(artifacts
|
|
55
|
+
.command('setup')
|
|
56
|
+
.description('Interactive guided artifact repository setup')
|
|
57
|
+
.option('--step <step>', 'start from specific step: detect, configure, validate, complete')).action((options) => {
|
|
50
58
|
const requestedStep = options.step;
|
|
51
59
|
const setup = createGuidedArtifactSetup();
|
|
52
60
|
if (requestedStep) {
|