peaks-loop 4.1.0 → 4.1.2
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 +75 -0
- package/README-en.md +4 -4
- package/README.md +25 -4
- package/bin/node-floor.mjs +59 -0
- package/bin/peaks.js +13 -0
- package/config/eslint/tsconfig.lint.json +2 -1
- package/dist/cli/cli-helpers.d.ts +0 -1
- package/dist/cli/cli-helpers.js +0 -1
- package/dist/cli/commands/_cli-error-envelope.js +0 -3
- package/dist/cli/commands/_register.js +2 -2
- package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
- package/dist/cli/commands/adapter-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.js +0 -1
- package/dist/cli/commands/audit-commands.js +21 -24
- package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
- package/dist/cli/commands/bee-commands.d.ts +0 -2
- package/dist/cli/commands/bee-commands.js +0 -2
- package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
- package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
- package/dist/cli/commands/changeset-commands.d.ts +0 -2
- package/dist/cli/commands/changeset-commands.js +0 -2
- package/dist/cli/commands/code-commands.d.ts +0 -3
- package/dist/cli/commands/code-commands.js +0 -3
- package/dist/cli/commands/code-gate-command.d.ts +0 -1
- package/dist/cli/commands/code-gate-command.js +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
- package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
- package/dist/cli/commands/code-job-shape-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
- package/dist/cli/commands/code-mode-gate-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +1 -5
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
- package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
- package/dist/cli/commands/code-mode-status-command.js +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
- package/dist/cli/commands/code-run-command.js +0 -1
- package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
- package/dist/cli/commands/code-runtime-commands.js +0 -15
- package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
- package/dist/cli/commands/codegraph-command-runtime.js +19 -7
- package/dist/cli/commands/codegraph-commands.js +20 -193
- package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
- package/dist/cli/commands/codegraph-init-command.js +162 -0
- package/dist/cli/commands/codegraph-status-command.js +5 -6
- package/dist/cli/commands/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- package/dist/cli/commands/compact-command.d.ts +0 -1
- package/dist/cli/commands/compact-command.js +0 -4
- package/dist/cli/commands/container-commands.d.ts +0 -1
- package/dist/cli/commands/container-commands.js +0 -1
- package/dist/cli/commands/context-commands.d.ts +0 -1
- package/dist/cli/commands/context-commands.js +0 -1
- package/dist/cli/commands/core/doctor-command.d.ts +0 -1
- package/dist/cli/commands/core/doctor-command.js +0 -9
- package/dist/cli/commands/core/memory-command.js +10 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.js +1 -10
- package/dist/cli/commands/core/standards-command.js +1 -1
- package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
- package/dist/cli/commands/core-artifact-commands.js +0 -1
- package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
- package/dist/cli/commands/cron-commands-actions.js +0 -2
- package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
- package/dist/cli/commands/cron-commands-schedule.js +0 -1
- package/dist/cli/commands/cron-commands.d.ts +0 -1
- package/dist/cli/commands/cron-commands.js +0 -2
- package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
- package/dist/cli/commands/cron-scheduler-commands.js +0 -1
- package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
- package/dist/cli/commands/cron-scheduler-persist.js +0 -5
- package/dist/cli/commands/dashboard-summary.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.js +10 -37
- package/dist/cli/commands/dispatch-from-dag.js +0 -4
- package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
- package/dist/cli/commands/e2e-verify.d.ts +0 -1
- package/dist/cli/commands/ecc-commands.d.ts +16 -22
- package/dist/cli/commands/ecc-commands.js +38 -26
- package/dist/cli/commands/evolution-commands.d.ts +0 -1
- package/dist/cli/commands/evolution-commands.js +0 -1
- package/dist/cli/commands/feedback-commands.d.ts +0 -1
- package/dist/cli/commands/feedback-commands.js +0 -2
- package/dist/cli/commands/fixture-commands.d.ts +0 -2
- package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
- package/dist/cli/commands/gate-commands-enforce.js +0 -4
- package/dist/cli/commands/gate-commands.js +0 -2
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
- package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
- package/dist/cli/commands/heartbeat-commands-action.js +0 -6
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
- package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
- package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
- package/dist/cli/commands/heartbeat-commands.js +0 -1
- package/dist/cli/commands/hooks-commands.js +0 -11
- package/dist/cli/commands/ide-commands.d.ts +0 -1
- package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
- package/dist/cli/commands/job-add-slice-command.js +0 -2
- package/dist/cli/commands/job-commands.js +0 -4
- package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
- package/dist/cli/commands/lease-metrics-commands.js +0 -1
- package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
- package/dist/cli/commands/lease-stats-commands.js +0 -1
- package/dist/cli/commands/log-commands.d.ts +0 -2
- package/dist/cli/commands/log-commands.js +0 -3
- package/dist/cli/commands/loop-eval-commands.js +0 -3
- package/dist/cli/commands/memory-commands.d.ts +0 -1
- package/dist/cli/commands/memory-commands.js +0 -1
- package/dist/cli/commands/observability-commands.d.ts +0 -6
- package/dist/cli/commands/observability-commands.js +0 -6
- package/dist/cli/commands/outer-cache-commands.js +0 -2
- package/dist/cli/commands/playwright-commands.d.ts +0 -1
- package/dist/cli/commands/playwright-commands.js +0 -1
- package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +0 -2
- package/dist/cli/commands/primer-command.d.ts +0 -1
- package/dist/cli/commands/primer-command.js +0 -1
- package/dist/cli/commands/project-commands.js +0 -1
- package/dist/cli/commands/qa-commands.d.ts +0 -1
- package/dist/cli/commands/qa-commands.js +0 -2
- package/dist/cli/commands/release-commands.js +0 -9
- package/dist/cli/commands/request-commands.d.ts +0 -1
- package/dist/cli/commands/request-commands.js +0 -10
- package/dist/cli/commands/request-format-helpers.d.ts +0 -1
- package/dist/cli/commands/request-format-helpers.js +0 -2
- package/dist/cli/commands/runtime-commands.d.ts +0 -1
- package/dist/cli/commands/sc-commands.js +0 -1
- package/dist/cli/commands/session-24h-mode.d.ts +0 -1
- package/dist/cli/commands/session-24h-mode.js +0 -2
- package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
- package/dist/cli/commands/session-checkpoint-command.js +0 -1
- package/dist/cli/commands/session-resume-command.d.ts +0 -1
- package/dist/cli/commands/session-resume-command.js +0 -1
- package/dist/cli/commands/shadcn-commands.js +0 -2
- package/dist/cli/commands/share-commands.d.ts +0 -3
- package/dist/cli/commands/share-commands.js +0 -13
- package/dist/cli/commands/skill-search-commands.d.ts +0 -2
- package/dist/cli/commands/slice-commands.js +0 -2
- package/dist/cli/commands/slice-integrate-commands.js +0 -1
- package/dist/cli/commands/spill-demo-command.d.ts +0 -1
- package/dist/cli/commands/statusline-commands.js +0 -4
- package/dist/cli/commands/sub-agent/detached.js +0 -2
- package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
- package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
- package/dist/cli/commands/sub-agent-shared.js +0 -5
- package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
- package/dist/cli/commands/tech-commands.d.ts +0 -4
- package/dist/cli/commands/tech-commands.js +0 -4
- package/dist/cli/commands/vendor-detect.d.ts +0 -3
- package/dist/cli/commands/vendor-detect.js +0 -2
- package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
- package/dist/cli/commands/verdict-aggregate-command.js +0 -7
- package/dist/cli/commands/vm-commands.d.ts +0 -1
- package/dist/cli/commands/vm-commands.js +5 -29
- package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
- package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
- package/dist/cli/commands/vm-status-command.d.ts +3 -0
- package/dist/cli/commands/vm-status-command.js +50 -0
- package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
- package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
- package/dist/cli/commands/workflow-commands.js +0 -14
- package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
- package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
- package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.js +0 -1
- package/dist/cli/commands/workspace/helpers.d.ts +0 -1
- package/dist/cli/commands/workspace/helpers.js +0 -1
- package/dist/cli/commands/workspace/init-command.d.ts +0 -6
- package/dist/cli/commands/workspace/init-command.js +0 -17
- package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
- package/dist/cli/commands/workspace/migrate-command.js +0 -2
- package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
- package/dist/cli/commands/workspace/reconcile-command.js +0 -3
- package/dist/cli/commands/workspace-commands.d.ts +0 -2
- package/dist/cli/commands/workspace-commands.js +0 -4
- package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-commands.js +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
- package/dist/cli/commands/worktree-lease-commands.js +0 -1
- package/dist/cli/program.js +4 -16
- package/dist/reporters/bdd-reporter.js +0 -1
- package/dist/services/24h-mode/auto-engage.d.ts +0 -1
- package/dist/services/24h-mode/auto-engage.js +0 -1
- package/dist/services/24h-mode/decider.d.ts +0 -3
- package/dist/services/24h-mode/decider.js +0 -3
- package/dist/services/24h-mode/index.d.ts +0 -2
- package/dist/services/24h-mode/index.js +0 -2
- package/dist/services/24h-mode/state.d.ts +0 -1
- package/dist/services/24h-mode/state.js +0 -1
- package/dist/services/24h-mode/store.d.ts +0 -1
- package/dist/services/24h-mode/store.js +0 -1
- package/dist/services/adapter/adapter-registry.js +0 -1
- package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
- package/dist/services/artifacts/artifact-prerequisites.js +0 -19
- package/dist/services/artifacts/artifact-templates.d.ts +0 -1
- package/dist/services/artifacts/artifact-templates.js +0 -1
- package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
- package/dist/services/artifacts/request-artifact-service.js +0 -12
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
- package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
- package/dist/services/audit/artifact-writer.d.ts +0 -1
- package/dist/services/audit/artifact-writer.js +0 -1
- package/dist/services/audit/decision-writer.js +3 -1
- package/dist/services/audit/enforcer-liveness.js +0 -1
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
- package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
- package/dist/services/audit/red-line-audit-input.d.ts +11 -0
- package/dist/services/audit/red-line-audit-input.js +103 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
- package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
- package/dist/services/audit/types.d.ts +0 -2
- package/dist/services/audit/types.js +0 -2
- package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
- package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
- package/dist/services/audit-independent/security-audit-service.js +0 -2
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
- package/dist/services/best-practice/language-detector.js +0 -1
- package/dist/services/best-practice/output-formatter.d.ts +0 -1
- package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
- package/dist/services/capability-audit-service/types.d.ts +1 -3
- package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
- package/dist/services/changeset/changeset-check-service.d.ts +0 -3
- package/dist/services/changeset/changeset-check-service.js +0 -3
- package/dist/services/classify/classify-service.d.ts +0 -1
- package/dist/services/classify/classify-service.js +0 -1
- package/dist/services/classify/classify-types.d.ts +0 -1
- package/dist/services/classify/classify-types.js +0 -1
- package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
- package/dist/services/code/auto-compact-lifecycle.js +0 -10
- package/dist/services/code/auto-compact-modes.d.ts +0 -3
- package/dist/services/code/auto-compact-modes.js +0 -3
- package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
- package/dist/services/code/auto-compact-orchestrator.js +0 -29
- package/dist/services/code/batch-heartbeat-poller.js +0 -1
- package/dist/services/code/compact-event-settle.js +0 -1
- package/dist/services/code/dag-orchestrator.d.ts +0 -1
- package/dist/services/code/dag-orchestrator.js +0 -1
- package/dist/services/code/mode-gate-types.d.ts +1 -3
- package/dist/services/code/mode-gate-types.js +0 -2
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +1 -14
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
- package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
- package/dist/services/code/orchestrator-can-do.d.ts +0 -4
- package/dist/services/code/orchestrator-can-do.js +0 -3
- package/dist/services/code/status-line-renderer.js +0 -1
- package/dist/services/code/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -7
- package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
- package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
- package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
- package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
- package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
- package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
- package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
- package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
- package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
- package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
- package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
- package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
- package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
- package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
- package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
- package/dist/services/codegraph/codegraph-project-config.js +90 -0
- package/dist/services/codegraph/codegraph-service.d.ts +1 -2
- package/dist/services/codegraph/codegraph-service.js +11 -11
- package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
- package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
- package/dist/services/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +68 -0
- package/dist/services/comments/comment-audit.js +121 -0
- package/dist/services/comments/comment-citations.d.ts +66 -0
- package/dist/services/comments/comment-citations.js +184 -0
- package/dist/services/comments/comment-hygiene.d.ts +105 -0
- package/dist/services/comments/comment-hygiene.js +170 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +196 -0
- package/dist/services/comments/comment-spans.d.ts +30 -0
- package/dist/services/comments/comment-spans.js +266 -0
- package/dist/services/comments/prune-apply.d.ts +82 -0
- package/dist/services/comments/prune-apply.js +217 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- package/dist/services/compact/decision-tables.d.ts +0 -2
- package/dist/services/compact/decision-tables.js +0 -2
- package/dist/services/compact/request-transition-hook.js +0 -2
- package/dist/services/compact-history/compact-history-service.d.ts +0 -2
- package/dist/services/compact-history/compact-history-service.js +0 -1
- package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
- package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
- package/dist/services/config/config-rollback.js +0 -1
- package/dist/services/config/config-safety.d.ts +0 -1
- package/dist/services/config/config-safety.js +0 -1
- package/dist/services/config/config-service.d.ts +0 -1
- package/dist/services/config/config-service.js +0 -1
- package/dist/services/config/model-routing.d.ts +0 -3
- package/dist/services/config/model-routing.js +0 -5
- package/dist/services/container/container-lease.d.ts +0 -1
- package/dist/services/container/container-lease.js +0 -1
- package/dist/services/context/artifact-meta.js +0 -1
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
- package/dist/services/context/auto-compact-dispatcher.js +0 -14
- package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
- package/dist/services/context/auto-compact-reader.d.ts +0 -2
- package/dist/services/context/auto-compact-reader.js +0 -7
- package/dist/services/context/auto-compact-types.d.ts +0 -11
- package/dist/services/context/auto-compact-types.js +0 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
- package/dist/services/context/build-dispatch-system-prompt.js +8 -27
- package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
- package/dist/services/context/codegraph-unavailable-block.js +77 -0
- package/dist/services/context/context-audit-hint.d.ts +0 -1
- package/dist/services/context/context-audit-hint.js +0 -1
- package/dist/services/context/context-audit.d.ts +0 -1
- package/dist/services/context/context-audit.js +0 -1
- package/dist/services/context/harness-window-config.d.ts +0 -4
- package/dist/services/context/harness-window-config.js +0 -4
- package/dist/services/context/main-session-monitor.d.ts +0 -2
- package/dist/services/context/main-session-monitor.js +0 -2
- package/dist/services/context/memory-index-reader.d.ts +0 -2
- package/dist/services/context/memory-index-reader.js +0 -1
- package/dist/services/context/memory-preflight-config.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.js +0 -3
- package/dist/services/context/memory-preflight-support.d.ts +0 -5
- package/dist/services/context/post-compact-reinjection.d.ts +0 -1
- package/dist/services/context/post-compact-reinjection.js +0 -1
- package/dist/services/context/summary-view.d.ts +0 -1
- package/dist/services/context/summary-view.js +0 -1
- package/dist/services/crystallization/crystallization-service.d.ts +5 -11
- package/dist/services/crystallization/crystallization-service.js +3 -11
- package/dist/services/crystallization/crystallization-store.d.ts +6 -6
- package/dist/services/dispatch/await-batch-helpers.js +0 -3
- package/dist/services/dispatch/await-batch.d.ts +0 -1
- package/dist/services/dispatch/await-batch.js +0 -4
- package/dist/services/dispatch/batch-counter.js +0 -1
- package/dist/services/dispatch/conflict-replay.d.ts +0 -1
- package/dist/services/dispatch/conflict-replay.js +0 -1
- package/dist/services/dispatch/contract-store.d.ts +0 -2
- package/dist/services/dispatch/contract-store.js +0 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
- package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
- package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
- package/dist/services/dispatch/dispatch-record-writer.js +0 -21
- package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
- package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
- package/dist/services/dispatch/e2e-fixtures.js +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
- package/dist/services/dispatch/isolation-lease.d.ts +0 -2
- package/dist/services/dispatch/isolation-lease.js +0 -2
- package/dist/services/dispatch/service-shutdown.js +0 -1
- package/dist/services/dispatch/session-capsule.js +0 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
- package/dist/services/dispatch/slice-dag.js +0 -2
- package/dist/services/dispatch/stage-enum.d.ts +0 -1
- package/dist/services/dispatch/stage-enum.js +0 -1
- package/dist/services/dispatch/startup-timeout.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
- package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
- package/dist/services/dispatch/test-tool-detection.js +0 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
- package/dist/services/doctor/doctor-service/index.d.ts +0 -1
- package/dist/services/doctor/doctor-service/index.js +0 -1
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
- package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
- package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
- package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
- package/dist/services/doctor/doctor-service/types.d.ts +0 -5
- package/dist/services/doctor/doctor-service/types.js +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -1
- package/dist/services/doctor/doctor-service.js +0 -2
- package/dist/services/env/shell-probe.js +0 -1
- package/dist/services/evidence/evidence-generator.js +0 -8
- package/dist/services/evolution/evolution-constraints.d.ts +0 -2
- package/dist/services/evolution/evolution-constraints.js +0 -2
- package/dist/services/evolution/evolution-service.d.ts +2 -12
- package/dist/services/evolution/evolution-service.js +0 -9
- package/dist/services/evolution/evolution-store.d.ts +6 -8
- package/dist/services/evolution/evolution-store.js +1 -3
- package/dist/services/evolution/evolution-types.d.ts +0 -2
- package/dist/services/evolution/evolution-types.js +0 -6
- package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
- package/dist/services/evolution/independent-evaluator-runner.js +0 -1
- package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
- package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
- package/dist/services/feedback/feedback-promotion-service.js +0 -10
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
- package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
- package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
- package/dist/services/final-review/final-review-evidence-budget.js +0 -5
- package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
- package/dist/services/final-review/final-review-evidence-sources.js +0 -1
- package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
- package/dist/services/final-review/final-review-output-budget.js +0 -3
- package/dist/services/final-review/final-review-service.d.ts +0 -1
- package/dist/services/final-review/final-review-service.js +0 -1
- package/dist/services/fixture/fixture-capture-service.js +0 -1
- package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
- package/dist/services/fixture/fixture-sanitize-service.js +0 -3
- package/dist/services/fresh-context/config.js +0 -1
- package/dist/services/fresh-context/fresh-context-block.js +0 -1
- package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
- package/dist/services/fresh-context/trigger-scan.js +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
- package/dist/services/handoff/handoff-parser.d.ts +0 -1
- package/dist/services/handoff/handoff-parser.js +0 -1
- package/dist/services/handoff/handoff-types.d.ts +0 -1
- package/dist/services/handoff/handoff-types.js +0 -1
- package/dist/services/handoff/handoff-writer.d.ts +0 -1
- package/dist/services/handoff/handoff-writer.js +0 -1
- package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
- package/dist/services/hooks/auto-compact-hook-install.js +0 -1
- package/dist/services/hooks/output.d.ts +0 -1
- package/dist/services/hooks/output.js +0 -1
- package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
- package/dist/services/hooks/pre-tool-code-gate.js +0 -1
- package/dist/services/hooks/presence-marker-detector.js +0 -1
- package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
- package/dist/services/hooks/worktree-authorization-gate.js +0 -1
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
- package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
- package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/qoder-adapter.js +0 -5
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
- package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/trae-adapter.js +3 -6
- package/dist/services/ide/adapters/zcode-adapter.js +0 -2
- package/dist/services/ide/current-model-detector.js +0 -1
- package/dist/services/ide/hook-protocol.d.ts +0 -2
- package/dist/services/ide/hook-protocol.js +0 -2
- package/dist/services/ide/ide-compact-types.d.ts +0 -7
- package/dist/services/ide/ide-types.d.ts +0 -12
- package/dist/services/ide/resource-profile.d.ts +0 -1
- package/dist/services/job/job-commit-verification.d.ts +0 -2
- package/dist/services/job/job-commit-verification.js +0 -2
- package/dist/services/job/job-orchestrator.d.ts +0 -1
- package/dist/services/job/job-orchestrator.js +0 -1
- package/dist/services/job/job-progress-store.d.ts +0 -2
- package/dist/services/job/job-progress-store.js +0 -3
- package/dist/services/job/job-types.js +0 -1
- package/dist/services/job-snapshot/snapshot.js +0 -1
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
- package/dist/services/legacy/legacy-detector.js +0 -1
- package/dist/services/log/log-commands-service.d.ts +0 -2
- package/dist/services/log/log-commands-service.js +0 -2
- package/dist/services/log/logger.d.ts +0 -1
- package/dist/services/log/logger.js +0 -1
- package/dist/services/log/redact.d.ts +0 -1
- package/dist/services/log/redact.js +0 -1
- package/dist/services/log/retention.d.ts +0 -17
- package/dist/services/log/retention.js +0 -18
- package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-service.js +14 -13
- package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
- package/dist/services/loop/loop-bee-relation-store.js +1 -2
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +1 -1
- package/dist/services/loop/loop-release-service.d.ts +3 -3
- package/dist/services/loop/loop-release-service.js +1 -1
- package/dist/services/loop/loop-release-store.d.ts +6 -7
- package/dist/services/loop/loop-release-store.js +0 -1
- package/dist/services/loop/monotonic-guard.d.ts +0 -1
- package/dist/services/loop/monotonic-guard.js +0 -1
- package/dist/services/memory/memory-ingest-service.js +0 -1
- package/dist/services/memory/project-context-service.d.ts +0 -1
- package/dist/services/memory/project-context-service.js +0 -1
- package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
- package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
- package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
- package/dist/services/memory/project-memory-service/index/search.js +0 -1
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
- package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +120 -26
- package/dist/services/memory/project-memory-service.js +0 -1
- package/dist/services/mode/mode-enforcement.js +0 -1
- package/dist/services/mode/mode-status-service.d.ts +0 -2
- package/dist/services/mode/mode-status-service.js +0 -2
- package/dist/services/observability/aggregation.d.ts +0 -4
- package/dist/services/observability/aggregation.js +0 -6
- package/dist/services/observability/observability-schema.js +0 -1
- package/dist/services/observability/observability-service.d.ts +0 -5
- package/dist/services/observability/observability-service.js +0 -4
- package/dist/services/observability/report-formatter.d.ts +0 -2
- package/dist/services/observability/report-formatter.js +0 -2
- package/dist/services/openspec/artifact-boundary.d.ts +0 -4
- package/dist/services/openspec/artifact-boundary.js +0 -4
- package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
- package/dist/services/openspec/coverage-evidence-reader.js +0 -1
- package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
- package/dist/services/polyrepo/polyrepo-service.js +0 -1
- package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
- package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
- package/dist/services/prd/best-practice-auto-trigger.js +0 -2
- package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
- package/dist/services/prd/gate-evidence-derivation.js +0 -5
- package/dist/services/prd/handoff-auto-regen.js +0 -5
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
- package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
- package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
- package/dist/services/prd/handoff-frontmatter.js +61 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +12 -12
- package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
- package/dist/services/prd/handoff-path-resolution.js +0 -10
- package/dist/services/prd/handoff-service.d.ts +11 -3
- package/dist/services/prd/handoff-service.js +11 -3
- package/dist/services/prd/handoff-types.d.ts +33 -3
- package/dist/services/prd/handoff-types.js +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
- package/dist/services/prd/project-scan-types.d.ts +0 -1
- package/dist/services/prd/project-scan-types.js +0 -1
- package/dist/services/preferences/preferences-service.d.ts +0 -1
- package/dist/services/preferences/preferences-service.js +0 -5
- package/dist/services/preferences/preferences-types.d.ts +0 -14
- package/dist/services/preferences/preferences-types.js +0 -4
- package/dist/services/progress/progress-service.js +0 -1
- package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
- package/dist/services/qa/bdd-test-style-verifier.js +0 -1
- package/dist/services/qa/browser-event-logger.d.ts +0 -1
- package/dist/services/qa/browser-event-logger.js +0 -1
- package/dist/services/qa/browser-restart-detector.d.ts +0 -1
- package/dist/services/qa/browser-restart-detector.js +0 -1
- package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
- package/dist/services/qa/browser-reuse-hint.js +0 -1
- package/dist/services/qa/qa-business-review-state.js +0 -2
- package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
- package/dist/services/qa/screenshot-archive-service.js +0 -1
- package/dist/services/rd/impl.js +0 -1
- package/dist/services/rd/rd-service.d.ts +0 -5
- package/dist/services/rd/rd-service.js +0 -5
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
- package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
- package/dist/services/rd/standards-diagnostic.js +0 -1
- package/dist/services/rd/tactical-stage.js +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
- package/dist/services/recommendations/installed-capability-detector.d.ts +5 -6
- package/dist/services/recommendations/installed-capability-detector.js +11 -11
- package/dist/services/release/version-precheck-service.d.ts +0 -2
- package/dist/services/release/version-precheck-service.js +0 -3
- package/dist/services/retrospective/retrospective-index.d.ts +0 -1
- package/dist/services/retrospective/retrospective-index.js +0 -1
- package/dist/services/retrospective/retrospective-show.d.ts +0 -1
- package/dist/services/retrospective/retrospective-show.js +0 -1
- package/dist/services/reviewer/model-family.js +0 -1
- package/dist/services/reviewer/reviewer-config.js +0 -1
- package/dist/services/reviewer/reviewer-service.d.ts +0 -1
- package/dist/services/reviewer/reviewer-service.js +0 -3
- package/dist/services/reviewer/selection-strategies.js +0 -1
- package/dist/services/runtime/runtime-detector.js +0 -1
- package/dist/services/runtime/runtime-service.d.ts +0 -2
- package/dist/services/runtime/vendor-adapter.d.ts +0 -7
- package/dist/services/runtime/vendors/claude-code.js +0 -1
- package/dist/services/runtime/vendors/codex.js +0 -1
- package/dist/services/runtime/vendors/copilot.js +0 -1
- package/dist/services/sc/sc-service.js +0 -6
- package/dist/services/scan/acceptance-coverage-service.js +0 -2
- package/dist/services/scan/api-diff-recorded.d.ts +0 -1
- package/dist/services/scan/api-diff-recorded.js +0 -1
- package/dist/services/scan/api-diff-service.d.ts +0 -1
- package/dist/services/scan/api-diff-service.js +0 -1
- package/dist/services/scan/api-diff-types.d.ts +0 -1
- package/dist/services/scan/api-diff-types.js +0 -1
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +175 -2
- package/dist/services/scan/archetype-service.js +36 -23
- package/dist/services/scan/file-size-policy.d.ts +0 -1
- package/dist/services/scan/file-size-policy.js +0 -5
- package/dist/services/scan/file-size-scan.d.ts +0 -1
- package/dist/services/scan/scan-types.d.ts +9 -0
- package/dist/services/security/safe-settings-path.js +0 -1
- package/dist/services/session/binding-store.d.ts +0 -4
- package/dist/services/session/binding-store.js +0 -7
- package/dist/services/session/caller-binding-service.d.ts +0 -6
- package/dist/services/session/caller-binding-service.js +0 -4
- package/dist/services/session/caller-id-types.d.ts +0 -3
- package/dist/services/session/caller-id-types.js +0 -2
- package/dist/services/session/getSessionDir.js +0 -1
- package/dist/services/session/index.js +0 -1
- package/dist/services/session/platform-fallbacks.d.ts +0 -3
- package/dist/services/session/platform-fallbacks.js +0 -3
- package/dist/services/session/resolve-caller-id.d.ts +0 -2
- package/dist/services/session/resolve-caller-id.js +0 -2
- package/dist/services/session/session-binding-bridge.d.ts +0 -2
- package/dist/services/session/session-binding-bridge.js +0 -15
- package/dist/services/session/session-checkpoint-service.d.ts +0 -1
- package/dist/services/session/session-checkpoint-service.js +0 -1
- package/dist/services/session/session-manager.d.ts +0 -8
- package/dist/services/session/session-manager.js +0 -19
- package/dist/services/session/session-resume-service.d.ts +0 -1
- package/dist/services/session/session-resume-service.js +0 -1
- package/dist/services/share/bundle-reader.d.ts +2 -5
- package/dist/services/share/bundle-reader.js +6 -8
- package/dist/services/share/bundle-writer.d.ts +2 -2
- package/dist/services/skill/resume-detector.js +0 -3
- package/dist/services/skill/skill-scheduler.d.ts +0 -1
- package/dist/services/skill/skill-scheduler.js +0 -1
- package/dist/services/skill/skill-search-service.d.ts +0 -2
- package/dist/services/skill/skill-search-service.js +0 -2
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +2 -1
- package/dist/services/skillhub/release-retain.d.ts +2 -2
- package/dist/services/skillhub/release-retain.js +2 -1
- package/dist/services/skillhub/sqlite-store.d.ts +3 -3
- package/dist/services/skillhub/sqlite-store.js +4 -5
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
- package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
- package/dist/services/skills/hooks-settings-service.d.ts +0 -2
- package/dist/services/skills/hooks-settings-service.js +0 -6
- package/dist/services/skills/presence-lease-service.d.ts +0 -1
- package/dist/services/skills/presence-lease-service.js +0 -1
- package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
- package/dist/services/skills/session-start-hook-constants.js +0 -4
- package/dist/services/skills/skill-presence-service.d.ts +0 -8
- package/dist/services/skills/skill-presence-service.js +0 -13
- package/dist/services/skills/skill-statusline-model.d.ts +0 -6
- package/dist/services/skills/skill-statusline-model.js +1 -4
- package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
- package/dist/services/skills/skill-statusline-renderer.js +0 -12
- package/dist/services/skills/skill-statusline-service.js +0 -6
- package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
- package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
- package/dist/services/skills/statusline-palette.d.ts +0 -2
- package/dist/services/skills/statusline-palette.js +0 -3
- package/dist/services/slice/slice-archive-service.js +0 -1
- package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
- package/dist/services/slice/slice-benchmark-service.js +0 -1
- package/dist/services/slice/slice-check-service.js +0 -6
- package/dist/services/slice/slice-check-types.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.js +0 -1
- package/dist/services/slice/slice-review-state.js +0 -2
- package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
- package/dist/services/sqlite/sqlite-driver.js +159 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
- package/dist/services/standards/ide-aware-standards-service.js +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
- package/dist/services/standards/migrate-claude-rules-service.js +0 -3
- package/dist/services/standards/migrate-service.d.ts +0 -1
- package/dist/services/standards/migrate-service.js +0 -1
- package/dist/services/standards/missing-standards-detector.d.ts +0 -2
- package/dist/services/standards/missing-standards-detector.js +0 -3
- package/dist/services/standards/project-standards-service.d.ts +0 -1
- package/dist/services/standards/project-standards-service.js +0 -1
- package/dist/services/standards/standards-render.d.ts +0 -1
- package/dist/services/standards/standards-render.js +0 -1
- package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
- package/dist/services/standards/ui-library-dispatch-block.js +0 -1
- package/dist/services/tech/tech-change-id-service.d.ts +0 -7
- package/dist/services/tech/tech-change-id-service.js +0 -7
- package/dist/services/tech/tech-service.js +0 -5
- package/dist/services/verdict/envelope-parsers.d.ts +0 -2
- package/dist/services/verdict/envelope-parsers.js +0 -2
- package/dist/services/verdict/envelopes.d.ts +0 -1
- package/dist/services/vm/vm-lease.js +0 -1
- package/dist/services/web/aria-node.d.ts +0 -1
- package/dist/services/web/bounded-output.d.ts +0 -1
- package/dist/services/web/bounded-output.js +0 -1
- package/dist/services/web/browser-acquire.js +0 -1
- package/dist/services/web/browser-cache-probe.js +0 -1
- package/dist/services/web/browser-session-manager.js +0 -1
- package/dist/services/web/daemon-entry.js +0 -1
- package/dist/services/web/daemon-registry.js +0 -1
- package/dist/services/web/daemon-supervisor.d.ts +4 -3
- package/dist/services/web/daemon-supervisor.js +4 -4
- package/dist/services/web/playwright-loader.js +0 -1
- package/dist/services/web/playwright-types.d.ts +0 -1
- package/dist/services/web/snapshot-pruner.js +0 -1
- package/dist/services/web/untrusted-envelope.d.ts +0 -1
- package/dist/services/web/web-artifact-paths.js +0 -1
- package/dist/services/web/web-client.d.ts +0 -1
- package/dist/services/web/web-daemon-service.js +0 -1
- package/dist/services/web/web-fallback.d.ts +0 -1
- package/dist/services/web/web-fallback.js +0 -1
- package/dist/services/web/web-install-service.js +0 -1
- package/dist/services/web/web-login-profile.js +0 -1
- package/dist/services/web/web-protocol.d.ts +0 -1
- package/dist/services/web/web-protocol.js +0 -1
- package/dist/services/web/web-status-report.js +0 -1
- package/dist/services/workflow/artifact-paths.js +0 -3
- package/dist/services/workflow/autonomous-resume-writer.js +0 -2
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
- package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
- package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
- package/dist/services/workflow/pipeline-verify-service.js +0 -15
- package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
- package/dist/services/workflow/pipeline-verify-types.js +0 -2
- package/dist/services/workflow/plan-reader.d.ts +0 -1
- package/dist/services/workflow/plan-reader.js +0 -5
- package/dist/services/workflow/plan-refresher.js +0 -2
- package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
- package/dist/services/workflow/plan-trigger-detector.js +0 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
- package/dist/services/workflow/workflow-autonomous-service.js +0 -2
- package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
- package/dist/services/workflow/workflow-autonomous-types.js +0 -2
- package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
- package/dist/services/workflow/workflow-graph-types.js +0 -1
- package/dist/services/workflow/workflow-router-service.js +0 -4
- package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
- package/dist/services/workflow/workflow-skip-service.js +0 -1
- package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-lint.js +0 -2
- package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
- package/dist/services/workflow/workflow-spec-types.js +0 -1
- package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-yaml.js +0 -2
- package/dist/services/workflow/workflow-spec.js +0 -1
- package/dist/services/workflow/workflow-state-store.js +0 -1
- package/dist/services/workspace/claude-settings-template.d.ts +0 -4
- package/dist/services/workspace/claude-settings-template.js +0 -4
- package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
- package/dist/services/workspace/migrate-service.js +0 -8
- package/dist/services/workspace/migrate-types.d.ts +0 -4
- package/dist/services/workspace/migrate-types.js +0 -1
- package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
- package/dist/services/workspace/reconcile-migrate.js +0 -5
- package/dist/services/workspace/reconcile-service.d.ts +0 -3
- package/dist/services/workspace/reconcile-service.js +0 -7
- package/dist/services/workspace/reconcile-types.d.ts +0 -5
- package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
- package/dist/services/workspace/sid-naming-guard.js +0 -1
- package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
- package/dist/services/workspace/templates/project-scan/index.js +0 -3
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
- package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
- package/dist/services/workspace/workspace-service.d.ts +0 -7
- package/dist/services/workspace/workspace-service.js +1 -17
- package/dist/services/worktree/playwright-profile.js +0 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
- package/dist/services/worktree/worktree-lease-types.js +0 -1
- package/dist/services/worktree/worktree-lease.d.ts +0 -2
- package/dist/services/worktree/worktree-lease.js +0 -2
- package/dist/shared/format-md-compact.d.ts +0 -2
- package/dist/shared/format-md-compact.js +0 -2
- package/dist/shared/incrementing-number.d.ts +0 -1
- package/dist/shared/incrementing-number.js +0 -1
- package/dist/shared/path-utils.d.ts +0 -1
- package/dist/shared/path-utils.js +0 -1
- package/dist/shared/runtime-root.d.ts +0 -1
- package/dist/shared/runtime-root.js +0 -1
- package/dist/shared/stale-policy.d.ts +0 -1
- package/dist/shared/stale-policy.js +0 -1
- package/package.json +12 -10
- package/scripts/canonical-store-link.mjs +296 -0
- package/scripts/canonical-store-prune.mjs +131 -0
- package/scripts/canonical-store.mjs +298 -0
- package/scripts/install-skills.mjs +175 -560
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-audit/SKILL.md +3 -3
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -96
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -428
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from '../sqlite/sqlite-driver.js';
|
|
2
2
|
import type { LoopBeeRelation, LoopBeeRelationRole } from './loop-bee-relation-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Low-level SQLite access for the `loop_bee_relation` table. The
|
|
@@ -10,13 +10,12 @@ import type { LoopBeeRelation, LoopBeeRelationRole } from './loop-bee-relation-t
|
|
|
10
10
|
*
|
|
11
11
|
* Defense in depth:
|
|
12
12
|
* - FK constraints enforce loop_release and bee_release referential
|
|
13
|
-
* integrity (
|
|
13
|
+
* integrity (foreign_keys = ON, applied by `openStateDb`).
|
|
14
14
|
* - Partial unique index `WHERE role = 'main'` enforces "at most one
|
|
15
15
|
* main bee per loop" at the storage layer (the service layer adds
|
|
16
16
|
* a friendlier error path on top).
|
|
17
17
|
* - UNIQUE (loop_release_id, bee_release_id) prevents accidental
|
|
18
18
|
* duplicate relations between the same loop and same bee release.
|
|
19
|
-
* - The migration does NOT touch any 4.x `bee_release` column (AC-3).
|
|
20
19
|
* - Lifecycle_status check on loop_release is NOT a DB-level constraint
|
|
21
20
|
* (the retirement rule is enforced in the service layer — see
|
|
22
21
|
* `LoopBeeRelationService.create`) so the DB stays decoupled from
|
|
@@ -27,7 +26,7 @@ import type { LoopBeeRelation, LoopBeeRelationRole } from './loop-bee-relation-t
|
|
|
27
26
|
* database. Used by tests that build their own DB without the
|
|
28
27
|
* openStateDb pipeline. Idempotent.
|
|
29
28
|
*/
|
|
30
|
-
export declare function ensureLoopBeeRelationTable(db:
|
|
29
|
+
export declare function ensureLoopBeeRelationTable(db: SqliteDatabase): void;
|
|
31
30
|
/**
|
|
32
31
|
* Insert a LoopBeeRelation row. The row's `schema_version` is taken from
|
|
33
32
|
* the input (must equal `peaks.loop-bee-relation/1`); `id` and
|
|
@@ -40,14 +39,14 @@ export declare function ensureLoopBeeRelationTable(db: Database.Database): void;
|
|
|
40
39
|
*
|
|
41
40
|
* Returns the persisted row (with `id` filled in).
|
|
42
41
|
*/
|
|
43
|
-
export declare function insertLoopBeeRelation(db:
|
|
42
|
+
export declare function insertLoopBeeRelation(db: SqliteDatabase, row: Omit<LoopBeeRelation, 'id' | 'created_at'>): LoopBeeRelation;
|
|
44
43
|
/** Read a single LoopBeeRelation row by id; returns undefined if absent. */
|
|
45
|
-
export declare function getLoopBeeRelation(db:
|
|
44
|
+
export declare function getLoopBeeRelation(db: SqliteDatabase, id: number): LoopBeeRelation | undefined;
|
|
46
45
|
/** List LoopBeeRelation rows for a given loop_release_id (optionally filtered by role). */
|
|
47
|
-
export declare function listLoopBeeRelationsByLoop(db:
|
|
46
|
+
export declare function listLoopBeeRelationsByLoop(db: SqliteDatabase, loop_release_id: string, role?: LoopBeeRelationRole): LoopBeeRelation[];
|
|
48
47
|
/** List LoopBeeRelation rows for a given bee_release_id (optionally filtered by role). */
|
|
49
|
-
export declare function listLoopBeeRelationsByBee(db:
|
|
48
|
+
export declare function listLoopBeeRelationsByBee(db: SqliteDatabase, bee_release_id: number, role?: LoopBeeRelationRole): LoopBeeRelation[];
|
|
50
49
|
/** Update the role of an existing relation. Returns the new row, or undefined if absent. */
|
|
51
|
-
export declare function updateLoopBeeRelationRole(db:
|
|
50
|
+
export declare function updateLoopBeeRelationRole(db: SqliteDatabase, id: number, newRole: LoopBeeRelationRole): LoopBeeRelation | undefined;
|
|
52
51
|
/** Remove a LoopBeeRelation row by id. Returns true if a row was deleted. */
|
|
53
|
-
export declare function removeLoopBeeRelation(db:
|
|
52
|
+
export declare function removeLoopBeeRelation(db: SqliteDatabase, id: number): boolean;
|
|
@@ -8,13 +8,12 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Defense in depth:
|
|
10
10
|
* - FK constraints enforce loop_release and bee_release referential
|
|
11
|
-
* integrity (
|
|
11
|
+
* integrity (foreign_keys = ON, applied by `openStateDb`).
|
|
12
12
|
* - Partial unique index `WHERE role = 'main'` enforces "at most one
|
|
13
13
|
* main bee per loop" at the storage layer (the service layer adds
|
|
14
14
|
* a friendlier error path on top).
|
|
15
15
|
* - UNIQUE (loop_release_id, bee_release_id) prevents accidental
|
|
16
16
|
* duplicate relations between the same loop and same bee release.
|
|
17
|
-
* - The migration does NOT touch any 4.x `bee_release` column (AC-3).
|
|
18
17
|
* - Lifecycle_status check on loop_release is NOT a DB-level constraint
|
|
19
18
|
* (the retirement rule is enforced in the service layer — see
|
|
20
19
|
* `LoopBeeRelationService.create`) so the DB stays decoupled from
|
|
@@ -41,7 +41,7 @@ export declare const LOOP_BEE_RELATION_ROLES: readonly LoopBeeRelationRole[];
|
|
|
41
41
|
* `loop_release_id` must match the same kebab-case pattern as
|
|
42
42
|
* `LoopRelease.id` — this is a defensive duplicate of the FK target's
|
|
43
43
|
* shape, but the authoritative check is the FK constraint at insert
|
|
44
|
-
* time (
|
|
44
|
+
* time (with `foreign_keys = ON`, which `openStateDb` applies).
|
|
45
45
|
*
|
|
46
46
|
* `bee_release_id` is a positive integer; matching the
|
|
47
47
|
* `bee_release.id` autoincrement INTEGER PK.
|
|
@@ -40,7 +40,7 @@ export const LOOP_BEE_RELATION_ROLES = [
|
|
|
40
40
|
* `loop_release_id` must match the same kebab-case pattern as
|
|
41
41
|
* `LoopRelease.id` — this is a defensive duplicate of the FK target's
|
|
42
42
|
* shape, but the authoritative check is the FK constraint at insert
|
|
43
|
-
* time (
|
|
43
|
+
* time (with `foreign_keys = ON`, which `openStateDb` applies).
|
|
44
44
|
*
|
|
45
45
|
* `bee_release_id` is a positive integer; matching the
|
|
46
46
|
* `bee_release.id` autoincrement INTEGER PK.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from '../sqlite/sqlite-driver.js';
|
|
2
2
|
import { type LoopRelease, type LoopReleaseInput, type LoopReleaseLifecycleStatus } from './loop-release-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Thin service wrapper around the loop_release store. M1 keeps the
|
|
@@ -7,7 +7,7 @@ import { type LoopRelease, type LoopReleaseInput, type LoopReleaseLifecycleStatu
|
|
|
7
7
|
* deliberately deferred to M2 / M4 / M5 — shipping them here would
|
|
8
8
|
* lock in an interface that the ratchet has not yet ratified.
|
|
9
9
|
*
|
|
10
|
-
* The constructor takes an open
|
|
10
|
+
* The constructor takes an open SQLite database (the existing
|
|
11
11
|
* `peaks state` boundary) so callers do not have to thread a path
|
|
12
12
|
* through this layer; this matches the `retainRelease` pattern in
|
|
13
13
|
* `src/services/skillhub/release-retain.ts`.
|
|
@@ -18,7 +18,7 @@ import { type LoopRelease, type LoopReleaseInput, type LoopReleaseLifecycleStatu
|
|
|
18
18
|
*/
|
|
19
19
|
export declare class LoopReleaseService {
|
|
20
20
|
private readonly db;
|
|
21
|
-
constructor(db:
|
|
21
|
+
constructor(db: SqliteDatabase);
|
|
22
22
|
/**
|
|
23
23
|
* Persist a new LoopRelease row. Re-validates the input via the
|
|
24
24
|
* Zod schema; throws ZodError on failure.
|
|
@@ -7,7 +7,7 @@ import { ensureLoopReleaseTable, insertLoopRelease, getLoopRelease, listLoopRele
|
|
|
7
7
|
* deliberately deferred to M2 / M4 / M5 — shipping them here would
|
|
8
8
|
* lock in an interface that the ratchet has not yet ratified.
|
|
9
9
|
*
|
|
10
|
-
* The constructor takes an open
|
|
10
|
+
* The constructor takes an open SQLite database (the existing
|
|
11
11
|
* `peaks state` boundary) so callers do not have to thread a path
|
|
12
12
|
* through this layer; this matches the `retainRelease` pattern in
|
|
13
13
|
* `src/services/skillhub/release-retain.ts`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from '../sqlite/sqlite-driver.js';
|
|
2
2
|
import type { LoopRelease, LoopReleaseLifecycleStatus } from './loop-release-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Low-level SQLite access for the `loop_release` table. The
|
|
@@ -17,7 +17,6 @@ import type { LoopRelease, LoopReleaseLifecycleStatus } from './loop-release-typ
|
|
|
17
17
|
* INDEX IF NOT EXISTS) so re-running it is safe.
|
|
18
18
|
* - The M3 migration (`004-loop-bee-extension.sql`) is non-breaking:
|
|
19
19
|
* it only adds new columns with DEFAULTs and does NOT touch any
|
|
20
|
-
* pre-existing column on `bee_release` (AC-3).
|
|
21
20
|
*/
|
|
22
21
|
/**
|
|
23
22
|
* Re-apply the loop_release table migration against an already-open
|
|
@@ -31,7 +30,7 @@ import type { LoopRelease, LoopReleaseLifecycleStatus } from './loop-release-typ
|
|
|
31
30
|
* the columns will exist; for a freshly-built DB via this helper the
|
|
32
31
|
* columns are baked in. Either way the schema converges.
|
|
33
32
|
*/
|
|
34
|
-
export declare function ensureLoopReleaseTable(db:
|
|
33
|
+
export declare function ensureLoopReleaseTable(db: SqliteDatabase): void;
|
|
35
34
|
/**
|
|
36
35
|
* Insert a LoopRelease row. The row's `schema_version` is taken from
|
|
37
36
|
* the input (must equal `peaks.loop/1`); `archived_at` is stamped
|
|
@@ -41,15 +40,15 @@ export declare function ensureLoopReleaseTable(db: Database.Database): void;
|
|
|
41
40
|
* same id throws a UNIQUE-constraint error; callers wanting upsert
|
|
42
41
|
* semantics should use a separate path (M5 / crystallization event).
|
|
43
42
|
*/
|
|
44
|
-
export declare function insertLoopRelease(db:
|
|
43
|
+
export declare function insertLoopRelease(db: SqliteDatabase, row: LoopRelease): void;
|
|
45
44
|
/** Read a single LoopRelease row by id; returns undefined if absent. */
|
|
46
|
-
export declare function getLoopRelease(db:
|
|
45
|
+
export declare function getLoopRelease(db: SqliteDatabase, id: string): LoopRelease | undefined;
|
|
47
46
|
/** List LoopRelease rows filtered by lifecycle_status. */
|
|
48
|
-
export declare function listLoopReleasesByStatus(db:
|
|
47
|
+
export declare function listLoopReleasesByStatus(db: SqliteDatabase, status: LoopReleaseLifecycleStatus): LoopRelease[];
|
|
49
48
|
/**
|
|
50
49
|
* Search LoopRelease rows whose `scenario` contains the query string.
|
|
51
50
|
* M1 uses a case-insensitive LIKE; FTS5 promotion is deferred. The
|
|
52
51
|
* query is treated as a literal substring (no regex, no SQL
|
|
53
52
|
* injection surface) — it is escaped via parameter binding.
|
|
54
53
|
*/
|
|
55
|
-
export declare function searchLoopReleasesByScenario(db:
|
|
54
|
+
export declare function searchLoopReleasesByScenario(db: SqliteDatabase, query: string): LoopRelease[];
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
* INDEX IF NOT EXISTS) so re-running it is safe.
|
|
16
16
|
* - The M3 migration (`004-loop-bee-extension.sql`) is non-breaking:
|
|
17
17
|
* it only adds new columns with DEFAULTs and does NOT touch any
|
|
18
|
-
* pre-existing column on `bee_release` (AC-3).
|
|
19
18
|
*/
|
|
20
19
|
/**
|
|
21
20
|
* Re-apply the loop_release table migration against an already-open
|
|
@@ -22,7 +22,6 @@ export declare function toScoreRow(evaluator: string, gateAction: 'pass' | 'warn
|
|
|
22
22
|
export declare const DEFAULT_MONOTONIC_THRESHOLD = 0.05;
|
|
23
23
|
/** Compare `previous` against `current` and report monotonicity.
|
|
24
24
|
*
|
|
25
|
-
* Rules (reflected in `tests/unit/loop/monotonic-guard.test.ts`):
|
|
26
25
|
* - missing previous cycle → skip (`MONOTONIC_NO_PREVIOUS`)
|
|
27
26
|
* - evaluators not present in both cycles → skip that evaluator
|
|
28
27
|
* - score unchanged / up → ok
|
|
@@ -50,7 +50,6 @@ export function toScoreRow(evaluator, gateAction, degraded, observedAtIso = new
|
|
|
50
50
|
export const DEFAULT_MONOTONIC_THRESHOLD = 0.05;
|
|
51
51
|
/** Compare `previous` against `current` and report monotonicity.
|
|
52
52
|
*
|
|
53
|
-
* Rules (reflected in `tests/unit/loop/monotonic-guard.test.ts`):
|
|
54
53
|
* - missing previous cycle → skip (`MONOTONIC_NO_PREVIOUS`)
|
|
55
54
|
* - evaluators not present in both cycles → skip that evaluator
|
|
56
55
|
* - score unchanged / up → ok
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// `peaks memory ingest` — pull memories written by the IDE-side agent into
|
|
3
3
|
// the peaks-owned store.
|
|
4
4
|
//
|
|
5
|
-
// Slice 2026-09-09-memory-system-overhaul (A). Before this, "沉淀记忆" in a
|
|
6
5
|
// peaks-code workflow landed in Claude Code's own per-project memory dir
|
|
7
6
|
// (`~/.claude/projects/<hash>/memory/`) and never reached `.peaks/memory/`
|
|
8
7
|
// — a split-brain write path with no single authority.
|
|
@@ -4,7 +4,6 @@ export type ProjectContextSection = {
|
|
|
4
4
|
body: string;
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
|
-
* Slice 2026-07-15-project-scan-bootstrap (G1 + G2):
|
|
8
7
|
* generateProjectContext now also bootstraps the project-level
|
|
9
8
|
* `.peaks/project-scan/` artifact set. The envelope is returned
|
|
10
9
|
* alongside the context so `peaks project context` can surface
|
|
@@ -151,7 +151,6 @@ export async function generateProjectContext(projectRoot) {
|
|
|
151
151
|
content = header + '\n' + sessionHistory + '\n';
|
|
152
152
|
}
|
|
153
153
|
writeFileSync(contextPath, content, 'utf8');
|
|
154
|
-
// Slice 2026-07-15-project-scan-bootstrap (G1 + G2):
|
|
155
154
|
// After writing PROJECT.md, also bootstrap `.peaks/project-scan/`
|
|
156
155
|
// (project-scan.md + 4 bundled audit/business templates). Idempotent
|
|
157
156
|
// — re-running this call does not overwrite existing files (unless
|
|
@@ -20,7 +20,6 @@ export interface ReindexUnclassified {
|
|
|
20
20
|
export interface ReindexOrphanEntry {
|
|
21
21
|
name: string;
|
|
22
22
|
kind: string;
|
|
23
|
-
/** The `sourcePath` recorded in the previous index that no longer exists on disk. */
|
|
24
23
|
sourcePath: string;
|
|
25
24
|
}
|
|
26
25
|
/**
|
|
@@ -49,7 +48,6 @@ export interface MemoryReindexReport {
|
|
|
49
48
|
unclassified: ReindexUnclassified[];
|
|
50
49
|
/** Distinct files that resolve to the same index name — reported, never overwritten. */
|
|
51
50
|
nameConflicts: ReindexNameConflict[];
|
|
52
|
-
/** Previous index entries whose `sourcePath` no longer exists (error-class drift). */
|
|
53
51
|
orphanIndex: ReindexOrphanEntry[];
|
|
54
52
|
/** Files on disk that the rebuilt index does not contain (warn-class drift). */
|
|
55
53
|
orphanDisk: string[];
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// the markdown files on disk, plus regeneration of the human/LLM-facing
|
|
4
4
|
// `MEMORY.md` index and a drift report.
|
|
5
5
|
//
|
|
6
|
-
// Why this exists (slice 2026-09-09-memory-system-overhaul, B):
|
|
7
6
|
// - `peaks memory extract` only ever wrote memories FROM artifacts; it
|
|
8
7
|
// never re-scanned files already on disk, and there was no rebuild
|
|
9
8
|
// command. 78 top-level files were absent from index.json.
|
|
@@ -29,6 +29,5 @@ export declare function readProjectMemories(projectRoot: string): ProjectMemoryR
|
|
|
29
29
|
* Read a single project memory's full body by name. Returns null when
|
|
30
30
|
* the memory does not exist. The on-disk body is returned verbatim
|
|
31
31
|
* (pretty). The CLI layer applies `formatMdCompact` when `format: 'compact'`
|
|
32
|
-
* is requested. Slice 023 (R3).
|
|
33
32
|
*/
|
|
34
33
|
export declare function readProjectMemoryBody(projectRoot: string, name: string): ProjectMemoryShowResult | null;
|
|
@@ -145,7 +145,6 @@ export function readProjectMemories(projectRoot) {
|
|
|
145
145
|
* Read a single project memory's full body by name. Returns null when
|
|
146
146
|
* the memory does not exist. The on-disk body is returned verbatim
|
|
147
147
|
* (pretty). The CLI layer applies `formatMdCompact` when `format: 'compact'`
|
|
148
|
-
* is requested. Slice 023 (R3).
|
|
149
148
|
*/
|
|
150
149
|
export function readProjectMemoryBody(projectRoot, name) {
|
|
151
150
|
const normalizedRoot = normalizeRoot(projectRoot);
|
|
@@ -7,7 +7,7 @@ export type { ExtractedMemoryBlocks } from './parsers/markdown-pure.js';
|
|
|
7
7
|
export { parseBlock, parseBlockResult, parseMemoryFrontmatter, parseStoredMemoryFile, renderMemoryFile, resolveMemoryKind, resolveMemoryName, slugify } from './parsers/frontmatter.js';
|
|
8
8
|
export type { MemoryKindResolution, MemoryKindSource, MemoryNameResolution, MemoryNameSource, ParsedMemoryFrontmatter } from './parsers/frontmatter.js';
|
|
9
9
|
export { assertInsideProject, assertSafeProjectMemoryDir, assertSafeSessionDir, normalizeRealRoot, normalizeRoot, realPathOrThrow, resolveProjectPath, safeRealpath } from './store/paths.js';
|
|
10
|
-
export { assertSafeMemory, assertSafeMemoryFileContent, findSensitiveMemoryTitleTerm, hasSensitiveMemoryContent, SENSITIVE_MEMORY_CHECKS, UnsafeMemoryError, writeNewFile } from './store/atomic-write.js';
|
|
10
|
+
export { assertSafeMemory, assertSafeMemoryFileContent, findSensitiveMemoryContentRule, findSensitiveMemoryTitleTerm, hasSensitiveMemoryContent, SENSITIVE_MEMORY_CHECKS, UnsafeMemoryError, writeNewFile } from './store/atomic-write.js';
|
|
11
11
|
export { ensureMemoryBootstrap, emptyByKind, emptyIndex, listMarkdownFiles, readProjectMemories, readProjectMemoryBody } from './index/search.js';
|
|
12
12
|
export { buildMemoryIndex, generateMemoryIndexFile, readExistingIndex, readMemoryFileMtime, readMemoryIndex, readStoredMemoryNames } from './index/ranking.js';
|
|
13
13
|
export { executeMemoryReindex, renderMemoryMarkdown, KIND_ORDER, MEMORY_MD_BANNER, MEMORY_MD_FILENAME } from './index/reindex.js';
|
|
@@ -19,7 +19,7 @@ export { describeMemoryBlockDrops, describeSessionScanFailures, summarizeBackupR
|
|
|
19
19
|
export { parseBlock, parseBlockResult, parseMemoryFrontmatter, parseStoredMemoryFile, renderMemoryFile, resolveMemoryKind, resolveMemoryName, slugify } from './parsers/frontmatter.js';
|
|
20
20
|
// Store: path safety + sensitive content
|
|
21
21
|
export { assertInsideProject, assertSafeProjectMemoryDir, assertSafeSessionDir, normalizeRealRoot, normalizeRoot, realPathOrThrow, resolveProjectPath, safeRealpath } from './store/paths.js';
|
|
22
|
-
export { assertSafeMemory, assertSafeMemoryFileContent, findSensitiveMemoryTitleTerm, hasSensitiveMemoryContent, SENSITIVE_MEMORY_CHECKS, UnsafeMemoryError, writeNewFile } from './store/atomic-write.js';
|
|
22
|
+
export { assertSafeMemory, assertSafeMemoryFileContent, findSensitiveMemoryContentRule, findSensitiveMemoryTitleTerm, hasSensitiveMemoryContent, SENSITIVE_MEMORY_CHECKS, UnsafeMemoryError, writeNewFile } from './store/atomic-write.js';
|
|
23
23
|
// Index: search / ranking / dispatch
|
|
24
24
|
export { ensureMemoryBootstrap, emptyByKind, emptyIndex, listMarkdownFiles, readProjectMemories, readProjectMemoryBody } from './index/search.js';
|
|
25
25
|
export { buildMemoryIndex, generateMemoryIndexFile, readExistingIndex, readMemoryFileMtime, readMemoryIndex, readStoredMemoryNames } from './index/ranking.js';
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* `--kind` help text all derive from this tuple. Adding a kind here is the
|
|
7
7
|
* only edit required; TypeScript then forces `MEMORY_KIND_TIER` to cover it.
|
|
8
8
|
*
|
|
9
|
-
* Slice 2026-09-10-memory-vocab-and-rotate (E): the original 8 kinds are
|
|
10
9
|
* unchanged. The 13 appended kinds were observed on disk with real values
|
|
11
10
|
* that the index schema rejected (`peaks memory reindex` reported them as
|
|
12
11
|
* `unrecognized kind value`). Accepting them moves those files into the
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
* `--kind` help text all derive from this tuple. Adding a kind here is the
|
|
18
18
|
* only edit required; TypeScript then forces `MEMORY_KIND_TIER` to cover it.
|
|
19
19
|
*
|
|
20
|
-
* Slice 2026-09-10-memory-vocab-and-rotate (E): the original 8 kinds are
|
|
21
20
|
* unchanged. The 13 appended kinds were observed on disk with real values
|
|
22
21
|
* that the index schema rejected (`peaks memory reindex` reported them as
|
|
23
22
|
* `unrecognized kind value`). Accepting them moves those files into the
|
|
@@ -36,7 +36,6 @@ export interface ParsedMemoryFrontmatter {
|
|
|
36
36
|
* 3. top-level `type:` — tolerated by the pre-existing trim-based reader
|
|
37
37
|
* 4. `none` — reported as unclassified; never invented
|
|
38
38
|
*
|
|
39
|
-
* Slice 2026-09-09-memory-system-overhaul (B): before this helper, files
|
|
40
39
|
* using a top-level `kind:` were silently dropped by the reader (defect
|
|
41
40
|
* #2). Falling through to `kind:` / `type:` is a strict superset of the
|
|
42
41
|
* old behaviour — no previously-indexed file changes kind.
|
|
@@ -35,7 +35,6 @@ export { parseBlock, parseBlockResult, renderMemoryFile, slugify, VALID_MEMORY_K
|
|
|
35
35
|
* 3. top-level `type:` — tolerated by the pre-existing trim-based reader
|
|
36
36
|
* 4. `none` — reported as unclassified; never invented
|
|
37
37
|
*
|
|
38
|
-
* Slice 2026-09-09-memory-system-overhaul (B): before this helper, files
|
|
39
38
|
* using a top-level `kind:` were silently dropped by the reader (defect
|
|
40
39
|
* #2). Falling through to `kind:` / `type:` is a strict superset of the
|
|
41
40
|
* old behaviour — no previously-indexed file changes kind.
|
|
@@ -24,6 +24,12 @@ export declare const SENSITIVE_MEMORY_CHECKS: {
|
|
|
24
24
|
* a value — so echoing it into the error envelope cannot leak anything.
|
|
25
25
|
*/
|
|
26
26
|
export declare function findSensitiveMemoryTitleTerm(title: string): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Which content rule refused this text — the id, never the match. A rule whose
|
|
29
|
+
* candidate fails `shaped` does not stop the scan: a later rule may still fire,
|
|
30
|
+
* exactly as a later alternative in the old `||` chain would have.
|
|
31
|
+
*/
|
|
32
|
+
export declare function findSensitiveMemoryContentRule(content: string): string | null;
|
|
27
33
|
export declare function hasSensitiveMemoryContent(content: string): boolean;
|
|
28
34
|
/**
|
|
29
35
|
* The refusal `assertSafeMemory` raises: the check that fired and the term it
|
|
@@ -42,19 +48,25 @@ export declare function hasSensitiveMemoryContent(content: string): boolean;
|
|
|
42
48
|
* `check` for the same reason — a substring test against a message whose words
|
|
43
49
|
* can be rewritten is not a routing rule, it is a guess.
|
|
44
50
|
*
|
|
45
|
-
* NOTHING HERE WEAKENS THE REDACTOR.
|
|
46
|
-
*
|
|
47
|
-
*
|
|
51
|
+
* NOTHING HERE WEAKENS THE REDACTOR. Both scans put a NAME in this field, never
|
|
52
|
+
* a match: the title term comes from `SENSITIVE_PROSE_TERMS` and the content
|
|
53
|
+
* value from the closed id list in `SENSITIVE_CONTENT_RULES`, so no credential
|
|
54
|
+
* can reach an envelope through it. The redactor's guarantee over `message` is
|
|
55
|
+
* intact and is pinned by the cases in
|
|
48
56
|
* `tests/unit/services/memory/memory-title-sensitive-scan.test.ts`.
|
|
49
57
|
*/
|
|
50
58
|
export declare class UnsafeMemoryError extends Error {
|
|
51
59
|
/** One of `SENSITIVE_MEMORY_CHECKS` — which rule refused the write. */
|
|
52
60
|
readonly check: string;
|
|
53
61
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
62
|
+
* WHAT matched, as a name rather than a value: the credential term for the
|
|
63
|
+
* title scan, the rule id for the content scan, `null` only for the metadata
|
|
64
|
+
* key scan (whose predicate answers by a config-key vocabulary the memory
|
|
65
|
+
* metadata never contains — see the note on `assertSafeMemory`).
|
|
66
|
+
*
|
|
67
|
+
* It is never the match itself: for most content patterns the match IS the
|
|
68
|
+
* credential (`ghp_…`, the PEM header, the JWT), which is why their messages
|
|
69
|
+
* describe the pattern family and never echo the text.
|
|
58
70
|
*/
|
|
59
71
|
readonly matchedTerm: string | null;
|
|
60
72
|
constructor(check: string, detail: string, matchedTerm?: string | null);
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
// - `hasSensitiveMemoryContent` — pattern check for api keys, tokens,
|
|
5
5
|
// PEM private keys, JWTs, GitHub / GitLab tokens, AWS access keys. Used
|
|
6
6
|
// both by the extract path (`assertSafeMemory`) and the backup path
|
|
7
|
-
// (`assertSafeMemoryFileContent`).
|
|
7
|
+
// (`assertSafeMemoryFileContent`). It is a wrapper over
|
|
8
|
+
// `findSensitiveMemoryContentRule`, which answers the same question and
|
|
9
|
+
// names the rule that answered it.
|
|
8
10
|
// - `findSensitiveMemoryTitleTerm` — the PROSE predicate for
|
|
9
11
|
// `memory.title`. It is deliberately NOT the config-key predicate: see
|
|
10
12
|
// the block comment above it (slice C0).
|
|
@@ -136,17 +138,89 @@ export function findSensitiveMemoryTitleTerm(title) {
|
|
|
136
138
|
}
|
|
137
139
|
return null;
|
|
138
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Is this string shaped like a credential VALUE rather than like prose?
|
|
143
|
+
*
|
|
144
|
+
* WHY THIS EXISTS. The value-carrying patterns used to fire on the SEPARATOR
|
|
145
|
+
* alone: `password:` was a match whether or not anything followed it, so a
|
|
146
|
+
* memory writing `password: the field label in the form` or `myApiKey: from
|
|
147
|
+
* env` was refused for describing an interface. Two documents were killed that
|
|
148
|
+
* way before anyone could say which of ten rules had fired — and the rules
|
|
149
|
+
* could not be tightened, because nothing in them described the VALUE.
|
|
150
|
+
*
|
|
151
|
+
* THE TEST, AND WHAT IT COSTS. A value is credential-shaped when it is at least
|
|
152
|
+
* 5 characters AND carries a digit or one of `_ + / =`. `hunter2`,
|
|
153
|
+
* `abcdef123456`, `supp3rSecret` and every base64-ish token pass;
|
|
154
|
+
* `Authorization`, `the`, `from`, `abc`, `well-designed` fail. Given up
|
|
155
|
+
* deliberately: an all-letter opaque run (`bearer abcdefghijklmnopq`) is no
|
|
156
|
+
* longer caught, and neither is a 4-character real password. The alternative was
|
|
157
|
+
* a rule that cannot tell an English word from a random string, and the
|
|
158
|
+
* complaint on record is about English words. Digits are the discriminator
|
|
159
|
+
* rather than `-` and `.` because hyphens and full stops belong to ordinary
|
|
160
|
+
* prose; provider tokens in the wild carry digits, and the prefix-shaped
|
|
161
|
+
* patterns (`ghp_`, `AKIA`, the PEM header, the JWT) keep their own length floors
|
|
162
|
+
* and are untouched by this predicate.
|
|
163
|
+
*/
|
|
164
|
+
const MIN_VALUE_CHARS = 5;
|
|
165
|
+
function isCredentialShapedValue(value) {
|
|
166
|
+
return value.length >= MIN_VALUE_CHARS && /[0-9_+/=]/.test(value);
|
|
167
|
+
}
|
|
168
|
+
/** A placeholder names where a value will go; it is not itself a secret. */
|
|
169
|
+
const PLACEHOLDER_VALUE = /^[<[{(]|^(?:your|the|an|some|my|example|placeholder|todo|fake)/i;
|
|
170
|
+
function isPlaceholderValue(value) {
|
|
171
|
+
return (PLACEHOLDER_VALUE.test(value) ||
|
|
172
|
+
/(?:replace|insert|provide|redact|<[a-z_]+>)/i.test(value) ||
|
|
173
|
+
/^[A-Za-z]+(?:_[A-Z*]+)+$/.test(value) // API_KEY_HERE-style constant
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
const SENSITIVE_CONTENT_RULES = [
|
|
177
|
+
{
|
|
178
|
+
id: 'credential-assignment',
|
|
179
|
+
pattern: /\b(?:api[_-]?key|access[_-]?token|auth[_-]?token|refresh[_-]?token|secret|password|passwd|credential|token|bearer)\s*[:=]\s*([^\s,;"'`]+)/gi,
|
|
180
|
+
shaped: (value) => isCredentialShapedValue(value) && !isPlaceholderValue(value)
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
id: 'authorization-bearer-header',
|
|
184
|
+
pattern: /\bauthorization\s*:\s*bearer\s+([^\s,;"'`]+)/gi,
|
|
185
|
+
shaped: (value) => isCredentialShapedValue(value) && !isPlaceholderValue(value)
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: 'bearer-value',
|
|
189
|
+
pattern: /\bbearer\s+([A-Za-z0-9._~+/=-]{8,})/gi,
|
|
190
|
+
shaped: (value) => isCredentialShapedValue(value) && !isPlaceholderValue(value)
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
id: 'sk-prefixed-key',
|
|
194
|
+
// The SUFFIX is captured, not the whole `sk-…`: `sk-abcdef is the prefix`
|
|
195
|
+
// is a sentence about the scheme, and the shape test on the suffix is what
|
|
196
|
+
// tells it from `sk-abcdef1234567890`.
|
|
197
|
+
pattern: /\bsk-([A-Za-z0-9_-]{6,})\b/g,
|
|
198
|
+
shaped: (value) => isCredentialShapedValue(value) && !isPlaceholderValue(value)
|
|
199
|
+
},
|
|
200
|
+
{ id: 'gh-prefixed-key', pattern: /\bgh[pousr]_[A-Za-z0-9_]{20,}\b/g },
|
|
201
|
+
{ id: 'github-pat', pattern: /\bgithub_pat_[A-Za-z0-9_]{20,}\b/g },
|
|
202
|
+
{ id: 'glpat-prefixed-key', pattern: /\bglpat-[A-Za-z0-9_-]{20,}\b/g },
|
|
203
|
+
{ id: 'akia-prefixed-key', pattern: /\bAKIA[0-9A-Z]{16}\b/g },
|
|
204
|
+
{ id: 'pem-private-key', pattern: /-----BEGIN [A-Z ]*PRIVATE KEY-----/g },
|
|
205
|
+
{ id: 'jwt-shaped-value', pattern: /\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g }
|
|
206
|
+
];
|
|
207
|
+
/**
|
|
208
|
+
* Which content rule refused this text — the id, never the match. A rule whose
|
|
209
|
+
* candidate fails `shaped` does not stop the scan: a later rule may still fire,
|
|
210
|
+
* exactly as a later alternative in the old `||` chain would have.
|
|
211
|
+
*/
|
|
212
|
+
export function findSensitiveMemoryContentRule(content) {
|
|
213
|
+
for (const rule of SENSITIVE_CONTENT_RULES) {
|
|
214
|
+
for (const match of content.matchAll(rule.pattern)) {
|
|
215
|
+
const candidate = match[1] ?? match[0];
|
|
216
|
+
if (rule.shaped === undefined || rule.shaped(candidate))
|
|
217
|
+
return rule.id;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
139
222
|
export function hasSensitiveMemoryContent(content) {
|
|
140
|
-
return (
|
|
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));
|
|
223
|
+
return findSensitiveMemoryContentRule(content) !== null;
|
|
150
224
|
}
|
|
151
225
|
/**
|
|
152
226
|
* The refusal `assertSafeMemory` raises: the check that fired and the term it
|
|
@@ -165,19 +239,25 @@ export function hasSensitiveMemoryContent(content) {
|
|
|
165
239
|
* `check` for the same reason — a substring test against a message whose words
|
|
166
240
|
* can be rewritten is not a routing rule, it is a guess.
|
|
167
241
|
*
|
|
168
|
-
* NOTHING HERE WEAKENS THE REDACTOR.
|
|
169
|
-
*
|
|
170
|
-
*
|
|
242
|
+
* NOTHING HERE WEAKENS THE REDACTOR. Both scans put a NAME in this field, never
|
|
243
|
+
* a match: the title term comes from `SENSITIVE_PROSE_TERMS` and the content
|
|
244
|
+
* value from the closed id list in `SENSITIVE_CONTENT_RULES`, so no credential
|
|
245
|
+
* can reach an envelope through it. The redactor's guarantee over `message` is
|
|
246
|
+
* intact and is pinned by the cases in
|
|
171
247
|
* `tests/unit/services/memory/memory-title-sensitive-scan.test.ts`.
|
|
172
248
|
*/
|
|
173
249
|
export class UnsafeMemoryError extends Error {
|
|
174
250
|
/** One of `SENSITIVE_MEMORY_CHECKS` — which rule refused the write. */
|
|
175
251
|
check;
|
|
176
252
|
/**
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
253
|
+
* WHAT matched, as a name rather than a value: the credential term for the
|
|
254
|
+
* title scan, the rule id for the content scan, `null` only for the metadata
|
|
255
|
+
* key scan (whose predicate answers by a config-key vocabulary the memory
|
|
256
|
+
* metadata never contains — see the note on `assertSafeMemory`).
|
|
257
|
+
*
|
|
258
|
+
* It is never the match itself: for most content patterns the match IS the
|
|
259
|
+
* credential (`ghp_…`, the PEM header, the JWT), which is why their messages
|
|
260
|
+
* describe the pattern family and never echo the text.
|
|
181
261
|
*/
|
|
182
262
|
matchedTerm;
|
|
183
263
|
constructor(check, detail, matchedTerm = null) {
|
|
@@ -193,19 +273,28 @@ export function assertSafeMemory(memory) {
|
|
|
193
273
|
if (containsSensitiveConfigValue(metadata)) {
|
|
194
274
|
throw new UnsafeMemoryError(SENSITIVE_MEMORY_CHECKS.metadataKey, 'matched a credential key in the memory metadata');
|
|
195
275
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
//
|
|
276
|
+
const contentRule = findSensitiveMemoryContentRule(content);
|
|
277
|
+
if (contentRule !== null) {
|
|
278
|
+
// The matched TEXT is deliberately NOT echoed, in the message or in the
|
|
279
|
+
// error's fields: for most of these patterns the match IS the credential, so
|
|
199
280
|
// copying it would write the value this scan exists to keep out.
|
|
200
281
|
//
|
|
282
|
+
// The RULE ID is echoed, and it is echoed in `matchedTerm` rather than only
|
|
283
|
+
// in prose. This used to be the one refusal that could not say what fired:
|
|
284
|
+
// the predicate returned a boolean, so the caller had no match to report and
|
|
285
|
+
// `matchedTerm` was `null` by construction while the title scan named its
|
|
286
|
+
// term. A reader then had to guess across documents which of ten shapes had
|
|
287
|
+
// refused them. An id from a closed vocabulary leaks nothing and answers the
|
|
288
|
+
// question, so the two paths are diagnosable the same way.
|
|
289
|
+
//
|
|
201
290
|
// The DETAIL is worded around the envelope redactor's vocabulary on
|
|
202
291
|
// purpose. Its catch-all (`/(secret|token|password|api[-_ ]?key)/gi`)
|
|
203
292
|
// rewrites those four words wherever they appear in a failure message, so
|
|
204
293
|
// naming the pattern families in their own words arrives on the CLI as
|
|
205
294
|
// "an [redacted] / [redacted] / [redacted] assignment" — a remedy sentence
|
|
206
|
-
// redacted into uselessness by the very policy it agrees with.
|
|
207
|
-
//
|
|
208
|
-
throw new UnsafeMemoryError(SENSITIVE_MEMORY_CHECKS.content,
|
|
295
|
+
// redacted into uselessness by the very policy it agrees with. The rule ids
|
|
296
|
+
// above are spelled to survive that pass.
|
|
297
|
+
throw new UnsafeMemoryError(SENSITIVE_MEMORY_CHECKS.content, `matched the credential pattern "${contentRule}" in the memory content`, contentRule);
|
|
209
298
|
}
|
|
210
299
|
const titleTerm = findSensitiveMemoryTitleTerm(memory.title);
|
|
211
300
|
if (titleTerm !== null) {
|
|
@@ -213,8 +302,13 @@ export function assertSafeMemory(memory) {
|
|
|
213
302
|
}
|
|
214
303
|
}
|
|
215
304
|
export function assertSafeMemoryFileContent(content) {
|
|
216
|
-
|
|
217
|
-
|
|
305
|
+
const rule = findSensitiveMemoryContentRule(content);
|
|
306
|
+
if (rule !== null) {
|
|
307
|
+
// The id travels here too. This path has no `UnsafeMemoryError` (it is not
|
|
308
|
+
// the extract gate, and its callers do not route on `check`), but a backup
|
|
309
|
+
// refusal that cannot say which shape fired is the same dead end as the one
|
|
310
|
+
// the extract path used to be.
|
|
311
|
+
throw new Error(`Refusing to back up sensitive memory content (rule: ${rule})`);
|
|
218
312
|
}
|
|
219
313
|
}
|
|
220
314
|
export function writeNewFile(path, content) {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Thin back-compat shim.
|
|
3
3
|
//
|
|
4
4
|
// The original 1032-line project-memory-service.ts was split on 2026-07-26
|
|
5
|
-
// (rid-003) into the `./project-memory-service/` submodule:
|
|
6
5
|
//
|
|
7
6
|
// - parsers/frontmatter.ts — YAML frontmatter parse + render
|
|
8
7
|
// - parsers/markdown-pure.ts — extract / summarize (pure)
|
|
@@ -5,7 +5,6 @@ const ASSISTED_CONFIRM_TRANSITIONS = new Set([
|
|
|
5
5
|
'qa:verdict-issued'
|
|
6
6
|
]);
|
|
7
7
|
export function requiresConfirmation(mode, transitionKey) {
|
|
8
|
-
// Slice 2026-09-09-mode-consolidation: `swarm` removed as a mode; the
|
|
9
8
|
// two auto-proceed peers are `full-auto` and `24h`.
|
|
10
9
|
if (mode === 'full-auto' || mode === '24h') {
|
|
11
10
|
return false;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Slice 2026-09-09-mode-consolidation (Slice D): one read for the whole
|
|
3
2
|
* stacked mode picture.
|
|
4
3
|
*
|
|
5
4
|
* The autonomy model has two layers that used to be read by nothing in
|
|
@@ -82,7 +81,6 @@ export declare function resolvePresenceMode(projectRoot: string): ResolvedPresen
|
|
|
82
81
|
* documented contract.
|
|
83
82
|
*
|
|
84
83
|
* 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
84
|
* mode): keep partial while the mode says `24h` even in
|
|
87
85
|
* `WAITING_USER`, and keep it when only the state machine knows.
|
|
88
86
|
* Nothing that resolved to `partial` before resolves to `standard`
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Slice 2026-09-09-mode-consolidation (Slice D): one read for the whole
|
|
3
2
|
* stacked mode picture.
|
|
4
3
|
*
|
|
5
4
|
* The autonomy model has two layers that used to be read by nothing in
|
|
@@ -95,7 +94,6 @@ function is24hRunEngaged(projectRoot) {
|
|
|
95
94
|
* documented contract.
|
|
96
95
|
*
|
|
97
96
|
* 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
97
|
* mode): keep partial while the mode says `24h` even in
|
|
100
98
|
* `WAITING_USER`, and keep it when only the state machine knows.
|
|
101
99
|
* Nothing that resolved to `partial` before resolves to `standard`
|