peaks-loop 4.0.54 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/peaks-code/SKILL.md +1 -1
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
|
|
34
34
|
* for the slice 4.0.8 contract.
|
|
35
35
|
*/
|
|
36
|
-
import { CALLER_ID_REGEX, CallerIdError
|
|
36
|
+
import { CALLER_ID_REGEX, CallerIdError } from './caller-id-types.js';
|
|
37
37
|
import { getAdapter } from '../ide/ide-registry.js';
|
|
38
38
|
import { detectInstalledIde } from '../ide/ide-detector.js';
|
|
39
39
|
// Re-export for CLI consumers (avoids a second import line).
|
|
@@ -76,7 +76,9 @@ export function resolveCallerId(opts = {}) {
|
|
|
76
76
|
return validateCallerId(opts.flagValue, 'flag');
|
|
77
77
|
}
|
|
78
78
|
// Priority level 2: env var (vendor-neutral override).
|
|
79
|
-
const envValue = isNonEmpty(opts.envOverride)
|
|
79
|
+
const envValue = isNonEmpty(opts.envOverride)
|
|
80
|
+
? opts.envOverride
|
|
81
|
+
: (opts.env?.PEAKS_CALLER_ID ?? process.env.PEAKS_CALLER_ID);
|
|
80
82
|
if (isNonEmpty(envValue)) {
|
|
81
83
|
return validateCallerId(envValue, 'env');
|
|
82
84
|
}
|
|
@@ -122,7 +124,7 @@ export function resolveCallerProjection(opts = {}) {
|
|
|
122
124
|
callerId: validated,
|
|
123
125
|
workflowId: null,
|
|
124
126
|
graphRef: null,
|
|
125
|
-
source: 'env-flag'
|
|
127
|
+
source: 'env-flag'
|
|
126
128
|
};
|
|
127
129
|
}
|
|
128
130
|
// 2. Env-flag — PEAKS_CALLER_ID override.
|
|
@@ -134,7 +136,7 @@ export function resolveCallerProjection(opts = {}) {
|
|
|
134
136
|
callerId: validated,
|
|
135
137
|
workflowId: null,
|
|
136
138
|
graphRef: null,
|
|
137
|
-
source: 'env-flag'
|
|
139
|
+
source: 'env-flag'
|
|
138
140
|
};
|
|
139
141
|
}
|
|
140
142
|
// 3. Adapter — the active IDE owns its priority rules.
|
|
@@ -146,7 +148,7 @@ export function resolveCallerProjection(opts = {}) {
|
|
|
146
148
|
callerId,
|
|
147
149
|
workflowId: null,
|
|
148
150
|
graphRef: null,
|
|
149
|
-
source: 'adapter'
|
|
151
|
+
source: 'adapter'
|
|
150
152
|
};
|
|
151
153
|
}
|
|
152
154
|
catch (err) {
|
|
@@ -23,7 +23,9 @@ import { dirname, join } from 'node:path';
|
|
|
23
23
|
import { randomBytes } from 'node:crypto';
|
|
24
24
|
import { initWorkspace } from '../workspace/workspace-service.js';
|
|
25
25
|
import { projectRootsMatch, stableRealPath } from '../../shared/path-utils.js';
|
|
26
|
-
import {
|
|
26
|
+
import { tryParseJson } from '../../shared/json-parse.js';
|
|
27
|
+
import { SessionBindingSchema, SessionFileSchema } from './session-file-schema.js';
|
|
28
|
+
import { resolveCallerBinding, setCallerBinding } from './caller-binding-service.js';
|
|
27
29
|
import { resolveCallerProjection } from './resolve-caller-id.js';
|
|
28
30
|
import { getSessionId, getSessionIdCanonical, getSessionMeta, rotateSessionBinding, setSessionMeta } from './session-manager.js';
|
|
29
31
|
// --- Lower-level helpers the bridge needs (moved verbatim) ---
|
|
@@ -59,15 +61,14 @@ function readSessionFile(projectRoot) {
|
|
|
59
61
|
if (!existsSync(pathToRead))
|
|
60
62
|
return null;
|
|
61
63
|
try {
|
|
62
|
-
const
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
projectRootsMatch(data.projectRoot, projectRoot)) {
|
|
66
|
-
return data;
|
|
64
|
+
const parsed = tryParseJson(readFileSync(pathToRead, 'utf8'), SessionBindingSchema);
|
|
65
|
+
if (parsed.ok && projectRootsMatch(parsed.value.projectRoot, projectRoot)) {
|
|
66
|
+
return parsed.value;
|
|
67
67
|
}
|
|
68
68
|
return null;
|
|
69
69
|
}
|
|
70
|
-
catch {
|
|
70
|
+
catch {
|
|
71
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
71
72
|
return null;
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -78,15 +79,14 @@ function readSessionFileCanonical(projectRoot) {
|
|
|
78
79
|
if (!existsSync(pathToRead))
|
|
79
80
|
return null;
|
|
80
81
|
try {
|
|
81
|
-
const
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
projectRootsMatch(data.projectRoot, projectRoot)) {
|
|
85
|
-
return data;
|
|
82
|
+
const parsed = tryParseJson(readFileSync(pathToRead, 'utf8'), SessionBindingSchema);
|
|
83
|
+
if (parsed.ok && projectRootsMatch(parsed.value.projectRoot, projectRoot)) {
|
|
84
|
+
return parsed.value;
|
|
86
85
|
}
|
|
87
86
|
return null;
|
|
88
87
|
}
|
|
89
|
-
catch {
|
|
88
|
+
catch {
|
|
89
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
90
90
|
return null;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -114,14 +114,11 @@ function readSessionMeta(projectRoot, sessionId) {
|
|
|
114
114
|
if (!existsSync(metaPath))
|
|
115
115
|
return null;
|
|
116
116
|
try {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
if (typeof parsed?.sessionId !== 'string' || parsed.sessionId.length === 0) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
return parsed;
|
|
117
|
+
const parsed = tryParseJson(readFileSync(metaPath, 'utf8'), SessionFileSchema);
|
|
118
|
+
return parsed.ok ? parsed.value : null;
|
|
123
119
|
}
|
|
124
|
-
catch {
|
|
120
|
+
catch {
|
|
121
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
125
122
|
return null;
|
|
126
123
|
}
|
|
127
124
|
}
|
|
@@ -171,11 +168,12 @@ function getCurrentOuterSessionId(projectRoot) {
|
|
|
171
168
|
if (parsed !== null &&
|
|
172
169
|
typeof parsed === 'object' &&
|
|
173
170
|
typeof parsed.outerSessionId === 'string' &&
|
|
174
|
-
|
|
171
|
+
parsed.outerSessionId.length > 0) {
|
|
175
172
|
resolved = parsed.outerSessionId;
|
|
176
173
|
}
|
|
177
174
|
}
|
|
178
|
-
catch {
|
|
175
|
+
catch {
|
|
176
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
179
177
|
// fall through — file missing / malformed JSON / IO error → undefined
|
|
180
178
|
}
|
|
181
179
|
}
|
|
@@ -217,7 +215,8 @@ function resolveCallerBindingForEnsure(projectRoot) {
|
|
|
217
215
|
try {
|
|
218
216
|
projection = resolveCallerProjection({ projectRoot, env: process.env });
|
|
219
217
|
}
|
|
220
|
-
catch {
|
|
218
|
+
catch {
|
|
219
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
221
220
|
return null;
|
|
222
221
|
}
|
|
223
222
|
try {
|
|
@@ -230,7 +229,8 @@ function resolveCallerBindingForEnsure(projectRoot) {
|
|
|
230
229
|
callerId: projection.callerId
|
|
231
230
|
};
|
|
232
231
|
}
|
|
233
|
-
catch {
|
|
232
|
+
catch {
|
|
233
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
234
234
|
return null;
|
|
235
235
|
}
|
|
236
236
|
}
|
|
@@ -337,7 +337,8 @@ export async function ensureSession(projectRoot) {
|
|
|
337
337
|
try {
|
|
338
338
|
setCallerBinding(projectRoot, newCallerId, payload);
|
|
339
339
|
}
|
|
340
|
-
catch {
|
|
340
|
+
catch {
|
|
341
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
341
342
|
// best effort; session.json write below is the legacy fallback
|
|
342
343
|
}
|
|
343
344
|
}
|
|
@@ -142,7 +142,7 @@ export function listCheckpointPaths(projectRoot, sessionId) {
|
|
|
142
142
|
}
|
|
143
143
|
export function latestCheckpointPath(projectRoot, sessionId) {
|
|
144
144
|
const paths = listCheckpointPaths(projectRoot, sessionId);
|
|
145
|
-
return paths.length > 0 ? paths[0] ?? null : null;
|
|
145
|
+
return paths.length > 0 ? (paths[0] ?? null) : null;
|
|
146
146
|
}
|
|
147
147
|
export const CHECKPOINT_CONSTANTS = {
|
|
148
148
|
CHECKPOINTS_DIR,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime schemas for the on-disk session files.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS (S12, 2026-09-20). Six readers across `session-manager.ts`
|
|
5
|
+
* and `session-binding-bridge.ts` did `JSON.parse(readFileSync(path, 'utf8'))`
|
|
6
|
+
* and then hand-rolled `typeof data.sessionId === 'string'` checks before
|
|
7
|
+
* asserting the result with `as SessionInfo` / `as SessionMeta`. Because
|
|
8
|
+
* `JSON.parse` returns `any`, the hand-rolled check could only ever cover the
|
|
9
|
+
* one or two fields it happened to name, and the assertion claimed the rest —
|
|
10
|
+
* an unchecked cast sitting on top of a partial check. Those sites are part of
|
|
11
|
+
* the R1 root at the S12 census.
|
|
12
|
+
*
|
|
13
|
+
* The schemas below are the same checks, made total: every field the return
|
|
14
|
+
* type promises is now checked, so the callers return the parsed value
|
|
15
|
+
* directly and the `as` casts are gone. The check is STRICTER than it was —
|
|
16
|
+
* that is the point, and it is stated here rather than discovered later. A
|
|
17
|
+
* file that lacks `createdAt` or `projectRoot` used to be handed back typed as
|
|
18
|
+
* `SessionInfo`; it now reads as `null`, which is what the readers do with
|
|
19
|
+
* every other unusable file.
|
|
20
|
+
*
|
|
21
|
+
* THREE schemas, layered, because three different readers check three
|
|
22
|
+
* different things. Each one validates EXACTLY the fields its reader relies
|
|
23
|
+
* on and nothing more — a schema that demanded more than the code checks
|
|
24
|
+
* would be a new requirement smuggled in under a type, and it would show up
|
|
25
|
+
* as passing tests having to be rewritten. It did, during S12: requiring
|
|
26
|
+
* `createdAt` in the project-level binding schema broke five statusline tests
|
|
27
|
+
* that seed `{ sessionId, projectRoot }`, and no consumer reads `createdAt`
|
|
28
|
+
* from that reader. That finding is why this file has three schemas.
|
|
29
|
+
*/
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
/**
|
|
32
|
+
* The minimum a reader needs to LOCATE a session: a non-empty id. Equivalent
|
|
33
|
+
* to the `typeof data.sessionId === 'string' && data.sessionId.length > 0`
|
|
34
|
+
* check it replaces.
|
|
35
|
+
*/
|
|
36
|
+
export declare const SessionIdentitySchema: z.ZodObject<{
|
|
37
|
+
sessionId: z.ZodString;
|
|
38
|
+
}, z.core.$loose>;
|
|
39
|
+
/**
|
|
40
|
+
* What the project-level binding readers (`readSessionFile` /
|
|
41
|
+
* `readSessionFileCanonical`, in both `session-manager.ts` and
|
|
42
|
+
* `session-binding-bridge.ts`) actually use: the id, and the `projectRoot`
|
|
43
|
+
* they compare against the caller. Equivalent to the
|
|
44
|
+
* `data.sessionId && typeof data.projectRoot === 'string'` check it replaces.
|
|
45
|
+
*/
|
|
46
|
+
export declare const SessionBindingSchema: z.ZodObject<{
|
|
47
|
+
sessionId: z.ZodString;
|
|
48
|
+
projectRoot: z.ZodString;
|
|
49
|
+
}, z.core.$loose>;
|
|
50
|
+
/**
|
|
51
|
+
* The full session record, as written by `writeSessionFile` (`.peaks/_runtime/
|
|
52
|
+
* session.json`) and `setSessionMeta` (`.peaks/_runtime/<sid>/session.json`).
|
|
53
|
+
* This is the shape the META readers promise a caller (`SessionMeta` requires
|
|
54
|
+
* `createdAt` and `projectRoot`); the optional fields are `SessionMeta`'s own.
|
|
55
|
+
* `looseObject` preserves any further key the file carries, so a reader still
|
|
56
|
+
* sees everything on disk.
|
|
57
|
+
*/
|
|
58
|
+
export declare const SessionFileSchema: z.ZodObject<{
|
|
59
|
+
sessionId: z.ZodString;
|
|
60
|
+
createdAt: z.ZodString;
|
|
61
|
+
projectRoot: z.ZodString;
|
|
62
|
+
title: z.ZodOptional<z.ZodString>;
|
|
63
|
+
skill: z.ZodOptional<z.ZodString>;
|
|
64
|
+
mode: z.ZodOptional<z.ZodString>;
|
|
65
|
+
gate: z.ZodOptional<z.ZodString>;
|
|
66
|
+
lastActivity: z.ZodOptional<z.ZodString>;
|
|
67
|
+
outerSessionId: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$loose>;
|
|
69
|
+
/** What the project-level binding readers hand back: validated, and nothing more. */
|
|
70
|
+
export type SessionBinding = z.infer<typeof SessionBindingSchema>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime schemas for the on-disk session files.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS (S12, 2026-09-20). Six readers across `session-manager.ts`
|
|
5
|
+
* and `session-binding-bridge.ts` did `JSON.parse(readFileSync(path, 'utf8'))`
|
|
6
|
+
* and then hand-rolled `typeof data.sessionId === 'string'` checks before
|
|
7
|
+
* asserting the result with `as SessionInfo` / `as SessionMeta`. Because
|
|
8
|
+
* `JSON.parse` returns `any`, the hand-rolled check could only ever cover the
|
|
9
|
+
* one or two fields it happened to name, and the assertion claimed the rest —
|
|
10
|
+
* an unchecked cast sitting on top of a partial check. Those sites are part of
|
|
11
|
+
* the R1 root at the S12 census.
|
|
12
|
+
*
|
|
13
|
+
* The schemas below are the same checks, made total: every field the return
|
|
14
|
+
* type promises is now checked, so the callers return the parsed value
|
|
15
|
+
* directly and the `as` casts are gone. The check is STRICTER than it was —
|
|
16
|
+
* that is the point, and it is stated here rather than discovered later. A
|
|
17
|
+
* file that lacks `createdAt` or `projectRoot` used to be handed back typed as
|
|
18
|
+
* `SessionInfo`; it now reads as `null`, which is what the readers do with
|
|
19
|
+
* every other unusable file.
|
|
20
|
+
*
|
|
21
|
+
* THREE schemas, layered, because three different readers check three
|
|
22
|
+
* different things. Each one validates EXACTLY the fields its reader relies
|
|
23
|
+
* on and nothing more — a schema that demanded more than the code checks
|
|
24
|
+
* would be a new requirement smuggled in under a type, and it would show up
|
|
25
|
+
* as passing tests having to be rewritten. It did, during S12: requiring
|
|
26
|
+
* `createdAt` in the project-level binding schema broke five statusline tests
|
|
27
|
+
* that seed `{ sessionId, projectRoot }`, and no consumer reads `createdAt`
|
|
28
|
+
* from that reader. That finding is why this file has three schemas.
|
|
29
|
+
*/
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
/**
|
|
32
|
+
* The minimum a reader needs to LOCATE a session: a non-empty id. Equivalent
|
|
33
|
+
* to the `typeof data.sessionId === 'string' && data.sessionId.length > 0`
|
|
34
|
+
* check it replaces.
|
|
35
|
+
*/
|
|
36
|
+
export const SessionIdentitySchema = z.looseObject({
|
|
37
|
+
sessionId: z.string().min(1)
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* What the project-level binding readers (`readSessionFile` /
|
|
41
|
+
* `readSessionFileCanonical`, in both `session-manager.ts` and
|
|
42
|
+
* `session-binding-bridge.ts`) actually use: the id, and the `projectRoot`
|
|
43
|
+
* they compare against the caller. Equivalent to the
|
|
44
|
+
* `data.sessionId && typeof data.projectRoot === 'string'` check it replaces.
|
|
45
|
+
*/
|
|
46
|
+
export const SessionBindingSchema = z.looseObject({
|
|
47
|
+
sessionId: z.string().min(1),
|
|
48
|
+
projectRoot: z.string()
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* The full session record, as written by `writeSessionFile` (`.peaks/_runtime/
|
|
52
|
+
* session.json`) and `setSessionMeta` (`.peaks/_runtime/<sid>/session.json`).
|
|
53
|
+
* This is the shape the META readers promise a caller (`SessionMeta` requires
|
|
54
|
+
* `createdAt` and `projectRoot`); the optional fields are `SessionMeta`'s own.
|
|
55
|
+
* `looseObject` preserves any further key the file carries, so a reader still
|
|
56
|
+
* sees everything on disk.
|
|
57
|
+
*/
|
|
58
|
+
export const SessionFileSchema = z.looseObject({
|
|
59
|
+
sessionId: z.string().min(1),
|
|
60
|
+
createdAt: z.string(),
|
|
61
|
+
projectRoot: z.string(),
|
|
62
|
+
title: z.string().optional(),
|
|
63
|
+
skill: z.string().optional(),
|
|
64
|
+
mode: z.string().optional(),
|
|
65
|
+
gate: z.string().optional(),
|
|
66
|
+
lastActivity: z.string().optional(),
|
|
67
|
+
outerSessionId: z.string().optional()
|
|
68
|
+
});
|
|
@@ -12,12 +12,12 @@ export type SessionInfo = {
|
|
|
12
12
|
};
|
|
13
13
|
export type SessionMeta = {
|
|
14
14
|
sessionId: string;
|
|
15
|
-
title?: string;
|
|
16
|
-
skill?: string;
|
|
17
|
-
mode?: string;
|
|
18
|
-
gate?: string;
|
|
15
|
+
title?: string | undefined;
|
|
16
|
+
skill?: string | undefined;
|
|
17
|
+
mode?: string | undefined;
|
|
18
|
+
gate?: string | undefined;
|
|
19
19
|
createdAt: string;
|
|
20
|
-
lastActivity?: string;
|
|
20
|
+
lastActivity?: string | undefined;
|
|
21
21
|
projectRoot: string;
|
|
22
22
|
/**
|
|
23
23
|
* The outer (harness / IDE / plugin) session id that
|
|
@@ -30,7 +30,7 @@ export type SessionMeta = {
|
|
|
30
30
|
* have it undefined; presence-mismatch detection skips those
|
|
31
31
|
* (no false positives on legacy data).
|
|
32
32
|
*/
|
|
33
|
-
outerSessionId?: string;
|
|
33
|
+
outerSessionId?: string | undefined;
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
36
36
|
* Drop the project-level session binding at the canonical
|
|
@@ -10,6 +10,8 @@ import { mkdir as mkdirAsync } from 'node:fs/promises';
|
|
|
10
10
|
import { dirname, join, resolve } from 'node:path';
|
|
11
11
|
import { randomBytes } from 'node:crypto';
|
|
12
12
|
import { projectRootsMatch, stableRealPath } from '../../shared/path-utils.js';
|
|
13
|
+
import { tryParseJson } from '../../shared/json-parse.js';
|
|
14
|
+
import { SessionBindingSchema, SessionFileSchema } from './session-file-schema.js';
|
|
13
15
|
import { ensureSession } from './session-binding-bridge.js';
|
|
14
16
|
import { getCallerBinding, getCallerBindingFile, resolveCallerBinding } from './caller-binding-service.js';
|
|
15
17
|
import { resolveCallerProjection } from './resolve-caller-id.js';
|
|
@@ -119,13 +121,14 @@ function readSessionFile(projectRoot) {
|
|
|
119
121
|
if (!existsSync(pathToRead))
|
|
120
122
|
return null;
|
|
121
123
|
try {
|
|
122
|
-
const
|
|
123
|
-
if (
|
|
124
|
-
return
|
|
124
|
+
const parsed = tryParseJson(readFileSync(pathToRead, 'utf8'), SessionBindingSchema);
|
|
125
|
+
if (parsed.ok && projectRootsMatch(parsed.value.projectRoot, projectRoot)) {
|
|
126
|
+
return parsed.value;
|
|
125
127
|
}
|
|
126
128
|
return null;
|
|
127
129
|
}
|
|
128
|
-
catch {
|
|
130
|
+
catch {
|
|
131
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
129
132
|
return null;
|
|
130
133
|
}
|
|
131
134
|
}
|
|
@@ -147,16 +150,16 @@ function readSessionFileCanonical(projectRoot) {
|
|
|
147
150
|
if (!existsSync(pathToRead))
|
|
148
151
|
return null;
|
|
149
152
|
try {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return data;
|
|
153
|
+
const parsed = tryParseJson(readFileSync(pathToRead, 'utf8'), SessionBindingSchema);
|
|
154
|
+
if (parsed.ok &&
|
|
155
|
+
resolveStoredAgainstCaller(parsed.value.projectRoot, projectRoot) ===
|
|
156
|
+
resolveStoredAgainstCaller(projectRoot, projectRoot)) {
|
|
157
|
+
return parsed.value;
|
|
156
158
|
}
|
|
157
159
|
return null;
|
|
158
160
|
}
|
|
159
|
-
catch {
|
|
161
|
+
catch {
|
|
162
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
160
163
|
return null;
|
|
161
164
|
}
|
|
162
165
|
}
|
|
@@ -230,7 +233,8 @@ export function rotateSessionBinding(projectRoot) {
|
|
|
230
233
|
try {
|
|
231
234
|
unlinkSync(legacyFile);
|
|
232
235
|
}
|
|
233
|
-
catch {
|
|
236
|
+
catch {
|
|
237
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
234
238
|
// best-effort: a stale legacy binding is not blocking
|
|
235
239
|
}
|
|
236
240
|
}
|
|
@@ -261,7 +265,8 @@ function clearRotatedCallerBinding(projectRoot, rotatedOutSessionId) {
|
|
|
261
265
|
try {
|
|
262
266
|
callerId = resolveCallerProjection({ projectRoot, env: process.env }).callerId;
|
|
263
267
|
}
|
|
264
|
-
catch {
|
|
268
|
+
catch {
|
|
269
|
+
// PEAKS_CALLER_NOT_RESOLVED → no per-caller binding exists
|
|
265
270
|
return;
|
|
266
271
|
}
|
|
267
272
|
const binding = getCallerBinding(projectRoot, callerId);
|
|
@@ -271,7 +276,8 @@ function clearRotatedCallerBinding(projectRoot, rotatedOutSessionId) {
|
|
|
271
276
|
try {
|
|
272
277
|
unlinkSync(getCallerBindingFile(projectRoot, callerId));
|
|
273
278
|
}
|
|
274
|
-
catch {
|
|
279
|
+
catch {
|
|
280
|
+
// TODO(g2): best-effort unlink — rotation must not fail on a cleanup
|
|
275
281
|
// error (Windows EPERM). On failure the binding survives; it is stale
|
|
276
282
|
// for as long as its session directory is gone, and the next rotation
|
|
277
283
|
// or rebind retries the clear.
|
|
@@ -311,14 +317,11 @@ function readSessionMeta(projectRoot, sessionId) {
|
|
|
311
317
|
if (!existsSync(metaPath))
|
|
312
318
|
return null;
|
|
313
319
|
try {
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
if (typeof parsed?.sessionId !== 'string' || parsed.sessionId.length === 0) {
|
|
317
|
-
return null;
|
|
318
|
-
}
|
|
319
|
-
return parsed;
|
|
320
|
+
const parsed = tryParseJson(readFileSync(metaPath, 'utf8'), SessionFileSchema);
|
|
321
|
+
return parsed.ok ? parsed.value : null;
|
|
320
322
|
}
|
|
321
|
-
catch {
|
|
323
|
+
catch {
|
|
324
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
322
325
|
return null;
|
|
323
326
|
}
|
|
324
327
|
}
|
|
@@ -418,14 +421,11 @@ function readSessionMetaCompat(peaksRoot, sessionId) {
|
|
|
418
421
|
if (!existsSync(metaPath))
|
|
419
422
|
return null;
|
|
420
423
|
try {
|
|
421
|
-
const
|
|
422
|
-
|
|
423
|
-
if (typeof parsed?.sessionId !== 'string' || parsed.sessionId.length === 0) {
|
|
424
|
-
return null;
|
|
425
|
-
}
|
|
426
|
-
return parsed;
|
|
424
|
+
const parsed = tryParseJson(readFileSync(metaPath, 'utf8'), SessionFileSchema);
|
|
425
|
+
return parsed.ok ? parsed.value : null;
|
|
427
426
|
}
|
|
428
|
-
catch {
|
|
427
|
+
catch {
|
|
428
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
429
429
|
return null;
|
|
430
430
|
}
|
|
431
431
|
}
|
|
@@ -524,7 +524,8 @@ export function resolveCallerBoundSession(projectRoot) {
|
|
|
524
524
|
}
|
|
525
525
|
return { sessionId: null, staleSessionId: null };
|
|
526
526
|
}
|
|
527
|
-
catch {
|
|
527
|
+
catch {
|
|
528
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
528
529
|
return { sessionId: null, staleSessionId: null };
|
|
529
530
|
}
|
|
530
531
|
}
|
|
@@ -64,7 +64,8 @@ export function buildResumeContext(options) {
|
|
|
64
64
|
relativeAgeLabel = formatRelativeAge(ageMs);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
catch {
|
|
67
|
+
catch {
|
|
68
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
68
69
|
// leave defaults
|
|
69
70
|
}
|
|
70
71
|
const lines = [];
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peaks.bundle/1 — format constants and schema-version literals (wave-5 hoist).
|
|
3
|
+
*
|
|
4
|
+
* The declaration cluster that used to open `bundle-types.ts` — the format
|
|
5
|
+
* constant, the major/minor version consts, the per-asset schema-version
|
|
6
|
+
* literals, the two small mapping schemas built on them and the bundle-kind
|
|
7
|
+
* enumeration — moved here VERBATIM so `bundle-types.ts` stays under the
|
|
8
|
+
* 300-line cap. The manifest contract, and every hard rule enforced on the
|
|
9
|
+
* on-the-wire shape, stay in `bundle-types.ts`.
|
|
10
|
+
*
|
|
11
|
+
* This module imports only `zod`. It MUST NOT import `bundle-types.js`: the
|
|
12
|
+
* manifest schema there evaluates `z.literal(PEAKS_BUNDLE_FORMAT_CONSTANT)`
|
|
13
|
+
* while its module body runs, so a back-import would be a TDZ crash, not a
|
|
14
|
+
* lint warning. `bundle-types.ts` re-exports every name below, so the public
|
|
15
|
+
* import path does not move.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
/**
|
|
19
|
+
* The on-the-wire format constant, pinned to the literal
|
|
20
|
+
* `"peaks.bundle/1"`. The CLI is the only writer — see `bundle-writer.ts`.
|
|
21
|
+
* A future format change requires a major-version bump + a new writer.
|
|
22
|
+
*/
|
|
23
|
+
export declare const PEAKS_BUNDLE_FORMAT_CONSTANT: "peaks.bundle/1";
|
|
24
|
+
/**
|
|
25
|
+
* The required `format_version_major` for any current receiver.
|
|
26
|
+
* Bumped only on a breaking schema change. The reader throws when
|
|
27
|
+
* the manifest declares any value other than `1`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const PEAKS_BUNDLE_FORMAT_VERSION_MAJOR: 1;
|
|
30
|
+
/**
|
|
31
|
+
* Default `format_version_minor`. Major-compatible minor bumps emit
|
|
32
|
+
* a soft warning at read time; they never block.
|
|
33
|
+
*/
|
|
34
|
+
export declare const PEAKS_BUNDLE_DEFAULT_MINOR_VERSION: 0;
|
|
35
|
+
/**
|
|
36
|
+
* The cross-cutting schema literals a bundle is allowed to declare.
|
|
37
|
+
* Each value must match the canonical Zod `literal(...)` literal in
|
|
38
|
+
* the corresponding type module. Used for the
|
|
39
|
+
* `SchemaVersionsMapping` enumeration below.
|
|
40
|
+
*/
|
|
41
|
+
export declare const PEAKS_BUNDLE_SCHEMA_VERSIONS: {
|
|
42
|
+
readonly loop: "peaks.loop/1";
|
|
43
|
+
readonly bee: "peaks.bee/1";
|
|
44
|
+
readonly loop_bee_relation: "peaks.loop-bee-relation/1";
|
|
45
|
+
readonly crystallization: "peaks.crystallization/1";
|
|
46
|
+
};
|
|
47
|
+
export type PeaksBundleSchemaVersionKey = keyof typeof PEAKS_BUNDLE_SCHEMA_VERSIONS;
|
|
48
|
+
/**
|
|
49
|
+
* Schema-versions mapping. The writer writes the canonical literal
|
|
50
|
+
* for each asset kind it includes; the reader checks every key for
|
|
51
|
+
* presence (and that the value matches the canonical literal).
|
|
52
|
+
*
|
|
53
|
+
* `.strict()` refuses unknown keys; `.refine(...)` enforces that
|
|
54
|
+
* each value matches its canonical literal.
|
|
55
|
+
*/
|
|
56
|
+
export declare const SchemaVersionsMappingSchema: z.ZodObject<{
|
|
57
|
+
loop: z.ZodLiteral<"peaks.loop/1">;
|
|
58
|
+
bee: z.ZodLiteral<"peaks.bee/1">;
|
|
59
|
+
loop_bee_relation: z.ZodLiteral<"peaks.loop-bee-relation/1">;
|
|
60
|
+
crystallization: z.ZodLiteral<"peaks.crystallization/1">;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
export type SchemaVersionsMapping = z.infer<typeof SchemaVersionsMappingSchema>;
|
|
63
|
+
/**
|
|
64
|
+
* The bundle explicitly excludes private run-state, the user's
|
|
65
|
+
* personal memory directory, and raw `state.db` rows. The
|
|
66
|
+
* `ExclusionManifestSchema` is what the writer stamps into the
|
|
67
|
+
* manifest; the reader uses it as a self-declaration (the writer is
|
|
68
|
+
* the only place that can leak those payloads, but the read-time
|
|
69
|
+
* stamp lets the receiver confirm the source understood the
|
|
70
|
+
* exclusion rules).
|
|
71
|
+
*/
|
|
72
|
+
export declare const ExclusionManifestSchema: z.ZodObject<{
|
|
73
|
+
private_run_state: z.ZodLiteral<"excluded">;
|
|
74
|
+
personal_memory: z.ZodLiteral<"excluded">;
|
|
75
|
+
state_db_rows: z.ZodLiteral<"excluded">;
|
|
76
|
+
}, z.core.$strict>;
|
|
77
|
+
export type ExclusionManifest = z.infer<typeof ExclusionManifestSchema>;
|
|
78
|
+
/**
|
|
79
|
+
* Bundle kind. A bundle is anchored on exactly one asset: either a
|
|
80
|
+
* `loop_release` (and its main bee + supporting bees) or a single
|
|
81
|
+
* `bee_release` (loop-scoped relations may follow but are not
|
|
82
|
+
* required).
|
|
83
|
+
*/
|
|
84
|
+
export declare const PEAKS_BUNDLE_KINDS: readonly ["loop", "bee"];
|
|
85
|
+
export type PeaksBundleKind = (typeof PEAKS_BUNDLE_KINDS)[number];
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peaks.bundle/1 — format constants and schema-version literals (wave-5 hoist).
|
|
3
|
+
*
|
|
4
|
+
* The declaration cluster that used to open `bundle-types.ts` — the format
|
|
5
|
+
* constant, the major/minor version consts, the per-asset schema-version
|
|
6
|
+
* literals, the two small mapping schemas built on them and the bundle-kind
|
|
7
|
+
* enumeration — moved here VERBATIM so `bundle-types.ts` stays under the
|
|
8
|
+
* 300-line cap. The manifest contract, and every hard rule enforced on the
|
|
9
|
+
* on-the-wire shape, stay in `bundle-types.ts`.
|
|
10
|
+
*
|
|
11
|
+
* This module imports only `zod`. It MUST NOT import `bundle-types.js`: the
|
|
12
|
+
* manifest schema there evaluates `z.literal(PEAKS_BUNDLE_FORMAT_CONSTANT)`
|
|
13
|
+
* while its module body runs, so a back-import would be a TDZ crash, not a
|
|
14
|
+
* lint warning. `bundle-types.ts` re-exports every name below, so the public
|
|
15
|
+
* import path does not move.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
/* ---------------------------------------------------------------------- */
|
|
19
|
+
/* Format constant + version */
|
|
20
|
+
/* ---------------------------------------------------------------------- */
|
|
21
|
+
/**
|
|
22
|
+
* The on-the-wire format constant, pinned to the literal
|
|
23
|
+
* `"peaks.bundle/1"`. The CLI is the only writer — see `bundle-writer.ts`.
|
|
24
|
+
* A future format change requires a major-version bump + a new writer.
|
|
25
|
+
*/
|
|
26
|
+
export const PEAKS_BUNDLE_FORMAT_CONSTANT = 'peaks.bundle/1';
|
|
27
|
+
/**
|
|
28
|
+
* The required `format_version_major` for any current receiver.
|
|
29
|
+
* Bumped only on a breaking schema change. The reader throws when
|
|
30
|
+
* the manifest declares any value other than `1`.
|
|
31
|
+
*/
|
|
32
|
+
export const PEAKS_BUNDLE_FORMAT_VERSION_MAJOR = 1;
|
|
33
|
+
/**
|
|
34
|
+
* Default `format_version_minor`. Major-compatible minor bumps emit
|
|
35
|
+
* a soft warning at read time; they never block.
|
|
36
|
+
*/
|
|
37
|
+
export const PEAKS_BUNDLE_DEFAULT_MINOR_VERSION = 0;
|
|
38
|
+
/* ---------------------------------------------------------------------- */
|
|
39
|
+
/* Schema-version cross-reference (per asset table) */
|
|
40
|
+
/* ---------------------------------------------------------------------- */
|
|
41
|
+
/**
|
|
42
|
+
* The cross-cutting schema literals a bundle is allowed to declare.
|
|
43
|
+
* Each value must match the canonical Zod `literal(...)` literal in
|
|
44
|
+
* the corresponding type module. Used for the
|
|
45
|
+
* `SchemaVersionsMapping` enumeration below.
|
|
46
|
+
*/
|
|
47
|
+
export const PEAKS_BUNDLE_SCHEMA_VERSIONS = {
|
|
48
|
+
loop: 'peaks.loop/1',
|
|
49
|
+
bee: 'peaks.bee/1',
|
|
50
|
+
loop_bee_relation: 'peaks.loop-bee-relation/1',
|
|
51
|
+
crystallization: 'peaks.crystallization/1'
|
|
52
|
+
};
|
|
53
|
+
/* ---------------------------------------------------------------------- */
|
|
54
|
+
/* Schema-versions mapping — spec §7A.2 */
|
|
55
|
+
/* ---------------------------------------------------------------------- */
|
|
56
|
+
/**
|
|
57
|
+
* Schema-versions mapping. The writer writes the canonical literal
|
|
58
|
+
* for each asset kind it includes; the reader checks every key for
|
|
59
|
+
* presence (and that the value matches the canonical literal).
|
|
60
|
+
*
|
|
61
|
+
* `.strict()` refuses unknown keys; `.refine(...)` enforces that
|
|
62
|
+
* each value matches its canonical literal.
|
|
63
|
+
*/
|
|
64
|
+
export const SchemaVersionsMappingSchema = z
|
|
65
|
+
.object({
|
|
66
|
+
loop: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.loop),
|
|
67
|
+
bee: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.bee),
|
|
68
|
+
loop_bee_relation: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.loop_bee_relation),
|
|
69
|
+
crystallization: z.literal(PEAKS_BUNDLE_SCHEMA_VERSIONS.crystallization)
|
|
70
|
+
})
|
|
71
|
+
.strict();
|
|
72
|
+
/* ---------------------------------------------------------------------- */
|
|
73
|
+
/* Exclusion manifest — the explicit excludes per spec §7A.2 */
|
|
74
|
+
/* ---------------------------------------------------------------------- */
|
|
75
|
+
/**
|
|
76
|
+
* The bundle explicitly excludes private run-state, the user's
|
|
77
|
+
* personal memory directory, and raw `state.db` rows. The
|
|
78
|
+
* `ExclusionManifestSchema` is what the writer stamps into the
|
|
79
|
+
* manifest; the reader uses it as a self-declaration (the writer is
|
|
80
|
+
* the only place that can leak those payloads, but the read-time
|
|
81
|
+
* stamp lets the receiver confirm the source understood the
|
|
82
|
+
* exclusion rules).
|
|
83
|
+
*/
|
|
84
|
+
export const ExclusionManifestSchema = z
|
|
85
|
+
.object({
|
|
86
|
+
private_run_state: z.literal('excluded'),
|
|
87
|
+
personal_memory: z.literal('excluded'),
|
|
88
|
+
state_db_rows: z.literal('excluded')
|
|
89
|
+
})
|
|
90
|
+
.strict();
|
|
91
|
+
/* ---------------------------------------------------------------------- */
|
|
92
|
+
/* Bundle kind — which asset the bundle is anchored on */
|
|
93
|
+
/* ---------------------------------------------------------------------- */
|
|
94
|
+
/**
|
|
95
|
+
* Bundle kind. A bundle is anchored on exactly one asset: either a
|
|
96
|
+
* `loop_release` (and its main bee + supporting bees) or a single
|
|
97
|
+
* `bee_release` (loop-scoped relations may follow but are not
|
|
98
|
+
* required).
|
|
99
|
+
*/
|
|
100
|
+
export const PEAKS_BUNDLE_KINDS = ['loop', 'bee'];
|