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
|
@@ -47,15 +47,15 @@ export declare const LoopBeeRelationInputSchema: z.ZodObject<{
|
|
|
47
47
|
role: z.ZodEnum<["main", "supporting", "candidate", "retired"]>;
|
|
48
48
|
reason: z.ZodString;
|
|
49
49
|
}, "strip", z.ZodTypeAny, {
|
|
50
|
-
role: "main" | "candidate" | "retired" | "supporting";
|
|
51
|
-
reason: string;
|
|
52
50
|
bee_release_id: number;
|
|
53
51
|
loop_release_id: string;
|
|
54
|
-
}, {
|
|
55
52
|
role: "main" | "candidate" | "retired" | "supporting";
|
|
56
53
|
reason: string;
|
|
54
|
+
}, {
|
|
57
55
|
bee_release_id: number;
|
|
58
56
|
loop_release_id: string;
|
|
57
|
+
role: "main" | "candidate" | "retired" | "supporting";
|
|
58
|
+
reason: string;
|
|
59
59
|
}>;
|
|
60
60
|
export type LoopBeeRelationInput = z.input<typeof LoopBeeRelationInputSchema>;
|
|
61
61
|
/**
|
|
@@ -80,19 +80,19 @@ export declare const LoopBeeRelationSchema: z.ZodObject<{
|
|
|
80
80
|
created_at: z.ZodString;
|
|
81
81
|
}, "strip", z.ZodTypeAny, {
|
|
82
82
|
schema_version: "peaks.loop-bee-relation/1";
|
|
83
|
-
role: "main" | "candidate" | "retired" | "supporting";
|
|
84
|
-
reason: string;
|
|
85
83
|
id: number;
|
|
86
84
|
created_at: string;
|
|
87
85
|
bee_release_id: number;
|
|
88
86
|
loop_release_id: string;
|
|
89
|
-
}, {
|
|
90
87
|
role: "main" | "candidate" | "retired" | "supporting";
|
|
91
88
|
reason: string;
|
|
89
|
+
}, {
|
|
92
90
|
id: number;
|
|
93
91
|
created_at: string;
|
|
94
92
|
bee_release_id: number;
|
|
95
93
|
loop_release_id: string;
|
|
94
|
+
role: "main" | "candidate" | "retired" | "supporting";
|
|
95
|
+
reason: string;
|
|
96
96
|
schema_version?: "peaks.loop-bee-relation/1" | undefined;
|
|
97
97
|
}>;
|
|
98
98
|
export type LoopBeeRelation = z.infer<typeof LoopBeeRelationSchema>;
|
|
@@ -69,15 +69,15 @@ export declare const LoopReleaseM3ExtensionSchema: z.ZodObject<{
|
|
|
69
69
|
desktop_visible: z.ZodDefault<z.ZodBoolean>;
|
|
70
70
|
export_bundle_format: z.ZodDefault<z.ZodLiteral<"peaks.bundle/1">>;
|
|
71
71
|
}, "strip", z.ZodTypeAny, {
|
|
72
|
-
export_bundle_format: "peaks.bundle/1";
|
|
73
72
|
shareable: boolean;
|
|
74
73
|
share_excluded_paths: string[];
|
|
75
74
|
desktop_visible: boolean;
|
|
75
|
+
export_bundle_format: "peaks.bundle/1";
|
|
76
76
|
}, {
|
|
77
|
-
export_bundle_format?: "peaks.bundle/1" | undefined;
|
|
78
77
|
shareable?: boolean | undefined;
|
|
79
78
|
share_excluded_paths?: string[] | undefined;
|
|
80
79
|
desktop_visible?: boolean | undefined;
|
|
80
|
+
export_bundle_format?: "peaks.bundle/1" | undefined;
|
|
81
81
|
}>;
|
|
82
82
|
/** Convenience type for the M3 share / desktop subset. */
|
|
83
83
|
export type LoopReleaseM3Extension = z.infer<typeof LoopReleaseM3ExtensionSchema>;
|
|
@@ -110,41 +110,41 @@ export declare const LoopReleaseInputSchema: z.ZodObject<{
|
|
|
110
110
|
}, "strip", z.ZodTypeAny, {
|
|
111
111
|
version: string;
|
|
112
112
|
name: string;
|
|
113
|
+
lifecycle_status: "candidate" | "stable" | "retired";
|
|
113
114
|
id: string;
|
|
115
|
+
shareable: boolean;
|
|
116
|
+
share_excluded_paths: string[];
|
|
117
|
+
desktop_visible: boolean;
|
|
118
|
+
export_bundle_format: "peaks.bundle/1";
|
|
114
119
|
scenario: string;
|
|
115
120
|
trigger_policy: string;
|
|
121
|
+
success_criteria: string[];
|
|
116
122
|
interaction_policy: string;
|
|
117
123
|
feedback_policy: string;
|
|
118
124
|
evolution_policy: string;
|
|
119
|
-
lifecycle_status: "candidate" | "stable" | "retired";
|
|
120
|
-
export_bundle_format: "peaks.bundle/1";
|
|
121
|
-
success_criteria: string[];
|
|
122
125
|
evaluator_policy: string[];
|
|
123
126
|
linked_bees: string[];
|
|
124
127
|
run_history: string[];
|
|
125
128
|
crystallization_evidence: string[];
|
|
126
|
-
shareable: boolean;
|
|
127
|
-
share_excluded_paths: string[];
|
|
128
|
-
desktop_visible: boolean;
|
|
129
129
|
}, {
|
|
130
130
|
version: string;
|
|
131
131
|
name: string;
|
|
132
|
+
lifecycle_status: "candidate" | "stable" | "retired";
|
|
132
133
|
id: string;
|
|
133
134
|
scenario: string;
|
|
134
135
|
trigger_policy: string;
|
|
136
|
+
success_criteria: string[];
|
|
135
137
|
interaction_policy: string;
|
|
136
138
|
feedback_policy: string;
|
|
137
139
|
evolution_policy: string;
|
|
138
|
-
lifecycle_status: "candidate" | "stable" | "retired";
|
|
139
|
-
success_criteria: string[];
|
|
140
140
|
evaluator_policy: string[];
|
|
141
|
+
shareable?: boolean | undefined;
|
|
142
|
+
share_excluded_paths?: string[] | undefined;
|
|
143
|
+
desktop_visible?: boolean | undefined;
|
|
141
144
|
export_bundle_format?: "peaks.bundle/1" | undefined;
|
|
142
145
|
linked_bees?: string[] | undefined;
|
|
143
146
|
run_history?: string[] | undefined;
|
|
144
147
|
crystallization_evidence?: string[] | undefined;
|
|
145
|
-
shareable?: boolean | undefined;
|
|
146
|
-
share_excluded_paths?: string[] | undefined;
|
|
147
|
-
desktop_visible?: boolean | undefined;
|
|
148
148
|
}>;
|
|
149
149
|
/**
|
|
150
150
|
* `LoopReleaseInput` is the *input* shape clients supply: defaulted
|
|
@@ -191,42 +191,42 @@ export declare const LoopReleaseSchema: z.ZodObject<{
|
|
|
191
191
|
schema_version: "peaks.loop/1";
|
|
192
192
|
version: string;
|
|
193
193
|
name: string;
|
|
194
|
+
lifecycle_status: "candidate" | "stable" | "retired";
|
|
194
195
|
id: string;
|
|
196
|
+
shareable: boolean;
|
|
197
|
+
share_excluded_paths: string[];
|
|
198
|
+
desktop_visible: boolean;
|
|
199
|
+
export_bundle_format: "peaks.bundle/1";
|
|
195
200
|
scenario: string;
|
|
196
201
|
trigger_policy: string;
|
|
202
|
+
success_criteria: string[];
|
|
197
203
|
interaction_policy: string;
|
|
198
204
|
feedback_policy: string;
|
|
199
205
|
evolution_policy: string;
|
|
200
|
-
lifecycle_status: "candidate" | "stable" | "retired";
|
|
201
|
-
export_bundle_format: "peaks.bundle/1";
|
|
202
|
-
success_criteria: string[];
|
|
203
206
|
evaluator_policy: string[];
|
|
204
207
|
linked_bees: string[];
|
|
205
208
|
run_history: string[];
|
|
206
209
|
crystallization_evidence: string[];
|
|
207
|
-
shareable: boolean;
|
|
208
|
-
share_excluded_paths: string[];
|
|
209
|
-
desktop_visible: boolean;
|
|
210
210
|
}, {
|
|
211
211
|
version: string;
|
|
212
212
|
name: string;
|
|
213
|
+
lifecycle_status: "candidate" | "stable" | "retired";
|
|
213
214
|
id: string;
|
|
214
215
|
scenario: string;
|
|
215
216
|
trigger_policy: string;
|
|
217
|
+
success_criteria: string[];
|
|
216
218
|
interaction_policy: string;
|
|
217
219
|
feedback_policy: string;
|
|
218
220
|
evolution_policy: string;
|
|
219
|
-
lifecycle_status: "candidate" | "stable" | "retired";
|
|
220
|
-
success_criteria: string[];
|
|
221
221
|
evaluator_policy: string[];
|
|
222
222
|
schema_version?: "peaks.loop/1" | undefined;
|
|
223
|
+
shareable?: boolean | undefined;
|
|
224
|
+
share_excluded_paths?: string[] | undefined;
|
|
225
|
+
desktop_visible?: boolean | undefined;
|
|
223
226
|
export_bundle_format?: "peaks.bundle/1" | undefined;
|
|
224
227
|
linked_bees?: string[] | undefined;
|
|
225
228
|
run_history?: string[] | undefined;
|
|
226
229
|
crystallization_evidence?: string[] | undefined;
|
|
227
|
-
shareable?: boolean | undefined;
|
|
228
|
-
share_excluded_paths?: string[] | undefined;
|
|
229
|
-
desktop_visible?: boolean | undefined;
|
|
230
230
|
}>;
|
|
231
231
|
export type LoopRelease = z.infer<typeof LoopReleaseSchema>;
|
|
232
232
|
/**
|
|
@@ -26,23 +26,29 @@ export interface RunMonotonicResult {
|
|
|
26
26
|
readonly persistedAt: string | null;
|
|
27
27
|
readonly rows: readonly MonotonicScoreRow[];
|
|
28
28
|
readonly report: MonotonicReport;
|
|
29
|
-
/** Additive surface for non-fatal persistence warnings (e.g.
|
|
29
|
+
/** Additive surface for non-fatal persistence warnings (e.g. append
|
|
30
30
|
* failure). Optional so existing destructures keep compiling. */
|
|
31
31
|
readonly warnings?: readonly string[];
|
|
32
32
|
}
|
|
33
|
-
/** Resolve the slice dir
|
|
34
|
-
*
|
|
33
|
+
/** Resolve the slice dir — kept for API/BC (run-driver.ts uses it to
|
|
34
|
+
* derive `cyclesDir`). The monotonic-runner writer no longer writes
|
|
35
|
+
* here; the jsonl-store is the new persistence layer. */
|
|
35
36
|
export declare function sliceDir(projectRoot: string, sid: string, rid: string): string;
|
|
36
|
-
/** Load the most recent prior cycle (
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
/** Load the most recent prior cycle for `(sid, rid)` from the
|
|
38
|
+
* per-session jsonl store (tail scan, O(N) where N = total jsonl
|
|
39
|
+
* lines, ~50-100 for a 24h run). Falls back to the legacy
|
|
40
|
+
* `.peaks/_sub_agents/<sid>/shared/` dir for cross-session signal.
|
|
41
|
+
* Returns `null` on any read error. */
|
|
40
42
|
export declare function loadPreviousCycle(projectRoot: string, sid: string, rid: string): MonotonicCycle | null;
|
|
41
|
-
/** Determine the next cycle index —
|
|
43
|
+
/** Determine the next cycle index — reads the most recent jsonl
|
|
44
|
+
* cycle line's `cycle` field + 1 (or `1` when none exist). `rid`
|
|
45
|
+
* retained for API compatibility — the jsonl-store is per-session,
|
|
46
|
+
* but the line tag carries `rid` so the reader filters to this rid.
|
|
47
|
+
*/
|
|
42
48
|
export declare function nextCycleIndex(projectRoot: string, sid: string, rid: string): number;
|
|
43
|
-
/** Run the guard end-to-end: walk the 4 evaluators, persist the
|
|
44
|
-
* cycle
|
|
45
|
-
* structured report. */
|
|
49
|
+
/** Run the guard end-to-end: walk the 4 evaluators, persist the
|
|
50
|
+
* current cycle to the jsonl store, compare against the prior cycle,
|
|
51
|
+
* return a structured report. */
|
|
46
52
|
export declare function runMonotonicCheck(options: RunMonotonicOptions): RunMonotonicResult;
|
|
47
53
|
/** Helper for tests + CLI — resolve project root + sid consistently. */
|
|
48
54
|
export declare function resolveMonotonicContext(opts: {
|
|
@@ -5,22 +5,26 @@
|
|
|
5
5
|
* cycle's score rows (per evaluator), invokes each evaluator against
|
|
6
6
|
* the current rid + project, then compares adjacent cycles.
|
|
7
7
|
*
|
|
8
|
-
* - current cycle score rows are
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* - current cycle score rows are appended to the per-session jsonl
|
|
9
|
+
* store at `.peaks/_runtime/<sid>/metrics/slices.jsonl` with the
|
|
10
|
+
* tag `{"kind":"monotonic-cycle","rid":"<rid>","cycle":N,"scores":[...]}`.
|
|
11
|
+
* - previous cycle rows are read from the same jsonl store (last
|
|
12
|
+
* matching tag, O(1) tail scan). When no jsonl record exists, the
|
|
13
|
+
* reader falls back to the legacy `.peaks/_sub_agents/<sid>/shared/`
|
|
14
|
+
* dir (still reads cycle-N.json) for cross-batch/session signal.
|
|
13
15
|
* - missing previous cycle → skip (not abort).
|
|
14
16
|
*
|
|
15
|
-
* Karpathy §2 Simplicity First:
|
|
16
|
-
* `
|
|
17
|
+
* Karpathy §2 Simplicity First: reuse `appendMetricLine` +
|
|
18
|
+
* `readMetricLines` from `observability/jsonl-store.ts`. One append per
|
|
19
|
+
* cycle replaces N cycle-N.json files; tail scan replaces readdirSync +
|
|
20
|
+
* regex.
|
|
17
21
|
*
|
|
18
22
|
* File budget: ≤ 800 lines (Karpathy §2).
|
|
19
23
|
*/
|
|
20
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
21
24
|
import { join } from 'node:path';
|
|
22
25
|
import { dispatchEvaluator } from './evaluator-dispatcher.js';
|
|
23
26
|
import { checkMonotonicImprovement, toScoreRow, DEFAULT_MONOTONIC_THRESHOLD } from './monotonic-guard.js';
|
|
27
|
+
import { appendMetricLine, readMetricLines } from '../observability/jsonl-store.js';
|
|
24
28
|
import { findProjectRoot } from '../config/config-safety.js';
|
|
25
29
|
function classifyFsError(err) {
|
|
26
30
|
const code = err?.code;
|
|
@@ -28,6 +32,8 @@ function classifyFsError(err) {
|
|
|
28
32
|
return 'NOT_FOUND';
|
|
29
33
|
return 'IO_ERROR';
|
|
30
34
|
}
|
|
35
|
+
/** Tag for cycle lines in the jsonl-store. */
|
|
36
|
+
const MONOTONIC_CYCLE_KIND = 'monotonic-cycle';
|
|
31
37
|
/** Set of evaluator kinds the loop walker actually scores — keeps the
|
|
32
38
|
* guard surface tight (the verdict-aggregate is the cross-source merge
|
|
33
39
|
* and not a per-cycle input). */
|
|
@@ -37,29 +43,94 @@ const WALKED_EVALUATORS = [
|
|
|
37
43
|
'security-review',
|
|
38
44
|
'perf-baseline'
|
|
39
45
|
];
|
|
40
|
-
/** Resolve the slice dir
|
|
41
|
-
*
|
|
46
|
+
/** Resolve the slice dir — kept for API/BC (run-driver.ts uses it to
|
|
47
|
+
* derive `cyclesDir`). The monotonic-runner writer no longer writes
|
|
48
|
+
* here; the jsonl-store is the new persistence layer. */
|
|
42
49
|
export function sliceDir(projectRoot, sid, rid) {
|
|
43
50
|
return join(projectRoot, '.peaks', '_runtime', sid, 'loop', rid);
|
|
44
51
|
}
|
|
45
|
-
/** Load the most recent prior cycle (
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
52
|
+
/** Load the most recent prior cycle for `(sid, rid)` from the
|
|
53
|
+
* per-session jsonl store (tail scan, O(N) where N = total jsonl
|
|
54
|
+
* lines, ~50-100 for a 24h run). Falls back to the legacy
|
|
55
|
+
* `.peaks/_sub_agents/<sid>/shared/` dir for cross-session signal.
|
|
56
|
+
* Returns `null` on any read error. */
|
|
49
57
|
export function loadPreviousCycle(projectRoot, sid, rid) {
|
|
50
|
-
return
|
|
51
|
-
?? loadMostRecentCycleFromSubAgents(projectRoot, sid);
|
|
58
|
+
return loadMostRecentCycleFromJsonl(projectRoot, sid, rid)
|
|
59
|
+
?? loadMostRecentCycleFromSubAgents(projectRoot, sid, rid);
|
|
52
60
|
}
|
|
53
|
-
|
|
61
|
+
/** Scan the jsonl-store from tail backwards for the most recent
|
|
62
|
+
* `monotonic-cycle` line matching `rid`. Returns `null` when no
|
|
63
|
+
* matching line exists or any line is malformed. */
|
|
64
|
+
function loadMostRecentCycleFromJsonl(projectRoot, sid, rid) {
|
|
65
|
+
const lines = readMetricLines(projectRoot, sid);
|
|
66
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
67
|
+
const line = lines[i] ?? '';
|
|
68
|
+
const parsed = parseCycleLine(line, rid);
|
|
69
|
+
if (parsed !== null)
|
|
70
|
+
return parsed;
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
function parseCycleLine(raw, rid) {
|
|
75
|
+
let obj;
|
|
76
|
+
try {
|
|
77
|
+
const v = JSON.parse(raw);
|
|
78
|
+
if (v === null || typeof v !== 'object')
|
|
79
|
+
return null;
|
|
80
|
+
obj = v;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
if (obj['kind'] !== MONOTONIC_CYCLE_KIND)
|
|
86
|
+
return null;
|
|
87
|
+
if (typeof obj['rid'] !== 'string' || obj['rid'] !== rid)
|
|
88
|
+
return null;
|
|
89
|
+
const cycle = typeof obj['cycle'] === 'number' ? obj['cycle'] : 0;
|
|
90
|
+
const scores = parseScoreRows(obj['scores']);
|
|
91
|
+
return { cycle, scores };
|
|
92
|
+
}
|
|
93
|
+
function parseScoreRows(raw) {
|
|
94
|
+
if (!Array.isArray(raw))
|
|
95
|
+
return [];
|
|
96
|
+
const out = [];
|
|
97
|
+
for (const s of raw) {
|
|
98
|
+
if (s === null || typeof s !== 'object')
|
|
99
|
+
continue;
|
|
100
|
+
const r = s;
|
|
101
|
+
if (typeof r['evaluator'] !== 'string')
|
|
102
|
+
continue;
|
|
103
|
+
const gate = r['gateAction'];
|
|
104
|
+
if (gate !== 'pass' && gate !== 'warn' && gate !== 'block')
|
|
105
|
+
continue;
|
|
106
|
+
const observedAt = typeof r['observedAt'] === 'string' ? r['observedAt'] : new Date(0).toISOString();
|
|
107
|
+
out.push({
|
|
108
|
+
evaluator: r['evaluator'],
|
|
109
|
+
score: typeof r['score'] === 'number' ? r['score'] : (gate === 'pass' ? 1.0 : gate === 'warn' ? 0.5 : 0.0),
|
|
110
|
+
gateAction: gate,
|
|
111
|
+
degraded: r['degraded'] === true,
|
|
112
|
+
observedAt
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
/** Legacy fallback: read the most recent `cycle-N.json` from the
|
|
118
|
+
* `.peaks/_sub_agents/<sid>/shared/` dir (cross-session signal).
|
|
119
|
+
* Kept verbatim so existing cross-batch signals remain readable. */
|
|
120
|
+
function loadMostRecentCycleFromSubAgents(projectRoot, sid, rid) {
|
|
54
121
|
const dir = join(projectRoot, '.peaks', '_sub_agents', sid, 'shared');
|
|
55
|
-
return
|
|
122
|
+
return loadMostRecentCycleFromDir(dir, rid);
|
|
56
123
|
}
|
|
57
|
-
function
|
|
58
|
-
|
|
124
|
+
function loadMostRecentCycleFromDir(dir, rid) {
|
|
125
|
+
// Lazily import so unit tests in non-windows environments don't pull
|
|
126
|
+
// node:fs through a static `import`.
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
128
|
+
const fs = require('node:fs');
|
|
129
|
+
if (!fs.existsSync(dir))
|
|
59
130
|
return null;
|
|
60
131
|
const readdir = (() => {
|
|
61
132
|
try {
|
|
62
|
-
return { ok: true, value:
|
|
133
|
+
return { ok: true, value: fs.readdirSync(dir) };
|
|
63
134
|
}
|
|
64
135
|
catch (err) {
|
|
65
136
|
return { ok: false, reason: classifyFsError(err) };
|
|
@@ -82,7 +153,7 @@ function loadMostRecentCycle(dir) {
|
|
|
82
153
|
const target = join(dir, `cycle-${bestCycle}.json`);
|
|
83
154
|
const readFile = (() => {
|
|
84
155
|
try {
|
|
85
|
-
return { ok: true, value: readFileSync(target, 'utf8') };
|
|
156
|
+
return { ok: true, value: fs.readFileSync(target, 'utf8') };
|
|
86
157
|
}
|
|
87
158
|
catch (err) {
|
|
88
159
|
return { ok: false, reason: classifyFsError(err) };
|
|
@@ -90,9 +161,14 @@ function loadMostRecentCycle(dir) {
|
|
|
90
161
|
})();
|
|
91
162
|
if (!readFile.ok)
|
|
92
163
|
return null;
|
|
93
|
-
|
|
164
|
+
const parsed = parseLegacyCycleFile(readFile.value, bestCycle);
|
|
165
|
+
// `rid` param retained for BC with the legacy dir shape (legacy
|
|
166
|
+
// files are shared across rids); include it in the parsed object so
|
|
167
|
+
// future cross-rid reads stay consistent.
|
|
168
|
+
void rid;
|
|
169
|
+
return parsed;
|
|
94
170
|
}
|
|
95
|
-
function
|
|
171
|
+
function parseLegacyCycleFile(raw, fallbackCycle) {
|
|
96
172
|
const parse = (() => {
|
|
97
173
|
try {
|
|
98
174
|
return { ok: true, value: JSON.parse(raw) };
|
|
@@ -107,38 +183,23 @@ function parseCycle(raw, fallbackCycle) {
|
|
|
107
183
|
if (parsed === null || typeof parsed !== 'object')
|
|
108
184
|
return null;
|
|
109
185
|
const obj = parsed;
|
|
110
|
-
const scores =
|
|
111
|
-
|
|
112
|
-
for (const s of scores) {
|
|
113
|
-
if (s === null || typeof s !== 'object')
|
|
114
|
-
continue;
|
|
115
|
-
const r = s;
|
|
116
|
-
if (typeof r['evaluator'] !== 'string')
|
|
117
|
-
continue;
|
|
118
|
-
const gate = r['gateAction'];
|
|
119
|
-
if (gate !== 'pass' && gate !== 'warn' && gate !== 'block')
|
|
120
|
-
continue;
|
|
121
|
-
const observedAt = typeof r['observedAt'] === 'string' ? r['observedAt'] : new Date(0).toISOString();
|
|
122
|
-
rows.push({
|
|
123
|
-
evaluator: r['evaluator'],
|
|
124
|
-
score: typeof r['score'] === 'number' ? r['score'] : (gate === 'pass' ? 1.0 : gate === 'warn' ? 0.5 : 0.0),
|
|
125
|
-
gateAction: gate,
|
|
126
|
-
degraded: r['degraded'] === true,
|
|
127
|
-
observedAt
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return { cycle: typeof obj['cycle'] === 'number' ? obj['cycle'] : fallbackCycle, scores: rows };
|
|
186
|
+
const scores = parseScoreRows(obj['scores']);
|
|
187
|
+
return { cycle: typeof obj['cycle'] === 'number' ? obj['cycle'] : fallbackCycle, scores };
|
|
131
188
|
}
|
|
132
|
-
/** Determine the next cycle index —
|
|
189
|
+
/** Determine the next cycle index — reads the most recent jsonl
|
|
190
|
+
* cycle line's `cycle` field + 1 (or `1` when none exist). `rid`
|
|
191
|
+
* retained for API compatibility — the jsonl-store is per-session,
|
|
192
|
+
* but the line tag carries `rid` so the reader filters to this rid.
|
|
193
|
+
*/
|
|
133
194
|
export function nextCycleIndex(projectRoot, sid, rid) {
|
|
134
195
|
const prev = loadPreviousCycle(projectRoot, sid, rid);
|
|
135
196
|
if (prev === null)
|
|
136
197
|
return 1;
|
|
137
198
|
return prev.cycle + 1;
|
|
138
199
|
}
|
|
139
|
-
/** Run the guard end-to-end: walk the 4 evaluators, persist the
|
|
140
|
-
* cycle
|
|
141
|
-
* structured report. */
|
|
200
|
+
/** Run the guard end-to-end: walk the 4 evaluators, persist the
|
|
201
|
+
* current cycle to the jsonl store, compare against the prior cycle,
|
|
202
|
+
* return a structured report. */
|
|
142
203
|
export function runMonotonicCheck(options) {
|
|
143
204
|
const threshold = options.threshold ?? DEFAULT_MONOTONIC_THRESHOLD;
|
|
144
205
|
const persist = options.persist !== false;
|
|
@@ -174,42 +235,20 @@ export function runMonotonicCheck(options) {
|
|
|
174
235
|
let persistedAt = null;
|
|
175
236
|
const envelopeWarns = [];
|
|
176
237
|
if (persist) {
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
try {
|
|
180
|
-
mkdirSync(dir, { recursive: true });
|
|
181
|
-
return { ok: true, value: undefined };
|
|
182
|
-
}
|
|
183
|
-
catch (err) {
|
|
184
|
-
return { ok: false, reason: classifyFsError(err) };
|
|
185
|
-
}
|
|
186
|
-
})();
|
|
187
|
-
if (!mkdir.ok) {
|
|
188
|
-
envelopeWarns.push(`mkdir-failed: ${dir} (${mkdir.reason})`);
|
|
189
|
-
}
|
|
190
|
-
const path = join(dir, `cycle-${cycle}.json`);
|
|
191
|
-
const payload = JSON.stringify({
|
|
192
|
-
cycle,
|
|
238
|
+
const line = {
|
|
239
|
+
kind: MONOTONIC_CYCLE_KIND,
|
|
193
240
|
rid: options.rid,
|
|
194
|
-
|
|
241
|
+
cycle,
|
|
195
242
|
persistedAt: new Date().toISOString(),
|
|
196
243
|
scores: rows
|
|
197
|
-
}
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
return { ok: true, value: undefined };
|
|
202
|
-
}
|
|
203
|
-
catch (err) {
|
|
204
|
-
return { ok: false, reason: classifyFsError(err) };
|
|
205
|
-
}
|
|
206
|
-
})();
|
|
207
|
-
if (writeFile.ok) {
|
|
208
|
-
persistedAt = path;
|
|
244
|
+
};
|
|
245
|
+
const ok = appendMetricLine(options.projectRoot, options.sid, JSON.stringify(line));
|
|
246
|
+
if (ok) {
|
|
247
|
+
persistedAt = `jsonl:${options.sid}#cycle=${cycle}`;
|
|
209
248
|
}
|
|
210
249
|
else {
|
|
211
250
|
persistedAt = null;
|
|
212
|
-
envelopeWarns.push(`
|
|
251
|
+
envelopeWarns.push(`append-failed: jsonl-store for sid=${options.sid} cycle=${cycle}`);
|
|
213
252
|
}
|
|
214
253
|
}
|
|
215
254
|
return {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BackupPlanOptions, ExtractPlanOptions, ExtractSessionMemoriesOptions, ExtractSessionMemoriesResult, ProjectMemoryBackupPlan, ProjectMemoryBackupResult, ProjectMemoryBackupSummary, ProjectMemoryExtractPlan, ProjectMemoryExtractResult, ProjectMemoryExtractSummary } from '../types.js';
|
|
2
|
+
export declare function createProjectMemoryExtractPlan(options: ExtractPlanOptions): ProjectMemoryExtractPlan;
|
|
3
|
+
export declare function executeProjectMemoryExtract(options: ExtractPlanOptions): ProjectMemoryExtractResult;
|
|
4
|
+
export declare function createProjectMemoryBackupPlan(options: BackupPlanOptions): ProjectMemoryBackupPlan;
|
|
5
|
+
export declare function executeProjectMemoryBackup(options: BackupPlanOptions): ProjectMemoryBackupResult;
|
|
6
|
+
export declare function summarizeProjectMemoryExtractResult(result: ProjectMemoryExtractResult): ProjectMemoryExtractSummary;
|
|
7
|
+
export declare function summarizeProjectMemoryBackupResult(result: ProjectMemoryBackupResult): ProjectMemoryBackupSummary;
|
|
8
|
+
export declare function extractSessionMemories(options: ExtractSessionMemoriesOptions): ExtractSessionMemoriesResult;
|