@rudderhq/server 0.2.5-canary.9 → 0.2.5
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/bootstrap/plugin-host-runtime.d.ts +39 -39
- package/dist/bundled-plugins/plugin-linear/dist/worker.js +101 -147
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
- package/dist/bundled-plugins/plugin-linear/package.json +1 -1
- package/dist/routes/access-onboarding.helpers.d.ts +142 -0
- package/dist/routes/access-onboarding.helpers.d.ts.map +1 -0
- package/dist/routes/access-onboarding.helpers.js +762 -0
- package/dist/routes/access-onboarding.helpers.js.map +1 -0
- package/dist/routes/access.d.ts +2 -48
- package/dist/routes/access.d.ts.map +1 -1
- package/dist/routes/access.helpers.d.ts +109 -0
- package/dist/routes/access.helpers.d.ts.map +1 -0
- package/dist/routes/access.helpers.js +460 -0
- package/dist/routes/access.helpers.js.map +1 -0
- package/dist/routes/access.js +6 -1218
- package/dist/routes/access.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +55 -1057
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/agents.management-routes.d.ts +12 -0
- package/dist/routes/agents.management-routes.d.ts.map +1 -0
- package/dist/routes/agents.management-routes.js +1067 -0
- package/dist/routes/agents.management-routes.js.map +1 -0
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +42 -652
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.stream-routes.d.ts +12 -0
- package/dist/routes/chats.stream-routes.d.ts.map +1 -0
- package/dist/routes/chats.stream-routes.js +666 -0
- package/dist/routes/chats.stream-routes.js.map +1 -0
- package/dist/routes/issues.comments-attachments.d.ts +12 -0
- package/dist/routes/issues.comments-attachments.d.ts.map +1 -0
- package/dist/routes/issues.comments-attachments.js +511 -0
- package/dist/routes/issues.comments-attachments.js.map +1 -0
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +43 -1128
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/issues.mutations.d.ts +12 -0
- package/dist/routes/issues.mutations.d.ts.map +1 -0
- package/dist/routes/issues.mutations.js +635 -0
- package/dist/routes/issues.mutations.js.map +1 -0
- package/dist/routes/plugins.d.ts.map +1 -1
- package/dist/routes/plugins.js +14 -694
- package/dist/routes/plugins.js.map +1 -1
- package/dist/routes/plugins.operations-routes.d.ts +28 -0
- package/dist/routes/plugins.operations-routes.d.ts.map +1 -0
- package/dist/routes/plugins.operations-routes.js +720 -0
- package/dist/routes/plugins.operations-routes.js.map +1 -0
- package/dist/services/access.d.ts +21 -21
- package/dist/services/activity.d.ts +19 -19
- package/dist/services/agents.d.ts +158 -158
- package/dist/services/approvals.d.ts +29 -29
- package/dist/services/assets.d.ts +8 -8
- package/dist/services/automations.d.ts +41 -27
- package/dist/services/automations.d.ts.map +1 -1
- package/dist/services/automations.js +287 -110
- package/dist/services/automations.js.map +1 -1
- package/dist/services/automations.scheduler.d.ts +9 -0
- package/dist/services/automations.scheduler.d.ts.map +1 -0
- package/dist/services/automations.scheduler.js +101 -0
- package/dist/services/automations.scheduler.js.map +1 -0
- package/dist/services/board-auth.d.ts +32 -32
- package/dist/services/calendar.d.ts +26 -26
- package/dist/services/chat-assistant.d.ts +3 -47
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.d.ts +156 -0
- package/dist/services/chat-assistant.helpers.d.ts.map +1 -0
- package/dist/services/chat-assistant.helpers.js +862 -0
- package/dist/services/chat-assistant.helpers.js.map +1 -0
- package/dist/services/chat-assistant.js +2 -861
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chats.d.ts +149 -247
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.helpers.d.ts +117 -0
- package/dist/services/chats.helpers.d.ts.map +1 -0
- package/dist/services/chats.helpers.js +285 -0
- package/dist/services/chats.helpers.js.map +1 -0
- package/dist/services/chats.js +6 -286
- package/dist/services/chats.js.map +1 -1
- package/dist/services/costs.d.ts +8 -8
- package/dist/services/finance.d.ts +18 -18
- package/dist/services/goals.d.ts +30 -30
- package/dist/services/heartbeat.d.ts +3 -1
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +3 -1
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/issue-approvals.d.ts +4 -4
- package/dist/services/issue-review-wakeup.d.ts +3 -3
- package/dist/services/issues.comments-attachments.d.ts +141 -0
- package/dist/services/issues.comments-attachments.d.ts.map +1 -0
- package/dist/services/issues.comments-attachments.js +313 -0
- package/dist/services/issues.comments-attachments.js.map +1 -0
- package/dist/services/issues.d.ts +205 -256
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.helpers.d.ts +87 -0
- package/dist/services/issues.helpers.d.ts.map +1 -0
- package/dist/services/issues.helpers.js +270 -0
- package/dist/services/issues.helpers.js.map +1 -0
- package/dist/services/issues.js +5 -569
- package/dist/services/issues.js.map +1 -1
- package/dist/services/knowledge-portability/organization-portability.core.d.ts +210 -0
- package/dist/services/knowledge-portability/organization-portability.core.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.core.js +997 -0
- package/dist/services/knowledge-portability/organization-portability.core.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.d.ts +6 -28
- package/dist/services/knowledge-portability/organization-portability.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-portability.export.d.ts +24 -0
- package/dist/services/knowledge-portability/organization-portability.export.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.export.js +607 -0
- package/dist/services/knowledge-portability/organization-portability.export.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.files.d.ts +69 -0
- package/dist/services/knowledge-portability/organization-portability.files.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.files.js +597 -0
- package/dist/services/knowledge-portability/organization-portability.files.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.import.d.ts +31 -0
- package/dist/services/knowledge-portability/organization-portability.import.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.import.js +575 -0
- package/dist/services/knowledge-portability/organization-portability.import.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.js +37 -3848
- package/dist/services/knowledge-portability/organization-portability.js.map +1 -1
- package/dist/services/knowledge-portability/organization-portability.package.d.ts +72 -0
- package/dist/services/knowledge-portability/organization-portability.package.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.package.js +749 -0
- package/dist/services/knowledge-portability/organization-portability.package.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.preview.d.ts +18 -0
- package/dist/services/knowledge-portability/organization-portability.preview.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.preview.js +333 -0
- package/dist/services/knowledge-portability/organization-portability.preview.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts +4 -0
- package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.resolve-source.js +86 -0
- package/dist/services/knowledge-portability/organization-portability.resolve-source.js.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +221 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.js +999 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.d.ts +4 -75
- package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.js +11 -2008
- package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.scans.d.ts +16 -0
- package/dist/services/knowledge-portability/organization-skills.scans.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.scans.js +300 -0
- package/dist/services/knowledge-portability/organization-skills.scans.js.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.sources.d.ts +68 -0
- package/dist/services/knowledge-portability/organization-skills.sources.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.sources.js +728 -0
- package/dist/services/knowledge-portability/organization-skills.sources.js.map +1 -0
- package/dist/services/messenger.d.ts +2 -2
- package/dist/services/messenger.js +2 -2
- package/dist/services/messenger.js.map +1 -1
- package/dist/services/organization-skills.d.ts +3 -1
- package/dist/services/organization-skills.d.ts.map +1 -1
- package/dist/services/organization-skills.js +3 -1
- package/dist/services/organization-skills.js.map +1 -1
- package/dist/services/orgs.d.ts +9 -9
- package/dist/services/plugin-loader.core.d.ts +14 -0
- package/dist/services/plugin-loader.core.d.ts.map +1 -0
- package/dist/services/plugin-loader.core.js +905 -0
- package/dist/services/plugin-loader.core.js.map +1 -0
- package/dist/services/plugin-loader.d.ts +3 -440
- package/dist/services/plugin-loader.d.ts.map +1 -1
- package/dist/services/plugin-loader.helpers.d.ts +468 -0
- package/dist/services/plugin-loader.helpers.d.ts.map +1 -0
- package/dist/services/plugin-loader.helpers.js +263 -0
- package/dist/services/plugin-loader.helpers.js.map +1 -0
- package/dist/services/plugin-loader.js +3 -1191
- package/dist/services/plugin-loader.js.map +1 -1
- package/dist/services/plugin-loader.worker-paths.d.ts +7 -0
- package/dist/services/plugin-loader.worker-paths.d.ts.map +1 -0
- package/dist/services/plugin-loader.worker-paths.js +85 -0
- package/dist/services/plugin-loader.worker-paths.js.map +1 -0
- package/dist/services/plugin-registry.d.ts +123 -123
- package/dist/services/projects.d.ts +8 -8
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +725 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.core.js +525 -0
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts +38 -259
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.d.ts +5 -0
- package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.execute.js +1052 -0
- package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.js +50 -4142
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.misc.d.ts +30 -0
- package/dist/services/runtime-kernel/heartbeat.misc.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.misc.js +483 -0
- package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +38 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.js +605 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.release.d.ts +6 -0
- package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.release.js +398 -0
- package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +229 -0
- package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.sessions.js +708 -0
- package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts +5 -0
- package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.wakeup.js +552 -0
- package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -0
- package/dist/services/secrets.d.ts +25 -25
- package/dist/services/sidebar-badges.js +1 -1
- package/dist/services/sidebar-badges.js.map +1 -1
- package/dist/services/workspace-runtime.comments.d.ts +6 -0
- package/dist/services/workspace-runtime.comments.d.ts.map +1 -0
- package/dist/services/workspace-runtime.comments.js +17 -0
- package/dist/services/workspace-runtime.comments.js.map +1 -0
- package/dist/services/workspace-runtime.d.ts +4 -163
- package/dist/services/workspace-runtime.d.ts.map +1 -1
- package/dist/services/workspace-runtime.helpers.d.ts +163 -0
- package/dist/services/workspace-runtime.helpers.d.ts.map +1 -0
- package/dist/services/workspace-runtime.helpers.js +360 -0
- package/dist/services/workspace-runtime.helpers.js.map +1 -0
- package/dist/services/workspace-runtime.js +4 -1236
- package/dist/services/workspace-runtime.js.map +1 -1
- package/dist/services/workspace-runtime.lifecycle.d.ts +35 -0
- package/dist/services/workspace-runtime.lifecycle.d.ts.map +1 -0
- package/dist/services/workspace-runtime.lifecycle.js +266 -0
- package/dist/services/workspace-runtime.lifecycle.js.map +1 -0
- package/dist/services/workspace-runtime.services.d.ts +140 -0
- package/dist/services/workspace-runtime.services.d.ts.map +1 -0
- package/dist/services/workspace-runtime.services.js +606 -0
- package/dist/services/workspace-runtime.services.js.map +1 -0
- package/package.json +21 -15
- package/ui-dist/assets/{_basePickBy-B5mJzzqZ.js → _basePickBy-N8I9ml5Y.js} +1 -1
- package/ui-dist/assets/{_baseUniq-B10Ec09o.js → _baseUniq-BuSlpRSQ.js} +1 -1
- package/ui-dist/assets/{arc-Bw7wimOa.js → arc-qX-dPyA1.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-DZr0XEvv.js → architectureDiagram-2XIMDMQ5-DhjkbXsp.js} +1 -1
- package/ui-dist/assets/{blockDiagram-WCTKOSBZ-D0jl0LgB.js → blockDiagram-WCTKOSBZ-JS-tTu3J.js} +1 -1
- package/ui-dist/assets/{c4Diagram-IC4MRINW-BEFxBnEm.js → c4Diagram-IC4MRINW-4DqwCWIx.js} +1 -1
- package/ui-dist/assets/channel-CccCW5_a.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-Cbul1GoA.js → chunk-4BX2VUAB-T37SqBpp.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-DuouC3bT.js → chunk-55IACEB6-BSj9hdqK.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-bN1jF9xw.js → chunk-FMBD7UC4-Dkrlh0Wk.js} +1 -1
- package/ui-dist/assets/{chunk-JSJVCQXG-B0-Ij6ZF.js → chunk-JSJVCQXG-C0ZE3QdB.js} +1 -1
- package/ui-dist/assets/{chunk-KX2RTZJC-BjI3IEjI.js → chunk-KX2RTZJC-DOZQM9gW.js} +1 -1
- package/ui-dist/assets/{chunk-NQ4KR5QH-MUoGr46n.js → chunk-NQ4KR5QH-5Yr3U2k8.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-CQoI9Ouy.js → chunk-QZHKN3VN-CvKTufwF.js} +1 -1
- package/ui-dist/assets/{chunk-WL4C6EOR-DSJh3iDp.js → chunk-WL4C6EOR-IoEM0jyx.js} +1 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-JKk4tCW2.js +1 -0
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-JKk4tCW2.js +1 -0
- package/ui-dist/assets/clone-Onaweg8D.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-BPepglgB.js → cose-bilkent-S5V4N54A-CTvr1OFj.js} +1 -1
- package/ui-dist/assets/{dagre-KLK3FWXG-DhnHVZkt.js → dagre-KLK3FWXG-UZ-SNjVK.js} +1 -1
- package/ui-dist/assets/{diagram-E7M64L7V-DNvXtoOO.js → diagram-E7M64L7V-D7RAN0Hr.js} +1 -1
- package/ui-dist/assets/{diagram-IFDJBPK2-DhGlDTgn.js → diagram-IFDJBPK2-B4LViaFR.js} +1 -1
- package/ui-dist/assets/{diagram-P4PSJMXO-BmXEloWS.js → diagram-P4PSJMXO-CY1be7ak.js} +1 -1
- package/ui-dist/assets/{erDiagram-INFDFZHY-BTYVzaLM.js → erDiagram-INFDFZHY-Dca0KkvJ.js} +1 -1
- package/ui-dist/assets/{flowDiagram-PKNHOUZH-CqMNQUVv.js → flowDiagram-PKNHOUZH-i-qMvfwg.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-A5KZAMGK-B2le_64a.js → ganttDiagram-A5KZAMGK-Wxq2lhbh.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-BtxOBq5A.js → gitGraphDiagram-K3NZZRJ6-DwzgPlAY.js} +1 -1
- package/ui-dist/assets/{graph-C5E6qFfm.js → graph-BAqf89Tz.js} +1 -1
- package/ui-dist/assets/{index-Piq-IPXt.js → index-4eCzaLuY.js} +1 -1
- package/ui-dist/assets/{index-DT6UN2ec.js → index-8uu-nKqK.js} +1 -1
- package/ui-dist/assets/{index-T5NVZ3nR.js → index-B-1NEcI_.js} +1 -1
- package/ui-dist/assets/{index-D-MoarxG.js → index-B0b_3Eu5.js} +1 -1
- package/ui-dist/assets/{index-CZiP3FBQ.js → index-B8v0eZjP.js} +1 -1
- package/ui-dist/assets/{index-C1Ga66FM.js → index-BN7Moj3u.js} +1 -1
- package/ui-dist/assets/{index-xBUfBdQn.js → index-BSpxh3cY.js} +1 -1
- package/ui-dist/assets/{index-CQcMWp51.js → index-BY44RIi9.js} +1 -1
- package/ui-dist/assets/{index-3a93sZNI.js → index-BhyQJhdZ.js} +1 -1
- package/ui-dist/assets/{index-BsVDit5y.js → index-BkPL_iGU.js} +1 -1
- package/ui-dist/assets/{index-88lBSTsW.js → index-BsPfoHXS.js} +1 -1
- package/ui-dist/assets/{index-CyJtcUF0.js → index-BstW7nmv.js} +1 -1
- package/ui-dist/assets/{index-BvZ0Ptfl.js → index-BwB67Zyz.js} +1 -1
- package/ui-dist/assets/index-C2peSkmT.css +1 -0
- package/ui-dist/assets/{index-vkCrQLeX.js → index-C3ktOsS_.js} +1 -1
- package/ui-dist/assets/{index-D2hZpQJT.js → index-CMyABlS-.js} +1 -1
- package/ui-dist/assets/{index-C4WCPEY4.js → index-CyBJ8ujC.js} +1 -1
- package/ui-dist/assets/{index-Bf7NB_lK.js → index-DAxM2W3O.js} +1 -1
- package/ui-dist/assets/{index-Dq7H6-Lm.js → index-DVZXPmhk.js} +1 -1
- package/ui-dist/assets/{index-CskDu6A3.js → index-Dc19uAyw.js} +1 -1
- package/ui-dist/assets/index-DzHrwZu1.js +1511 -0
- package/ui-dist/assets/{index-B20JneLK.js → index-LJuf53Ye.js} +1 -1
- package/ui-dist/assets/{index-D6McTDMQ.js → index-Ugw5VWWz.js} +1 -1
- package/ui-dist/assets/{index-CcVGS6HJ.js → index-YGraEFR7.js} +1 -1
- package/ui-dist/assets/{infoDiagram-LFFYTUFH-BiCCZcIW.js → infoDiagram-LFFYTUFH-jLmDtFVR.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-BiwBemM5.js → ishikawaDiagram-PHBUUO56-6OGMyLT8.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-4ABVD52K-D8RGr2xl.js → journeyDiagram-4ABVD52K-yQjl6E0t.js} +1 -1
- package/ui-dist/assets/{kanban-definition-K7BYSVSG-C733Fj-E.js → kanban-definition-K7BYSVSG-DkdCeQlS.js} +1 -1
- package/ui-dist/assets/{layout-CM4c3NA_.js → layout-CqSYvZ_w.js} +1 -1
- package/ui-dist/assets/{linear-DzH21Xsf.js → linear-B8xGZaoi.js} +1 -1
- package/ui-dist/assets/{mermaid.core-Z2rpoVP2.js → mermaid.core-AKL_cdyk.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-YRQLILUH-DylLLj9w.js → mindmap-definition-YRQLILUH-Zr-dXC0x.js} +1 -1
- package/ui-dist/assets/{pieDiagram-SKSYHLDU-617wI_rr.js → pieDiagram-SKSYHLDU-BvDAU-Nk.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-337W2JSQ-lxoCPJIL.js → quadrantDiagram-337W2JSQ-Dn9kM62o.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-C5XydQ9-.js → requirementDiagram-Z7DCOOCP-GIsIh7Sd.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK--grmq-Q8.js → sankeyDiagram-WA2Y5GQK-CUCuBkuf.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-BS2PeYH-.js → sequenceDiagram-2WXFIKYE-MDpUY2HM.js} +1 -1
- package/ui-dist/assets/{stateDiagram-RAJIS63D-CeuZtj2z.js → stateDiagram-RAJIS63D-BymMpuUU.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-Bi2oCU6d.js +1 -0
- package/ui-dist/assets/{timeline-definition-YZTLITO2-DxHdMpRr.js → timeline-definition-YZTLITO2-B6ofPhhy.js} +1 -1
- package/ui-dist/assets/{treemap-KZPCXAKY-Bv1ZlC5h.js → treemap-KZPCXAKY-DnLO6w1l.js} +1 -1
- package/ui-dist/assets/{vennDiagram-LZ73GAT5-DvpZSXY2.js → vennDiagram-LZ73GAT5-D0MyZIDl.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-JWTSCODW-DttOu1GC.js → xychartDiagram-JWTSCODW-rADY1iUG.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/channel-DGUh6rEi.js +0 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-1ntk2IOV.js +0 -1
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-1ntk2IOV.js +0 -1
- package/ui-dist/assets/clone-BpddY88c.js +0 -1
- package/ui-dist/assets/index-C8AD6s7S.js +0 -1510
- package/ui-dist/assets/index-Ded0dPwB.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DXq0yC5C.js +0 -1
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
import { and, asc, eq, sql } from "drizzle-orm";
|
|
2
|
+
import { agents, agentWakeupRequests, heartbeatRuns, issues, } from "@rudderhq/db";
|
|
3
|
+
import { logger } from "../../middleware/logger.js";
|
|
4
|
+
import { publishLiveEvent } from "../live-events.js";
|
|
5
|
+
import { parseObject } from "../../agent-runtimes/utils.js";
|
|
6
|
+
import { buildIssueConvergenceReviewWakeupOptions, buildIssueReviewCloseoutWakeupOptions, } from "../issue-review-wakeup.js";
|
|
7
|
+
import { logActivity } from "../activity-log.js";
|
|
8
|
+
export { prioritizeProjectWorkspaceCandidatesForRun } from "../agent-run-context.js";
|
|
9
|
+
import * as heartbeatCore from "./heartbeat.core.js";
|
|
10
|
+
import * as heartbeatSessions from "./heartbeat.sessions.js";
|
|
11
|
+
const { MAX_LIVE_LOG_CHUNK_BYTES, HEARTBEAT_MAX_CONCURRENT_RUNS_DEFAULT, HEARTBEAT_MAX_CONCURRENT_RUNS_MIN, HEARTBEAT_MAX_CONCURRENT_RUNS_MAX, DEFERRED_WAKE_CONTEXT_KEY, DETACHED_PROCESS_ERROR_CODE, ORPHANED_PROCESS_TERMINATION_GRACE_MS, ORPHANED_PROCESS_KILL_WAIT_MS, ORPHANED_PROCESS_POLL_INTERVAL_MS, startLocksByAgent, MAX_RECOVERY_CHAIN_DEPTH, ISSUE_PASSIVE_FOLLOWUP_REASON, ISSUE_PASSIVE_FOLLOWUP_WAKE_SOURCE, ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON, ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS, ISSUE_REVIEW_CLOSEOUT_REASON, ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON, ISSUE_REVIEW_CLOSEOUT_MAX_ATTEMPTS, ISSUE_PASSIVE_FOLLOWUP_COOLDOWN_MS_BY_ATTEMPT, ISSUE_PASSIVE_FOLLOWUP_TIMER_CONTINUITY_MAX_WINDOW_MS, SESSIONED_LOCAL_ADAPTERS, heartbeatRunListColumns, appendExcerpt, appendTranscriptEntriesFromChunk, normalizeMaxConcurrentRuns, withAgentStartLock, readNonEmptyString, resolveHeartbeatObservabilitySurface, buildHeartbeatObservationName, compactTraceText, buildIssueRunTraceName, buildHeartbeatRuntimeTraceMetadata, buildHeartbeatAdapterInvokePayload, buildRecentDateKeys, buildDateKeysBetween, fallbackSkillLabel, normalizeLoadedSkill, normalizeLoadedSkillForPayload, emptySkillEvidenceCounts, incrementSkillEvidenceCount, strongestSkillEvidence, resolveSkillEvidence, readSkillEvidenceFromPayload, extractSkillSlugFromPath, collectSkillPathsFromText, collectStringValues, normalizeSkillUseFromPath, dedupeSkillUses, collectSkillUsesFromText, readToolCommandInput, isCommandTranscriptTool, isReadTranscriptTool, inferUsedSkillsFromTranscript, normalizeSkillCandidate, addSkillCandidate, readSkillReferenceSlug, collectSkillReferences, inferUsedSkillsFromPrompt, normalizeLedgerBillingType, resolveLedgerBiller, normalizeBilledCostCents, resolveLedgerScopeForRun } = heartbeatCore;
|
|
12
|
+
const { buildExplicitResumeSessionOverride, normalizeUsageTotals, readRawUsageTotals, deriveNormalizedUsageDelta, formatCount, parseSessionCompactionPolicy, resolveRuntimeSessionParamsForWorkspace, parseIssueAssigneeAgentRuntimeOverrides, deriveTaskKey, shouldResetTaskSessionForWake, formatRuntimeWorkspaceWarningLog, describeSessionResetReason, deriveCommentId, enrichWakeContextSnapshot, mergeCoalescedContextSnapshot, issueCommentAuthorKind, issueCommentAuthorLabel, buildDeferredWakePayload, readDeferredWakeContext, readDeferredWakePayload, deriveDeferredWakeTaskKey, hydrateWakeContextSnapshot, firstNonEmptyLine, deriveRecoveryFailureKind, deriveRecoveryFailureSummary, mergeMissingRecoveryContextFields, hydrateRecoveryBaseContextSnapshot, buildRecoveryContextSnapshot, normalizePassiveFollowupContext, normalizeReviewCloseoutContext, passiveFollowupCooldownMs, issueHasReviewer, isAgentEligibleForTimerContinuation, hasCredibleTimerContinuation, buildPassiveFollowupContextSnapshot, runTaskKey, isSameTaskScope, isTrackedLocalChildProcessAdapter, isProcessAlive, waitForProcessExit, terminateOrphanedProcess, truncateDisplayId, normalizeAgentNameKey, defaultSessionCodec, getAgentRuntimeSessionCodec, normalizeSessionParams, resolveNextSessionState } = heartbeatSessions;
|
|
13
|
+
export function createHeartbeatReleaseHandlers(context) {
|
|
14
|
+
const { db, instanceSettings, getCurrentUserRedactionOptions, runLogStore, runContextSvc, issuesSvc, documentsSvc, executionWorkspacesSvc, workspaceOperationsSvc, activeRunExecutions, budgetHooks, budgets, getAgent, getRun, getRuntimeState, getTaskSession, getLatestRunForSession, getOldestRunForSession, resolveNormalizedUsageForSession, evaluateSessionCompaction, resolveSessionBeforeForWakeup, resolveExplicitResumeSessionOverride, upsertTaskSession, clearTaskSessions, ensureRuntimeState, buildHeartbeatObservabilityContext, emitHeartbeatObservationEvent, emitHeartbeatLiveEval, setRunStatus, setWakeupStatus, updateWakeupRequestRecord, insertWakeupRequestRecord, appendRunEvent, nextRunEventSeq, persistRunProcessMetadata, clearDetachedRunWarning, enqueueRecoveryRun, enqueueProcessLossRetry, parseHeartbeatPolicy, markAgentHeartbeatChecked, evaluateTimerPreflight, runHasIssueClosureComment, runHasIssueReviewDecision, issueHasDeferredWake, passiveFollowupAlreadyRecorded, reviewerCloseoutAlreadyRecorded, issueHasConfirmedBlockedReviewerHandoff, evaluatePassiveIssueClosureForLockedIssue, countRunningRunsForAgent, claimQueuedRun, finalizeAgentStatus, reapOrphanedRuns, resumeQueuedRuns, updateRuntimeState, startNextQueuedRunForAgent, executeRun, enqueueWakeup, resumeDeferredWakeupsForAgent, listProjectScopedRunIds, listProjectScopedWakeupIds, cancelPendingWakeupsForBudgetScope, cancelRunInternal, cancelActiveForAgentInternal, cancelBudgetScopeWork, retryRunInternal, buildSkillAnalytics } = context;
|
|
15
|
+
async function releaseIssueExecutionAndPromote(run) {
|
|
16
|
+
const outcome = await db.transaction(async (tx) => {
|
|
17
|
+
await tx.execute(sql `select id from issues where org_id = ${run.orgId} and execution_run_id = ${run.id} for update`);
|
|
18
|
+
const issue = await tx
|
|
19
|
+
.select({
|
|
20
|
+
id: issues.id,
|
|
21
|
+
orgId: issues.orgId,
|
|
22
|
+
identifier: issues.identifier,
|
|
23
|
+
title: issues.title,
|
|
24
|
+
description: issues.description,
|
|
25
|
+
status: issues.status,
|
|
26
|
+
priority: issues.priority,
|
|
27
|
+
projectId: issues.projectId,
|
|
28
|
+
assigneeAgentId: issues.assigneeAgentId,
|
|
29
|
+
reviewerAgentId: issues.reviewerAgentId,
|
|
30
|
+
reviewerUserId: issues.reviewerUserId,
|
|
31
|
+
})
|
|
32
|
+
.from(issues)
|
|
33
|
+
.where(and(eq(issues.orgId, run.orgId), eq(issues.executionRunId, run.id)))
|
|
34
|
+
.then((rows) => rows[0] ?? null);
|
|
35
|
+
if (!issue)
|
|
36
|
+
return { promotedRun: null, passiveClosure: null };
|
|
37
|
+
const now = new Date();
|
|
38
|
+
const passiveClosure = await evaluatePassiveIssueClosureForLockedIssue({
|
|
39
|
+
tx,
|
|
40
|
+
run,
|
|
41
|
+
issue,
|
|
42
|
+
now,
|
|
43
|
+
});
|
|
44
|
+
if (passiveClosure.kind === "queued") {
|
|
45
|
+
return { promotedRun: passiveClosure.run, passiveClosure };
|
|
46
|
+
}
|
|
47
|
+
await tx
|
|
48
|
+
.update(issues)
|
|
49
|
+
.set({
|
|
50
|
+
executionRunId: null,
|
|
51
|
+
executionAgentNameKey: null,
|
|
52
|
+
executionLockedAt: null,
|
|
53
|
+
updatedAt: now,
|
|
54
|
+
})
|
|
55
|
+
.where(eq(issues.id, issue.id));
|
|
56
|
+
while (true) {
|
|
57
|
+
const deferred = await tx
|
|
58
|
+
.select()
|
|
59
|
+
.from(agentWakeupRequests)
|
|
60
|
+
.where(and(eq(agentWakeupRequests.orgId, issue.orgId), eq(agentWakeupRequests.status, "deferred_issue_execution"), sql `${agentWakeupRequests.payload} ->> 'issueId' = ${issue.id}`))
|
|
61
|
+
.orderBy(asc(agentWakeupRequests.requestedAt))
|
|
62
|
+
.limit(1)
|
|
63
|
+
.then((rows) => rows[0] ?? null);
|
|
64
|
+
if (!deferred)
|
|
65
|
+
return { promotedRun: null, passiveClosure };
|
|
66
|
+
const deferredAgent = await tx
|
|
67
|
+
.select()
|
|
68
|
+
.from(agents)
|
|
69
|
+
.where(eq(agents.id, deferred.agentId))
|
|
70
|
+
.then((rows) => rows[0] ?? null);
|
|
71
|
+
if (!deferredAgent ||
|
|
72
|
+
deferredAgent.orgId !== issue.orgId ||
|
|
73
|
+
deferredAgent.status === "paused" ||
|
|
74
|
+
deferredAgent.status === "terminated" ||
|
|
75
|
+
deferredAgent.status === "pending_approval") {
|
|
76
|
+
await tx
|
|
77
|
+
.update(agentWakeupRequests)
|
|
78
|
+
.set({
|
|
79
|
+
status: "failed",
|
|
80
|
+
finishedAt: new Date(),
|
|
81
|
+
error: "Deferred wake could not be promoted: agent is not invokable",
|
|
82
|
+
updatedAt: new Date(),
|
|
83
|
+
})
|
|
84
|
+
.where(eq(agentWakeupRequests.id, deferred.id));
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const deferredPayload = parseObject(deferred.payload);
|
|
88
|
+
const deferredContextSeed = parseObject(deferredPayload[DEFERRED_WAKE_CONTEXT_KEY]);
|
|
89
|
+
const promotedContextSeed = { ...deferredContextSeed };
|
|
90
|
+
const promotedReason = readNonEmptyString(deferred.reason) ?? "issue_execution_promoted";
|
|
91
|
+
const promotedSource = readNonEmptyString(deferred.source) ?? "automation";
|
|
92
|
+
const promotedTriggerDetail = readNonEmptyString(deferred.triggerDetail) ?? null;
|
|
93
|
+
const promotedPayload = deferredPayload;
|
|
94
|
+
delete promotedPayload[DEFERRED_WAKE_CONTEXT_KEY];
|
|
95
|
+
const { contextSnapshot: promotedContextSnapshot, taskKey: promotedTaskKey, } = enrichWakeContextSnapshot({
|
|
96
|
+
contextSnapshot: promotedContextSeed,
|
|
97
|
+
reason: promotedReason,
|
|
98
|
+
source: promotedSource,
|
|
99
|
+
triggerDetail: promotedTriggerDetail,
|
|
100
|
+
payload: promotedPayload,
|
|
101
|
+
});
|
|
102
|
+
const sessionBefore = readNonEmptyString(promotedContextSnapshot.resumeSessionDisplayId) ??
|
|
103
|
+
await resolveSessionBeforeForWakeup(deferredAgent, promotedTaskKey);
|
|
104
|
+
const now = new Date();
|
|
105
|
+
const newRun = await tx
|
|
106
|
+
.insert(heartbeatRuns)
|
|
107
|
+
.values({
|
|
108
|
+
orgId: deferredAgent.orgId,
|
|
109
|
+
agentId: deferredAgent.id,
|
|
110
|
+
invocationSource: promotedSource,
|
|
111
|
+
triggerDetail: promotedTriggerDetail,
|
|
112
|
+
status: "queued",
|
|
113
|
+
wakeupRequestId: deferred.id,
|
|
114
|
+
contextSnapshot: promotedContextSnapshot,
|
|
115
|
+
sessionIdBefore: sessionBefore,
|
|
116
|
+
})
|
|
117
|
+
.returning()
|
|
118
|
+
.then((rows) => rows[0]);
|
|
119
|
+
await tx
|
|
120
|
+
.update(agentWakeupRequests)
|
|
121
|
+
.set({
|
|
122
|
+
status: "queued",
|
|
123
|
+
reason: "issue_execution_promoted",
|
|
124
|
+
runId: newRun.id,
|
|
125
|
+
claimedAt: null,
|
|
126
|
+
finishedAt: null,
|
|
127
|
+
error: null,
|
|
128
|
+
updatedAt: now,
|
|
129
|
+
})
|
|
130
|
+
.where(eq(agentWakeupRequests.id, deferred.id));
|
|
131
|
+
await tx
|
|
132
|
+
.update(issues)
|
|
133
|
+
.set({
|
|
134
|
+
executionRunId: newRun.id,
|
|
135
|
+
executionAgentNameKey: normalizeAgentNameKey(deferredAgent.name),
|
|
136
|
+
executionLockedAt: now,
|
|
137
|
+
updatedAt: now,
|
|
138
|
+
})
|
|
139
|
+
.where(eq(issues.id, issue.id));
|
|
140
|
+
return { promotedRun: newRun, passiveClosure };
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
const passiveClosure = outcome.passiveClosure;
|
|
144
|
+
if (passiveClosure?.kind === "queued") {
|
|
145
|
+
await appendRunEvent(run, await nextRunEventSeq(run.id), {
|
|
146
|
+
eventType: "issue.passive_followup_queued",
|
|
147
|
+
stream: "system",
|
|
148
|
+
level: "warn",
|
|
149
|
+
message: `Queued passive issue follow-up ${passiveClosure.run.id}`,
|
|
150
|
+
payload: {
|
|
151
|
+
issueId: passiveClosure.issue.id,
|
|
152
|
+
followupRunId: passiveClosure.run.id,
|
|
153
|
+
originRunId: passiveClosure.originRunId,
|
|
154
|
+
previousRunId: passiveClosure.previousRunId,
|
|
155
|
+
attempt: passiveClosure.attempt,
|
|
156
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
157
|
+
reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
|
|
158
|
+
requestedAt: passiveClosure.requestedAt.toISOString(),
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
await appendRunEvent(passiveClosure.run, await nextRunEventSeq(passiveClosure.run.id), {
|
|
162
|
+
eventType: "issue.passive_followup_queued",
|
|
163
|
+
stream: "system",
|
|
164
|
+
level: "warn",
|
|
165
|
+
message: `Passive follow-up queued because run ${run.id} ended without issue close-out`,
|
|
166
|
+
payload: {
|
|
167
|
+
issueId: passiveClosure.issue.id,
|
|
168
|
+
originRunId: passiveClosure.originRunId,
|
|
169
|
+
previousRunId: passiveClosure.previousRunId,
|
|
170
|
+
attempt: passiveClosure.attempt,
|
|
171
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
172
|
+
reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
|
|
173
|
+
requestedAt: passiveClosure.requestedAt.toISOString(),
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
await logActivity(db, {
|
|
177
|
+
orgId: passiveClosure.issue.orgId,
|
|
178
|
+
actorType: "system",
|
|
179
|
+
actorId: "issue_closure_governance",
|
|
180
|
+
action: "issue.passive_followup_queued",
|
|
181
|
+
entityType: "issue",
|
|
182
|
+
entityId: passiveClosure.issue.id,
|
|
183
|
+
agentId: run.agentId,
|
|
184
|
+
runId: run.id,
|
|
185
|
+
details: {
|
|
186
|
+
issueId: passiveClosure.issue.id,
|
|
187
|
+
issueTitle: passiveClosure.issue.title,
|
|
188
|
+
followupRunId: passiveClosure.run.id,
|
|
189
|
+
originRunId: passiveClosure.originRunId,
|
|
190
|
+
previousRunId: passiveClosure.previousRunId,
|
|
191
|
+
attempt: passiveClosure.attempt,
|
|
192
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
193
|
+
reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
|
|
194
|
+
requestedAt: passiveClosure.requestedAt.toISOString(),
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
else if (passiveClosure?.kind === "operator_review") {
|
|
199
|
+
await appendRunEvent(run, await nextRunEventSeq(run.id), {
|
|
200
|
+
eventType: "issue.closure_needs_operator_review",
|
|
201
|
+
stream: "system",
|
|
202
|
+
level: "warn",
|
|
203
|
+
message: "Passive issue follow-up stopped and needs operator review",
|
|
204
|
+
payload: {
|
|
205
|
+
issueId: passiveClosure.issue.id,
|
|
206
|
+
originRunId: passiveClosure.originRunId,
|
|
207
|
+
previousRunId: passiveClosure.previousRunId,
|
|
208
|
+
attempts: passiveClosure.attempts,
|
|
209
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
210
|
+
reason: passiveClosure.reason,
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
await logActivity(db, {
|
|
214
|
+
orgId: passiveClosure.issue.orgId,
|
|
215
|
+
actorType: "system",
|
|
216
|
+
actorId: "issue_closure_governance",
|
|
217
|
+
action: "issue.closure_needs_operator_review",
|
|
218
|
+
entityType: "issue",
|
|
219
|
+
entityId: passiveClosure.issue.id,
|
|
220
|
+
agentId: run.agentId,
|
|
221
|
+
runId: run.id,
|
|
222
|
+
details: {
|
|
223
|
+
issueId: passiveClosure.issue.id,
|
|
224
|
+
issueTitle: passiveClosure.issue.title,
|
|
225
|
+
originRunId: passiveClosure.originRunId,
|
|
226
|
+
previousRunId: passiveClosure.previousRunId,
|
|
227
|
+
attempts: passiveClosure.attempts,
|
|
228
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
229
|
+
reason: passiveClosure.reason,
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
else if (passiveClosure?.kind === "reviewer_convergence") {
|
|
234
|
+
await appendRunEvent(run, await nextRunEventSeq(run.id), {
|
|
235
|
+
eventType: "issue.convergence_review_requested",
|
|
236
|
+
stream: "system",
|
|
237
|
+
level: "warn",
|
|
238
|
+
message: "Passive issue follow-up stopped and needs reviewer convergence",
|
|
239
|
+
payload: {
|
|
240
|
+
issueId: passiveClosure.issue.id,
|
|
241
|
+
reviewerAgentId: passiveClosure.issue.reviewerAgentId,
|
|
242
|
+
reviewerUserId: passiveClosure.issue.reviewerUserId,
|
|
243
|
+
originRunId: passiveClosure.originRunId,
|
|
244
|
+
previousRunId: passiveClosure.previousRunId,
|
|
245
|
+
attempts: passiveClosure.attempts,
|
|
246
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
247
|
+
reason: passiveClosure.reason,
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
await logActivity(db, {
|
|
251
|
+
orgId: passiveClosure.issue.orgId,
|
|
252
|
+
actorType: "system",
|
|
253
|
+
actorId: "issue_closure_governance",
|
|
254
|
+
action: "issue.convergence_review_requested",
|
|
255
|
+
entityType: "issue",
|
|
256
|
+
entityId: passiveClosure.issue.id,
|
|
257
|
+
agentId: run.agentId,
|
|
258
|
+
runId: run.id,
|
|
259
|
+
details: {
|
|
260
|
+
issueId: passiveClosure.issue.id,
|
|
261
|
+
issueTitle: passiveClosure.issue.title,
|
|
262
|
+
reviewerAgentId: passiveClosure.issue.reviewerAgentId,
|
|
263
|
+
reviewerUserId: passiveClosure.issue.reviewerUserId,
|
|
264
|
+
originRunId: passiveClosure.originRunId,
|
|
265
|
+
previousRunId: passiveClosure.previousRunId,
|
|
266
|
+
attempts: passiveClosure.attempts,
|
|
267
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
268
|
+
reason: passiveClosure.reason,
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
if (passiveClosure.issue.reviewerAgentId) {
|
|
272
|
+
await enqueueWakeup(passiveClosure.issue.reviewerAgentId, {
|
|
273
|
+
...buildIssueConvergenceReviewWakeupOptions({
|
|
274
|
+
issue: passiveClosure.issue,
|
|
275
|
+
contextSource: "issue.passive_followup_exhausted",
|
|
276
|
+
originRunId: passiveClosure.originRunId,
|
|
277
|
+
previousRunId: passiveClosure.previousRunId,
|
|
278
|
+
attempts: passiveClosure.attempts,
|
|
279
|
+
maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
|
|
280
|
+
requestedByActorType: "system",
|
|
281
|
+
requestedByActorId: "issue_closure_governance",
|
|
282
|
+
}),
|
|
283
|
+
idempotencyKey: `issue_convergence_review_requested:${passiveClosure.originRunId}`,
|
|
284
|
+
}).catch((err) => {
|
|
285
|
+
logger.warn({ err, issueId: passiveClosure.issue.id }, "failed to wake reviewer after passive issue close-out exhaustion");
|
|
286
|
+
return null;
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
else if (passiveClosure?.kind === "reviewer_closeout") {
|
|
291
|
+
await appendRunEvent(run, await nextRunEventSeq(run.id), {
|
|
292
|
+
eventType: "issue.review_closeout_missing",
|
|
293
|
+
stream: "system",
|
|
294
|
+
level: "warn",
|
|
295
|
+
message: "Reviewer run finished without a structured review decision",
|
|
296
|
+
payload: {
|
|
297
|
+
issueId: passiveClosure.issue.id,
|
|
298
|
+
originRunId: passiveClosure.originRunId,
|
|
299
|
+
previousRunId: passiveClosure.previousRunId,
|
|
300
|
+
attempts: passiveClosure.attempts,
|
|
301
|
+
maxAttempts: passiveClosure.maxAttempts,
|
|
302
|
+
reason: passiveClosure.reason,
|
|
303
|
+
},
|
|
304
|
+
});
|
|
305
|
+
await logActivity(db, {
|
|
306
|
+
orgId: passiveClosure.issue.orgId,
|
|
307
|
+
actorType: "system",
|
|
308
|
+
actorId: "issue_review_closeout_governance",
|
|
309
|
+
action: "issue.review_closeout_missing",
|
|
310
|
+
entityType: "issue",
|
|
311
|
+
entityId: passiveClosure.issue.id,
|
|
312
|
+
agentId: run.agentId,
|
|
313
|
+
runId: run.id,
|
|
314
|
+
details: {
|
|
315
|
+
issueId: passiveClosure.issue.id,
|
|
316
|
+
issueTitle: passiveClosure.issue.title,
|
|
317
|
+
reviewerAgentId: passiveClosure.issue.reviewerAgentId,
|
|
318
|
+
originRunId: passiveClosure.originRunId,
|
|
319
|
+
previousRunId: passiveClosure.previousRunId,
|
|
320
|
+
attempts: passiveClosure.attempts,
|
|
321
|
+
maxAttempts: passiveClosure.maxAttempts,
|
|
322
|
+
reason: passiveClosure.reason,
|
|
323
|
+
},
|
|
324
|
+
});
|
|
325
|
+
if (passiveClosure.issue.reviewerAgentId) {
|
|
326
|
+
await enqueueWakeup(passiveClosure.issue.reviewerAgentId, {
|
|
327
|
+
...buildIssueReviewCloseoutWakeupOptions({
|
|
328
|
+
issue: passiveClosure.issue,
|
|
329
|
+
contextSource: "issue.review_closeout_missing",
|
|
330
|
+
originRunId: passiveClosure.originRunId,
|
|
331
|
+
previousRunId: passiveClosure.previousRunId,
|
|
332
|
+
attempts: passiveClosure.attempts,
|
|
333
|
+
maxAttempts: passiveClosure.maxAttempts,
|
|
334
|
+
requestedByActorType: "system",
|
|
335
|
+
requestedByActorId: "issue_review_closeout_governance",
|
|
336
|
+
}),
|
|
337
|
+
idempotencyKey: `${ISSUE_REVIEW_CLOSEOUT_REASON}:${run.id}`,
|
|
338
|
+
}).catch((err) => {
|
|
339
|
+
logger.warn({ err, issueId: passiveClosure.issue.id }, "failed to wake reviewer after missing review close-out");
|
|
340
|
+
return null;
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else if (passiveClosure?.kind === "reviewer_closeout_operator_review") {
|
|
345
|
+
await appendRunEvent(run, await nextRunEventSeq(run.id), {
|
|
346
|
+
eventType: "issue.review_closure_needs_operator_review",
|
|
347
|
+
stream: "system",
|
|
348
|
+
level: "warn",
|
|
349
|
+
message: "Reviewer close-out attempts stopped and need operator review",
|
|
350
|
+
payload: {
|
|
351
|
+
issueId: passiveClosure.issue.id,
|
|
352
|
+
originRunId: passiveClosure.originRunId,
|
|
353
|
+
previousRunId: passiveClosure.previousRunId,
|
|
354
|
+
attempts: passiveClosure.attempts,
|
|
355
|
+
maxAttempts: passiveClosure.maxAttempts,
|
|
356
|
+
reason: passiveClosure.reason,
|
|
357
|
+
},
|
|
358
|
+
});
|
|
359
|
+
await logActivity(db, {
|
|
360
|
+
orgId: passiveClosure.issue.orgId,
|
|
361
|
+
actorType: "system",
|
|
362
|
+
actorId: "issue_review_closeout_governance",
|
|
363
|
+
action: "issue.review_closure_needs_operator_review",
|
|
364
|
+
entityType: "issue",
|
|
365
|
+
entityId: passiveClosure.issue.id,
|
|
366
|
+
agentId: run.agentId,
|
|
367
|
+
runId: run.id,
|
|
368
|
+
details: {
|
|
369
|
+
issueId: passiveClosure.issue.id,
|
|
370
|
+
issueTitle: passiveClosure.issue.title,
|
|
371
|
+
reviewerAgentId: passiveClosure.issue.reviewerAgentId,
|
|
372
|
+
originRunId: passiveClosure.originRunId,
|
|
373
|
+
previousRunId: passiveClosure.previousRunId,
|
|
374
|
+
attempts: passiveClosure.attempts,
|
|
375
|
+
maxAttempts: passiveClosure.maxAttempts,
|
|
376
|
+
reason: passiveClosure.reason,
|
|
377
|
+
},
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
const promotedRun = outcome.promotedRun;
|
|
381
|
+
if (!promotedRun)
|
|
382
|
+
return;
|
|
383
|
+
publishLiveEvent({
|
|
384
|
+
orgId: promotedRun.orgId,
|
|
385
|
+
type: "heartbeat.run.queued",
|
|
386
|
+
payload: {
|
|
387
|
+
runId: promotedRun.id,
|
|
388
|
+
agentId: promotedRun.agentId,
|
|
389
|
+
invocationSource: promotedRun.invocationSource,
|
|
390
|
+
triggerDetail: promotedRun.triggerDetail,
|
|
391
|
+
wakeupRequestId: promotedRun.wakeupRequestId,
|
|
392
|
+
},
|
|
393
|
+
});
|
|
394
|
+
await startNextQueuedRunForAgent(promotedRun.agentId);
|
|
395
|
+
}
|
|
396
|
+
return { releaseIssueExecutionAndPromote };
|
|
397
|
+
}
|
|
398
|
+
//# sourceMappingURL=heartbeat.release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat.release.js","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.release.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import type { Db } from "@rudderhq/db";
|
|
2
|
+
import type { HeartbeatRecoveryTrigger } from "@rudderhq/shared";
|
|
3
|
+
import { agents, heartbeatRuns, issues } from "@rudderhq/db";
|
|
4
|
+
import type { AgentRuntimeExecutionResult, AgentRuntimeSessionCodec, UsageSummary } from "../../agent-runtimes/index.js";
|
|
5
|
+
import { type ResolvedWorkspaceForRun } from "../agent-run-context.js";
|
|
6
|
+
import { type SessionCompactionPolicy } from "@rudderhq/agent-runtime-utils";
|
|
7
|
+
export { prioritizeProjectWorkspaceCandidatesForRun, type ResolvedWorkspaceForRun } from "../agent-run-context.js";
|
|
8
|
+
import type { ParsedIssueAssigneeAgentRuntimeOverrides, UsageTotals, WakeupOptions } from "./heartbeat.core.js";
|
|
9
|
+
declare const ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON: string, ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON: string;
|
|
10
|
+
export type ResumeSessionRow = {
|
|
11
|
+
sessionParamsJson: Record<string, unknown> | null;
|
|
12
|
+
sessionDisplayId: string | null;
|
|
13
|
+
lastRunId: string | null;
|
|
14
|
+
};
|
|
15
|
+
export declare function buildExplicitResumeSessionOverride(input: {
|
|
16
|
+
resumeFromRunId: string;
|
|
17
|
+
resumeRunSessionIdBefore: string | null;
|
|
18
|
+
resumeRunSessionIdAfter: string | null;
|
|
19
|
+
taskSession: ResumeSessionRow | null;
|
|
20
|
+
sessionCodec: AgentRuntimeSessionCodec;
|
|
21
|
+
}): {
|
|
22
|
+
sessionDisplayId: string | null;
|
|
23
|
+
sessionParams: Record<string, unknown> | null;
|
|
24
|
+
} | null;
|
|
25
|
+
export declare function normalizeUsageTotals(usage: UsageSummary | null | undefined): UsageTotals | null;
|
|
26
|
+
export declare function readRawUsageTotals(usageJson: unknown): UsageTotals | null;
|
|
27
|
+
export declare function deriveNormalizedUsageDelta(current: UsageTotals | null, previous: UsageTotals | null): UsageTotals | null;
|
|
28
|
+
export declare function formatCount(value: number | null | undefined): string;
|
|
29
|
+
export declare function parseSessionCompactionPolicy(agent: typeof agents.$inferSelect): SessionCompactionPolicy;
|
|
30
|
+
export declare function resolveRuntimeSessionParamsForWorkspace(input: {
|
|
31
|
+
orgId: string;
|
|
32
|
+
agent: {
|
|
33
|
+
id: string;
|
|
34
|
+
name?: string | null;
|
|
35
|
+
workspaceKey?: string | null;
|
|
36
|
+
};
|
|
37
|
+
previousSessionParams: Record<string, unknown> | null;
|
|
38
|
+
resolvedWorkspace: ResolvedWorkspaceForRun;
|
|
39
|
+
}): {
|
|
40
|
+
sessionParams: Record<string, unknown> | null;
|
|
41
|
+
warning: string | null;
|
|
42
|
+
};
|
|
43
|
+
export declare function parseIssueAssigneeAgentRuntimeOverrides(raw: unknown): ParsedIssueAssigneeAgentRuntimeOverrides | null;
|
|
44
|
+
export declare function deriveTaskKey(contextSnapshot: Record<string, unknown> | null | undefined, payload: Record<string, unknown> | null | undefined): string | null;
|
|
45
|
+
export declare function shouldResetTaskSessionForWake(contextSnapshot: Record<string, unknown> | null | undefined): boolean;
|
|
46
|
+
export declare function formatRuntimeWorkspaceWarningLog(warning: string): {
|
|
47
|
+
stream: "stdout";
|
|
48
|
+
chunk: string;
|
|
49
|
+
};
|
|
50
|
+
export declare function describeSessionResetReason(contextSnapshot: Record<string, unknown> | null | undefined): "forceFreshSession was requested" | "wake reason is issue_assigned" | null;
|
|
51
|
+
export declare function deriveCommentId(contextSnapshot: Record<string, unknown> | null | undefined, payload: Record<string, unknown> | null | undefined): string | null;
|
|
52
|
+
export declare function enrichWakeContextSnapshot(input: {
|
|
53
|
+
contextSnapshot: Record<string, unknown>;
|
|
54
|
+
reason: string | null;
|
|
55
|
+
source: WakeupOptions["source"];
|
|
56
|
+
triggerDetail: WakeupOptions["triggerDetail"] | null;
|
|
57
|
+
payload: Record<string, unknown> | null;
|
|
58
|
+
}): {
|
|
59
|
+
contextSnapshot: Record<string, unknown>;
|
|
60
|
+
issueIdFromPayload: string | null;
|
|
61
|
+
commentIdFromPayload: string | null;
|
|
62
|
+
taskKey: string | null;
|
|
63
|
+
wakeCommentId: string | null;
|
|
64
|
+
};
|
|
65
|
+
export declare function mergeCoalescedContextSnapshot(existingRaw: unknown, incoming: Record<string, unknown>): Record<string, unknown>;
|
|
66
|
+
export declare function issueCommentAuthorKind(comment: {
|
|
67
|
+
authorAgentId?: string | null;
|
|
68
|
+
authorUserId?: string | null;
|
|
69
|
+
}): "agent" | "user" | "system";
|
|
70
|
+
export declare function issueCommentAuthorLabel(comment: {
|
|
71
|
+
authorAgentId?: string | null;
|
|
72
|
+
authorUserId?: string | null;
|
|
73
|
+
authorAgentName?: string | null;
|
|
74
|
+
authorUserName?: string | null;
|
|
75
|
+
}): string;
|
|
76
|
+
export declare function buildDeferredWakePayload(payload: Record<string, unknown> | null, contextSnapshot: Record<string, unknown>, issueId?: string | null): Record<string, unknown>;
|
|
77
|
+
export declare function readDeferredWakeContext(payloadRaw: unknown): Record<string, unknown>;
|
|
78
|
+
export declare function readDeferredWakePayload(payloadRaw: unknown): Record<string, unknown>;
|
|
79
|
+
export declare function deriveDeferredWakeTaskKey(payloadRaw: unknown): string | null;
|
|
80
|
+
export declare function hydrateWakeContextSnapshot(db: Db, orgId: string, contextSnapshot: Record<string, unknown>): Promise<void>;
|
|
81
|
+
export declare function firstNonEmptyLine(value: unknown): string | null;
|
|
82
|
+
export declare function deriveRecoveryFailureKind(run: typeof heartbeatRuns.$inferSelect): string;
|
|
83
|
+
export declare function deriveRecoveryFailureSummary(run: typeof heartbeatRuns.$inferSelect): string;
|
|
84
|
+
export declare function mergeMissingRecoveryContextFields(target: Record<string, unknown>, source: Record<string, unknown>): void;
|
|
85
|
+
export declare function hydrateRecoveryBaseContextSnapshot(run: typeof heartbeatRuns.$inferSelect, getRunById: (runId: string) => Promise<typeof heartbeatRuns.$inferSelect | null>): Promise<{
|
|
86
|
+
[x: string]: unknown;
|
|
87
|
+
}>;
|
|
88
|
+
export declare function buildRecoveryContextSnapshot(input: {
|
|
89
|
+
baseContextSnapshot: Record<string, unknown>;
|
|
90
|
+
run: typeof heartbeatRuns.$inferSelect;
|
|
91
|
+
recoveryTrigger: HeartbeatRecoveryTrigger;
|
|
92
|
+
wakeReason: string;
|
|
93
|
+
wakeSource: string;
|
|
94
|
+
triggerDetail: NonNullable<WakeupOptions["triggerDetail"]>;
|
|
95
|
+
}): Record<string, unknown>;
|
|
96
|
+
export type PassiveFollowupIssueRow = Pick<typeof issues.$inferSelect, "id" | "orgId" | "identifier" | "title" | "description" | "status" | "priority" | "projectId" | "assigneeAgentId" | "reviewerAgentId" | "reviewerUserId">;
|
|
97
|
+
export type PassiveFollowupContext = {
|
|
98
|
+
originRunId: string;
|
|
99
|
+
previousRunId: string | null;
|
|
100
|
+
attempt: number;
|
|
101
|
+
maxAttempts: number;
|
|
102
|
+
reason: typeof ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON;
|
|
103
|
+
queuedAt: string | null;
|
|
104
|
+
};
|
|
105
|
+
export type ReviewCloseoutContext = {
|
|
106
|
+
originRunId: string;
|
|
107
|
+
previousRunId: string | null;
|
|
108
|
+
attempt: number;
|
|
109
|
+
maxAttempts: number;
|
|
110
|
+
reason: typeof ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON;
|
|
111
|
+
};
|
|
112
|
+
export type PassiveIssueClosureOutcome = {
|
|
113
|
+
kind: "none";
|
|
114
|
+
reason: string;
|
|
115
|
+
} | {
|
|
116
|
+
kind: "queued";
|
|
117
|
+
run: typeof heartbeatRuns.$inferSelect;
|
|
118
|
+
issue: PassiveFollowupIssueRow;
|
|
119
|
+
originRunId: string;
|
|
120
|
+
previousRunId: string;
|
|
121
|
+
attempt: number;
|
|
122
|
+
requestedAt: Date;
|
|
123
|
+
} | {
|
|
124
|
+
kind: "operator_review";
|
|
125
|
+
issue: PassiveFollowupIssueRow;
|
|
126
|
+
originRunId: string;
|
|
127
|
+
previousRunId: string;
|
|
128
|
+
attempts: number;
|
|
129
|
+
reason: typeof ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON;
|
|
130
|
+
} | {
|
|
131
|
+
kind: "reviewer_convergence";
|
|
132
|
+
issue: PassiveFollowupIssueRow;
|
|
133
|
+
originRunId: string;
|
|
134
|
+
previousRunId: string;
|
|
135
|
+
attempts: number;
|
|
136
|
+
reason: typeof ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON;
|
|
137
|
+
} | {
|
|
138
|
+
kind: "reviewer_closeout";
|
|
139
|
+
issue: PassiveFollowupIssueRow;
|
|
140
|
+
originRunId: string;
|
|
141
|
+
previousRunId: string;
|
|
142
|
+
attempts: number;
|
|
143
|
+
maxAttempts: number;
|
|
144
|
+
reason: typeof ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON;
|
|
145
|
+
} | {
|
|
146
|
+
kind: "reviewer_closeout_operator_review";
|
|
147
|
+
issue: PassiveFollowupIssueRow;
|
|
148
|
+
originRunId: string;
|
|
149
|
+
previousRunId: string;
|
|
150
|
+
attempts: number;
|
|
151
|
+
maxAttempts: number;
|
|
152
|
+
reason: typeof ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON;
|
|
153
|
+
};
|
|
154
|
+
export declare function normalizePassiveFollowupContext(raw: unknown): PassiveFollowupContext | null;
|
|
155
|
+
export declare function normalizeReviewCloseoutContext(raw: unknown): ReviewCloseoutContext | null;
|
|
156
|
+
export declare function passiveFollowupCooldownMs(attempt: number): number;
|
|
157
|
+
export declare function issueHasReviewer(issue: Pick<PassiveFollowupIssueRow, "reviewerAgentId" | "reviewerUserId">): boolean;
|
|
158
|
+
export declare function isAgentEligibleForTimerContinuation(agent: typeof agents.$inferSelect): boolean;
|
|
159
|
+
export declare function hasCredibleTimerContinuation(input: {
|
|
160
|
+
agent: typeof agents.$inferSelect;
|
|
161
|
+
policy: {
|
|
162
|
+
enabled: boolean;
|
|
163
|
+
intervalSec: number;
|
|
164
|
+
};
|
|
165
|
+
run: typeof heartbeatRuns.$inferSelect;
|
|
166
|
+
now: Date;
|
|
167
|
+
}): boolean;
|
|
168
|
+
export declare function buildPassiveFollowupContextSnapshot(input: {
|
|
169
|
+
run: typeof heartbeatRuns.$inferSelect;
|
|
170
|
+
issue: PassiveFollowupIssueRow;
|
|
171
|
+
originRunId: string;
|
|
172
|
+
attempt: number;
|
|
173
|
+
now: Date;
|
|
174
|
+
}): {
|
|
175
|
+
reviewGate?: {
|
|
176
|
+
reviewerAgentId: string | null;
|
|
177
|
+
reviewerUserId: string | null;
|
|
178
|
+
closeOutRequirement: string;
|
|
179
|
+
} | undefined;
|
|
180
|
+
issueId: string;
|
|
181
|
+
taskId: string;
|
|
182
|
+
taskKey: string;
|
|
183
|
+
projectId: string | undefined;
|
|
184
|
+
wakeReason: string;
|
|
185
|
+
wakeSource: string;
|
|
186
|
+
wakeTriggerDetail: string;
|
|
187
|
+
issue: {
|
|
188
|
+
id: string;
|
|
189
|
+
title: string;
|
|
190
|
+
description: string | null;
|
|
191
|
+
status: string;
|
|
192
|
+
priority: string;
|
|
193
|
+
};
|
|
194
|
+
passiveFollowup: {
|
|
195
|
+
originRunId: string;
|
|
196
|
+
previousRunId: string;
|
|
197
|
+
attempt: number;
|
|
198
|
+
maxAttempts: number;
|
|
199
|
+
reason: string;
|
|
200
|
+
queuedAt: string;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
export declare function runTaskKey(run: typeof heartbeatRuns.$inferSelect): string | null;
|
|
204
|
+
export declare function isSameTaskScope(left: string | null, right: string | null): boolean;
|
|
205
|
+
export declare function isTrackedLocalChildProcessAdapter(agentRuntimeType: string): boolean;
|
|
206
|
+
export declare function isProcessAlive(pid: number | null | undefined): boolean;
|
|
207
|
+
export declare function waitForProcessExit(pid: number, timeoutMs: number): Promise<boolean>;
|
|
208
|
+
export declare function terminateOrphanedProcess(pid: number): Promise<{
|
|
209
|
+
stillAlive: boolean;
|
|
210
|
+
terminationSignal: NodeJS.Signals | null;
|
|
211
|
+
error: string | null;
|
|
212
|
+
}>;
|
|
213
|
+
export declare function truncateDisplayId(value: string | null | undefined, max?: number): string | null;
|
|
214
|
+
export declare function normalizeAgentNameKey(value: string | null | undefined): string | null;
|
|
215
|
+
export declare const defaultSessionCodec: AgentRuntimeSessionCodec;
|
|
216
|
+
export declare function getAgentRuntimeSessionCodec(agentRuntimeType: string): AgentRuntimeSessionCodec;
|
|
217
|
+
export declare function normalizeSessionParams(params: Record<string, unknown> | null | undefined): Record<string, unknown> | null;
|
|
218
|
+
export declare function resolveNextSessionState(input: {
|
|
219
|
+
codec: AgentRuntimeSessionCodec;
|
|
220
|
+
adapterResult: AgentRuntimeExecutionResult;
|
|
221
|
+
previousParams: Record<string, unknown> | null;
|
|
222
|
+
previousDisplayId: string | null;
|
|
223
|
+
previousLegacySessionId: string | null;
|
|
224
|
+
}): {
|
|
225
|
+
params: Record<string, unknown> | null;
|
|
226
|
+
displayId: string | null;
|
|
227
|
+
legacySessionId: string | null;
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=heartbeat.sessions.d.ts.map
|