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
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/observability/aggregation-helpers.ts`
|
|
3
|
+
*
|
|
4
|
+
* The event-detail readers the aggregations in `aggregation.ts` are built on
|
|
5
|
+
* (category test, `detail` field extraction, timestamp difference), the
|
|
6
|
+
* per-slice repair-cycle count, and the two event-source helpers the CLI
|
|
7
|
+
* calls. Moved verbatim (wave 3, file-size cap campaign) so the aggregation
|
|
8
|
+
* module stays under the 300 raw-line cap. The first four were module-private
|
|
9
|
+
* before the move and are NOT re-exported from `aggregation.ts`; the two
|
|
10
|
+
* event-source helpers were public and are re-exported there, so that
|
|
11
|
+
* module's public surface is unchanged.
|
|
12
|
+
*/
|
|
13
|
+
import { readObservabilityEvents } from './observability-service.js';
|
|
14
|
+
import { listSessionDirsWithMetrics } from './jsonl-store.js';
|
|
15
|
+
export function isSliceTransition(event) {
|
|
16
|
+
return event.category === 'slice-transition' && typeof event.sliceRid === 'string';
|
|
17
|
+
}
|
|
18
|
+
export function artifactRole(event) {
|
|
19
|
+
const detail = event.detail;
|
|
20
|
+
return typeof detail.artifactRole === 'string' ? detail.artifactRole : '';
|
|
21
|
+
}
|
|
22
|
+
export function transitionTo(event) {
|
|
23
|
+
const detail = event.detail;
|
|
24
|
+
return typeof detail.to === 'string' ? detail.to : null;
|
|
25
|
+
}
|
|
26
|
+
export function durationMsBetween(firstTs, lastTs) {
|
|
27
|
+
const a = new Date(firstTs).getTime();
|
|
28
|
+
const b = new Date(lastTs).getTime();
|
|
29
|
+
if (!Number.isFinite(a) || !Number.isFinite(b)) {
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
return Math.max(0, b - a);
|
|
33
|
+
}
|
|
34
|
+
export function computeRepairCyclesBySlice(events) {
|
|
35
|
+
// Repair cycle = each rd → qa transition within one slice (proxy for the
|
|
36
|
+
// RD→QA→RD loop). For each slice we count qa transitions that follow an
|
|
37
|
+
// rd transition. Multiple qa transitions on the same slice are capped by
|
|
38
|
+
// REPAIR_CYCLE_CAP at the report level — the per-slice count here is the
|
|
39
|
+
// raw observation count.
|
|
40
|
+
const cyclesBySlice = new Map();
|
|
41
|
+
for (const event of events) {
|
|
42
|
+
if (!isSliceTransition(event))
|
|
43
|
+
continue;
|
|
44
|
+
const rid = event.sliceRid;
|
|
45
|
+
const role = artifactRole(event);
|
|
46
|
+
if (role === 'qa') {
|
|
47
|
+
cyclesBySlice.set(rid, (cyclesBySlice.get(rid) ?? 0) + 1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return cyclesBySlice;
|
|
51
|
+
}
|
|
52
|
+
export function readAllSessionEvents(projectRoot) {
|
|
53
|
+
const sessions = listSessionDirsWithMetrics(projectRoot);
|
|
54
|
+
const all = [];
|
|
55
|
+
for (const { sessionId } of sessions) {
|
|
56
|
+
for (const event of readObservabilityEvents(projectRoot, sessionId)) {
|
|
57
|
+
all.push(event);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
all.sort((a, b) => a.ts.localeCompare(b.ts));
|
|
61
|
+
return all;
|
|
62
|
+
}
|
|
63
|
+
export function readSessionEvents(projectRoot, sessionId) {
|
|
64
|
+
return readObservabilityEvents(projectRoot, sessionId);
|
|
65
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/observability/aggregation-types.ts`
|
|
3
|
+
*
|
|
4
|
+
* The result shapes of the read-side aggregations over observability events
|
|
5
|
+
* (`aggregation.ts`), plus the data they are built from: the slice lifecycle
|
|
6
|
+
* terminal states, the RD/QA repair-loop cap, and the zeroed fan-out row.
|
|
7
|
+
* Extracted verbatim (wave 3, file-size cap campaign) so the aggregation
|
|
8
|
+
* module stays under the 300 raw-line cap — no aggregation logic lives here.
|
|
9
|
+
* `aggregation.ts` imports and re-exports every PUBLIC name below, so
|
|
10
|
+
* importers keep resolving them from `aggregation.js` unchanged; the
|
|
11
|
+
* module-private constants are imported for use and stay unexported there.
|
|
12
|
+
*/
|
|
13
|
+
import type { ObservabilitySubagentRole } from './observability-service.js';
|
|
14
|
+
export type StatusAggregate = {
|
|
15
|
+
totalEvents: number;
|
|
16
|
+
totalSlices: number;
|
|
17
|
+
successCount: number;
|
|
18
|
+
failCount: number;
|
|
19
|
+
repairCyclePeak: number;
|
|
20
|
+
fanoutCostTotal: number;
|
|
21
|
+
};
|
|
22
|
+
export type SliceRollup = {
|
|
23
|
+
sliceRid: string;
|
|
24
|
+
transitions: number;
|
|
25
|
+
firstTs: string | null;
|
|
26
|
+
lastTs: string | null;
|
|
27
|
+
durationMs: number | null;
|
|
28
|
+
finalState: string | null;
|
|
29
|
+
fanoutCount: number;
|
|
30
|
+
repairCycleCount: number;
|
|
31
|
+
success: boolean;
|
|
32
|
+
};
|
|
33
|
+
export type FanoutBreakdown = {
|
|
34
|
+
total: number;
|
|
35
|
+
perRole: Record<ObservabilitySubagentRole, number>;
|
|
36
|
+
};
|
|
37
|
+
export type RepairCycleReport = {
|
|
38
|
+
totalCycles: number;
|
|
39
|
+
cap: number;
|
|
40
|
+
capHit: boolean;
|
|
41
|
+
capHitCount: number;
|
|
42
|
+
perSlice: Array<{
|
|
43
|
+
sliceRid: string;
|
|
44
|
+
cycleCount: number;
|
|
45
|
+
}>;
|
|
46
|
+
};
|
|
47
|
+
export declare const TERMINAL_HAPPY_STATES: ReadonlySet<string>;
|
|
48
|
+
export declare const TERMINAL_FAIL_STATES: ReadonlySet<string>;
|
|
49
|
+
/** RD/QA repair-loop cap (matches the peaks-code repair-loop contract). */
|
|
50
|
+
export declare const REPAIR_CYCLE_CAP = 3;
|
|
51
|
+
export declare const ZERO_FANOUT: Record<ObservabilitySubagentRole, number>;
|
|
52
|
+
export type Period = 'day' | 'week' | 'month';
|
|
53
|
+
/**
|
|
54
|
+
* Cumulative 5-metric surface for the `peaks dashboard summary` CLI.
|
|
55
|
+
* All values are derived from raw observability events (per-event
|
|
56
|
+
* counting), not from state files — semantics differ from
|
|
57
|
+
* `peaks dashboard long-run`, which derives indicators from
|
|
58
|
+
* `.peaks/_runtime/<sid>/24h-state.json`.
|
|
59
|
+
*/
|
|
60
|
+
export type DashboardMetrics = {
|
|
61
|
+
readonly cycleCount: number;
|
|
62
|
+
readonly tokenCount: number;
|
|
63
|
+
readonly dispatchCount: number;
|
|
64
|
+
readonly compactCount: number;
|
|
65
|
+
readonly monotonicTriggerCount: number;
|
|
66
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/observability/aggregation-types.ts`
|
|
3
|
+
*
|
|
4
|
+
* The result shapes of the read-side aggregations over observability events
|
|
5
|
+
* (`aggregation.ts`), plus the data they are built from: the slice lifecycle
|
|
6
|
+
* terminal states, the RD/QA repair-loop cap, and the zeroed fan-out row.
|
|
7
|
+
* Extracted verbatim (wave 3, file-size cap campaign) so the aggregation
|
|
8
|
+
* module stays under the 300 raw-line cap — no aggregation logic lives here.
|
|
9
|
+
* `aggregation.ts` imports and re-exports every PUBLIC name below, so
|
|
10
|
+
* importers keep resolving them from `aggregation.js` unchanged; the
|
|
11
|
+
* module-private constants are imported for use and stay unexported there.
|
|
12
|
+
*/
|
|
13
|
+
// Slice lifecycle terminal states. Anything not listed is in-flight
|
|
14
|
+
// (draft / spec-locked / implemented / qa-handoff / running).
|
|
15
|
+
export const TERMINAL_HAPPY_STATES = new Set([
|
|
16
|
+
'handed-off',
|
|
17
|
+
'verdict-issued',
|
|
18
|
+
'impact-recorded',
|
|
19
|
+
'boundary-recorded'
|
|
20
|
+
]);
|
|
21
|
+
export const TERMINAL_FAIL_STATES = new Set(['blocked']);
|
|
22
|
+
/** RD/QA repair-loop cap (matches the peaks-code repair-loop contract). */
|
|
23
|
+
export const REPAIR_CYCLE_CAP = 3;
|
|
24
|
+
// v2.12.0 fan-out collapse: see OBSERVABILITY_SUBAGENT_ROLES for the
|
|
25
|
+
// rationale on why `security-reviewer` was dropped and `peaks-security-audit`
|
|
26
|
+
// + `peaks-perf-audit` were added.
|
|
27
|
+
export const ZERO_FANOUT = {
|
|
28
|
+
rd: 0,
|
|
29
|
+
qa: 0,
|
|
30
|
+
'code-reviewer': 0,
|
|
31
|
+
'karpathy-reviewer': 0,
|
|
32
|
+
'peaks-security-audit': 0,
|
|
33
|
+
'peaks-perf-audit': 0
|
|
34
|
+
};
|
|
@@ -17,65 +17,17 @@
|
|
|
17
17
|
* are emitted from the `peaks request transition` hook. Slice B
|
|
18
18
|
* builds the read-side surface so Slice C is purely additive.
|
|
19
19
|
*/
|
|
20
|
-
import { type ObservabilityEvent
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
failCount: number;
|
|
26
|
-
repairCyclePeak: number;
|
|
27
|
-
fanoutCostTotal: number;
|
|
28
|
-
};
|
|
29
|
-
export type SliceRollup = {
|
|
30
|
-
sliceRid: string;
|
|
31
|
-
transitions: number;
|
|
32
|
-
firstTs: string | null;
|
|
33
|
-
lastTs: string | null;
|
|
34
|
-
durationMs: number | null;
|
|
35
|
-
finalState: string | null;
|
|
36
|
-
fanoutCount: number;
|
|
37
|
-
repairCycleCount: number;
|
|
38
|
-
success: boolean;
|
|
39
|
-
};
|
|
40
|
-
export type FanoutBreakdown = {
|
|
41
|
-
total: number;
|
|
42
|
-
perRole: Record<ObservabilitySubagentRole, number>;
|
|
43
|
-
};
|
|
44
|
-
export type RepairCycleReport = {
|
|
45
|
-
totalCycles: number;
|
|
46
|
-
cap: number;
|
|
47
|
-
capHit: boolean;
|
|
48
|
-
capHitCount: number;
|
|
49
|
-
perSlice: Array<{
|
|
50
|
-
sliceRid: string;
|
|
51
|
-
cycleCount: number;
|
|
52
|
-
}>;
|
|
53
|
-
};
|
|
54
|
-
/** RD/QA repair-loop cap (matches the peaks-code repair-loop contract). */
|
|
55
|
-
export declare const REPAIR_CYCLE_CAP = 3;
|
|
20
|
+
import { type ObservabilityEvent } from './observability-service.js';
|
|
21
|
+
import { type DashboardMetrics, type FanoutBreakdown, type Period, type RepairCycleReport, type SliceRollup, type StatusAggregate } from './aggregation-types.js';
|
|
22
|
+
export { REPAIR_CYCLE_CAP } from './aggregation-types.js';
|
|
23
|
+
export { readAllSessionEvents, readSessionEvents } from './aggregation-helpers.js';
|
|
24
|
+
export type { DashboardMetrics, FanoutBreakdown, Period, RepairCycleReport, SliceRollup, StatusAggregate } from './aggregation-types.js';
|
|
56
25
|
export declare function aggregateStatus(events: readonly ObservabilityEvent[]): StatusAggregate;
|
|
57
26
|
export declare function aggregateSlices(events: readonly ObservabilityEvent[]): SliceRollup[];
|
|
58
27
|
export declare function aggregateFanout(events: readonly ObservabilityEvent[]): FanoutBreakdown;
|
|
59
28
|
export declare function aggregateRepairCycles(events: readonly ObservabilityEvent[]): RepairCycleReport;
|
|
60
|
-
export type Period = 'day' | 'week' | 'month';
|
|
61
29
|
export declare function periodStartIso(period: Period, now?: () => Date): string;
|
|
62
30
|
export declare function filterByPeriod(events: readonly ObservabilityEvent[], period: Period, now?: () => Date): ObservabilityEvent[];
|
|
63
|
-
export declare function readAllSessionEvents(projectRoot: string): ObservabilityEvent[];
|
|
64
|
-
export declare function readSessionEvents(projectRoot: string, sessionId: string): ObservabilityEvent[];
|
|
65
|
-
/**
|
|
66
|
-
* Cumulative 5-metric surface for the `peaks dashboard summary` CLI.
|
|
67
|
-
* All values are derived from raw observability events (per-event
|
|
68
|
-
* counting), not from state files — semantics differ from
|
|
69
|
-
* `peaks dashboard long-run`, which derives indicators from
|
|
70
|
-
* `.peaks/_runtime/<sid>/24h-state.json`.
|
|
71
|
-
*/
|
|
72
|
-
export type DashboardMetrics = {
|
|
73
|
-
readonly cycleCount: number;
|
|
74
|
-
readonly tokenCount: number;
|
|
75
|
-
readonly dispatchCount: number;
|
|
76
|
-
readonly compactCount: number;
|
|
77
|
-
readonly monotonicTriggerCount: number;
|
|
78
|
-
};
|
|
79
31
|
/**
|
|
80
32
|
* Aggregate the 5 dashboard metric classes for a single session, filtered
|
|
81
33
|
* to events with `ts >= since`. Events with unparseable timestamps are
|
|
@@ -18,49 +18,17 @@
|
|
|
18
18
|
* builds the read-side surface so Slice C is purely additive.
|
|
19
19
|
*/
|
|
20
20
|
import { readObservabilityEvents } from './observability-service.js';
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
export const REPAIR_CYCLE_CAP = 3;
|
|
33
|
-
// v2.12.0 fan-out collapse: see OBSERVABILITY_SUBAGENT_ROLES for the
|
|
34
|
-
// rationale on why `security-reviewer` was dropped and `peaks-security-audit`
|
|
35
|
-
// + `peaks-perf-audit` were added.
|
|
36
|
-
const ZERO_FANOUT = {
|
|
37
|
-
'rd': 0,
|
|
38
|
-
'qa': 0,
|
|
39
|
-
'code-reviewer': 0,
|
|
40
|
-
'karpathy-reviewer': 0,
|
|
41
|
-
'peaks-security-audit': 0,
|
|
42
|
-
'peaks-perf-audit': 0
|
|
43
|
-
};
|
|
44
|
-
// ----- internal helpers -----
|
|
45
|
-
function isSliceTransition(event) {
|
|
46
|
-
return event.category === 'slice-transition' && typeof event.sliceRid === 'string';
|
|
47
|
-
}
|
|
48
|
-
function artifactRole(event) {
|
|
49
|
-
const detail = event.detail;
|
|
50
|
-
return typeof detail.artifactRole === 'string' ? detail.artifactRole : '';
|
|
51
|
-
}
|
|
52
|
-
function transitionTo(event) {
|
|
53
|
-
const detail = event.detail;
|
|
54
|
-
return typeof detail.to === 'string' ? detail.to : null;
|
|
55
|
-
}
|
|
56
|
-
function durationMsBetween(firstTs, lastTs) {
|
|
57
|
-
const a = new Date(firstTs).getTime();
|
|
58
|
-
const b = new Date(lastTs).getTime();
|
|
59
|
-
if (!Number.isFinite(a) || !Number.isFinite(b)) {
|
|
60
|
-
return 0;
|
|
61
|
-
}
|
|
62
|
-
return Math.max(0, b - a);
|
|
63
|
-
}
|
|
21
|
+
import { REPAIR_CYCLE_CAP, TERMINAL_FAIL_STATES, TERMINAL_HAPPY_STATES, ZERO_FANOUT } from './aggregation-types.js';
|
|
22
|
+
import { computeRepairCyclesBySlice, durationMsBetween, isSliceTransition, transitionTo } from './aggregation-helpers.js';
|
|
23
|
+
// The result shapes and their data (terminal states, repair-loop cap, zeroed
|
|
24
|
+
// fan-out row) live in `aggregation-types.ts`; the event-detail readers, the
|
|
25
|
+
// per-slice cycle count and the event-source helpers live in
|
|
26
|
+
// `aggregation-helpers.ts` (wave-3 file-size cap split; declarations moved
|
|
27
|
+
// verbatim). Every PUBLIC name is re-exported below so importers keep
|
|
28
|
+
// resolving it from `aggregation.js` unchanged; the module-private readers are
|
|
29
|
+
// imported for use here and not re-exported.
|
|
30
|
+
export { REPAIR_CYCLE_CAP } from './aggregation-types.js';
|
|
31
|
+
export { readAllSessionEvents, readSessionEvents } from './aggregation-helpers.js';
|
|
64
32
|
// ----- per-slice rollup (shared by status + slices queries) -----
|
|
65
33
|
function rollupSlices(events) {
|
|
66
34
|
const bySlice = new Map();
|
|
@@ -102,24 +70,6 @@ function rollupSlices(events) {
|
|
|
102
70
|
}
|
|
103
71
|
return bySlice;
|
|
104
72
|
}
|
|
105
|
-
function computeRepairCyclesBySlice(events) {
|
|
106
|
-
// Repair cycle = each rd → qa transition within one slice (proxy for the
|
|
107
|
-
// RD→QA→RD loop). For each slice we count qa transitions that follow an
|
|
108
|
-
// rd transition. Multiple qa transitions on the same slice are capped by
|
|
109
|
-
// REPAIR_CYCLE_CAP at the report level — the per-slice count here is the
|
|
110
|
-
// raw observation count.
|
|
111
|
-
const cyclesBySlice = new Map();
|
|
112
|
-
for (const event of events) {
|
|
113
|
-
if (!isSliceTransition(event))
|
|
114
|
-
continue;
|
|
115
|
-
const rid = event.sliceRid;
|
|
116
|
-
const role = artifactRole(event);
|
|
117
|
-
if (role === 'qa') {
|
|
118
|
-
cyclesBySlice.set(rid, (cyclesBySlice.get(rid) ?? 0) + 1);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return cyclesBySlice;
|
|
122
|
-
}
|
|
123
73
|
// ----- public aggregations -----
|
|
124
74
|
export function aggregateStatus(events) {
|
|
125
75
|
const bySlice = rollupSlices(events);
|
|
@@ -179,6 +129,7 @@ export function aggregateRepairCycles(events) {
|
|
|
179
129
|
perSlice
|
|
180
130
|
};
|
|
181
131
|
}
|
|
132
|
+
// ----- period rollup (AC-5 — Slice D, but helpers live here) -----
|
|
182
133
|
export function periodStartIso(period, now = () => new Date()) {
|
|
183
134
|
const d = now();
|
|
184
135
|
if (period === 'day') {
|
|
@@ -200,21 +151,7 @@ export function filterByPeriod(events, period, now) {
|
|
|
200
151
|
const start = periodStartIso(period, now);
|
|
201
152
|
return events.filter((e) => e.ts >= start);
|
|
202
153
|
}
|
|
203
|
-
// -----
|
|
204
|
-
export function readAllSessionEvents(projectRoot) {
|
|
205
|
-
const sessions = listSessionDirsWithMetrics(projectRoot);
|
|
206
|
-
const all = [];
|
|
207
|
-
for (const { sessionId } of sessions) {
|
|
208
|
-
for (const event of readObservabilityEvents(projectRoot, sessionId)) {
|
|
209
|
-
all.push(event);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
all.sort((a, b) => a.ts.localeCompare(b.ts));
|
|
213
|
-
return all;
|
|
214
|
-
}
|
|
215
|
-
export function readSessionEvents(projectRoot, sessionId) {
|
|
216
|
-
return readObservabilityEvents(projectRoot, sessionId);
|
|
217
|
-
}
|
|
154
|
+
// ----- rid-030 F-direction: 5-metric dashboard summary -----
|
|
218
155
|
/**
|
|
219
156
|
* Aggregate the 5 dashboard metric classes for a single session, filtered
|
|
220
157
|
* to events with `ts >= since`. Events with unparseable timestamps are
|
|
@@ -240,8 +177,8 @@ export function aggregateDashboardMetrics(projectRoot, sessionId, since) {
|
|
|
240
177
|
const detail = event.detail;
|
|
241
178
|
const t = typeof detail.totalTokens === 'number'
|
|
242
179
|
? detail.totalTokens
|
|
243
|
-
: (typeof detail.inputTokens === 'number' ? detail.inputTokens : 0)
|
|
244
|
-
|
|
180
|
+
: (typeof detail.inputTokens === 'number' ? detail.inputTokens : 0) +
|
|
181
|
+
(typeof detail.outputTokens === 'number' ? detail.outputTokens : 0);
|
|
245
182
|
tokenCount += t;
|
|
246
183
|
}
|
|
247
184
|
else if (event.category === 'dispatch')
|
|
@@ -274,8 +211,8 @@ export function aggregateDashboardMetricsFromEvents(events, since = null) {
|
|
|
274
211
|
const detail = event.detail;
|
|
275
212
|
const t = typeof detail.totalTokens === 'number'
|
|
276
213
|
? detail.totalTokens
|
|
277
|
-
: (typeof detail.inputTokens === 'number' ? detail.inputTokens : 0)
|
|
278
|
-
|
|
214
|
+
: (typeof detail.inputTokens === 'number' ? detail.inputTokens : 0) +
|
|
215
|
+
(typeof detail.outputTokens === 'number' ? detail.outputTokens : 0);
|
|
279
216
|
tokenCount += t;
|
|
280
217
|
}
|
|
281
218
|
else if (event.category === 'dispatch')
|
|
@@ -132,7 +132,8 @@ export function pruneMetricsFiles(projectRoot) {
|
|
|
132
132
|
rmSync(path, { force: true });
|
|
133
133
|
removed.push(path);
|
|
134
134
|
}
|
|
135
|
-
catch {
|
|
135
|
+
catch {
|
|
136
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
136
137
|
// best-effort: do not throw out of prune
|
|
137
138
|
}
|
|
138
139
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/observability/observability-schema.ts`
|
|
3
|
+
*
|
|
4
|
+
* The wire format for slice-topology observability events: the schema version,
|
|
5
|
+
* the category and subagent-role vocabularies, the zod schema that is the
|
|
6
|
+
* source of truth for a `slices.jsonl` record, the emit-side contract types
|
|
7
|
+
* (`EmitOptions` / `EmitFailureReason` / `EmitResult`) and the
|
|
8
|
+
* `OBSERVABILITY_CONSTANTS` roll-up over them.
|
|
9
|
+
*
|
|
10
|
+
* Extracted verbatim (wave-3C of the file-size cap campaign) from
|
|
11
|
+
* `observability-service.ts`, which imports what it uses and re-exports every
|
|
12
|
+
* PUBLIC name below, so importers keep resolving all of them from
|
|
13
|
+
* `observability-service.js` unchanged. No emit or read logic lives here — the
|
|
14
|
+
* writer and the reader stay in the service module.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
export declare const OBSERVABILITY_SCHEMA_VERSION: 1;
|
|
18
|
+
export declare const OBSERVABILITY_CATEGORIES: readonly ["slice-transition", "dispatch", "checkpoint", "mode-gate", "context-trigger", "post-compact", "cycle", "token-usage", "monotonic-trigger", "lease"];
|
|
19
|
+
export type ObservabilityCategory = (typeof OBSERVABILITY_CATEGORIES)[number];
|
|
20
|
+
export declare const OBSERVABILITY_SUBAGENT_ROLES: readonly ["rd", "qa", "code-reviewer", "karpathy-reviewer", "peaks-security-audit", "peaks-perf-audit"];
|
|
21
|
+
export type ObservabilitySubagentRole = (typeof OBSERVABILITY_SUBAGENT_ROLES)[number];
|
|
22
|
+
export declare const ObservabilityEventSchema: z.ZodObject<{
|
|
23
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
24
|
+
ts: z.ZodString;
|
|
25
|
+
sessionId: z.ZodString;
|
|
26
|
+
category: z.ZodEnum<{
|
|
27
|
+
"slice-transition": "slice-transition";
|
|
28
|
+
dispatch: "dispatch";
|
|
29
|
+
checkpoint: "checkpoint";
|
|
30
|
+
"mode-gate": "mode-gate";
|
|
31
|
+
"context-trigger": "context-trigger";
|
|
32
|
+
"post-compact": "post-compact";
|
|
33
|
+
cycle: "cycle";
|
|
34
|
+
"token-usage": "token-usage";
|
|
35
|
+
"monotonic-trigger": "monotonic-trigger";
|
|
36
|
+
lease: "lease";
|
|
37
|
+
}>;
|
|
38
|
+
sliceRid: z.ZodOptional<z.ZodString>;
|
|
39
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
40
|
+
qa: "qa";
|
|
41
|
+
rd: "rd";
|
|
42
|
+
"code-reviewer": "code-reviewer";
|
|
43
|
+
"karpathy-reviewer": "karpathy-reviewer";
|
|
44
|
+
"peaks-security-audit": "peaks-security-audit";
|
|
45
|
+
"peaks-perf-audit": "peaks-perf-audit";
|
|
46
|
+
}>>;
|
|
47
|
+
detail: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export type ObservabilityEvent = z.infer<typeof ObservabilityEventSchema>;
|
|
50
|
+
export type EmitOptions = {
|
|
51
|
+
/** Absolute path to the project root (where `.peaks/_runtime/` lives). */
|
|
52
|
+
projectRoot: string;
|
|
53
|
+
};
|
|
54
|
+
export type EmitFailureReason = 'invalid-schema' | 'write-failed' | 'invalid-session-id';
|
|
55
|
+
export type EmitResult = {
|
|
56
|
+
/** True when the JSONL line was appended; false on any error path. */
|
|
57
|
+
written: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Absolute path to the metrics file the event was written to (or would
|
|
60
|
+
* be). Empty string when the session id named no session directory —
|
|
61
|
+
* there is no path to report, and `reason` says so.
|
|
62
|
+
*/
|
|
63
|
+
path: string;
|
|
64
|
+
/** Set only when `written` is false. */
|
|
65
|
+
reason?: EmitFailureReason;
|
|
66
|
+
};
|
|
67
|
+
export declare const OBSERVABILITY_CONSTANTS: {
|
|
68
|
+
readonly SCHEMA_VERSION: 1;
|
|
69
|
+
readonly CATEGORIES: readonly ["slice-transition", "dispatch", "checkpoint", "mode-gate", "context-trigger", "post-compact", "cycle", "token-usage", "monotonic-trigger", "lease"];
|
|
70
|
+
readonly SUBAGENT_ROLES: readonly ["rd", "qa", "code-reviewer", "karpathy-reviewer", "peaks-security-audit", "peaks-perf-audit"];
|
|
71
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/observability/observability-schema.ts`
|
|
3
|
+
*
|
|
4
|
+
* The wire format for slice-topology observability events: the schema version,
|
|
5
|
+
* the category and subagent-role vocabularies, the zod schema that is the
|
|
6
|
+
* source of truth for a `slices.jsonl` record, the emit-side contract types
|
|
7
|
+
* (`EmitOptions` / `EmitFailureReason` / `EmitResult`) and the
|
|
8
|
+
* `OBSERVABILITY_CONSTANTS` roll-up over them.
|
|
9
|
+
*
|
|
10
|
+
* Extracted verbatim (wave-3C of the file-size cap campaign) from
|
|
11
|
+
* `observability-service.ts`, which imports what it uses and re-exports every
|
|
12
|
+
* PUBLIC name below, so importers keep resolving all of them from
|
|
13
|
+
* `observability-service.js` unchanged. No emit or read logic lives here — the
|
|
14
|
+
* writer and the reader stay in the service module.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
export const OBSERVABILITY_SCHEMA_VERSION = 1;
|
|
18
|
+
export const OBSERVABILITY_CATEGORIES = [
|
|
19
|
+
'slice-transition',
|
|
20
|
+
'dispatch',
|
|
21
|
+
'checkpoint',
|
|
22
|
+
'mode-gate',
|
|
23
|
+
'context-trigger',
|
|
24
|
+
'post-compact',
|
|
25
|
+
'cycle',
|
|
26
|
+
'token-usage',
|
|
27
|
+
'monotonic-trigger',
|
|
28
|
+
// Slice 2026-07-29-worktree-l2-extended Part 4.A: lease lifecycle
|
|
29
|
+
// metrics. Emitted by `peaks worktree spawn / renew / release /
|
|
30
|
+
// gc` and by the auto-release hook in dispatch finalization (Part
|
|
31
|
+
// 3.A). Read by `peaks lease metrics`. The `detail.kind` field
|
|
32
|
+
// discriminates spawn / renew / release / gc / autoRelease /
|
|
33
|
+
// autoRelease-failed / autoRelease-skipped.
|
|
34
|
+
'lease'
|
|
35
|
+
];
|
|
36
|
+
// v2.12.0 fan-out collapse: `security-reviewer` (in-process RD slot)
|
|
37
|
+
// moved out to the standalone `peaks-security-audit` skill; the matching
|
|
38
|
+
// perf slot was `perf-baseline-reviewer` which is replaced by the
|
|
39
|
+
// standalone `peaks-perf-audit` skill. The 1-minor-release back-compat
|
|
40
|
+
// window keeps `security-reviewer` readable as a deprecated alias (see
|
|
41
|
+
// the dispatcher in `src/services/rd/reviewer-dispatch-policy.ts`);
|
|
42
|
+
// observability drops it because no new events carry that role tag.
|
|
43
|
+
export const OBSERVABILITY_SUBAGENT_ROLES = [
|
|
44
|
+
'rd',
|
|
45
|
+
'qa',
|
|
46
|
+
'code-reviewer',
|
|
47
|
+
'karpathy-reviewer',
|
|
48
|
+
'peaks-security-audit',
|
|
49
|
+
'peaks-perf-audit'
|
|
50
|
+
];
|
|
51
|
+
export const ObservabilityEventSchema = z.object({
|
|
52
|
+
schemaVersion: z.literal(OBSERVABILITY_SCHEMA_VERSION),
|
|
53
|
+
ts: z.string().datetime({ offset: true }),
|
|
54
|
+
sessionId: z.string().min(1),
|
|
55
|
+
category: z.enum(OBSERVABILITY_CATEGORIES),
|
|
56
|
+
sliceRid: z.string().min(1).optional(),
|
|
57
|
+
role: z.enum(OBSERVABILITY_SUBAGENT_ROLES).optional(),
|
|
58
|
+
detail: z.record(z.string(), z.unknown())
|
|
59
|
+
});
|
|
60
|
+
export const OBSERVABILITY_CONSTANTS = {
|
|
61
|
+
SCHEMA_VERSION: OBSERVABILITY_SCHEMA_VERSION,
|
|
62
|
+
CATEGORIES: OBSERVABILITY_CATEGORIES,
|
|
63
|
+
SUBAGENT_ROLES: OBSERVABILITY_SUBAGENT_ROLES
|
|
64
|
+
};
|
|
@@ -18,57 +18,9 @@
|
|
|
18
18
|
* log if it wants — but the calling hook site itself swallows the
|
|
19
19
|
* result (fire-and-forget by convention).
|
|
20
20
|
*/
|
|
21
|
-
import {
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export type ObservabilityCategory = typeof OBSERVABILITY_CATEGORIES[number];
|
|
25
|
-
export declare const OBSERVABILITY_SUBAGENT_ROLES: readonly ["rd", "qa", "code-reviewer", "karpathy-reviewer", "peaks-security-audit", "peaks-perf-audit"];
|
|
26
|
-
export type ObservabilitySubagentRole = typeof OBSERVABILITY_SUBAGENT_ROLES[number];
|
|
27
|
-
export declare const ObservabilityEventSchema: z.ZodObject<{
|
|
28
|
-
schemaVersion: z.ZodLiteral<1>;
|
|
29
|
-
ts: z.ZodString;
|
|
30
|
-
sessionId: z.ZodString;
|
|
31
|
-
category: z.ZodEnum<{
|
|
32
|
-
"slice-transition": "slice-transition";
|
|
33
|
-
dispatch: "dispatch";
|
|
34
|
-
checkpoint: "checkpoint";
|
|
35
|
-
"mode-gate": "mode-gate";
|
|
36
|
-
"context-trigger": "context-trigger";
|
|
37
|
-
"post-compact": "post-compact";
|
|
38
|
-
cycle: "cycle";
|
|
39
|
-
"token-usage": "token-usage";
|
|
40
|
-
"monotonic-trigger": "monotonic-trigger";
|
|
41
|
-
lease: "lease";
|
|
42
|
-
}>;
|
|
43
|
-
sliceRid: z.ZodOptional<z.ZodString>;
|
|
44
|
-
role: z.ZodOptional<z.ZodEnum<{
|
|
45
|
-
qa: "qa";
|
|
46
|
-
rd: "rd";
|
|
47
|
-
"code-reviewer": "code-reviewer";
|
|
48
|
-
"karpathy-reviewer": "karpathy-reviewer";
|
|
49
|
-
"peaks-security-audit": "peaks-security-audit";
|
|
50
|
-
"peaks-perf-audit": "peaks-perf-audit";
|
|
51
|
-
}>>;
|
|
52
|
-
detail: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
53
|
-
}, z.core.$strip>;
|
|
54
|
-
export type ObservabilityEvent = z.infer<typeof ObservabilityEventSchema>;
|
|
55
|
-
export type EmitOptions = {
|
|
56
|
-
/** Absolute path to the project root (where `.peaks/_runtime/` lives). */
|
|
57
|
-
projectRoot: string;
|
|
58
|
-
};
|
|
59
|
-
export type EmitFailureReason = 'invalid-schema' | 'write-failed' | 'invalid-session-id';
|
|
60
|
-
export type EmitResult = {
|
|
61
|
-
/** True when the JSONL line was appended; false on any error path. */
|
|
62
|
-
written: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Absolute path to the metrics file the event was written to (or would
|
|
65
|
-
* be). Empty string when the session id named no session directory —
|
|
66
|
-
* there is no path to report, and `reason` says so.
|
|
67
|
-
*/
|
|
68
|
-
path: string;
|
|
69
|
-
/** Set only when `written` is false. */
|
|
70
|
-
reason?: EmitFailureReason;
|
|
71
|
-
};
|
|
21
|
+
import { type EmitOptions, type EmitResult, type ObservabilityEvent, type ObservabilitySubagentRole } from './observability-schema.js';
|
|
22
|
+
export { OBSERVABILITY_CATEGORIES, OBSERVABILITY_CONSTANTS, OBSERVABILITY_SCHEMA_VERSION, OBSERVABILITY_SUBAGENT_ROLES, ObservabilityEventSchema } from './observability-schema.js';
|
|
23
|
+
export type { EmitFailureReason, EmitOptions, EmitResult, ObservabilityCategory, ObservabilityEvent, ObservabilitySubagentRole } from './observability-schema.js';
|
|
72
24
|
/**
|
|
73
25
|
* Append a single observability event to the session's JSONL metrics
|
|
74
26
|
* file. Synchronous (small append, sub-ms in practice) and
|
|
@@ -97,11 +49,6 @@ export declare function readObservabilityEvents(projectRoot: string, sessionId:
|
|
|
97
49
|
* parsed JSON and want to skip forward-compat records).
|
|
98
50
|
*/
|
|
99
51
|
export declare function isCurrentSchemaVersion(record: unknown): record is ObservabilityEvent;
|
|
100
|
-
export declare const OBSERVABILITY_CONSTANTS: {
|
|
101
|
-
readonly SCHEMA_VERSION: 1;
|
|
102
|
-
readonly CATEGORIES: readonly ["slice-transition", "dispatch", "checkpoint", "mode-gate", "context-trigger", "post-compact", "cycle", "token-usage", "monotonic-trigger", "lease"];
|
|
103
|
-
readonly SUBAGENT_ROLES: readonly ["rd", "qa", "code-reviewer", "karpathy-reviewer", "peaks-security-audit", "peaks-perf-audit"];
|
|
104
|
-
};
|
|
105
52
|
/**
|
|
106
53
|
* Slice 2026-07-29-worktree-l2-extended Part 4.A: lease lifecycle
|
|
107
54
|
* observability. Each `peaks worktree spawn / renew / release /
|