peaks-loop 4.0.53 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +175 -11
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +81 -22
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +69 -34
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +21 -2
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.d.ts +23 -0
- package/dist/cli/commands/sub-agent-shared.js +40 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +44 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcer-liveness.js +1 -1
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +44 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.js +116 -14
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +23 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +7 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +16 -189
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +59 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.js +189 -17
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/gate-evidence-derivation.d.ts +160 -0
- package/dist/services/prd/gate-evidence-derivation.js +270 -0
- package/dist/services/prd/handoff-auto-regen.js +13 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.d.ts +1 -1
- package/dist/services/prd/handoff-frontmatter.js +63 -1
- package/dist/services/prd/handoff-gate-evidence.d.ts +95 -1
- package/dist/services/prd/handoff-gate-evidence.js +125 -57
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +22 -38
- package/dist/services/prd/handoff-service.js +38 -127
- package/dist/services/prd/handoff-types.d.ts +40 -0
- package/dist/services/prd/handoff-types.js +28 -1
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.d.ts +7 -0
- package/dist/services/prd/project-scan-reader.js +8 -5
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +36 -8
- package/dist/services/rd/reviewer-dispatch-policy.js +40 -15
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +32 -9
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/bee/peaks-rd/SKILL.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +26 -10
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +1 -1
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +6 -1
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/periodic-checkpoint.md +7 -5
- package/skills/peaks-code/references/startup-sequence.md +1 -1
- package/skills/peaks-final-review/SKILL.md +1 -1
- /package/{docs → contracts}/test-style-contract.md +0 -0
|
@@ -61,92 +61,17 @@
|
|
|
61
61
|
* Excludes (spec §7A.2 hard rules): private run_state, anything
|
|
62
62
|
* under `.peaks/memory/personal/`, raw `state.db` rows.
|
|
63
63
|
*/
|
|
64
|
-
import { z } from
|
|
65
|
-
|
|
66
|
-
/* Format constant + version */
|
|
67
|
-
/* ---------------------------------------------------------------------- */
|
|
68
|
-
/**
|
|
69
|
-
* The on-the-wire format constant, pinned to the literal
|
|
70
|
-
* `"peaks.bundle/1"`. The CLI is the only writer — see `bundle-writer.ts`.
|
|
71
|
-
* A future format change requires a major-version bump + a new writer.
|
|
72
|
-
*/
|
|
73
|
-
export const PEAKS_BUNDLE_FORMAT_CONSTANT = "peaks.bundle/1";
|
|
74
|
-
/**
|
|
75
|
-
* The required `format_version_major` for any current receiver.
|
|
76
|
-
* Bumped only on a breaking schema change. The reader throws when
|
|
77
|
-
* the manifest declares any value other than `1`.
|
|
78
|
-
*/
|
|
79
|
-
export const PEAKS_BUNDLE_FORMAT_VERSION_MAJOR = 1;
|
|
80
|
-
/**
|
|
81
|
-
* Default `format_version_minor`. Major-compatible minor bumps emit
|
|
82
|
-
* a soft warning at read time; they never block.
|
|
83
|
-
*/
|
|
84
|
-
export const PEAKS_BUNDLE_DEFAULT_MINOR_VERSION = 0;
|
|
85
|
-
/* ---------------------------------------------------------------------- */
|
|
86
|
-
/* Schema-version cross-reference (per asset table) */
|
|
87
|
-
/* ---------------------------------------------------------------------- */
|
|
88
|
-
/**
|
|
89
|
-
* The cross-cutting schema literals a bundle is allowed to declare.
|
|
90
|
-
* Each value must match the canonical Zod `literal(...)` literal in
|
|
91
|
-
* the corresponding type module. Used for the
|
|
92
|
-
* `SchemaVersionsMapping` enumeration below.
|
|
93
|
-
*/
|
|
94
|
-
export const PEAKS_BUNDLE_SCHEMA_VERSIONS = {
|
|
95
|
-
loop: "peaks.loop/1",
|
|
96
|
-
bee: "peaks.bee/1",
|
|
97
|
-
loop_bee_relation: "peaks.loop-bee-relation/1",
|
|
98
|
-
crystallization: "peaks.crystallization/1",
|
|
99
|
-
};
|
|
100
|
-
/* ---------------------------------------------------------------------- */
|
|
101
|
-
/* Schema-versions mapping — spec §7A.2 */
|
|
102
|
-
/* ---------------------------------------------------------------------- */
|
|
103
|
-
/**
|
|
104
|
-
* Schema-versions mapping. The writer writes the canonical literal
|
|
105
|
-
* for each asset kind it includes; the reader checks every key for
|
|
106
|
-
* presence (and that the value matches the canonical literal).
|
|
107
|
-
*
|
|
108
|
-
* `.strict()` refuses unknown keys; `.refine(...)` enforces that
|
|
109
|
-
* each value matches its canonical literal.
|
|
110
|
-
*/
|
|
111
|
-
export const SchemaVersionsMappingSchema = z
|
|
112
|
-
.object({
|
|
113
|
-
loop: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.loop),
|
|
114
|
-
bee: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.bee),
|
|
115
|
-
loop_bee_relation: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.loop_bee_relation),
|
|
116
|
-
crystallization: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.crystallization),
|
|
117
|
-
})
|
|
118
|
-
.strict();
|
|
119
|
-
/* ---------------------------------------------------------------------- */
|
|
120
|
-
/* Exclusion manifest — the explicit excludes per spec §7A.2 */
|
|
121
|
-
/* ---------------------------------------------------------------------- */
|
|
122
|
-
/**
|
|
123
|
-
* The bundle explicitly excludes private run-state, the user's
|
|
124
|
-
* personal memory directory, and raw `state.db` rows. The
|
|
125
|
-
* `ExclusionManifestSchema` is what the writer stamps into the
|
|
126
|
-
* manifest; the reader uses it as a self-declaration (the writer is
|
|
127
|
-
* the only place that can leak those payloads, but the read-time
|
|
128
|
-
* stamp lets the receiver confirm the source understood the
|
|
129
|
-
* exclusion rules).
|
|
130
|
-
*/
|
|
131
|
-
export const ExclusionManifestSchema = z
|
|
132
|
-
.object({
|
|
133
|
-
private_run_state: z.literal("excluded"),
|
|
134
|
-
personal_memory: z.literal("excluded"),
|
|
135
|
-
state_db_rows: z.literal("excluded"),
|
|
136
|
-
})
|
|
137
|
-
.strict();
|
|
138
|
-
/* ---------------------------------------------------------------------- */
|
|
139
|
-
/* Bundle kind — which asset the bundle is anchored on */
|
|
140
|
-
/* ---------------------------------------------------------------------- */
|
|
141
|
-
/**
|
|
142
|
-
* Bundle kind. A bundle is anchored on exactly one asset: either a
|
|
143
|
-
* `loop_release` (and its main bee + supporting bees) or a single
|
|
144
|
-
* `bee_release` (loop-scoped relations may follow but are not
|
|
145
|
-
* required).
|
|
146
|
-
*/
|
|
147
|
-
export const PEAKS_BUNDLE_KINDS = ["loop", "bee"];
|
|
64
|
+
import { z } from 'zod';
|
|
65
|
+
import { ExclusionManifestSchema, PEAKS_BUNDLE_DEFAULT_MINOR_VERSION, PEAKS_BUNDLE_FORMAT_CONSTANT, PEAKS_BUNDLE_FORMAT_VERSION_MAJOR, PEAKS_BUNDLE_KINDS, SchemaVersionsMappingSchema } from './bundle-format-constants.js';
|
|
148
66
|
/* ---------------------------------------------------------------------- */
|
|
149
67
|
/* Bundle manifest schema — the on-the-wire shape */
|
|
68
|
+
/* */
|
|
69
|
+
/* The format constant + version, the schema-version literals, the two */
|
|
70
|
+
/* mapping schemas built on them and the bundle-kind enumeration live in */
|
|
71
|
+
/* `bundle-format-constants.ts` (wave 5). That module imports NOTHING from */
|
|
72
|
+
/* this file, which is what lets the schema below read those consts at */
|
|
73
|
+
/* module-init time without a TDZ cycle; their public names are re-exported*/
|
|
74
|
+
/* at the bottom of this file, so no import path moves. */
|
|
150
75
|
/* ---------------------------------------------------------------------- */
|
|
151
76
|
/**
|
|
152
77
|
* The full manifest schema. The asset sub-objects are typed as
|
|
@@ -225,24 +150,24 @@ export const BundleManifestSchema = z
|
|
|
225
150
|
* Exclusion manifest — explicit declarations of the three
|
|
226
151
|
* hard excludes per spec §7A.2.
|
|
227
152
|
*/
|
|
228
|
-
exclusion_manifest: ExclusionManifestSchema
|
|
153
|
+
exclusion_manifest: ExclusionManifestSchema
|
|
229
154
|
})
|
|
230
155
|
.strict()
|
|
231
156
|
.superRefine((m, ctx) => {
|
|
232
157
|
// kind === 'loop' implies loop_release is required.
|
|
233
|
-
if (m.kind ===
|
|
158
|
+
if (m.kind === 'loop' && m.loop_release === undefined) {
|
|
234
159
|
ctx.addIssue({
|
|
235
160
|
code: 'custom',
|
|
236
161
|
path: [],
|
|
237
|
-
message: "bundle manifest is inconsistent: kind='loop' requires loop_release; kind='bee' requires bee_release (spec §7A.2)"
|
|
162
|
+
message: "bundle manifest is inconsistent: kind='loop' requires loop_release; kind='bee' requires bee_release (spec §7A.2)"
|
|
238
163
|
});
|
|
239
164
|
}
|
|
240
165
|
// kind === 'bee' implies bee_release is required.
|
|
241
|
-
if (m.kind ===
|
|
166
|
+
if (m.kind === 'bee' && m.bee_release === undefined) {
|
|
242
167
|
ctx.addIssue({
|
|
243
168
|
code: 'custom',
|
|
244
169
|
path: [],
|
|
245
|
-
message: "bundle manifest is inconsistent: kind='loop' requires loop_release; kind='bee' requires bee_release (spec §7A.2)"
|
|
170
|
+
message: "bundle manifest is inconsistent: kind='loop' requires loop_release; kind='bee' requires bee_release (spec §7A.2)"
|
|
246
171
|
});
|
|
247
172
|
}
|
|
248
173
|
});
|
|
@@ -278,27 +203,27 @@ export function safeParseBundleManifest(input) {
|
|
|
278
203
|
if (r.success)
|
|
279
204
|
return { ok: true, manifest: r.data };
|
|
280
205
|
const findings = r.error.issues.map((i) => ({
|
|
281
|
-
path: i.path.join(
|
|
282
|
-
message: i.message
|
|
206
|
+
path: i.path.join('.'),
|
|
207
|
+
message: i.message
|
|
283
208
|
}));
|
|
284
|
-
const joined = findings.map((f) => f.path +
|
|
209
|
+
const joined = findings.map((f) => f.path + ':' + f.message).join('|');
|
|
285
210
|
const code = detectManifestFailureCode(joined);
|
|
286
211
|
return { ok: false, code, findings };
|
|
287
212
|
}
|
|
288
213
|
function detectManifestFailureCode(joinedIssues) {
|
|
289
|
-
if (joinedIssues.includes(
|
|
290
|
-
return
|
|
214
|
+
if (joinedIssues.includes('format_constant')) {
|
|
215
|
+
return 'BUNDLE_FORMAT_CONSTANT_MISMATCH';
|
|
291
216
|
}
|
|
292
|
-
if (joinedIssues.includes(
|
|
293
|
-
return
|
|
217
|
+
if (joinedIssues.includes('format_version_major')) {
|
|
218
|
+
return 'BUNDLE_MAJOR_VERSION_MISMATCH';
|
|
294
219
|
}
|
|
295
|
-
if (joinedIssues.includes(
|
|
296
|
-
return
|
|
220
|
+
if (joinedIssues.includes('schema_versions')) {
|
|
221
|
+
return 'BUNDLE_SCHEMA_VERSIONS_MISMATCH';
|
|
297
222
|
}
|
|
298
|
-
if (joinedIssues.includes(
|
|
299
|
-
return
|
|
223
|
+
if (joinedIssues.includes('exclusion_manifest')) {
|
|
224
|
+
return 'BUNDLE_EXCLUSION_MANIFEST_MISSING';
|
|
300
225
|
}
|
|
301
|
-
return
|
|
226
|
+
return 'BUNDLE_KIND_ANCHOR_MISMATCH';
|
|
302
227
|
}
|
|
303
228
|
/* ---------------------------------------------------------------------- */
|
|
304
229
|
/* Hard-block error code consts */
|
|
@@ -310,15 +235,21 @@ function detectManifestFailureCode(joinedIssues) {
|
|
|
310
235
|
*/
|
|
311
236
|
export const SHARE_BUNDLE_ERROR_CODES = {
|
|
312
237
|
/** Major-version mismatch at read time — HARD block. */
|
|
313
|
-
MAJOR_VERSION_MISMATCH:
|
|
238
|
+
MAJOR_VERSION_MISMATCH: 'SHARE_BUNDLE_MAJOR_VERSION_MISMATCH',
|
|
314
239
|
/** Schema-version mapping is missing or carries non-canonical literals. */
|
|
315
|
-
SCHEMA_VERSIONS_MISMATCH:
|
|
240
|
+
SCHEMA_VERSIONS_MISMATCH: 'SHARE_BUNDLE_SCHEMA_VERSIONS_MISMATCH',
|
|
316
241
|
/** Format constant is not the pinned "peaks.bundle/1". */
|
|
317
|
-
FORMAT_CONSTANT_MISMATCH:
|
|
242
|
+
FORMAT_CONSTANT_MISMATCH: 'SHARE_BUNDLE_FORMAT_CONSTANT_MISMATCH',
|
|
318
243
|
/** Source release has `shareable === false` — HARD block at write time. */
|
|
319
|
-
NOT_SHAREABLE:
|
|
244
|
+
NOT_SHAREABLE: 'SHARE_BUNDLE_NOT_SHAREABLE',
|
|
320
245
|
/** Receiver asked to land as `stable` (forbidden — bundles always land as candidate). */
|
|
321
|
-
IMPORT_TO_STABLE_FORBIDDEN:
|
|
246
|
+
IMPORT_TO_STABLE_FORBIDDEN: 'SHARE_BUNDLE_IMPORT_TO_STABLE_FORBIDDEN',
|
|
322
247
|
/** Bundle tarball is malformed (missing manifest, bad payload). */
|
|
323
|
-
BUNDLE_MALFORMED:
|
|
248
|
+
BUNDLE_MALFORMED: 'SHARE_BUNDLE_MALFORMED'
|
|
324
249
|
};
|
|
250
|
+
// ─── public-surface shim (wave-5 hoist) ──────────────────────────────────────
|
|
251
|
+
// `bundle-reader.ts` and `bundle-writer.ts` import the format consts, the
|
|
252
|
+
// schema-version literals, both mapping schemas and the kinds from this path,
|
|
253
|
+
// so re-export everything the hoisted module publishes under their original
|
|
254
|
+
// names. './bundle-types.js' stays the public import path.
|
|
255
|
+
export * from './bundle-format-constants.js';
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
* extract via `runTar(['-xzf', inPath, '-C', stageDir])` with no
|
|
39
39
|
* extra plumbing.
|
|
40
40
|
*/
|
|
41
|
-
import type Database from
|
|
42
|
-
import { SHARE_BUNDLE_ERROR_CODES, type PeaksBundleKind } from
|
|
41
|
+
import type Database from 'better-sqlite3';
|
|
42
|
+
import { SHARE_BUNDLE_ERROR_CODES, type PeaksBundleKind } from './bundle-types.js';
|
|
43
43
|
/**
|
|
44
44
|
* Inputs to `writeBundle`. `kind` decides which asset table the
|
|
45
45
|
* `id` resolves against; the writer throws on unknown assets and
|
|
@@ -72,7 +72,7 @@ export declare class BundleNotShareableError extends Error {
|
|
|
72
72
|
* both fall under `BUNDLE_ASSET_NOT_FOUND` for the CLI envelope.
|
|
73
73
|
*/
|
|
74
74
|
export declare class BundleAssetNotFoundError extends Error {
|
|
75
|
-
readonly code:
|
|
75
|
+
readonly code: 'BUNDLE_ASSET_NOT_FOUND';
|
|
76
76
|
readonly assetKind: PeaksBundleKind;
|
|
77
77
|
readonly assetId: string | number;
|
|
78
78
|
constructor(assetKind: PeaksBundleKind, assetId: string | number);
|
|
@@ -38,10 +38,30 @@
|
|
|
38
38
|
* extract via `runTar(['-xzf', inPath, '-C', stageDir])` with no
|
|
39
39
|
* extra plumbing.
|
|
40
40
|
*/
|
|
41
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync
|
|
42
|
-
import { join } from
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
41
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync } from 'node:fs';
|
|
42
|
+
import { join } from 'node:path';
|
|
43
|
+
import { z } from 'zod';
|
|
44
|
+
import { parseJson } from '../../shared/json-parse.js';
|
|
45
|
+
import { runTar } from '../skillhub/tar-runtime.js';
|
|
46
|
+
import { PEAKS_BUNDLE_DEFAULT_MINOR_VERSION, PEAKS_BUNDLE_FORMAT_CONSTANT, PEAKS_BUNDLE_FORMAT_VERSION_MAJOR, PEAKS_BUNDLE_SCHEMA_VERSIONS, SHARE_BUNDLE_ERROR_CODES } from './bundle-types.js';
|
|
47
|
+
/* ---------------------------------------------------------------------- */
|
|
48
|
+
/* Inputs */
|
|
49
|
+
/* ---------------------------------------------------------------------- */
|
|
50
|
+
/**
|
|
51
|
+
* The three JSON TEXT columns of `crystallization_event`, as they come back
|
|
52
|
+
* OUT of SQLite.
|
|
53
|
+
*
|
|
54
|
+
* WHY THIS EXISTS (batch B4). `SELECT *` reaches this module as
|
|
55
|
+
* `Record<string, unknown>`, so the only thing the compiler knew about these
|
|
56
|
+
* three values was that `JSON.parse` had returned `any`. They are re-serialized
|
|
57
|
+
* verbatim into the bundle's `evidence_briefs/*.json`, which is why the read
|
|
58
|
+
* schema is the SHAPE OF THE COLUMN and not a deep domain schema: this module
|
|
59
|
+
* copies the stored value, it does not reinterpret it. What it must establish
|
|
60
|
+
* — and SQLite cannot — is the top-level shape its own `?? '{}'` / `?? '[]'`
|
|
61
|
+
* defaults already assume.
|
|
62
|
+
*/
|
|
63
|
+
const storedJsonObjectSchema = z.record(z.string(), z.unknown());
|
|
64
|
+
const storedStringListSchema = z.array(z.string());
|
|
45
65
|
/* ---------------------------------------------------------------------- */
|
|
46
66
|
/* Hard-block errors */
|
|
47
67
|
/* ---------------------------------------------------------------------- */
|
|
@@ -54,7 +74,7 @@ export class BundleNotShareableError extends Error {
|
|
|
54
74
|
code;
|
|
55
75
|
constructor(message) {
|
|
56
76
|
super(message);
|
|
57
|
-
this.name =
|
|
77
|
+
this.name = 'BundleNotShareableError';
|
|
58
78
|
this.code = SHARE_BUNDLE_ERROR_CODES.NOT_SHAREABLE;
|
|
59
79
|
}
|
|
60
80
|
}
|
|
@@ -70,8 +90,8 @@ export class BundleAssetNotFoundError extends Error {
|
|
|
70
90
|
assetId;
|
|
71
91
|
constructor(assetKind, assetId) {
|
|
72
92
|
super(`${assetKind} asset not found for id='${String(assetId)}'`);
|
|
73
|
-
this.name =
|
|
74
|
-
this.code =
|
|
93
|
+
this.name = 'BundleAssetNotFoundError';
|
|
94
|
+
this.code = 'BUNDLE_ASSET_NOT_FOUND';
|
|
75
95
|
this.assetKind = assetKind;
|
|
76
96
|
this.assetId = assetId;
|
|
77
97
|
}
|
|
@@ -88,7 +108,7 @@ export class BundleAssetNotFoundError extends Error {
|
|
|
88
108
|
* on the way back in.
|
|
89
109
|
*/
|
|
90
110
|
function readLoopReleaseRow(db, id) {
|
|
91
|
-
const row = db.prepare(
|
|
111
|
+
const row = db.prepare('SELECT * FROM loop_release WHERE id = ?').get(id);
|
|
92
112
|
if (!row)
|
|
93
113
|
return undefined;
|
|
94
114
|
// Re-shape SQLite 0/1 INTEGER convention to JS boolean; keep
|
|
@@ -99,22 +119,22 @@ function readLoopReleaseRow(db, id) {
|
|
|
99
119
|
name: row.name,
|
|
100
120
|
scenario: row.scenario,
|
|
101
121
|
trigger_policy: row.trigger_policy,
|
|
102
|
-
success_criteria: JSON.parse(String(row.success_criteria_json ??
|
|
122
|
+
success_criteria: JSON.parse(String(row.success_criteria_json ?? '[]')),
|
|
103
123
|
interaction_policy: row.interaction_policy,
|
|
104
124
|
feedback_policy: row.feedback_policy,
|
|
105
125
|
evolution_policy: row.evolution_policy,
|
|
106
|
-
evaluator_policy: JSON.parse(String(row.evaluator_policy_json ??
|
|
107
|
-
linked_bees: JSON.parse(String(row.linked_bees_json ??
|
|
108
|
-
run_history: JSON.parse(String(row.run_history_json ??
|
|
109
|
-
crystallization_evidence: JSON.parse(String(row.crystallization_evidence_json ??
|
|
126
|
+
evaluator_policy: JSON.parse(String(row.evaluator_policy_json ?? '[]')),
|
|
127
|
+
linked_bees: JSON.parse(String(row.linked_bees_json ?? '[]')),
|
|
128
|
+
run_history: JSON.parse(String(row.run_history_json ?? '[]')),
|
|
129
|
+
crystallization_evidence: JSON.parse(String(row.crystallization_evidence_json ?? '[]')),
|
|
110
130
|
lifecycle_status: row.lifecycle_status,
|
|
111
131
|
version: row.version,
|
|
112
132
|
schema_version: row.schema_version,
|
|
113
133
|
archived_at: row.archived_at,
|
|
114
134
|
shareable: row.shareable === 1,
|
|
115
|
-
share_excluded_paths: JSON.parse(String(row.share_excluded_paths ??
|
|
135
|
+
share_excluded_paths: JSON.parse(String(row.share_excluded_paths ?? '[]')),
|
|
116
136
|
desktop_visible: row.desktop_visible === 1,
|
|
117
|
-
export_bundle_format: row.export_bundle_format
|
|
137
|
+
export_bundle_format: row.export_bundle_format
|
|
118
138
|
};
|
|
119
139
|
}
|
|
120
140
|
/**
|
|
@@ -125,29 +145,21 @@ function readLoopReleaseRow(db, id) {
|
|
|
125
145
|
* rows so the receiver can re-materialize the full bee.
|
|
126
146
|
*/
|
|
127
147
|
function readBeeReleaseBundle(db, id) {
|
|
128
|
-
const release = db
|
|
129
|
-
.prepare("SELECT * FROM bee_release WHERE id = ?")
|
|
130
|
-
.get(id);
|
|
148
|
+
const release = db.prepare('SELECT * FROM bee_release WHERE id = ?').get(id);
|
|
131
149
|
if (!release)
|
|
132
150
|
return undefined;
|
|
133
|
-
const manifest = db
|
|
134
|
-
.prepare("SELECT * FROM bee_manifest WHERE release_id = ?")
|
|
135
|
-
.get(id);
|
|
151
|
+
const manifest = db.prepare('SELECT * FROM bee_manifest WHERE release_id = ?').get(id);
|
|
136
152
|
const segments = db
|
|
137
|
-
.prepare(
|
|
138
|
-
.all(id);
|
|
139
|
-
const files = db
|
|
140
|
-
.prepare("SELECT * FROM bee_file WHERE release_id = ?")
|
|
141
|
-
.all(id);
|
|
142
|
-
const changes = db
|
|
143
|
-
.prepare("SELECT * FROM bee_change WHERE release_id = ?")
|
|
153
|
+
.prepare('SELECT * FROM bee_segment_ref WHERE release_id = ?')
|
|
144
154
|
.all(id);
|
|
155
|
+
const files = db.prepare('SELECT * FROM bee_file WHERE release_id = ?').all(id);
|
|
156
|
+
const changes = db.prepare('SELECT * FROM bee_change WHERE release_id = ?').all(id);
|
|
145
157
|
return {
|
|
146
158
|
bee_release: release,
|
|
147
159
|
manifest,
|
|
148
160
|
segments,
|
|
149
161
|
files,
|
|
150
|
-
changes
|
|
162
|
+
changes
|
|
151
163
|
};
|
|
152
164
|
}
|
|
153
165
|
/**
|
|
@@ -155,7 +167,7 @@ function readBeeReleaseBundle(db, id) {
|
|
|
155
167
|
*/
|
|
156
168
|
function readLoopBeeRelationsForLoop(db, loopId) {
|
|
157
169
|
return db
|
|
158
|
-
.prepare(
|
|
170
|
+
.prepare('SELECT * FROM loop_bee_relation WHERE loop_release_id = ? ORDER BY id ASC')
|
|
159
171
|
.all(loopId);
|
|
160
172
|
}
|
|
161
173
|
/**
|
|
@@ -163,7 +175,7 @@ function readLoopBeeRelationsForLoop(db, loopId) {
|
|
|
163
175
|
*/
|
|
164
176
|
function readLoopBeeRelationsForBee(db, beeReleaseId) {
|
|
165
177
|
return db
|
|
166
|
-
.prepare(
|
|
178
|
+
.prepare('SELECT * FROM loop_bee_relation WHERE bee_release_id = ? ORDER BY id ASC')
|
|
167
179
|
.all(beeReleaseId);
|
|
168
180
|
}
|
|
169
181
|
/**
|
|
@@ -176,29 +188,29 @@ function readEvidenceBriefsForAsset(db, refs) {
|
|
|
176
188
|
const wheres = [];
|
|
177
189
|
const params = [];
|
|
178
190
|
if (refs.loopId !== undefined) {
|
|
179
|
-
wheres.push(
|
|
191
|
+
wheres.push('created_loop_release_id = ?');
|
|
180
192
|
params.push(refs.loopId);
|
|
181
|
-
wheres.push(
|
|
193
|
+
wheres.push('updated_loop_release_id = ?');
|
|
182
194
|
params.push(refs.loopId);
|
|
183
195
|
}
|
|
184
196
|
if (refs.beeReleaseId !== undefined) {
|
|
185
|
-
wheres.push(
|
|
197
|
+
wheres.push('created_bee_release_id = ?');
|
|
186
198
|
params.push(refs.beeReleaseId);
|
|
187
|
-
wheres.push(
|
|
199
|
+
wheres.push('updated_bee_release_id = ?');
|
|
188
200
|
params.push(refs.beeReleaseId);
|
|
189
201
|
}
|
|
190
202
|
if (wheres.length === 0)
|
|
191
203
|
return [];
|
|
192
|
-
const whereSql = wheres.join(
|
|
204
|
+
const whereSql = wheres.join(' OR ');
|
|
193
205
|
const rows = db
|
|
194
206
|
.prepare(`SELECT * FROM crystallization_event WHERE ${whereSql} ORDER BY created_at DESC`)
|
|
195
207
|
.all(...params);
|
|
196
208
|
return rows.map((row) => ({
|
|
197
209
|
id: row.id,
|
|
198
210
|
trigger: row.trigger,
|
|
199
|
-
evidence_brief:
|
|
200
|
-
evidence_bullets:
|
|
201
|
-
source_trace_pointers:
|
|
211
|
+
evidence_brief: parseJson(String(row.evidence_brief_json ?? '{}'), storedJsonObjectSchema),
|
|
212
|
+
evidence_bullets: parseJson(String(row.evidence_bullets_json ?? '[]'), storedStringListSchema),
|
|
213
|
+
source_trace_pointers: parseJson(String(row.source_trace_pointers_json ?? '[]'), storedStringListSchema),
|
|
202
214
|
evaluator_summary: row.evaluator_summary,
|
|
203
215
|
user_decision_summary: row.user_decision_summary,
|
|
204
216
|
created_loop_release_id: row.created_loop_release_id ?? undefined,
|
|
@@ -207,7 +219,7 @@ function readEvidenceBriefsForAsset(db, refs) {
|
|
|
207
219
|
updated_bee_release_id: row.updated_bee_release_id ?? undefined,
|
|
208
220
|
lifecycle_status: row.lifecycle_status,
|
|
209
221
|
schema_version: row.schema_version,
|
|
210
|
-
created_at: row.created_at
|
|
222
|
+
created_at: row.created_at
|
|
211
223
|
}));
|
|
212
224
|
}
|
|
213
225
|
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
@@ -229,30 +241,28 @@ function readEvidenceBriefsForAsset(db, refs) {
|
|
|
229
241
|
*/
|
|
230
242
|
export function writeBundle(args) {
|
|
231
243
|
const { db, blobsDir, outPath } = args;
|
|
232
|
-
if (args.kind ===
|
|
244
|
+
if (args.kind === 'loop') {
|
|
233
245
|
return writeLoopBundle({
|
|
234
246
|
db,
|
|
235
247
|
blobsDir,
|
|
236
248
|
loopId: String(args.id),
|
|
237
|
-
outPath
|
|
249
|
+
outPath
|
|
238
250
|
});
|
|
239
251
|
}
|
|
240
252
|
return writeBeeBundle({
|
|
241
253
|
db,
|
|
242
254
|
blobsDir,
|
|
243
|
-
beeReleaseId: typeof args.id ===
|
|
244
|
-
outPath
|
|
255
|
+
beeReleaseId: typeof args.id === 'number' ? args.id : Number(args.id),
|
|
256
|
+
outPath
|
|
245
257
|
});
|
|
246
258
|
}
|
|
247
259
|
/* ---------------------------------------------------------------------- */
|
|
248
260
|
/* Loop bundle writer */
|
|
249
261
|
/* ---------------------------------------------------------------------- */
|
|
250
262
|
function writeLoopBundle(args) {
|
|
251
|
-
const loopRow = args.db
|
|
252
|
-
.prepare("SELECT * FROM loop_release WHERE id = ?")
|
|
253
|
-
.get(args.loopId);
|
|
263
|
+
const loopRow = args.db.prepare('SELECT * FROM loop_release WHERE id = ?').get(args.loopId);
|
|
254
264
|
if (!loopRow)
|
|
255
|
-
throw new BundleAssetNotFoundError(
|
|
265
|
+
throw new BundleAssetNotFoundError('loop', args.loopId);
|
|
256
266
|
// spec §7A.2 hard block: shareable=false blocks the export at the
|
|
257
267
|
// CLI layer. We re-enforce at the writer for defense in depth.
|
|
258
268
|
if (loopRow.shareable === 0) {
|
|
@@ -260,7 +270,7 @@ function writeLoopBundle(args) {
|
|
|
260
270
|
}
|
|
261
271
|
const loop = readLoopReleaseRow(args.db, args.loopId);
|
|
262
272
|
if (!loop)
|
|
263
|
-
throw new BundleAssetNotFoundError(
|
|
273
|
+
throw new BundleAssetNotFoundError('loop', args.loopId);
|
|
264
274
|
const relations = readLoopBeeRelationsForLoop(args.db, args.loopId);
|
|
265
275
|
const relatedBees = [];
|
|
266
276
|
const blobHashes = new Set();
|
|
@@ -271,14 +281,14 @@ function writeLoopBundle(args) {
|
|
|
271
281
|
relatedBees.push(bee);
|
|
272
282
|
// Pull every content-addressed sha256 across all bee_files rows.
|
|
273
283
|
for (const f of bee.files) {
|
|
274
|
-
const sha = String(f.sha256 ??
|
|
284
|
+
const sha = String(f.sha256 ?? '');
|
|
275
285
|
if (sha)
|
|
276
286
|
blobHashes.add(sha);
|
|
277
287
|
}
|
|
278
288
|
}
|
|
279
289
|
}
|
|
280
290
|
const evidenceBriefs = readEvidenceBriefsForAsset(args.db, {
|
|
281
|
-
loopId: args.loopId
|
|
291
|
+
loopId: args.loopId
|
|
282
292
|
});
|
|
283
293
|
const manifest = {
|
|
284
294
|
format_constant: PEAKS_BUNDLE_FORMAT_CONSTANT,
|
|
@@ -288,51 +298,51 @@ function writeLoopBundle(args) {
|
|
|
288
298
|
loop: PEAKS_BUNDLE_SCHEMA_VERSIONS.loop,
|
|
289
299
|
bee: PEAKS_BUNDLE_SCHEMA_VERSIONS.bee,
|
|
290
300
|
loop_bee_relation: PEAKS_BUNDLE_SCHEMA_VERSIONS.loop_bee_relation,
|
|
291
|
-
crystallization: PEAKS_BUNDLE_SCHEMA_VERSIONS.crystallization
|
|
301
|
+
crystallization: PEAKS_BUNDLE_SCHEMA_VERSIONS.crystallization
|
|
292
302
|
},
|
|
293
|
-
kind:
|
|
303
|
+
kind: 'loop',
|
|
294
304
|
loop_release: loop,
|
|
295
305
|
bee_release: undefined,
|
|
296
306
|
related_bee_releases: relatedBees,
|
|
297
307
|
loop_bee_relations: relations,
|
|
298
308
|
evidence_briefs: evidenceBriefs,
|
|
299
309
|
exclusion_manifest: {
|
|
300
|
-
private_run_state:
|
|
301
|
-
personal_memory:
|
|
302
|
-
state_db_rows:
|
|
303
|
-
}
|
|
310
|
+
private_run_state: 'excluded',
|
|
311
|
+
personal_memory: 'excluded',
|
|
312
|
+
state_db_rows: 'excluded'
|
|
313
|
+
}
|
|
304
314
|
};
|
|
305
315
|
runStageTarball({
|
|
306
316
|
outPath: args.outPath,
|
|
307
317
|
blobsDir: args.blobsDir,
|
|
308
318
|
blobHashes,
|
|
309
|
-
manifest
|
|
319
|
+
manifest
|
|
310
320
|
});
|
|
311
|
-
return { outPath: args.outPath, kind:
|
|
321
|
+
return { outPath: args.outPath, kind: 'loop', assetId: args.loopId };
|
|
312
322
|
}
|
|
313
323
|
/* ---------------------------------------------------------------------- */
|
|
314
324
|
/* Bee bundle writer */
|
|
315
325
|
/* ---------------------------------------------------------------------- */
|
|
316
326
|
function writeBeeBundle(args) {
|
|
317
327
|
const releaseRow = args.db
|
|
318
|
-
.prepare(
|
|
328
|
+
.prepare('SELECT * FROM bee_release WHERE id = ?')
|
|
319
329
|
.get(args.beeReleaseId);
|
|
320
330
|
if (!releaseRow)
|
|
321
|
-
throw new BundleAssetNotFoundError(
|
|
331
|
+
throw new BundleAssetNotFoundError('bee', args.beeReleaseId);
|
|
322
332
|
// spec §7A.2 hard block: same as loop kind.
|
|
323
333
|
if (releaseRow.shareable === 0) {
|
|
324
334
|
throw new BundleNotShareableError(`bee_release id='${args.beeReleaseId}' has shareable=false; bundles cannot be exported for non-shareable assets (spec §7A.2)`);
|
|
325
335
|
}
|
|
326
336
|
const bee = readBeeReleaseBundle(args.db, args.beeReleaseId);
|
|
327
337
|
if (!bee)
|
|
328
|
-
throw new BundleAssetNotFoundError(
|
|
338
|
+
throw new BundleAssetNotFoundError('bee', args.beeReleaseId);
|
|
329
339
|
const relations = readLoopBeeRelationsForBee(args.db, args.beeReleaseId);
|
|
330
340
|
const evidenceBriefs = readEvidenceBriefsForAsset(args.db, {
|
|
331
|
-
beeReleaseId: args.beeReleaseId
|
|
341
|
+
beeReleaseId: args.beeReleaseId
|
|
332
342
|
});
|
|
333
343
|
const blobHashes = new Set();
|
|
334
344
|
for (const f of bee.files) {
|
|
335
|
-
const sha = String(f.sha256 ??
|
|
345
|
+
const sha = String(f.sha256 ?? '');
|
|
336
346
|
if (sha)
|
|
337
347
|
blobHashes.add(sha);
|
|
338
348
|
}
|
|
@@ -344,76 +354,76 @@ function writeBeeBundle(args) {
|
|
|
344
354
|
loop: PEAKS_BUNDLE_SCHEMA_VERSIONS.loop,
|
|
345
355
|
bee: PEAKS_BUNDLE_SCHEMA_VERSIONS.bee,
|
|
346
356
|
loop_bee_relation: PEAKS_BUNDLE_SCHEMA_VERSIONS.loop_bee_relation,
|
|
347
|
-
crystallization: PEAKS_BUNDLE_SCHEMA_VERSIONS.crystallization
|
|
357
|
+
crystallization: PEAKS_BUNDLE_SCHEMA_VERSIONS.crystallization
|
|
348
358
|
},
|
|
349
|
-
kind:
|
|
359
|
+
kind: 'bee',
|
|
350
360
|
loop_release: undefined,
|
|
351
361
|
bee_release: bee,
|
|
352
362
|
related_bee_releases: [],
|
|
353
363
|
loop_bee_relations: relations,
|
|
354
364
|
evidence_briefs: evidenceBriefs,
|
|
355
365
|
exclusion_manifest: {
|
|
356
|
-
private_run_state:
|
|
357
|
-
personal_memory:
|
|
358
|
-
state_db_rows:
|
|
359
|
-
}
|
|
366
|
+
private_run_state: 'excluded',
|
|
367
|
+
personal_memory: 'excluded',
|
|
368
|
+
state_db_rows: 'excluded'
|
|
369
|
+
}
|
|
360
370
|
};
|
|
361
371
|
runStageTarball({
|
|
362
372
|
outPath: args.outPath,
|
|
363
373
|
blobsDir: args.blobsDir,
|
|
364
374
|
blobHashes,
|
|
365
|
-
manifest
|
|
375
|
+
manifest
|
|
366
376
|
});
|
|
367
|
-
return { outPath: args.outPath, kind:
|
|
377
|
+
return { outPath: args.outPath, kind: 'bee', assetId: args.beeReleaseId };
|
|
368
378
|
}
|
|
369
379
|
/* ---------------------------------------------------------------------- */
|
|
370
380
|
/* Stage tarball — write the directory, then tar.gz it. */
|
|
371
381
|
/* ---------------------------------------------------------------------- */
|
|
372
382
|
function runStageTarball(args) {
|
|
373
383
|
const { outPath, blobsDir, blobHashes, manifest } = args;
|
|
374
|
-
const stageDir = outPath +
|
|
384
|
+
const stageDir = outPath + '.stage';
|
|
375
385
|
if (existsSync(stageDir))
|
|
376
386
|
rmSync(stageDir, { recursive: true, force: true });
|
|
377
387
|
mkdirSync(stageDir, { recursive: true });
|
|
378
388
|
let tarOk = false;
|
|
379
389
|
try {
|
|
380
|
-
writeFileSync(join(stageDir,
|
|
381
|
-
mkdirSync(join(stageDir,
|
|
390
|
+
writeFileSync(join(stageDir, 'manifest.json'), JSON.stringify(manifest, null, 2));
|
|
391
|
+
mkdirSync(join(stageDir, 'evidence_briefs'), { recursive: true });
|
|
382
392
|
for (const brief of manifest.evidence_briefs) {
|
|
383
393
|
const id = String(brief.id ?? Math.random().toString(16).slice(2));
|
|
384
|
-
writeFileSync(join(stageDir,
|
|
394
|
+
writeFileSync(join(stageDir, 'evidence_briefs', `${id}.json`), JSON.stringify(brief, null, 2));
|
|
385
395
|
}
|
|
386
|
-
writeFileSync(join(stageDir,
|
|
396
|
+
writeFileSync(join(stageDir, 'relations.json'), JSON.stringify({
|
|
387
397
|
loop_bee_relations: manifest.loop_bee_relations,
|
|
388
|
-
related_bee_releases: manifest.related_bee_releases
|
|
398
|
+
related_bee_releases: manifest.related_bee_releases
|
|
389
399
|
}, null, 2));
|
|
390
400
|
// Copy content-addressed blobs (only ones the bundle actually
|
|
391
401
|
// references). The reader's blob re-materialisation
|
|
392
402
|
// (see bundle-reader.ts) uses the same content-addressed
|
|
393
403
|
// `blobs/<sha256>` layout as the existing SkillHub hashing.
|
|
394
404
|
if (blobHashes.size > 0) {
|
|
395
|
-
mkdirSync(join(stageDir,
|
|
405
|
+
mkdirSync(join(stageDir, 'blobs'), { recursive: true });
|
|
396
406
|
for (const sha of blobHashes) {
|
|
397
407
|
const src = join(blobsDir, sha.slice(0, 2), sha);
|
|
398
408
|
if (!existsSync(src))
|
|
399
409
|
continue;
|
|
400
|
-
writeFileSync(join(stageDir,
|
|
410
|
+
writeFileSync(join(stageDir, 'blobs', sha), readFileSync(src));
|
|
401
411
|
}
|
|
402
412
|
}
|
|
403
413
|
// Write EVALUATION_REQUIRED.md — a marker that signals the
|
|
404
414
|
// receiver to run an independent evaluation before any durable
|
|
405
415
|
// change. Spec §7A.2 hard rules (5th bullet).
|
|
406
|
-
writeFileSync(join(stageDir,
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
].join(
|
|
416
|
-
runTar([
|
|
416
|
+
writeFileSync(join(stageDir, 'EVALUATION_REQUIRED.md'), [
|
|
417
|
+
'# EVALUATION_REQUIRED',
|
|
418
|
+
'',
|
|
419
|
+
'The receiver MUST run an independent evaluation before',
|
|
420
|
+
'any durable change to this loop / bee. Bundles always',
|
|
421
|
+
'import as `candidate`; promotion to `stable` requires',
|
|
422
|
+
'an `evolution_evaluation` row with an',
|
|
423
|
+
'`independent_scorer_verdict` (spec §7A.2 / §10 RL-9).',
|
|
424
|
+
''
|
|
425
|
+
].join('\n'));
|
|
426
|
+
runTar(['-czf', outPath, '-C', stageDir, '.']);
|
|
417
427
|
tarOk = true;
|
|
418
428
|
}
|
|
419
429
|
finally {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
* bee writes the file via the existing dispatch flow; the desktop
|
|
35
35
|
* client reads via a separate channel.
|
|
36
36
|
*/
|
|
37
|
-
import { z } from
|
|
37
|
+
import { z } from 'zod';
|
|
38
38
|
/**
|
|
39
39
|
* The five status values an in-flight bee may report. The
|
|
40
40
|
* desktop-client UI renders the status badge; only the running bee
|