@tea-agent/loop-agent 0.39.0-next.9 → 0.39.1
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/AGENTS.md +4 -1
- package/CHANGELOG.md +269 -69
- package/README.md +11 -5
- package/bin/loop-agent.js +7 -3
- package/dist/application/dag/generate-task-dag.js +9 -0
- package/dist/application/task-lifecycle/advance.js +16 -0
- package/dist/build-stamp.json +3 -3
- package/dist/cli/command-definitions.js +16 -5
- package/dist/cli/program.js +16 -2
- package/dist/cli/update/notifier.js +2 -2
- package/dist/cli/update/runtime-activity.js +1 -29
- package/dist/cli.js +2 -1
- package/dist/commands/dag-rerun.js +55 -1
- package/dist/commands/init-model-catalog.js +464 -0
- package/dist/commands/init-upgrade.js +265 -97
- package/dist/commands/init.js +428 -27
- package/dist/commands/inspect-next.js +8 -0
- package/dist/commands/task-advance.js +31 -0
- package/dist/executors/dag-pi-executor.js +124 -18
- package/dist/executors/pi-event-serializer.js +42 -1
- package/dist/executors/pi-executor.js +51 -0
- package/dist/executors/pi-extension-resolver.js +233 -0
- package/dist/executors/pi-playwright-cli-tool.js +74 -28
- package/dist/executors/pi-sdk-executor.js +187 -59
- package/dist/executors/shell-executor.js +555 -34
- package/dist/executors/shell-write-guard.js +7 -0
- package/dist/shared/dag-failure-category.js +138 -0
- package/dist/shared/dag-prompt-override.js +27 -0
- package/dist/shared/operator/capabilities.js +181 -27
- package/dist/shared/playwright-cli-command-policy.js +15 -0
- package/dist/shared/update/console-notifier.js +100 -0
- package/dist/{cli → shared}/update/npm-client.js +70 -15
- package/dist/{cli → shared}/update/state.js +41 -13
- package/dist/task/config-types.js +28 -0
- package/dist/task/contract/apply.js +11 -1
- package/dist/task/contract/constants.js +3 -0
- package/dist/task/contract/diff.js +26 -0
- package/dist/task/contract/hash.js +3 -0
- package/dist/task/contract/observe.js +25 -4
- package/dist/task/contract/paths.js +2 -1
- package/dist/task/contract/project.js +20 -1
- package/dist/task/contract/schema.js +8 -1
- package/dist/task/contract/transaction.js +12 -0
- package/dist/task/source-prepare/build-draft.js +15 -0
- package/dist/task/source-prepare/completeness.js +188 -0
- package/dist/task/source-prepare/fragment-inventory.js +474 -0
- package/dist/task/source-prepare/index.js +3 -0
- package/dist/task/source-prepare/ledger-reconciliation.js +127 -0
- package/dist/task/source-prepare/ledger-review.js +214 -0
- package/dist/task/source-prepare/ledger.js +545 -0
- package/dist/task/source-prepare/parse-intent.js +24 -4
- package/dist/task/source-prepare/prepare.js +262 -1
- package/dist/task/source-prepare/semantic-intake.js +19 -3
- package/dist/task/source-prepare/source-fidelity-pi.js +384 -0
- package/dist/task/source-prepare/types.js +22 -0
- package/dist/worker/cli.js +18 -2
- package/dist/worker/console/chat/deferred-turn.js +91 -0
- package/dist/worker/console/chat/mcp-inventory.js +221 -0
- package/dist/worker/console/chat/operation-card.js +8 -1
- package/dist/worker/console/chat/pi-console-config.js +81 -10
- package/dist/worker/console/chat/pi-runtime.js +165 -83
- package/dist/worker/console/chat/repo-walk.js +10 -1
- package/dist/worker/console/chat/routes.js +480 -55
- package/dist/worker/console/chat/semantic-activity.js +20 -8
- package/dist/worker/console/chat/session-store.js +146 -2
- package/dist/worker/console/chat/turn-process.js +10 -10
- package/dist/worker/console/console-handoff.js +82 -0
- package/dist/worker/console/console-update-and-init.js +115 -0
- package/dist/worker/console/console-update-runtime.js +84 -0
- package/dist/worker/console/dag-execution-receipt.js +33 -0
- package/dist/worker/console/draft-store.js +49 -0
- package/dist/worker/console/inspect-split.js +18 -0
- package/dist/worker/console/operation-run-facts.js +19 -3
- package/dist/worker/console/operation-store.js +1 -1
- package/dist/worker/console/operator-actions.js +320 -4
- package/dist/worker/console/operator-surface-health.js +1 -0
- package/dist/worker/console/operator-user-error.js +2 -2
- package/dist/worker/console/pi-readiness.js +5 -4
- package/dist/worker/console/prd-intake-bridge.js +13 -0
- package/dist/worker/console/recovery-cta.js +4 -4
- package/dist/worker/console/recovery-error-copy.js +4 -4
- package/dist/worker/console/routes.js +46 -2
- package/dist/worker/console/security.js +63 -9
- package/dist/worker/console/server.js +111 -7
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-BLXFe4qI.js → abnfDiagram-N423BO3Z-CTx1TrNa.js} +1 -1
- package/dist/worker/console/static/assets/{arc-7iOJeqho.js → arc-B4i9cVxX.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-CYoyj5K7.js → architectureDiagram-T3A2C74G-BAXE8_Rl.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-fK01JNlR.js → blockDiagram-VBNYF7ZC-C5Xh59at.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-bzbw5D_Z.js → c4Diagram-5PPSVZJV-B_asOzAu.js} +1 -1
- package/dist/worker/console/static/assets/channel-Dj_4Moei.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-Cf6hJFFG.js → chunk-2GRJ4B5K-wRO_iRNc.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-DSFXR-et.js → chunk-2Q5K7J3B-ByOaSh_G.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BagJechl.js → chunk-5RXB4S5H-DjLzudan.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-E7QNMFaW.js → chunk-5VM5RSS4-JCNGkXYT.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-BG_eOBrC.js → chunk-6Q2QTUOP-BhrPXXMZ.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-Bo42dqol.js → chunk-GF5L2VYU-TJ5JuEBT.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-dibM-87v.js → chunk-JWPE2WC7-VVthn_mD.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-Bytrp3Oe.js → chunk-KBJHAD2P-D60-Mny4.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-DBABILrr.js → chunk-RYQCIY6F-zXv7aVye.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-DCUk5Pf9.js → chunk-XXDRQBXY-By9VQoi1.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-C0YYAyCa.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-C0YYAyCa.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BlGE9v6E.js → cose-bilkent-JH36ORCC-C4zQLe-M.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-DGl5ewph.js → cynefin-VYW2F7L2-wh5N2ReN.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-DsJ_SVH_.js → cynefinDiagram-MW4NZA55-Dlu5wIqs.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-BIhjFdzv.js → dagre-VZM6K2ZE-CrDgthc6.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-Dmy1ctTb.js → diagram-7IWD3JNH-zN1clg27.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-DYCtWUF3.js → diagram-B4RE2ZJO-BN-o7J7-.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-BMZFHVd2.js → diagram-LBJQPF4R-C8SuPt0d.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-b_U8gfaO.js → diagram-Q27KOJAE-BoizuHbZ.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-Dzy_bn-I.js → diagram-UB23O5K3-BzUzXixG.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-DJCiMNEI.js → ebnfDiagram-BXEA7PRR-Ev3lA4Cf.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-28lD016B.js → erDiagram-JOGREHBK-GALUzRbs.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-DGyHJmIw.js → flowDiagram-UKHOOZJN-CZJN65Sb.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-CzdwUjrO.js → ganttDiagram-PKOTCBZU-JLB9OESl.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-D9bGwuo8.js → gitGraphDiagram-DS77QQ5N-CcvCr4GD.js} +1 -1
- package/dist/worker/console/static/assets/index-CW88Fjbw.js +406 -0
- package/dist/worker/console/static/assets/index-DP0ZJl39.css +1 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-LJgJUQFC.js → infoDiagram-6WML65LV-HG5z7aVg.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-98LaB8zb.js → ishikawaDiagram-WSZJBQD7-BHEu9chR.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-D-ISzwlQ.js → journeyDiagram-NVQOT4AX-Cp_Up8-a.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-gfYOI-EL.js → kanban-definition-27J2QSJJ-DvVeY-em.js} +1 -1
- package/dist/worker/console/static/assets/{linear-CyntZgKV.js → linear-aGmcjgTn.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-BBOR7dg0.js → mermaid.core-Biyo-tqA.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-CQAgwPMk.js → mindmap-definition-FAOFIHXS-DyxY2pIb.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-DkMiZFuV.js → pegDiagram-VL7TDLO6-CkdGuc50.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-DLNXa_0J.js → pieDiagram-7S7Q4E2Y-NNQI9xVR.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-Dc7bdzjm.js → quadrantDiagram-CIZ2JOQS-PAJkuz_G.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-BxMB0QqW.js → railroadDiagram-AXF67PYL-ZwrQod0O.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-FjumoKn4.js → requirementDiagram-LRYGKXZP-D3ZfrzM2.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-CkhKc_E3.js → sankeyDiagram-W5VNT64P-DDGFmWk5.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-DoBWqTTH.js → sequenceDiagram-SI44F4Z6-DO6mmXTA.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CQeh_YeE.js → sizeCapture-X5ZJPWSS-DMbCQiJt.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-LuHmFW-I.js → stateDiagram-OKZ733FA-Di_YUEfC.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DrdDvela.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-CHwbDctY.js → swimlanes-SLNWSIFB-Bn2PphNJ.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DPkEAULl.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-CoMngk0X.js → timeline-definition-Z64GVDOM-DPh8pRsp.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-CURYbtbO.js → vennDiagram-T6HMQDX7-GMfl26pW.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-BdqSECjU.js → wardleyDiagram-T6FBY63Y-DTlmVrmF.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-DbMUYuAg.js → xychartDiagram-ELKLHX3M-YGBjKAS5.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static-src/app/console-types.js +40 -1
- package/dist/worker/console/static-src/app/useOperatorActions.js +6 -1
- package/dist/worker/console/static-src/app/useRecoveryActions.js +2 -2
- package/dist/worker/console/static-src/app/useRecoveryConsole.js +38 -2
- package/dist/worker/console/static-src/app/useRunProgress.js +46 -0
- package/dist/worker/console/static-src/app/useTaskWizard.js +73 -1
- package/dist/worker/console/static-src/operator-chat/cards/failure-category-advice.js +25 -0
- package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +74 -26
- package/dist/worker/console/static-src/operator-chat/input-history.js +76 -0
- package/dist/worker/console/static-src/operator-chat/mutation-gate.js +1 -1
- package/dist/worker/console/static-src/operator-chat/open-preview-in-browser.js +328 -0
- package/dist/worker/console/static-src/operator-chat/resource-diagnostics.js +204 -0
- package/dist/worker/console/static-src/operator-chat/turn-stream-controller.js +8 -1
- package/dist/worker/console/static-src/operator-chat/turn-submission.js +54 -0
- package/dist/worker/console/static-src/operator-chat/useChatSessions.js +3 -0
- package/dist/worker/console/static-src/operator-chat/useChatStream.js +237 -11
- package/dist/worker/console/static-src/operator-chat/useChatThread.js +50 -22
- package/dist/worker/console/static-src/operator-chat/useComposer.js +32 -0
- package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +26 -1
- package/dist/worker/console/static-src/pages/tasks/run-id-resolution.js +79 -0
- package/dist/worker/console/static-src/pages/tasks/run-ownership-verify.js +23 -0
- package/dist/worker/console/static-src/pages/tasks/run-panel-progress.js +110 -0
- package/dist/worker/loop-agent/loop-agent-client.js +7 -3
- package/dist/worker/materialize/harness-task-lineage.js +5 -2
- package/dist/worker/observability/init-runtime-activity.js +26 -0
- package/dist/worker/observability/read-model.js +22 -0
- package/dist/worker/observe/node-input.js +160 -3
- package/dist/worker/observe/node-process.js +377 -0
- package/dist/worker/observe/routes.js +224 -3
- package/dist/worker/observe/shell-handler-keys.js +34 -0
- package/dist/worker/observe/static/api.js +67 -1
- package/dist/worker/observe/static/constants.js +8 -1
- package/dist/worker/observe/static/dag-history-labels.js +4 -0
- package/dist/worker/observe/static/format.js +60 -0
- package/dist/worker/observe/static/index.html +5 -0
- package/dist/worker/observe/static/markdown-render.js +20 -1
- package/dist/worker/observe/static/operator-chrome.js +4 -0
- package/dist/worker/observe/static/prompt-restart-candidates.d.ts +18 -0
- package/dist/worker/observe/static/prompt-restart-candidates.js +36 -0
- package/dist/worker/observe/static/state.js +13 -2
- package/dist/worker/observe/static/styles.css +85 -0
- package/dist/worker/observe/static/views/dag-inspector.js +912 -8
- package/dist/worker/observe/static/views/dag.js +8 -1
- package/dist/worker/observe/static/views/failures.js +5 -2
- package/dist/worker/observe/static/views/session-timeline.js +78 -9
- package/dist/worker/observe/static/views/task.js +55 -0
- package/dist/workflows/dag/backend-test-case-coverage-analysis.js +856 -54
- package/dist/workflows/dag/backend-test-case-manifest.js +4 -0
- package/dist/workflows/dag/backend-test-execution-contract.js +18 -9
- package/dist/workflows/dag/backend-test-gap-fill.js +205 -0
- package/dist/workflows/dag/backend-test-intake-context.js +32 -0
- package/dist/workflows/dag/backend-test-layout.js +133 -0
- package/dist/workflows/dag/backend-test-markdown-workflow.js +343 -33
- package/dist/workflows/dag/backend-test-module-stem.js +5 -0
- package/dist/workflows/dag/backend-test-pytest-collection.js +454 -36
- package/dist/workflows/dag/backend-test-result-contract.js +1 -1
- package/dist/workflows/dag/backend-test-scenario-param.js +884 -140
- package/dist/workflows/dag/backend-test-scenario-partitions.js +321 -0
- package/dist/workflows/dag/backend-test-writer-completeness.js +110 -61
- package/dist/workflows/dag/contract-output-registry.js +15 -0
- package/dist/workflows/dag/contract-validator-registrations.js +3 -1
- package/dist/workflows/dag/convergence/controller.js +141 -0
- package/dist/workflows/dag/dynamic-runtime/loop-until.js +1 -1
- package/dist/workflows/dag/dynamic-runtime/map.js +25 -9
- package/dist/workflows/dag/dynamic-runtime/shared.js +1 -1
- package/dist/workflows/dag/failure-category.js +7 -116
- package/dist/workflows/dag/frontend-implementation-contract.js +465 -6
- package/dist/workflows/dag/frontend-plan-render.js +24 -0
- package/dist/workflows/dag/frontend-prewrite-gate.js +293 -84
- package/dist/workflows/dag/frontend-repair.js +14 -0
- package/dist/workflows/dag/frontend-review-context.js +92 -10
- package/dist/workflows/dag/frontend-risk.js +15 -2
- package/dist/workflows/dag/frontend-test-case-checklist.js +30 -4
- package/dist/workflows/dag/frontend-test-case-manifest.js +11 -4
- package/dist/workflows/dag/frontend-test-case-quality.js +11 -16
- package/dist/workflows/dag/frontend-test-environment-probe.js +230 -0
- package/dist/workflows/dag/frontend-test-html-report.js +3 -1
- package/dist/workflows/dag/frontend-test-l5-report.js +3 -1
- package/dist/workflows/dag/frontend-test-layout.js +159 -0
- package/dist/workflows/dag/frontend-test-markdown.js +61 -0
- package/dist/workflows/dag/frontend-test-result-contract.js +188 -42
- package/dist/workflows/dag/frontend-test-standard-scenarios.js +70 -0
- package/dist/workflows/dag/frontend-verification-trace.js +29 -4
- package/dist/workflows/dag/init-hybrid.js +1019 -209
- package/dist/workflows/dag/node-execution.js +228 -15
- package/dist/workflows/dag/prompt.js +60 -1
- package/dist/workflows/dag/rerun-feedback.js +212 -0
- package/dist/workflows/dag/rerun-plan.js +224 -27
- package/dist/workflows/dag/rerun-run.js +61 -6
- package/dist/workflows/dag/rerun-task.js +61 -2
- package/dist/workflows/dag/retry-policy.js +109 -0
- package/dist/workflows/dag/structured-output-repair.js +712 -0
- package/dist/workflows/dag/types.js +185 -12
- package/dist/workflows/dag/validate.js +64 -20
- package/docs/README.md +1 -0
- package/docs/architecture/evolution.md +45 -0
- package/docs/init-surface.manifest.json +6 -0
- package/docs/operations/README.md +1 -1
- package/docs/operations/local-development-environment.md +1 -5
- package/docs/skills/vetted-skill-registry.md +14 -0
- package/docs/templates/README.md +2 -2
- package/docs/templates/agent-dag.schema.json +44 -0
- package/docs/templates/backend-test-dag.json +60 -35
- package/docs/templates/frontend-implementation-contract.schema.json +681 -24
- package/docs/templates/frontend-test-case-checklist.md +2 -2
- package/docs/templates/frontend-test-dag.json +8 -10
- package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +1 -1
- package/docs/templates/init-managed-agents.md +13 -3
- package/harness.json +6 -4
- package/package.json +12 -4
- package/scripts/next-info.mjs +356 -0
- package/scripts/next-publish-gate.mjs +238 -0
- package/scripts/release-source-binding.mjs +251 -0
- package/skills/analyze-product-requirements/SKILL.md +8 -5
- package/skills/analyze-product-requirements/references/acceptance-criteria.md +1 -1
- package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +10 -6
- package/skills/analyze-product-requirements/references/example.md +50 -0
- package/skills/analyze-product-requirements/references/forward-test-cases.md +11 -7
- package/skills/analyze-product-requirements/references/kb-integration.md +5 -5
- package/skills/analyze-product-requirements/references/product-analysis-schema.md +8 -4
- package/skills/analyze-product-requirements/references/product-requirement-schema.md +2 -2
- package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +1 -1
- package/skills/analyze-product-requirements/scripts/test-validators.mjs +11 -1
- package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +20 -1
- package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +9 -0
- package/skills/codebase-scout/SKILL.md +1 -1
- package/skills/fe-test-ui-scout/SKILL.md +65 -0
- package/skills/fe-test-ui-scout/references/ledger-schema.md +62 -0
- package/skills/fe-test-ui-scout/references/recon-protocol.md +54 -0
- package/skills/frontend-implementation/references/node-contracts.md +2 -2
- package/skills/improve-codebase-architecture/SKILL.md +81 -0
- package/skills/improve-codebase-architecture/deepening.md +37 -0
- package/skills/improve-codebase-architecture/html-report.md +123 -0
- package/skills/improve-codebase-architecture/interface-design.md +44 -0
- package/skills/improve-codebase-architecture/language.md +53 -0
- package/skills/loop-agent/references/command-reference.md +11 -4
- package/skills/loop-agent/references/hybrid-dag.md +7 -0
- package/skills/playwright-cli/SKILL.md +23 -1
- package/skills/playwright-cli-case-generator/SKILL.md +29 -8
- package/dist/worker/console/static/assets/channel-BBOTJHvD.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-Cm8Yf8tD.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-Cm8Yf8tD.js +0 -1
- package/dist/worker/console/static/assets/index-B-qWGThd.js +0 -325
- package/dist/worker/console/static/assets/index-C-xRgY_0.css +0 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DZihfdKc.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-CKnXCjHX.js +0 -8
|
@@ -279,6 +279,7 @@ export async function generateTaskDagUseCase(input) {
|
|
|
279
279
|
const candidateResult = await initHybridDagFromTask(repoRoot, parsed.taskId, {
|
|
280
280
|
outputPath: parsed.outputPath,
|
|
281
281
|
template: "standard-dag",
|
|
282
|
+
rerunFeedback: parsed.rerunFeedback,
|
|
282
283
|
});
|
|
283
284
|
const candidateValidateSummary = await validateDagUseCase(buildValidateInput(repoRoot, candidateResult.outputPath, parsed));
|
|
284
285
|
const profileRouting = await resolveProfileRouting(repoRoot, parsed, candidateValidateSummary.governanceProfile ?? {
|
|
@@ -324,8 +325,16 @@ export async function generateTaskDagUseCase(input) {
|
|
|
324
325
|
: await initHybridDagFromTask(repoRoot, parsed.taskId, {
|
|
325
326
|
outputPath: parsed.outputPath,
|
|
326
327
|
template: profileRouting.selectedTemplate,
|
|
328
|
+
rerunFeedback: parsed.rerunFeedback,
|
|
327
329
|
});
|
|
328
330
|
const outputPath = initResult.outputPath;
|
|
331
|
+
if (parsed.expectedRerunFeedbackDigest) {
|
|
332
|
+
const generatedSpec = parseDagSpec(JSON.parse(await readFile(outputPath, "utf8")));
|
|
333
|
+
if (generatedSpec.rerunFeedback?.digest !==
|
|
334
|
+
parsed.expectedRerunFeedbackDigest) {
|
|
335
|
+
throw new Error(`rerun feedback drift: expected ${parsed.expectedRerunFeedbackDigest}, got ${generatedSpec.rerunFeedback?.digest ?? "missing"}`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
329
338
|
const validateSummary = profileRouting.selectedTemplate === candidateResult.template
|
|
330
339
|
? candidateValidateSummary
|
|
331
340
|
: await validateDagUseCase(buildValidateInput(repoRoot, outputPath, parsed));
|
|
@@ -3,6 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import { createTask, getTaskPaths, loadTaskConfig, } from "../../task/runtime.js";
|
|
4
4
|
import { importPrdDocument } from "../../task/source-references.js";
|
|
5
5
|
import { prepareTaskSource } from "../../task/source-prepare/index.js";
|
|
6
|
+
import { resolveProductionSourceFidelityPi } from "../../task/source-prepare/source-fidelity-pi.js";
|
|
6
7
|
import { isIntakeSoftGapCode, resolvePrdImportRole, } from "../../task/source-prepare/artifact-meta.js";
|
|
7
8
|
import { sanitizeDraftPlaceholders } from "../../task/source-prepare/placeholder-paths.js";
|
|
8
9
|
import { evaluateSemanticIntakeEligibility, isSemanticIntakeDisabled, readSemanticIntakeAttempted, runSemanticIntake, } from "../../task/source-prepare/semantic-intake.js";
|
|
@@ -38,6 +39,7 @@ function hasEngineeringBoundary(input) {
|
|
|
38
39
|
return Boolean((input.allowedPaths && input.allowedPaths.length > 0) ||
|
|
39
40
|
(input.forbiddenPaths && input.forbiddenPaths.length > 0) ||
|
|
40
41
|
(input.verifyCommands && input.verifyCommands.length > 0) ||
|
|
42
|
+
input.backendTest !== undefined ||
|
|
41
43
|
input.fromText ||
|
|
42
44
|
input.fromDraftPath);
|
|
43
45
|
}
|
|
@@ -584,6 +586,15 @@ export async function advanceTaskLifecycle(input) {
|
|
|
584
586
|
continue;
|
|
585
587
|
}
|
|
586
588
|
if (action.type === "prepare-contract") {
|
|
589
|
+
// 生产 source fidelity Pi 接线(AC-PROD-001/005):仅 frontend-implementation
|
|
590
|
+
// 任务注入 reconcile executor + 独立 reviewer;ineligible 返回 undefined 不接线。
|
|
591
|
+
// 主路径与 semantic-intake retry 路径共用同一接线,保证任意一条生产路径都实际
|
|
592
|
+
// 触发 reconciliation executor(修复前两处均缺省导致生产路径从不调用 Pi)。
|
|
593
|
+
const sourceFidelity = await resolveProductionSourceFidelityPi({
|
|
594
|
+
repoRoot: input.repoRoot,
|
|
595
|
+
taskId: input.taskId,
|
|
596
|
+
taskKind: input.taskKind,
|
|
597
|
+
});
|
|
587
598
|
let draftIntent = null;
|
|
588
599
|
if (input.fromDraftPath) {
|
|
589
600
|
try {
|
|
@@ -632,7 +643,9 @@ export async function advanceTaskLifecycle(input) {
|
|
|
632
643
|
allowedPaths: effectiveInput.allowedPaths,
|
|
633
644
|
forbiddenPaths: input.forbiddenPaths,
|
|
634
645
|
verifyCommands: effectiveInput.verifyCommands,
|
|
646
|
+
backendTest: input.backendTest,
|
|
635
647
|
},
|
|
648
|
+
...(sourceFidelity ? { sourceFidelity } : {}),
|
|
636
649
|
});
|
|
637
650
|
if (!prepareResult.ok) {
|
|
638
651
|
const gapCodes = (prepareResult.gaps ?? [])
|
|
@@ -687,6 +700,7 @@ export async function advanceTaskLifecycle(input) {
|
|
|
687
700
|
allowedPaths: effectiveInput.allowedPaths,
|
|
688
701
|
forbiddenPaths: input.forbiddenPaths,
|
|
689
702
|
verifyCommands: effectiveInput.verifyCommands,
|
|
703
|
+
backendTest: input.backendTest,
|
|
690
704
|
},
|
|
691
705
|
});
|
|
692
706
|
if (semantic.ok) {
|
|
@@ -707,7 +721,9 @@ export async function advanceTaskLifecycle(input) {
|
|
|
707
721
|
allowedPaths: effectiveInput.allowedPaths,
|
|
708
722
|
forbiddenPaths: input.forbiddenPaths,
|
|
709
723
|
verifyCommands: effectiveInput.verifyCommands,
|
|
724
|
+
backendTest: input.backendTest,
|
|
710
725
|
},
|
|
726
|
+
...(sourceFidelity ? { sourceFidelity } : {}),
|
|
711
727
|
});
|
|
712
728
|
if (retry.ok) {
|
|
713
729
|
warnings.push({
|
package/dist/build-stamp.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "0.
|
|
4
|
-
"gitSha": "
|
|
5
|
-
"builtAt": "2026-08-
|
|
3
|
+
"version": "0.39.1",
|
|
4
|
+
"gitSha": "0111f8b7ae21df3ec1c46c7b520d92db16cf44a6",
|
|
5
|
+
"builtAt": "2026-08-25T09:12:07.381Z"
|
|
6
6
|
}
|
|
@@ -7,6 +7,7 @@ import { runCoverageReport } from "../commands/coverage-report.js";
|
|
|
7
7
|
import { runExamples } from "../commands/examples.js";
|
|
8
8
|
import { runHandoffCheck } from "../commands/handoff-check.js";
|
|
9
9
|
import { runInspect } from "../commands/inspect.js";
|
|
10
|
+
import { runInspectNext } from "../commands/inspect-next.js";
|
|
10
11
|
import { runInstructions } from "../commands/instructions.js";
|
|
11
12
|
import { runTaskAdvance } from "../commands/task-advance.js";
|
|
12
13
|
import { runTaskStatus } from "../commands/task-status.js";
|
|
@@ -74,6 +75,7 @@ export function parseSummaryFlag(tokens) {
|
|
|
74
75
|
const DOCS_SUBCOMMANDS = ["audit", "archive"];
|
|
75
76
|
const INIT_SUBCOMMANDS = [
|
|
76
77
|
"instructions",
|
|
78
|
+
"model-catalog",
|
|
77
79
|
"doctor",
|
|
78
80
|
"check-update",
|
|
79
81
|
"update",
|
|
@@ -162,10 +164,19 @@ export const COMMAND_DEFINITIONS = [
|
|
|
162
164
|
name: "inspect",
|
|
163
165
|
adapter: "required",
|
|
164
166
|
tier: "operator",
|
|
165
|
-
intent: "Inspect the target repo harness manifest.",
|
|
166
|
-
usage: "inspect",
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
intent: "Inspect the target repo harness manifest, or report the current npm next binding.",
|
|
168
|
+
usage: "inspect | inspect next [--json]",
|
|
169
|
+
subcommands: ["next"],
|
|
170
|
+
handler: async ({ adapter, repoRoot, subcommand, rest }) => {
|
|
171
|
+
if (subcommand === "next") {
|
|
172
|
+
await runInspectNext(repoRoot, rest.filter((arg) => Boolean(arg)));
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (subcommand === undefined || subcommand.startsWith("-")) {
|
|
176
|
+
await runInspect(adapter, repoRoot);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
throw new Error("usage: inspect | inspect next [--json]");
|
|
169
180
|
},
|
|
170
181
|
},
|
|
171
182
|
{
|
|
@@ -205,7 +216,7 @@ export const COMMAND_DEFINITIONS = [
|
|
|
205
216
|
adapter: "none",
|
|
206
217
|
tier: "primary",
|
|
207
218
|
intent: "Initialize a target repository with loop-agent harness capabilities.",
|
|
208
|
-
usage: "init [instructions|doctor|check-update|update|reconcile|upgrade] [--profile full|minimal] [--merge] [--json|--markdown] [--bootstrap-surface|--apply-safe] [--client-recovery=auto|project|user|off] [--run-id <id> --status|--continue|--report]",
|
|
219
|
+
usage: "init [instructions|model-catalog|doctor|check-update|update|reconcile|upgrade] [--profile full|minimal] [--merge] [--model provider/model | --low-model provider/model --med-model provider/model --high-model provider/model] [--json|--markdown] [--bootstrap-surface|--apply-safe] [--client-recovery=auto|project|user|off] [--run-id <id> --status|--continue|--report]",
|
|
209
220
|
subcommands: [...INIT_SUBCOMMANDS],
|
|
210
221
|
handler: async ({ repoRoot, subcommand, rest }) => {
|
|
211
222
|
await runInit(repoRoot, [subcommand, ...rest].filter(Boolean), { readRuntimeActivity: readInitRuntimeActivity });
|
package/dist/cli/program.js
CHANGED
|
@@ -33,6 +33,7 @@ import { runHarvest } from "../commands/harvest.js";
|
|
|
33
33
|
import { runInit } from "../commands/init.js";
|
|
34
34
|
import { readInitRuntimeActivity } from "./update/runtime-activity.js";
|
|
35
35
|
import { runInspect } from "../commands/inspect.js";
|
|
36
|
+
import { runInspectNext } from "../commands/inspect-next.js";
|
|
36
37
|
import { runInstructions } from "../commands/instructions.js";
|
|
37
38
|
import { runKnowledge } from "../commands/knowledge.js";
|
|
38
39
|
import { runLoop } from "../commands/loop.js";
|
|
@@ -97,6 +98,9 @@ async function dispatchRegisteredCommand(commandObject, defaultRepoRoot, rawArgs
|
|
|
97
98
|
[...rest, ...rawArgs].some((token) => token === "--json")) ||
|
|
98
99
|
(command === "stats" &&
|
|
99
100
|
subcommand === "context" &&
|
|
101
|
+
[...rest, ...rawArgs].some((token) => token === "--json")) ||
|
|
102
|
+
(command === "inspect" &&
|
|
103
|
+
subcommand === "next" &&
|
|
100
104
|
[...rest, ...rawArgs].some((token) => token === "--json"));
|
|
101
105
|
const repoRoot = resolveRepoRootOnly(commandObject, defaultRepoRoot, {
|
|
102
106
|
quiet,
|
|
@@ -125,8 +129,15 @@ async function runTaskCommand(repoRoot, subcommand, rest) {
|
|
|
125
129
|
async function runCommanderAction(ctx, command, subcommand, rest) {
|
|
126
130
|
switch (command) {
|
|
127
131
|
case "inspect":
|
|
128
|
-
|
|
129
|
-
|
|
132
|
+
if (subcommand === "next") {
|
|
133
|
+
await runInspectNext(ctx.repoRoot, rest);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (subcommand === undefined || subcommand.startsWith("-")) {
|
|
137
|
+
await runInspect(ctx.adapter, ctx.repoRoot);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
throw new Error("usage: inspect | inspect next [--json]");
|
|
130
141
|
case "doctor":
|
|
131
142
|
await runDoctor(ctx.adapter, ctx.repoRoot, compactArgs([subcommand, ...rest]));
|
|
132
143
|
return;
|
|
@@ -595,6 +606,9 @@ export function buildLoopAgentProgram(options) {
|
|
|
595
606
|
.option("--no-merge", "skip existing files")
|
|
596
607
|
.option("--provider <provider>", "provider paired with a bare --model (otherwise use provider/model)")
|
|
597
608
|
.option("--model <model>", "qualified provider/model, or a bare model paired with --provider")
|
|
609
|
+
.option("--low-model <provider/model>", "credential-ready Pi model for LOW")
|
|
610
|
+
.option("--med-model <provider/model>", "credential-ready Pi model for MED")
|
|
611
|
+
.option("--high-model <provider/model>", "credential-ready Pi model for HIGH")
|
|
598
612
|
.option("--json", "print JSON")
|
|
599
613
|
.option("--markdown", "print Markdown")
|
|
600
614
|
.option("--bootstrap-surface", "write an inferred .harness/init-surface.json baseline")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createInterface } from "node:readline/promises";
|
|
2
2
|
import { evaluateLatestVersion, shouldCheckForUpdates } from "./policy.js";
|
|
3
|
-
import { acquireUpdateLock, readUpdateState, updateLockPath, updateStatePath, writeUpdateState, } from "
|
|
3
|
+
import { acquireUpdateLock, readUpdateState, updateLockPath, updateStatePath, writeUpdateState, } from "../../shared/update/state.js";
|
|
4
4
|
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
5
5
|
const FAILURE_COOLDOWN_MS = 10 * 60 * 1000;
|
|
6
6
|
export async function runSelfUpdateNotifier(options) {
|
|
@@ -69,7 +69,7 @@ export async function runSelfUpdateNotifier(options) {
|
|
|
69
69
|
}
|
|
70
70
|
writeStderr(`loop-agent 已更新到 ${decision.targetVersion};新版本将在下一次调用时生效。\n`);
|
|
71
71
|
await safeWriteState(statePath, {
|
|
72
|
-
|
|
72
|
+
...state,
|
|
73
73
|
lastCheckedAt: now().toISOString(),
|
|
74
74
|
latestVersion: decision.targetVersion,
|
|
75
75
|
});
|
|
@@ -1,29 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { buildGlobalSnapshot } from "../../worker/observability/read-model.js";
|
|
4
|
-
/**
|
|
5
|
-
* Read-only runtime guard for init-surface writes.
|
|
6
|
-
*
|
|
7
|
-
* DAG activeness is anchored to real directories in the canonical active
|
|
8
|
-
* lifecycle root. Worker activeness reuses the Observe read model so Task Pool
|
|
9
|
-
* status precedence and composite identity stay owned by the Worker adapter.
|
|
10
|
-
* Projection failures block writes because liveness cannot be proven safely.
|
|
11
|
-
*/
|
|
12
|
-
export async function readInitRuntimeActivity(repoRoot) {
|
|
13
|
-
const resolvedRoot = path.resolve(repoRoot);
|
|
14
|
-
const activeDagRoot = path.join(resolvedRoot, ".harness", "dag-runs", "active");
|
|
15
|
-
const entries = await readdir(activeDagRoot, { withFileTypes: true }).catch(() => []);
|
|
16
|
-
const activeDagRunIds = entries
|
|
17
|
-
.filter((entry) => entry.isDirectory() && entry.name !== ".gitkeep")
|
|
18
|
-
.map((entry) => entry.name)
|
|
19
|
-
.sort();
|
|
20
|
-
const snapshot = await buildGlobalSnapshot({ repoRoot: resolvedRoot });
|
|
21
|
-
return {
|
|
22
|
-
activeDagRunIds,
|
|
23
|
-
activeWorkerBatches: snapshot.health.worker.activeBatches,
|
|
24
|
-
activeWorkerTasks: snapshot.health.worker.activeTasks,
|
|
25
|
-
...(snapshot.projectionError
|
|
26
|
-
? { workerProjectionError: snapshot.projectionError.message }
|
|
27
|
-
: {}),
|
|
28
|
-
};
|
|
29
|
-
}
|
|
1
|
+
export { readInitRuntimeActivity } from "../../worker/observability/init-runtime-activity.js";
|
package/dist/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ import os from "node:os";
|
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { buildLoopAgentProgram } from "./cli/program.js";
|
|
7
|
-
import { createNpmUpdateClient } from "./
|
|
7
|
+
import { createNpmUpdateClient } from "./shared/update/npm-client.js";
|
|
8
8
|
import { runSelfUpdateNotifier } from "./cli/update/notifier.js";
|
|
9
9
|
import { resolveInitSurfaceRepoRoot, runInitSurfaceNotifier, } from "./cli/update/init-surface-notifier.js";
|
|
10
10
|
async function main() {
|
|
@@ -29,6 +29,7 @@ async function main() {
|
|
|
29
29
|
client: createNpmUpdateClient({
|
|
30
30
|
currentVersion,
|
|
31
31
|
packageRoot,
|
|
32
|
+
cwd: defaultRepoRoot,
|
|
32
33
|
env: process.env,
|
|
33
34
|
}),
|
|
34
35
|
});
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { isDagRerunPromptOverrideEnabled } from "../shared/dag-prompt-override.js";
|
|
1
3
|
import { executeDagRerun, planDagRerun, } from "../workflows/dag/rerun-run.js";
|
|
2
4
|
export function parseDagRerunArgs(args) {
|
|
3
5
|
if (args.length === 0) {
|
|
@@ -9,6 +11,8 @@ export function parseDagRerunArgs(args) {
|
|
|
9
11
|
let planHash;
|
|
10
12
|
let requestId;
|
|
11
13
|
let reason;
|
|
14
|
+
const promptOverrideSpecs = [];
|
|
15
|
+
const promptOverrideAppendSpecs = [];
|
|
12
16
|
for (let index = 0; index < args.length; index += 1) {
|
|
13
17
|
const arg = args[index];
|
|
14
18
|
if (arg === "--run-id")
|
|
@@ -33,6 +37,14 @@ export function parseDagRerunArgs(args) {
|
|
|
33
37
|
reason = args[++index];
|
|
34
38
|
else if (arg.startsWith("--reason="))
|
|
35
39
|
reason = arg.slice("--reason=".length);
|
|
40
|
+
else if (arg === "--prompt-override")
|
|
41
|
+
promptOverrideSpecs.push(args[++index] ?? "");
|
|
42
|
+
else if (arg.startsWith("--prompt-override="))
|
|
43
|
+
promptOverrideSpecs.push(arg.slice("--prompt-override=".length));
|
|
44
|
+
else if (arg === "--prompt-override-append")
|
|
45
|
+
promptOverrideAppendSpecs.push(args[++index] ?? "");
|
|
46
|
+
else if (arg.startsWith("--prompt-override-append="))
|
|
47
|
+
promptOverrideAppendSpecs.push(arg.slice("--prompt-override-append=".length));
|
|
36
48
|
else if (arg === "--json")
|
|
37
49
|
continue;
|
|
38
50
|
else if (arg.startsWith("-"))
|
|
@@ -50,7 +62,13 @@ export function parseDagRerunArgs(args) {
|
|
|
50
62
|
if (planHash || requestId || reason) {
|
|
51
63
|
throw new Error("dag rerun --plan cannot be combined with execute flags");
|
|
52
64
|
}
|
|
53
|
-
return {
|
|
65
|
+
return {
|
|
66
|
+
parentRunId,
|
|
67
|
+
selectedNodeId,
|
|
68
|
+
planOnly: true,
|
|
69
|
+
promptOverrideSpecs,
|
|
70
|
+
promptOverrideAppendSpecs,
|
|
71
|
+
};
|
|
54
72
|
}
|
|
55
73
|
if (!planHash?.trim()) {
|
|
56
74
|
throw new Error("dag rerun execute requires --plan-hash <hash>");
|
|
@@ -68,15 +86,50 @@ export function parseDagRerunArgs(args) {
|
|
|
68
86
|
planHash: planHash.trim(),
|
|
69
87
|
requestId: requestId.trim(),
|
|
70
88
|
reason: reason.trim(),
|
|
89
|
+
promptOverrideSpecs,
|
|
90
|
+
promptOverrideAppendSpecs,
|
|
71
91
|
};
|
|
72
92
|
}
|
|
93
|
+
async function loadPromptOverrides(specs, mode) {
|
|
94
|
+
const overrides = [];
|
|
95
|
+
for (const spec of specs) {
|
|
96
|
+
const separator = spec.indexOf("@");
|
|
97
|
+
if (separator <= 0 || separator >= spec.length - 1) {
|
|
98
|
+
throw new Error(`dag rerun --prompt-override${mode === "append" ? "-append" : ""} expects <nodeId>@<filePath>, got: ${spec}`);
|
|
99
|
+
}
|
|
100
|
+
const nodeId = spec.slice(0, separator);
|
|
101
|
+
const filePath = spec.slice(separator + 1);
|
|
102
|
+
let prompt;
|
|
103
|
+
try {
|
|
104
|
+
prompt = await readFile(filePath, "utf-8");
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
throw new Error(`cannot read prompt override file for node ${nodeId} (${filePath}): ${error instanceof Error ? error.message : String(error)}`);
|
|
108
|
+
}
|
|
109
|
+
overrides.push(mode === "append" ? { nodeId, prompt, mode } : { nodeId, prompt });
|
|
110
|
+
}
|
|
111
|
+
return overrides;
|
|
112
|
+
}
|
|
73
113
|
export async function runDagRerun(repoRoot, rawArgs) {
|
|
74
114
|
const parsed = parseDagRerunArgs(rawArgs);
|
|
115
|
+
let promptOverrides;
|
|
116
|
+
const hasOverrides = parsed.promptOverrideSpecs.length > 0 ||
|
|
117
|
+
parsed.promptOverrideAppendSpecs.length > 0;
|
|
118
|
+
if (hasOverrides) {
|
|
119
|
+
if (!isDagRerunPromptOverrideEnabled()) {
|
|
120
|
+
throw new Error("prompt override rerun is disabled by HARNESS_DAG_RERUN_PROMPT_OVERRIDE; unset it or use a value other than 0, false, or off to enable this experimental capability");
|
|
121
|
+
}
|
|
122
|
+
promptOverrides = [
|
|
123
|
+
...(await loadPromptOverrides(parsed.promptOverrideSpecs, "replace")),
|
|
124
|
+
...(await loadPromptOverrides(parsed.promptOverrideAppendSpecs, "append")),
|
|
125
|
+
];
|
|
126
|
+
}
|
|
75
127
|
if (parsed.planOnly) {
|
|
76
128
|
const plan = await planDagRerun({
|
|
77
129
|
cwd: repoRoot,
|
|
78
130
|
parentRunId: parsed.parentRunId,
|
|
79
131
|
selectedNodeId: parsed.selectedNodeId,
|
|
132
|
+
promptOverrides,
|
|
80
133
|
});
|
|
81
134
|
const result = {
|
|
82
135
|
ok: plan.eligible,
|
|
@@ -95,6 +148,7 @@ export async function runDagRerun(repoRoot, rawArgs) {
|
|
|
95
148
|
planHash: parsed.planHash,
|
|
96
149
|
requestId: parsed.requestId,
|
|
97
150
|
reason: parsed.reason,
|
|
151
|
+
promptOverrides,
|
|
98
152
|
});
|
|
99
153
|
console.log(JSON.stringify(result, null, 2));
|
|
100
154
|
if (!result.ok) {
|