peaks-loop 4.0.54 → 4.1.1
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 +61 -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 +86 -39
- 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/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- 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 +57 -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 +32 -17
- package/dist/cli/commands/core/standards-command.js +56 -14
- 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 +18 -23
- package/dist/cli/commands/ecc-commands.js +39 -36
- 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 +16 -6
- 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/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 +8 -10
- 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 +66 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +25 -69
- 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/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -6
- 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/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +57 -0
- package/dist/services/comments/comment-audit.js +100 -0
- package/dist/services/comments/comment-citations.d.ts +60 -0
- package/dist/services/comments/comment-citations.js +186 -0
- package/dist/services/comments/comment-hygiene.d.ts +79 -0
- package/dist/services/comments/comment-hygiene.js +133 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +148 -0
- package/dist/services/comments/prune-apply.d.ts +60 -0
- package/dist/services/comments/prune-apply.js +150 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- 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.d.ts +0 -16
- package/dist/services/log/retention.js +2 -18
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +144 -38
- 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 +62 -1
- package/dist/services/prd/handoff-gate-evidence.js +14 -10
- 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 +12 -38
- package/dist/services/prd/handoff-service.js +25 -147
- package/dist/services/prd/handoff-types.d.ts +33 -1
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.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/recommendations/installed-capability-detector.d.ts +5 -5
- package/dist/services/recommendations/installed-capability-detector.js +11 -10
- 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 +74 -0
- package/dist/services/scan/archetype-detection.js +315 -0
- package/dist/services/scan/archetype-service.js +58 -133
- 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/scan-types.d.ts +9 -0
- 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/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/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- 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 +12 -4
- 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 +286 -283
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -94
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -405
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -11,16 +11,40 @@
|
|
|
11
11
|
* }
|
|
12
12
|
*
|
|
13
13
|
* The `peaks code gate-step-08` hook reads this file in its case-1 path
|
|
14
|
-
* (job-shape.json says isJob=true) and surfaces
|
|
15
|
-
*
|
|
14
|
+
* (job-shape.json says isJob=true) and surfaces the next-slice sentence built by
|
|
15
|
+
* {@link describeNextSlice} — `Next: slice #N of M (<label>)` only while the
|
|
16
|
+
* ledger has a slice pending — to stdout. The LLM cannot "wake up cold" — the
|
|
16
17
|
* next-slice context is mechanically injected on every Bash call.
|
|
17
18
|
*
|
|
18
|
-
* Karpathy §2 (Simplicity First):
|
|
19
|
-
*
|
|
19
|
+
* Karpathy §2 (Simplicity First): one small file — write the mirror, read the
|
|
20
|
+
* mirror, and put the mirror into words (describeNextSlice).
|
|
21
|
+
* Schema is zod-validated on read so a stale on-disk copy
|
|
20
22
|
* from an earlier peaks-loop release fails loud (no silent fallback).
|
|
21
23
|
*/
|
|
22
24
|
import { z } from 'zod';
|
|
23
25
|
export declare const JOB_PROGRESS_SCHEMA_VERSION: 1;
|
|
26
|
+
/**
|
|
27
|
+
* D3 (rid 2026-10-03-job-ledger-truthfulness) — what the mirror says when the
|
|
28
|
+
* ledger has no pending slice.
|
|
29
|
+
*
|
|
30
|
+
* `currentSlice` is required by the schema below (it is a `string`, and readers
|
|
31
|
+
* such as `src/services/code/step-08-gate.ts` and
|
|
32
|
+
* `src/services/context/post-compact-reinjection.ts` print it inside the
|
|
33
|
+
* next-slice sentence), so a job with nothing left still has
|
|
34
|
+
* to put SOMETHING in the field. Until this slice the CLI invented an identity
|
|
35
|
+
* for it — `slice-${state.done + 1}` — and §2.38 caught the result:
|
|
36
|
+
* `currentSlice: "slice-2"` on a job whose only registered slice was
|
|
37
|
+
* `slice-001`, already done. A label that describes no slice in the ledger is not
|
|
38
|
+
* a placeholder, it is a false claim about the work.
|
|
39
|
+
*
|
|
40
|
+
* So the value is a sentence about the state, not a name: it matches no
|
|
41
|
+
* `sliceId`, no `label`, and no `slice-<digits>` shape a caller could mistake for
|
|
42
|
+
* one. Changing the FIELD (or making it optional) is out of scope — readers
|
|
43
|
+
* already consume it — this only decides what honest text goes in when there is
|
|
44
|
+
* no next slice. {@link describeNextSlice} is what turns that field into the line
|
|
45
|
+
* a reader sees; it recognises this value rather than printing it.
|
|
46
|
+
*/
|
|
47
|
+
export declare const NO_PENDING_SLICE_LABEL = "no slice pending";
|
|
24
48
|
export declare const JobProgressSchema: z.ZodObject<{
|
|
25
49
|
schemaVersion: z.ZodLiteral<1>;
|
|
26
50
|
jobId: z.ZodString;
|
|
@@ -35,10 +59,56 @@ export interface WriteProgressInput {
|
|
|
35
59
|
readonly jobId: string;
|
|
36
60
|
readonly done: number;
|
|
37
61
|
readonly total: number;
|
|
38
|
-
|
|
62
|
+
/**
|
|
63
|
+
* The next slice to work on, as the ledger names it.
|
|
64
|
+
*
|
|
65
|
+
* D3: `undefined` means the ledger has no pending slice — the writer then
|
|
66
|
+
* records `NO_PENDING_SLICE_LABEL`. It is deliberately NOT the caller's job to
|
|
67
|
+
* supply a stand-in: every caller that had to invent one invented a slice id.
|
|
68
|
+
*/
|
|
69
|
+
readonly currentSlice: string | undefined;
|
|
39
70
|
readonly lastCommitSha: string | null;
|
|
40
71
|
readonly updatedAt?: string;
|
|
41
72
|
}
|
|
42
73
|
export declare function writeJobProgress(projectRoot: string, sessionId: string, input: WriteProgressInput): JobProgress;
|
|
43
74
|
export declare function readJobProgress(projectRoot: string, sessionId: string, jobId: string): JobProgress;
|
|
44
75
|
export declare function tryReadJobProgress(projectRoot: string, sessionId: string, jobId: string): JobProgress | null;
|
|
76
|
+
/** What the next-slice sentence is allowed to reason about. */
|
|
77
|
+
export interface NextSliceFacts {
|
|
78
|
+
readonly done: number;
|
|
79
|
+
readonly total: number;
|
|
80
|
+
readonly currentSlice: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* criterion (c) (rid 2026-10-03-job-ledger-repair1) — the one sentence the reader
|
|
84
|
+
* acts on, built from the mirror instead of guessed at.
|
|
85
|
+
*
|
|
86
|
+
* WHY THIS EXISTS. The parent slice made `currentSlice` honest (§2.38: it used to
|
|
87
|
+
* carry `slice-2` on a job whose only slice was `slice-001`), and left every reader
|
|
88
|
+
* of the mirror interpolating it into `slice #${done + 1} of ${total}`. Measured on
|
|
89
|
+
* the built tree, a finished two-slice job printed
|
|
90
|
+
*
|
|
91
|
+
* next: Next: slice #3 of 2 (no slice pending)
|
|
92
|
+
*
|
|
93
|
+
* So the field said the truth and the line said something the ledger cannot
|
|
94
|
+
* support: an index for a slice that does not exist, in the one line a human or a
|
|
95
|
+
* resumed LLM actually reads. `done + 1` is only ever entitled to be an index when
|
|
96
|
+
* the ledger still has a slice pending, which is exactly the state
|
|
97
|
+
* {@link NO_PENDING_SLICE_LABEL} records.
|
|
98
|
+
*
|
|
99
|
+
* THE RULE, in the order the branches are taken:
|
|
100
|
+
* - nothing pending and every registered slice done → say none is registered left,
|
|
101
|
+
* and name the command that changes that (`add-slice`), with the job id filled in;
|
|
102
|
+
* - nothing pending but registered slices unfinished (blocked / failed / skipped)
|
|
103
|
+
* → say none is PENDING; claiming `slice #N` there would promote the index of a
|
|
104
|
+
* slice the ledger has stopped queueing;
|
|
105
|
+
* - pending, and `done` has not yet consumed `total` → the ordinary
|
|
106
|
+
* `slice #N of M`, and this is the only branch that may print an index;
|
|
107
|
+
* - pending, but the mirror already records `total` done → the mirror contradicts
|
|
108
|
+
* itself (it is a file another process writes). Print no index, name the slice,
|
|
109
|
+
* and send the reader to the authority — `peaks job status`.
|
|
110
|
+
*
|
|
111
|
+
* All three shipped readers call this, so the sentence and the command it advises
|
|
112
|
+
* cannot drift apart again.
|
|
113
|
+
*/
|
|
114
|
+
export declare function describeNextSlice(progress: NextSliceFacts, jobId?: string | null): string;
|
|
@@ -11,12 +11,14 @@
|
|
|
11
11
|
* }
|
|
12
12
|
*
|
|
13
13
|
* The `peaks code gate-step-08` hook reads this file in its case-1 path
|
|
14
|
-
* (job-shape.json says isJob=true) and surfaces
|
|
15
|
-
*
|
|
14
|
+
* (job-shape.json says isJob=true) and surfaces the next-slice sentence built by
|
|
15
|
+
* {@link describeNextSlice} — `Next: slice #N of M (<label>)` only while the
|
|
16
|
+
* ledger has a slice pending — to stdout. The LLM cannot "wake up cold" — the
|
|
16
17
|
* next-slice context is mechanically injected on every Bash call.
|
|
17
18
|
*
|
|
18
|
-
* Karpathy §2 (Simplicity First):
|
|
19
|
-
*
|
|
19
|
+
* Karpathy §2 (Simplicity First): one small file — write the mirror, read the
|
|
20
|
+
* mirror, and put the mirror into words (describeNextSlice).
|
|
21
|
+
* Schema is zod-validated on read so a stale on-disk copy
|
|
20
22
|
* from an earlier peaks-loop release fails loud (no silent fallback).
|
|
21
23
|
*/
|
|
22
24
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
@@ -38,6 +40,28 @@ function jobProgressDir(projectRoot, sessionId, jobId) {
|
|
|
38
40
|
return runtimeRoot(projectRoot).join(guardRuntimeSegment(sessionId, 'session id'), guardRuntimeSegment('job', 'role'), guardRuntimeSegment(jobId, 'job id'));
|
|
39
41
|
}
|
|
40
42
|
export const JOB_PROGRESS_SCHEMA_VERSION = 1;
|
|
43
|
+
/**
|
|
44
|
+
* D3 (rid 2026-10-03-job-ledger-truthfulness) — what the mirror says when the
|
|
45
|
+
* ledger has no pending slice.
|
|
46
|
+
*
|
|
47
|
+
* `currentSlice` is required by the schema below (it is a `string`, and readers
|
|
48
|
+
* such as `src/services/code/step-08-gate.ts` and
|
|
49
|
+
* `src/services/context/post-compact-reinjection.ts` print it inside the
|
|
50
|
+
* next-slice sentence), so a job with nothing left still has
|
|
51
|
+
* to put SOMETHING in the field. Until this slice the CLI invented an identity
|
|
52
|
+
* for it — `slice-${state.done + 1}` — and §2.38 caught the result:
|
|
53
|
+
* `currentSlice: "slice-2"` on a job whose only registered slice was
|
|
54
|
+
* `slice-001`, already done. A label that describes no slice in the ledger is not
|
|
55
|
+
* a placeholder, it is a false claim about the work.
|
|
56
|
+
*
|
|
57
|
+
* So the value is a sentence about the state, not a name: it matches no
|
|
58
|
+
* `sliceId`, no `label`, and no `slice-<digits>` shape a caller could mistake for
|
|
59
|
+
* one. Changing the FIELD (or making it optional) is out of scope — readers
|
|
60
|
+
* already consume it — this only decides what honest text goes in when there is
|
|
61
|
+
* no next slice. {@link describeNextSlice} is what turns that field into the line
|
|
62
|
+
* a reader sees; it recognises this value rather than printing it.
|
|
63
|
+
*/
|
|
64
|
+
export const NO_PENDING_SLICE_LABEL = 'no slice pending';
|
|
41
65
|
export const JobProgressSchema = z.object({
|
|
42
66
|
schemaVersion: z.literal(JOB_PROGRESS_SCHEMA_VERSION),
|
|
43
67
|
jobId: z.string(),
|
|
@@ -55,7 +79,7 @@ export function writeJobProgress(projectRoot, sessionId, input) {
|
|
|
55
79
|
jobId: input.jobId,
|
|
56
80
|
done: input.done,
|
|
57
81
|
total: input.total,
|
|
58
|
-
currentSlice: input.currentSlice,
|
|
82
|
+
currentSlice: input.currentSlice ?? NO_PENDING_SLICE_LABEL,
|
|
59
83
|
lastCommitSha: input.lastCommitSha,
|
|
60
84
|
updatedAt: input.updatedAt ?? new Date().toISOString()
|
|
61
85
|
};
|
|
@@ -79,7 +103,60 @@ export function tryReadJobProgress(projectRoot, sessionId, jobId) {
|
|
|
79
103
|
const raw = readFileSync(path, 'utf8');
|
|
80
104
|
return JobProgressSchema.parse(JSON.parse(raw));
|
|
81
105
|
}
|
|
82
|
-
catch {
|
|
106
|
+
catch {
|
|
107
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
83
108
|
return null;
|
|
84
109
|
}
|
|
85
110
|
}
|
|
111
|
+
/** The advice command's label slot: a shape to fill in, never a made-up slice name. */
|
|
112
|
+
const ADD_SLICE_LABEL_SLOT = '"<label>"';
|
|
113
|
+
function addSliceAdvice(jobId) {
|
|
114
|
+
return `peaks job add-slice --job-id ${jobId ?? '<job-id>'} --slice-label ${ADD_SLICE_LABEL_SLOT}`;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* criterion (c) (rid 2026-10-03-job-ledger-repair1) — the one sentence the reader
|
|
118
|
+
* acts on, built from the mirror instead of guessed at.
|
|
119
|
+
*
|
|
120
|
+
* WHY THIS EXISTS. The parent slice made `currentSlice` honest (§2.38: it used to
|
|
121
|
+
* carry `slice-2` on a job whose only slice was `slice-001`), and left every reader
|
|
122
|
+
* of the mirror interpolating it into `slice #${done + 1} of ${total}`. Measured on
|
|
123
|
+
* the built tree, a finished two-slice job printed
|
|
124
|
+
*
|
|
125
|
+
* next: Next: slice #3 of 2 (no slice pending)
|
|
126
|
+
*
|
|
127
|
+
* So the field said the truth and the line said something the ledger cannot
|
|
128
|
+
* support: an index for a slice that does not exist, in the one line a human or a
|
|
129
|
+
* resumed LLM actually reads. `done + 1` is only ever entitled to be an index when
|
|
130
|
+
* the ledger still has a slice pending, which is exactly the state
|
|
131
|
+
* {@link NO_PENDING_SLICE_LABEL} records.
|
|
132
|
+
*
|
|
133
|
+
* THE RULE, in the order the branches are taken:
|
|
134
|
+
* - nothing pending and every registered slice done → say none is registered left,
|
|
135
|
+
* and name the command that changes that (`add-slice`), with the job id filled in;
|
|
136
|
+
* - nothing pending but registered slices unfinished (blocked / failed / skipped)
|
|
137
|
+
* → say none is PENDING; claiming `slice #N` there would promote the index of a
|
|
138
|
+
* slice the ledger has stopped queueing;
|
|
139
|
+
* - pending, and `done` has not yet consumed `total` → the ordinary
|
|
140
|
+
* `slice #N of M`, and this is the only branch that may print an index;
|
|
141
|
+
* - pending, but the mirror already records `total` done → the mirror contradicts
|
|
142
|
+
* itself (it is a file another process writes). Print no index, name the slice,
|
|
143
|
+
* and send the reader to the authority — `peaks job status`.
|
|
144
|
+
*
|
|
145
|
+
* All three shipped readers call this, so the sentence and the command it advises
|
|
146
|
+
* cannot drift apart again.
|
|
147
|
+
*/
|
|
148
|
+
export function describeNextSlice(progress, jobId) {
|
|
149
|
+
const id = jobId ?? '<job-id>';
|
|
150
|
+
if (progress.currentSlice === NO_PENDING_SLICE_LABEL) {
|
|
151
|
+
return progress.done >= progress.total
|
|
152
|
+
? `no further slice is registered — add one with: ${addSliceAdvice(id)}`
|
|
153
|
+
: `no slice is pending — ${progress.done} of ${progress.total} registered slices are ` +
|
|
154
|
+
`done and the rest are not pending; add one with: ${addSliceAdvice(id)}`;
|
|
155
|
+
}
|
|
156
|
+
if (progress.done >= progress.total) {
|
|
157
|
+
return (`the progress mirror names pending slice "${progress.currentSlice}" while recording ` +
|
|
158
|
+
`${progress.done} of ${progress.total} slices done — trust the ledger: ` +
|
|
159
|
+
`peaks job status --job-id ${id}`);
|
|
160
|
+
}
|
|
161
|
+
return `slice #${progress.done + 1} of ${progress.total} (${progress.currentSlice})`;
|
|
162
|
+
}
|
|
@@ -24,7 +24,11 @@ export class JobRotation {
|
|
|
24
24
|
if (!outcome.rotated)
|
|
25
25
|
return { rotated: false, reason: 'session-rotate-refused' };
|
|
26
26
|
const nextCycle = state.mainSessionCycle + 1;
|
|
27
|
-
this.store.save({
|
|
27
|
+
this.store.save({
|
|
28
|
+
...state,
|
|
29
|
+
mainSessionCycle: nextCycle,
|
|
30
|
+
lastCheckpointAt: new Date().toISOString()
|
|
31
|
+
});
|
|
28
32
|
return { rotated: true, reason: `cycle-${nextCycle} (${summary.cycle})` };
|
|
29
33
|
}
|
|
30
34
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { commitVerificationRefusal, verifyCommitSha } from './job-commit-verification.js';
|
|
2
3
|
// ── Spec §4.2, verbatim from spec ────────────────────────────────────────
|
|
3
4
|
export const SliceStateSchema = z
|
|
4
5
|
.object({
|
|
@@ -9,28 +10,28 @@ export const SliceStateSchema = z
|
|
|
9
10
|
finishedAt: z.string().datetime().optional(),
|
|
10
11
|
failureReason: z.string().optional(), // required when status=failed
|
|
11
12
|
repairCycles: z.number().int().gte(0).default(0),
|
|
12
|
-
blockedReason: z.string().optional()
|
|
13
|
+
blockedReason: z.string().optional() // required when status=blocked
|
|
13
14
|
})
|
|
14
15
|
.superRefine((v, ctx) => {
|
|
15
16
|
if (v.status === 'done' && !(v.commitSha && v.commitSha.length >= 7)) {
|
|
16
17
|
ctx.addIssue({
|
|
17
18
|
code: 'custom',
|
|
18
19
|
path: ['commitSha'],
|
|
19
|
-
message: 'commitSha required (≥7 hex) when status=done'
|
|
20
|
+
message: 'commitSha required (≥7 hex) when status=done'
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
23
|
if (v.status === 'failed' && !(v.failureReason && v.failureReason.length >= 1)) {
|
|
23
24
|
ctx.addIssue({
|
|
24
25
|
code: 'custom',
|
|
25
26
|
path: ['failureReason'],
|
|
26
|
-
message: 'failureReason required when status=failed'
|
|
27
|
+
message: 'failureReason required when status=failed'
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
if (v.status === 'blocked' && !(v.blockedReason && v.blockedReason.length >= 1)) {
|
|
30
31
|
ctx.addIssue({
|
|
31
32
|
code: 'custom',
|
|
32
33
|
path: ['blockedReason'],
|
|
33
|
-
message: 'blockedReason required when status=blocked'
|
|
34
|
+
message: 'blockedReason required when status=blocked'
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
37
|
});
|
|
@@ -49,17 +50,17 @@ export const JobStateSchema = z.object({
|
|
|
49
50
|
from: z.literal('rotating'),
|
|
50
51
|
to: z.literal('single'),
|
|
51
52
|
reason: z.string().min(10),
|
|
52
|
-
at: z.string().datetime()
|
|
53
|
+
at: z.string().datetime()
|
|
53
54
|
})
|
|
54
55
|
.optional(),
|
|
55
|
-
slices: z.array(SliceStateSchema)
|
|
56
|
+
slices: z.array(SliceStateSchema)
|
|
56
57
|
});
|
|
57
58
|
export const ResourceSnapshotSchema = z.object({
|
|
58
59
|
capturedAt: z.string().datetime(),
|
|
59
60
|
cpuPercent: z.number().min(0).max(100),
|
|
60
61
|
memMb: z.number().gte(0),
|
|
61
62
|
diskMb: z.number().gte(0),
|
|
62
|
-
contextRatio: z.number().min(0).max(1)
|
|
63
|
+
contextRatio: z.number().min(0).max(1)
|
|
63
64
|
});
|
|
64
65
|
export const JobStatusSummarySchema = z.object({
|
|
65
66
|
total: z.number().int(),
|
|
@@ -72,7 +73,7 @@ export const JobStatusSummarySchema = z.object({
|
|
|
72
73
|
mainLoopStrategy: z.enum(['single', 'rotating']),
|
|
73
74
|
mainSessionCycle: z.number().int(),
|
|
74
75
|
etaSec: z.number().int().optional(),
|
|
75
|
-
resourcesNow: ResourceSnapshotSchema.optional()
|
|
76
|
+
resourcesNow: ResourceSnapshotSchema.optional()
|
|
76
77
|
});
|
|
77
78
|
// ── Spec §4.1 CLI input schemas (used by M3) ─────────────────────────────
|
|
78
79
|
export const JobInitInputSchema = z.object({
|
|
@@ -84,7 +85,7 @@ export const JobInitInputSchema = z.object({
|
|
|
84
85
|
mainLoopStrategy: z.enum(['single', 'rotating']).default('rotating'),
|
|
85
86
|
rotateEvery: z.number().int().gt(0).default(3),
|
|
86
87
|
project: z.string(),
|
|
87
|
-
json: z.boolean().default(true)
|
|
88
|
+
json: z.boolean().default(true)
|
|
88
89
|
});
|
|
89
90
|
export const JobCheckpointInputSchema = z
|
|
90
91
|
.object({
|
|
@@ -94,22 +95,50 @@ export const JobCheckpointInputSchema = z
|
|
|
94
95
|
commitSha: z.string().optional(),
|
|
95
96
|
reason: z.string().optional(),
|
|
96
97
|
project: z.string(),
|
|
97
|
-
json: z.boolean().default(true)
|
|
98
|
+
json: z.boolean().default(true)
|
|
98
99
|
})
|
|
99
100
|
.superRefine((v, ctx) => {
|
|
100
|
-
if (v.state === 'done'
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
if (v.state === 'done') {
|
|
102
|
+
// D2 (rid 2026-10-03-job-ledger-truthfulness). Two rules, in this order,
|
|
103
|
+
// both on the same claim about the same field.
|
|
104
|
+
//
|
|
105
|
+
// 1. THE SHAPE RULE. It stays exactly where the defect was measured
|
|
106
|
+
// (`job-orchestrator.ts:55` checked only `length >= 7`), and it is the
|
|
107
|
+
// PRE-FILTER: a string that is not even sha-shaped is refused here and
|
|
108
|
+
// is never paid a `git` call.
|
|
109
|
+
// 2. THE EXISTENCE RULE. Past the shape rule, the sha must resolve to a
|
|
110
|
+
// commit in the project repository. Length and alphabet say the string
|
|
111
|
+
// is sha-shaped; only git says whether the commit exists — and a ledger
|
|
112
|
+
// keyed to a commit that is not in the repository will be trusted later.
|
|
113
|
+
//
|
|
114
|
+
// WHY HERE AND NOT IN THE ACTION. This refine runs at
|
|
115
|
+
// `JobCheckpointInputSchema.safeParse`, the first thing the `checkpoint`
|
|
116
|
+
// command does: it is therefore before `resolveJobStateRoot`, before the
|
|
117
|
+
// lock, and before either file is opened, so a refusal leaves the ledger
|
|
118
|
+
// byte-unchanged rather than merely unwritten — and it rides the
|
|
119
|
+
// command's existing refusal channel (`INVALID_CHECKPOINT`) instead of
|
|
120
|
+
// needing a new reporting site in `job-commands.ts`. The project root
|
|
121
|
+
// `v.project` is already part of this input, and it is the same value the
|
|
122
|
+
// command passes to `--project`/cwd resolution.
|
|
123
|
+
if (!v.commitSha || v.commitSha.length < 7) {
|
|
124
|
+
ctx.addIssue({
|
|
125
|
+
code: 'custom',
|
|
126
|
+
path: ['commitSha'],
|
|
127
|
+
message: 'commitSha required (≥7 hex) when state=done'
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const refusal = commitVerificationRefusal(verifyCommitSha(v.project, v.commitSha), v.project, v.commitSha);
|
|
132
|
+
if (refusal !== null) {
|
|
133
|
+
ctx.addIssue({ code: 'custom', path: ['commitSha'], message: refusal });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
106
136
|
}
|
|
107
|
-
if ((v.state === 'failed' || v.state === 'skipped') &&
|
|
108
|
-
!(v.reason && v.reason.length >= 3)) {
|
|
137
|
+
if ((v.state === 'failed' || v.state === 'skipped') && !(v.reason && v.reason.length >= 3)) {
|
|
109
138
|
ctx.addIssue({
|
|
110
139
|
code: 'custom',
|
|
111
140
|
path: ['reason'],
|
|
112
|
-
message: 'reason required (≥3 chars) when state=failed|skipped'
|
|
141
|
+
message: 'reason required (≥3 chars) when state=failed|skipped'
|
|
113
142
|
});
|
|
114
143
|
}
|
|
115
144
|
});
|
|
@@ -118,5 +147,5 @@ export const JobBlockInputSchema = z.object({
|
|
|
118
147
|
sliceId: z.string(),
|
|
119
148
|
reason: z.string().min(3),
|
|
120
149
|
project: z.string(),
|
|
121
|
-
json: z.boolean().default(true)
|
|
150
|
+
json: z.boolean().default(true)
|
|
122
151
|
});
|
|
@@ -9,7 +9,11 @@ export class SubAgentJobWrapper {
|
|
|
9
9
|
async wrap(input) {
|
|
10
10
|
const budgetMb = input.budgetMb ?? 512;
|
|
11
11
|
const candidateBatchId = `batch-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
12
|
-
const result = await this.dispatch(input.role, input.prompt, {
|
|
12
|
+
const result = await this.dispatch(input.role, input.prompt, {
|
|
13
|
+
budgetMb,
|
|
14
|
+
jobScope: true,
|
|
15
|
+
batchId: candidateBatchId
|
|
16
|
+
});
|
|
13
17
|
const batchId = result.batchId;
|
|
14
18
|
if (!this.dispatchedBatches.has(input.jobId))
|
|
15
19
|
this.dispatchedBatches.set(input.jobId, new Set());
|
|
@@ -23,7 +23,7 @@ export function collectResourceSnapshot(jobDir) {
|
|
|
23
23
|
cpuPercent,
|
|
24
24
|
memMb,
|
|
25
25
|
diskMb,
|
|
26
|
-
contextRatio
|
|
26
|
+
contextRatio
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
// Non-enumerable internal attachment for test-time access via
|
|
@@ -34,7 +34,7 @@ Object.defineProperty(collectResourceSnapshot, 'dirSizeMb', {
|
|
|
34
34
|
value: dirSizeMb,
|
|
35
35
|
enumerable: false,
|
|
36
36
|
writable: false,
|
|
37
|
-
configurable: false
|
|
37
|
+
configurable: false
|
|
38
38
|
});
|
|
39
39
|
/**
|
|
40
40
|
* Best-effort, non-recursive size of one directory level, in rounded megabytes.
|
|
@@ -35,9 +35,9 @@ export function decideKarpathyCostCheck(input) {
|
|
|
35
35
|
decision: {
|
|
36
36
|
kind: '24h-mode-active',
|
|
37
37
|
gateAction: null,
|
|
38
|
-
reason: 'peaks session 24h-mode state = 24H_ACTIVE; cost-check is the OVERRIDE, not the constrained side'
|
|
38
|
+
reason: 'peaks session 24h-mode state = 24H_ACTIVE; cost-check is the OVERRIDE, not the constrained side'
|
|
39
39
|
},
|
|
40
|
-
reasonLine: 'karpathy-cost-check: skipped (24h-mode active)'
|
|
40
|
+
reasonLine: 'karpathy-cost-check: skipped (24h-mode active)'
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
let envelope;
|
|
@@ -47,7 +47,7 @@ export function decideKarpathyCostCheck(input) {
|
|
|
47
47
|
catch {
|
|
48
48
|
return {
|
|
49
49
|
decision: { kind: 'no-cost-data', gateAction: null, reason: 'envelope-not-json' },
|
|
50
|
-
reasonLine: 'karpathy-cost-check: skipped (envelope not JSON)'
|
|
50
|
+
reasonLine: 'karpathy-cost-check: skipped (envelope not JSON)'
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
if (!envelope.evaluationCost || typeof envelope.costRatio !== 'number') {
|
|
@@ -55,9 +55,9 @@ export function decideKarpathyCostCheck(input) {
|
|
|
55
55
|
decision: {
|
|
56
56
|
kind: 'no-cost-data',
|
|
57
57
|
gateAction: envelope.gateAction ?? null,
|
|
58
|
-
reason: 'envelope-missing-evaluationCost'
|
|
58
|
+
reason: 'envelope-missing-evaluationCost'
|
|
59
59
|
},
|
|
60
|
-
reasonLine: 'karpathy-cost-check: skipped (envelope missing evaluationCost/costRatio)'
|
|
60
|
+
reasonLine: 'karpathy-cost-check: skipped (envelope missing evaluationCost/costRatio)'
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
const costRatio = envelope.costRatio;
|
|
@@ -69,20 +69,30 @@ export function decideKarpathyCostCheck(input) {
|
|
|
69
69
|
originalGateAction: 'block',
|
|
70
70
|
newGateAction: 'warn',
|
|
71
71
|
costRatio,
|
|
72
|
-
evaluationCost
|
|
72
|
+
evaluationCost
|
|
73
73
|
},
|
|
74
|
-
reasonLine: `karpathy-cost-check: downgraded block → warn (costRatio=${costRatio.toFixed(2)} > ${KARPATHY_COST_DOWNGRADE_THRESHOLD})
|
|
74
|
+
reasonLine: `karpathy-cost-check: downgraded block → warn (costRatio=${costRatio.toFixed(2)} > ${KARPATHY_COST_DOWNGRADE_THRESHOLD})`
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
77
|
if (costRatio > KARPATHY_COST_REPORT_THRESHOLD) {
|
|
78
78
|
return {
|
|
79
|
-
decision: {
|
|
80
|
-
|
|
79
|
+
decision: {
|
|
80
|
+
kind: 'reported',
|
|
81
|
+
gateAction: envelope.gateAction ?? 'pass',
|
|
82
|
+
costRatio,
|
|
83
|
+
evaluationCost
|
|
84
|
+
},
|
|
85
|
+
reasonLine: `karpathy-cost-check: costRatio=${costRatio.toFixed(2)} > ${KARPATHY_COST_REPORT_THRESHOLD} (sediment appended)`
|
|
81
86
|
};
|
|
82
87
|
}
|
|
83
88
|
return {
|
|
84
|
-
decision: {
|
|
85
|
-
|
|
89
|
+
decision: {
|
|
90
|
+
kind: 'unchanged',
|
|
91
|
+
gateAction: envelope.gateAction ?? 'pass',
|
|
92
|
+
costRatio,
|
|
93
|
+
evaluationCost
|
|
94
|
+
},
|
|
95
|
+
reasonLine: `karpathy-cost-check: unchanged (costRatio=${costRatio.toFixed(2)})`
|
|
86
96
|
};
|
|
87
97
|
}
|
|
88
98
|
/** Convenience: load the review file from disk and run the decision. */
|
|
@@ -94,12 +104,12 @@ export function runKarpathyCostCheck(opts) {
|
|
|
94
104
|
catch {
|
|
95
105
|
return {
|
|
96
106
|
decision: { kind: 'no-cost-data', gateAction: null, reason: 'file-missing' },
|
|
97
|
-
reasonLine: `karpathy-cost-check: skipped (file missing: ${opts.reviewFilePath})
|
|
107
|
+
reasonLine: `karpathy-cost-check: skipped (file missing: ${opts.reviewFilePath})`
|
|
98
108
|
};
|
|
99
109
|
}
|
|
100
110
|
return decideKarpathyCostCheck({
|
|
101
111
|
reviewFileContent: content,
|
|
102
|
-
is24hModeActive: opts.is24hModeActive
|
|
112
|
+
is24hModeActive: opts.is24hModeActive
|
|
103
113
|
});
|
|
104
114
|
}
|
|
105
115
|
/** Envelope-shape return for the CLI. */
|
|
@@ -23,6 +23,25 @@ const PATTERNS = [
|
|
|
23
23
|
{ kind: 'any-type', regex: /\b(?:as\s+any|:\s*any\b|<any>)/ },
|
|
24
24
|
{ kind: 'ts-ignore', regex: /@ts-(?:ignore|expect-error|nocheck)/ }
|
|
25
25
|
];
|
|
26
|
+
/**
|
|
27
|
+
* NOT the file-size cap, and NOT a second copy of it — decided 2026-09-30, rid
|
|
28
|
+
* `2026-09-30-cap-unify-01` repair cycle (F6), and recorded in
|
|
29
|
+
* `.peaks/docs/lint-gate.md` §4b row 7 so the next reader does not re-litigate it.
|
|
30
|
+
*
|
|
31
|
+
* This is a legacy SMELL heuristic: a number above which a file is big enough to
|
|
32
|
+
* be worth a second look. It reports a suspicion; it blocks nothing, reddens no
|
|
33
|
+
* gate, and descends no ceiling — whereas `src/services/scan/file-size-policy.ts`
|
|
34
|
+
* (300 raw for `src`/`packages`/`scripts`, 500 for root `tests/`) decides whether
|
|
35
|
+
* a file may be COMMITTED, and its whole-tree count is ratcheted by
|
|
36
|
+
* `fileSizeOverCap`. Two constants answering two questions.
|
|
37
|
+
*
|
|
38
|
+
* FOLDING IT IN WAS CONSIDERED AND REJECTED: lowering this to 300 would make
|
|
39
|
+
* every one of the 134 over-cap `src/` files also a "legacy" finding, i.e. it
|
|
40
|
+
* would silently change what `peaks scan legacy` reports in order to satisfy a
|
|
41
|
+
* naming rule. The census's `CAP_NAME` rule cannot see this constant — the name
|
|
42
|
+
* does not match — which is exactly why the decision is written here instead of
|
|
43
|
+
* being left for the rule to make.
|
|
44
|
+
*/
|
|
26
45
|
const LARGE_FILE_LINES = 500;
|
|
27
46
|
function scanFile(file) {
|
|
28
47
|
let content;
|
|
@@ -44,7 +63,12 @@ function scanFile(file) {
|
|
|
44
63
|
}
|
|
45
64
|
}
|
|
46
65
|
if (lines.length > LARGE_FILE_LINES) {
|
|
47
|
-
findings.push({
|
|
66
|
+
findings.push({
|
|
67
|
+
kind: 'large-file',
|
|
68
|
+
file,
|
|
69
|
+
line: null,
|
|
70
|
+
excerpt: `${lines.length} lines (> ${LARGE_FILE_LINES})`
|
|
71
|
+
});
|
|
48
72
|
}
|
|
49
73
|
return findings;
|
|
50
74
|
}
|
|
@@ -61,12 +85,20 @@ function walkFiles(root, maxDepth = 8) {
|
|
|
61
85
|
return;
|
|
62
86
|
}
|
|
63
87
|
for (const e of entries) {
|
|
64
|
-
if (e.name === 'node_modules' ||
|
|
88
|
+
if (e.name === 'node_modules' ||
|
|
89
|
+
e.name === '.git' ||
|
|
90
|
+
e.name === 'dist' ||
|
|
91
|
+
e.name === 'node_modules' ||
|
|
92
|
+
e.name.startsWith('.'))
|
|
65
93
|
continue;
|
|
66
94
|
const full = join(dir, e.name);
|
|
67
95
|
if (e.isDirectory())
|
|
68
96
|
walk(full, depth + 1);
|
|
69
|
-
else if (e.isFile() &&
|
|
97
|
+
else if (e.isFile() &&
|
|
98
|
+
(e.name.endsWith('.ts') ||
|
|
99
|
+
e.name.endsWith('.js') ||
|
|
100
|
+
e.name.endsWith('.tsx') ||
|
|
101
|
+
e.name.endsWith('.jsx'))) {
|
|
70
102
|
out.push(full);
|
|
71
103
|
}
|
|
72
104
|
}
|
|
@@ -77,7 +109,15 @@ function walkFiles(root, maxDepth = 8) {
|
|
|
77
109
|
export function detectLegacy(projectRoot, dir = 'src') {
|
|
78
110
|
const root = resolve(projectRoot, dir);
|
|
79
111
|
if (!existsSync(root)) {
|
|
80
|
-
const empty = {
|
|
112
|
+
const empty = {
|
|
113
|
+
todo: 0,
|
|
114
|
+
'console-log': 0,
|
|
115
|
+
'any-type': 0,
|
|
116
|
+
'large-file': 0,
|
|
117
|
+
'ts-ignore': 0,
|
|
118
|
+
fixme: 0,
|
|
119
|
+
hack: 0
|
|
120
|
+
};
|
|
81
121
|
return { projectRoot, scannedFiles: 0, findings: [], summary: empty, smells: 'low' };
|
|
82
122
|
}
|
|
83
123
|
const files = walkFiles(root);
|
|
@@ -88,7 +128,13 @@ export function detectLegacy(projectRoot, dir = 'src') {
|
|
|
88
128
|
// Re-key console-log to match the union
|
|
89
129
|
const mapped = findings.map((f) => f.kind === 'console-log' ? { ...f, kind: 'console-log' } : f);
|
|
90
130
|
const summary = {
|
|
91
|
-
todo: 0,
|
|
131
|
+
todo: 0,
|
|
132
|
+
'console-log': 0,
|
|
133
|
+
'any-type': 0,
|
|
134
|
+
'large-file': 0,
|
|
135
|
+
'ts-ignore': 0,
|
|
136
|
+
fixme: 0,
|
|
137
|
+
hack: 0
|
|
92
138
|
};
|
|
93
139
|
for (const f of mapped) {
|
|
94
140
|
// The todo pattern catches both TODO and FIXME/HACK; reflect into fixme/hack as well when applicable
|
|
@@ -13,9 +13,12 @@ const PACKAGES_TO_PROBE = [
|
|
|
13
13
|
];
|
|
14
14
|
function packageNameFor(key) {
|
|
15
15
|
switch (key) {
|
|
16
|
-
case 'eslint':
|
|
17
|
-
|
|
18
|
-
case '
|
|
16
|
+
case 'eslint':
|
|
17
|
+
return 'eslint';
|
|
18
|
+
case 'typescriptEslintParser':
|
|
19
|
+
return '@typescript-eslint/parser';
|
|
20
|
+
case 'typescriptEslintPlugin':
|
|
21
|
+
return '@typescript-eslint/eslint-plugin';
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
function probeNpx() {
|
|
@@ -50,7 +53,10 @@ export function detectEslint() {
|
|
|
50
53
|
npxAvailable: false,
|
|
51
54
|
pinnedVersions: ESLINT_PACKAGE_PINS,
|
|
52
55
|
warnings: ['npx is not on PATH'],
|
|
53
|
-
nextActions: [
|
|
56
|
+
nextActions: [
|
|
57
|
+
'Install Node.js ≥ 20 with npm to enable `npx --package`.',
|
|
58
|
+
'Or run `peaks code lint --no-npx` (future slice).'
|
|
59
|
+
]
|
|
54
60
|
};
|
|
55
61
|
}
|
|
56
62
|
for (const key of PACKAGES_TO_PROBE) {
|