@rudderhq/server 0.7.14 → 0.7.16
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/agent-runtimes/http/execute.test.d.ts +2 -0
- package/dist/agent-runtimes/http/execute.test.d.ts.map +1 -0
- package/dist/agent-runtimes/http/execute.test.js +43 -0
- package/dist/agent-runtimes/http/execute.test.js.map +1 -0
- package/dist/agent-runtimes/process/execute.d.ts.map +1 -1
- package/dist/agent-runtimes/process/execute.js +20 -3
- package/dist/agent-runtimes/process/execute.js.map +1 -1
- package/dist/agent-runtimes/process/execute.test.d.ts +2 -0
- package/dist/agent-runtimes/process/execute.test.d.ts.map +1 -0
- package/dist/agent-runtimes/process/execute.test.js +57 -0
- package/dist/agent-runtimes/process/execute.test.js.map +1 -0
- package/dist/agent-runtimes/registry.d.ts.map +1 -1
- package/dist/agent-runtimes/registry.js +3 -1
- package/dist/agent-runtimes/registry.js.map +1 -1
- package/dist/bootstrap/create-http-app.d.ts.map +1 -1
- package/dist/bootstrap/create-http-app.js +9 -3
- package/dist/bootstrap/create-http-app.js.map +1 -1
- package/dist/config.js +4 -4
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/error-handler.d.ts.map +1 -1
- package/dist/middleware/error-handler.js +10 -2
- package/dist/middleware/error-handler.js.map +1 -1
- package/dist/middleware/logger.d.ts +3 -0
- package/dist/middleware/logger.d.ts.map +1 -1
- package/dist/middleware/logger.js +15 -6
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/logger.test.js +14 -1
- package/dist/middleware/logger.test.js.map +1 -1
- package/dist/routes/agents.management-routes.d.ts.map +1 -1
- package/dist/routes/agents.management-routes.js +51 -1
- package/dist/routes/agents.management-routes.js.map +1 -1
- package/dist/routes/chats.annotation-routes.d.ts +6 -1
- package/dist/routes/chats.annotation-routes.d.ts.map +1 -1
- package/dist/routes/chats.annotation-routes.js +40 -7
- package/dist/routes/chats.annotation-routes.js.map +1 -1
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +44 -3
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.stream-routes.d.ts.map +1 -1
- package/dist/routes/chats.stream-routes.js +122 -18
- package/dist/routes/chats.stream-routes.js.map +1 -1
- package/dist/routes/issues.js +1 -1
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/issues.mutations.d.ts.map +1 -1
- package/dist/routes/issues.mutations.js +99 -1
- package/dist/routes/issues.mutations.js.map +1 -1
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +1 -0
- package/dist/routes/orgs.js.map +1 -1
- package/dist/routes/rudder-plugins.js +2 -2
- package/dist/routes/rudder-plugins.js.map +1 -1
- package/dist/routes/run-intelligence.d.ts.map +1 -1
- package/dist/routes/run-intelligence.js +11 -1
- package/dist/routes/run-intelligence.js.map +1 -1
- package/dist/services/agent-issue-creation.d.ts +1 -0
- package/dist/services/agent-issue-creation.d.ts.map +1 -1
- package/dist/services/agent-run-context.d.ts +1 -1
- package/dist/services/agent-run-context.d.ts.map +1 -1
- package/dist/services/agents.d.ts +35 -0
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/automation-chat-output.d.ts +2 -0
- package/dist/services/automation-chat-output.d.ts.map +1 -1
- package/dist/services/automations.d.ts.map +1 -1
- package/dist/services/automations.js +1 -1
- package/dist/services/automations.js.map +1 -1
- package/dist/services/chat-agent-runs.d.ts +3 -0
- package/dist/services/chat-agent-runs.d.ts.map +1 -1
- package/dist/services/chat-annotation-copy-lineage.d.ts +2 -0
- package/dist/services/chat-annotation-copy-lineage.d.ts.map +1 -1
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.js +38 -18
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chat-generation-locks.d.ts +3 -1
- package/dist/services/chat-generation-locks.d.ts.map +1 -1
- package/dist/services/chat-generation-locks.js +3 -1
- package/dist/services/chat-generation-locks.js.map +1 -1
- package/dist/services/chat-generation-locks.test.js +8 -0
- package/dist/services/chat-generation-locks.test.js.map +1 -1
- package/dist/services/chat-generation-protocol.d.ts +2 -0
- package/dist/services/chat-generation-protocol.d.ts.map +1 -1
- package/dist/services/chat-inline-annotation-validation.d.ts.map +1 -1
- package/dist/services/chat-inline-annotation-validation.js +10 -3
- package/dist/services/chat-inline-annotation-validation.js.map +1 -1
- package/dist/services/chat-inline-annotations.test.js +49 -9
- package/dist/services/chat-inline-annotations.test.js.map +1 -1
- package/dist/services/chat-message-mutation-fingerprint.d.ts +18 -0
- package/dist/services/chat-message-mutation-fingerprint.d.ts.map +1 -0
- package/dist/services/chat-message-mutation-fingerprint.js +22 -0
- package/dist/services/chat-message-mutation-fingerprint.js.map +1 -0
- package/dist/services/chat-queued-message-materialization.d.ts +2 -2
- package/dist/services/chat-queued-message-materialization.d.ts.map +1 -1
- package/dist/services/chat-queued-message-materialization.js +2 -2
- package/dist/services/chat-queued-message-materialization.js.map +1 -1
- package/dist/services/chats.annotation-persistence.d.ts +3 -0
- package/dist/services/chats.annotation-persistence.d.ts.map +1 -1
- package/dist/services/chats.annotation-persistence.js +68 -4
- package/dist/services/chats.annotation-persistence.js.map +1 -1
- package/dist/services/chats.d.ts +24 -0
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +30 -1
- package/dist/services/chats.js.map +1 -1
- package/dist/services/chats.queued-message-create.d.ts +1 -0
- package/dist/services/chats.queued-message-create.d.ts.map +1 -1
- package/dist/services/chats.queued-message-create.js +2 -2
- package/dist/services/chats.queued-message-create.js.map +1 -1
- package/dist/services/chats.types.d.ts +3 -1
- package/dist/services/chats.types.d.ts.map +1 -1
- package/dist/services/delegation-runs.d.ts +41 -0
- package/dist/services/delegation-runs.d.ts.map +1 -0
- package/dist/services/delegation-runs.js +229 -0
- package/dist/services/delegation-runs.js.map +1 -0
- package/dist/services/delegation-runs.test.d.ts +2 -0
- package/dist/services/delegation-runs.test.d.ts.map +1 -0
- package/dist/services/delegation-runs.test.js +373 -0
- package/dist/services/delegation-runs.test.js.map +1 -0
- package/dist/services/integrations/feishu/runtime.d.ts.map +1 -1
- package/dist/services/integrations/feishu/runtime.js +69 -23
- package/dist/services/integrations/feishu/runtime.js.map +1 -1
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.helpers.d.ts +5 -0
- package/dist/services/issues.helpers.d.ts.map +1 -1
- package/dist/services/issues.helpers.js +11 -0
- package/dist/services/issues.helpers.js.map +1 -1
- package/dist/services/issues.js +6 -9
- package/dist/services/issues.js.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.js +7 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
- package/dist/services/messenger-run-origin.d.ts +1 -0
- package/dist/services/messenger-run-origin.d.ts.map +1 -1
- package/dist/services/messenger-run-origin.js +1 -0
- package/dist/services/messenger-run-origin.js.map +1 -1
- package/dist/services/messenger-saved-views.d.ts.map +1 -1
- package/dist/services/messenger-saved-views.js +29 -5
- package/dist/services/messenger-saved-views.js.map +1 -1
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +1 -0
- package/dist/services/messenger.js.map +1 -1
- package/dist/services/organization-workspace-browser.d.ts.map +1 -1
- package/dist/services/organization-workspace-browser.js +7 -1
- package/dist/services/organization-workspace-browser.js.map +1 -1
- package/dist/services/rudder-plugin-catalog.d.ts.map +1 -1
- package/dist/services/rudder-plugin-catalog.js +49 -35
- package/dist/services/rudder-plugin-catalog.js.map +1 -1
- package/dist/services/rudder-plugin-catalog.test.js +169 -1
- package/dist/services/rudder-plugin-catalog.test.js.map +1 -1
- package/dist/services/rudder-plugins.d.ts +2 -0
- package/dist/services/rudder-plugins.d.ts.map +1 -1
- package/dist/services/rudder-plugins.js +16 -11
- package/dist/services/rudder-plugins.js.map +1 -1
- package/dist/services/rudder-plugins.test.js +17 -1
- package/dist/services/rudder-plugins.test.js.map +1 -1
- package/dist/services/run-intelligence.d.ts.map +1 -1
- package/dist/services/run-intelligence.js +15 -1
- package/dist/services/run-intelligence.js.map +1 -1
- package/dist/services/runtime-kernel/assignment-run-guardrail.d.ts +12 -95
- package/dist/services/runtime-kernel/assignment-run-guardrail.d.ts.map +1 -1
- package/dist/services/runtime-kernel/assignment-run-guardrail.js +104 -350
- package/dist/services/runtime-kernel/assignment-run-guardrail.js.map +1 -1
- package/dist/services/runtime-kernel/assignment-run-guardrail.test.js +109 -143
- package/dist/services/runtime-kernel/assignment-run-guardrail.test.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +23 -2
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +1 -0
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +10 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.js +103 -141
- package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +43 -7
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.misc.js +1 -1
- package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +7 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js +101 -5
- package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.release.js +1 -0
- package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.js +2 -0
- package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +10 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.js +14 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
- package/package.json +14 -14
- package/resources/bundled-skills/rudder-docs/references/cli-reference.md +4 -0
- package/skills/rudder-docs/references/cli-reference.md +4 -0
- package/ui-dist/assets/{LibraryLiveSurface-Dl_mRBqL.js → LibraryLiveSurface-DnY0wZep.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-4MIrDcN0.js → abnfDiagram-VRR7QNED-CT-9m1Vc.js} +1 -1
- package/ui-dist/assets/{addon-fit-DaLbwAfQ.js → addon-fit-C6aMSfRz.js} +1 -1
- package/ui-dist/assets/{arc-DrbWjUWY.js → arc-1nExaM-y.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-Bt-JYYfG.js → architectureDiagram-ZJ3FMSHR-bILoPPs5.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-OXUbGv47.js → blockDiagram-677ZJIJ3--zRFciqi.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-C_EcNhSw.js → c4Diagram-LMCZKHZV-CrtaX6A_.js} +1 -1
- package/ui-dist/assets/channel-C3jj6nd_.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-DY-Rya7u.js → chunk-2Q5K7J3B-DoBb7ZYS.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-CTrRcC7g.js → chunk-32BRIVSS-DilGswdp.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-CFfB2lwI.js → chunk-5VM5RSS4-D8q00d1k.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-C0nNM3QW.js → chunk-EX3LRPZG-Bl1KSAwQ.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-Bzqz4lCp.js → chunk-JWPE2WC7-DtdgLB7Y.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-B7JFd8bM.js → chunk-MOJQB5TN-UaG7L1QI.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-a5E8W5cO.js → chunk-RYQCIY6F-mkz9qbQF.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-lhKPx7D_.js → chunk-V7JOEXUC-FGET6Myl.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-bZBK3VoP.js → chunk-VR4S4FIN-BgfUmupS.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-Di3ho8vJ.js → chunk-XXDRQBXY-B6I-gBFN.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-CNsW5NoJ.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CNsW5NoJ.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-CGSlPnRr.js → cose-bilkent-JH36ORCC-DVGWBjbO.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-BfELv7kL.js → cynefin-VYW2F7L2-CWjLXAiA.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-iMVux7wr.js → cynefinDiagram-TSTJHNR4-DWY5Jowv.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-imUTNZ-g.js → dagre-VKFMJZFB-Bp0SVTqP.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-i0bYfkK2.js → diagram-FQU43EPY-EhsLuQCs.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-CN7P8lGu.js → diagram-G47NLZAW-C_ifHw4Q.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-BJ4dmUnA.js → diagram-NH7WQ7WH-BCitqFNA.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-DDWgQGqt.js → diagram-OA4YK3LP-BRjomHnO.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-3At0yiVq.js → diagram-WEI45ONY-Cr_E92JE.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-Dk6Q1_n0.js → ebnfDiagram-CCIWWBDH-0WJQMwqt.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-DIQXCD2C.js → erDiagram-Q63AITRT-B0EBivSu.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-D19_Ed2R.js → flowDiagram-23GEKE2U-BwdRtCsd.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-JdDX_faf.js → ganttDiagram-NO4QXBWP-KxlqXAqZ.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-D1H6mGeL.js → gitGraphDiagram-IHSO6WYX-DeTCa-SS.js} +1 -1
- package/ui-dist/assets/{graph-BG22o1KD.js → graph-rdRwl3us.js} +1 -1
- package/ui-dist/assets/{index-CVu9lnBy.js → index-7Mb8iY3g.js} +1 -1
- package/ui-dist/assets/{index-uHZfZjdL.js → index-B2jHUYti.js} +1 -1
- package/ui-dist/assets/{index-CqaANx_i.js → index-Bi7KPtJ3.js} +1 -1
- package/ui-dist/assets/{index-CwdDPdqf.js → index-BzLCEJCf.js} +1 -1
- package/ui-dist/assets/{index-D3lUbbsS.js → index-C2DKaTLo.js} +1 -1
- package/ui-dist/assets/{index-BRGW3KLv.js → index-CY1CWc3h.js} +1 -1
- package/ui-dist/assets/index-CYaeM_68.css +32 -0
- package/ui-dist/assets/{index-inavbYTa.js → index-CbEMZXO1.js} +1 -1
- package/ui-dist/assets/{index-BDNVVxYy.js → index-CcLF8pix.js} +1 -1
- package/ui-dist/assets/{index-KZiKwV4T.js → index-CtFA44ZZ.js} +1 -1
- package/ui-dist/assets/{index-C0wGrz8h.js → index-CuP2P51w.js} +1 -1
- package/ui-dist/assets/{index-DDIA_6o8.js → index-D3RtGD1i.js} +1 -1
- package/ui-dist/assets/{index-BxHKdZbS.js → index-D5pdKmHf.js} +1 -1
- package/ui-dist/assets/{index-DXA-HNO5.js → index-DBPJ49Cn.js} +1 -1
- package/ui-dist/assets/{index-MrGb7TRh.js → index-NxbW73mN.js} +1 -1
- package/ui-dist/assets/{index-DL6O5Ix-.js → index-s8ZAOPE2.js} +589 -579
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-CVUn5UCu.js → infoDiagram-FWYZ7A6U-Cun6yrS9.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-5BbuWr6T.js → ishikawaDiagram-FXEZZL3T-SHuCvm_3.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-DoCwetKy.js → journeyDiagram-5HDEW3XC-B2oa-ovF.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-BNDYA9Vo.js → kanban-definition-HUTT4EX6-DtG3RFW0.js} +1 -1
- package/ui-dist/assets/{layout-DUhTcIiA.js → layout-DmSY_WKW.js} +1 -1
- package/ui-dist/assets/{linear-CCEHbSzg.js → linear-BiklTv-9.js} +1 -1
- package/ui-dist/assets/{map-C8V41jZb.js → map-B3RAMPoy.js} +1 -1
- package/ui-dist/assets/{mermaid.core-UAa_NJSl.js → mermaid.core-CQj0CvWy.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-C_ygOwPG.js → mindmap-definition-LN4V7U3C-BQrncLdk.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-Dz0Nw1iK.js → pegDiagram-2B236MQR-BmkmBhyS.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-DSn9W4hM.js → pieDiagram-ENE6RG2P-B0dWJser.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-D6cn2p2u.js → quadrantDiagram-ABIIQ3AL-RS2o06NX.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-DkQOZUbI.js → railroadDiagram-RFXS5EU6-B4dlWUnB.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-CVxaeOzG.js → requirementDiagram-TGXJPOKE-7M1vICZA.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-DsCkJ9Sr.js → sankeyDiagram-HTMAVEWB-LUpZrugG.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-DSVgeeYC.js → sequenceDiagram-DBY2YBRQ-DB4ecUEg.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-jYNNSFFN.js → sizeCapture-X5ZJPWSS-CgLQGkEa.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-HMmvTfZO.js → stateDiagram-2N3HPSRC-BxLcsZg0.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DAlIlXqa.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-B7lpTS-P.js → swimlanes-5IMT3BWC-CFoyzQNM.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DXfnihCA.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-CfjkTbE1.js → timeline-definition-FHXFAJF6-C1vajCzY.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-gK5ZOhfi.js → vennDiagram-L72KCM5P-C42rETOq.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-ClAgPp4O.js → wardleyDiagram-EHGQE667-BgzD6-QL.js} +1 -1
- package/ui-dist/assets/{xterm-CI3dnrG9.js → xterm-BeBaISmm.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-CMu8n5xR.js → xychartDiagram-FW5EYKEG-BdoJT_55.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/channel-DL45J6-6.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-DuHN7Tz9.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-DuHN7Tz9.js +0 -1
- package/ui-dist/assets/index-rHP5bnon.css +0 -32
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Ij5NPf9Z.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-VbzuYi16.js +0 -8
|
@@ -7,6 +7,7 @@ import type { WakeupOptions } from "./heartbeat.core.js";
|
|
|
7
7
|
export declare function heartbeatService(db: Db, testHooks?: {
|
|
8
8
|
afterIssuePromotionCommitted?: (outcome: unknown) => Promise<void> | void;
|
|
9
9
|
beforeRunClaim?: (run: typeof heartbeatRuns.$inferSelect) => Promise<void> | void;
|
|
10
|
+
beforeAssignmentRecoveryEnqueue?: (run: typeof heartbeatRuns.$inferSelect) => Promise<void> | void;
|
|
10
11
|
/** Server-owned runners (currently Chat) may reattach a claimed wait run. */
|
|
11
12
|
onNetworkWaitingRun?: (run: typeof heartbeatRuns.$inferSelect & {
|
|
12
13
|
networkRecoveryExhausted?: boolean;
|
|
@@ -56,6 +57,7 @@ export declare function heartbeatService(db: Db, testHooks?: {
|
|
|
56
57
|
finishedAt: Date | null;
|
|
57
58
|
error: string | null;
|
|
58
59
|
wakeupRequestId: string | null;
|
|
60
|
+
sourceRunId: string | null;
|
|
59
61
|
exitCode: number | null;
|
|
60
62
|
signal: string | null;
|
|
61
63
|
usageJson: Record<string, unknown> | null;
|
|
@@ -657,6 +659,7 @@ export declare function heartbeatService(db: Db, testHooks?: {
|
|
|
657
659
|
finishedAt: Date | null;
|
|
658
660
|
error: string | null;
|
|
659
661
|
wakeupRequestId: string | null;
|
|
662
|
+
sourceRunId: string | null;
|
|
660
663
|
exitCode: number | null;
|
|
661
664
|
signal: string | null;
|
|
662
665
|
usageJson: Record<string, unknown> | null;
|
|
@@ -721,6 +724,11 @@ export declare function heartbeatService(db: Db, testHooks?: {
|
|
|
721
724
|
timedOut: number;
|
|
722
725
|
runIds: string[];
|
|
723
726
|
}>;
|
|
727
|
+
warnInactiveRuns: (opts?: {
|
|
728
|
+
minInactivityMs?: number;
|
|
729
|
+
now?: Date;
|
|
730
|
+
recoveryCutoff?: Date;
|
|
731
|
+
}) => Promise<any>;
|
|
724
732
|
reapTimedOutRuns: (opts?: {
|
|
725
733
|
maxRuntimeMs?: number;
|
|
726
734
|
now?: Date;
|
|
@@ -743,6 +751,7 @@ export declare function heartbeatService(db: Db, testHooks?: {
|
|
|
743
751
|
startedAt: Date | null;
|
|
744
752
|
updatedAt: Date;
|
|
745
753
|
wakeupRequestId: string | null;
|
|
754
|
+
sourceRunId: string | null;
|
|
746
755
|
goalId: string | null;
|
|
747
756
|
contextSnapshot: Record<string, unknown> | null;
|
|
748
757
|
orgId: string;
|
|
@@ -825,6 +834,7 @@ export declare function heartbeatService(db: Db, testHooks?: {
|
|
|
825
834
|
finishedAt: Date | null;
|
|
826
835
|
error: string | null;
|
|
827
836
|
wakeupRequestId: string | null;
|
|
837
|
+
sourceRunId: string | null;
|
|
828
838
|
exitCode: number | null;
|
|
829
839
|
signal: string | null;
|
|
830
840
|
usageJson: Record<string, unknown> | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAQL,aAAa,EAGd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAwB1E,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAc3E,OAAO,EAAE,0CAA0C,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEnH,OAAO,KAAK,EAA0C,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA2GjG,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,EAAE,EACN,SAAS,CAAC,EAAE;IACV,4BAA4B,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,aAAa,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClF,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,aAAa,CAAC,YAAY,GAAG;QAC9D,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,sBAAsB,CAAC,EAAE;YACvB,SAAS,EAAE,uBAAuB,GAAG,yBAAyB,CAAC;YAC/D,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjC,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAE;QACvC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.execute.d.ts","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.execute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"heartbeat.execute.d.ts","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.execute.ts"],"names":[],"mappings":"AA0EA,OAAO,EAAE,0CAA0C,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAsCnH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,GAAG;wBA2CxB,MAAM,SAAS;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE;EAynDhF"}
|
|
@@ -21,9 +21,8 @@ import { buildExecutionWorkspaceAdapterConfig, issueExecutionWorkspaceModeForPer
|
|
|
21
21
|
import { summarizeHeartbeatRunResultJson } from "../heartbeat-run-summary.js";
|
|
22
22
|
import { publishLiveEvent } from "../live-events.js";
|
|
23
23
|
import { isManagedWorkspaceConfigurationError, isWorkspacePermissionPreflightError, preflightManagedAgentWorkspace, } from "../managed-workspace-preflight.js";
|
|
24
|
-
import { listProjectResourceAttachments } from "../resource-catalog.js";
|
|
25
24
|
import { buildWorkspaceReadyComment, cleanupExecutionWorkspaceArtifacts, ensureRuntimeServicesForRun, persistAdapterManagedRuntimeServices, realizeExecutionWorkspace, releaseRuntimeServicesForRun } from "../workspace-runtime.js";
|
|
26
|
-
import {
|
|
25
|
+
import { ASSIGNMENT_RUN_RECOVERY_BACKOFF_MS, createAssignmentRunFailureBudget, formatAssignmentRunGuardrailError, } from "./assignment-run-guardrail.js";
|
|
27
26
|
import { beginHeartbeatRunAttempt, finishHeartbeatRunAttempt, markHeartbeatRunAttemptWaiting, } from "./heartbeat-attempt-ledger.js";
|
|
28
27
|
import { executeAdapterWithModelFallbacks } from "./model-fallback.js";
|
|
29
28
|
export { prioritizeProjectWorkspaceCandidatesForRun } from "../agent-run-context.js";
|
|
@@ -60,7 +59,7 @@ function resolveRuntimeSceneForRun(run) {
|
|
|
60
59
|
});
|
|
61
60
|
}
|
|
62
61
|
export function createHeartbeatExecuteHandlers(context) {
|
|
63
|
-
const { db, approvalsSvc, instanceSettings, getCurrentUserRedactionOptions, runLogStore, runContextSvc, issuesSvc, executionWorkspacesSvc, workspaceOperationsSvc, activeRunExecutions, runAbortControllers, budgetHooks, budgets, getAgent, getRun, getRuntimeState, getTaskSession, getLatestRunForSession, getOldestRunForSession, resolveNormalizedUsageForSession, evaluateSessionCompaction, resolveSessionBeforeForWakeup, resolveExplicitResumeSessionOverride, upsertTaskSession, clearTaskSessions, ensureRuntimeState, setRunStatus, transitionRunToTerminal, reconcileRunEvidence, reconcileTerminalEffectsIntent, setWakeupStatus, updateWakeupRequestRecord, insertWakeupRequestRecord, appendRunEvent, persistRunProcessMetadata, clearDetachedRunWarning, acknowledgeRunProcessExit, abortRunExecution, renewRunExecutionLease, enqueueRecoveryRun, enqueueProcessLossRetry, parseHeartbeatPolicy, markAgentHeartbeatChecked, evaluateTimerPreflight, runHasIssueClosureComment, runHasIssueReviewDecision, issueHasDeferredWake, passiveFollowupAlreadyRecorded, reviewerCloseoutAlreadyRecorded, issueHasRecordedBlockedReviewerDecision, evaluatePassiveIssueClosureForLockedIssue, countRunningRunsForAgent, claimQueuedRun, finalizeAgentStatus, completeTerminalControlEffects, reapOrphanedRuns, resumeQueuedRuns, updateRuntimeState, startNextQueuedRunForAgent, releaseIssueExecutionAndPromote, enqueueWakeup, resumeDeferredWakeupsForAgent, listProjectScopedRunIds, listProjectScopedWakeupIds, cancelPendingWakeupsForBudgetScope, cancelRunInternal, cancelActiveForAgentInternal, cancelBudgetScopeWork, retryRunInternal, buildSkillAnalytics } = context;
|
|
62
|
+
const { db, approvalsSvc, instanceSettings, getCurrentUserRedactionOptions, runLogStore, runContextSvc, issuesSvc, executionWorkspacesSvc, workspaceOperationsSvc, activeRunExecutions, runAbortControllers, budgetHooks, budgets, getAgent, getRun, getRuntimeState, getTaskSession, getLatestRunForSession, getOldestRunForSession, resolveNormalizedUsageForSession, evaluateSessionCompaction, resolveSessionBeforeForWakeup, resolveExplicitResumeSessionOverride, upsertTaskSession, clearTaskSessions, ensureRuntimeState, setRunStatus, transitionRunToTerminal, reconcileRunEvidence, reconcileTerminalEffectsIntent, setWakeupStatus, updateWakeupRequestRecord, insertWakeupRequestRecord, appendRunEvent, persistRunProcessMetadata, clearDetachedRunWarning, acknowledgeRunProcessExit, abortRunExecution, renewRunExecutionLease, enqueueRecoveryRun, enqueueProcessLossRetry, parseHeartbeatPolicy, markAgentHeartbeatChecked, evaluateTimerPreflight, runHasIssueClosureComment, runHasIssueReviewDecision, issueHasDeferredWake, passiveFollowupAlreadyRecorded, reviewerCloseoutAlreadyRecorded, issueHasRecordedBlockedReviewerDecision, evaluatePassiveIssueClosureForLockedIssue, countRunningRunsForAgent, claimQueuedRun, finalizeAgentStatus, completeTerminalControlEffects, reapOrphanedRuns, resumeQueuedRuns, updateRuntimeState, startNextQueuedRunForAgent, releaseIssueExecutionAndPromote, enqueueWakeup, resumeDeferredWakeupsForAgent, listProjectScopedRunIds, listProjectScopedWakeupIds, cancelPendingWakeupsForBudgetScope, cancelRunInternal, cancelActiveForAgentInternal, cancelBudgetScopeWork, retryRunInternal, buildSkillAnalytics, beforeAssignmentRecoveryEnqueue } = context;
|
|
64
63
|
async function persistRunningExecutionContext(runId, desiredContext, patch = {}) {
|
|
65
64
|
return db.transaction(async (tx) => {
|
|
66
65
|
await tx.execute(sql `select id from heartbeat_runs where id = ${runId} for update`);
|
|
@@ -148,6 +147,7 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
148
147
|
logger.warn({ err: error, runId: runId, attemptIndex: ref.attemptIndex }, "failed to persist heartbeat attempt terminal state");
|
|
149
148
|
}
|
|
150
149
|
};
|
|
150
|
+
let assignmentContinuationAttempt = Math.max(0, Math.floor(Number(parseObject(run.contextSnapshot).assignmentGuardrailContinuationAttempt) || 0));
|
|
151
151
|
try {
|
|
152
152
|
if (run.status === "queued") {
|
|
153
153
|
const claimed = await claimQueuedRun(run);
|
|
@@ -203,6 +203,8 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
203
203
|
let finalRunOutput = null;
|
|
204
204
|
let ownsTerminalState = false;
|
|
205
205
|
let shouldCompleteTerminalEffects = false;
|
|
206
|
+
let assignmentRecoveryEligible = false;
|
|
207
|
+
let assignmentRecoveryRequestedAt = null;
|
|
206
208
|
let activeAttemptSpec = null;
|
|
207
209
|
const finalizeExecutionTranscript = () => {
|
|
208
210
|
stdoutTranscriptBuffer = appendTranscriptEntriesFromChunk({
|
|
@@ -224,9 +226,10 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
224
226
|
await ensureRuntimeState(agent);
|
|
225
227
|
const context = parseObject(run.contextSnapshot);
|
|
226
228
|
delete context.rudderGitIdentity;
|
|
227
|
-
|
|
229
|
+
assignmentContinuationAttempt = Math.max(0, Math.floor(Number(context.assignmentGuardrailContinuationAttempt) || 0));
|
|
228
230
|
const assignmentGuardrailEnabled = run.invocationSource === "assignment"
|
|
229
231
|
|| context.wakeSource === "assignment"
|
|
232
|
+
|| run.invocationSource === "automation"
|
|
230
233
|
|| assignmentContinuationAttempt > 0;
|
|
231
234
|
const assignmentFailureBudget = assignmentGuardrailEnabled ? createAssignmentRunFailureBudget() : null;
|
|
232
235
|
let assignmentGuardrailCheckpoint = null;
|
|
@@ -315,6 +318,7 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
315
318
|
sessionDisplayId: run.sessionReuseScope === "none" ? null : frozenSessionDisplayId,
|
|
316
319
|
};
|
|
317
320
|
const previousSessionParams = sessionSelection.sessionParams;
|
|
321
|
+
const runtimeScene = resolveRuntimeSceneForRun(run);
|
|
318
322
|
const config = await runContextSvc.materializeManagedInstructionsForRun({
|
|
319
323
|
...agent,
|
|
320
324
|
agentRuntimeConfig: parseObject(agent.agentRuntimeConfig),
|
|
@@ -324,27 +328,7 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
324
328
|
issueSettings: issueExecutionWorkspaceSettings,
|
|
325
329
|
legacyUseProjectWorkspace: runtimeOverrides?.useProjectWorkspace ?? null,
|
|
326
330
|
});
|
|
327
|
-
|
|
328
|
-
let configuredProjectWorkingSetCwd = null;
|
|
329
|
-
if (assignmentGuardrailEnabled && executionProjectId) {
|
|
330
|
-
const projectResources = await listProjectResourceAttachments(db, agent.orgId, executionProjectId);
|
|
331
|
-
const projectWorkingSetCwd = resolveProjectWorkingSetCwd(projectResources);
|
|
332
|
-
configuredProjectWorkingSetCwd = projectWorkingSetCwd;
|
|
333
|
-
if (projectWorkingSetCwd) {
|
|
334
|
-
const workingSetAvailable = await inspectAssignmentRunWorkspace({
|
|
335
|
-
actualCwd: projectWorkingSetCwd,
|
|
336
|
-
projectWorkingSetCwd,
|
|
337
|
-
}).then((result) => result.cwdPresent);
|
|
338
|
-
if (workingSetAvailable) {
|
|
339
|
-
resolvedWorkspace = {
|
|
340
|
-
...resolvedWorkspace,
|
|
341
|
-
cwd: projectWorkingSetCwd,
|
|
342
|
-
source: "project_primary",
|
|
343
|
-
projectId: executionProjectId,
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
}
|
|
331
|
+
const resolvedWorkspace = await runContextSvc.resolveWorkspaceForRun(agent, context, previousSessionParams, { useProjectWorkspace: executionWorkspaceMode !== "agent_default" });
|
|
348
332
|
const workspaceManagedConfig = buildExecutionWorkspaceAdapterConfig({
|
|
349
333
|
agentConfig: config,
|
|
350
334
|
projectPolicy: projectExecutionWorkspacePolicy,
|
|
@@ -356,7 +340,7 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
356
340
|
? { ...workspaceManagedConfig, ...runtimeOverrides.agentRuntimeConfig }
|
|
357
341
|
: workspaceManagedConfig;
|
|
358
342
|
const { resolvedConfig, runtimeConfig, runtimeSkillEntries, secretKeys } = await runContextSvc.prepareRuntimeConfig({
|
|
359
|
-
scene:
|
|
343
|
+
scene: runtimeScene,
|
|
360
344
|
agent,
|
|
361
345
|
baseConfig: mergedConfig,
|
|
362
346
|
});
|
|
@@ -551,7 +535,6 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
551
535
|
]
|
|
552
536
|
: []),
|
|
553
537
|
];
|
|
554
|
-
const runtimeScene = resolveRuntimeSceneForRun(run);
|
|
555
538
|
const runtimeSceneContext = await runContextSvc.buildSceneContext({
|
|
556
539
|
scene: runtimeScene,
|
|
557
540
|
agent,
|
|
@@ -692,88 +675,6 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
692
675
|
level: "info",
|
|
693
676
|
message: "run started",
|
|
694
677
|
});
|
|
695
|
-
if (assignmentGuardrailEnabled) {
|
|
696
|
-
const initialWorkspacePreflight = await inspectAssignmentRunWorkspace({
|
|
697
|
-
actualCwd: executionWorkspace.cwd,
|
|
698
|
-
projectWorkingSetCwd: configuredProjectWorkingSetCwd ?? resolvedWorkspace.cwd,
|
|
699
|
-
});
|
|
700
|
-
const dependencyRepair = initialWorkspacePreflight.ready
|
|
701
|
-
? null
|
|
702
|
-
: await repairAssignmentRunWorkspace({ preflight: initialWorkspacePreflight });
|
|
703
|
-
const workspacePreflight = dependencyRepair?.final ?? initialWorkspacePreflight;
|
|
704
|
-
if (dependencyRepair && !dependencyRepair.succeeded) {
|
|
705
|
-
await appendRunEvent(currentRun, {
|
|
706
|
-
eventType: "runtime.assignment_dependency_repair",
|
|
707
|
-
stream: "system",
|
|
708
|
-
level: "warn",
|
|
709
|
-
message: dependencyRepair.skippedReason
|
|
710
|
-
? `assignment dependency repair skipped: ${dependencyRepair.skippedReason}`
|
|
711
|
-
: "assignment dependency repair did not make the workspace ready",
|
|
712
|
-
payload: {
|
|
713
|
-
command: dependencyRepair.command,
|
|
714
|
-
attempted: dependencyRepair.attempted,
|
|
715
|
-
coalesced: dependencyRepair.coalesced,
|
|
716
|
-
rechecked: dependencyRepair.rechecked,
|
|
717
|
-
succeeded: dependencyRepair.succeeded,
|
|
718
|
-
output: dependencyRepair.output,
|
|
719
|
-
skippedReason: dependencyRepair.skippedReason,
|
|
720
|
-
workspaceFingerprint: dependencyRepair.workspaceFingerprint,
|
|
721
|
-
readinessFingerprint: dependencyRepair.readinessFingerprint,
|
|
722
|
-
initialReady: dependencyRepair.initial.ready,
|
|
723
|
-
finalReady: dependencyRepair.final.ready,
|
|
724
|
-
},
|
|
725
|
-
});
|
|
726
|
-
}
|
|
727
|
-
else if (dependencyRepair?.attempted) {
|
|
728
|
-
await appendRunEvent(currentRun, {
|
|
729
|
-
eventType: "runtime.assignment_dependency_repair",
|
|
730
|
-
stream: "system",
|
|
731
|
-
level: "info",
|
|
732
|
-
message: "assignment dependency repair completed",
|
|
733
|
-
payload: {
|
|
734
|
-
command: dependencyRepair.command,
|
|
735
|
-
attempted: dependencyRepair.attempted,
|
|
736
|
-
coalesced: dependencyRepair.coalesced,
|
|
737
|
-
rechecked: dependencyRepair.rechecked,
|
|
738
|
-
succeeded: dependencyRepair.succeeded,
|
|
739
|
-
output: dependencyRepair.output,
|
|
740
|
-
skippedReason: dependencyRepair.skippedReason,
|
|
741
|
-
workspaceFingerprint: dependencyRepair.workspaceFingerprint,
|
|
742
|
-
readinessFingerprint: dependencyRepair.readinessFingerprint,
|
|
743
|
-
initialReady: dependencyRepair.initial.ready,
|
|
744
|
-
finalReady: dependencyRepair.final.ready,
|
|
745
|
-
},
|
|
746
|
-
});
|
|
747
|
-
}
|
|
748
|
-
await appendRunEvent(currentRun, {
|
|
749
|
-
eventType: "runtime.assignment_preflight",
|
|
750
|
-
stream: "system",
|
|
751
|
-
level: workspacePreflight.ready ? "info" : "error",
|
|
752
|
-
message: workspacePreflight.ready
|
|
753
|
-
? dependencyRepair?.attempted
|
|
754
|
-
? "assignment run workspace preflight passed after dependency repair"
|
|
755
|
-
: "assignment run workspace preflight passed"
|
|
756
|
-
: "assignment run workspace preflight failed",
|
|
757
|
-
payload: {
|
|
758
|
-
...workspacePreflight,
|
|
759
|
-
initialReady: dependencyRepair?.initial.ready ?? workspacePreflight.ready,
|
|
760
|
-
dependencyRepair: dependencyRepair
|
|
761
|
-
? {
|
|
762
|
-
command: dependencyRepair.command,
|
|
763
|
-
attempted: dependencyRepair.attempted,
|
|
764
|
-
coalesced: dependencyRepair.coalesced,
|
|
765
|
-
rechecked: dependencyRepair.rechecked,
|
|
766
|
-
succeeded: dependencyRepair.succeeded,
|
|
767
|
-
output: dependencyRepair.output,
|
|
768
|
-
skippedReason: dependencyRepair.skippedReason,
|
|
769
|
-
}
|
|
770
|
-
: null,
|
|
771
|
-
},
|
|
772
|
-
});
|
|
773
|
-
if (!workspacePreflight.ready) {
|
|
774
|
-
throw new AssignmentDependencyPreflightError(workspacePreflight, dependencyRepair);
|
|
775
|
-
}
|
|
776
|
-
}
|
|
777
678
|
handle = await runLogStore.begin({
|
|
778
679
|
orgId: run.orgId,
|
|
779
680
|
agentId: run.agentId,
|
|
@@ -845,7 +746,8 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
845
746
|
.slice(0, 2_000)
|
|
846
747
|
?? "No reliable completed-work summary was emitted before the guardrail stopped this run.";
|
|
847
748
|
assignmentGuardrailCheckpoint = { ...checkpoint, completedWorkSummary };
|
|
848
|
-
const continuationRequired = assignmentContinuationAttempt < 1
|
|
749
|
+
const continuationRequired = assignmentContinuationAttempt < 1
|
|
750
|
+
&& assignmentGuardrailCheckpoint.automaticContinuationAllowed;
|
|
849
751
|
await appendRunEvent(currentRun, {
|
|
850
752
|
eventType: "runtime.assignment_guardrail",
|
|
851
753
|
stream: "system",
|
|
@@ -1034,7 +936,9 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1034
936
|
},
|
|
1035
937
|
});
|
|
1036
938
|
if (assignmentGuardrailCheckpoint) {
|
|
1037
|
-
|
|
939
|
+
assignmentRecoveryEligible = assignmentContinuationAttempt < 1
|
|
940
|
+
&& assignmentGuardrailCheckpoint.automaticContinuationAllowed;
|
|
941
|
+
adapterResult.errorMessage = formatAssignmentRunGuardrailError(assignmentGuardrailCheckpoint, assignmentRecoveryEligible);
|
|
1038
942
|
adapterResult.errorCode = "assignment_run_failure_budget";
|
|
1039
943
|
adapterResult.exitCode = adapterResult.exitCode ?? 1;
|
|
1040
944
|
adapterResult.resultJson = {
|
|
@@ -1318,12 +1222,13 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1318
1222
|
logSha256: logSummary?.sha256,
|
|
1319
1223
|
logCompressed: logSummary?.compressed ?? false,
|
|
1320
1224
|
};
|
|
1225
|
+
const automationTerminalEffect = {
|
|
1226
|
+
output: transcriptFallbackResult?.output ?? terminalEvidence.error,
|
|
1227
|
+
transcript: executionTranscript,
|
|
1228
|
+
};
|
|
1321
1229
|
const terminalEffectsIntent = {
|
|
1322
1230
|
version: 1,
|
|
1323
|
-
automation:
|
|
1324
|
-
output: transcriptFallbackResult?.output ?? terminalEvidence.error,
|
|
1325
|
-
transcript: executionTranscript,
|
|
1326
|
-
},
|
|
1231
|
+
automation: automationTerminalEffect,
|
|
1327
1232
|
runtime: {
|
|
1328
1233
|
adapterResult: adapterResult,
|
|
1329
1234
|
legacySessionId: nextSessionState.legacySessionId,
|
|
@@ -1437,7 +1342,8 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1437
1342
|
shouldCompleteTerminalEffects = true;
|
|
1438
1343
|
}
|
|
1439
1344
|
if (ownsTerminalState && assignmentGuardrailCheckpoint) {
|
|
1440
|
-
const continuationRequired = assignmentContinuationAttempt < 1
|
|
1345
|
+
const continuationRequired = assignmentContinuationAttempt < 1
|
|
1346
|
+
&& assignmentGuardrailCheckpoint.automaticContinuationAllowed;
|
|
1441
1347
|
await appendRunEvent(finalizedRun, {
|
|
1442
1348
|
eventType: "runtime.assignment_checkpoint",
|
|
1443
1349
|
stream: "system",
|
|
@@ -1449,32 +1355,83 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1449
1355
|
nextRecoveryCommand: assignmentGuardrailCheckpoint.nextRecoveryCommand,
|
|
1450
1356
|
continuationRequired,
|
|
1451
1357
|
failureCount: assignmentGuardrailCheckpoint.failureCount,
|
|
1358
|
+
unresolvedFailureCount: assignmentGuardrailCheckpoint.unresolvedFailureCount,
|
|
1359
|
+
failureClass: assignmentGuardrailCheckpoint.failureClass,
|
|
1360
|
+
continuationBlockReason: assignmentGuardrailCheckpoint.continuationBlockReason,
|
|
1452
1361
|
fingerprint: assignmentGuardrailCheckpoint.fingerprint,
|
|
1453
1362
|
},
|
|
1454
1363
|
});
|
|
1455
1364
|
if (continuationRequired) {
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1365
|
+
const recoveryRequestedAt = new Date(Date.now() + ASSIGNMENT_RUN_RECOVERY_BACKOFF_MS);
|
|
1366
|
+
let recoveryRun = null;
|
|
1367
|
+
try {
|
|
1368
|
+
await beforeAssignmentRecoveryEnqueue?.(finalizedRun);
|
|
1369
|
+
recoveryRun = await enqueueRecoveryRun(finalizedRun, agent, {
|
|
1370
|
+
recoveryTrigger: "automatic",
|
|
1371
|
+
source: "automation",
|
|
1372
|
+
triggerDetail: "system",
|
|
1373
|
+
wakeReason: "assignment_failure_budget_continuation",
|
|
1374
|
+
requestedByActorType: "system",
|
|
1375
|
+
requestedByActorId: null,
|
|
1376
|
+
contextPatch: {
|
|
1377
|
+
assignmentGuardrailContinuationAttempt: assignmentContinuationAttempt + 1,
|
|
1378
|
+
assignmentGuardrailCheckpoint,
|
|
1379
|
+
assignmentGuardrailRecovery: {
|
|
1380
|
+
attempt: assignmentContinuationAttempt + 1,
|
|
1381
|
+
maxAttempts: 1,
|
|
1382
|
+
backoffMs: ASSIGNMENT_RUN_RECOVERY_BACKOFF_MS,
|
|
1383
|
+
requestedAt: recoveryRequestedAt.toISOString(),
|
|
1384
|
+
},
|
|
1385
|
+
},
|
|
1386
|
+
startImmediately: false,
|
|
1387
|
+
notBefore: recoveryRequestedAt,
|
|
1388
|
+
suppressSourceAutomationOutput: true,
|
|
1389
|
+
now: new Date(),
|
|
1390
|
+
});
|
|
1391
|
+
}
|
|
1392
|
+
catch (recoveryError) {
|
|
1393
|
+
const recoveryErrorMessage = recoveryError instanceof Error
|
|
1394
|
+
? recoveryError.message
|
|
1395
|
+
: "Unknown recovery enqueue failure";
|
|
1396
|
+
await appendRunEvent(finalizedRun, {
|
|
1397
|
+
eventType: "runtime.assignment_recovery_request_failed",
|
|
1398
|
+
stream: "system",
|
|
1399
|
+
level: "error",
|
|
1400
|
+
message: "bounded assignment recovery request failed",
|
|
1401
|
+
payload: {
|
|
1402
|
+
attempt: assignmentContinuationAttempt + 1,
|
|
1403
|
+
maxAttempts: 1,
|
|
1404
|
+
failureClass: assignmentGuardrailCheckpoint.failureClass,
|
|
1405
|
+
error: recoveryErrorMessage,
|
|
1406
|
+
},
|
|
1407
|
+
});
|
|
1408
|
+
logger.error({ err: recoveryError, runId: finalizedRun.id }, "failed to enqueue bounded assignment recovery");
|
|
1409
|
+
}
|
|
1410
|
+
if (recoveryRun) {
|
|
1411
|
+
assignmentRecoveryRequestedAt = recoveryRequestedAt;
|
|
1412
|
+
await appendRunEvent(finalizedRun, {
|
|
1413
|
+
eventType: "runtime.assignment_recovery_requested",
|
|
1414
|
+
stream: "system",
|
|
1415
|
+
level: "warn",
|
|
1416
|
+
message: "bounded assignment recovery requested",
|
|
1417
|
+
payload: {
|
|
1418
|
+
recoveryRunId: recoveryRun.id,
|
|
1419
|
+
attempt: assignmentContinuationAttempt + 1,
|
|
1420
|
+
maxAttempts: 1,
|
|
1421
|
+
backoffMs: ASSIGNMENT_RUN_RECOVERY_BACKOFF_MS,
|
|
1422
|
+
requestedAt: recoveryRequestedAt.toISOString(),
|
|
1423
|
+
failureClass: assignmentGuardrailCheckpoint.failureClass,
|
|
1424
|
+
},
|
|
1425
|
+
}).catch((eventError) => {
|
|
1426
|
+
logger.error({ err: eventError, runId: finalizedRun.id }, "failed to record bounded assignment recovery request");
|
|
1427
|
+
});
|
|
1428
|
+
}
|
|
1470
1429
|
}
|
|
1471
1430
|
}
|
|
1472
1431
|
}
|
|
1473
1432
|
}
|
|
1474
1433
|
catch (err) {
|
|
1475
|
-
const
|
|
1476
|
-
const isWorkspacePreflightFailure = isAssignmentDependencyPreflightFailure ||
|
|
1477
|
-
isWorkspacePermissionPreflightError(err) ||
|
|
1434
|
+
const isWorkspacePreflightFailure = isWorkspacePermissionPreflightError(err) ||
|
|
1478
1435
|
isManagedWorkspaceConfigurationError(err);
|
|
1479
1436
|
const message = redactCurrentUserText(err instanceof Error ? err.message : "Unknown adapter failure", await getCurrentUserRedactionOptions());
|
|
1480
1437
|
transcriptFallbackResult = {
|
|
@@ -1593,11 +1550,9 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1593
1550
|
if (ownsTerminalState) {
|
|
1594
1551
|
await appendForbiddenMarkerEvent(failedRun, buildForbiddenMarkerScan(null));
|
|
1595
1552
|
await appendRunEvent(failedRun, {
|
|
1596
|
-
eventType:
|
|
1597
|
-
? "runtime.
|
|
1598
|
-
:
|
|
1599
|
-
? "runtime.workspace_preflight_failed"
|
|
1600
|
-
: "error",
|
|
1553
|
+
eventType: isWorkspacePreflightFailure
|
|
1554
|
+
? "runtime.workspace_preflight_failed"
|
|
1555
|
+
: "error",
|
|
1601
1556
|
stream: "system",
|
|
1602
1557
|
level: "error",
|
|
1603
1558
|
message,
|
|
@@ -1605,9 +1560,7 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1605
1560
|
? {
|
|
1606
1561
|
payload: {
|
|
1607
1562
|
errorCode: err.errorCode,
|
|
1608
|
-
|
|
1609
|
-
? err.failure
|
|
1610
|
-
: { failure: err.failure }),
|
|
1563
|
+
failure: err.failure,
|
|
1611
1564
|
},
|
|
1612
1565
|
}
|
|
1613
1566
|
: {}),
|
|
@@ -1633,6 +1586,15 @@ export function createHeartbeatExecuteHandlers(context) {
|
|
|
1633
1586
|
: undefined);
|
|
1634
1587
|
}
|
|
1635
1588
|
}
|
|
1589
|
+
if (assignmentRecoveryRequestedAt) {
|
|
1590
|
+
const delayMs = Math.max(0, assignmentRecoveryRequestedAt.getTime() - Date.now());
|
|
1591
|
+
const recoveryTimer = setTimeout(() => {
|
|
1592
|
+
void startNextQueuedRunForAgent(agent.id).catch((error) => {
|
|
1593
|
+
logger.error({ err: error, runId }, "failed to start bounded assignment recovery");
|
|
1594
|
+
});
|
|
1595
|
+
}, delayMs);
|
|
1596
|
+
recoveryTimer.unref?.();
|
|
1597
|
+
}
|
|
1636
1598
|
}
|
|
1637
1599
|
}
|
|
1638
1600
|
catch (outerErr) {
|