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
|
@@ -1,27 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
* tuple so the parser cannot drift from the union type / tier map. */
|
|
4
|
-
export declare const VALID_MEMORY_KINDS: ReadonlySet<ProjectMemoryKind>;
|
|
5
|
-
/** Exported for guard tests + tooling that needs to enumerate the accepted
|
|
6
|
-
* set (CLI help text, `--kind` validation) without duplicating the literal. */
|
|
7
|
-
export declare const VALID_PROJECT_MEMORY_KINDS: readonly ProjectMemoryKind[];
|
|
8
|
-
export declare function slugify(title: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Single implementation of the extract-path block parse. Returns a
|
|
11
|
-
* discriminated result so the caller can say WHY a found block was rejected.
|
|
12
|
-
*
|
|
13
|
-
* The precondition order mirrors the original combined `if` exactly
|
|
14
|
-
* (separator → title → kind present → kind valid → body non-empty), so the
|
|
15
|
-
* accepted set is bit-for-bit what it always was; only the explanation is new.
|
|
16
|
-
*/
|
|
17
|
-
export declare function parseBlockResult(block: string, sourceArtifact: string): MemoryBlockParse;
|
|
18
|
-
/**
|
|
19
|
-
* `null`-on-failure projection of `parseBlockResult`. Kept because callers
|
|
20
|
-
* (and the parser's own contract) consume a plain nullable value; both views
|
|
21
|
-
* come from the one implementation above, so they cannot diverge.
|
|
22
|
-
*/
|
|
23
|
-
export declare function parseBlock(block: string, sourceArtifact: string): ExtractedProjectMemory | null;
|
|
24
|
-
export declare function renderMemoryFile(memory: ExtractedProjectMemory): string;
|
|
1
|
+
import type { ProjectMemoryKind, StoredProjectMemory } from '../types.js';
|
|
2
|
+
export { parseBlock, parseBlockResult, renderMemoryFile, slugify, VALID_MEMORY_KINDS, VALID_PROJECT_MEMORY_KINDS } from './frontmatter-parse.js';
|
|
25
3
|
/**
|
|
26
4
|
* Where a stored memory file's `kind` came from. `'none'` means the file
|
|
27
5
|
* has no resolvable kind (no `metadata.type`, no `kind:`, no `type:`, or
|
|
@@ -20,82 +20,12 @@
|
|
|
20
20
|
// `slugify` helper used to derive filenames from titles.
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
22
22
|
import { basename } from 'node:path';
|
|
23
|
-
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export const VALID_PROJECT_MEMORY_KINDS = PROJECT_MEMORY_KINDS;
|
|
30
|
-
export function slugify(title) {
|
|
31
|
-
const slug = title.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
|
|
32
|
-
return slug.length > 0 ? slug : 'project-memory';
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Single implementation of the extract-path block parse. Returns a
|
|
36
|
-
* discriminated result so the caller can say WHY a found block was rejected.
|
|
37
|
-
*
|
|
38
|
-
* The precondition order mirrors the original combined `if` exactly
|
|
39
|
-
* (separator → title → kind present → kind valid → body non-empty), so the
|
|
40
|
-
* accepted set is bit-for-bit what it always was; only the explanation is new.
|
|
41
|
-
*/
|
|
42
|
-
export function parseBlockResult(block, sourceArtifact) {
|
|
43
|
-
const normalizedBlock = block.replace(/\r\n/g, '\n');
|
|
44
|
-
const separatorIndex = normalizedBlock.indexOf('\n---\n');
|
|
45
|
-
if (separatorIndex < 0) {
|
|
46
|
-
return { ok: false, reason: 'missing-separator', detail: "block header is not followed by a '---' separator line" };
|
|
47
|
-
}
|
|
48
|
-
const header = normalizedBlock.slice(0, separatorIndex).trim();
|
|
49
|
-
const body = normalizedBlock.slice(separatorIndex + '\n---\n'.length).trim();
|
|
50
|
-
const fields = new Map();
|
|
51
|
-
for (const line of header.split('\n')) {
|
|
52
|
-
const [key, ...valueParts] = line.split(':');
|
|
53
|
-
const normalizedKey = key?.trim();
|
|
54
|
-
const value = valueParts.join(':').trim();
|
|
55
|
-
if (normalizedKey && value) {
|
|
56
|
-
fields.set(normalizedKey, value);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const title = fields.get('title')?.trim();
|
|
60
|
-
const kind = fields.get('kind')?.trim();
|
|
61
|
-
if (!title) {
|
|
62
|
-
return { ok: false, reason: 'missing-title', detail: "block header has no non-empty 'title:' field" };
|
|
63
|
-
}
|
|
64
|
-
if (!kind) {
|
|
65
|
-
return { ok: false, reason: 'missing-kind', detail: "block header has no non-empty 'kind:' field" };
|
|
66
|
-
}
|
|
67
|
-
if (!VALID_MEMORY_KINDS.has(kind)) {
|
|
68
|
-
return { ok: false, reason: 'unknown-kind', detail: `block declares kind '${kind}', which is not an accepted memory kind` };
|
|
69
|
-
}
|
|
70
|
-
if (body.length === 0) {
|
|
71
|
-
return { ok: false, reason: 'empty-body', detail: 'block body is empty' };
|
|
72
|
-
}
|
|
73
|
-
return { ok: true, memory: { title, kind, body, sourceArtifact } };
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* `null`-on-failure projection of `parseBlockResult`. Kept because callers
|
|
77
|
-
* (and the parser's own contract) consume a plain nullable value; both views
|
|
78
|
-
* come from the one implementation above, so they cannot diverge.
|
|
79
|
-
*/
|
|
80
|
-
export function parseBlock(block, sourceArtifact) {
|
|
81
|
-
const parsed = parseBlockResult(block, sourceArtifact);
|
|
82
|
-
return parsed.ok ? parsed.memory : null;
|
|
83
|
-
}
|
|
84
|
-
export function renderMemoryFile(memory) {
|
|
85
|
-
const name = slugify(memory.title);
|
|
86
|
-
return [
|
|
87
|
-
'---',
|
|
88
|
-
`name: ${name}`,
|
|
89
|
-
`description: ${memory.title}`,
|
|
90
|
-
'metadata:',
|
|
91
|
-
` type: ${memory.kind}`,
|
|
92
|
-
` sourceArtifact: ${memory.sourceArtifact}`,
|
|
93
|
-
'---',
|
|
94
|
-
'',
|
|
95
|
-
memory.body,
|
|
96
|
-
''
|
|
97
|
-
].join('\n');
|
|
98
|
-
}
|
|
23
|
+
import { VALID_MEMORY_KINDS } from './frontmatter-parse.js';
|
|
24
|
+
// The kind allow-list, the `slugify` helper, and the extract-path block
|
|
25
|
+
// parser / renderer now live in `./frontmatter-parse.ts`. Re-exported here so
|
|
26
|
+
// the `index.ts` barrel and `markdown-pure.ts` keep resolving them from
|
|
27
|
+
// `./parsers/frontmatter.js` unchanged.
|
|
28
|
+
export { parseBlock, parseBlockResult, renderMemoryFile, slugify, VALID_MEMORY_KINDS, VALID_PROJECT_MEMORY_KINDS } from './frontmatter-parse.js';
|
|
99
29
|
/**
|
|
100
30
|
* Resolve the peaks memory kind from a stored memory file's frontmatter.
|
|
101
31
|
*
|
|
@@ -170,11 +100,21 @@ export function parseMemoryFrontmatter(content) {
|
|
|
170
100
|
const normalized = content.replace(/\r\n/g, '\n');
|
|
171
101
|
const head = normalized.slice(leadingCommentPrefixLength(normalized));
|
|
172
102
|
if (!head.startsWith('---\n')) {
|
|
173
|
-
return {
|
|
103
|
+
return {
|
|
104
|
+
hasFrontmatter: false,
|
|
105
|
+
kind: { kind: null, source: 'none', rawKind: null },
|
|
106
|
+
frontmatter: '',
|
|
107
|
+
body: normalized.trim()
|
|
108
|
+
};
|
|
174
109
|
}
|
|
175
110
|
const endIndex = head.indexOf('\n---\n', 4);
|
|
176
111
|
if (endIndex < 0) {
|
|
177
|
-
return {
|
|
112
|
+
return {
|
|
113
|
+
hasFrontmatter: false,
|
|
114
|
+
kind: { kind: null, source: 'none', rawKind: null },
|
|
115
|
+
frontmatter: '',
|
|
116
|
+
body: normalized.trim()
|
|
117
|
+
};
|
|
178
118
|
}
|
|
179
119
|
const frontmatter = head.slice(4, endIndex);
|
|
180
120
|
const body = head.slice(endIndex + '\n---\n'.length).trim();
|
|
@@ -228,7 +168,16 @@ export function parseMemoryFrontmatter(content) {
|
|
|
228
168
|
break;
|
|
229
169
|
}
|
|
230
170
|
}
|
|
231
|
-
return {
|
|
171
|
+
return {
|
|
172
|
+
hasFrontmatter: true,
|
|
173
|
+
frontmatter,
|
|
174
|
+
...(name !== undefined ? { name } : {}),
|
|
175
|
+
...(titleField !== undefined ? { title: titleField } : {}),
|
|
176
|
+
...(description !== undefined ? { description } : {}),
|
|
177
|
+
...(sourceArtifact !== undefined ? { sourceArtifact } : {}),
|
|
178
|
+
kind,
|
|
179
|
+
body
|
|
180
|
+
};
|
|
232
181
|
}
|
|
233
182
|
/**
|
|
234
183
|
* Deterministic name fallback chain for the read path:
|
|
@@ -60,7 +60,9 @@ export function summarizeMemoryBody(body) {
|
|
|
60
60
|
.replace(/^\s*[-*+]\s+/gm, '')
|
|
61
61
|
.replace(/\n+/g, ' ')
|
|
62
62
|
.trim();
|
|
63
|
-
const sentences = cleaned
|
|
63
|
+
const sentences = cleaned
|
|
64
|
+
.split(/(?<=[.!?])\s+/)
|
|
65
|
+
.filter((s) => s.length > MIN_BODY_SENTENCE_LENGTH && !/^\[.+\]$/.test(s));
|
|
64
66
|
if (sentences.length === 0) {
|
|
65
67
|
return cleaned.slice(0, MAX_DESCRIPTION_LENGTH) || 'Project memory';
|
|
66
68
|
}
|
|
@@ -101,7 +103,10 @@ export function extractStableProjectMemoriesWithDiagnostics(content, sourceArtif
|
|
|
101
103
|
memories.push(parsed.memory);
|
|
102
104
|
}
|
|
103
105
|
else {
|
|
104
|
-
drops.push({
|
|
106
|
+
drops.push({
|
|
107
|
+
index: start,
|
|
108
|
+
drop: { sourceArtifact, reason: parsed.reason, detail: parsed.detail }
|
|
109
|
+
});
|
|
105
110
|
}
|
|
106
111
|
searchStart = end + END_MARKER.length;
|
|
107
112
|
}
|
|
@@ -120,7 +125,14 @@ export function extractStableProjectMemoriesWithDiagnostics(content, sourceArtif
|
|
|
120
125
|
const index = match.index ?? 0;
|
|
121
126
|
if (locatedRanges.some(([from, to]) => index >= from && index < to))
|
|
122
127
|
continue;
|
|
123
|
-
drops.push({
|
|
128
|
+
drops.push({
|
|
129
|
+
index,
|
|
130
|
+
drop: {
|
|
131
|
+
sourceArtifact,
|
|
132
|
+
reason: 'unrecognized-marker',
|
|
133
|
+
detail: describeUnrecognizedMarker(found)
|
|
134
|
+
}
|
|
135
|
+
});
|
|
124
136
|
}
|
|
125
137
|
drops.sort((left, right) => left.index - right.index);
|
|
126
138
|
return {
|
|
@@ -77,20 +77,32 @@ const SENSITIVE_MEMORY_REFUSAL = 'Refusing to store sensitive memory content';
|
|
|
77
77
|
* predicate exists to end.
|
|
78
78
|
*/
|
|
79
79
|
const SENSITIVE_PROSE_TERMS = new Set([
|
|
80
|
-
'apikey',
|
|
81
|
-
'
|
|
82
|
-
'
|
|
83
|
-
'
|
|
84
|
-
'
|
|
85
|
-
'
|
|
86
|
-
'
|
|
87
|
-
'
|
|
88
|
-
'
|
|
89
|
-
'
|
|
90
|
-
'
|
|
80
|
+
'apikey',
|
|
81
|
+
'apikeys',
|
|
82
|
+
'accesskey',
|
|
83
|
+
'accesskeys',
|
|
84
|
+
'privatekey',
|
|
85
|
+
'privatekeys',
|
|
86
|
+
'secretkey',
|
|
87
|
+
'secretkeys',
|
|
88
|
+
'accesstoken',
|
|
89
|
+
'accesstokens',
|
|
90
|
+
'authtoken',
|
|
91
|
+
'authtokens',
|
|
92
|
+
'authkey',
|
|
93
|
+
'authkeys',
|
|
94
|
+
'refreshtoken',
|
|
95
|
+
'refreshtokens',
|
|
96
|
+
'token',
|
|
97
|
+
'tokens',
|
|
98
|
+
'secret',
|
|
99
|
+
'secrets',
|
|
100
|
+
'password',
|
|
101
|
+
'passwords',
|
|
91
102
|
'passwd',
|
|
92
103
|
'bearer',
|
|
93
|
-
'credential',
|
|
104
|
+
'credential',
|
|
105
|
+
'credentials'
|
|
94
106
|
]);
|
|
95
107
|
/** A lower→upper transition: the boundary between the words of `apiKey`. */
|
|
96
108
|
const CAMEL_CASE_BOUNDARY = /([a-z0-9])([A-Z])/g;
|
|
@@ -125,16 +137,16 @@ export function findSensitiveMemoryTitleTerm(title) {
|
|
|
125
137
|
return null;
|
|
126
138
|
}
|
|
127
139
|
export function hasSensitiveMemoryContent(content) {
|
|
128
|
-
return /(?:api[_-]?key|token|secret|password|credential|bearer)\s*[:=]/i.test(content)
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
return (/(?:api[_-]?key|token|secret|password|credential|bearer)\s*[:=]/i.test(content) ||
|
|
141
|
+
/\bauthorization\s*:\s*bearer\s+\S+/i.test(content) ||
|
|
142
|
+
/\bbearer\s+[A-Za-z0-9._~+/=-]{12,}\b/i.test(content) ||
|
|
143
|
+
/\bsk-[A-Za-z0-9_-]{6,}\b/.test(content) ||
|
|
144
|
+
/\bgh[pousr]_[A-Za-z0-9_]{20,}\b/.test(content) ||
|
|
145
|
+
/\bgithub_pat_[A-Za-z0-9_]{20,}\b/.test(content) ||
|
|
146
|
+
/\bglpat-[A-Za-z0-9_-]{20,}\b/.test(content) ||
|
|
147
|
+
/\bAKIA[0-9A-Z]{16}\b/.test(content) ||
|
|
148
|
+
/-----BEGIN [A-Z ]*PRIVATE KEY-----/.test(content) ||
|
|
149
|
+
/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/.test(content));
|
|
138
150
|
}
|
|
139
151
|
/**
|
|
140
152
|
* The refusal `assertSafeMemory` raises: the check that fired and the term it
|
|
@@ -93,7 +93,8 @@ export function safeRealpath(path) {
|
|
|
93
93
|
try {
|
|
94
94
|
return realpathSync(path);
|
|
95
95
|
}
|
|
96
|
-
catch {
|
|
96
|
+
catch {
|
|
97
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
97
98
|
return null;
|
|
98
99
|
}
|
|
99
100
|
}
|
|
@@ -1,34 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* The union type, the accepted-kind set in the frontmatter parser, the
|
|
5
|
-
* hot/warm tier map below, `KIND_ORDER` in the reindex view, and the CLI
|
|
6
|
-
* `--kind` help text all derive from this tuple. Adding a kind here is the
|
|
7
|
-
* only edit required; TypeScript then forces `MEMORY_KIND_TIER` to cover it.
|
|
8
|
-
*
|
|
9
|
-
* Slice 2026-09-10-memory-vocab-and-rotate (E): the original 8 kinds are
|
|
10
|
-
* unchanged. The 13 appended kinds were observed on disk with real values
|
|
11
|
-
* that the index schema rejected (`peaks memory reindex` reported them as
|
|
12
|
-
* `unrecognized kind value`). Accepting them moves those files into the
|
|
13
|
-
* index; files with no kind field at all stay reported as unclassified.
|
|
14
|
-
*/
|
|
15
|
-
export declare const PROJECT_MEMORY_KINDS: readonly ["project", "rule", "decision", "reference", "feedback", "convention", "module", "lesson", "bug", "investigation", "technical-pattern", "project-rule", "design", "handoff", "session-handoff", "project-todo", "publish-closure", "project-closure", "slice-closure", "slice-pilot-findings", "sediment"];
|
|
16
|
-
export type ProjectMemoryKind = (typeof PROJECT_MEMORY_KINDS)[number];
|
|
17
|
-
/** Hot kinds keep their body in the always-available index; warm kinds are
|
|
18
|
-
* indexed with the same entry shape but read on demand. */
|
|
19
|
-
export type MemoryKindTier = 'hot' | 'warm';
|
|
20
|
-
/**
|
|
21
|
-
* Hot/warm tier per kind. Insertion order IS the deterministic section order
|
|
22
|
-
* used by the generated `MEMORY.md` (`KIND_ORDER` in `index/reindex.ts`),
|
|
23
|
-
* so this object's key order is load-bearing — append new kinds at the end
|
|
24
|
-
* of their tier block rather than reshuffling existing entries.
|
|
25
|
-
*
|
|
26
|
-
* The `Record<ProjectMemoryKind, MemoryKindTier>` annotation makes a missing
|
|
27
|
-
* tier a compile error whenever `PROJECT_MEMORY_KINDS` grows.
|
|
28
|
-
*/
|
|
29
|
-
export declare const MEMORY_KIND_TIER: Record<ProjectMemoryKind, MemoryKindTier>;
|
|
30
|
-
export declare const HOT_MEMORY_KINDS: readonly ProjectMemoryKind[];
|
|
31
|
-
export declare const WARM_MEMORY_KINDS: readonly ProjectMemoryKind[];
|
|
1
|
+
import type { ProjectMemoryKind } from './memory-kinds.js';
|
|
2
|
+
export { HOT_MEMORY_KINDS, MEMORY_KIND_TIER, PROJECT_MEMORY_KINDS, WARM_MEMORY_KINDS } from './memory-kinds.js';
|
|
3
|
+
export type { MemoryKindTier, ProjectMemoryKind } from './memory-kinds.js';
|
|
32
4
|
export type ExtractedProjectMemory = {
|
|
33
5
|
title: string;
|
|
34
6
|
kind: ProjectMemoryKind;
|
|
@@ -6,79 +6,4 @@
|
|
|
6
6
|
// from here, and the top-level `index.ts` re-exports them for back-compat
|
|
7
7
|
// with downstream callers (CLI commands, audit writers, presence service).
|
|
8
8
|
// ---------------------------------------------------------------------------
|
|
9
|
-
|
|
10
|
-
* Canonical memory-kind vocabulary — the single source of truth.
|
|
11
|
-
*
|
|
12
|
-
* The union type, the accepted-kind set in the frontmatter parser, the
|
|
13
|
-
* hot/warm tier map below, `KIND_ORDER` in the reindex view, and the CLI
|
|
14
|
-
* `--kind` help text all derive from this tuple. Adding a kind here is the
|
|
15
|
-
* only edit required; TypeScript then forces `MEMORY_KIND_TIER` to cover it.
|
|
16
|
-
*
|
|
17
|
-
* Slice 2026-09-10-memory-vocab-and-rotate (E): the original 8 kinds are
|
|
18
|
-
* unchanged. The 13 appended kinds were observed on disk with real values
|
|
19
|
-
* that the index schema rejected (`peaks memory reindex` reported them as
|
|
20
|
-
* `unrecognized kind value`). Accepting them moves those files into the
|
|
21
|
-
* index; files with no kind field at all stay reported as unclassified.
|
|
22
|
-
*/
|
|
23
|
-
export const PROJECT_MEMORY_KINDS = [
|
|
24
|
-
// Original 8 (pre-2026-09-10).
|
|
25
|
-
'project',
|
|
26
|
-
'rule',
|
|
27
|
-
'decision',
|
|
28
|
-
'reference',
|
|
29
|
-
'feedback',
|
|
30
|
-
'convention',
|
|
31
|
-
'module',
|
|
32
|
-
'lesson',
|
|
33
|
-
// Slice E expansion — observed on-disk values, hot tier.
|
|
34
|
-
'bug',
|
|
35
|
-
'investigation',
|
|
36
|
-
'technical-pattern',
|
|
37
|
-
'project-rule',
|
|
38
|
-
// Slice E expansion — observed on-disk values, warm tier.
|
|
39
|
-
'design',
|
|
40
|
-
'handoff',
|
|
41
|
-
'session-handoff',
|
|
42
|
-
'project-todo',
|
|
43
|
-
'publish-closure',
|
|
44
|
-
'project-closure',
|
|
45
|
-
'slice-closure',
|
|
46
|
-
'slice-pilot-findings',
|
|
47
|
-
'sediment'
|
|
48
|
-
];
|
|
49
|
-
/**
|
|
50
|
-
* Hot/warm tier per kind. Insertion order IS the deterministic section order
|
|
51
|
-
* used by the generated `MEMORY.md` (`KIND_ORDER` in `index/reindex.ts`),
|
|
52
|
-
* so this object's key order is load-bearing — append new kinds at the end
|
|
53
|
-
* of their tier block rather than reshuffling existing entries.
|
|
54
|
-
*
|
|
55
|
-
* The `Record<ProjectMemoryKind, MemoryKindTier>` annotation makes a missing
|
|
56
|
-
* tier a compile error whenever `PROJECT_MEMORY_KINDS` grows.
|
|
57
|
-
*/
|
|
58
|
-
export const MEMORY_KIND_TIER = {
|
|
59
|
-
// hot — full body kept in the index
|
|
60
|
-
feedback: 'hot',
|
|
61
|
-
decision: 'hot',
|
|
62
|
-
rule: 'hot',
|
|
63
|
-
convention: 'hot',
|
|
64
|
-
module: 'hot',
|
|
65
|
-
lesson: 'hot',
|
|
66
|
-
bug: 'hot',
|
|
67
|
-
investigation: 'hot',
|
|
68
|
-
'technical-pattern': 'hot',
|
|
69
|
-
'project-rule': 'hot',
|
|
70
|
-
// warm — same entry shape, read on demand
|
|
71
|
-
project: 'warm',
|
|
72
|
-
reference: 'warm',
|
|
73
|
-
design: 'warm',
|
|
74
|
-
handoff: 'warm',
|
|
75
|
-
'session-handoff': 'warm',
|
|
76
|
-
'project-todo': 'warm',
|
|
77
|
-
'publish-closure': 'warm',
|
|
78
|
-
'project-closure': 'warm',
|
|
79
|
-
'slice-closure': 'warm',
|
|
80
|
-
'slice-pilot-findings': 'warm',
|
|
81
|
-
sediment: 'warm'
|
|
82
|
-
};
|
|
83
|
-
export const HOT_MEMORY_KINDS = PROJECT_MEMORY_KINDS.filter((kind) => MEMORY_KIND_TIER[kind] === 'hot');
|
|
84
|
-
export const WARM_MEMORY_KINDS = PROJECT_MEMORY_KINDS.filter((kind) => MEMORY_KIND_TIER[kind] === 'warm');
|
|
9
|
+
export { HOT_MEMORY_KINDS, MEMORY_KIND_TIER, PROJECT_MEMORY_KINDS, WARM_MEMORY_KINDS } from './memory-kinds.js';
|
|
@@ -60,7 +60,8 @@ export async function requireUserConfirmation(options) {
|
|
|
60
60
|
// For assisted/strict, env var is ignored unless --force-confirm is also set
|
|
61
61
|
if (process.env.PEAKS_AUTO_CONFIRM === '1') {
|
|
62
62
|
if (options.forceConfirm) {
|
|
63
|
-
console.error(
|
|
63
|
+
console.error(
|
|
64
|
+
// TODO(g2): legacy console.error without envelope — grace: 1 minor release (v2.14.0)
|
|
64
65
|
`[WARNING] --force-confirm used in ${mode} mode. ` +
|
|
65
66
|
'This bypasses user confirmation. Use with caution.');
|
|
66
67
|
return;
|
|
@@ -69,7 +70,8 @@ export async function requireUserConfirmation(options) {
|
|
|
69
70
|
}
|
|
70
71
|
// --force-confirm without env var
|
|
71
72
|
if (options.forceConfirm) {
|
|
72
|
-
console.error(
|
|
73
|
+
console.error(
|
|
74
|
+
// TODO(g2): legacy console.error without envelope — grace: 1 minor release (v2.14.0)
|
|
73
75
|
`[WARNING] --force-confirm used in ${mode} mode. ` +
|
|
74
76
|
'This bypasses user confirmation. Use with caution.');
|
|
75
77
|
return;
|
|
@@ -59,16 +59,34 @@ export interface ModeStatus {
|
|
|
59
59
|
*/
|
|
60
60
|
export declare function resolvePresenceMode(projectRoot: string): ResolvedPresenceMode;
|
|
61
61
|
/**
|
|
62
|
-
* Resolve the auto-compact profile
|
|
63
|
-
*
|
|
64
|
-
* long-run sessions); every other mode → `standard`.
|
|
62
|
+
* Resolve the auto-compact profile: `partial` (earlier thresholds for
|
|
63
|
+
* long-run sessions) or `standard`.
|
|
65
64
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* T3/T4 auto-engage) selected
|
|
70
|
-
*
|
|
71
|
-
*
|
|
65
|
+
* Two sources answer "is this a 24h long run?", and EITHER is enough:
|
|
66
|
+
*
|
|
67
|
+
* 1. the PRESENCE MODE is `24h` — the autonomy level the user (or
|
|
68
|
+
* the T3/T4 auto-engage) selected; or
|
|
69
|
+
* 2. the 24h STATE MACHINE is engaged (`24H_ACTIVE` /
|
|
70
|
+
* `WAITING_USER`) — the durable, session-scoped record.
|
|
71
|
+
*
|
|
72
|
+
* Why both (slice H3, rid=h3-24h-threshold-not-wired): source 1 alone
|
|
73
|
+
* is not reliable. The mode lives on a per-caller, per-workflow
|
|
74
|
+
* presence lease, and `applyAutoEngagePresenceMode` can only stamp
|
|
75
|
+
* leases that are already in flight — entering `24H_ACTIVE` with no
|
|
76
|
+
* in-flight lease fails closed as `{ applied: false, reason:
|
|
77
|
+
* 'no-in-flight-lease' }`. A fresh lease is also written without a
|
|
78
|
+
* mode (`workflow-presence-lifecycle.initWorkflow`), so a successful
|
|
79
|
+
* stamp does not survive the next skill workflow either. The observed
|
|
80
|
+
* consequence was a `24H_ACTIVE` session resolving to `standard` and
|
|
81
|
+
* auto-compacting LATER than a plain session, the opposite of the
|
|
82
|
+
* documented contract.
|
|
83
|
+
*
|
|
84
|
+
* The union is a superset of both the pre-2026-09-09 mapping (state
|
|
85
|
+
* machine) and the 2026-09-09-mode-consolidation mapping (presence
|
|
86
|
+
* mode): keep partial while the mode says `24h` even in
|
|
87
|
+
* `WAITING_USER`, and keep it when only the state machine knows.
|
|
88
|
+
* Nothing that resolved to `partial` before resolves to `standard`
|
|
89
|
+
* now; a project with no 24h run is byte-identical to before.
|
|
72
90
|
*/
|
|
73
91
|
export declare function resolveAutoCompactProfile(projectRoot: string): AutoCompactMode;
|
|
74
92
|
/**
|
|
@@ -46,19 +46,65 @@ export function resolvePresenceMode(projectRoot) {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
50
|
-
* state machine. `24h` mode → `partial` (earlier thresholds for
|
|
51
|
-
* long-run sessions); every other mode → `standard`.
|
|
49
|
+
* The 24h state-machine states in which the long run is ENGAGED.
|
|
52
50
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
* `24H_ACTIVE` is the run itself; `WAITING_USER` is a pause *inside*
|
|
52
|
+
* it (the run is still on — the user just has to answer). `BRAINSTORM`
|
|
53
|
+
* / `USER_CONFIRM` precede the run, `HANDOFF` ends it, `IDLE` means it
|
|
54
|
+
* never started.
|
|
55
|
+
*/
|
|
56
|
+
const ENGAGED_24H_STATES = new Set(['24H_ACTIVE', 'WAITING_USER']);
|
|
57
|
+
/**
|
|
58
|
+
* Fail-soft read of the bound session's 24h state machine: `true` when
|
|
59
|
+
* the long run is engaged. Every degradation (no session, missing or
|
|
60
|
+
* malformed snapshot) reads as `false` so a non-24h project is
|
|
61
|
+
* untouched by this signal.
|
|
62
|
+
*/
|
|
63
|
+
function is24hRunEngaged(projectRoot) {
|
|
64
|
+
try {
|
|
65
|
+
const sessionId = getCurrentSessionId(projectRoot);
|
|
66
|
+
if (sessionId === null)
|
|
67
|
+
return false;
|
|
68
|
+
return ENGAGED_24H_STATES.has(read24hState(projectRoot, sessionId).state);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Resolve the auto-compact profile: `partial` (earlier thresholds for
|
|
76
|
+
* long-run sessions) or `standard`.
|
|
77
|
+
*
|
|
78
|
+
* Two sources answer "is this a 24h long run?", and EITHER is enough:
|
|
79
|
+
*
|
|
80
|
+
* 1. the PRESENCE MODE is `24h` — the autonomy level the user (or
|
|
81
|
+
* the T3/T4 auto-engage) selected; or
|
|
82
|
+
* 2. the 24h STATE MACHINE is engaged (`24H_ACTIVE` /
|
|
83
|
+
* `WAITING_USER`) — the durable, session-scoped record.
|
|
84
|
+
*
|
|
85
|
+
* Why both (slice H3, rid=h3-24h-threshold-not-wired): source 1 alone
|
|
86
|
+
* is not reliable. The mode lives on a per-caller, per-workflow
|
|
87
|
+
* presence lease, and `applyAutoEngagePresenceMode` can only stamp
|
|
88
|
+
* leases that are already in flight — entering `24H_ACTIVE` with no
|
|
89
|
+
* in-flight lease fails closed as `{ applied: false, reason:
|
|
90
|
+
* 'no-in-flight-lease' }`. A fresh lease is also written without a
|
|
91
|
+
* mode (`workflow-presence-lifecycle.initWorkflow`), so a successful
|
|
92
|
+
* stamp does not survive the next skill workflow either. The observed
|
|
93
|
+
* consequence was a `24H_ACTIVE` session resolving to `standard` and
|
|
94
|
+
* auto-compacting LATER than a plain session, the opposite of the
|
|
95
|
+
* documented contract.
|
|
96
|
+
*
|
|
97
|
+
* The union is a superset of both the pre-2026-09-09 mapping (state
|
|
98
|
+
* machine) and the 2026-09-09-mode-consolidation mapping (presence
|
|
99
|
+
* mode): keep partial while the mode says `24h` even in
|
|
100
|
+
* `WAITING_USER`, and keep it when only the state machine knows.
|
|
101
|
+
* Nothing that resolved to `partial` before resolves to `standard`
|
|
102
|
+
* now; a project with no 24h run is byte-identical to before.
|
|
59
103
|
*/
|
|
60
104
|
export function resolveAutoCompactProfile(projectRoot) {
|
|
61
|
-
|
|
105
|
+
if (resolvePresenceMode(projectRoot).mode === '24h')
|
|
106
|
+
return 'partial';
|
|
107
|
+
return is24hRunEngaged(projectRoot) ? 'partial' : 'standard';
|
|
62
108
|
}
|
|
63
109
|
/**
|
|
64
110
|
* Assemble the full stacked status. `sessionId` defaults to the
|
|
@@ -95,6 +141,12 @@ export function resolveModeStatus(input) {
|
|
|
95
141
|
jobMode = false;
|
|
96
142
|
}
|
|
97
143
|
}
|
|
144
|
+
// Delegate rather than re-derive `is24h ? 'partial' : 'standard'`: the
|
|
145
|
+
// profile has a second source (the 24h state machine), and a local
|
|
146
|
+
// copy of the old one-source rule would make `peaks code mode status`
|
|
147
|
+
// advertise a different profile than the one `peaks code
|
|
148
|
+
// auto-compact` actually applies.
|
|
149
|
+
const autoCompactProfile = resolveAutoCompactProfile(projectRoot);
|
|
98
150
|
return {
|
|
99
151
|
mode: presence.mode,
|
|
100
152
|
skill: presence.skill,
|
|
@@ -102,7 +154,7 @@ export function resolveModeStatus(input) {
|
|
|
102
154
|
is24h,
|
|
103
155
|
h24State,
|
|
104
156
|
jobMode,
|
|
105
|
-
autoCompactProfile
|
|
106
|
-
autoCompactThresholds: AUTO_COMPACT_THRESHOLDS[
|
|
157
|
+
autoCompactProfile,
|
|
158
|
+
autoCompactThresholds: AUTO_COMPACT_THRESHOLDS[autoCompactProfile]
|
|
107
159
|
};
|
|
108
160
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 { type ObservabilityEvent } from './observability-service.js';
|
|
14
|
+
export declare function isSliceTransition(event: ObservabilityEvent): event is ObservabilityEvent & {
|
|
15
|
+
sliceRid: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function artifactRole(event: ObservabilityEvent): string;
|
|
18
|
+
export declare function transitionTo(event: ObservabilityEvent): string | null;
|
|
19
|
+
export declare function durationMsBetween(firstTs: string, lastTs: string): number;
|
|
20
|
+
export declare function computeRepairCyclesBySlice(events: readonly ObservabilityEvent[]): Map<string, number>;
|
|
21
|
+
export declare function readAllSessionEvents(projectRoot: string): ObservabilityEvent[];
|
|
22
|
+
export declare function readSessionEvents(projectRoot: string, sessionId: string): ObservabilityEvent[];
|