peaks-loop 4.0.0-beta.9 → 4.0.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 +910 -141
- package/README-en.md +26 -7
- package/README.md +75 -6
- package/agents/karpathy-reviewer.md +33 -0
- package/bin/peaks.js +0 -0
- package/dist/cli/cli-helpers.d.ts +31 -6
- package/dist/cli/cli-helpers.js +48 -25
- package/dist/cli/commands/_register.d.ts +3 -0
- package/dist/cli/commands/_register.js +139 -0
- package/dist/cli/commands/_super.d.ts +10 -0
- package/dist/cli/commands/_super.js +97 -0
- package/dist/cli/commands/adapter-commands-s2a.js +1 -1
- package/dist/cli/commands/asset-commands.js +33 -16
- package/dist/cli/commands/audit-commands.js +2 -2
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +12 -0
- package/dist/cli/commands/autonomous-swarm-commands.js +120 -0
- package/dist/cli/commands/bee-commands.js +1 -1
- package/dist/cli/commands/capability-commands.js +1 -1
- package/dist/cli/commands/capability-worker-config-sc-commands.js +0 -2
- package/dist/cli/commands/changeset-commands.d.ts +13 -0
- package/dist/cli/commands/changeset-commands.js +46 -0
- package/dist/cli/commands/code-commands.d.ts +11 -1
- package/dist/cli/commands/code-commands.js +19 -699
- package/dist/cli/commands/code-job-shape-commands.d.ts +9 -0
- package/dist/cli/commands/code-job-shape-commands.js +164 -0
- package/dist/cli/commands/code-mode-gate-commands.d.ts +9 -0
- package/dist/cli/commands/code-mode-gate-commands.js +223 -0
- package/dist/cli/commands/code-review-commands.js +2 -2
- package/dist/cli/commands/code-run-command.d.ts +12 -0
- package/dist/cli/commands/code-run-command.js +68 -0
- package/dist/cli/commands/code-runtime-commands.d.ts +11 -0
- package/dist/cli/commands/code-runtime-commands.js +391 -0
- package/dist/cli/commands/codegraph-commands.js +1 -1
- package/dist/cli/commands/compact-command.js +53 -1
- package/dist/cli/commands/complexity-commands.js +1 -1
- package/dist/cli/commands/config-commands.js +4 -75
- package/dist/cli/commands/container-commands.d.ts +28 -0
- package/dist/cli/commands/container-commands.js +221 -0
- package/dist/cli/commands/context-commands.js +3 -2
- package/dist/cli/commands/core/artifacts-command.js +1 -1
- package/dist/cli/commands/core/binding-commands.js +1 -1
- package/dist/cli/commands/core/doctor-command.js +63 -3
- package/dist/cli/commands/core/memory-command.js +1 -1
- package/dist/cli/commands/core/profile-command.js +1 -1
- package/dist/cli/commands/core/proxy-command.js +1 -1
- package/dist/cli/commands/core/session-command.js +9 -7
- package/dist/cli/commands/core/skill-command.js +7 -4
- package/dist/cli/commands/core/standards-command.js +1 -1
- package/dist/cli/commands/cron-commands.d.ts +57 -0
- package/dist/cli/commands/cron-commands.js +257 -0
- package/dist/cli/commands/cron-scheduler-commands.d.ts +47 -0
- package/dist/cli/commands/cron-scheduler-commands.js +284 -0
- package/dist/cli/commands/dashboard-commands.d.ts +4 -0
- package/dist/cli/commands/dashboard-commands.js +10 -0
- package/dist/cli/commands/dashboard-long-run.d.ts +25 -0
- package/dist/cli/commands/dashboard-long-run.js +122 -0
- package/dist/cli/commands/dashboard-summary.d.ts +12 -0
- package/dist/cli/commands/dashboard-summary.js +58 -0
- package/dist/cli/commands/dispatch-commands.d.ts +0 -7
- package/dist/cli/commands/dispatch-commands.js +372 -8
- package/dist/cli/commands/dispatch-from-dag.js +4 -1
- package/dist/cli/commands/doc-commands.js +1 -1
- package/dist/cli/commands/ecc-commands.d.ts +30 -0
- package/dist/cli/commands/ecc-commands.js +119 -0
- package/dist/cli/commands/evolution-commands.js +1 -1
- package/dist/cli/commands/feedback-commands.js +1 -1
- package/dist/cli/commands/final-review-commands.js +1 -1
- package/dist/cli/commands/fixture-commands.js +1 -1
- package/dist/cli/commands/fork-commands.js +1 -1
- package/dist/cli/commands/gate-commands.js +128 -6
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +21 -0
- package/dist/cli/commands/governance-classify-contract-commands.js +273 -0
- package/dist/cli/commands/heartbeat-commands.js +76 -5
- package/dist/cli/commands/heartbeat-watch-command.d.ts +31 -0
- package/dist/cli/commands/heartbeat-watch-command.js +146 -0
- package/dist/cli/commands/hook-handle.js +1 -1
- package/dist/cli/commands/hooks-commands.js +126 -10
- package/dist/cli/commands/ide-commands.js +1 -1
- package/dist/cli/commands/impact-commands.js +1 -1
- package/dist/cli/commands/job-commands.js +34 -1
- package/dist/cli/commands/lease-metrics-commands.d.ts +67 -0
- package/dist/cli/commands/lease-metrics-commands.js +231 -0
- package/dist/cli/commands/lease-stats-commands.d.ts +65 -0
- package/dist/cli/commands/lease-stats-commands.js +107 -0
- package/dist/cli/commands/legacy-commands.js +1 -1
- package/dist/cli/commands/log-commands.js +1 -1
- package/dist/cli/commands/loop-commands.js +1 -1
- package/dist/cli/commands/loop-eval-commands.js +1 -1
- package/dist/cli/commands/memory-commands.js +1 -1
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +1 -1
- package/dist/cli/commands/mut-commands.d.ts +1 -1
- package/dist/cli/commands/mut-commands.js +1 -5
- package/dist/cli/commands/observability-commands.js +1 -1
- package/dist/cli/commands/openspec-commands.js +65 -4
- package/dist/cli/commands/perf-audit-commands.js +3 -3
- package/dist/cli/commands/perf-commands.js +1 -1
- package/dist/cli/commands/polyrepo-commands.js +1 -1
- package/dist/cli/commands/prd-blocks-commands.js +1 -1
- package/dist/cli/commands/prd-commands.js +4 -2
- package/dist/cli/commands/preferences-commands.js +23 -3
- package/dist/cli/commands/project-commands.js +1 -1
- package/dist/cli/commands/qa-business-review-commands.js +1 -1
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +39 -3
- package/dist/cli/commands/release-commands.d.ts +15 -0
- package/dist/cli/commands/release-commands.js +113 -21
- package/dist/cli/commands/request-commands.js +1 -1
- package/dist/cli/commands/retrospective-commands.js +1 -1
- package/dist/cli/commands/reviewer-commands.js +1 -1
- package/dist/cli/commands/role-commands.js +1 -1
- package/dist/cli/commands/runtime-commands-helpers.d.ts +7 -0
- package/dist/cli/commands/runtime-commands-helpers.js +24 -0
- package/dist/cli/commands/runtime-commands.js +1 -2
- package/dist/cli/commands/sc-commands.js +4 -2
- package/dist/cli/commands/scan-commands.js +1 -1
- package/dist/cli/commands/security-audit-commands.js +3 -3
- package/dist/cli/commands/sediment-commands.js +10 -1
- package/dist/cli/commands/session-24h-mode.d.ts +26 -0
- package/dist/cli/commands/session-24h-mode.js +196 -0
- package/dist/cli/commands/share-commands.d.ts +19 -0
- package/dist/cli/commands/share-commands.js +121 -2
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +1 -1
- package/dist/cli/commands/skill-search-commands.js +4 -1
- package/dist/cli/commands/slice-commands.js +1 -1
- package/dist/cli/commands/slice-integrate-commands.js +1 -1
- package/dist/cli/commands/slice-review-commands.js +1 -1
- package/dist/cli/commands/smoke-commands.js +1 -1
- package/dist/cli/commands/sop-commands.js +1 -1
- package/dist/cli/commands/spill-demo-command.d.ts +7 -0
- package/dist/cli/commands/spill-demo-command.js +29 -0
- package/dist/cli/commands/statusline-commands.d.ts +12 -0
- package/dist/cli/commands/statusline-commands.js +79 -17
- package/dist/cli/commands/sub-agent-commands.js +2 -1
- package/dist/cli/commands/sub-agent-shared.d.ts +10 -0
- package/dist/cli/commands/sub-agent-shared.js +24 -1
- package/dist/cli/commands/swarm-commands.d.ts +13 -0
- package/dist/cli/commands/swarm-commands.js +77 -0
- package/dist/cli/commands/tech-commands.d.ts +64 -0
- package/dist/cli/commands/tech-commands.js +195 -0
- package/dist/cli/commands/understand-commands.js +1 -1
- package/dist/cli/commands/upgrade-commands.d.ts +2 -0
- package/dist/cli/commands/upgrade-commands.js +40 -5
- package/dist/cli/commands/user-touchpoint-commands.js +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +1 -1
- package/dist/cli/commands/vm-commands.d.ts +31 -0
- package/dist/cli/commands/vm-commands.js +274 -0
- package/dist/cli/commands/workflow-commands.js +24 -1
- package/dist/cli/commands/workflow-plan-commands.js +1 -1
- package/dist/cli/commands/workspace/init-command.js +1 -1
- package/dist/cli/commands/workspace/migrate-command.js +1 -1
- package/dist/cli/commands/workspace/reconcile-command.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +29 -0
- package/dist/cli/commands/worktree-auth-commands.js +652 -0
- package/dist/cli/index.js +58 -13
- package/dist/cli/program.d.ts +2 -2
- package/dist/cli/program.js +86 -281
- package/dist/services/24h-mode/decider.d.ts +103 -0
- package/dist/services/24h-mode/decider.js +144 -0
- package/dist/services/24h-mode/index.d.ts +12 -0
- package/dist/services/24h-mode/index.js +12 -0
- package/dist/services/24h-mode/state.d.ts +48 -0
- package/dist/services/24h-mode/state.js +51 -0
- package/dist/services/24h-mode/store.d.ts +27 -0
- package/dist/services/24h-mode/store.js +119 -0
- package/dist/services/artifacts/artifact-prerequisites.js +1 -1
- package/dist/services/artifacts/request-artifact-service.js +1 -1
- package/dist/services/artifacts/workspace-service.js +1 -1
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.d.ts +25 -0
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +91 -0
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +31 -0
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.d.ts +23 -0
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +59 -0
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.d.ts +28 -0
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +86 -0
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +41 -0
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +27 -0
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +47 -0
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.d.ts +19 -0
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +47 -0
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.d.ts +18 -0
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +70 -0
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.d.ts +25 -0
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +53 -0
- package/dist/services/audit/red-line-catalog-p2-a.d.ts +0 -6
- package/dist/services/audit/red-line-catalog-p2-a.js +230 -1
- package/dist/services/audit/static-service.d.ts +32 -25
- package/dist/services/audit/static-service.js +30 -109
- package/dist/services/audit-independent/index.d.ts +2 -0
- package/dist/services/audit-independent/index.js +2 -0
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +127 -0
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +446 -0
- package/dist/services/changeset/changeset-check-service.d.ts +22 -0
- package/dist/services/changeset/changeset-check-service.js +47 -0
- package/dist/services/code/auto-compact-modes.d.ts +30 -0
- package/dist/services/code/auto-compact-modes.js +38 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +43 -5
- package/dist/services/code/auto-compact-orchestrator.js +101 -21
- package/dist/services/code/dag-orchestrator.d.ts +30 -1
- package/dist/services/code/dag-orchestrator.js +106 -1
- package/dist/services/code/status-line-renderer.d.ts +2 -0
- package/dist/services/code/status-line-renderer.js +21 -3
- package/dist/services/code-review/ocr-service.d.ts +1 -1
- package/dist/services/code-review/ocr-service.js +6 -3
- package/dist/services/compact-history/compact-history-service.d.ts +41 -0
- package/dist/services/compact-history/compact-history-service.js +62 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +16 -0
- package/dist/services/compact-statusline/compact-statusline-service.js +83 -0
- package/dist/services/config/config-service.d.ts +1 -12
- package/dist/services/config/config-service.js +3 -72
- package/dist/services/config/config-types.d.ts +2 -4
- package/dist/services/config/config-types.js +1 -1
- package/dist/services/container/container-lease.d.ts +67 -0
- package/dist/services/container/container-lease.js +135 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +40 -5
- package/dist/services/context/auto-compact-dispatcher.js +32 -102
- package/dist/services/context/auto-compact-reader.js +1 -1
- package/dist/services/context/auto-compact-types.d.ts +27 -2
- package/dist/services/context/auto-compact-types.js +8 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +75 -0
- package/dist/services/context/build-dispatch-system-prompt.js +117 -0
- package/dist/services/context/collector.d.ts +2 -2
- package/dist/services/context/context-builder.d.ts +4 -4
- package/dist/services/context/context-schema.d.ts +48 -48
- package/dist/services/context/ide-detect.d.ts +4 -0
- package/dist/services/context/ide-detect.js +24 -0
- package/dist/services/context/main-session-monitor.d.ts +1 -4
- package/dist/services/context/main-session-monitor.js +1 -24
- package/dist/services/context/memory-index-reader.d.ts +8 -0
- package/dist/services/context/memory-index-reader.js +57 -0
- package/dist/services/context/memory-lru-cache.d.ts +12 -0
- package/dist/services/context/memory-lru-cache.js +60 -0
- package/dist/services/context/memory-preflight-config.d.ts +19 -0
- package/dist/services/context/memory-preflight-config.js +25 -0
- package/dist/services/context/memory-preflight-service.d.ts +19 -0
- package/dist/services/context/memory-preflight-service.js +120 -0
- package/dist/services/context/spillover-store.d.ts +23 -0
- package/dist/services/context/spillover-store.js +155 -0
- package/dist/services/context/spillover-types.d.ts +18 -0
- package/dist/services/context/spillover-types.js +1 -0
- package/dist/services/crystallization/crystallization-service.d.ts +22 -5
- package/dist/services/crystallization/crystallization-service.js +8 -14
- package/dist/services/crystallization/crystallization-types.d.ts +6 -6
- package/dist/services/crystallization/evidence-brief-builder.d.ts +1 -1
- package/dist/services/crystallization/index.d.ts +13 -0
- package/dist/services/crystallization/index.js +13 -0
- package/dist/services/dashboard/project-dashboard-service.js +2 -2
- package/dist/services/dispatch/await-batch.d.ts +70 -0
- package/dist/services/dispatch/await-batch.js +272 -0
- package/dist/services/dispatch/batch-counter.js +1 -1
- package/dist/services/dispatch/dispatch-record-writer.d.ts +126 -4
- package/dist/services/dispatch/dispatch-record-writer.js +239 -9
- package/dist/services/dispatch/slice-dag.d.ts +46 -0
- package/dist/services/dispatch/slice-dag.js +6 -0
- package/dist/services/dispatch/stage-enum.d.ts +27 -0
- package/dist/services/dispatch/stage-enum.js +48 -0
- package/dist/services/dispatch/startup-timeout.d.ts +86 -0
- package/dist/services/dispatch/startup-timeout.js +97 -0
- package/dist/services/dispatch/sub-agent-dispatcher.js +40 -89
- package/dist/services/dispatch/test-tool-detection.d.ts +25 -1
- package/dist/services/dispatch/test-tool-detection.js +80 -0
- package/dist/services/doctor/doctor-service/checks/check-id-schema.d.ts +18 -0
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +64 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +69 -0
- package/dist/services/doctor/doctor-service/checks/dist-source-version.d.ts +32 -0
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +110 -0
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.d.ts +24 -0
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +164 -0
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +16 -0
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +57 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +19 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +66 -0
- package/dist/services/doctor/doctor-service/checks/schema-validity.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +33 -0
- package/dist/services/doctor/doctor-service/checks/skill-apply-note.d.ts +20 -0
- package/dist/services/doctor/doctor-service/checks/skill-apply-note.js +85 -0
- package/dist/services/doctor/doctor-service/checks/skill-existence.d.ts +13 -0
- package/dist/services/doctor/doctor-service/checks/skill-existence.js +30 -0
- package/dist/services/doctor/doctor-service/checks/skill-name-match.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/skill-name-match.js +25 -0
- package/dist/services/doctor/doctor-service/checks/skill-parse.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/skill-parse.js +19 -0
- package/dist/services/doctor/doctor-service/checks/skill-presence.d.ts +21 -0
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +75 -0
- package/dist/services/doctor/doctor-service/checks/skill-runbook.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/skill-runbook.js +47 -0
- package/dist/services/doctor/doctor-service/checks/statusline-install.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +32 -0
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.d.ts +13 -0
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +30 -0
- package/dist/services/doctor/doctor-service/checks/user-config.d.ts +11 -0
- package/dist/services/doctor/doctor-service/checks/user-config.js +27 -0
- package/dist/services/doctor/doctor-service/checks/workspace-init.d.ts +16 -0
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +34 -0
- package/dist/services/doctor/doctor-service/checks/workspace-layout.d.ts +33 -0
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +180 -0
- package/dist/services/doctor/doctor-service/index.d.ts +48 -0
- package/dist/services/doctor/doctor-service/index.js +254 -0
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +41 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +77 -0
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +20 -0
- package/dist/services/doctor/doctor-service/report/final-summary.js +29 -0
- package/dist/services/doctor/doctor-service/types.d.ts +245 -0
- package/dist/services/doctor/doctor-service/types.js +15 -0
- package/dist/services/doctor/doctor-service.d.ts +15 -146
- package/dist/services/doctor/doctor-service.js +22 -926
- package/dist/services/doctor/index.d.ts +22 -0
- package/dist/services/doctor/index.js +22 -0
- package/dist/services/env/shell-probe.d.ts +71 -0
- package/dist/services/env/shell-probe.js +161 -0
- package/dist/services/evolution/evolution-types.d.ts +39 -39
- package/dist/services/final-review/final-review-service.d.ts +11 -1
- package/dist/services/final-review/index.d.ts +2 -0
- package/dist/services/final-review/index.js +1 -0
- package/dist/services/hooks/auto-compact-hook-install.d.ts +4 -5
- package/dist/services/hooks/auto-compact-hook-install.js +4 -5
- package/dist/services/hooks/worktree-authorization-gate.d.ts +205 -0
- package/dist/services/hooks/worktree-authorization-gate.js +492 -0
- package/dist/services/ide/adapters/claude-code-adapter.js +2 -2
- package/dist/services/ide/adapters/qoder-adapter.d.ts +25 -0
- package/dist/services/ide/adapters/qoder-adapter.js +57 -0
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +16 -0
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +45 -0
- package/dist/services/ide/ide-registry.js +6 -0
- package/dist/services/ide/ide-types.d.ts +1 -1
- package/dist/services/job/job-types.d.ts +56 -56
- package/dist/services/job-snapshot/index.d.ts +8 -0
- package/dist/services/job-snapshot/index.js +7 -0
- package/dist/services/{job/job-resource-snapshot.d.ts → job-snapshot/snapshot.d.ts} +1 -1
- package/dist/services/job-snapshot/types.d.ts +7 -0
- package/dist/services/job-snapshot/types.js +1 -0
- package/dist/services/karpathy-cost/karpathy-cost-check-service.d.ts +67 -0
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +108 -0
- package/dist/services/log/retention.d.ts +16 -0
- package/dist/services/log/retention.js +17 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +6 -6
- package/dist/services/loop/loop-release-types.d.ts +24 -24
- package/dist/services/loop/monotonic-runner.d.ts +17 -11
- package/dist/services/loop/monotonic-runner.js +118 -79
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +8 -0
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +253 -0
- package/dist/services/memory/project-memory-service/index/ranking.d.ts +6 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +171 -0
- package/dist/services/memory/project-memory-service/index/search.d.ts +34 -0
- package/dist/services/memory/project-memory-service/index/search.js +194 -0
- package/dist/services/memory/project-memory-service/index.d.ts +9 -0
- package/dist/services/memory/project-memory-service/index.js +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +9 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +106 -0
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +7 -0
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +96 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +5 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.js +56 -0
- package/dist/services/memory/project-memory-service/store/paths.d.ts +8 -0
- package/dist/services/memory/project-memory-service/store/paths.js +116 -0
- package/dist/services/memory/project-memory-service/types.d.ts +128 -0
- package/dist/services/memory/project-memory-service/types.js +9 -0
- package/dist/services/memory/project-memory-service.d.ts +1 -167
- package/dist/services/memory/project-memory-service.js +19 -816
- package/dist/services/migrate-skill-name/schema.d.ts +2 -2
- package/dist/services/observability/aggregation.d.ts +27 -0
- package/dist/services/observability/aggregation.js +72 -0
- package/dist/services/observability/observability-service.d.ts +73 -7
- package/dist/services/observability/observability-service.js +87 -1
- package/dist/services/openspec/artifact-boundary.d.ts +138 -0
- package/dist/services/openspec/artifact-boundary.js +150 -0
- package/dist/services/openspec/coverage-evidence-reader.d.ts +191 -0
- package/dist/services/openspec/coverage-evidence-reader.js +386 -0
- package/dist/services/openspec/openspec-archive-service.d.ts +70 -0
- package/dist/services/openspec/openspec-archive-service.js +320 -8
- package/dist/services/openspec/openspec-bridge-service.js +1 -1
- package/dist/services/openspec/openspec-init-service.js +1 -1
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-render-service.js +7 -4
- package/dist/services/openspec/openspec-scan-service.js +1 -1
- package/dist/services/openspec/openspec-validate-service.js +5 -4
- package/dist/services/preferences/preferences-service.js +10 -0
- package/dist/services/preferences/preferences-types.d.ts +13 -0
- package/dist/services/preferences/preferences-types.js +11 -0
- package/dist/services/qa/screenshot-archive-service.d.ts +51 -0
- package/dist/services/qa/screenshot-archive-service.js +134 -0
- package/dist/services/rd/rd-service.js +10 -11
- package/dist/services/rd/types.d.ts +32 -32
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +60 -0
- package/dist/services/rd-swarm/rd-swarm-service.js +93 -0
- package/dist/services/recommendations/capability-seed-items.js +0 -1
- package/dist/services/recommendations/capability-seed-mappings.js +0 -1
- package/dist/services/recommendations/capability-seed-sources.js +0 -1
- package/dist/services/release/version-precheck-service.d.ts +51 -0
- package/dist/services/release/version-precheck-service.js +257 -0
- package/dist/services/scan/acceptance-coverage-service.js +1 -1
- package/dist/services/scan/archetype-service.js +1 -1
- package/dist/services/scan/existing-system-service.js +1 -1
- package/dist/services/scan/libraries-service.js +1 -1
- package/dist/services/sediment/json-schema.d.ts +40 -40
- package/dist/services/share/bundle-types.d.ts +12 -12
- package/dist/services/share/run-state-contract.d.ts +2 -2
- package/dist/services/skill/skill-search-service.d.ts +12 -7
- package/dist/services/skill/skill-search-service.js +8 -4
- package/dist/services/skillhub/migrations/001-initial.sql +71 -0
- package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
- package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
- package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
- package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
- package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
- package/dist/services/skills/hooks-settings-service.d.ts +75 -0
- package/dist/services/skills/hooks-settings-service.js +230 -2
- package/dist/services/skills/skill-registry.d.ts +1 -0
- package/dist/services/skills/skill-registry.js +6 -4
- package/dist/services/skills/skill-runbook-service.js +1 -1
- package/dist/services/slice/slice-check-service.js +1 -1
- package/dist/services/standards/main-session-monitor-ban-hook.d.ts +14 -0
- package/dist/services/standards/main-session-monitor-ban-hook.js +19 -0
- package/dist/services/standards/missing-standards-detector.d.ts +25 -0
- package/dist/services/standards/missing-standards-detector.js +43 -12
- package/dist/services/tech/tech-change-id-service.d.ts +82 -0
- package/dist/services/tech/tech-change-id-service.js +117 -0
- package/dist/services/understand/understand-hybrid-service.js +1 -1
- package/dist/services/understand/understand-scan-service.js +2 -2
- package/dist/services/upgrade/upgrade-service.js +4 -3
- package/dist/services/verdict/envelopes.d.ts +2 -2
- package/dist/services/verdict/envelopes.js +2 -2
- package/dist/services/verdict/verdict-aggregator.d.ts +3 -3
- package/dist/services/vm/vm-lease.d.ts +40 -0
- package/dist/services/vm/vm-lease.js +137 -0
- package/dist/services/workflow/autonomous-resume-writer.js +1 -1
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +47 -0
- package/dist/services/workflow/pipeline-verify-gate-support.js +194 -0
- package/dist/services/workflow/pipeline-verify-service.d.ts +17 -81
- package/dist/services/workflow/pipeline-verify-service.js +42 -218
- package/dist/services/workflow/pipeline-verify-types.d.ts +90 -0
- package/dist/services/workflow/pipeline-verify-types.js +10 -0
- package/dist/services/workflow/plan-reader.d.ts +1 -1
- package/dist/services/workflow/plan-reader.js +1 -1
- package/dist/services/workflow/plan-refresher.d.ts +1 -1
- package/dist/services/workflow/plan-refresher.js +1 -1
- package/dist/services/workflow/plan-trigger-detector.d.ts +1 -1
- package/dist/services/workflow/plan-trigger-detector.js +1 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +1 -1
- package/dist/services/workflow/workflow-autonomous-service.d.ts +2 -98
- package/dist/services/workflow/workflow-autonomous-types.d.ts +114 -0
- package/dist/services/workflow/workflow-autonomous-types.js +21 -0
- package/dist/services/workflow/workflow-router-service.js +18 -16
- package/dist/services/workflow/workflow-spec-lint.d.ts +13 -0
- package/dist/services/workflow/workflow-spec-lint.js +75 -0
- package/dist/services/workflow/workflow-spec-types.d.ts +100 -0
- package/dist/services/workflow/workflow-spec-types.js +13 -0
- package/dist/services/workflow/workflow-spec-yaml.d.ts +17 -0
- package/dist/services/workflow/workflow-spec-yaml.js +88 -0
- package/dist/services/workflow/workflow-spec.d.ts +11 -91
- package/dist/services/workflow/workflow-spec.js +16 -145
- package/dist/services/workspace/migrate-service.js +1 -1
- package/dist/services/workspace/workspace-service.js +1 -1
- package/dist/services/worktree/worktree-lease.d.ts +170 -0
- package/dist/services/worktree/worktree-lease.js +242 -0
- package/package.json +47 -51
- package/scripts/clean-dist.mjs +31 -1
- package/scripts/copy-templates.mjs +16 -0
- package/scripts/sync-version.mjs +53 -2
- package/skills/bee/peaks-perf-audit/SKILL.md +17 -0
- package/skills/bee/peaks-prd/SKILL.md +16 -0
- package/skills/bee/peaks-prd/test-prompts.json +12 -0
- package/skills/bee/peaks-qa/SKILL.md +16 -1
- package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +22 -0
- package/skills/bee/peaks-qa/test-prompts.json +12 -0
- package/skills/bee/peaks-rd/SKILL.md +29 -20
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +39 -0
- package/skills/bee/peaks-rd/test-prompts.json +12 -0
- package/skills/bee/peaks-reviewer/SKILL.md +17 -0
- package/skills/bee/peaks-sc/SKILL.md +16 -0
- package/skills/bee/peaks-security-audit/SKILL.md +17 -0
- package/skills/bee/peaks-txt/SKILL.md +16 -0
- package/skills/bee/peaks-txt/test-prompts.json +12 -0
- package/skills/bee/peaks-ui/SKILL.md +49 -43
- package/skills/bee/peaks-ui/test-prompts.json +12 -0
- package/skills/peaks-code/SKILL.md +54 -109
- package/skills/peaks-code/references/boundaries.md +15 -1
- package/skills/peaks-code/references/cron-scheduler-deployment.md +313 -0
- package/skills/peaks-code/references/external-skill-invocation.md +27 -0
- package/skills/peaks-code/references/lease-dashboard.html +224 -0
- package/skills/peaks-code/references/lease-stats.sample.json +26 -0
- package/skills/peaks-code/references/peaks-worktree-l2-enforcers.md +208 -0
- package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
- package/skills/peaks-code/references/runbook.md +63 -1
- package/skills/peaks-code/references/startup-sequence.md +110 -0
- package/skills/peaks-code/references/step-0-8-gate.md +1 -1
- package/skills/peaks-code/references/sub-agent-dispatch.md +92 -1
- package/skills/peaks-code/references/worktree-governance.md +123 -0
- package/skills/peaks-code/test-prompts.json +12 -0
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/peaks-solo/SKILL.md +21 -0
- package/skills/peaks-solo/references/triage-decision-table.md +6 -0
- package/skills/peaks-sop/test-prompts.json +17 -0
- package/dist/cli/commands/agent-commands.d.ts +0 -20
- package/dist/cli/commands/agent-commands.js +0 -48
- package/dist/cli/commands/classify-classify-commands.d.ts +0 -19
- package/dist/cli/commands/classify-classify-commands.js +0 -151
- package/dist/cli/commands/contract-commands.d.ts +0 -26
- package/dist/cli/commands/contract-commands.js +0 -114
- package/dist/cli/commands/session-auto-compact-hook-command.d.ts +0 -37
- package/dist/cli/commands/session-auto-compact-hook-command.js +0 -127
- package/dist/cli/commands/worker-commands.d.ts +0 -3
- package/dist/cli/commands/worker-commands.js +0 -52
- package/dist/services/agent/ecc-agent-service.d.ts +0 -47
- package/dist/services/agent/ecc-agent-service.js +0 -143
- package/dist/services/config/provider-service.d.ts +0 -48
- package/dist/services/config/provider-service.js +0 -143
- package/dist/services/context/dispatch-context-guard.d.ts +0 -27
- package/dist/services/context/dispatch-context-guard.js +0 -192
- package/dist/services/context/shared-channel.d.ts +0 -93
- package/dist/services/context/shared-channel.js +0 -308
- package/dist/services/filesystem/file-lock.d.ts +0 -11
- package/dist/services/filesystem/file-lock.js +0 -152
- package/dist/services/mut/assert-scanner.d.ts +0 -6
- package/dist/services/mut/assert-scanner.js +0 -116
- package/dist/services/mut/index.d.ts +0 -8
- package/dist/services/mut/index.js +0 -7
- package/dist/services/mut/mut-runner.d.ts +0 -39
- package/dist/services/mut/mut-runner.js +0 -29
- package/dist/services/mut/production-stryker.d.ts +0 -2
- package/dist/services/mut/production-stryker.js +0 -75
- package/dist/services/mut/report-builder.d.ts +0 -11
- package/dist/services/mut/report-builder.js +0 -110
- package/dist/services/mut/report-loader.d.ts +0 -31
- package/dist/services/mut/report-loader.js +0 -78
- package/dist/services/mut/thresholds.d.ts +0 -21
- package/dist/services/mut/thresholds.js +0 -22
- package/dist/services/mut/types.d.ts +0 -336
- package/dist/services/mut/types.js +0 -59
- package/dist/services/providers/minimax-provider-service.d.ts +0 -24
- package/dist/services/providers/minimax-provider-service.js +0 -143
- package/dist/services/providers/minimax-worker-service.d.ts +0 -21
- package/dist/services/providers/minimax-worker-service.js +0 -83
- package/dist/shared/fs.d.ts +0 -4
- package/dist/shared/fs.js +0 -26
- package/dist/shared/paths.d.ts +0 -6
- package/dist/shared/paths.js +0 -50
- package/dist/shared/result.d.ts +0 -22
- package/dist/shared/result.js +0 -46
- package/dist/shared/version.d.ts +0 -1
- package/dist/shared/version.js +0 -1
- package/examples/video-demo/README.md +0 -142
- package/examples/video-demo/out/en-closing-960.png +0 -0
- package/examples/video-demo/out/zh-closing-960.png +0 -0
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
- /package/dist/services/{job/job-resource-snapshot.js → job-snapshot/snapshot.js} +0 -0
|
@@ -4,6 +4,8 @@ import { CURSOR_ADAPTER } from './adapters/cursor-adapter.js';
|
|
|
4
4
|
import { CODEX_ADAPTER } from './adapters/codex-adapter.js';
|
|
5
5
|
import { HERMES_ADAPTER } from './adapters/hermes-adapter.js';
|
|
6
6
|
import { OPENCLAW_ADAPTER } from './adapters/openclaw-adapter.js';
|
|
7
|
+
import { QODER_ADAPTER } from './adapters/qoder-adapter.js';
|
|
8
|
+
import { TONGYI_LINGMA_ADAPTER } from './adapters/tongyi-lingma-adapter.js';
|
|
7
9
|
import { ZCODE_ADAPTER } from './adapters/zcode-adapter.js';
|
|
8
10
|
/**
|
|
9
11
|
* Built-in IDE adapter registry。Map<IdeId, IdeAdapter> 是单一来源。
|
|
@@ -25,6 +27,8 @@ const ADAPTERS = new Map([
|
|
|
25
27
|
['codex', CODEX_ADAPTER],
|
|
26
28
|
['hermes', HERMES_ADAPTER],
|
|
27
29
|
['openclaw', OPENCLAW_ADAPTER],
|
|
30
|
+
['qoder', QODER_ADAPTER],
|
|
31
|
+
['tongyi-lingma', TONGYI_LINGMA_ADAPTER],
|
|
28
32
|
['zcode', ZCODE_ADAPTER],
|
|
29
33
|
]);
|
|
30
34
|
/** Get the adapter for a given IDE id. Throws on unsupported IDE. */
|
|
@@ -59,5 +63,7 @@ export function _resetAdaptersForTesting() {
|
|
|
59
63
|
ADAPTERS.set('codex', CODEX_ADAPTER);
|
|
60
64
|
ADAPTERS.set('hermes', HERMES_ADAPTER);
|
|
61
65
|
ADAPTERS.set('openclaw', OPENCLAW_ADAPTER);
|
|
66
|
+
ADAPTERS.set('qoder', QODER_ADAPTER);
|
|
67
|
+
ADAPTERS.set('tongyi-lingma', TONGYI_LINGMA_ADAPTER);
|
|
62
68
|
ADAPTERS.set('zcode', ZCODE_ADAPTER);
|
|
63
69
|
}
|
|
@@ -181,7 +181,7 @@ export interface IdeCompactProfile {
|
|
|
181
181
|
readonly compactPathway: 'shell-exec' | 'ide-native' | 'llm-self-compress' | 'noop';
|
|
182
182
|
/**
|
|
183
183
|
* Optional command the runner invokes post-compact to confirm
|
|
184
|
-
* ratio dropped (e.g. `peaks
|
|
184
|
+
* ratio dropped (e.g. `peaks compact auto --json`). When omitted,
|
|
185
185
|
* the orchestrator polls `envVarForContextPercent` directly.
|
|
186
186
|
*/
|
|
187
187
|
readonly postCompactDetectCommand?: string;
|
|
@@ -9,7 +9,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
9
9
|
repairCycles: z.ZodDefault<z.ZodNumber>;
|
|
10
10
|
blockedReason: z.ZodOptional<z.ZodString>;
|
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
|
12
|
-
status: "pending" | "
|
|
12
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
13
13
|
label: string;
|
|
14
14
|
sliceId: string;
|
|
15
15
|
repairCycles: number;
|
|
@@ -18,7 +18,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
18
18
|
failureReason?: string | undefined;
|
|
19
19
|
blockedReason?: string | undefined;
|
|
20
20
|
}, {
|
|
21
|
-
status: "pending" | "
|
|
21
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
22
22
|
label: string;
|
|
23
23
|
sliceId: string;
|
|
24
24
|
commitSha?: string | undefined;
|
|
@@ -27,7 +27,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
27
27
|
repairCycles?: number | undefined;
|
|
28
28
|
blockedReason?: string | undefined;
|
|
29
29
|
}>, {
|
|
30
|
-
status: "pending" | "
|
|
30
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
31
31
|
label: string;
|
|
32
32
|
sliceId: string;
|
|
33
33
|
repairCycles: number;
|
|
@@ -36,7 +36,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
36
36
|
failureReason?: string | undefined;
|
|
37
37
|
blockedReason?: string | undefined;
|
|
38
38
|
}, {
|
|
39
|
-
status: "pending" | "
|
|
39
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
40
40
|
label: string;
|
|
41
41
|
sliceId: string;
|
|
42
42
|
commitSha?: string | undefined;
|
|
@@ -45,7 +45,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
45
45
|
repairCycles?: number | undefined;
|
|
46
46
|
blockedReason?: string | undefined;
|
|
47
47
|
}>, {
|
|
48
|
-
status: "pending" | "
|
|
48
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
49
49
|
label: string;
|
|
50
50
|
sliceId: string;
|
|
51
51
|
repairCycles: number;
|
|
@@ -54,7 +54,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
54
54
|
failureReason?: string | undefined;
|
|
55
55
|
blockedReason?: string | undefined;
|
|
56
56
|
}, {
|
|
57
|
-
status: "pending" | "
|
|
57
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
58
58
|
label: string;
|
|
59
59
|
sliceId: string;
|
|
60
60
|
commitSha?: string | undefined;
|
|
@@ -63,7 +63,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
63
63
|
repairCycles?: number | undefined;
|
|
64
64
|
blockedReason?: string | undefined;
|
|
65
65
|
}>, {
|
|
66
|
-
status: "pending" | "
|
|
66
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
67
67
|
label: string;
|
|
68
68
|
sliceId: string;
|
|
69
69
|
repairCycles: number;
|
|
@@ -72,7 +72,7 @@ export declare const SliceStateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.
|
|
|
72
72
|
failureReason?: string | undefined;
|
|
73
73
|
blockedReason?: string | undefined;
|
|
74
74
|
}, {
|
|
75
|
-
status: "pending" | "
|
|
75
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
76
76
|
label: string;
|
|
77
77
|
sliceId: string;
|
|
78
78
|
commitSha?: string | undefined;
|
|
@@ -99,13 +99,13 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
99
99
|
}, "strip", z.ZodTypeAny, {
|
|
100
100
|
at: string;
|
|
101
101
|
reason: string;
|
|
102
|
-
from: "rotating";
|
|
103
102
|
to: "single";
|
|
103
|
+
from: "rotating";
|
|
104
104
|
}, {
|
|
105
105
|
at: string;
|
|
106
106
|
reason: string;
|
|
107
|
-
from: "rotating";
|
|
108
107
|
to: "single";
|
|
108
|
+
from: "rotating";
|
|
109
109
|
}>>;
|
|
110
110
|
slices: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
111
111
|
sliceId: z.ZodString;
|
|
@@ -117,7 +117,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
117
117
|
repairCycles: z.ZodDefault<z.ZodNumber>;
|
|
118
118
|
blockedReason: z.ZodOptional<z.ZodString>;
|
|
119
119
|
}, "strip", z.ZodTypeAny, {
|
|
120
|
-
status: "pending" | "
|
|
120
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
121
121
|
label: string;
|
|
122
122
|
sliceId: string;
|
|
123
123
|
repairCycles: number;
|
|
@@ -126,7 +126,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
126
126
|
failureReason?: string | undefined;
|
|
127
127
|
blockedReason?: string | undefined;
|
|
128
128
|
}, {
|
|
129
|
-
status: "pending" | "
|
|
129
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
130
130
|
label: string;
|
|
131
131
|
sliceId: string;
|
|
132
132
|
commitSha?: string | undefined;
|
|
@@ -135,7 +135,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
135
135
|
repairCycles?: number | undefined;
|
|
136
136
|
blockedReason?: string | undefined;
|
|
137
137
|
}>, {
|
|
138
|
-
status: "pending" | "
|
|
138
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
139
139
|
label: string;
|
|
140
140
|
sliceId: string;
|
|
141
141
|
repairCycles: number;
|
|
@@ -144,7 +144,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
144
144
|
failureReason?: string | undefined;
|
|
145
145
|
blockedReason?: string | undefined;
|
|
146
146
|
}, {
|
|
147
|
-
status: "pending" | "
|
|
147
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
148
148
|
label: string;
|
|
149
149
|
sliceId: string;
|
|
150
150
|
commitSha?: string | undefined;
|
|
@@ -153,7 +153,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
153
153
|
repairCycles?: number | undefined;
|
|
154
154
|
blockedReason?: string | undefined;
|
|
155
155
|
}>, {
|
|
156
|
-
status: "pending" | "
|
|
156
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
157
157
|
label: string;
|
|
158
158
|
sliceId: string;
|
|
159
159
|
repairCycles: number;
|
|
@@ -162,7 +162,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
162
162
|
failureReason?: string | undefined;
|
|
163
163
|
blockedReason?: string | undefined;
|
|
164
164
|
}, {
|
|
165
|
-
status: "pending" | "
|
|
165
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
166
166
|
label: string;
|
|
167
167
|
sliceId: string;
|
|
168
168
|
commitSha?: string | undefined;
|
|
@@ -171,7 +171,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
171
171
|
repairCycles?: number | undefined;
|
|
172
172
|
blockedReason?: string | undefined;
|
|
173
173
|
}>, {
|
|
174
|
-
status: "pending" | "
|
|
174
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
175
175
|
label: string;
|
|
176
176
|
sliceId: string;
|
|
177
177
|
repairCycles: number;
|
|
@@ -180,7 +180,7 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
180
180
|
failureReason?: string | undefined;
|
|
181
181
|
blockedReason?: string | undefined;
|
|
182
182
|
}, {
|
|
183
|
-
status: "pending" | "
|
|
183
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
184
184
|
label: string;
|
|
185
185
|
sliceId: string;
|
|
186
186
|
commitSha?: string | undefined;
|
|
@@ -191,10 +191,16 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
191
191
|
}>, "many">;
|
|
192
192
|
}, "strip", z.ZodTypeAny, {
|
|
193
193
|
sessionId: string;
|
|
194
|
-
|
|
194
|
+
lastCheckpointAt: string;
|
|
195
195
|
jobId: string;
|
|
196
|
+
startedAt: string;
|
|
197
|
+
parallelismHint: "serial" | "llm-decides";
|
|
198
|
+
exitPolicy: "strict" | "best-effort";
|
|
199
|
+
mainLoopStrategy: "single" | "rotating";
|
|
200
|
+
rotateEvery: number;
|
|
201
|
+
mainSessionCycle: number;
|
|
196
202
|
slices: {
|
|
197
|
-
status: "pending" | "
|
|
203
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
198
204
|
label: string;
|
|
199
205
|
sliceId: string;
|
|
200
206
|
repairCycles: number;
|
|
@@ -203,24 +209,19 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
203
209
|
failureReason?: string | undefined;
|
|
204
210
|
blockedReason?: string | undefined;
|
|
205
211
|
}[];
|
|
206
|
-
lastCheckpointAt: string;
|
|
207
|
-
parallelismHint: "serial" | "llm-decides";
|
|
208
|
-
exitPolicy: "strict" | "best-effort";
|
|
209
|
-
mainLoopStrategy: "single" | "rotating";
|
|
210
|
-
rotateEvery: number;
|
|
211
|
-
mainSessionCycle: number;
|
|
212
212
|
mainLoopOverride?: {
|
|
213
213
|
at: string;
|
|
214
214
|
reason: string;
|
|
215
|
-
from: "rotating";
|
|
216
215
|
to: "single";
|
|
216
|
+
from: "rotating";
|
|
217
217
|
} | undefined;
|
|
218
218
|
}, {
|
|
219
219
|
sessionId: string;
|
|
220
|
-
|
|
220
|
+
lastCheckpointAt: string;
|
|
221
221
|
jobId: string;
|
|
222
|
+
startedAt: string;
|
|
222
223
|
slices: {
|
|
223
|
-
status: "pending" | "
|
|
224
|
+
status: "pending" | "blocked" | "failed" | "done" | "skipped" | "in-progress";
|
|
224
225
|
label: string;
|
|
225
226
|
sliceId: string;
|
|
226
227
|
commitSha?: string | undefined;
|
|
@@ -229,7 +230,6 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
229
230
|
repairCycles?: number | undefined;
|
|
230
231
|
blockedReason?: string | undefined;
|
|
231
232
|
}[];
|
|
232
|
-
lastCheckpointAt: string;
|
|
233
233
|
parallelismHint?: "serial" | "llm-decides" | undefined;
|
|
234
234
|
exitPolicy?: "strict" | "best-effort" | undefined;
|
|
235
235
|
mainLoopStrategy?: "single" | "rotating" | undefined;
|
|
@@ -238,8 +238,8 @@ export declare const JobStateSchema: z.ZodObject<{
|
|
|
238
238
|
mainLoopOverride?: {
|
|
239
239
|
at: string;
|
|
240
240
|
reason: string;
|
|
241
|
-
from: "rotating";
|
|
242
241
|
to: "single";
|
|
242
|
+
from: "rotating";
|
|
243
243
|
} | undefined;
|
|
244
244
|
}>;
|
|
245
245
|
export declare const ResourceSnapshotSchema: z.ZodObject<{
|
|
@@ -292,10 +292,10 @@ export declare const JobStatusSummarySchema: z.ZodObject<{
|
|
|
292
292
|
contextRatio: number;
|
|
293
293
|
}>>;
|
|
294
294
|
}, "strip", z.ZodTypeAny, {
|
|
295
|
-
skipped: number;
|
|
296
|
-
done: number;
|
|
297
|
-
failed: number;
|
|
298
295
|
blocked: number;
|
|
296
|
+
failed: number;
|
|
297
|
+
done: number;
|
|
298
|
+
skipped: number;
|
|
299
299
|
total: number;
|
|
300
300
|
mainLoopStrategy: "single" | "rotating";
|
|
301
301
|
mainSessionCycle: number;
|
|
@@ -310,10 +310,10 @@ export declare const JobStatusSummarySchema: z.ZodObject<{
|
|
|
310
310
|
contextRatio: number;
|
|
311
311
|
} | undefined;
|
|
312
312
|
}, {
|
|
313
|
-
skipped: number;
|
|
314
|
-
done: number;
|
|
315
|
-
failed: number;
|
|
316
313
|
blocked: number;
|
|
314
|
+
failed: number;
|
|
315
|
+
done: number;
|
|
316
|
+
skipped: number;
|
|
317
317
|
total: number;
|
|
318
318
|
mainLoopStrategy: "single" | "rotating";
|
|
319
319
|
mainSessionCycle: number;
|
|
@@ -330,7 +330,7 @@ export declare const JobStatusSummarySchema: z.ZodObject<{
|
|
|
330
330
|
}>;
|
|
331
331
|
export type SliceState = z.infer<typeof SliceStateSchema>;
|
|
332
332
|
export type JobState = z.infer<typeof JobStateSchema>;
|
|
333
|
-
export type ResourceSnapshot
|
|
333
|
+
export type { ResourceSnapshot } from '../job-snapshot/types.js';
|
|
334
334
|
export type JobStatusSummary = z.infer<typeof JobStatusSummarySchema>;
|
|
335
335
|
export declare const JobInitInputSchema: z.ZodObject<{
|
|
336
336
|
jobId: z.ZodString;
|
|
@@ -374,51 +374,51 @@ export declare const JobCheckpointInputSchema: z.ZodEffects<z.ZodEffects<z.ZodOb
|
|
|
374
374
|
json: z.ZodDefault<z.ZodBoolean>;
|
|
375
375
|
}, "strip", z.ZodTypeAny, {
|
|
376
376
|
project: string;
|
|
377
|
+
state: "failed" | "done" | "skipped";
|
|
377
378
|
json: boolean;
|
|
378
|
-
state: "skipped" | "done" | "failed";
|
|
379
|
-
sliceId: string;
|
|
380
379
|
jobId: string;
|
|
380
|
+
sliceId: string;
|
|
381
381
|
reason?: string | undefined;
|
|
382
382
|
commitSha?: string | undefined;
|
|
383
383
|
}, {
|
|
384
384
|
project: string;
|
|
385
|
-
state: "
|
|
386
|
-
sliceId: string;
|
|
385
|
+
state: "failed" | "done" | "skipped";
|
|
387
386
|
jobId: string;
|
|
388
|
-
|
|
387
|
+
sliceId: string;
|
|
389
388
|
reason?: string | undefined;
|
|
389
|
+
json?: boolean | undefined;
|
|
390
390
|
commitSha?: string | undefined;
|
|
391
391
|
}>, {
|
|
392
392
|
project: string;
|
|
393
|
+
state: "failed" | "done" | "skipped";
|
|
393
394
|
json: boolean;
|
|
394
|
-
state: "skipped" | "done" | "failed";
|
|
395
|
-
sliceId: string;
|
|
396
395
|
jobId: string;
|
|
396
|
+
sliceId: string;
|
|
397
397
|
reason?: string | undefined;
|
|
398
398
|
commitSha?: string | undefined;
|
|
399
399
|
}, {
|
|
400
400
|
project: string;
|
|
401
|
-
state: "
|
|
402
|
-
sliceId: string;
|
|
401
|
+
state: "failed" | "done" | "skipped";
|
|
403
402
|
jobId: string;
|
|
404
|
-
|
|
403
|
+
sliceId: string;
|
|
405
404
|
reason?: string | undefined;
|
|
405
|
+
json?: boolean | undefined;
|
|
406
406
|
commitSha?: string | undefined;
|
|
407
407
|
}>, {
|
|
408
408
|
project: string;
|
|
409
|
+
state: "failed" | "done" | "skipped";
|
|
409
410
|
json: boolean;
|
|
410
|
-
state: "skipped" | "done" | "failed";
|
|
411
|
-
sliceId: string;
|
|
412
411
|
jobId: string;
|
|
412
|
+
sliceId: string;
|
|
413
413
|
reason?: string | undefined;
|
|
414
414
|
commitSha?: string | undefined;
|
|
415
415
|
}, {
|
|
416
416
|
project: string;
|
|
417
|
-
state: "
|
|
418
|
-
sliceId: string;
|
|
417
|
+
state: "failed" | "done" | "skipped";
|
|
419
418
|
jobId: string;
|
|
420
|
-
|
|
419
|
+
sliceId: string;
|
|
421
420
|
reason?: string | undefined;
|
|
421
|
+
json?: boolean | undefined;
|
|
422
422
|
commitSha?: string | undefined;
|
|
423
423
|
}>;
|
|
424
424
|
export type JobCheckpointInput = z.infer<typeof JobCheckpointInputSchema>;
|
|
@@ -430,15 +430,15 @@ export declare const JobBlockInputSchema: z.ZodObject<{
|
|
|
430
430
|
json: z.ZodDefault<z.ZodBoolean>;
|
|
431
431
|
}, "strip", z.ZodTypeAny, {
|
|
432
432
|
project: string;
|
|
433
|
-
json: boolean;
|
|
434
433
|
reason: string;
|
|
435
|
-
|
|
434
|
+
json: boolean;
|
|
436
435
|
jobId: string;
|
|
436
|
+
sliceId: string;
|
|
437
437
|
}, {
|
|
438
438
|
project: string;
|
|
439
439
|
reason: string;
|
|
440
|
-
sliceId: string;
|
|
441
440
|
jobId: string;
|
|
441
|
+
sliceId: string;
|
|
442
442
|
json?: boolean | undefined;
|
|
443
443
|
}>;
|
|
444
444
|
export type JobBlockInput = z.infer<typeof JobBlockInputSchema>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peaks-loop-job-snapshot area (consolidated into peaks-loop).
|
|
3
|
+
*
|
|
4
|
+
* Public surface: runSnapshot, captureResources, and the
|
|
5
|
+
* ResourceSnapshot type.
|
|
6
|
+
*/
|
|
7
|
+
export { collectResourceSnapshot } from './snapshot.js';
|
|
8
|
+
export type { ResourceSnapshot } from './types.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ResourceSnapshot } from './
|
|
1
|
+
import type { ResourceSnapshot } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Collects a coarse-grained snapshot of host + project resources.
|
|
4
4
|
* Numeric ranges are clamped to zod's domain — out-of-range values are clamped, not thrown,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type ResultEnvelope } from 'peaks-loop-shared/result';
|
|
2
|
+
/** Threshold above which a `'block'` is downgraded to `'warn'`. */
|
|
3
|
+
export declare const KARPATHY_COST_DOWNGRADE_THRESHOLD = 10;
|
|
4
|
+
/** Threshold above which a sediment line is appended for human review. */
|
|
5
|
+
export declare const KARPATHY_COST_REPORT_THRESHOLD = 50;
|
|
6
|
+
export interface EvaluationCost {
|
|
7
|
+
readonly wallMs: number;
|
|
8
|
+
readonly subAgentsDispatched: number;
|
|
9
|
+
readonly tokensEstimated: number;
|
|
10
|
+
readonly sliceCodeSize: number;
|
|
11
|
+
}
|
|
12
|
+
export type GateAction = 'pass' | 'warn' | 'block';
|
|
13
|
+
export interface KarpathyReviewEnvelope {
|
|
14
|
+
readonly passed?: boolean;
|
|
15
|
+
readonly violations?: ReadonlyArray<unknown>;
|
|
16
|
+
readonly gateAction?: GateAction;
|
|
17
|
+
readonly evaluationCost?: EvaluationCost;
|
|
18
|
+
readonly costRatio?: number;
|
|
19
|
+
}
|
|
20
|
+
export type KarpathyCostCheckDecision = {
|
|
21
|
+
readonly kind: 'no-cost-data';
|
|
22
|
+
readonly gateAction: GateAction | null;
|
|
23
|
+
readonly reason: 'envelope-missing-evaluationCost' | 'file-missing' | 'file-unreadable' | 'envelope-not-json';
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: '24h-mode-active';
|
|
26
|
+
readonly gateAction: GateAction | null;
|
|
27
|
+
readonly reason: 'peaks session 24h-mode state = 24H_ACTIVE; cost-check is the OVERRIDE, not the constrained side';
|
|
28
|
+
} | {
|
|
29
|
+
readonly kind: 'downgraded';
|
|
30
|
+
readonly originalGateAction: 'block';
|
|
31
|
+
readonly newGateAction: 'warn';
|
|
32
|
+
readonly costRatio: number;
|
|
33
|
+
readonly evaluationCost: EvaluationCost;
|
|
34
|
+
} | {
|
|
35
|
+
readonly kind: 'reported';
|
|
36
|
+
readonly gateAction: GateAction;
|
|
37
|
+
readonly costRatio: number;
|
|
38
|
+
readonly evaluationCost: EvaluationCost;
|
|
39
|
+
} | {
|
|
40
|
+
readonly kind: 'unchanged';
|
|
41
|
+
readonly gateAction: GateAction;
|
|
42
|
+
readonly costRatio: number;
|
|
43
|
+
readonly evaluationCost: EvaluationCost;
|
|
44
|
+
};
|
|
45
|
+
export interface KarpathyCostCheckInput {
|
|
46
|
+
/** The karpathy-review.md file content (verbatim). */
|
|
47
|
+
readonly reviewFileContent: string;
|
|
48
|
+
/** Callable that returns true if 24h-mode is active. */
|
|
49
|
+
readonly is24hModeActive: () => boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface KarpathyCostCheckOutput {
|
|
52
|
+
readonly decision: KarpathyCostCheckDecision;
|
|
53
|
+
/** Plain-text reason line for the CLI to print under the envelope. */
|
|
54
|
+
readonly reasonLine: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Pure: decide whether to downgrade a karpathy-reviewer gateAction.
|
|
58
|
+
* No fs / no env reads — the input is pre-loaded by the CLI.
|
|
59
|
+
*/
|
|
60
|
+
export declare function decideKarpathyCostCheck(input: KarpathyCostCheckInput): KarpathyCostCheckOutput;
|
|
61
|
+
/** Convenience: load the review file from disk and run the decision. */
|
|
62
|
+
export declare function runKarpathyCostCheck(opts: {
|
|
63
|
+
readonly reviewFilePath: string;
|
|
64
|
+
readonly is24hModeActive: () => boolean;
|
|
65
|
+
}): KarpathyCostCheckOutput;
|
|
66
|
+
/** Envelope-shape return for the CLI. */
|
|
67
|
+
export declare function buildCostCheckEnvelope(out: KarpathyCostCheckOutput): ResultEnvelope<KarpathyCostCheckDecision>;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// src/services/karpathy-cost/karpathy-cost-check-service.ts
|
|
2
|
+
//
|
|
3
|
+
// Slice 2026-07-30-karpathy-cost-self-review (slice 2/4). The
|
|
4
|
+
// karpathy-reviewer's JSON envelope is extended with `evaluationCost`
|
|
5
|
+
// + `costRatio` (see agents/karpathy-reviewer.md §4). This service
|
|
6
|
+
// is the orchestrator-side consumer of those fields.
|
|
7
|
+
//
|
|
8
|
+
// The check is intentionally small and pure-with-respect-to-its-inputs:
|
|
9
|
+
// - It reads the slice's `rd/karpathy-review.md` (a JSON envelope
|
|
10
|
+
// written by karpathy-reviewer sub-agent)
|
|
11
|
+
// - It reads the 24h-mode state via a passed-in callable (NOT
|
|
12
|
+
// a direct fs read, to keep this unit-testable in isolation)
|
|
13
|
+
// - It decides whether to auto-downgrade a `'block'` gateAction
|
|
14
|
+
// to `'warn'` based on costRatio
|
|
15
|
+
// - It returns a structured result the CLI can render with
|
|
16
|
+
// printResult()
|
|
17
|
+
//
|
|
18
|
+
// Backward compatibility: when evaluationCost is absent the check
|
|
19
|
+
// returns `'skipped-no-cost-data'` and gateAction is left untouched
|
|
20
|
+
// (the existing hard gate stays in effect — missing cost data must
|
|
21
|
+
// not silently downgrade a 'block').
|
|
22
|
+
import { readFileSync } from 'node:fs';
|
|
23
|
+
import { ok } from 'peaks-loop-shared/result';
|
|
24
|
+
/** Threshold above which a `'block'` is downgraded to `'warn'`. */
|
|
25
|
+
export const KARPATHY_COST_DOWNGRADE_THRESHOLD = 10;
|
|
26
|
+
/** Threshold above which a sediment line is appended for human review. */
|
|
27
|
+
export const KARPATHY_COST_REPORT_THRESHOLD = 50;
|
|
28
|
+
/**
|
|
29
|
+
* Pure: decide whether to downgrade a karpathy-reviewer gateAction.
|
|
30
|
+
* No fs / no env reads — the input is pre-loaded by the CLI.
|
|
31
|
+
*/
|
|
32
|
+
export function decideKarpathyCostCheck(input) {
|
|
33
|
+
if (input.is24hModeActive()) {
|
|
34
|
+
return {
|
|
35
|
+
decision: {
|
|
36
|
+
kind: '24h-mode-active',
|
|
37
|
+
gateAction: null,
|
|
38
|
+
reason: 'peaks session 24h-mode state = 24H_ACTIVE; cost-check is the OVERRIDE, not the constrained side',
|
|
39
|
+
},
|
|
40
|
+
reasonLine: 'karpathy-cost-check: skipped (24h-mode active)',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
let envelope;
|
|
44
|
+
try {
|
|
45
|
+
envelope = JSON.parse(input.reviewFileContent);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return {
|
|
49
|
+
decision: { kind: 'no-cost-data', gateAction: null, reason: 'envelope-not-json' },
|
|
50
|
+
reasonLine: 'karpathy-cost-check: skipped (envelope not JSON)',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (!envelope.evaluationCost || typeof envelope.costRatio !== 'number') {
|
|
54
|
+
return {
|
|
55
|
+
decision: {
|
|
56
|
+
kind: 'no-cost-data',
|
|
57
|
+
gateAction: envelope.gateAction ?? null,
|
|
58
|
+
reason: 'envelope-missing-evaluationCost',
|
|
59
|
+
},
|
|
60
|
+
reasonLine: 'karpathy-cost-check: skipped (envelope missing evaluationCost/costRatio)',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const costRatio = envelope.costRatio;
|
|
64
|
+
const evaluationCost = envelope.evaluationCost;
|
|
65
|
+
if (envelope.gateAction === 'block' && costRatio > KARPATHY_COST_DOWNGRADE_THRESHOLD) {
|
|
66
|
+
return {
|
|
67
|
+
decision: {
|
|
68
|
+
kind: 'downgraded',
|
|
69
|
+
originalGateAction: 'block',
|
|
70
|
+
newGateAction: 'warn',
|
|
71
|
+
costRatio,
|
|
72
|
+
evaluationCost,
|
|
73
|
+
},
|
|
74
|
+
reasonLine: `karpathy-cost-check: downgraded block → warn (costRatio=${costRatio.toFixed(2)} > ${KARPATHY_COST_DOWNGRADE_THRESHOLD})`,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (costRatio > KARPATHY_COST_REPORT_THRESHOLD) {
|
|
78
|
+
return {
|
|
79
|
+
decision: { kind: 'reported', gateAction: envelope.gateAction ?? 'pass', costRatio, evaluationCost },
|
|
80
|
+
reasonLine: `karpathy-cost-check: costRatio=${costRatio.toFixed(2)} > ${KARPATHY_COST_REPORT_THRESHOLD} (sediment appended)`,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
decision: { kind: 'unchanged', gateAction: envelope.gateAction ?? 'pass', costRatio, evaluationCost },
|
|
85
|
+
reasonLine: `karpathy-cost-check: unchanged (costRatio=${costRatio.toFixed(2)})`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/** Convenience: load the review file from disk and run the decision. */
|
|
89
|
+
export function runKarpathyCostCheck(opts) {
|
|
90
|
+
let content;
|
|
91
|
+
try {
|
|
92
|
+
content = readFileSync(opts.reviewFilePath, 'utf8');
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return {
|
|
96
|
+
decision: { kind: 'no-cost-data', gateAction: null, reason: 'file-missing' },
|
|
97
|
+
reasonLine: `karpathy-cost-check: skipped (file missing: ${opts.reviewFilePath})`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return decideKarpathyCostCheck({
|
|
101
|
+
reviewFileContent: content,
|
|
102
|
+
is24hModeActive: opts.is24hModeActive,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/** Envelope-shape return for the CLI. */
|
|
106
|
+
export function buildCostCheckEnvelope(out) {
|
|
107
|
+
return ok('karpathy-cost-check', out.decision);
|
|
108
|
+
}
|
|
@@ -32,3 +32,19 @@ export type ApplyRetentionOptions = {
|
|
|
32
32
|
* process between the `readdir` and the `unlink`).
|
|
33
33
|
*/
|
|
34
34
|
export declare function applyRetention(opts?: ApplyRetentionOptions): string[];
|
|
35
|
+
/**
|
|
36
|
+
* Slice 3 (on-demand-ecc) — 7-day TTL sweep over `~/.peaks/cache/ecc-<sha>/`
|
|
37
|
+
* directories. Delegates to `cleanupStaleCache` in the ECC cache
|
|
38
|
+
* service so the retention policy lives next to the cache it
|
|
39
|
+
* governs.
|
|
40
|
+
*
|
|
41
|
+
* Mirrors the `applyRetention` signature for symmetry: tests pass
|
|
42
|
+
* `nowMs` + `dirOverride`; production callers leave both unset.
|
|
43
|
+
*/
|
|
44
|
+
export declare function cleanupEccCache(options: {
|
|
45
|
+
retentionDays: number;
|
|
46
|
+
nowMs?: number;
|
|
47
|
+
dirOverride?: string;
|
|
48
|
+
}): {
|
|
49
|
+
removed: string[];
|
|
50
|
+
};
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import { readdirSync, statSync, unlinkSync, existsSync } from 'node:fs';
|
|
17
17
|
import { join } from 'node:path';
|
|
18
18
|
import { resolveLogDir } from './logger.js';
|
|
19
|
+
import { cleanupStaleCache } from 'peaks-loop-mut';
|
|
19
20
|
const LOG_FILE_NAME_PATTERN = /^peaks-loop-(\d{4}-\d{2}-\d{2})\.log$/;
|
|
20
21
|
function dayDiffUtc(nowUtcMidnightMs, fileDateUtcMs) {
|
|
21
22
|
const dayMs = 24 * 60 * 60 * 1000;
|
|
@@ -76,3 +77,19 @@ export function applyRetention(opts = {}) {
|
|
|
76
77
|
}
|
|
77
78
|
return removed;
|
|
78
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Slice 3 (on-demand-ecc) — 7-day TTL sweep over `~/.peaks/cache/ecc-<sha>/`
|
|
82
|
+
* directories. Delegates to `cleanupStaleCache` in the ECC cache
|
|
83
|
+
* service so the retention policy lives next to the cache it
|
|
84
|
+
* governs.
|
|
85
|
+
*
|
|
86
|
+
* Mirrors the `applyRetention` signature for symmetry: tests pass
|
|
87
|
+
* `nowMs` + `dirOverride`; production callers leave both unset.
|
|
88
|
+
*/
|
|
89
|
+
export function cleanupEccCache(options) {
|
|
90
|
+
return cleanupStaleCache({
|
|
91
|
+
retentionDays: options.retentionDays,
|
|
92
|
+
nowMs: options.nowMs ?? Date.now(),
|
|
93
|
+
...(options.dirOverride !== undefined ? { dirOverride: options.dirOverride } : {}),
|
|
94
|
+
});
|
|
95
|
+
}
|