peaks-loop 4.1.1 → 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 +50 -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/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 +0 -4
- 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/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 +0 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.js +0 -9
- 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 +0 -1
- 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 +0 -2
- 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 +0 -7
- 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 +0 -2
- package/dist/services/code/mode-gate-types.js +0 -1
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +0 -5
- 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-review/ecc-bridge.d.ts +0 -1
- 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/comment-audit.d.ts +15 -4
- package/dist/services/comments/comment-audit.js +25 -4
- package/dist/services/comments/comment-citations.d.ts +8 -2
- package/dist/services/comments/comment-citations.js +31 -33
- package/dist/services/comments/comment-hygiene.d.ts +29 -3
- package/dist/services/comments/comment-hygiene.js +40 -3
- package/dist/services/comments/comment-prune.js +52 -4
- 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 +22 -0
- package/dist/services/comments/prune-apply.js +69 -2
- 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 -1
- package/dist/services/log/retention.js +0 -1
- 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/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.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 +0 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +0 -4
- 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 +0 -2
- package/dist/services/prd/handoff-service.js +0 -2
- package/dist/services/prd/handoff-types.d.ts +0 -2
- 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 +0 -1
- package/dist/services/recommendations/installed-capability-detector.js +0 -1
- 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-service.js +0 -1
- 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/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/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 +0 -16
- 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 -383
- package/skills/peaks-audit/SKILL.md +3 -3
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Checks for `.peaks/memory/` health (`L3:l3-memory-health` and siblings).
|
|
3
3
|
*
|
|
4
|
-
* Slice 2026-06-13-repair-pre-existing-test-failures: the
|
|
5
4
|
* production MemoryIndex schema (see
|
|
6
5
|
* `src/services/memory/project-memory-service.ts`) uses
|
|
7
6
|
* `version: 1` as the schema marker, NOT `schema_version`.
|
|
@@ -11,7 +10,6 @@
|
|
|
11
10
|
* When no `.peaks/memory/index.json` exists yet, the check passes
|
|
12
11
|
* (fresh project — no memories have been extracted).
|
|
13
12
|
*
|
|
14
|
-
* Slice 2026-09-09-memory-system-overhaul (D) extends the check with the
|
|
15
13
|
* drift findings the original version could not see. It used to report
|
|
16
14
|
* `ok: true` for "index.json is well-formed JSON; 100 hot + 131 warm" and
|
|
17
15
|
* never looked at coverage, orphans, or unclassified files. It now emits,
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* subdirs that intentionally live under `.peaks/_runtime/`
|
|
7
7
|
* (e.g. `change/`, which routes reviewable artifacts per F3).
|
|
8
8
|
*
|
|
9
|
-
* Slice 2026-06-24-doctor-1xdetector-residual regression net: the
|
|
10
9
|
* reducer MUST exclude `change/` (and other system subdirs added
|
|
11
10
|
* by future F3 changes) — without the exclude-list the doctor
|
|
12
11
|
* flips the summary to fail on every clean workspace, which broke
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* subdirs that intentionally live under `.peaks/_runtime/`
|
|
7
7
|
* (e.g. `change/`, which routes reviewable artifacts per F3).
|
|
8
8
|
*
|
|
9
|
-
* Slice 2026-06-24-doctor-1xdetector-residual regression net: the
|
|
10
9
|
* reducer MUST exclude `change/` (and other system subdirs added
|
|
11
10
|
* by future F3 changes) — without the exclude-list the doctor
|
|
12
11
|
* flips the summary to fail on every clean workspace, which broke
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Check: PATH-scoped `peaks-loop` binary drift
|
|
3
3
|
* (`build:multi-binary-drift`).
|
|
4
4
|
*
|
|
5
|
-
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
6
5
|
* (G3/G4). When more than one `peaks-loop` binary is discoverable on
|
|
7
6
|
* `process.env.PATH` AND the discovered versions disagree, the doctor
|
|
8
7
|
* emits a `PEAKS_MULTI_BINARY_DRIFT` warning. The user-reported
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Check: PATH-scoped `peaks-loop` binary drift
|
|
3
3
|
* (`build:multi-binary-drift`).
|
|
4
4
|
*
|
|
5
|
-
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
6
5
|
* (G3/G4). When more than one `peaks-loop` binary is discoverable on
|
|
7
6
|
* `process.env.PATH` AND the discovered versions disagree, the doctor
|
|
8
7
|
* emits a `PEAKS_MULTI_BINARY_DRIFT` warning. The user-reported
|
|
@@ -210,7 +209,6 @@ function run({ options }) {
|
|
|
210
209
|
// sees the finding in the JSON report AND the check carries
|
|
211
210
|
// `severity: 'warning'` so `buildReport` does NOT count it as a
|
|
212
211
|
// failure when computing `summary.ok`. Slice
|
|
213
|
-
// 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
214
212
|
// repair cycle landed the severity-aware summary so the
|
|
215
213
|
// previously-handwaved "future severity-aware summary can
|
|
216
214
|
// downgrade the doctor exit code" actually fires.
|
|
@@ -236,7 +234,6 @@ function run({ options }) {
|
|
|
236
234
|
];
|
|
237
235
|
}
|
|
238
236
|
}
|
|
239
|
-
// Slice S3b (rid-s3b-doctor-check-typing): `satisfies` instead of a
|
|
240
237
|
// `: DoctorCheckPlugin` annotation — see the identical note in
|
|
241
238
|
// `codegraph-capability.ts`. The annotation widened this object literal
|
|
242
239
|
// to `readonly DoctorCheck[] | Promise<readonly DoctorCheck[]>`, which
|
|
@@ -24,9 +24,7 @@ import { join } from 'node:path';
|
|
|
24
24
|
import { getErrorMessage } from 'peaks-loop-shared/result';
|
|
25
25
|
const SESSION_DIR_PATTERN = /^\d{4}-\d{2}-\d{2}-session-[a-f0-9]+$/;
|
|
26
26
|
/**
|
|
27
|
-
* Slice 007 — per-change-id top-level dir pattern. Matches the
|
|
28
27
|
* F3-canonical (pre-canonicalization) layout the 5 already-shipped
|
|
29
|
-
* slices left behind, e.g. `.peaks/001-2026-06-06-doctor-dist-version-check/`.
|
|
30
28
|
* The pattern is intentionally narrow so it does NOT match the
|
|
31
29
|
* post-F3 system dirs (`_runtime/`, `_dogfood/`, `retrospective/`,
|
|
32
30
|
* `memory/`, `perf-baseline/`, `project-scan/`, `sops/`,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* doctor-service plugin registry (slice rid-004).
|
|
3
2
|
*
|
|
4
3
|
* Holds the fixed-order, code-driven list of `DoctorCheckPlugin`
|
|
5
4
|
* instances that `runDoctor` iterates. The order is the same as the
|
|
@@ -35,7 +34,6 @@ import type { DoctorCheckPlugin } from './types.js';
|
|
|
35
34
|
* Ordered list of doctor check plugins. The order mirrors the legacy
|
|
36
35
|
* monolithic `runDoctor` function body verbatim — DO NOT REORDER
|
|
37
36
|
* without first re-reading the consumer-side tests in
|
|
38
|
-
* `tests/doctor.test.ts` / `tests/doctor/35-checks-aggregate.test.ts`
|
|
39
37
|
* and updating the expected check-id list.
|
|
40
38
|
*/
|
|
41
39
|
export declare const PLUGINS: ReadonlyArray<DoctorCheckPlugin>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* doctor-service plugin registry (slice rid-004).
|
|
3
2
|
*
|
|
4
3
|
* Holds the fixed-order, code-driven list of `DoctorCheckPlugin`
|
|
5
4
|
* instances that `runDoctor` iterates. The order is the same as the
|
|
@@ -56,7 +55,6 @@ import { check as l3MemoryHealth } from './checks/l3-memory-health.js';
|
|
|
56
55
|
* Ordered list of doctor check plugins. The order mirrors the legacy
|
|
57
56
|
* monolithic `runDoctor` function body verbatim — DO NOT REORDER
|
|
58
57
|
* without first re-reading the consumer-side tests in
|
|
59
|
-
* `tests/doctor.test.ts` / `tests/doctor/35-checks-aggregate.test.ts`
|
|
60
58
|
* and updating the expected check-id list.
|
|
61
59
|
*/
|
|
62
60
|
export const PLUGINS = [
|
|
@@ -74,7 +74,6 @@ export type DistVersionComparison = {
|
|
|
74
74
|
};
|
|
75
75
|
export type DistVersionProbe = () => DistVersionComparison;
|
|
76
76
|
/**
|
|
77
|
-
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
78
77
|
* (G3/G4) — probe for the multi-binary drift check. The probe returns
|
|
79
78
|
* the discovered peaks-loop binaries on PATH (with their resolved
|
|
80
79
|
* version + install date) and a `driftDetected` flag. Injected so tests
|
|
@@ -95,16 +94,13 @@ export type WorkspaceLayoutInspection = {
|
|
|
95
94
|
topLevelSessionDirs: string[];
|
|
96
95
|
legacyDotfiles: string[];
|
|
97
96
|
/**
|
|
98
|
-
* Slice 007 — per-change-id top-level dirs (e.g. `.peaks/001-2026-06-06-.../`).
|
|
99
97
|
* The pre-F3 canonical layout put reviewable artifacts under a
|
|
100
98
|
* per-change-id top-level dir; the post-F3 canonical layout
|
|
101
99
|
* consolidates them under `.peaks/_runtime/<sid>/<role>/`. Any
|
|
102
100
|
* leftover per-change-id top-level dir is a regression to flag.
|
|
103
|
-
* Slice 008's migration will consolidate these; until then, the
|
|
104
101
|
* check reports them as `ok: false`.
|
|
105
102
|
*
|
|
106
103
|
* Optional in the type for back-compat with test probes that
|
|
107
|
-
* pre-date the slice 007 broadening; the check itself falls back
|
|
108
104
|
* to an empty array when the field is missing.
|
|
109
105
|
*/
|
|
110
106
|
perChangeIdDirs?: string[];
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
* orchestration loop and the aggregation rule has a single test surface.
|
|
10
10
|
*
|
|
11
11
|
* Severity-aware aggregation (slice
|
|
12
|
-
* 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
13
12
|
* repair cycle): a check with `severity: 'warning'` reports `ok: false`
|
|
14
13
|
* (so operators see the finding in the JSON envelope) but does NOT
|
|
15
14
|
* flip `summary.ok` and therefore does NOT flip the doctor exit code.
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
* orchestration loop and the aggregation rule has a single test surface.
|
|
10
10
|
*
|
|
11
11
|
* Severity-aware aggregation (slice
|
|
12
|
-
* 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
13
12
|
* repair cycle): a check with `severity: 'warning'` reports `ok: false`
|
|
14
13
|
* (so operators see the finding in the JSON envelope) but does NOT
|
|
15
14
|
* flip `summary.ok` and therefore does NOT flip the doctor exit code.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* doctor-service types and shared interfaces (slice rid-004).
|
|
3
2
|
*
|
|
4
3
|
* This module is the public type surface for the code-driven fixed
|
|
5
4
|
* registry of doctor checks. Each check is a `DoctorCheckPlugin`
|
|
@@ -27,7 +26,6 @@ export type { CodegraphManagedPathInfo, CodegraphCapabilityProbe, CodegraphExclu
|
|
|
27
26
|
*
|
|
28
27
|
* Optional in the type for back-compat with older check plugins that
|
|
29
28
|
* pre-date the severity-aware summary (slice
|
|
30
|
-
* 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
31
29
|
* repair cycle). When omitted, the dispatcher treats the check as
|
|
32
30
|
* `'error'` — i.e. `ok: false` escalates the exit code the same way
|
|
33
31
|
* it did before this slice.
|
|
@@ -54,7 +52,6 @@ export type DoctorReport = {
|
|
|
54
52
|
failed: number;
|
|
55
53
|
/**
|
|
56
54
|
* Severity-aware summary (slice
|
|
57
|
-
* 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
58
55
|
* repair cycle): count of findings tagged
|
|
59
56
|
* `severity: 'warning'`. Warnings surface in the JSON envelope
|
|
60
57
|
* (`ok: false`) but do NOT flip `summary.ok` and therefore do
|
|
@@ -101,7 +98,6 @@ export type DoctorOptions = {
|
|
|
101
98
|
/** Injected for the build:dist-version-matches-source check (defaults to compareDistVersion on disk). */
|
|
102
99
|
distVersionProbe?: DistVersionProbe;
|
|
103
100
|
/**
|
|
104
|
-
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
105
101
|
* (G3/G4) — injected for the build:multi-binary-drift check (defaults
|
|
106
102
|
* to inspectMultiBinaryDrift against `process.env.PATH`).
|
|
107
103
|
*/
|
|
@@ -113,7 +109,6 @@ export type DoctorOptions = {
|
|
|
113
109
|
/** Injected for the integration:ecc-hooks-schema-drift check (defaults to defaultEccHooksDriftProbe on disk). */
|
|
114
110
|
eccHooksDriftProbe?: EccHooksDriftProbe;
|
|
115
111
|
/**
|
|
116
|
-
* Slice 2026-06-13-repair-pre-existing-test-failures: injected
|
|
117
112
|
* root for the L3:l3-memory-health check (defaults to
|
|
118
113
|
* `findProjectRoot(process.cwd())`). Tests use this to point the
|
|
119
114
|
* check at a temp dir without monkey-patching `findProjectRoot`.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Thin shim — `doctor-service.ts` (legacy 1309-line file)
|
|
3
|
-
* was split in slice rid-004 into a code-driven fixed-registry
|
|
4
3
|
* tree under `./doctor-service/`. This file remains so the legacy
|
|
5
4
|
* import paths (`from '../services/doctor/doctor-service.js'` and
|
|
6
5
|
* `peaks-loop-doctor/services/doctor/doctor-service` package
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Thin shim — `doctor-service.ts` (legacy 1309-line file)
|
|
3
|
-
* was split in slice rid-004 into a code-driven fixed-registry
|
|
4
3
|
* tree under `./doctor-service/`. This file remains so the legacy
|
|
5
4
|
* import paths (`from '../services/doctor/doctor-service.js'` and
|
|
6
5
|
* `peaks-loop-doctor/services/doctor/doctor-service` package
|
|
@@ -13,7 +12,6 @@
|
|
|
13
12
|
export * from './doctor-service/index.js';
|
|
14
13
|
// Re-export the helper symbols the legacy monolithic doctor-service.ts
|
|
15
14
|
// exposed at the package boundary. These were split into the check
|
|
16
|
-
// modules during rid-004; we re-export here so legacy callers
|
|
17
15
|
// (`import { compareDistVersion } from '../services/doctor/doctor-service.js'`)
|
|
18
16
|
// keep working without modification.
|
|
19
17
|
export { compareDistVersion } from './doctor-service/checks/dist-source-version.js';
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* peaks evidence generate — mechanical per-slice evidence artifact writer.
|
|
3
3
|
*
|
|
4
4
|
* Port of the reference Python prototype
|
|
5
|
-
* `.peaks/_runtime/2026-09-06-session-a87ca4/sc/gen-evidence.py`. It writes the
|
|
6
5
|
* ~11 evidence artifacts required by the rd:qa-handoff / qa:verdict-issued
|
|
7
6
|
* gates plus the verify-pipeline, so the orchestrator no longer hand-writes
|
|
8
7
|
* them per mechanical file-split (or similar) slice.
|
|
@@ -18,7 +17,6 @@
|
|
|
18
17
|
* This paragraph used to send editors to `src/services/workflow/artifact-paths.ts`
|
|
19
18
|
* as the checker of "suffixed security/performance findings". That is no longer
|
|
20
19
|
* true: the `security-findings-<rid>.md` / `performance-findings-<rid>.md` gates
|
|
21
|
-
* were removed in rid `2026-09-14-verify-pipeline-contract-drift` (no
|
|
22
20
|
* `qa:verdict-issued` table names those paths; security and perf evidence is
|
|
23
21
|
* resolved on the RD side at `audit/security-<rid>.md` / `audit/perf-<rid>.md`),
|
|
24
22
|
* and `artifact-paths.ts` has had zero code consumers since. It is not a marker
|
|
@@ -73,7 +71,6 @@ export function parseLineCounts(raw) {
|
|
|
73
71
|
* a hash computed on `frontmatter + body` rather than the body. The
|
|
74
72
|
* `AUDIT_REQUIRES_HANDOFF` gate (a substring check) accepted that file while
|
|
75
73
|
* `readAndVerifyHandoff` in both audit skills returned `null` — the very
|
|
76
|
-
* producer/consumer divergence rid `2026-09-14-handoff-writer-gate-divergence`
|
|
77
74
|
* exists to remove, surviving in a function the same slice edited.
|
|
78
75
|
*/
|
|
79
76
|
function buildHandoff(rid, sid, title, files, lineCounts, gateEvidence) {
|
|
@@ -126,7 +123,6 @@ export async function generateEvidence(options) {
|
|
|
126
123
|
// Both values become path segments below — the rid as a filename, the sid as
|
|
127
124
|
// the session directory. Guard them BEFORE the first mkdir so a rejected run
|
|
128
125
|
// leaves nothing behind. `REQUEST_ID_PATTERN` is the repo's own request-id
|
|
129
|
-
// control (`request-artifact-service.ts`, F-1 slice 025 security); the sid
|
|
130
126
|
// gets the segment check because `--session-id` has no pinned format.
|
|
131
127
|
// Measured before these lines existed: `--rid '../../../pwned'` wrote
|
|
132
128
|
// `.peaks/_runtime/pwned.md`, outside the per-session evidence dir, and a
|
|
@@ -166,14 +162,12 @@ export async function generateEvidence(options) {
|
|
|
166
162
|
// requires `<rid>` in them: every slice in a session shares `rd/` and
|
|
167
163
|
// `audit/`, so writing the ridless name silently destroyed the previous
|
|
168
164
|
// slice's evidence on 2026-09-13 while the gate stayed green (slice
|
|
169
|
-
// `2026-09-14-audit-artifact-rid-scoping`).
|
|
170
165
|
const writes = [
|
|
171
166
|
[join(rdDir, `code-review-${rid}.md`), buildCodeReview(rid, title, files, lineCounts)],
|
|
172
167
|
[join(auditDir, `security-${rid}.md`), buildSecurityReview(rid)],
|
|
173
168
|
// ...but the `config` type is the one whose `rd:qa-handoff` row is
|
|
174
169
|
// `SECURITY_REVIEW` — the genuinely ridless `rd/security-review.md` — and
|
|
175
170
|
// this generator is request-type-agnostic (no `--request-type`). So it
|
|
176
|
-
// writes BOTH names: the rid-scoped one the fanout types resolve
|
|
177
171
|
// (`AUDIT_SECURITY`) and the bare one `config` resolves. Nothing is lost
|
|
178
172
|
// by having both; a `config` slice has nothing else to fall back on, and
|
|
179
173
|
// dropping this write made a `config` slice fail its own gate while the
|
|
@@ -182,7 +176,6 @@ export async function generateEvidence(options) {
|
|
|
182
176
|
[join(rdDir, 'security-review.md'), buildSecurityReview(rid)],
|
|
183
177
|
[join(rdDir, `karpathy-review-${rid}.md`), buildKarpathyReview(rid, lineCounts)],
|
|
184
178
|
// `rd/tech-doc.md` stays ridless on purpose: the TECH_DOC prereq was
|
|
185
|
-
// removed in v2.11.0, so nothing gates it and there is no rid-scoped
|
|
186
179
|
// sibling that anything reads.
|
|
187
180
|
[join(rdDir, 'tech-doc.md'), buildTechDoc(rid, title, files, lineCounts)],
|
|
188
181
|
[join(auditDir, `perf-${rid}.md`), buildPerfAudit(rid)],
|
|
@@ -192,7 +185,6 @@ export async function generateEvidence(options) {
|
|
|
192
185
|
[join(qaDir, `performance-findings-${rid}.md`), buildPerformanceFindings(rid)],
|
|
193
186
|
[qaRequestPath, buildQaRequest(rid, sessionId, files)],
|
|
194
187
|
// The handoff capsule carries the rid for the same reason as the four
|
|
195
|
-
// above (slice `2026-09-14-prd-capsule-rid-scoping`): one slot per
|
|
196
188
|
// session means the second slice's capsule overwrites the first's.
|
|
197
189
|
[join(prdDir, `handoff-${rid}.md`), handoff.content]
|
|
198
190
|
];
|
|
@@ -21,7 +21,6 @@ export declare const EVO_REFUTE_PARAGRAPH_MAX = 8000;
|
|
|
21
21
|
export declare const EVO_SKEPTIC_RISK_MAX = 2000;
|
|
22
22
|
export declare const EVO_POINTER_MAX = 512;
|
|
23
23
|
/**
|
|
24
|
-
* The independent evaluator's verdict. AC-12 / AC-13: the evaluator
|
|
25
24
|
* is a SEPARATE sub-agent that only sees the evaluation package.
|
|
26
25
|
*/
|
|
27
26
|
export declare const IndependentEvaluatorResultSchema: z.ZodObject<{
|
|
@@ -31,7 +30,6 @@ export declare const IndependentEvaluatorResultSchema: z.ZodObject<{
|
|
|
31
30
|
}, z.core.$strip>;
|
|
32
31
|
export type IndependentEvaluatorResult = z.infer<typeof IndependentEvaluatorResultSchema>;
|
|
33
32
|
/**
|
|
34
|
-
* The regression skeptic's verdict. AC-14: a separate sub-agent
|
|
35
33
|
* that attempts to refute the proposal.
|
|
36
34
|
*/
|
|
37
35
|
export declare const RegressionSkepticResultSchema: z.ZodObject<{
|
|
@@ -26,7 +26,6 @@ export const EVO_REFUTE_PARAGRAPH_MAX = 8000;
|
|
|
26
26
|
export const EVO_SKEPTIC_RISK_MAX = 2000;
|
|
27
27
|
export const EVO_POINTER_MAX = 512;
|
|
28
28
|
/**
|
|
29
|
-
* The independent evaluator's verdict. AC-12 / AC-13: the evaluator
|
|
30
29
|
* is a SEPARATE sub-agent that only sees the evaluation package.
|
|
31
30
|
*/
|
|
32
31
|
export const IndependentEvaluatorResultSchema = z.object({
|
|
@@ -43,7 +42,6 @@ export const IndependentEvaluatorResultSchema = z.object({
|
|
|
43
42
|
.max(EVO_REFUTE_PARAGRAPH_MAX)
|
|
44
43
|
});
|
|
45
44
|
/**
|
|
46
|
-
* The regression skeptic's verdict. AC-14: a separate sub-agent
|
|
47
45
|
* that attempts to refute the proposal.
|
|
48
46
|
*/
|
|
49
47
|
export const RegressionSkepticResultSchema = z.object({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from '../sqlite/sqlite-driver.js';
|
|
2
2
|
import { ZodError } from 'zod';
|
|
3
3
|
import { EVOLUTION_DEFAULT_DELTA_MIN, type EvolutionEvaluation, type EvolutionProposal, type EvolutionProposalInput, type EvolutionTargetKind, type EvolutionVerdict } from './evolution-types.js';
|
|
4
4
|
/**
|
|
@@ -7,17 +7,12 @@ import { EVOLUTION_DEFAULT_DELTA_MIN, type EvolutionEvaluation, type EvolutionPr
|
|
|
7
7
|
* Hard rules enforced at THIS layer (not just the Zod schema) so
|
|
8
8
|
* the ratchet cannot be bypassed by a malformed input:
|
|
9
9
|
*
|
|
10
|
-
* - AC-8: exactly one target (target_count === 1) AND
|
|
11
10
|
* exactly one optimization dimension per round.
|
|
12
11
|
* Code: EVOLUTION_MULTI_OBJECT, EVOLUTION_MULTI_DIMENSION.
|
|
13
|
-
* - AC-10: the scorer (evaluator) MUST NOT be the author.
|
|
14
12
|
* Code: EVOLUTION_SELF_SCORE.
|
|
15
|
-
* - AC-11: a `keep` verdict is BLOCKED when
|
|
16
13
|
* score_delta < score_delta_min (default 1.0).
|
|
17
14
|
* Code: EVOLUTION_DELTA_BELOW_THRESHOLD.
|
|
18
|
-
* - AC-12: evaluator_id MUST be a separate agent from
|
|
19
15
|
* author_id and skeptic_id.
|
|
20
|
-
* - AC-14: skeptic_id MUST be a separate agent from
|
|
21
16
|
* author_id and evaluator_id.
|
|
22
17
|
*
|
|
23
18
|
* The service is intentionally narrow: createProposal / score /
|
|
@@ -40,9 +35,8 @@ export declare class EvolutionIntegrityError extends Error {
|
|
|
40
35
|
}
|
|
41
36
|
export declare class EvolutionService {
|
|
42
37
|
private readonly db;
|
|
43
|
-
constructor(db:
|
|
38
|
+
constructor(db: SqliteDatabase);
|
|
44
39
|
/**
|
|
45
|
-
* Persist a new EvolutionProposal. Enforces AC-8 (single object /
|
|
46
40
|
* single dimension) BEFORE writing the row.
|
|
47
41
|
*
|
|
48
42
|
* The proposal id is auto-generated (`eval-<hex>`); callers supply
|
|
@@ -58,8 +52,6 @@ export declare class EvolutionService {
|
|
|
58
52
|
*/
|
|
59
53
|
createProposal(input: EvolutionProposalInput): EvolutionProposal;
|
|
60
54
|
/**
|
|
61
|
-
* Score an existing proposal. Enforces AC-10 (no self-score:
|
|
62
|
-
* `evaluator_id !== proposal.author_id`) and AC-11 (delta
|
|
63
55
|
* threshold: cannot mark `keep` when `score_delta <
|
|
64
56
|
* score_delta_min`).
|
|
65
57
|
*
|
|
@@ -89,9 +81,7 @@ export declare class EvolutionService {
|
|
|
89
81
|
/**
|
|
90
82
|
* Mark a verdict explicitly (after the user has confirmed via
|
|
91
83
|
* natural-language or a pick). Enforces:
|
|
92
|
-
* - AC-11: cannot mark `keep` when score_delta <
|
|
93
84
|
* score_delta_min.
|
|
94
|
-
* - AC-15: `keep` requires a user_confirmation_pointer.
|
|
95
85
|
*
|
|
96
86
|
* Throws:
|
|
97
87
|
* - EvolutionIntegrityError(EVOLUTION_DELTA_BELOW_THRESHOLD)
|
|
@@ -24,7 +24,6 @@ export class EvolutionService {
|
|
|
24
24
|
ensureEvolutionEvaluationTable(this.db);
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Persist a new EvolutionProposal. Enforces AC-8 (single object /
|
|
28
27
|
* single dimension) BEFORE writing the row.
|
|
29
28
|
*
|
|
30
29
|
* The proposal id is auto-generated (`eval-<hex>`); callers supply
|
|
@@ -70,7 +69,6 @@ export class EvolutionService {
|
|
|
70
69
|
}
|
|
71
70
|
throw err;
|
|
72
71
|
}
|
|
73
|
-
// AC-8 defense in depth: in case a future schema version relaxes
|
|
74
72
|
// the literal(true), still enforce at the service boundary.
|
|
75
73
|
if (parsedInput.single_object !== true) {
|
|
76
74
|
throw new EvolutionIntegrityError('EVOLUTION_MULTI_OBJECT', 'proposal must target exactly one object (single_object=true); split multi-object changes into multiple rounds', [{ path: 'single_object', message: 'must be true (AC-8)' }]);
|
|
@@ -110,8 +108,6 @@ export class EvolutionService {
|
|
|
110
108
|
return proposal;
|
|
111
109
|
}
|
|
112
110
|
/**
|
|
113
|
-
* Score an existing proposal. Enforces AC-10 (no self-score:
|
|
114
|
-
* `evaluator_id !== proposal.author_id`) and AC-11 (delta
|
|
115
111
|
* threshold: cannot mark `keep` when `score_delta <
|
|
116
112
|
* score_delta_min`).
|
|
117
113
|
*
|
|
@@ -135,11 +131,9 @@ export class EvolutionService {
|
|
|
135
131
|
if (!existing) {
|
|
136
132
|
throw new EvolutionIntegrityError('EVOLUTION_BELOW_RUBRIC', `evolution_evaluation row '${proposalId}' not found`, [{ path: 'id', message: 'row not found' }]);
|
|
137
133
|
}
|
|
138
|
-
// AC-10: scorer MUST NOT be the author.
|
|
139
134
|
if (args.evaluator_id === existing.proposal.author_id) {
|
|
140
135
|
throw new EvolutionIntegrityError('EVOLUTION_SELF_SCORE', `evaluator_id '${args.evaluator_id}' equals author_id '${existing.proposal.author_id}'; self-scoring is forbidden (AC-10)`, [{ path: 'evaluator_id', message: 'must differ from author_id' }]);
|
|
141
136
|
}
|
|
142
|
-
// AC-12 / AC-14: skeptic and evaluator are SEPARATE agents.
|
|
143
137
|
if (args.skeptic_id === existing.proposal.author_id) {
|
|
144
138
|
throw new EvolutionIntegrityError('EVOLUTION_SELF_SCORE', `skeptic_id '${args.skeptic_id}' equals author_id '${existing.proposal.author_id}'; the skeptic must be a separate agent (AC-14)`, [{ path: 'skeptic_id', message: 'must differ from author_id' }]);
|
|
145
139
|
}
|
|
@@ -176,7 +170,6 @@ export class EvolutionService {
|
|
|
176
170
|
schema_version: 'peaks.evolution/1',
|
|
177
171
|
created_at: new Date().toISOString()
|
|
178
172
|
};
|
|
179
|
-
// AC-11 (delta threshold) explicit guard: if the caller
|
|
180
173
|
// explicitly asks to mark `keep` but delta < min, throw.
|
|
181
174
|
if (verdict === 'needs-user-decision' && score_delta < min) {
|
|
182
175
|
// The auto-derivation already pinned verdict to `revert`; the
|
|
@@ -195,9 +188,7 @@ export class EvolutionService {
|
|
|
195
188
|
/**
|
|
196
189
|
* Mark a verdict explicitly (after the user has confirmed via
|
|
197
190
|
* natural-language or a pick). Enforces:
|
|
198
|
-
* - AC-11: cannot mark `keep` when score_delta <
|
|
199
191
|
* score_delta_min.
|
|
200
|
-
* - AC-15: `keep` requires a user_confirmation_pointer.
|
|
201
192
|
*
|
|
202
193
|
* Throws:
|
|
203
194
|
* - EvolutionIntegrityError(EVOLUTION_DELTA_BELOW_THRESHOLD)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from '../sqlite/sqlite-driver.js';
|
|
2
2
|
import type { EvolutionEvaluation, EvolutionEvaluationInput, EvolutionProposal, EvolutionProposalInput, EvolutionTargetKind, EvolutionVerdict } from './evolution-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Re-apply the evolution_evaluation table migration against an
|
|
5
5
|
* already-open database. Used by tests that build their own DB
|
|
6
6
|
* without the openStateDb pipeline. Idempotent.
|
|
7
7
|
*/
|
|
8
|
-
export declare function ensureEvolutionEvaluationTable(db:
|
|
8
|
+
export declare function ensureEvolutionEvaluationTable(db: SqliteDatabase): void;
|
|
9
9
|
/**
|
|
10
10
|
* Compute the score_delta from before/after scores. Exported for
|
|
11
11
|
* the service layer to use during proposal evaluation.
|
|
@@ -13,7 +13,6 @@ export declare function ensureEvolutionEvaluationTable(db: Database.Database): v
|
|
|
13
13
|
export declare function computeScoreDelta(before: number, after: number): number;
|
|
14
14
|
/**
|
|
15
15
|
* Build a persisted EvolutionProposal from the input. The service
|
|
16
|
-
* layer is responsible for enforcing AC-8 (single object / single
|
|
17
16
|
* dimension) BEFORE calling this; the persisted shape always has
|
|
18
17
|
* `target_count = 1` and `dimensions.length = 1`.
|
|
19
18
|
*/
|
|
@@ -24,17 +23,17 @@ export declare function buildProposal(id: string, input: EvolutionProposalInput,
|
|
|
24
23
|
* `peaks.evolution/1`); `created_at` is stamped from the server
|
|
25
24
|
* clock here, so callers cannot backdate a row.
|
|
26
25
|
*/
|
|
27
|
-
export declare function insertEvolutionEvaluation(db:
|
|
26
|
+
export declare function insertEvolutionEvaluation(db: SqliteDatabase, evalRow: EvolutionEvaluationInput): void;
|
|
28
27
|
/**
|
|
29
28
|
* Read a single EvolutionEvaluation row by id; returns undefined if
|
|
30
29
|
* absent.
|
|
31
30
|
*/
|
|
32
|
-
export declare function getEvolutionEvaluation(db:
|
|
31
|
+
export declare function getEvolutionEvaluation(db: SqliteDatabase, id: string): EvolutionEvaluation | undefined;
|
|
33
32
|
/**
|
|
34
33
|
* List EvolutionEvaluation rows for a specific target. Filter by
|
|
35
34
|
* `verdict` to scope the listing.
|
|
36
35
|
*/
|
|
37
|
-
export declare function listEvolutionEvaluationsByTarget(db:
|
|
36
|
+
export declare function listEvolutionEvaluationsByTarget(db: SqliteDatabase, opts: {
|
|
38
37
|
target_kind: EvolutionTargetKind;
|
|
39
38
|
target_release_id: string;
|
|
40
39
|
verdict?: EvolutionVerdict;
|
|
@@ -46,9 +45,8 @@ export declare function listEvolutionEvaluationsByTarget(db: Database.Database,
|
|
|
46
45
|
*
|
|
47
46
|
* The service layer is responsible for enforcing that the
|
|
48
47
|
* transition `revert` is always allowed and `keep` requires
|
|
49
|
-
* `user_confirmation_pointer` set (AC-15).
|
|
50
48
|
*/
|
|
51
|
-
export declare function updateEvolutionVerdict(db:
|
|
49
|
+
export declare function updateEvolutionVerdict(db: SqliteDatabase, id: string, verdict: EvolutionVerdict, userConfirmationPointer?: string): EvolutionEvaluation | undefined;
|
|
52
50
|
/**
|
|
53
51
|
* Test seam: produce a fresh id for an EvolutionEvaluation row.
|
|
54
52
|
* Format: `eval-<hex>` (lowercase, 12 hex chars). Matches the Zod
|
|
@@ -55,7 +55,6 @@ export function computeScoreDelta(before, after) {
|
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Build a persisted EvolutionProposal from the input. The service
|
|
58
|
-
* layer is responsible for enforcing AC-8 (single object / single
|
|
59
58
|
* dimension) BEFORE calling this; the persisted shape always has
|
|
60
59
|
* `target_count = 1` and `dimensions.length = 1`.
|
|
61
60
|
*/
|
|
@@ -155,7 +154,7 @@ export function insertEvolutionEvaluation(db, evalRow) {
|
|
|
155
154
|
rubric_json, red_lines_json, source_traces_json,
|
|
156
155
|
schema_version, created_at
|
|
157
156
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
158
|
-
stmt.run(evalRow.id, evalRow.proposal.target_kind, evalRow.proposal.target_release_id, JSON.stringify(evalRow.proposal.dimensions), evalRow.proposal.target_count, JSON.stringify(evalRow.proposal.before_snapshot), JSON.stringify(evalRow.proposal.after_snapshot), JSON.stringify(evalRow.proposal.diff), evalRow.proposal.before_score, evalRow.proposal.after_score, evalRow.proposal.score_delta_min, computeScoreDelta(evalRow.proposal.before_score, evalRow.proposal.after_score), evalRow.proposal.author_id, evalRow.evaluator_id, evalRow.skeptic_id, evalRow.verdict, evalRow.user_confirmation_pointer ?? null, evalRow.brief_pointer ?? null, JSON.stringify(evalRow.proposal.rubric), JSON.stringify(evalRow.proposal.red_lines), JSON.stringify(evalRow.proposal.source_traces), evalRow.schema_version, evalRow.created_at);
|
|
157
|
+
stmt.run(evalRow.id, evalRow.proposal.target_kind, evalRow.proposal.target_release_id, JSON.stringify(evalRow.proposal.dimensions), evalRow.proposal.target_count, JSON.stringify(evalRow.proposal.before_snapshot), JSON.stringify(evalRow.proposal.after_snapshot), JSON.stringify(evalRow.proposal.diff), evalRow.proposal.before_score, evalRow.proposal.after_score, evalRow.proposal.score_delta_min ?? null, computeScoreDelta(evalRow.proposal.before_score, evalRow.proposal.after_score), evalRow.proposal.author_id, evalRow.evaluator_id, evalRow.skeptic_id, evalRow.verdict, evalRow.user_confirmation_pointer ?? null, evalRow.brief_pointer ?? null, JSON.stringify(evalRow.proposal.rubric), JSON.stringify(evalRow.proposal.red_lines), JSON.stringify(evalRow.proposal.source_traces), evalRow.schema_version ?? null, evalRow.created_at);
|
|
159
158
|
}
|
|
160
159
|
/**
|
|
161
160
|
* Read a single EvolutionEvaluation row by id; returns undefined if
|
|
@@ -189,7 +188,6 @@ export function listEvolutionEvaluationsByTarget(db, opts) {
|
|
|
189
188
|
*
|
|
190
189
|
* The service layer is responsible for enforcing that the
|
|
191
190
|
* transition `revert` is always allowed and `keep` requires
|
|
192
|
-
* `user_confirmation_pointer` set (AC-15).
|
|
193
191
|
*/
|
|
194
192
|
export function updateEvolutionVerdict(db, id, verdict, userConfirmationPointer) {
|
|
195
193
|
const existing = getEvolutionEvaluation(db, id);
|
|
@@ -119,9 +119,7 @@ export type EvolutionProposal = z.infer<typeof EvolutionProposalSchema>;
|
|
|
119
119
|
*
|
|
120
120
|
* Field semantics — see spec §4.4 for full prose. Highlights:
|
|
121
121
|
*
|
|
122
|
-
* - `evaluator_id` and `skeptic_id` are SEPARATE agents (AC-14).
|
|
123
122
|
* - `user_confirmation_pointer` is a path/ID to a user choice
|
|
124
|
-
* record; it is REQUIRED for `verdict = 'keep'` (AC-15: user
|
|
125
123
|
* confirmation is the final gate).
|
|
126
124
|
* - `brief_pointer` is a path/ID to the evidence brief used in
|
|
127
125
|
* the recommendation (spec §4.7 / §10 RL-7).
|
|
@@ -46,7 +46,6 @@ export const EVOLUTION_VERDICTS = [
|
|
|
46
46
|
'needs-user-decision'
|
|
47
47
|
];
|
|
48
48
|
/* ---------------------------------------------------------------------- */
|
|
49
|
-
/* Proposal — the create payload. AC-8 enforces single object / dim. */
|
|
50
49
|
/* ---------------------------------------------------------------------- */
|
|
51
50
|
/**
|
|
52
51
|
* A reusable id pattern for `target_release_id`. The actual identity
|
|
@@ -71,7 +70,6 @@ export const EvolutionProposalInputSchema = z.object({
|
|
|
71
70
|
target_kind: EvolutionTargetKindSchema,
|
|
72
71
|
target_release_id: TargetReleaseIdSchema,
|
|
73
72
|
/**
|
|
74
|
-
* Single optimization dimension (AC-8). Multi-dimension proposals
|
|
75
73
|
* must be split into multiple rounds.
|
|
76
74
|
*/
|
|
77
75
|
optimization_dimension: z
|
|
@@ -100,7 +98,6 @@ export const EvolutionProposalInputSchema = z.object({
|
|
|
100
98
|
author_id: z.string().trim().min(1, 'author_id is required').max(EVO_AUTHOR_ID_MAX),
|
|
101
99
|
/**
|
|
102
100
|
* The LLM-side marker that this proposal targets a SINGLE object
|
|
103
|
-
* (AC-8). Multi-object proposals must be split into multiple
|
|
104
101
|
* rounds. The service layer rejects proposals with
|
|
105
102
|
* `single_object !== true`.
|
|
106
103
|
*/
|
|
@@ -109,7 +106,6 @@ export const EvolutionProposalInputSchema = z.object({
|
|
|
109
106
|
}),
|
|
110
107
|
/**
|
|
111
108
|
* The LLM-side marker that this proposal targets a SINGLE
|
|
112
|
-
* optimization dimension (AC-8). The service layer rejects
|
|
113
109
|
* proposals with `single_optimization_dimension !== true`.
|
|
114
110
|
*/
|
|
115
111
|
single_optimization_dimension: z.literal(true, {
|
|
@@ -151,9 +147,7 @@ export const EvolutionProposalSchema = EvolutionProposalInputSchema.extend({
|
|
|
151
147
|
*
|
|
152
148
|
* Field semantics — see spec §4.4 for full prose. Highlights:
|
|
153
149
|
*
|
|
154
|
-
* - `evaluator_id` and `skeptic_id` are SEPARATE agents (AC-14).
|
|
155
150
|
* - `user_confirmation_pointer` is a path/ID to a user choice
|
|
156
|
-
* record; it is REQUIRED for `verdict = 'keep'` (AC-15: user
|
|
157
151
|
* confirmation is the final gate).
|
|
158
152
|
* - `brief_pointer` is a path/ID to the evidence brief used in
|
|
159
153
|
* the recommendation (spec §4.7 / §10 RL-7).
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { EvolutionProposal, IndependentEvaluatorResult } from './evolution-types.js';
|
|
2
2
|
/**
|
|
3
|
-
* IndependentEvaluatorRunner — spec §6.2 / AC-12 / AC-13.
|
|
4
3
|
*
|
|
5
4
|
* The independent scorer is a SEPARATE sub-agent (process / model /
|
|
6
5
|
* context). Its ONLY input is the evaluation package (target,
|
|
@@ -13,7 +12,6 @@ import type { EvolutionProposal, IndependentEvaluatorResult } from './evolution-
|
|
|
13
12
|
* `invokeLlm` factory. Production wiring lives in M5; M4 ships
|
|
14
13
|
* the contract + the deterministic LLM stub used by tests.
|
|
15
14
|
*
|
|
16
|
-
* Contract (AC-12 / AC-13):
|
|
17
15
|
* - Input: EvolutionProposal (the public package only).
|
|
18
16
|
* - Output: IndependentEvaluatorResult { score, riskTags, refuteParagraph }.
|
|
19
17
|
* - The runner MUST NOT receive the author's session id, the
|
|
@@ -70,7 +68,6 @@ export type LlmInvoke = (pkg: EvaluationPackage, prompt: string) => Promise<{
|
|
|
70
68
|
* The prompt handed to the LLM scorer. By construction this
|
|
71
69
|
* contains NO author session id, NO author reasoning, and NO
|
|
72
70
|
* `推荐` / `recommendation` framing. The scorer is told the
|
|
73
|
-
* AUTHOR'S score and asked to refute it (AC-13).
|
|
74
71
|
*/
|
|
75
72
|
export declare function buildEvaluatorPrompt(pkg: EvaluationPackage): string;
|
|
76
73
|
/**
|
|
@@ -21,7 +21,6 @@ export function buildEvaluationPackage(proposal) {
|
|
|
21
21
|
* The prompt handed to the LLM scorer. By construction this
|
|
22
22
|
* contains NO author session id, NO author reasoning, and NO
|
|
23
23
|
* `推荐` / `recommendation` framing. The scorer is told the
|
|
24
|
-
* AUTHOR'S score and asked to refute it (AC-13).
|
|
25
24
|
*/
|
|
26
25
|
export function buildEvaluatorPrompt(pkg) {
|
|
27
26
|
// Stringify in a deterministic order for test stability.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { EvolutionProposal, EvolutionVerdict, IndependentEvaluatorResult, RegressionSkepticResult } from './evolution-types.js';
|
|
2
2
|
import { type EvaluationPackage } from './independent-evaluator-runner.js';
|
|
3
3
|
/**
|
|
4
|
-
* RegressionSkepticRunner — spec §6.1 #4 / AC-14.
|
|
5
4
|
*
|
|
6
5
|
* The regression skeptic is a SEPARATE sub-agent (independent of
|
|
7
6
|
* the author AND the independent evaluator). Its job is to
|