peaks-loop 4.0.54 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/peaks-code/SKILL.md +1 -1
|
@@ -52,9 +52,18 @@ function hasLegacyGlobalFields(raw) {
|
|
|
52
52
|
*/
|
|
53
53
|
function promoteLegacyGlobalFieldsToSidecars(raw) {
|
|
54
54
|
if (isRecord(raw.providers)) {
|
|
55
|
-
const existing = readSidecarJson(providersConfigPath(), {
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
const existing = readSidecarJson(providersConfigPath(), {
|
|
56
|
+
version: SIDECAR_SCHEMA_VERSION,
|
|
57
|
+
providers: {}
|
|
58
|
+
});
|
|
59
|
+
const mergedProviders = {
|
|
60
|
+
...(existing.providers ?? {}),
|
|
61
|
+
...raw.providers
|
|
62
|
+
};
|
|
63
|
+
writeSidecarJson(providersConfigPath(), {
|
|
64
|
+
version: SIDECAR_SCHEMA_VERSION,
|
|
65
|
+
providers: mergedProviders
|
|
66
|
+
});
|
|
58
67
|
}
|
|
59
68
|
if (isRecord(raw.proxy) && typeof raw.proxy.httpProxy === 'string') {
|
|
60
69
|
const httpProxy = raw.proxy.httpProxy;
|
|
@@ -104,7 +113,8 @@ function readJsonFile(path, validateBeforeRead, errorMessage = 'Config path must
|
|
|
104
113
|
try {
|
|
105
114
|
return JSON.parse(content);
|
|
106
115
|
}
|
|
107
|
-
catch {
|
|
116
|
+
catch {
|
|
117
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
108
118
|
return null;
|
|
109
119
|
}
|
|
110
120
|
}
|
|
@@ -125,7 +135,9 @@ function readUserJsonFile() {
|
|
|
125
135
|
}
|
|
126
136
|
function readProjectJsonFile(projectRoot) {
|
|
127
137
|
const projectPath = getProjectConfigPath(projectRoot);
|
|
128
|
-
return readJsonFile(projectPath, projectRoot && projectPath
|
|
138
|
+
return readJsonFile(projectPath, projectRoot && projectPath
|
|
139
|
+
? () => validateProjectBootstrapConfigPathForWrite(projectRoot, projectPath)
|
|
140
|
+
: undefined, 'Project config path must stay inside the project root');
|
|
129
141
|
}
|
|
130
142
|
function ensureDir(dirPath) {
|
|
131
143
|
if (!existsSync(dirPath)) {
|
|
@@ -134,7 +146,10 @@ function ensureDir(dirPath) {
|
|
|
134
146
|
}
|
|
135
147
|
const UNSAFE_NESTED_PATH_SEGMENTS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
136
148
|
function getNestedPathParts(path) {
|
|
137
|
-
return path
|
|
149
|
+
return path
|
|
150
|
+
.replace(/\[(\d+)\]/g, '.$1')
|
|
151
|
+
.split('.')
|
|
152
|
+
.filter(Boolean);
|
|
138
153
|
}
|
|
139
154
|
function hasUnsafeNestedPathSegment(parts) {
|
|
140
155
|
return parts.some((part) => UNSAFE_NESTED_PATH_SEGMENTS.has(part));
|
|
@@ -146,7 +161,10 @@ function getNestedValue(obj, path) {
|
|
|
146
161
|
}
|
|
147
162
|
let current = obj;
|
|
148
163
|
for (const part of parts) {
|
|
149
|
-
if (current === null ||
|
|
164
|
+
if (current === null ||
|
|
165
|
+
current === undefined ||
|
|
166
|
+
typeof current !== 'object' ||
|
|
167
|
+
!Object.prototype.hasOwnProperty.call(current, part)) {
|
|
150
168
|
return undefined;
|
|
151
169
|
}
|
|
152
170
|
current = current[part];
|
|
@@ -161,7 +179,10 @@ function setNestedValue(obj, path, value) {
|
|
|
161
179
|
let current = obj;
|
|
162
180
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
163
181
|
const part = parts[i];
|
|
164
|
-
if (!Object.prototype.hasOwnProperty.call(current, part) ||
|
|
182
|
+
if (!Object.prototype.hasOwnProperty.call(current, part) ||
|
|
183
|
+
typeof current[part] !== 'object' ||
|
|
184
|
+
current[part] === null ||
|
|
185
|
+
Array.isArray(current[part])) {
|
|
165
186
|
current[part] = {};
|
|
166
187
|
}
|
|
167
188
|
current = current[part];
|
|
@@ -206,13 +227,22 @@ export function readContextWindowTokensOverride(projectRoot) {
|
|
|
206
227
|
}
|
|
207
228
|
return undefined;
|
|
208
229
|
}
|
|
209
|
-
catch {
|
|
230
|
+
catch {
|
|
231
|
+
// TODO(g2): legacy silent catch — never let config IO break a probe (grace: 1 minor release, v2.14.0)
|
|
210
232
|
return undefined;
|
|
211
233
|
}
|
|
212
234
|
}
|
|
213
235
|
export function isSensitiveConfigPath(path) {
|
|
214
236
|
const normalized = path.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
215
|
-
return normalized.includes('apikey') ||
|
|
237
|
+
return (normalized.includes('apikey') ||
|
|
238
|
+
normalized.includes('accesskey') ||
|
|
239
|
+
normalized.includes('privatekey') ||
|
|
240
|
+
normalized.includes('token') ||
|
|
241
|
+
normalized.includes('secret') ||
|
|
242
|
+
normalized.includes('password') ||
|
|
243
|
+
normalized.includes('bearer') ||
|
|
244
|
+
normalized.includes('credential') ||
|
|
245
|
+
normalized.includes('auth'));
|
|
216
246
|
}
|
|
217
247
|
/**
|
|
218
248
|
* 2.0.1 slim-config contract: `~/.peaks/config.json` only stores
|
|
@@ -259,7 +289,11 @@ function isProviderBaseUrlPath(path) {
|
|
|
259
289
|
function isValidProviderBaseUrl(value) {
|
|
260
290
|
try {
|
|
261
291
|
const url = new URL(value);
|
|
262
|
-
return url.protocol === 'https:' &&
|
|
292
|
+
return (url.protocol === 'https:' &&
|
|
293
|
+
url.username.length === 0 &&
|
|
294
|
+
url.password.length === 0 &&
|
|
295
|
+
url.search.length === 0 &&
|
|
296
|
+
url.hash.length === 0);
|
|
263
297
|
}
|
|
264
298
|
catch {
|
|
265
299
|
return false;
|
|
@@ -293,7 +327,12 @@ function validateProviderConfig(partial) {
|
|
|
293
327
|
function isValidProxyUrl(value) {
|
|
294
328
|
try {
|
|
295
329
|
const url = new URL(value);
|
|
296
|
-
return (url.protocol === 'http:' || url.protocol === 'https:') &&
|
|
330
|
+
return ((url.protocol === 'http:' || url.protocol === 'https:') &&
|
|
331
|
+
url.username.length === 0 &&
|
|
332
|
+
url.password.length === 0 &&
|
|
333
|
+
url.pathname === '/' &&
|
|
334
|
+
url.search.length === 0 &&
|
|
335
|
+
url.hash.length === 0);
|
|
297
336
|
}
|
|
298
337
|
catch {
|
|
299
338
|
return false;
|
|
@@ -311,10 +350,13 @@ function isRecord(value) {
|
|
|
311
350
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
312
351
|
}
|
|
313
352
|
function isSafeConfigSegment(value) {
|
|
314
|
-
return /^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(value) && !value.includes('..') && !value.endsWith('.');
|
|
353
|
+
return (/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(value) && !value.includes('..') && !value.endsWith('.'));
|
|
315
354
|
}
|
|
316
355
|
function toArtifactRemoteRepoConfig(value) {
|
|
317
|
-
if (!isRecord(value) ||
|
|
356
|
+
if (!isRecord(value) ||
|
|
357
|
+
(value.provider !== 'github' && value.provider !== 'gitlab') ||
|
|
358
|
+
typeof value.owner !== 'string' ||
|
|
359
|
+
typeof value.name !== 'string') {
|
|
318
360
|
return null;
|
|
319
361
|
}
|
|
320
362
|
if (!isSafeConfigSegment(value.owner) || !isSafeConfigSegment(value.name)) {
|
|
@@ -339,7 +381,12 @@ function toWorkspaceConfig(value) {
|
|
|
339
381
|
if (!isRecord(value))
|
|
340
382
|
return null;
|
|
341
383
|
const { workspaceId, name, rootPath, installedCapabilityIds } = value;
|
|
342
|
-
if (typeof workspaceId !== 'string' ||
|
|
384
|
+
if (typeof workspaceId !== 'string' ||
|
|
385
|
+
!isSafeConfigSegment(workspaceId) ||
|
|
386
|
+
typeof name !== 'string' ||
|
|
387
|
+
typeof rootPath !== 'string' ||
|
|
388
|
+
!Array.isArray(installedCapabilityIds) ||
|
|
389
|
+
!installedCapabilityIds.every((id) => typeof id === 'string')) {
|
|
343
390
|
return null;
|
|
344
391
|
}
|
|
345
392
|
const artifactRepo = toArtifactRemoteRepoConfig(value.artifactRepo);
|
|
@@ -354,18 +401,29 @@ function toWorkspaceConfig(value) {
|
|
|
354
401
|
};
|
|
355
402
|
}
|
|
356
403
|
function toWorkspaceConfigs(value) {
|
|
357
|
-
return Array.isArray(value)
|
|
404
|
+
return Array.isArray(value)
|
|
405
|
+
? value
|
|
406
|
+
.map(toWorkspaceConfig)
|
|
407
|
+
.filter((workspace) => workspace !== null)
|
|
408
|
+
: [];
|
|
358
409
|
}
|
|
359
410
|
function toProviderModelConfig(value) {
|
|
360
411
|
if (!isRecord(value))
|
|
361
412
|
return {};
|
|
362
413
|
return {
|
|
363
|
-
...(typeof value.model === 'string' && value.model.trim().length > 0
|
|
414
|
+
...(typeof value.model === 'string' && value.model.trim().length > 0
|
|
415
|
+
? { model: value.model.trim() }
|
|
416
|
+
: {}),
|
|
364
417
|
...(typeof value.baseUrl === 'string' ? { baseUrl: value.baseUrl } : {}),
|
|
365
418
|
...(typeof value.apiKey === 'string' ? { apiKey: value.apiKey } : {})
|
|
366
419
|
};
|
|
367
420
|
}
|
|
368
|
-
const TOKEN_CONFIG_KEYS = new Set([
|
|
421
|
+
const TOKEN_CONFIG_KEYS = new Set([
|
|
422
|
+
'AnthropicApiKey',
|
|
423
|
+
'OpenAiApiKey',
|
|
424
|
+
'GitHubToken',
|
|
425
|
+
'GitLabToken'
|
|
426
|
+
]);
|
|
369
427
|
function toTokenRef(value) {
|
|
370
428
|
if (!isRecord(value))
|
|
371
429
|
return null;
|
|
@@ -399,12 +457,17 @@ function toTokenConfig(value) {
|
|
|
399
457
|
function toModelProviderConfig(value) {
|
|
400
458
|
if (!isRecord(value))
|
|
401
459
|
return {};
|
|
402
|
-
return Object.fromEntries(Object.entries(value).map(([providerId, providerConfig]) => [
|
|
460
|
+
return Object.fromEntries(Object.entries(value).map(([providerId, providerConfig]) => [
|
|
461
|
+
providerId,
|
|
462
|
+
toProviderModelConfig(providerConfig)
|
|
463
|
+
]));
|
|
403
464
|
}
|
|
404
465
|
function toProxyConfig(value) {
|
|
405
466
|
if (!isRecord(value))
|
|
406
467
|
return null;
|
|
407
|
-
return typeof value.httpProxy === 'string' && isValidProxyUrl(value.httpProxy)
|
|
468
|
+
return typeof value.httpProxy === 'string' && isValidProxyUrl(value.httpProxy)
|
|
469
|
+
? { httpProxy: value.httpProxy }
|
|
470
|
+
: null;
|
|
408
471
|
}
|
|
409
472
|
function getProjectWriteTarget() {
|
|
410
473
|
const projectRoot = findProjectRoot(process.cwd());
|
|
@@ -464,7 +527,9 @@ function toPeaksConfig(value) {
|
|
|
464
527
|
return {
|
|
465
528
|
...(typeof value.version === 'string' ? { version: value.version } : {}),
|
|
466
529
|
...(typeof value.language === 'string' ? { language: value.language } : {}),
|
|
467
|
-
...(typeof value.model === 'string' && ['haiku', 'sonnet', 'opus'].includes(value.model)
|
|
530
|
+
...(typeof value.model === 'string' && ['haiku', 'sonnet', 'opus'].includes(value.model)
|
|
531
|
+
? { model: value.model }
|
|
532
|
+
: {}),
|
|
468
533
|
...(typeof value.economyMode === 'boolean' ? { economyMode: value.economyMode } : {}),
|
|
469
534
|
...(typeof value.swarmMode === 'boolean' ? { swarmMode: value.swarmMode } : {}),
|
|
470
535
|
...(isRecord(value.tokens) ? { tokens: toTokenConfig(value.tokens) } : {}),
|
|
@@ -497,7 +562,9 @@ function sanitizeWorkspacePartial(partial) {
|
|
|
497
562
|
if (Array.isArray(result.workspaces)) {
|
|
498
563
|
result.workspaces = toWorkspaceConfigs(result.workspaces);
|
|
499
564
|
}
|
|
500
|
-
if (typeof result.currentWorkspace !== 'string' &&
|
|
565
|
+
if (typeof result.currentWorkspace !== 'string' &&
|
|
566
|
+
result.currentWorkspace !== null &&
|
|
567
|
+
result.currentWorkspace !== undefined) {
|
|
501
568
|
delete result.currentWorkspace;
|
|
502
569
|
}
|
|
503
570
|
return result;
|
|
@@ -506,7 +573,10 @@ export function writeConfig(partial, layer = 'user') {
|
|
|
506
573
|
if (!isConfigLayer(layer)) {
|
|
507
574
|
throw new Error('Invalid config layer');
|
|
508
575
|
}
|
|
509
|
-
if (layer === 'project' &&
|
|
576
|
+
if (layer === 'project' &&
|
|
577
|
+
(partial.providers !== undefined ||
|
|
578
|
+
partial.proxy !== undefined ||
|
|
579
|
+
containsSensitiveConfigValue(partial))) {
|
|
510
580
|
throw new Error('Sensitive config keys must be stored in the user config layer');
|
|
511
581
|
}
|
|
512
582
|
validateProviderConfig(partial);
|
|
@@ -538,7 +608,12 @@ export function getConfig(options = {}) {
|
|
|
538
608
|
...userConfig,
|
|
539
609
|
...projectConfigWithoutProxy
|
|
540
610
|
};
|
|
541
|
-
const config = isRecord(source)
|
|
611
|
+
const config = isRecord(source)
|
|
612
|
+
? {
|
|
613
|
+
...source,
|
|
614
|
+
...(source.tokens !== undefined ? { tokens: toTokenConfig(source.tokens) } : {})
|
|
615
|
+
}
|
|
616
|
+
: source;
|
|
542
617
|
if (options.key !== undefined) {
|
|
543
618
|
return getNestedValue(config, options.key);
|
|
544
619
|
}
|
|
@@ -553,7 +628,11 @@ export function setConfig(options) {
|
|
|
553
628
|
throw new Error(`Legacy config key "${options.key}" is no longer stored in ~/.peaks/config.json. ` +
|
|
554
629
|
'Set it under <project>/.peaks/preferences.json (e.g. `peaks preferences set --key <key> --value <value>`).');
|
|
555
630
|
}
|
|
556
|
-
if (layer === 'project' &&
|
|
631
|
+
if (layer === 'project' &&
|
|
632
|
+
(isProviderConfigPath(options.key) ||
|
|
633
|
+
isProxyConfigPath(options.key) ||
|
|
634
|
+
isSensitiveConfigPath(options.key) ||
|
|
635
|
+
containsSensitiveConfigValue(options.value))) {
|
|
557
636
|
throw new Error('Sensitive config keys must be stored in the user config layer');
|
|
558
637
|
}
|
|
559
638
|
if (options.key === 'providers') {
|
|
@@ -573,8 +652,8 @@ export function setConfig(options) {
|
|
|
573
652
|
const targetPath = projectTarget?.configPath ?? getUserConfigPath();
|
|
574
653
|
ensureDir(dirname(targetPath));
|
|
575
654
|
const existing = projectTarget
|
|
576
|
-
? readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {}
|
|
577
|
-
: readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {};
|
|
655
|
+
? (readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {})
|
|
656
|
+
: (readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {});
|
|
578
657
|
const updated = { ...existing };
|
|
579
658
|
setNestedValue(updated, options.key, options.value);
|
|
580
659
|
const content = JSON.stringify(updated, null, 2);
|
|
@@ -599,8 +678,8 @@ function writeRawWorkspaceData(data, layer) {
|
|
|
599
678
|
const targetPath = projectTarget?.configPath ?? getUserConfigPath();
|
|
600
679
|
ensureDir(dirname(targetPath));
|
|
601
680
|
const existing = projectTarget
|
|
602
|
-
? readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {}
|
|
603
|
-
: readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {};
|
|
681
|
+
? (readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {})
|
|
682
|
+
: (readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {});
|
|
604
683
|
const merged = { ...existing, ...data };
|
|
605
684
|
const content = JSON.stringify(merged, null, 2);
|
|
606
685
|
if (projectTarget) {
|
|
@@ -651,7 +730,9 @@ export function removeWorkspace(workspaceId, layer = 'user') {
|
|
|
651
730
|
if (idx < 0)
|
|
652
731
|
return false;
|
|
653
732
|
const updatedWorkspaces = workspaces.filter((w) => w.workspaceId !== workspaceId);
|
|
654
|
-
const currentWorkspace = config.currentWorkspace === workspaceId
|
|
733
|
+
const currentWorkspace = config.currentWorkspace === workspaceId
|
|
734
|
+
? (updatedWorkspaces[0]?.workspaceId ?? null)
|
|
735
|
+
: (config.currentWorkspace ?? null);
|
|
655
736
|
writeRawWorkspaceData({ workspaces: updatedWorkspaces, currentWorkspace }, layer);
|
|
656
737
|
return true;
|
|
657
738
|
}
|
|
@@ -689,7 +770,9 @@ function findWorkspaceForPath(workspaces, path) {
|
|
|
689
770
|
return matches.reduce((best, match) => match.rootPath.length > best.rootPath.length ? match : best).workspace;
|
|
690
771
|
}
|
|
691
772
|
function getWorkspaceArtifactRoot(workspace) {
|
|
692
|
-
return workspace.artifactStorage?.localPath
|
|
773
|
+
return workspace.artifactStorage?.localPath
|
|
774
|
+
? resolve(workspace.artifactStorage.localPath)
|
|
775
|
+
: resolve(workspace.rootPath, '.peaks', 'artifacts');
|
|
693
776
|
}
|
|
694
777
|
function ensureArtifactWorkspaceMarker(workspace) {
|
|
695
778
|
const artifactRoot = getWorkspaceArtifactRoot(workspace);
|
|
@@ -68,7 +68,8 @@ export async function getStrongestModelIdAsync(config, runtimeProbeDisabled = fa
|
|
|
68
68
|
if (probed && probed.length > 0)
|
|
69
69
|
return probed;
|
|
70
70
|
}
|
|
71
|
-
catch {
|
|
71
|
+
catch {
|
|
72
|
+
// TODO(g2): best-effort runtime probe — fall through to back-compat default is intentional
|
|
72
73
|
// best-effort — fall through to back-compat default
|
|
73
74
|
}
|
|
74
75
|
}
|
|
@@ -101,5 +102,7 @@ export function getEconomyAwareExecutionModelId(config) {
|
|
|
101
102
|
// (matches the pre-slice implicit default from DEFAULT_CONFIG.economyMode = true). Only an
|
|
102
103
|
// explicit `economyMode === false` switches execution to the strongest planner/reviewer
|
|
103
104
|
// model (resolved dynamically per Slice 2026-07-09 add-zcode-adapter A.3).
|
|
104
|
-
return config.economyMode !== false
|
|
105
|
+
return config.economyMode !== false
|
|
106
|
+
? getConfiguredExecutionModelId(config.providers)
|
|
107
|
+
: getStrongestModelId(config);
|
|
105
108
|
}
|
|
@@ -3,7 +3,12 @@ const EMPTY_PROXY = { version: SIDECAR_SCHEMA_VERSION, httpProxy: null };
|
|
|
3
3
|
export function isValidProxyUrl(value) {
|
|
4
4
|
try {
|
|
5
5
|
const url = new URL(value);
|
|
6
|
-
return (url.protocol === 'http:' || url.protocol === 'https:') &&
|
|
6
|
+
return ((url.protocol === 'http:' || url.protocol === 'https:') &&
|
|
7
|
+
url.username.length === 0 &&
|
|
8
|
+
url.password.length === 0 &&
|
|
9
|
+
url.pathname === '/' &&
|
|
10
|
+
url.search.length === 0 &&
|
|
11
|
+
url.hash.length === 0);
|
|
7
12
|
}
|
|
8
13
|
catch {
|
|
9
14
|
return false;
|
|
@@ -16,7 +16,10 @@ function isRecord(value) {
|
|
|
16
16
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
17
17
|
}
|
|
18
18
|
function sanitizeArtifactRemoteRepo(value) {
|
|
19
|
-
if (!isRecord(value) ||
|
|
19
|
+
if (!isRecord(value) ||
|
|
20
|
+
(value.provider !== 'github' && value.provider !== 'gitlab') ||
|
|
21
|
+
typeof value.owner !== 'string' ||
|
|
22
|
+
typeof value.name !== 'string')
|
|
20
23
|
return null;
|
|
21
24
|
if (!isSafeSegment(value.owner) || !isSafeSegment(value.name))
|
|
22
25
|
return null;
|
|
@@ -37,7 +40,12 @@ function sanitizeWorkspace(value) {
|
|
|
37
40
|
if (!isRecord(value))
|
|
38
41
|
return null;
|
|
39
42
|
const { workspaceId, name, rootPath, installedCapabilityIds } = value;
|
|
40
|
-
if (typeof workspaceId !== 'string' ||
|
|
43
|
+
if (typeof workspaceId !== 'string' ||
|
|
44
|
+
!isSafeSegment(workspaceId) ||
|
|
45
|
+
typeof name !== 'string' ||
|
|
46
|
+
typeof rootPath !== 'string' ||
|
|
47
|
+
!Array.isArray(installedCapabilityIds) ||
|
|
48
|
+
!installedCapabilityIds.every((id) => typeof id === 'string'))
|
|
41
49
|
return null;
|
|
42
50
|
const artifactRepo = sanitizeArtifactRemoteRepo(value.artifactRepo);
|
|
43
51
|
const artifactStorage = sanitizeArtifactStorage(value.artifactStorage);
|
|
@@ -51,7 +59,9 @@ function sanitizeWorkspace(value) {
|
|
|
51
59
|
};
|
|
52
60
|
}
|
|
53
61
|
function sanitizeWorkspaces(value) {
|
|
54
|
-
return Array.isArray(value)
|
|
62
|
+
return Array.isArray(value)
|
|
63
|
+
? value.map(sanitizeWorkspace).filter((w) => w !== null)
|
|
64
|
+
: [];
|
|
55
65
|
}
|
|
56
66
|
function loadWorkspacesSidecar() {
|
|
57
67
|
const raw = readSidecarJson(workspacesConfigPath(), EMPTY_WORKSPACES);
|
|
@@ -103,7 +113,9 @@ export function removeWorkspace(workspaceId) {
|
|
|
103
113
|
if (idx < 0)
|
|
104
114
|
return false;
|
|
105
115
|
const nextWorkspaces = data.workspaces.filter((w) => w.workspaceId !== workspaceId);
|
|
106
|
-
const nextCurrent = data.currentWorkspace === workspaceId
|
|
116
|
+
const nextCurrent = data.currentWorkspace === workspaceId
|
|
117
|
+
? (nextWorkspaces[0]?.workspaceId ?? null)
|
|
118
|
+
: data.currentWorkspace;
|
|
107
119
|
saveWorkspacesSidecar({ ...data, workspaces: nextWorkspaces, currentWorkspace: nextCurrent });
|
|
108
120
|
return true;
|
|
109
121
|
}
|
|
@@ -126,7 +138,7 @@ function findWorkspaceForPath(workspaces, path) {
|
|
|
126
138
|
});
|
|
127
139
|
if (matches.length === 0)
|
|
128
140
|
return null;
|
|
129
|
-
return matches.reduce((best, match) =>
|
|
141
|
+
return matches.reduce((best, match) => match.rootPath.length > best.rootPath.length ? match : best).workspace;
|
|
130
142
|
}
|
|
131
143
|
export function getWorkspaceConfigForPath(path) {
|
|
132
144
|
return findWorkspaceForPath(getWorkspaces(), path);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input types for the IDE-aware compact dispatcher (`auto-compact-dispatcher.ts`).
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-dispatcher.ts` (file-size cap campaign) so the
|
|
5
|
+
* dispatcher stays under the raw-line cap. The dispatcher re-exports every
|
|
6
|
+
* name declared here, so existing importers keep using
|
|
7
|
+
* `./auto-compact-dispatcher.js` unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export type CompactTarget = 'main' | 'sub-agent';
|
|
10
|
+
export interface DispatchIdeCompactInput {
|
|
11
|
+
readonly projectRoot: string;
|
|
12
|
+
readonly sessionId: string;
|
|
13
|
+
readonly env?: NodeJS.ProcessEnv | undefined;
|
|
14
|
+
/** Spawn timeout (ms). Default 30s — Claude Code `/compact` is sync. */
|
|
15
|
+
readonly timeoutMs?: number | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Slice 2026-06-28-code-mode-bypass-fix (defect #4): which session
|
|
18
|
+
* the compact should target. Default `'main'` — the orchestrator
|
|
19
|
+
* (peaks-code body) runs in the main-session Claude Code window and
|
|
20
|
+
* wants to compress *its* context, not a sub-agent's. Sub-agent
|
|
21
|
+
* shells that spawn their own `peaks code auto-compact` flow pass
|
|
22
|
+
* `'sub-agent'` to preserve the legacy shell-spawn behaviour.
|
|
23
|
+
*
|
|
24
|
+
* Behaviour matrix, keyed on the ADAPTER'S DECLARED pathway only
|
|
25
|
+
* — never on the adapter's name (slice
|
|
26
|
+
* 2026-09-12-auto-compact-vendor-neutrality):
|
|
27
|
+
* - target='main' → llm-self-compress (write intent; main LLM
|
|
28
|
+
* fires its compact command on its next turn).
|
|
29
|
+
* - target='sub-agent'→ shell-exec stub (DEPRECATED — no host
|
|
30
|
+
* CLI spawn; returns envelope with
|
|
31
|
+
* `pathway: 'shell-exec'` for legacy
|
|
32
|
+
* contract only — see rid-031).
|
|
33
|
+
* An adapter with no registered `compact` profile returns noop for
|
|
34
|
+
* BOTH targets; an adapter whose profile serves the main session is
|
|
35
|
+
* dispatched regardless of which IDE it is.
|
|
36
|
+
*/
|
|
37
|
+
readonly target?: CompactTarget | undefined;
|
|
38
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input types for the IDE-aware compact dispatcher (`auto-compact-dispatcher.ts`).
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-dispatcher.ts` (file-size cap campaign) so the
|
|
5
|
+
* dispatcher stays under the raw-line cap. The dispatcher re-exports every
|
|
6
|
+
* name declared here, so existing importers keep using
|
|
7
|
+
* `./auto-compact-dispatcher.js` unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
@@ -1,34 +1,6 @@
|
|
|
1
1
|
import type { CompactDispatchResult } from './auto-compact-types.js';
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
readonly projectRoot: string;
|
|
5
|
-
readonly sessionId: string;
|
|
6
|
-
readonly env?: NodeJS.ProcessEnv | undefined;
|
|
7
|
-
/** Spawn timeout (ms). Default 30s — Claude Code `/compact` is sync. */
|
|
8
|
-
readonly timeoutMs?: number | undefined;
|
|
9
|
-
/**
|
|
10
|
-
* Slice 2026-06-28-code-mode-bypass-fix (defect #4): which session
|
|
11
|
-
* the compact should target. Default `'main'` — the orchestrator
|
|
12
|
-
* (peaks-code body) runs in the main-session Claude Code window and
|
|
13
|
-
* wants to compress *its* context, not a sub-agent's. Sub-agent
|
|
14
|
-
* shells that spawn their own `peaks code auto-compact` flow pass
|
|
15
|
-
* `'sub-agent'` to preserve the legacy shell-spawn behaviour.
|
|
16
|
-
*
|
|
17
|
-
* Behaviour matrix, keyed on the ADAPTER'S DECLARED pathway only
|
|
18
|
-
* — never on the adapter's name (slice
|
|
19
|
-
* 2026-09-12-auto-compact-vendor-neutrality):
|
|
20
|
-
* - target='main' → llm-self-compress (write intent; main LLM
|
|
21
|
-
* fires its compact command on its next turn).
|
|
22
|
-
* - target='sub-agent'→ shell-exec stub (DEPRECATED — no host
|
|
23
|
-
* CLI spawn; returns envelope with
|
|
24
|
-
* `pathway: 'shell-exec'` for legacy
|
|
25
|
-
* contract only — see rid-031).
|
|
26
|
-
* An adapter with no registered `compact` profile returns noop for
|
|
27
|
-
* BOTH targets; an adapter whose profile serves the main session is
|
|
28
|
-
* dispatched regardless of which IDE it is.
|
|
29
|
-
*/
|
|
30
|
-
readonly target?: CompactTarget | undefined;
|
|
31
|
-
}
|
|
2
|
+
import type { CompactTarget, DispatchIdeCompactInput } from './auto-compact-dispatcher-input.js';
|
|
3
|
+
export type { CompactTarget, DispatchIdeCompactInput };
|
|
32
4
|
/**
|
|
33
5
|
* Dispatch compact via the active IDE's registered pathway.
|
|
34
6
|
*
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input type for the auto context-percent probe (`auto-compact-reader.ts`).
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-reader.ts` (file-size cap campaign) so the reader
|
|
5
|
+
* stays under the raw-line cap. The reader re-exports every name declared
|
|
6
|
+
* here, so existing importers keep using `./auto-compact-reader.js` unchanged.
|
|
7
|
+
*/
|
|
8
|
+
export interface ReadContextPercentInput {
|
|
9
|
+
readonly projectRoot: string;
|
|
10
|
+
readonly sessionId: string;
|
|
11
|
+
/**
|
|
12
|
+
* Outer (harness / IDE) session id — the id the IDE uses to name its
|
|
13
|
+
* transcript / session files. Resolved by the caller (env signal → bound
|
|
14
|
+
* session meta) and passed through to the adapter's
|
|
15
|
+
* `readContextPercentFallback`. Optional: when unresolved, the adapter
|
|
16
|
+
* fallback returns null → conservative-fallback.
|
|
17
|
+
*/
|
|
18
|
+
readonly outerSessionId?: string | undefined;
|
|
19
|
+
readonly env?: NodeJS.ProcessEnv | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Slice 2026-07-31-rid-002: explicit byte count from `--prompt-size <bytes>`.
|
|
22
|
+
* When set to a finite non-negative number, short-circuits the entire
|
|
23
|
+
* env / statusline / transcript chain with `source: 'user-overridden'`.
|
|
24
|
+
* Mac escape hatch — some IDEs (e.g. Claude Code on macOS) do NOT
|
|
25
|
+
* inject their context-percent env-var into PreToolUse sub-shells, so the
|
|
26
|
+
* user (or a hook wrapper) can inject the bytes they observed themselves.
|
|
27
|
+
* Priority P0 — above everything else.
|
|
28
|
+
*/
|
|
29
|
+
readonly promptSizeBytes?: number | undefined;
|
|
30
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input type for the auto context-percent probe (`auto-compact-reader.ts`).
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-reader.ts` (file-size cap campaign) so the reader
|
|
5
|
+
* stays under the raw-line cap. The reader re-exports every name declared
|
|
6
|
+
* here, so existing importers keep using `./auto-compact-reader.js` unchanged.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
@@ -1,28 +1,7 @@
|
|
|
1
1
|
import type { ContextPercentProbe } from './auto-compact-types.js';
|
|
2
2
|
import { type HarnessWindowLocation, type HarnessWindowReadResult, type HarnessWindowSyncResult } from './harness-window-config.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
readonly sessionId: string;
|
|
6
|
-
/**
|
|
7
|
-
* Outer (harness / IDE) session id — the id the IDE uses to name its
|
|
8
|
-
* transcript / session files. Resolved by the caller (env signal → bound
|
|
9
|
-
* session meta) and passed through to the adapter's
|
|
10
|
-
* `readContextPercentFallback`. Optional: when unresolved, the adapter
|
|
11
|
-
* fallback returns null → conservative-fallback.
|
|
12
|
-
*/
|
|
13
|
-
readonly outerSessionId?: string | undefined;
|
|
14
|
-
readonly env?: NodeJS.ProcessEnv | undefined;
|
|
15
|
-
/**
|
|
16
|
-
* Slice 2026-07-31-rid-002: explicit byte count from `--prompt-size <bytes>`.
|
|
17
|
-
* When set to a finite non-negative number, short-circuits the entire
|
|
18
|
-
* env / statusline / transcript chain with `source: 'user-overridden'`.
|
|
19
|
-
* Mac escape hatch — some IDEs (e.g. Claude Code on macOS) do NOT
|
|
20
|
-
* inject their context-percent env-var into PreToolUse sub-shells, so the
|
|
21
|
-
* user (or a hook wrapper) can inject the bytes they observed themselves.
|
|
22
|
-
* Priority P0 — above everything else.
|
|
23
|
-
*/
|
|
24
|
-
readonly promptSizeBytes?: number | undefined;
|
|
25
|
-
}
|
|
3
|
+
import type { ReadContextPercentInput } from './auto-compact-reader-input.js';
|
|
4
|
+
export type { ReadContextPercentInput };
|
|
26
5
|
/**
|
|
27
6
|
* Resolve WHERE the harness auto-compact window lives, for the IDE the
|
|
28
7
|
* current env selects. Returns `null` when either half is undeclared:
|
|
@@ -113,4 +92,3 @@ export declare function readContextPercent(input: ReadContextPercentInput): Cont
|
|
|
113
92
|
export declare const _internal: {
|
|
114
93
|
readEnvPercent: typeof readEnvPercent;
|
|
115
94
|
};
|
|
116
|
-
export {};
|
|
@@ -238,7 +238,10 @@ export function readContextPercent(input) {
|
|
|
238
238
|
// peaks-loop is the one that wrote it, so the adapter may self-correct
|
|
239
239
|
// its own earlier resolution without ever overruling a human's pin.
|
|
240
240
|
...(harnessWindowTokens !== undefined
|
|
241
|
-
? {
|
|
241
|
+
? {
|
|
242
|
+
harnessWindowTokens,
|
|
243
|
+
harnessWindowPeakWritten: harnessWindowState?.peakWritten === true
|
|
244
|
+
}
|
|
242
245
|
: {})
|
|
243
246
|
});
|
|
244
247
|
if (fallback)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-compact threshold ratios and the `CompactTrigger` decision shape.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-types.ts` (file-size cap campaign) so the shared
|
|
5
|
+
* types module stays under the raw-line cap. `auto-compact-types.ts`
|
|
6
|
+
* re-exports every name declared here, so existing importers keep using
|
|
7
|
+
* `./auto-compact-types.js` unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export declare const AUTO_COMPACT_SOFT_WARN_RATIO = 0.5;
|
|
10
|
+
export declare const AUTO_COMPACT_AUTO_FIRE_RATIO = 0.8;
|
|
11
|
+
export declare const AUTO_COMPACT_PRE_COMPACT_RATIO = 0.85;
|
|
12
|
+
export declare const AUTO_COMPACT_RED_LINE_RATIO = 0.95;
|
|
13
|
+
export declare const AUTO_COMPACT_THRESHOLD_RATIO = 0.8;
|
|
14
|
+
/** Single source of truth for "what should we do at ratio X?" */
|
|
15
|
+
export type CompactTrigger = {
|
|
16
|
+
kind: 'none';
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'soft-warn';
|
|
19
|
+
ratio: number;
|
|
20
|
+
message: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Part 22: auto-fire zone (0.80 ≤ ratio < 0.85). peaks-loop
|
|
24
|
+
* preempts and runs `peaks code auto-compact` itself
|
|
25
|
+
* without LLM involvement. The LLM is not asked to "decide";
|
|
26
|
+
* the toolkit is applied synchronously.
|
|
27
|
+
*/
|
|
28
|
+
| {
|
|
29
|
+
kind: 'auto-fire';
|
|
30
|
+
ratio: number;
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Pre-compact zone (0.85 ≤ ratio < 0.95): LLM-runner can still
|
|
35
|
+
* pre-empt the compact for one in-flight sub-agent or one
|
|
36
|
+
* todo row, but peaks-loop flags this as the last safe
|
|
37
|
+
* window. Kept for backward compat; in practice peaks-loop
|
|
38
|
+
* auto-fired at 0.80 already.
|
|
39
|
+
*/
|
|
40
|
+
| {
|
|
41
|
+
kind: 'pre-compact';
|
|
42
|
+
ratio: number;
|
|
43
|
+
message: string;
|
|
44
|
+
toolkitReady: true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Red line (ratio ≥ 0.95): peaks-loop asks the harness to compact and says
|
|
48
|
+
* it is waiting. Dispatch is NOT blocked — see `redLineRequested`.
|
|
49
|
+
*/
|
|
50
|
+
| {
|
|
51
|
+
kind: 'red-line';
|
|
52
|
+
ratio: number;
|
|
53
|
+
message: string;
|
|
54
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-compact threshold ratios and the `CompactTrigger` decision shape.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-types.ts` (file-size cap campaign) so the shared
|
|
5
|
+
* types module stays under the raw-line cap. `auto-compact-types.ts`
|
|
6
|
+
* re-exports every name declared here, so existing importers keep using
|
|
7
|
+
* `./auto-compact-types.js` unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export const AUTO_COMPACT_SOFT_WARN_RATIO = 0.5;
|
|
10
|
+
// Part 22: auto-fire threshold (was 0.85 pre-compact zone where
|
|
11
|
+
// the LLM had to decide; LLM misjudged 0.85–0.95 and only fired
|
|
12
|
+
// at 0.95, which let the LLM time the run anyway). Lowered to
|
|
13
|
+
// 0.80 so peaks-loop auto-fires compact without LLM involvement
|
|
14
|
+
// — the LLM keeps working, peaks-loop preempts when ratio crosses
|
|
15
|
+
// the new threshold.
|
|
16
|
+
export const AUTO_COMPACT_AUTO_FIRE_RATIO = 0.8;
|
|
17
|
+
export const AUTO_COMPACT_PRE_COMPACT_RATIO = 0.85;
|
|
18
|
+
export const AUTO_COMPACT_RED_LINE_RATIO = 0.95;
|
|
19
|
+
export const AUTO_COMPACT_THRESHOLD_RATIO = AUTO_COMPACT_AUTO_FIRE_RATIO;
|