@zhixuan92/multi-model-agent-core 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bounded-execution/activity-tracker-types.d.ts +30 -15
- package/dist/bounded-execution/activity-tracker-types.d.ts.map +1 -1
- package/dist/bounded-execution/activity-tracker-types.js.map +1 -1
- package/dist/bounded-execution/activity-tracker.d.ts +2 -2
- package/dist/bounded-execution/activity-tracker.d.ts.map +1 -1
- package/dist/bounded-execution/activity-tracker.js +4 -5
- package/dist/bounded-execution/activity-tracker.js.map +1 -1
- package/dist/config/schema.d.ts +41 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/events/task-envelope.d.ts +5 -5
- package/dist/events/task-envelope.d.ts.map +1 -1
- package/dist/events/task-envelope.js +3 -6
- package/dist/events/task-envelope.js.map +1 -1
- package/dist/events/telemetry-uploader.d.ts +1 -1
- package/dist/events/telemetry-uploader.d.ts.map +1 -1
- package/dist/events/to-wire-record.d.ts +1 -1
- package/dist/events/to-wire-record.d.ts.map +1 -1
- package/dist/events/to-wire-record.js +1 -1
- package/dist/events/to-wire-record.js.map +1 -1
- package/dist/events/wire-schema.d.ts +34 -11
- package/dist/events/wire-schema.d.ts.map +1 -1
- package/dist/events/wire-schema.js +8 -8
- package/dist/events/wire-schema.js.map +1 -1
- package/dist/index.d.ts +13 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -17
- package/dist/index.js.map +1 -1
- package/dist/providers/agent-resolver.js +1 -1
- package/dist/providers/agent-resolver.js.map +1 -1
- package/dist/providers/claude-session.d.ts +2 -1
- package/dist/providers/claude-session.d.ts.map +1 -1
- package/dist/providers/claude-session.js +29 -2
- package/dist/providers/claude-session.js.map +1 -1
- package/dist/providers/codex-cli-session.d.ts +3 -2
- package/dist/providers/codex-cli-session.d.ts.map +1 -1
- package/dist/providers/codex-cli-session.js +5 -2
- package/dist/providers/codex-cli-session.js.map +1 -1
- package/dist/providers/provider-factory.d.ts +2 -2
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +12 -12
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/runner-types.d.ts +3 -16
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/research/index.d.ts +11 -1
- package/dist/research/index.d.ts.map +1 -1
- package/dist/research/index.js +8 -1
- package/dist/research/index.js.map +1 -1
- package/dist/stores/context-block-tool.d.ts +2 -3
- package/dist/stores/context-block-tool.d.ts.map +1 -1
- package/dist/stores/context-block-tool.js +1 -1
- package/dist/stores/context-block-tool.js.map +1 -1
- package/dist/stores/project-context-registry.d.ts +0 -9
- package/dist/stores/project-context-registry.d.ts.map +1 -1
- package/dist/stores/project-context-registry.js +0 -4
- package/dist/stores/project-context-registry.js.map +1 -1
- package/dist/types/brief-quality-policy.d.ts.map +1 -1
- package/dist/types/enums.d.ts +0 -9
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/enums.js +0 -10
- package/dist/types/enums.js.map +1 -1
- package/dist/types/run-result.d.ts +48 -23
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/run-result.js +3 -16
- package/dist/types/run-result.js.map +1 -1
- package/dist/types/stage-stats.d.ts +1 -1
- package/dist/types/stage-stats.d.ts.map +1 -1
- package/dist/types/stage-stats.js +2 -4
- package/dist/types/stage-stats.js.map +1 -1
- package/dist/types/task-spec.d.ts +3 -17
- package/dist/types/task-spec.d.ts.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/unified/reviewer-output-parser.d.ts +51 -0
- package/dist/unified/reviewer-output-parser.d.ts.map +1 -0
- package/dist/unified/reviewer-output-parser.js +39 -0
- package/dist/unified/reviewer-output-parser.js.map +1 -0
- package/dist/unified/skill-loader.d.ts +9 -0
- package/dist/unified/skill-loader.d.ts.map +1 -0
- package/dist/unified/skill-loader.js +45 -0
- package/dist/unified/skill-loader.js.map +1 -0
- package/dist/unified/task-input-schema.d.ts +217 -0
- package/dist/unified/task-input-schema.d.ts.map +1 -0
- package/dist/unified/task-input-schema.js +35 -0
- package/dist/unified/task-input-schema.js.map +1 -0
- package/dist/unified/task-registry.d.ts +23 -0
- package/dist/unified/task-registry.d.ts.map +1 -0
- package/dist/unified/task-registry.js +56 -0
- package/dist/unified/task-registry.js.map +1 -0
- package/dist/unified/two-phase-pipeline.d.ts +52 -0
- package/dist/unified/two-phase-pipeline.d.ts.map +1 -0
- package/dist/unified/two-phase-pipeline.js +95 -0
- package/dist/unified/two-phase-pipeline.js.map +1 -0
- package/dist/unified/type-registry.d.ts +13 -0
- package/dist/unified/type-registry.d.ts.map +1 -0
- package/dist/unified/type-registry.js +30 -0
- package/dist/unified/type-registry.js.map +1 -0
- package/dist/unified/worktree-manager.d.ts +43 -0
- package/dist/unified/worktree-manager.d.ts.map +1 -0
- package/dist/unified/worktree-manager.js +76 -0
- package/dist/unified/worktree-manager.js.map +1 -0
- package/package.json +5 -117
- package/dist/bounded-execution/file-artifact-check.d.ts +0 -7
- package/dist/bounded-execution/file-artifact-check.d.ts.map +0 -1
- package/dist/bounded-execution/file-artifact-check.js +0 -13
- package/dist/bounded-execution/file-artifact-check.js.map +0 -1
- package/dist/bounded-execution/progress-events-subscriber.d.ts +0 -33
- package/dist/bounded-execution/progress-events-subscriber.d.ts.map +0 -1
- package/dist/bounded-execution/progress-events-subscriber.js +0 -59
- package/dist/bounded-execution/progress-events-subscriber.js.map +0 -1
- package/dist/bounded-execution/progress-watchdog.d.ts +0 -43
- package/dist/bounded-execution/progress-watchdog.d.ts.map +0 -1
- package/dist/bounded-execution/progress-watchdog.js +0 -170
- package/dist/bounded-execution/progress-watchdog.js.map +0 -1
- package/dist/bounded-execution/real-diff.d.ts +0 -17
- package/dist/bounded-execution/real-diff.d.ts.map +0 -1
- package/dist/bounded-execution/real-diff.js +0 -59
- package/dist/bounded-execution/real-diff.js.map +0 -1
- package/dist/bounded-execution/scope-match.d.ts +0 -7
- package/dist/bounded-execution/scope-match.d.ts.map +0 -1
- package/dist/bounded-execution/scope-match.js +0 -28
- package/dist/bounded-execution/scope-match.js.map +0 -1
- package/dist/bounded-execution/stall-watchdog.d.ts +0 -18
- package/dist/bounded-execution/stall-watchdog.d.ts.map +0 -1
- package/dist/bounded-execution/stall-watchdog.js +0 -134
- package/dist/bounded-execution/stall-watchdog.js.map +0 -1
- package/dist/bounded-execution/wall-clock-guard.d.ts +0 -12
- package/dist/bounded-execution/wall-clock-guard.d.ts.map +0 -1
- package/dist/bounded-execution/wall-clock-guard.js +0 -27
- package/dist/bounded-execution/wall-clock-guard.js.map +0 -1
- package/dist/config/canonical-model-identity.d.ts +0 -9
- package/dist/config/canonical-model-identity.d.ts.map +0 -1
- package/dist/config/canonical-model-identity.js +0 -54
- package/dist/config/canonical-model-identity.js.map +0 -1
- package/dist/journal/default-schema.d.ts +0 -2
- package/dist/journal/default-schema.d.ts.map +0 -1
- package/dist/journal/default-schema.js +0 -27
- package/dist/journal/default-schema.js.map +0 -1
- package/dist/journal/types.d.ts +0 -22
- package/dist/journal/types.d.ts.map +0 -1
- package/dist/journal/types.js +0 -5
- package/dist/journal/types.js.map +0 -1
- package/dist/lifecycle/annotate-parser.d.ts +0 -11
- package/dist/lifecycle/annotate-parser.d.ts.map +0 -1
- package/dist/lifecycle/annotate-parser.js +0 -74
- package/dist/lifecycle/annotate-parser.js.map +0 -1
- package/dist/lifecycle/annotate-prompts.d.ts +0 -9
- package/dist/lifecycle/annotate-prompts.d.ts.map +0 -1
- package/dist/lifecycle/annotate-prompts.js +0 -95
- package/dist/lifecycle/annotate-prompts.js.map +0 -1
- package/dist/lifecycle/auto-commit.d.ts +0 -3
- package/dist/lifecycle/auto-commit.d.ts.map +0 -1
- package/dist/lifecycle/auto-commit.js +0 -5
- package/dist/lifecycle/auto-commit.js.map +0 -1
- package/dist/lifecycle/auto-register-context-block.d.ts +0 -11
- package/dist/lifecycle/auto-register-context-block.d.ts.map +0 -1
- package/dist/lifecycle/auto-register-context-block.js +0 -18
- package/dist/lifecycle/auto-register-context-block.js.map +0 -1
- package/dist/lifecycle/build-cancelled-result.d.ts +0 -11
- package/dist/lifecycle/build-cancelled-result.d.ts.map +0 -1
- package/dist/lifecycle/build-cancelled-result.js +0 -25
- package/dist/lifecycle/build-cancelled-result.js.map +0 -1
- package/dist/lifecycle/derive-completion.d.ts +0 -28
- package/dist/lifecycle/derive-completion.d.ts.map +0 -1
- package/dist/lifecycle/derive-completion.js +0 -79
- package/dist/lifecycle/derive-completion.js.map +0 -1
- package/dist/lifecycle/executor-output-types.d.ts +0 -53
- package/dist/lifecycle/executor-output-types.d.ts.map +0 -1
- package/dist/lifecycle/executor-output-types.js +0 -2
- package/dist/lifecycle/executor-output-types.js.map +0 -1
- package/dist/lifecycle/file-confinement-check.d.ts +0 -17
- package/dist/lifecycle/file-confinement-check.d.ts.map +0 -1
- package/dist/lifecycle/file-confinement-check.js +0 -44
- package/dist/lifecycle/file-confinement-check.js.map +0 -1
- package/dist/lifecycle/findings-parser.d.ts +0 -18
- package/dist/lifecycle/findings-parser.d.ts.map +0 -1
- package/dist/lifecycle/findings-parser.js +0 -143
- package/dist/lifecycle/findings-parser.js.map +0 -1
- package/dist/lifecycle/git-exec.d.ts +0 -62
- package/dist/lifecycle/git-exec.d.ts.map +0 -1
- package/dist/lifecycle/git-exec.js +0 -135
- package/dist/lifecycle/git-exec.js.map +0 -1
- package/dist/lifecycle/git-toplevel.d.ts +0 -12
- package/dist/lifecycle/git-toplevel.d.ts.map +0 -1
- package/dist/lifecycle/git-toplevel.js +0 -52
- package/dist/lifecycle/git-toplevel.js.map +0 -1
- package/dist/lifecycle/goal-builder.d.ts +0 -35
- package/dist/lifecycle/goal-builder.d.ts.map +0 -1
- package/dist/lifecycle/goal-builder.js +0 -56
- package/dist/lifecycle/goal-builder.js.map +0 -1
- package/dist/lifecycle/goal-preconditions.d.ts +0 -21
- package/dist/lifecycle/goal-preconditions.d.ts.map +0 -1
- package/dist/lifecycle/goal-preconditions.js +0 -33
- package/dist/lifecycle/goal-preconditions.js.map +0 -1
- package/dist/lifecycle/goal-prompts.d.ts +0 -27
- package/dist/lifecycle/goal-prompts.d.ts.map +0 -1
- package/dist/lifecycle/goal-prompts.js +0 -204
- package/dist/lifecycle/goal-prompts.js.map +0 -1
- package/dist/lifecycle/goal-report.d.ts +0 -42
- package/dist/lifecycle/goal-report.d.ts.map +0 -1
- package/dist/lifecycle/goal-report.js +0 -125
- package/dist/lifecycle/goal-report.js.map +0 -1
- package/dist/lifecycle/handlers/annotate-stage.d.ts +0 -35
- package/dist/lifecycle/handlers/annotate-stage.d.ts.map +0 -1
- package/dist/lifecycle/handlers/annotate-stage.js +0 -387
- package/dist/lifecycle/handlers/annotate-stage.js.map +0 -1
- package/dist/lifecycle/handlers/baseline-handlers.d.ts +0 -12
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +0 -1
- package/dist/lifecycle/handlers/baseline-handlers.js +0 -281
- package/dist/lifecycle/handlers/baseline-handlers.js.map +0 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +0 -3
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +0 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.js +0 -239
- package/dist/lifecycle/handlers/enrich-runtime-result.js.map +0 -1
- package/dist/lifecycle/handlers/implement-stage.d.ts +0 -10
- package/dist/lifecycle/handlers/implement-stage.d.ts.map +0 -1
- package/dist/lifecycle/handlers/implement-stage.js +0 -228
- package/dist/lifecycle/handlers/implement-stage.js.map +0 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +0 -13
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +0 -61
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +0 -1
- package/dist/lifecycle/handlers/read-route-implementer.d.ts +0 -52
- package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +0 -1
- package/dist/lifecycle/handlers/read-route-implementer.js +0 -109
- package/dist/lifecycle/handlers/read-route-implementer.js.map +0 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +0 -4
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +0 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.js +0 -35
- package/dist/lifecycle/handlers/register-context-block-handlers.js.map +0 -1
- package/dist/lifecycle/handlers/review-fix-stage.d.ts +0 -9
- package/dist/lifecycle/handlers/review-fix-stage.d.ts.map +0 -1
- package/dist/lifecycle/handlers/review-fix-stage.js +0 -75
- package/dist/lifecycle/handlers/review-fix-stage.js.map +0 -1
- package/dist/lifecycle/handlers/terminal-handlers.d.ts +0 -61
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +0 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +0 -339
- package/dist/lifecycle/handlers/terminal-handlers.js.map +0 -1
- package/dist/lifecycle/lifecycle-context.d.ts +0 -109
- package/dist/lifecycle/lifecycle-context.d.ts.map +0 -1
- package/dist/lifecycle/lifecycle-context.js +0 -2
- package/dist/lifecycle/lifecycle-context.js.map +0 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +0 -35
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +0 -1
- package/dist/lifecycle/lifecycle-dispatcher.js +0 -64
- package/dist/lifecycle/lifecycle-dispatcher.js.map +0 -1
- package/dist/lifecycle/lifecycle-driver.d.ts +0 -16
- package/dist/lifecycle/lifecycle-driver.d.ts.map +0 -1
- package/dist/lifecycle/lifecycle-driver.js +0 -334
- package/dist/lifecycle/lifecycle-driver.js.map +0 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +0 -62
- package/dist/lifecycle/merge-stage-stats.d.ts.map +0 -1
- package/dist/lifecycle/merge-stage-stats.js +0 -136
- package/dist/lifecycle/merge-stage-stats.js.map +0 -1
- package/dist/lifecycle/normalize-output-targets.d.ts +0 -2
- package/dist/lifecycle/normalize-output-targets.d.ts.map +0 -1
- package/dist/lifecycle/normalize-output-targets.js +0 -14
- package/dist/lifecycle/normalize-output-targets.js.map +0 -1
- package/dist/lifecycle/perform-implementation.d.ts +0 -3
- package/dist/lifecycle/perform-implementation.d.ts.map +0 -1
- package/dist/lifecycle/perform-implementation.js +0 -371
- package/dist/lifecycle/perform-implementation.js.map +0 -1
- package/dist/lifecycle/read-only-subtype-spec.d.ts +0 -18
- package/dist/lifecycle/read-only-subtype-spec.d.ts.map +0 -1
- package/dist/lifecycle/read-only-subtype-spec.js +0 -2
- package/dist/lifecycle/read-only-subtype-spec.js.map +0 -1
- package/dist/lifecycle/review-verdict-mapping.d.ts +0 -16
- package/dist/lifecycle/review-verdict-mapping.d.ts.map +0 -1
- package/dist/lifecycle/review-verdict-mapping.js +0 -24
- package/dist/lifecycle/review-verdict-mapping.js.map +0 -1
- package/dist/lifecycle/shared-compute.d.ts +0 -14
- package/dist/lifecycle/shared-compute.d.ts.map +0 -1
- package/dist/lifecycle/shared-compute.js +0 -51
- package/dist/lifecycle/shared-compute.js.map +0 -1
- package/dist/lifecycle/stage-idle-tracker.d.ts +0 -14
- package/dist/lifecycle/stage-idle-tracker.d.ts.map +0 -1
- package/dist/lifecycle/stage-idle-tracker.js +0 -17
- package/dist/lifecycle/stage-idle-tracker.js.map +0 -1
- package/dist/lifecycle/stage-io.d.ts +0 -134
- package/dist/lifecycle/stage-io.d.ts.map +0 -1
- package/dist/lifecycle/stage-io.js +0 -9
- package/dist/lifecycle/stage-io.js.map +0 -1
- package/dist/lifecycle/stage-labels.d.ts +0 -7
- package/dist/lifecycle/stage-labels.d.ts.map +0 -1
- package/dist/lifecycle/stage-labels.js +0 -19
- package/dist/lifecycle/stage-labels.js.map +0 -1
- package/dist/lifecycle/stage-plan-builder.d.ts +0 -4
- package/dist/lifecycle/stage-plan-builder.d.ts.map +0 -1
- package/dist/lifecycle/stage-plan-builder.js +0 -157
- package/dist/lifecycle/stage-plan-builder.js.map +0 -1
- package/dist/lifecycle/stage-plan-types.d.ts +0 -131
- package/dist/lifecycle/stage-plan-types.d.ts.map +0 -1
- package/dist/lifecycle/stage-plan-types.js +0 -28
- package/dist/lifecycle/stage-plan-types.js.map +0 -1
- package/dist/lifecycle/stage-progression.d.ts +0 -6
- package/dist/lifecycle/stage-progression.d.ts.map +0 -1
- package/dist/lifecycle/stage-progression.js +0 -100
- package/dist/lifecycle/stage-progression.js.map +0 -1
- package/dist/lifecycle/task-executor.d.ts +0 -24
- package/dist/lifecycle/task-executor.d.ts.map +0 -1
- package/dist/lifecycle/task-executor.js +0 -365
- package/dist/lifecycle/task-executor.js.map +0 -1
- package/dist/lifecycle/task-runner.d.ts +0 -66
- package/dist/lifecycle/task-runner.d.ts.map +0 -1
- package/dist/lifecycle/task-runner.js +0 -334
- package/dist/lifecycle/task-runner.js.map +0 -1
- package/dist/lifecycle/tool-category.d.ts +0 -2
- package/dist/lifecycle/tool-category.d.ts.map +0 -1
- package/dist/lifecycle/tool-category.js +0 -6
- package/dist/lifecycle/tool-category.js.map +0 -1
- package/dist/lifecycle/tool-config-types.d.ts +0 -32
- package/dist/lifecycle/tool-config-types.d.ts.map +0 -1
- package/dist/lifecycle/tool-config-types.js +0 -2
- package/dist/lifecycle/tool-config-types.js.map +0 -1
- package/dist/lifecycle/warm-followup.d.ts +0 -3
- package/dist/lifecycle/warm-followup.d.ts.map +0 -1
- package/dist/lifecycle/warm-followup.js +0 -16
- package/dist/lifecycle/warm-followup.js.map +0 -1
- package/dist/lifecycle/worker-output-contract.d.ts +0 -22
- package/dist/lifecycle/worker-output-contract.d.ts.map +0 -1
- package/dist/lifecycle/worker-output-contract.js +0 -91
- package/dist/lifecycle/worker-output-contract.js.map +0 -1
- package/dist/lifecycle/write-goal-lock.d.ts +0 -29
- package/dist/lifecycle/write-goal-lock.d.ts.map +0 -1
- package/dist/lifecycle/write-goal-lock.js +0 -70
- package/dist/lifecycle/write-goal-lock.js.map +0 -1
- package/dist/providers/assemble-run-result.d.ts +0 -17
- package/dist/providers/assemble-run-result.d.ts.map +0 -1
- package/dist/providers/assemble-run-result.js +0 -52
- package/dist/providers/assemble-run-result.js.map +0 -1
- package/dist/providers/skill-resolver.d.ts +0 -17
- package/dist/providers/skill-resolver.d.ts.map +0 -1
- package/dist/providers/skill-resolver.js +0 -123
- package/dist/providers/skill-resolver.js.map +0 -1
- package/dist/reporting/batch-persister.d.ts +0 -4
- package/dist/reporting/batch-persister.d.ts.map +0 -1
- package/dist/reporting/batch-persister.js +0 -11
- package/dist/reporting/batch-persister.js.map +0 -1
- package/dist/reporting/commit-stage-runner.d.ts +0 -12
- package/dist/reporting/commit-stage-runner.d.ts.map +0 -1
- package/dist/reporting/commit-stage-runner.js +0 -43
- package/dist/reporting/commit-stage-runner.js.map +0 -1
- package/dist/reporting/derive-investigate-status.d.ts +0 -15
- package/dist/reporting/derive-investigate-status.d.ts.map +0 -1
- package/dist/reporting/derive-investigate-status.js +0 -23
- package/dist/reporting/derive-investigate-status.js.map +0 -1
- package/dist/reporting/extract-fenced-json.d.ts +0 -7
- package/dist/reporting/extract-fenced-json.d.ts.map +0 -1
- package/dist/reporting/extract-fenced-json.js +0 -17
- package/dist/reporting/extract-fenced-json.js.map +0 -1
- package/dist/reporting/findings-headline.d.ts +0 -12
- package/dist/reporting/findings-headline.d.ts.map +0 -1
- package/dist/reporting/findings-headline.js +0 -40
- package/dist/reporting/findings-headline.js.map +0 -1
- package/dist/reporting/findings-outcome.d.ts +0 -13
- package/dist/reporting/findings-outcome.d.ts.map +0 -1
- package/dist/reporting/findings-outcome.js +0 -22
- package/dist/reporting/findings-outcome.js.map +0 -1
- package/dist/reporting/headline-composer.d.ts +0 -29
- package/dist/reporting/headline-composer.d.ts.map +0 -1
- package/dist/reporting/headline-composer.js +0 -10
- package/dist/reporting/headline-composer.js.map +0 -1
- package/dist/reporting/headline-templates/delegate.d.ts +0 -3
- package/dist/reporting/headline-templates/delegate.d.ts.map +0 -1
- package/dist/reporting/headline-templates/delegate.js +0 -42
- package/dist/reporting/headline-templates/delegate.js.map +0 -1
- package/dist/reporting/headline-templates/execute-plan.d.ts +0 -3
- package/dist/reporting/headline-templates/execute-plan.d.ts.map +0 -1
- package/dist/reporting/headline-templates/execute-plan.js +0 -26
- package/dist/reporting/headline-templates/execute-plan.js.map +0 -1
- package/dist/reporting/headline-templates/investigate.d.ts +0 -13
- package/dist/reporting/headline-templates/investigate.d.ts.map +0 -1
- package/dist/reporting/headline-templates/investigate.js +0 -53
- package/dist/reporting/headline-templates/investigate.js.map +0 -1
- package/dist/reporting/headline-templates/journal-recall.d.ts +0 -3
- package/dist/reporting/headline-templates/journal-recall.d.ts.map +0 -1
- package/dist/reporting/headline-templates/journal-recall.js +0 -9
- package/dist/reporting/headline-templates/journal-recall.js.map +0 -1
- package/dist/reporting/headline-templates/journal.d.ts +0 -3
- package/dist/reporting/headline-templates/journal.d.ts.map +0 -1
- package/dist/reporting/headline-templates/journal.js +0 -17
- package/dist/reporting/headline-templates/journal.js.map +0 -1
- package/dist/reporting/headline-templates/research.d.ts +0 -3
- package/dist/reporting/headline-templates/research.d.ts.map +0 -1
- package/dist/reporting/headline-templates/research.js +0 -22
- package/dist/reporting/headline-templates/research.js.map +0 -1
- package/dist/reporting/headline-text.d.ts +0 -36
- package/dist/reporting/headline-text.d.ts.map +0 -1
- package/dist/reporting/headline-text.js +0 -73
- package/dist/reporting/headline-text.js.map +0 -1
- package/dist/reporting/report-parser-slots/delegate-report.d.ts +0 -8
- package/dist/reporting/report-parser-slots/delegate-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/delegate-report.js +0 -12
- package/dist/reporting/report-parser-slots/delegate-report.js.map +0 -1
- package/dist/reporting/report-parser-slots/execute-plan-report.d.ts +0 -11
- package/dist/reporting/report-parser-slots/execute-plan-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/execute-plan-report.js +0 -7
- package/dist/reporting/report-parser-slots/execute-plan-report.js.map +0 -1
- package/dist/reporting/report-parser-slots/investigate-report.d.ts +0 -52
- package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/investigate-report.js +0 -307
- package/dist/reporting/report-parser-slots/investigate-report.js.map +0 -1
- package/dist/reporting/report-parser-slots/journal-report.d.ts +0 -19
- package/dist/reporting/report-parser-slots/journal-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/journal-report.js +0 -13
- package/dist/reporting/report-parser-slots/journal-report.js.map +0 -1
- package/dist/reporting/report-parser-slots/no-structured-report.d.ts +0 -10
- package/dist/reporting/report-parser-slots/no-structured-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/no-structured-report.js +0 -13
- package/dist/reporting/report-parser-slots/no-structured-report.js.map +0 -1
- package/dist/reporting/report-parser-slots/research-report.d.ts +0 -31
- package/dist/reporting/report-parser-slots/research-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/research-report.js +0 -50
- package/dist/reporting/report-parser-slots/research-report.js.map +0 -1
- package/dist/reporting/response-envelope-builder.d.ts +0 -32
- package/dist/reporting/response-envelope-builder.d.ts.map +0 -1
- package/dist/reporting/response-envelope-builder.js +0 -26
- package/dist/reporting/response-envelope-builder.js.map +0 -1
- package/dist/reporting/severity.d.ts +0 -62
- package/dist/reporting/severity.d.ts.map +0 -1
- package/dist/reporting/severity.js +0 -93
- package/dist/reporting/severity.js.map +0 -1
- package/dist/reporting/structured-report-parser.d.ts +0 -9
- package/dist/reporting/structured-report-parser.d.ts.map +0 -1
- package/dist/reporting/structured-report-parser.js +0 -8
- package/dist/reporting/structured-report-parser.js.map +0 -1
- package/dist/reporting/terminal-block-registrar.d.ts +0 -14
- package/dist/reporting/terminal-block-registrar.d.ts.map +0 -1
- package/dist/reporting/terminal-block-registrar.js +0 -17
- package/dist/reporting/terminal-block-registrar.js.map +0 -1
- package/dist/reporting/terminal-report-markdown.d.ts +0 -13
- package/dist/reporting/terminal-report-markdown.d.ts.map +0 -1
- package/dist/reporting/terminal-report-markdown.js +0 -31
- package/dist/reporting/terminal-report-markdown.js.map +0 -1
- package/dist/research/research-pre-loop.d.ts +0 -22
- package/dist/research/research-pre-loop.d.ts.map +0 -1
- package/dist/research/research-pre-loop.js +0 -50
- package/dist/research/research-pre-loop.js.map +0 -1
- package/dist/routing/read-route-criteria.d.ts +0 -36
- package/dist/routing/read-route-criteria.d.ts.map +0 -1
- package/dist/routing/read-route-criteria.js +0 -71
- package/dist/routing/read-route-criteria.js.map +0 -1
- package/dist/stores/batch-cache.d.ts +0 -29
- package/dist/stores/batch-cache.d.ts.map +0 -1
- package/dist/stores/batch-cache.js +0 -89
- package/dist/stores/batch-cache.js.map +0 -1
- package/dist/stores/batch-registry.d.ts +0 -138
- package/dist/stores/batch-registry.d.ts.map +0 -1
- package/dist/stores/batch-registry.js +0 -205
- package/dist/stores/batch-registry.js.map +0 -1
- package/dist/tool-surface/register-all-tools.d.ts +0 -4
- package/dist/tool-surface/register-all-tools.d.ts.map +0 -1
- package/dist/tool-surface/register-all-tools.js +0 -35
- package/dist/tool-surface/register-all-tools.js.map +0 -1
- package/dist/tool-surface/tool-surface-registry.d.ts +0 -28
- package/dist/tool-surface/tool-surface-registry.d.ts.map +0 -1
- package/dist/tool-surface/tool-surface-registry.js +0 -16
- package/dist/tool-surface/tool-surface-registry.js.map +0 -1
- package/dist/tools/audit/brief-slot.d.ts +0 -15
- package/dist/tools/audit/brief-slot.d.ts.map +0 -1
- package/dist/tools/audit/brief-slot.js +0 -69
- package/dist/tools/audit/brief-slot.js.map +0 -1
- package/dist/tools/audit/implementer-criteria.d.ts +0 -62
- package/dist/tools/audit/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/audit/implementer-criteria.js +0 -121
- package/dist/tools/audit/implementer-criteria.js.map +0 -1
- package/dist/tools/audit/plan-audit-criteria.d.ts +0 -35
- package/dist/tools/audit/plan-audit-criteria.d.ts.map +0 -1
- package/dist/tools/audit/plan-audit-criteria.js +0 -159
- package/dist/tools/audit/plan-audit-criteria.js.map +0 -1
- package/dist/tools/audit/schema.d.ts +0 -61
- package/dist/tools/audit/schema.d.ts.map +0 -1
- package/dist/tools/audit/schema.js +0 -21
- package/dist/tools/audit/schema.js.map +0 -1
- package/dist/tools/audit/skill-audit-criteria.d.ts +0 -9
- package/dist/tools/audit/skill-audit-criteria.d.ts.map +0 -1
- package/dist/tools/audit/skill-audit-criteria.js +0 -52
- package/dist/tools/audit/skill-audit-criteria.js.map +0 -1
- package/dist/tools/audit/spec-audit-criteria.d.ts +0 -9
- package/dist/tools/audit/spec-audit-criteria.d.ts.map +0 -1
- package/dist/tools/audit/spec-audit-criteria.js +0 -55
- package/dist/tools/audit/spec-audit-criteria.js.map +0 -1
- package/dist/tools/audit/subtypes.d.ts +0 -4
- package/dist/tools/audit/subtypes.d.ts.map +0 -1
- package/dist/tools/audit/subtypes.js +0 -69
- package/dist/tools/audit/subtypes.js.map +0 -1
- package/dist/tools/audit/tool-config.d.ts +0 -7
- package/dist/tools/audit/tool-config.d.ts.map +0 -1
- package/dist/tools/audit/tool-config.js +0 -60
- package/dist/tools/audit/tool-config.js.map +0 -1
- package/dist/tools/criteria-types.d.ts +0 -27
- package/dist/tools/criteria-types.d.ts.map +0 -1
- package/dist/tools/criteria-types.js +0 -25
- package/dist/tools/criteria-types.js.map +0 -1
- package/dist/tools/debug/brief-slot.d.ts +0 -15
- package/dist/tools/debug/brief-slot.d.ts.map +0 -1
- package/dist/tools/debug/brief-slot.js +0 -10
- package/dist/tools/debug/brief-slot.js.map +0 -1
- package/dist/tools/debug/implementer-criteria.d.ts +0 -45
- package/dist/tools/debug/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/debug/implementer-criteria.js +0 -97
- package/dist/tools/debug/implementer-criteria.js.map +0 -1
- package/dist/tools/debug/schema.d.ts +0 -60
- package/dist/tools/debug/schema.d.ts.map +0 -1
- package/dist/tools/debug/schema.js +0 -17
- package/dist/tools/debug/schema.js.map +0 -1
- package/dist/tools/debug/subtypes.d.ts +0 -4
- package/dist/tools/debug/subtypes.d.ts.map +0 -1
- package/dist/tools/debug/subtypes.js +0 -26
- package/dist/tools/debug/subtypes.js.map +0 -1
- package/dist/tools/debug/tool-config.d.ts +0 -7
- package/dist/tools/debug/tool-config.d.ts.map +0 -1
- package/dist/tools/debug/tool-config.js +0 -55
- package/dist/tools/debug/tool-config.js.map +0 -1
- package/dist/tools/delegate/brief-slot.d.ts +0 -20
- package/dist/tools/delegate/brief-slot.d.ts.map +0 -1
- package/dist/tools/delegate/brief-slot.js +0 -31
- package/dist/tools/delegate/brief-slot.js.map +0 -1
- package/dist/tools/delegate/implementer-criteria.d.ts +0 -53
- package/dist/tools/delegate/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/delegate/implementer-criteria.js +0 -99
- package/dist/tools/delegate/implementer-criteria.js.map +0 -1
- package/dist/tools/delegate/schema.d.ts +0 -70
- package/dist/tools/delegate/schema.d.ts.map +0 -1
- package/dist/tools/delegate/schema.js +0 -24
- package/dist/tools/delegate/schema.js.map +0 -1
- package/dist/tools/delegate/tool-config.d.ts +0 -7
- package/dist/tools/delegate/tool-config.d.ts.map +0 -1
- package/dist/tools/delegate/tool-config.js +0 -47
- package/dist/tools/delegate/tool-config.js.map +0 -1
- package/dist/tools/execute-plan/barrel.d.ts +0 -2
- package/dist/tools/execute-plan/barrel.d.ts.map +0 -1
- package/dist/tools/execute-plan/barrel.js +0 -7
- package/dist/tools/execute-plan/barrel.js.map +0 -1
- package/dist/tools/execute-plan/brief-slot.d.ts +0 -25
- package/dist/tools/execute-plan/brief-slot.d.ts.map +0 -1
- package/dist/tools/execute-plan/brief-slot.js +0 -124
- package/dist/tools/execute-plan/brief-slot.js.map +0 -1
- package/dist/tools/execute-plan/implementer-criteria.d.ts +0 -57
- package/dist/tools/execute-plan/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/execute-plan/implementer-criteria.js +0 -108
- package/dist/tools/execute-plan/implementer-criteria.js.map +0 -1
- package/dist/tools/execute-plan/plan-extractor.d.ts +0 -21
- package/dist/tools/execute-plan/plan-extractor.d.ts.map +0 -1
- package/dist/tools/execute-plan/plan-extractor.js +0 -96
- package/dist/tools/execute-plan/plan-extractor.js.map +0 -1
- package/dist/tools/execute-plan/tool-config.d.ts +0 -68
- package/dist/tools/execute-plan/tool-config.d.ts.map +0 -1
- package/dist/tools/execute-plan/tool-config.js +0 -58
- package/dist/tools/execute-plan/tool-config.js.map +0 -1
- package/dist/tools/index.d.ts +0 -8
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -14
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/investigate/brief-slot.d.ts +0 -15
- package/dist/tools/investigate/brief-slot.d.ts.map +0 -1
- package/dist/tools/investigate/brief-slot.js +0 -9
- package/dist/tools/investigate/brief-slot.js.map +0 -1
- package/dist/tools/investigate/implementer-criteria.d.ts +0 -52
- package/dist/tools/investigate/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/investigate/implementer-criteria.js +0 -106
- package/dist/tools/investigate/implementer-criteria.js.map +0 -1
- package/dist/tools/investigate/schema.d.ts +0 -62
- package/dist/tools/investigate/schema.d.ts.map +0 -1
- package/dist/tools/investigate/schema.js +0 -13
- package/dist/tools/investigate/schema.js.map +0 -1
- package/dist/tools/investigate/subtypes.d.ts +0 -4
- package/dist/tools/investigate/subtypes.d.ts.map +0 -1
- package/dist/tools/investigate/subtypes.js +0 -26
- package/dist/tools/investigate/subtypes.js.map +0 -1
- package/dist/tools/investigate/tool-config.d.ts +0 -8
- package/dist/tools/investigate/tool-config.d.ts.map +0 -1
- package/dist/tools/investigate/tool-config.js +0 -68
- package/dist/tools/investigate/tool-config.js.map +0 -1
- package/dist/tools/journal/recall/brief-slot.d.ts +0 -7
- package/dist/tools/journal/recall/brief-slot.d.ts.map +0 -1
- package/dist/tools/journal/recall/brief-slot.js +0 -5
- package/dist/tools/journal/recall/brief-slot.js.map +0 -1
- package/dist/tools/journal/recall/implementer-criteria.d.ts +0 -9
- package/dist/tools/journal/recall/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/journal/recall/implementer-criteria.js +0 -23
- package/dist/tools/journal/recall/implementer-criteria.js.map +0 -1
- package/dist/tools/journal/recall/schema.d.ts +0 -54
- package/dist/tools/journal/recall/schema.d.ts.map +0 -1
- package/dist/tools/journal/recall/schema.js +0 -10
- package/dist/tools/journal/recall/schema.js.map +0 -1
- package/dist/tools/journal/recall/subtypes.d.ts +0 -4
- package/dist/tools/journal/recall/subtypes.d.ts.map +0 -1
- package/dist/tools/journal/recall/subtypes.js +0 -25
- package/dist/tools/journal/recall/subtypes.js.map +0 -1
- package/dist/tools/journal/recall/tool-config.d.ts +0 -8
- package/dist/tools/journal/recall/tool-config.d.ts.map +0 -1
- package/dist/tools/journal/recall/tool-config.js +0 -46
- package/dist/tools/journal/recall/tool-config.js.map +0 -1
- package/dist/tools/journal/record/brief-slot.d.ts +0 -15
- package/dist/tools/journal/record/brief-slot.d.ts.map +0 -1
- package/dist/tools/journal/record/brief-slot.js +0 -28
- package/dist/tools/journal/record/brief-slot.js.map +0 -1
- package/dist/tools/journal/record/implementer-criteria.d.ts +0 -6
- package/dist/tools/journal/record/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/journal/record/implementer-criteria.js +0 -20
- package/dist/tools/journal/record/implementer-criteria.js.map +0 -1
- package/dist/tools/journal/record/schema.d.ts +0 -55
- package/dist/tools/journal/record/schema.d.ts.map +0 -1
- package/dist/tools/journal/record/schema.js +0 -12
- package/dist/tools/journal/record/schema.js.map +0 -1
- package/dist/tools/journal/record/tool-config.d.ts +0 -7
- package/dist/tools/journal/record/tool-config.d.ts.map +0 -1
- package/dist/tools/journal/record/tool-config.js +0 -47
- package/dist/tools/journal/record/tool-config.js.map +0 -1
- package/dist/tools/read-route-prompt.d.ts +0 -113
- package/dist/tools/read-route-prompt.d.ts.map +0 -1
- package/dist/tools/read-route-prompt.js +0 -86
- package/dist/tools/read-route-prompt.js.map +0 -1
- package/dist/tools/register-context-block/schema.d.ts +0 -8
- package/dist/tools/register-context-block/schema.d.ts.map +0 -1
- package/dist/tools/register-context-block/schema.js +0 -7
- package/dist/tools/register-context-block/schema.js.map +0 -1
- package/dist/tools/register-context-block/tool-config.d.ts +0 -6
- package/dist/tools/register-context-block/tool-config.d.ts.map +0 -1
- package/dist/tools/register-context-block/tool-config.js +0 -39
- package/dist/tools/register-context-block/tool-config.js.map +0 -1
- package/dist/tools/research/brief-slot.d.ts +0 -37
- package/dist/tools/research/brief-slot.d.ts.map +0 -1
- package/dist/tools/research/brief-slot.js +0 -68
- package/dist/tools/research/brief-slot.js.map +0 -1
- package/dist/tools/research/implementer-criteria.d.ts +0 -13
- package/dist/tools/research/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/research/implementer-criteria.js +0 -109
- package/dist/tools/research/implementer-criteria.js.map +0 -1
- package/dist/tools/research/schema.d.ts +0 -11
- package/dist/tools/research/schema.d.ts.map +0 -1
- package/dist/tools/research/schema.js +0 -59
- package/dist/tools/research/schema.js.map +0 -1
- package/dist/tools/research/subtypes.d.ts +0 -4
- package/dist/tools/research/subtypes.d.ts.map +0 -1
- package/dist/tools/research/subtypes.js +0 -25
- package/dist/tools/research/subtypes.js.map +0 -1
- package/dist/tools/research/tool-config.d.ts +0 -8
- package/dist/tools/research/tool-config.d.ts.map +0 -1
- package/dist/tools/research/tool-config.js +0 -48
- package/dist/tools/research/tool-config.js.map +0 -1
- package/dist/tools/research/two-turn-driver.d.ts +0 -16
- package/dist/tools/research/two-turn-driver.d.ts.map +0 -1
- package/dist/tools/research/two-turn-driver.js +0 -41
- package/dist/tools/research/two-turn-driver.js.map +0 -1
- package/dist/tools/retry/brief-slot.d.ts +0 -7
- package/dist/tools/retry/brief-slot.d.ts.map +0 -1
- package/dist/tools/retry/brief-slot.js +0 -3
- package/dist/tools/retry/brief-slot.js.map +0 -1
- package/dist/tools/retry/schema.d.ts +0 -53
- package/dist/tools/retry/schema.d.ts.map +0 -1
- package/dist/tools/retry/schema.js +0 -12
- package/dist/tools/retry/schema.js.map +0 -1
- package/dist/tools/retry/tool-config.d.ts +0 -7
- package/dist/tools/retry/tool-config.d.ts.map +0 -1
- package/dist/tools/retry/tool-config.js +0 -79
- package/dist/tools/retry/tool-config.js.map +0 -1
- package/dist/tools/review/brief-slot.d.ts +0 -11
- package/dist/tools/review/brief-slot.d.ts.map +0 -1
- package/dist/tools/review/brief-slot.js +0 -23
- package/dist/tools/review/brief-slot.js.map +0 -1
- package/dist/tools/review/implementer-criteria.d.ts +0 -48
- package/dist/tools/review/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/review/implementer-criteria.js +0 -108
- package/dist/tools/review/implementer-criteria.js.map +0 -1
- package/dist/tools/review/schema.d.ts +0 -64
- package/dist/tools/review/schema.d.ts.map +0 -1
- package/dist/tools/review/schema.js +0 -17
- package/dist/tools/review/schema.js.map +0 -1
- package/dist/tools/review/subtypes.d.ts +0 -4
- package/dist/tools/review/subtypes.d.ts.map +0 -1
- package/dist/tools/review/subtypes.js +0 -27
- package/dist/tools/review/subtypes.js.map +0 -1
- package/dist/tools/review/tool-config.d.ts +0 -7
- package/dist/tools/review/tool-config.d.ts.map +0 -1
- package/dist/tools/review/tool-config.js +0 -94
- package/dist/tools/review/tool-config.js.map +0 -1
- package/dist/tools/shared-output.d.ts +0 -56
- package/dist/tools/shared-output.d.ts.map +0 -1
- package/dist/tools/shared-output.js +0 -33
- package/dist/tools/shared-output.js.map +0 -1
- package/dist/types/review-policy.d.ts +0 -2
- package/dist/types/review-policy.d.ts.map +0 -1
- package/dist/types/review-policy.js +0 -2
- package/dist/types/review-policy.js.map +0 -1
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
// packages/core/src/lifecycle/annotate-prompts.ts
|
|
2
|
-
//
|
|
3
|
-
// Two LLM prompt builders for the annotate stage (write route + read route).
|
|
4
|
-
// Both produce transcript-only prompts that ask for a JSON judgment matching
|
|
5
|
-
// AnnotatePayload. Helpers serialize upstream state without raw file contents
|
|
6
|
-
// or secrets (spec §15.2).
|
|
7
|
-
import { reviewPayload } from './stage-plan-types.js';
|
|
8
|
-
export function annotatePromptWrite(state) {
|
|
9
|
-
const ctx = serializeWriteContext(state);
|
|
10
|
-
return `You are the annotator for a code-change task. Read the structured outputs from each prior stage and produce a single JSON judgment.
|
|
11
|
-
|
|
12
|
-
Input (truncated for budget):
|
|
13
|
-
\`\`\`json
|
|
14
|
-
${JSON.stringify(ctx, null, 2)}
|
|
15
|
-
\`\`\`
|
|
16
|
-
|
|
17
|
-
Rules:
|
|
18
|
-
1. Emit ONLY a JSON code block with these exact fields: completed (boolean), message (string, 1-3 sentences), findings (array passed through from upstream — you may dedupe identical entries and re-categorize severity ONLY; never invent new findings), summary, filesChanged, commitSha.
|
|
19
|
-
2. Set completed=true ONLY IF (the system applies these gates after your proposal):
|
|
20
|
-
- implement stage advanced; AND
|
|
21
|
-
- review is approved OR (changes_required + rework applied + no unaddressed findings) OR reviewPolicy=none; AND
|
|
22
|
-
- commit gate kind is 'committed' or 'no_op'.
|
|
23
|
-
Worker self-assessment is recorded in telemetry but does not gate completion.
|
|
24
|
-
3. If completed=false, message must name a specific blocking gate or finding ID AND suggest a recovery action.
|
|
25
|
-
4. filesChanged and commitSha must come from commit.payload if it committed, else [] and null. Do not invent them.
|
|
26
|
-
|
|
27
|
-
Output the JSON block now.`;
|
|
28
|
-
}
|
|
29
|
-
export function annotatePromptRead(state) {
|
|
30
|
-
const ctx = serializeReadContext(state);
|
|
31
|
-
return `You are the annotator for a read-only investigation task. Read the structured output from the implement stage and produce a single JSON judgment.
|
|
32
|
-
|
|
33
|
-
Input:
|
|
34
|
-
\`\`\`json
|
|
35
|
-
${JSON.stringify(ctx, null, 2)}
|
|
36
|
-
\`\`\`
|
|
37
|
-
|
|
38
|
-
Rules:
|
|
39
|
-
1. Emit ONLY a JSON code block with these exact fields: completed (boolean), message (string, 1-3 sentences), findings (array passed through from implement.findings; dedupe identical entries and may re-categorize severity — never invent new findings), summary, filesChanged (must be []), commitSha (must be null).
|
|
40
|
-
2. Set completed=true ONLY IF: implement.workerSelfAssessment === 'done' AND (criteriaSucceeded.length > 0 OR criteriaErrors.length === 0).
|
|
41
|
-
3. If completed=false, message must name a specific blocking criterion error or note that the worker self-assessed as failed, AND suggest a recovery action.
|
|
42
|
-
4. Findings count is NOT a completion signal — empty findings on a read route means "I investigated and found nothing wrong," which is a valid completion when (2) holds.
|
|
43
|
-
|
|
44
|
-
Output the JSON block now.`;
|
|
45
|
-
}
|
|
46
|
-
// ───── helpers ─────
|
|
47
|
-
export function serializeWriteContext(state) {
|
|
48
|
-
const last = state.lastRunResult ?? null;
|
|
49
|
-
return {
|
|
50
|
-
task: { id: state.task?.id ?? null, brief: { title: state.task?.brief?.title ?? null, body: (state.task?.brief?.body ?? '').slice(0, 2000) } },
|
|
51
|
-
route: state.route,
|
|
52
|
-
implement: last ? {
|
|
53
|
-
workerSelfAssessment: last.workerStatus ?? null,
|
|
54
|
-
summary: (last.summary ?? '').slice(0, 1000),
|
|
55
|
-
filesChanged: last.filesChanged ?? [],
|
|
56
|
-
} : null,
|
|
57
|
-
review: {
|
|
58
|
-
verdict: reviewPayload(state).verdict ?? null,
|
|
59
|
-
// reviewPayload already folds evidence into each finding's `text`, so the
|
|
60
|
-
// returned shape is { source, text } with no `evidence` field to strip.
|
|
61
|
-
findings: reviewPayload(state).findings,
|
|
62
|
-
},
|
|
63
|
-
rework: {
|
|
64
|
-
applied: state.reworkApplied ?? false,
|
|
65
|
-
error: state.reworkError ?? null,
|
|
66
|
-
unaddressedFindingIds: last?.unaddressedFindingIds ?? [],
|
|
67
|
-
},
|
|
68
|
-
commit: {
|
|
69
|
-
committed: state.gates?.commit?.payload?.kind === 'committed',
|
|
70
|
-
skipReason: (state.gates?.commit?.payload?.kind === 'no_op'
|
|
71
|
-
? state.gates?.commit?.payload?.reason ?? null
|
|
72
|
-
: null),
|
|
73
|
-
sha: last?.commitSha ?? null,
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
export function serializeReadContext(state) {
|
|
78
|
-
const last = state.lastRunResult ?? null;
|
|
79
|
-
return {
|
|
80
|
-
task: { id: state.task?.id ?? null, brief: { title: state.task?.brief?.title ?? null, body: (state.task?.brief?.body ?? '').slice(0, 2000) } },
|
|
81
|
-
route: state.route,
|
|
82
|
-
implement: last ? {
|
|
83
|
-
workerSelfAssessment: last.workerStatus ?? null,
|
|
84
|
-
summary: (last.summary ?? '').slice(0, 1000),
|
|
85
|
-
findings: stripEvidence(last.findings ?? []),
|
|
86
|
-
citations: last.citations ?? [],
|
|
87
|
-
criteriaSucceeded: last.criteriaSucceeded ?? [],
|
|
88
|
-
criteriaErrors: last.criteriaErrors ?? [],
|
|
89
|
-
} : null,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
export function stripEvidence(items) {
|
|
93
|
-
return items.map(i => ({ ...i, evidence: undefined }));
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=annotate-prompts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"annotate-prompts.js","sourceRoot":"","sources":["../../src/lifecycle/annotate-prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-commit.d.ts","sourceRoot":"","sources":["../../src/lifecycle/auto-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAG5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-commit.js","sourceRoot":"","sources":["../../src/lifecycle/auto-commit.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,CAAe;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1E,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { RuntimeRunResult } from '../types.js';
|
|
2
|
-
import type { ContextBlockStore } from '../stores/context-block-tool.js';
|
|
3
|
-
/**
|
|
4
|
-
* Register usable task outputs as a combined context block.
|
|
5
|
-
*
|
|
6
|
-
* Inlined identically in 4 executors (execute-plan, verify, debug, audit).
|
|
7
|
-
* Promoted here so the generic task executor and remaining per-tool
|
|
8
|
-
* executors share a single implementation.
|
|
9
|
-
*/
|
|
10
|
-
export declare function autoRegisterContextBlock(results: RuntimeRunResult[], store: ContextBlockStore | undefined): string | undefined;
|
|
11
|
-
//# sourceMappingURL=auto-register-context-block.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-register-context-block.d.ts","sourceRoot":"","sources":["../../src/lifecycle/auto-register-context-block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,KAAK,EAAE,iBAAiB,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAOpB"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Register usable task outputs as a combined context block.
|
|
3
|
-
*
|
|
4
|
-
* Inlined identically in 4 executors (execute-plan, verify, debug, audit).
|
|
5
|
-
* Promoted here so the generic task executor and remaining per-tool
|
|
6
|
-
* executors share a single implementation.
|
|
7
|
-
*/
|
|
8
|
-
export function autoRegisterContextBlock(results, store) {
|
|
9
|
-
if (!store)
|
|
10
|
-
return undefined;
|
|
11
|
-
const usable = results.filter(r => !r.outputIsDiagnostic && r.output.trim().length > 0);
|
|
12
|
-
if (usable.length === 0)
|
|
13
|
-
return undefined;
|
|
14
|
-
const combined = usable.map(r => r.output).join('\n\n---\n\n');
|
|
15
|
-
const { id } = store.register(combined);
|
|
16
|
-
return id;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=auto-register-context-block.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-register-context-block.js","sourceRoot":"","sources":["../../src/lifecycle/auto-register-context-block.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA2B,EAC3B,KAAoC;IAEpC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { RuntimeRunResult } from '../types/run-result.js';
|
|
2
|
-
/**
|
|
3
|
-
* Builds a cancelled-not-started result envelope. Used by the grouped
|
|
4
|
-
* dispatcher to fill slots for tasks that never began because the batch
|
|
5
|
-
* was aborted mid-group. Reuses workerStatus 'failed' to preserve the
|
|
6
|
-
* existing WorkerStatus enum and asyncDispatch.detectFailure logic; the
|
|
7
|
-
* 'cancelled' errorCode is the distinguishing field for consumers that
|
|
8
|
-
* care.
|
|
9
|
-
*/
|
|
10
|
-
export declare function buildCancelledResult(): RuntimeRunResult;
|
|
11
|
-
//# sourceMappingURL=build-cancelled-result.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-cancelled-result.d.ts","sourceRoot":"","sources":["../../src/lifecycle/build-cancelled-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAevD"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds a cancelled-not-started result envelope. Used by the grouped
|
|
3
|
-
* dispatcher to fill slots for tasks that never began because the batch
|
|
4
|
-
* was aborted mid-group. Reuses workerStatus 'failed' to preserve the
|
|
5
|
-
* existing WorkerStatus enum and asyncDispatch.detectFailure logic; the
|
|
6
|
-
* 'cancelled' errorCode is the distinguishing field for consumers that
|
|
7
|
-
* care.
|
|
8
|
-
*/
|
|
9
|
-
export function buildCancelledResult() {
|
|
10
|
-
return {
|
|
11
|
-
output: '',
|
|
12
|
-
status: 'error',
|
|
13
|
-
usage: { inputTokens: 0, outputTokens: 0, cachedReadTokens: 0, cachedNonReadTokens: 0 },
|
|
14
|
-
turns: 0,
|
|
15
|
-
filesWritten: [],
|
|
16
|
-
outputIsDiagnostic: false,
|
|
17
|
-
escalationLog: [],
|
|
18
|
-
durationMs: 0,
|
|
19
|
-
workerStatus: 'failed',
|
|
20
|
-
errorCode: 'cancelled',
|
|
21
|
-
actualCostUSD: 0,
|
|
22
|
-
directoriesListed: [],
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=build-cancelled-result.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-cancelled-result.js","sourceRoot":"","sources":["../../src/lifecycle/build-cancelled-result.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE;QACvF,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,EAAE;QAChB,kBAAkB,EAAE,KAAK;QACzB,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,QAAQ;QACtB,SAAS,EAAE,WAAW;QACtB,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,EAAE;KACF,CAAC;AACxB,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { RouteName } from '../lifecycle/stage-io.js';
|
|
2
|
-
export interface CompletionInputs {
|
|
3
|
-
route: RouteName;
|
|
4
|
-
implementOutcome: 'advance' | 'skip' | 'halt' | undefined;
|
|
5
|
-
reviewPolicy: 'full' | 'quality_only' | 'diff_only' | 'none';
|
|
6
|
-
reviewVerdict: 'approved' | 'concerns' | 'changes_required' | 'annotated' | 'error' | 'skipped' | undefined;
|
|
7
|
-
reviewSubResults?: Array<{
|
|
8
|
-
name: 'spec' | 'quality';
|
|
9
|
-
verdict: string;
|
|
10
|
-
}>;
|
|
11
|
-
reworkApplied: boolean | undefined;
|
|
12
|
-
reworkError: string | undefined;
|
|
13
|
-
unaddressedFindingIds: string[] | undefined;
|
|
14
|
-
commitKind: 'committed' | 'no_op' | undefined;
|
|
15
|
-
criteriaSucceeded: string[] | undefined;
|
|
16
|
-
/** Goal mode (write routes): commits in baseSha..HEAD. When defined, the
|
|
17
|
-
* goal branch applies — completion = implement advanced AND ≥1 commit
|
|
18
|
-
* (the agent self-commits; there is no MMA review verdict / commit gate). */
|
|
19
|
-
goalCommitCount?: number;
|
|
20
|
-
}
|
|
21
|
-
export interface CompletionResult {
|
|
22
|
-
completed: boolean;
|
|
23
|
-
reasons: string[];
|
|
24
|
-
}
|
|
25
|
-
export declare function deriveCompletion(inputs: CompletionInputs): CompletionResult;
|
|
26
|
-
import type { LifecycleState } from './stage-plan-types.js';
|
|
27
|
-
export declare function extractCompletionInputs(state: LifecycleState): CompletionInputs;
|
|
28
|
-
//# sourceMappingURL=derive-completion.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive-completion.d.ts","sourceRoot":"","sources":["../../src/lifecycle/derive-completion.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAM1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,gBAAgB,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;IAC7D,aAAa,EAAE,UAAU,GAAG,UAAU,GAAG,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5G,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9C,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC;;kFAE8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAwC3E;AAMD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,CA2B/E"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// Pure completion-judgment function. Single source of truth for determining
|
|
2
|
-
// when a task has reached a terminal completion state. Used by:
|
|
3
|
-
// - annotator gate (lifecycle/annotate-parser.ts)
|
|
4
|
-
// - envelope seal (lifecycle/handlers/terminal-handlers.ts)
|
|
5
|
-
//
|
|
6
|
-
// Inputs are objective lifecycle signals — NOT worker self-assessment.
|
|
7
|
-
// Worker self-assessment is logged in telemetry separately, never gates
|
|
8
|
-
// completion.
|
|
9
|
-
const READ_ROUTES = new Set([
|
|
10
|
-
'audit', 'review', 'debug', 'investigate', 'explore', 'research', 'journal-recall',
|
|
11
|
-
]);
|
|
12
|
-
export function deriveCompletion(inputs) {
|
|
13
|
-
const reasons = [];
|
|
14
|
-
// 1. Implementer must have advanced
|
|
15
|
-
const implementOk = inputs.implementOutcome === 'advance';
|
|
16
|
-
if (!implementOk)
|
|
17
|
-
reasons.push('implement did not advance');
|
|
18
|
-
// 2. Route-specific completion
|
|
19
|
-
if (READ_ROUTES.has(inputs.route)) {
|
|
20
|
-
const criteriaOk = (inputs.criteriaSucceeded ?? []).length > 0;
|
|
21
|
-
if (!criteriaOk)
|
|
22
|
-
reasons.push('no successful criteria');
|
|
23
|
-
return { completed: implementOk && criteriaOk, reasons };
|
|
24
|
-
}
|
|
25
|
-
// 3a. Goal-mode write routes: the agent self-commits and there is no MMA
|
|
26
|
-
// review verdict / commit gate. Completion = implementer advanced AND at
|
|
27
|
-
// least one commit landed in baseSha..HEAD (mirrors the status truth table:
|
|
28
|
-
// failed only on zero commits).
|
|
29
|
-
if (inputs.goalCommitCount !== undefined) {
|
|
30
|
-
const committed = inputs.goalCommitCount > 0;
|
|
31
|
-
if (!committed)
|
|
32
|
-
reasons.push('no commits landed');
|
|
33
|
-
return { completed: implementOk && committed, reasons };
|
|
34
|
-
}
|
|
35
|
-
// 3. Write routes (legacy non-goal): review + commit must pass
|
|
36
|
-
const reviewOk = inputs.reviewPolicy === 'none' ||
|
|
37
|
-
inputs.reviewVerdict === 'approved' ||
|
|
38
|
-
(inputs.reviewVerdict === 'changes_required' &&
|
|
39
|
-
inputs.reworkApplied === true &&
|
|
40
|
-
inputs.reworkError === undefined &&
|
|
41
|
-
(inputs.unaddressedFindingIds ?? []).length === 0);
|
|
42
|
-
if (!reviewOk)
|
|
43
|
-
reasons.push('review did not pass');
|
|
44
|
-
const commitOk = inputs.commitKind === 'committed' ||
|
|
45
|
-
inputs.commitKind === 'no_op';
|
|
46
|
-
if (!commitOk)
|
|
47
|
-
reasons.push('commit did not complete');
|
|
48
|
-
return { completed: implementOk && reviewOk && commitOk, reasons };
|
|
49
|
-
}
|
|
50
|
-
import { reviewPayload } from './stage-plan-types.js';
|
|
51
|
-
export function extractCompletionInputs(state) {
|
|
52
|
-
const last = state.lastRunResult;
|
|
53
|
-
// commitKind sources, in priority order:
|
|
54
|
-
// 1. gates.commit.payload.kind — populated by the commit handler (committed / no_op)
|
|
55
|
-
// 2. gates.commit.outcome === 'skip' — populated by the lifecycle driver
|
|
56
|
-
// when shouldRun returned false (e.g., "no files changed"). That is a
|
|
57
|
-
// legitimate no-op for completion purposes.
|
|
58
|
-
const commitGate = state.gates?.commit;
|
|
59
|
-
let commitKind = commitGate?.payload?.kind;
|
|
60
|
-
if (commitKind === undefined && commitGate?.outcome === 'skip') {
|
|
61
|
-
commitKind = 'no_op';
|
|
62
|
-
}
|
|
63
|
-
return {
|
|
64
|
-
route: state.route,
|
|
65
|
-
implementOutcome: state.gates?.implement?.outcome,
|
|
66
|
-
reviewPolicy: state.reviewPolicy,
|
|
67
|
-
reviewVerdict: reviewPayload(state).verdict,
|
|
68
|
-
reviewSubResults: state.reviewSubResults,
|
|
69
|
-
reworkApplied: state.reworkApplied,
|
|
70
|
-
reworkError: state.reworkError,
|
|
71
|
-
unaddressedFindingIds: state.unaddressedFindingIds ?? last?.unaddressedFindingIds,
|
|
72
|
-
commitKind,
|
|
73
|
-
criteriaSucceeded: last?.criteriaSucceeded,
|
|
74
|
-
...(state.goalCommitCount !== undefined && {
|
|
75
|
-
goalCommitCount: state.goalCommitCount,
|
|
76
|
-
}),
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=derive-completion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive-completion.js","sourceRoot":"","sources":["../../src/lifecycle/derive-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { RuntimeRunResult, ReviewVerdict } from '../types.js';
|
|
2
|
-
import type { NotApplicable } from '../reporting/not-applicable.js';
|
|
3
|
-
/** Aggregate timing metrics for a `delegate_tasks` batch. */
|
|
4
|
-
export interface BatchTimings {
|
|
5
|
-
wallClockMs: number;
|
|
6
|
-
sumOfTaskMs: number;
|
|
7
|
-
estimatedParallelSavingsMs: number;
|
|
8
|
-
}
|
|
9
|
-
/** Aggregate completion counts for a `delegate_tasks` batch. */
|
|
10
|
-
export interface BatchProgress {
|
|
11
|
-
totalTasks: number;
|
|
12
|
-
completedTasks: number;
|
|
13
|
-
incompleteTasks: number;
|
|
14
|
-
failedTasks: number;
|
|
15
|
-
successPercent: number;
|
|
16
|
-
}
|
|
17
|
-
/** Aggregate cost metrics for a `delegate_tasks` batch. */
|
|
18
|
-
export interface BatchAggregateCost {
|
|
19
|
-
totalActualCostUSD: number;
|
|
20
|
-
totalCostDeltaVsMainUSD: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Uniform output envelope returned by every executor.
|
|
24
|
-
* Required shape for GET /batch/:id?taskIndex=N slicing (see spec §6.5).
|
|
25
|
-
*
|
|
26
|
-
* All 7 top-level envelope fields are required. Fields that are not
|
|
27
|
-
* applicable for a given executor or code path are set to NotApplicable
|
|
28
|
-
* via `notApplicable(reason)` rather than being omitted. Additional
|
|
29
|
-
* passthrough fields (batchId, contextBlockId, etc.) are preserved
|
|
30
|
-
* alongside the envelope.
|
|
31
|
-
*/
|
|
32
|
-
export interface ExecutorOutput {
|
|
33
|
-
headline: string;
|
|
34
|
-
results: RuntimeRunResult[] | NotApplicable;
|
|
35
|
-
batchTimings: BatchTimings | NotApplicable;
|
|
36
|
-
costSummary: BatchAggregateCost | NotApplicable;
|
|
37
|
-
structuredReport: Record<string, unknown> | NotApplicable;
|
|
38
|
-
error: {
|
|
39
|
-
code: string;
|
|
40
|
-
message: string;
|
|
41
|
-
details?: unknown;
|
|
42
|
-
} | NotApplicable;
|
|
43
|
-
batchId: string;
|
|
44
|
-
contextBlockId?: string;
|
|
45
|
-
wallClockMs?: number;
|
|
46
|
-
mainModel?: string | null;
|
|
47
|
-
specReviewVerdict?: ReviewVerdict;
|
|
48
|
-
qualityReviewVerdict?: ReviewVerdict;
|
|
49
|
-
roundsUsed?: number;
|
|
50
|
-
/** Effective dispatch mode used for this batch ('serial' | 'parallel'). */
|
|
51
|
-
dispatchMode?: import('./tool-config-types.js').DispatchMode;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=executor-output-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor-output-types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/executor-output-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,0BAA0B,EAAE,MAAM,CAAA;CACnC;AAED,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC;IAC5C,YAAY,EAAE,YAAY,GAAG,aAAa,CAAC;IAC3C,WAAW,EAAE,kBAAkB,GAAG,aAAa,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC;IAC1D,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,aAAa,CAAC;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,wBAAwB,EAAE,YAAY,CAAC;CAC9D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor-output-types.js","sourceRoot":"","sources":["../../src/lifecycle/executor-output-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the subset of worker-reported written paths that resolve OUTSIDE cwd.
|
|
3
|
-
*
|
|
4
|
-
* Used at task finalization to hard-fail tasks whose writes escaped the confined
|
|
5
|
-
* working directory — e.g. a worker that wrote into the daemon's startup cwd or a
|
|
6
|
-
* sibling git worktree instead of the dispatched `?cwd=`. The escape is detected
|
|
7
|
-
* from the worker-reported write log (NOT the git diff), because the defining
|
|
8
|
-
* symptom is that git-in-cwd shows clean while the worker actually wrote elsewhere.
|
|
9
|
-
*
|
|
10
|
-
* Containment is checked against the realpath'd cwd so a symlinked file inside cwd
|
|
11
|
-
* that points outside cwd is caught. Paths that don't exist on disk (already
|
|
12
|
-
* deleted, or never actually created) fall back to lexical resolution — still
|
|
13
|
-
* flagged if they resolve outside cwd. Relative paths are resolved against cwd and
|
|
14
|
-
* are therefore inside by construction.
|
|
15
|
-
*/
|
|
16
|
-
export declare function findEscapedWrites(filesWritten: readonly string[], cwd: string): string[];
|
|
17
|
-
//# sourceMappingURL=file-confinement-check.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-confinement-check.d.ts","sourceRoot":"","sources":["../../src/lifecycle/file-confinement-check.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBxF"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { realpathSync } from 'node:fs';
|
|
2
|
-
import { resolve, sep } from 'node:path';
|
|
3
|
-
/**
|
|
4
|
-
* Returns the subset of worker-reported written paths that resolve OUTSIDE cwd.
|
|
5
|
-
*
|
|
6
|
-
* Used at task finalization to hard-fail tasks whose writes escaped the confined
|
|
7
|
-
* working directory — e.g. a worker that wrote into the daemon's startup cwd or a
|
|
8
|
-
* sibling git worktree instead of the dispatched `?cwd=`. The escape is detected
|
|
9
|
-
* from the worker-reported write log (NOT the git diff), because the defining
|
|
10
|
-
* symptom is that git-in-cwd shows clean while the worker actually wrote elsewhere.
|
|
11
|
-
*
|
|
12
|
-
* Containment is checked against the realpath'd cwd so a symlinked file inside cwd
|
|
13
|
-
* that points outside cwd is caught. Paths that don't exist on disk (already
|
|
14
|
-
* deleted, or never actually created) fall back to lexical resolution — still
|
|
15
|
-
* flagged if they resolve outside cwd. Relative paths are resolved against cwd and
|
|
16
|
-
* are therefore inside by construction.
|
|
17
|
-
*/
|
|
18
|
-
export function findEscapedWrites(filesWritten, cwd) {
|
|
19
|
-
if (filesWritten.length === 0)
|
|
20
|
-
return [];
|
|
21
|
-
let cwdReal;
|
|
22
|
-
try {
|
|
23
|
-
cwdReal = realpathSync(resolve(cwd));
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
cwdReal = resolve(cwd);
|
|
27
|
-
}
|
|
28
|
-
const escaped = [];
|
|
29
|
-
for (const p of filesWritten) {
|
|
30
|
-
const abs = resolve(cwdReal, p);
|
|
31
|
-
let real;
|
|
32
|
-
try {
|
|
33
|
-
real = realpathSync(abs);
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
real = abs;
|
|
37
|
-
}
|
|
38
|
-
if (real !== cwdReal && !real.startsWith(cwdReal + sep)) {
|
|
39
|
-
escaped.push(p);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return escaped;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=file-confinement-check.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-confinement-check.js","sourceRoot":"","sources":["../../src/lifecycle/file-confinement-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAA+B,EAAE,GAAW;IAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { FindingsOutcomeKind } from '../reporting/findings-outcome.js';
|
|
2
|
-
export interface Finding {
|
|
3
|
-
id?: string;
|
|
4
|
-
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
5
|
-
category: string;
|
|
6
|
-
claim: string;
|
|
7
|
-
evidence?: string;
|
|
8
|
-
suggestion?: string;
|
|
9
|
-
source?: 'implementer' | 'reviewer';
|
|
10
|
-
}
|
|
11
|
-
export interface FindingsParseResult {
|
|
12
|
-
findings: Finding[];
|
|
13
|
-
outcome: FindingsOutcomeKind;
|
|
14
|
-
}
|
|
15
|
-
type WarnSink = (event: string, data: Record<string, unknown>) => void;
|
|
16
|
-
export declare function parseFindings(text: string, criterionId: string, legalOutcomes?: readonly FindingsOutcomeKind[], warnSink?: WarnSink): FindingsParseResult;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=findings-parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findings-parser.d.ts","sourceRoot":"","sources":["../../src/lifecycle/findings-parser.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAgB5E,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAIvE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,SAAS,mBAAmB,EAAyC,EACpF,QAAQ,GAAE,QAAmB,GAC5B,mBAAmB,CA8HrB"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
// v4.4.x — extracts structured findings from one read-route criterion
|
|
2
|
-
// turn. Worker emits `## Finding N:` blocks per the format spec; this
|
|
3
|
-
// parser converts them into StructuredReport.findings[] entries.
|
|
4
|
-
//
|
|
5
|
-
// Tolerant by design: LLMs vary heading level (## vs ###), heading noun
|
|
6
|
-
// (Finding/Issue/Concern), terminator (colon/period/none), bullet marker
|
|
7
|
-
// (- vs *), and bold wrapping (**Severity:**). Strict canonical format is
|
|
8
|
-
// preferred, but the parser recovers from common drift so a worker mistake
|
|
9
|
-
// becomes a degraded-but-usable result rather than silent data loss.
|
|
10
|
-
// `## Finding 1:` (canonical) plus tolerated drift:
|
|
11
|
-
// - heading level 2–4 (##, ###, ####)
|
|
12
|
-
// - noun: Finding | Issue | Concern (singular only; reviewers use "Concern")
|
|
13
|
-
// - optional space, optional bold (**Finding 1:**)
|
|
14
|
-
// - terminator: `:`, `.`, `)`, or end-of-line
|
|
15
|
-
// Uses [ \t]* (horizontal whitespace) so the regex doesn't cross newlines —
|
|
16
|
-
// `\s*` matches newlines and would let `(.*)` consume the following bullet line.
|
|
17
|
-
const FINDING_HEADING_RE = /^#{2,4}[ \t]*\**[ \t]*(?:Finding|Issue|Concern)[ \t]+(\d+)\**[ \t]*[:.)]?[ \t]*(.*)$/im;
|
|
18
|
-
// Same shape but per-line for the block-splitter (no /m needed when matched line-by-line).
|
|
19
|
-
const FINDING_HEADING_LINE_RE = /^#{2,4}[ \t]*\**[ \t]*(?:Finding|Issue|Concern)[ \t]+\d+\b/i;
|
|
20
|
-
// `- Severity: high` plus tolerated drift: * bullet, **bold:**, no bullet at all.
|
|
21
|
-
const bulletRe = (label) => new RegExp(`^(?:[-*][ \\t]+)?\\**[ \\t]*${label}[ \\t]*\\**[ \\t]*:[ \\t]*(.+)$`, 'im');
|
|
22
|
-
const SEVERITY_VALUES = new Set(['critical', 'high', 'medium', 'low']);
|
|
23
|
-
export function parseFindings(text, criterionId, legalOutcomes = ['found', 'clean', 'not_applicable'], warnSink = () => { }) {
|
|
24
|
-
if (!text || text.trim().length === 0) {
|
|
25
|
-
return { findings: [], outcome: 'clean' };
|
|
26
|
-
}
|
|
27
|
-
const blocks = [];
|
|
28
|
-
const lines = text.split('\n');
|
|
29
|
-
let current = [];
|
|
30
|
-
for (const line of lines) {
|
|
31
|
-
if (FINDING_HEADING_LINE_RE.test(line)) {
|
|
32
|
-
if (current.length > 0)
|
|
33
|
-
blocks.push(current.join('\n'));
|
|
34
|
-
current = [line];
|
|
35
|
-
}
|
|
36
|
-
else if (current.length > 0) {
|
|
37
|
-
current.push(line);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (current.length > 0)
|
|
41
|
-
blocks.push(current.join('\n'));
|
|
42
|
-
const findings = [];
|
|
43
|
-
for (const block of blocks) {
|
|
44
|
-
const headingMatch = block.match(FINDING_HEADING_RE);
|
|
45
|
-
const headingNum = headingMatch?.[1] ?? '?';
|
|
46
|
-
const headingInline = headingMatch?.[2]?.trim() ?? '';
|
|
47
|
-
const headingText = `Finding ${headingNum}: ${headingInline}`;
|
|
48
|
-
// Claim can come from a `- Claim:` bullet (reviewer format) OR the inline
|
|
49
|
-
// text on the heading line (legacy worker format).
|
|
50
|
-
let claim = block.match(bulletRe('Claim'))?.[1]?.trim() ?? '';
|
|
51
|
-
if (!claim)
|
|
52
|
-
claim = headingInline;
|
|
53
|
-
if (claim.startsWith('[N/A]'))
|
|
54
|
-
continue;
|
|
55
|
-
// A finding with no claim text at all is useless downstream — drop it
|
|
56
|
-
// and surface a warning so the operator can spot worker-emission drift.
|
|
57
|
-
if (!claim || claim.trim().length === 0) {
|
|
58
|
-
warnSink('findings_parser_drop', {
|
|
59
|
-
route: criterionId,
|
|
60
|
-
droppedFindingHeading: headingText,
|
|
61
|
-
reasonCode: 'empty_claim',
|
|
62
|
-
});
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
// Emit warning if claim is empty, but continue processing with empty claim
|
|
66
|
-
if (!claim || claim.trim().length === 0) {
|
|
67
|
-
warnSink('findings_parser_drop', {
|
|
68
|
-
route: criterionId,
|
|
69
|
-
droppedFindingHeading: headingText,
|
|
70
|
-
reasonCode: 'empty_claim',
|
|
71
|
-
});
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
const sevRaw = block.match(bulletRe('Severity'))?.[1]?.trim().split(/\s+/)[0]?.toLowerCase();
|
|
75
|
-
// Emit warning if Severity is missing, but continue with default
|
|
76
|
-
if (!sevRaw) {
|
|
77
|
-
warnSink('findings_parser_drop', {
|
|
78
|
-
route: criterionId,
|
|
79
|
-
droppedFindingHeading: headingText,
|
|
80
|
-
reasonCode: 'missing_core_bullet',
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
// Emit warning if Severity is invalid, but continue with default
|
|
84
|
-
const severity = (sevRaw && SEVERITY_VALUES.has(sevRaw))
|
|
85
|
-
? sevRaw
|
|
86
|
-
: 'medium';
|
|
87
|
-
if (sevRaw && !SEVERITY_VALUES.has(sevRaw)) {
|
|
88
|
-
warnSink('findings_parser_drop', {
|
|
89
|
-
route: criterionId,
|
|
90
|
-
droppedFindingHeading: headingText,
|
|
91
|
-
reasonCode: 'invalid_severity',
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
const category = block.match(bulletRe('Category'))?.[1]?.trim().split(/\s+/)[0] ?? criterionId;
|
|
95
|
-
const evidence = (block.match(bulletRe('Evidence'))?.[1] ?? block.match(bulletRe('Issue'))?.[1])?.trim();
|
|
96
|
-
const suggestion = (block.match(bulletRe('Suggestion'))?.[1] ?? block.match(bulletRe('Fix'))?.[1])?.trim();
|
|
97
|
-
// Drop for investigate routes if Evidence contains no file:line citation
|
|
98
|
-
// ANYWHERE. Workers naturally write `In [src/foo.ts:42] the function …` or
|
|
99
|
-
// wrap citations in markdown links — both forms now pass; only evidence
|
|
100
|
-
// that is pure prose with no path:line gets dropped.
|
|
101
|
-
if (criterionId.startsWith('investigate-') && evidence && !/[\w./-]+:\d+/.test(evidence)) {
|
|
102
|
-
warnSink('findings_parser_drop', {
|
|
103
|
-
route: criterionId,
|
|
104
|
-
droppedFindingHeading: headingText,
|
|
105
|
-
reasonCode: 'invalid_evidence_format',
|
|
106
|
-
});
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
const f = { severity, category, claim };
|
|
110
|
-
if (evidence)
|
|
111
|
-
f.evidence = evidence;
|
|
112
|
-
if (suggestion)
|
|
113
|
-
f.suggestion = suggestion;
|
|
114
|
-
findings.push(f);
|
|
115
|
-
}
|
|
116
|
-
// Extract outcome. Canonical: `## Outcome\nfound`. Tolerated drift:
|
|
117
|
-
// `## Outcome: found` (inline), `### Outcome\nfound` (heading level),
|
|
118
|
-
// `**Outcome:** found` (bold bullet), `Outcome: found` (no heading).
|
|
119
|
-
// Whichever form, value must be one of the legal-outcome enum literals.
|
|
120
|
-
let outcome = findings.length > 0 ? 'found' : 'clean';
|
|
121
|
-
// Horizontal-whitespace only on the heading line; newline before the value
|
|
122
|
-
// on the next line is explicit. Three alternatives covered:
|
|
123
|
-
// 1. `## Outcome\nfound` (heading + next-line value)
|
|
124
|
-
// 2. `## Outcome: found` (heading + inline value)
|
|
125
|
-
// 3. `Outcome: found` (bullet/bold/plain, no heading)
|
|
126
|
-
const OUTCOME_LINE_RE = /^(?:#{2,4}[ \t]*\**[ \t]*Outcome\**[ \t]*[:.]?[ \t]*(\w*)[ \t]*\n[ \t]*(\w*)|(?:[-*][ \t]+)?\**[ \t]*Outcome[ \t]*\**[ \t]*:[ \t]*(\w+))/im;
|
|
127
|
-
const m = text.match(OUTCOME_LINE_RE);
|
|
128
|
-
if (m) {
|
|
129
|
-
const raw = (m[1] || m[2] || m[3] || '').trim().toLowerCase();
|
|
130
|
-
if (raw === 'found' || raw === 'clean' || raw === 'not_applicable') {
|
|
131
|
-
outcome = raw;
|
|
132
|
-
}
|
|
133
|
-
// empty / unrecognized → keep the inferred outcome from findings.length
|
|
134
|
-
}
|
|
135
|
-
// Honor the route's legal-outcome set: if the worker declared a value that's
|
|
136
|
-
// illegal for this criterion (e.g. 'not_applicable' on an issue-hunting
|
|
137
|
-
// route), fall back to the inferred outcome rather than emit garbage.
|
|
138
|
-
if (!legalOutcomes.includes(outcome)) {
|
|
139
|
-
outcome = findings.length > 0 ? 'found' : (legalOutcomes[0] ?? 'clean');
|
|
140
|
-
}
|
|
141
|
-
return { findings, outcome };
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=findings-parser.js.map
|