@rudderhq/server 0.3.5-canary.2 → 0.3.5-canary.21

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.
Files changed (189) hide show
  1. package/dist/agent-runtimes/codex-models.d.ts.map +1 -1
  2. package/dist/agent-runtimes/codex-models.js +2 -92
  3. package/dist/agent-runtimes/codex-models.js.map +1 -1
  4. package/dist/agent-runtimes/registry.d.ts.map +1 -1
  5. package/dist/agent-runtimes/registry.js +17 -2
  6. package/dist/agent-runtimes/registry.js.map +1 -1
  7. package/dist/bundled-plugins/plugin-linear/dist/worker.js +20 -1
  8. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +26 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/routes/activity.d.ts.map +1 -1
  13. package/dist/routes/activity.js +86 -0
  14. package/dist/routes/activity.js.map +1 -1
  15. package/dist/routes/agents.d.ts.map +1 -1
  16. package/dist/routes/agents.js +9 -3
  17. package/dist/routes/agents.js.map +1 -1
  18. package/dist/routes/agents.management-routes.d.ts.map +1 -1
  19. package/dist/routes/agents.management-routes.js +17 -3
  20. package/dist/routes/agents.management-routes.js.map +1 -1
  21. package/dist/routes/chats.d.ts.map +1 -1
  22. package/dist/routes/chats.js +238 -5
  23. package/dist/routes/chats.js.map +1 -1
  24. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  25. package/dist/routes/chats.stream-routes.js +38 -7
  26. package/dist/routes/chats.stream-routes.js.map +1 -1
  27. package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
  28. package/dist/routes/issues.comments-attachments.js +24 -8
  29. package/dist/routes/issues.comments-attachments.js.map +1 -1
  30. package/dist/routes/messenger.d.ts.map +1 -1
  31. package/dist/routes/messenger.js +49 -1
  32. package/dist/routes/messenger.js.map +1 -1
  33. package/dist/routes/orgs.d.ts.map +1 -1
  34. package/dist/routes/orgs.js +65 -2
  35. package/dist/routes/orgs.js.map +1 -1
  36. package/dist/services/activity.d.ts +37 -0
  37. package/dist/services/activity.d.ts.map +1 -1
  38. package/dist/services/activity.js +619 -27
  39. package/dist/services/activity.js.map +1 -1
  40. package/dist/services/agent-run-context.d.ts.map +1 -1
  41. package/dist/services/agent-run-context.js +100 -9
  42. package/dist/services/agent-run-context.js.map +1 -1
  43. package/dist/services/agents.d.ts +48 -13
  44. package/dist/services/agents.d.ts.map +1 -1
  45. package/dist/services/automation-chat-output.d.ts +1 -0
  46. package/dist/services/automation-chat-output.d.ts.map +1 -1
  47. package/dist/services/automations.d.ts.map +1 -1
  48. package/dist/services/automations.js +35 -5
  49. package/dist/services/automations.js.map +1 -1
  50. package/dist/services/board-auth.d.ts +2 -2
  51. package/dist/services/chat-agent-runs.d.ts +65 -0
  52. package/dist/services/chat-agent-runs.d.ts.map +1 -0
  53. package/dist/services/chat-agent-runs.js +267 -0
  54. package/dist/services/chat-agent-runs.js.map +1 -0
  55. package/dist/services/chat-assistant.d.ts.map +1 -1
  56. package/dist/services/chat-assistant.helpers.d.ts +12 -0
  57. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  58. package/dist/services/chat-assistant.helpers.js +23 -1
  59. package/dist/services/chat-assistant.helpers.js.map +1 -1
  60. package/dist/services/chat-assistant.js +312 -177
  61. package/dist/services/chat-assistant.js.map +1 -1
  62. package/dist/services/chats.d.ts +89 -1
  63. package/dist/services/chats.d.ts.map +1 -1
  64. package/dist/services/chats.js +29 -17
  65. package/dist/services/chats.js.map +1 -1
  66. package/dist/services/issues.comments-attachments.d.ts +1 -0
  67. package/dist/services/issues.comments-attachments.d.ts.map +1 -1
  68. package/dist/services/issues.comments-attachments.js +25 -1
  69. package/dist/services/issues.comments-attachments.js.map +1 -1
  70. package/dist/services/issues.d.ts +1 -0
  71. package/dist/services/issues.d.ts.map +1 -1
  72. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +1 -0
  73. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  74. package/dist/services/knowledge-portability/organization-skills.catalog.js +18 -0
  75. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  76. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  77. package/dist/services/knowledge-portability/organization-skills.js +2 -9
  78. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  79. package/dist/services/messenger.d.ts +56 -2
  80. package/dist/services/messenger.d.ts.map +1 -1
  81. package/dist/services/messenger.js +218 -3
  82. package/dist/services/messenger.js.map +1 -1
  83. package/dist/services/organization-intelligence-profiles.js +3 -3
  84. package/dist/services/organization-intelligence-profiles.js.map +1 -1
  85. package/dist/services/organization-skills.d.ts +1 -1
  86. package/dist/services/organization-skills.d.ts.map +1 -1
  87. package/dist/services/organization-skills.js +1 -1
  88. package/dist/services/organization-skills.js.map +1 -1
  89. package/dist/services/run-intelligence.d.ts.map +1 -1
  90. package/dist/services/run-intelligence.js +6 -2
  91. package/dist/services/run-intelligence.js.map +1 -1
  92. package/dist/services/runtime-kernel/heartbeat.core.d.ts +17 -0
  93. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  94. package/dist/services/runtime-kernel/heartbeat.core.js +1 -0
  95. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  96. package/dist/services/runtime-kernel/heartbeat.d.ts +8 -1
  97. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  98. package/dist/services/runtime-kernel/heartbeat.js +13 -7
  99. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  100. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
  101. package/dist/services/runtime-kernel/heartbeat.recovery.js +2 -0
  102. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  103. package/dist/services/workspace-runtime.services.d.ts +1 -1
  104. package/package.json +13 -13
  105. package/resources/bundled-skills/rudder/SKILL.md +29 -32
  106. package/resources/bundled-skills/rudder/references/api-reference.md +12 -2
  107. package/resources/bundled-skills/rudder/references/cli-reference.md +13 -2
  108. package/skills/rudder/SKILL.md +29 -32
  109. package/skills/rudder/references/api-reference.md +12 -2
  110. package/skills/rudder/references/cli-reference.md +13 -2
  111. package/ui-dist/assets/{_basePickBy-pCn65kUg.js → _basePickBy-DQRD3jbd.js} +1 -1
  112. package/ui-dist/assets/{_baseUniq-D_Y907uk.js → _baseUniq-ChSV83Tl.js} +1 -1
  113. package/ui-dist/assets/{arc-D1FOXYxM.js → arc-BCwqsots.js} +1 -1
  114. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-BqM99oWe.js → architectureDiagram-2XIMDMQ5-D59Qu6r3.js} +1 -1
  115. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-B31x8PiB.js → blockDiagram-WCTKOSBZ-BLJNQhjF.js} +1 -1
  116. package/ui-dist/assets/{c4Diagram-IC4MRINW-BXxWTBO0.js → c4Diagram-IC4MRINW-CK3IxauE.js} +1 -1
  117. package/ui-dist/assets/channel-D0Hj27Hq.js +1 -0
  118. package/ui-dist/assets/{chunk-4BX2VUAB-A-mJSYhX.js → chunk-4BX2VUAB-By54H8_d.js} +1 -1
  119. package/ui-dist/assets/{chunk-55IACEB6-C_xHp5sT.js → chunk-55IACEB6-Ct4oxREP.js} +1 -1
  120. package/ui-dist/assets/{chunk-FMBD7UC4-hzewwsYy.js → chunk-FMBD7UC4-Bo5QQDeN.js} +1 -1
  121. package/ui-dist/assets/{chunk-JSJVCQXG-BOEtQsnL.js → chunk-JSJVCQXG-DRWD6spx.js} +1 -1
  122. package/ui-dist/assets/{chunk-KX2RTZJC-CoIlm_Hx.js → chunk-KX2RTZJC-CduFLzMt.js} +1 -1
  123. package/ui-dist/assets/{chunk-NQ4KR5QH-DmGxBmwd.js → chunk-NQ4KR5QH-Deady69Q.js} +1 -1
  124. package/ui-dist/assets/{chunk-QZHKN3VN-2Yp7ffIW.js → chunk-QZHKN3VN-CBCxkdH6.js} +1 -1
  125. package/ui-dist/assets/{chunk-WL4C6EOR-S0etjqNL.js → chunk-WL4C6EOR-isrINTKV.js} +1 -1
  126. package/ui-dist/assets/classDiagram-VBA2DB6C-Dtwo6gbt.js +1 -0
  127. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-Dtwo6gbt.js +1 -0
  128. package/ui-dist/assets/clone-kRqsxkGl.js +1 -0
  129. package/ui-dist/assets/{cose-bilkent-S5V4N54A-Db8NTY-v.js → cose-bilkent-S5V4N54A-DEqI6MB2.js} +1 -1
  130. package/ui-dist/assets/{dagre-KLK3FWXG-KnB-W-rz.js → dagre-KLK3FWXG-htMxe3b1.js} +1 -1
  131. package/ui-dist/assets/{diagram-E7M64L7V-DZKhPUtZ.js → diagram-E7M64L7V-FoZTYbSd.js} +1 -1
  132. package/ui-dist/assets/{diagram-IFDJBPK2-N9A6mG2G.js → diagram-IFDJBPK2-Ba9PRO_-.js} +1 -1
  133. package/ui-dist/assets/{diagram-P4PSJMXO-O9bD_Xdl.js → diagram-P4PSJMXO-CtCxaSco.js} +1 -1
  134. package/ui-dist/assets/{erDiagram-INFDFZHY-DDZjMLSL.js → erDiagram-INFDFZHY-CSvCOhU9.js} +1 -1
  135. package/ui-dist/assets/{flowDiagram-PKNHOUZH-XvyruncW.js → flowDiagram-PKNHOUZH-BJ8wlqYl.js} +1 -1
  136. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-DyyT5dog.js → ganttDiagram-A5KZAMGK-CZnnlHd9.js} +1 -1
  137. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-gADHznug.js → gitGraphDiagram-K3NZZRJ6-G9KG4OCz.js} +1 -1
  138. package/ui-dist/assets/{graph-7vIigZeu.js → graph-CmEOZML6.js} +1 -1
  139. package/ui-dist/assets/{index-D5KlAqB7.js → index-0jU9C9J5.js} +1 -1
  140. package/ui-dist/assets/{index-ClVYEFCG.js → index-2k06YsZ0.js} +1 -1
  141. package/ui-dist/assets/{index-DTSMhh6G.js → index-B1-HLXQ1.js} +1 -1
  142. package/ui-dist/assets/{index-9UhHaawM.js → index-B4drPtcc.js} +1 -1
  143. package/ui-dist/assets/{index-CyGieKZt.js → index-B76BV2-o.js} +1 -1
  144. package/ui-dist/assets/{index-CwtC_TfQ.js → index-BA75uuCE.js} +1 -1
  145. package/ui-dist/assets/{index-CDS-GPuQ.js → index-BJNHDHzx.js} +1 -1
  146. package/ui-dist/assets/{index-BNrlKXIp.js → index-Bf1iZPV6.js} +1 -1
  147. package/ui-dist/assets/{index-BCFtYRTF.js → index-BuyUdFsk.js} +1 -1
  148. package/ui-dist/assets/{index-CPbseJy6.js → index-Bz9EamK2.js} +1 -1
  149. package/ui-dist/assets/{index-CzAI6rBQ.js → index-CGE3v4f8.js} +1 -1
  150. package/ui-dist/assets/{index-DOFyevXp.js → index-CKQRI15h.js} +1 -1
  151. package/ui-dist/assets/{index-CaT6akeq.js → index-ChZln_1i.js} +1 -1
  152. package/ui-dist/assets/{index-CLcM1MHz.js → index-CmbpxZxI.js} +1 -1
  153. package/ui-dist/assets/{index-lPwz_ooR.js → index-CxjiCZ6r.js} +1 -1
  154. package/ui-dist/assets/{index-Cdg8kabT.js → index-D9SubOrM.js} +1 -1
  155. package/ui-dist/assets/{index-C5eIQEdO.js → index-D9cJ_mwP.js} +1 -1
  156. package/ui-dist/assets/{index-4KVTXANB.js → index-Dfu3lMcj.js} +1 -1
  157. package/ui-dist/assets/{index-D5JBYAir.js → index-DrRZfTTF.js} +1 -1
  158. package/ui-dist/assets/{index-DVz1zQD4.js → index-KkfX5W81.js} +1 -1
  159. package/ui-dist/assets/index-NnBHP7m8.js +1750 -0
  160. package/ui-dist/assets/{index-nWNmZVtb.js → index-OW_vF7mc.js} +1 -1
  161. package/ui-dist/assets/index-XCEW55-_.css +1 -0
  162. package/ui-dist/assets/{index-CATFiL_5.js → index-n3HgsyPM.js} +1 -1
  163. package/ui-dist/assets/{infoDiagram-LFFYTUFH-DZSE3bR9.js → infoDiagram-LFFYTUFH-CULxi1Pi.js} +1 -1
  164. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-IImK5aQu.js → ishikawaDiagram-PHBUUO56-De4H5SvP.js} +1 -1
  165. package/ui-dist/assets/{journeyDiagram-4ABVD52K-acBx1Vxv.js → journeyDiagram-4ABVD52K-aQURd3zC.js} +1 -1
  166. package/ui-dist/assets/{kanban-definition-K7BYSVSG-CTFjpqbi.js → kanban-definition-K7BYSVSG-sxdgA8Mj.js} +1 -1
  167. package/ui-dist/assets/{layout-C82SEtWJ.js → layout-B0y-hpF1.js} +1 -1
  168. package/ui-dist/assets/{linear-CRoau0uq.js → linear-CcF3oPj1.js} +1 -1
  169. package/ui-dist/assets/{mermaid.core-Ci5CSmlH.js → mermaid.core-Ca_slkna.js} +4 -4
  170. package/ui-dist/assets/{mindmap-definition-YRQLILUH-J7GvZpev.js → mindmap-definition-YRQLILUH-bqiHlPwE.js} +1 -1
  171. package/ui-dist/assets/{pieDiagram-SKSYHLDU-vNggbv_2.js → pieDiagram-SKSYHLDU-1aKBqhWX.js} +1 -1
  172. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-Dw7kvy6Y.js → quadrantDiagram-337W2JSQ-Bca_TP9m.js} +1 -1
  173. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-BvSEyElm.js → requirementDiagram-Z7DCOOCP-Co_pbTj0.js} +1 -1
  174. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-DwCLD2LN.js → sankeyDiagram-WA2Y5GQK-FNWr9Qgb.js} +1 -1
  175. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-D_s9lUAn.js → sequenceDiagram-2WXFIKYE-Dy0_t8KK.js} +1 -1
  176. package/ui-dist/assets/{stateDiagram-RAJIS63D-B0jPEqLW.js → stateDiagram-RAJIS63D-DJWDtTEw.js} +1 -1
  177. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-BzIR1BG8.js +1 -0
  178. package/ui-dist/assets/{timeline-definition-YZTLITO2-DdDstc8N.js → timeline-definition-YZTLITO2-BG2EEfkn.js} +1 -1
  179. package/ui-dist/assets/{treemap-KZPCXAKY-CYbOkWQq.js → treemap-KZPCXAKY-memeaR_f.js} +1 -1
  180. package/ui-dist/assets/{vennDiagram-LZ73GAT5-uxQlceJ0.js → vennDiagram-LZ73GAT5-CJ_ThALk.js} +1 -1
  181. package/ui-dist/assets/{xychartDiagram-JWTSCODW-DbYD2ThH.js → xychartDiagram-JWTSCODW-BxKpwCJ-.js} +1 -1
  182. package/ui-dist/index.html +2 -2
  183. package/ui-dist/assets/channel-CEHUUFG8.js +0 -1
  184. package/ui-dist/assets/classDiagram-VBA2DB6C-Bb_snefw.js +0 -1
  185. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-Bb_snefw.js +0 -1
  186. package/ui-dist/assets/clone-B2KToI8w.js +0 -1
  187. package/ui-dist/assets/index-BMr_32cW.css +0 -1
  188. package/ui-dist/assets/index-CgZIlV_x.js +0 -1732
  189. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-CdSwOHOx.js +0 -1
@@ -3,13 +3,15 @@ import { createLocalAgentJwt } from "../agent-auth-jwt.js";
3
3
  import { findServerAdapter } from "../agent-runtimes/index.js";
4
4
  import { agentRunContextService } from "./agent-run-context.js";
5
5
  import { agentService } from "./agents.js";
6
- import { asString, buildConversationPrompt, CHAT_RESULT_SENTINEL_PREFIX, CHAT_UNSUPPORTED_ADAPTER_TYPES, ChatAssistantStreamError, chatExecutionConfig, createAssistantTextAccumulator, createSentinelStream, extractGeneratedAttachments, finalBodyFromRawAssistantText, linkedIssueIdsForChat, linkedProjectIdForChat, maybeEmitAssistantDelta, maybeEmitAssistantState, maybeEmitObservedTranscriptEntry, maybeEmitTranscriptEntry, modelLabel, parseCompletedAssistantReply, partialBodyFromRawAssistantText, prepareChatAttachmentReferences, resultText, safeTrim, shouldSuppressChatTranscriptEntry, stubAgent, summarizeRuntimeSkills, unavailableAgentDescriptor, unconfiguredDescriptor } from "./chat-assistant.helpers.js";
6
+ import { chatAgentRunService } from "./chat-agent-runs.js";
7
+ import { asString, buildConversationPrompt, CHAT_RESULT_SENTINEL_PREFIX, CHAT_UNSUPPORTED_ADAPTER_TYPES, ChatAssistantStreamError, chatExecutionConfig, createAssistantTextAccumulator, createSentinelStream, extractGeneratedAttachments, finalBodyFromRawAssistantText, linkedIssueIdsForChat, linkedProjectIdForChat, maybeEmitAssistantDelta, maybeEmitAssistantState, maybeEmitObservedTranscriptEntry, maybeEmitTranscriptEntry, modelLabel, parseCompletedAssistantReply, partialBodyFromRawAssistantText, prepareChatAttachmentReferences, recoverableFailureMessage, resultText, safeTrim, shouldSuppressChatTranscriptEntry, stubAgent, summarizeRuntimeSkills, unavailableAgentDescriptor, unconfiguredDescriptor } from "./chat-assistant.helpers.js";
7
8
  import { preflightManagedAgentWorkspace } from "./managed-workspace-preflight.js";
8
9
  import { executeAdapterWithModelFallbacks } from "./runtime-kernel/model-fallback.js";
9
10
  export * from "./chat-assistant.helpers.js";
10
11
  export function chatAssistantService(db, storage) {
11
12
  const agentsSvc = agentService(db);
12
13
  const runContextSvc = agentRunContextService(db);
14
+ const chatRunsSvc = chatAgentRunService(db);
13
15
  async function resolveChatInvocation(input) {
14
16
  const runtimeSource = await resolveConversationRuntime(input.conversation);
15
17
  if (!runtimeSource.descriptor.available) {
@@ -190,204 +192,337 @@ export function chatAssistantService(db, storage) {
190
192
  const runtimeAgentType = runtimeSource.agentRuntimeType;
191
193
  const runtimeAgentId = runtimeSource.descriptor.runtimeAgentId;
192
194
  const resultSentinel = `${CHAT_RESULT_SENTINEL_PREFIX}${randomUUID()}__`;
193
- const runId = `chat-${input.conversation.id}-${randomUUID()}`;
195
+ const chatRun = await chatRunsSvc.createRun({
196
+ conversation: input.conversation,
197
+ agentId: runtimeAgentId,
198
+ triggerDetail: input.stream ? "chat_assistant_reply_stream" : "chat_assistant_reply",
199
+ userMessageId: input.userMessageId ?? null,
200
+ chatTurnId: input.chatTurnId ?? null,
201
+ turnVariant: input.turnVariant ?? 0,
202
+ linkedIssueIds,
203
+ linkedProjectId,
204
+ });
205
+ const runId = chatRun.id;
206
+ await input.onRunCreated?.(runId);
207
+ let runFinalized = false;
208
+ const finalizeChatRun = async (finalState) => {
209
+ const finalized = await chatRunsSvc.finalizeRun(runId, finalState);
210
+ runFinalized = true;
211
+ return finalized;
212
+ };
213
+ const finalizeUnhandledRunFailure = async (error) => {
214
+ if (runFinalized)
215
+ return;
216
+ const errorCode = error?.errorCode;
217
+ await finalizeChatRun({
218
+ status: "failed",
219
+ error: error instanceof Error ? error.message : String(error),
220
+ errorCode: typeof errorCode === "string" ? errorCode : "chat_runtime_exception",
221
+ resultJson: {
222
+ outcome: "failed",
223
+ recoverable: true,
224
+ fallbackEnvelope: true,
225
+ },
226
+ });
227
+ };
228
+ const guardActiveRun = async (operation) => {
229
+ try {
230
+ return await operation();
231
+ }
232
+ catch (error) {
233
+ await finalizeUnhandledRunFailure(error);
234
+ throw error;
235
+ }
236
+ };
194
237
  const assistantTextAccumulator = createAssistantTextAccumulator();
195
238
  const sentinelStream = createSentinelStream(resultSentinel);
196
- let parser = adapter.parseStdoutLine;
197
- let stdoutLineBuffer = "";
198
- const { rudderWorkspace, rudderWorkspaces, rudderRuntimeServiceIntents, rudderScene } = sceneContext;
199
- await preflightManagedAgentWorkspace({
200
- agentHome: asString(rudderWorkspace.agentHome),
201
- instructionsDir: asString(rudderWorkspace.instructionsDir),
202
- memoryDir: asString(rudderWorkspace.memoryDir),
203
- lifeDir: asString(rudderWorkspace.lifeDir),
204
- skillsDir: asString(rudderWorkspace.agentSkillsDir),
205
- });
206
- const preparedAttachments = await prepareChatAttachmentReferences({
207
- runtimeType: runtimeAgentType,
208
- messages: input.messages,
209
- storage,
210
- runId,
211
- });
212
- const prompt = buildConversationPrompt(input, runtimeSource, resultSentinel, typeof rudderWorkspace.orgResourcesPrompt === "string" ? rudderWorkspace.orgResourcesPrompt : "", preparedAttachments.references);
213
- const processTranscriptEntries = async (entries) => {
214
- for (const entry of entries) {
215
- if (entry.kind === "assistant") {
216
- const delta = assistantTextAccumulator.push(entry.text, entry.delta === true);
217
- if (!delta)
239
+ try {
240
+ let parser = adapter.parseStdoutLine;
241
+ let stdoutLineBuffer = "";
242
+ const { rudderWorkspace, rudderWorkspaces, rudderRuntimeServiceIntents, rudderScene } = sceneContext;
243
+ await guardActiveRun(() => preflightManagedAgentWorkspace({
244
+ agentHome: asString(rudderWorkspace.agentHome),
245
+ instructionsDir: asString(rudderWorkspace.instructionsDir),
246
+ memoryDir: asString(rudderWorkspace.memoryDir),
247
+ lifeDir: asString(rudderWorkspace.lifeDir),
248
+ skillsDir: asString(rudderWorkspace.agentSkillsDir),
249
+ }));
250
+ const preparedAttachments = await guardActiveRun(() => prepareChatAttachmentReferences({
251
+ runtimeType: runtimeAgentType,
252
+ messages: input.messages,
253
+ storage,
254
+ runId,
255
+ }));
256
+ const prompt = await guardActiveRun(() => buildConversationPrompt(input, runtimeSource, resultSentinel, typeof rudderWorkspace.orgResourcesPrompt === "string" ? rudderWorkspace.orgResourcesPrompt : "", preparedAttachments.references));
257
+ const processTranscriptEntries = async (entries) => {
258
+ for (const entry of entries) {
259
+ if (entry.kind === "assistant") {
260
+ const delta = assistantTextAccumulator.push(entry.text, entry.delta === true);
261
+ if (!delta)
262
+ continue;
263
+ const visibleDelta = sentinelStream.push(delta);
264
+ if (visibleDelta) {
265
+ const assistantTranscriptEntry = {
266
+ kind: "assistant",
267
+ ts: entry.ts,
268
+ text: visibleDelta,
269
+ delta: true,
270
+ };
271
+ await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, assistantTranscriptEntry);
272
+ await maybeEmitTranscriptEntry(input.onTranscriptEntry, assistantTranscriptEntry);
273
+ await chatRunsSvc.appendTranscriptEntry(chatRun, assistantTranscriptEntry);
274
+ }
218
275
  continue;
219
- const visibleDelta = sentinelStream.push(delta);
220
- if (visibleDelta) {
221
- const assistantTranscriptEntry = {
222
- kind: "assistant",
223
- ts: entry.ts,
224
- text: visibleDelta,
225
- delta: true,
226
- };
227
- await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, assistantTranscriptEntry);
228
- await maybeEmitTranscriptEntry(input.onTranscriptEntry, assistantTranscriptEntry);
229
276
  }
230
- continue;
277
+ if (entry.kind === "result") {
278
+ await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, {
279
+ ...entry,
280
+ text: partialBodyFromRawAssistantText(entry.text, resultSentinel),
281
+ });
282
+ }
283
+ else if (!(entry.kind === "stdout" && entry.text.includes(resultSentinel))) {
284
+ await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, entry);
285
+ }
286
+ if (shouldSuppressChatTranscriptEntry(entry, resultSentinel)) {
287
+ continue;
288
+ }
289
+ await maybeEmitTranscriptEntry(input.onTranscriptEntry, entry);
290
+ await chatRunsSvc.appendTranscriptEntry(chatRun, entry);
231
291
  }
232
- if (entry.kind === "result") {
233
- await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, {
234
- ...entry,
235
- text: partialBodyFromRawAssistantText(entry.text, resultSentinel),
236
- });
292
+ };
293
+ const processStdoutLine = async (line) => {
294
+ if (!parser || !line.trim())
295
+ return;
296
+ await processTranscriptEntries(parser(line, new Date().toISOString()));
297
+ };
298
+ const flushStdoutChunk = async (chunk, finalize = false) => {
299
+ const combined = `${stdoutLineBuffer}${chunk}`;
300
+ const lines = combined.split(/\r?\n/);
301
+ stdoutLineBuffer = lines.pop() ?? "";
302
+ for (const line of lines) {
303
+ await processStdoutLine(line);
237
304
  }
238
- else if (!(entry.kind === "stdout" && entry.text.includes(resultSentinel))) {
239
- await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, entry);
305
+ if (finalize && stdoutLineBuffer.trim()) {
306
+ const trailing = stdoutLineBuffer;
307
+ stdoutLineBuffer = "";
308
+ await processStdoutLine(trailing);
240
309
  }
241
- if (shouldSuppressChatTranscriptEntry(entry, resultSentinel)) {
242
- continue;
310
+ };
311
+ await guardActiveRun(() => maybeEmitAssistantState(input.onAssistantState, "streaming"));
312
+ const { chatAttachments, media } = await guardActiveRun(() => {
313
+ const chatAttachments = input.messages
314
+ .slice(-12)
315
+ .flatMap((message) => message.attachments)
316
+ .map((attachment) => {
317
+ const reference = preparedAttachments.references.get(attachment.id);
318
+ return reference ? { attachmentId: attachment.id, ...reference } : null;
319
+ })
320
+ .filter((attachment) => attachment !== null);
321
+ return {
322
+ chatAttachments,
323
+ media: preparedAttachments.media,
324
+ };
325
+ });
326
+ const result = await guardActiveRun(async () => {
327
+ try {
328
+ return await executeAdapterWithModelFallbacks(adapter, {
329
+ runId,
330
+ agent: stubAgent({
331
+ orgId: input.conversation.orgId,
332
+ agentRuntimeType: runtimeAgentType,
333
+ agentRuntimeConfig: config,
334
+ sourceLabel: runtimeSource.descriptor.sourceLabel,
335
+ sourceId: runtimeAgentId,
336
+ }),
337
+ runtime: {
338
+ sessionId: null,
339
+ sessionParams: null,
340
+ sessionDisplayId: null,
341
+ taskKey: null,
342
+ },
343
+ config,
344
+ context: {
345
+ chatPrompt: prompt,
346
+ chatConversationId: input.conversation.id,
347
+ chatMode: true,
348
+ rudderScene,
349
+ rudderWorkspace,
350
+ rudderWorkspaces,
351
+ ...(chatAttachments.length > 0 ? { chatAttachments } : {}),
352
+ ...(rudderRuntimeServiceIntents ? { rudderRuntimeServiceIntents } : {}),
353
+ ...(linkedProjectId ? { projectId: linkedProjectId } : {}),
354
+ ...(linkedIssueIds[0] ? { issueId: linkedIssueIds[0] } : {}),
355
+ ...(linkedIssueIds.length > 0 ? { issueIds: linkedIssueIds } : {}),
356
+ },
357
+ ...(media.length > 0 ? { media } : {}),
358
+ onMeta: async (meta) => {
359
+ await chatRunsSvc.appendAdapterInvoke(chatRun, meta, runtimeSource.runtimeSkills);
360
+ await input.onInvocationMeta?.({
361
+ ...meta,
362
+ loadedSkills: runtimeSource.runtimeSkills,
363
+ });
364
+ },
365
+ authToken: adapter.supportsLocalAgentJwt
366
+ ? createLocalAgentJwt(runtimeAgentId, input.conversation.orgId, runtimeAgentType, runId) ?? undefined
367
+ : undefined,
368
+ abortSignal: input.abortSignal,
369
+ onLog: async (stream, chunk) => {
370
+ if (stream === "stdout") {
371
+ if (chunk.startsWith("[rudder]")) {
372
+ const entry = {
373
+ kind: "stdout",
374
+ ts: new Date().toISOString(),
375
+ text: chunk,
376
+ };
377
+ await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, entry);
378
+ await maybeEmitTranscriptEntry(input.onTranscriptEntry, entry);
379
+ await chatRunsSvc.appendTranscriptEntry(chatRun, entry);
380
+ return;
381
+ }
382
+ await flushStdoutChunk(chunk);
383
+ }
384
+ },
385
+ }, {
386
+ resolveAdapter: findServerAdapter,
387
+ createAuthToken: (agentRuntimeType) => createLocalAgentJwt(runtimeAgentId, input.conversation.orgId, agentRuntimeType, runId) ?? undefined,
388
+ onAttemptStart: (_attempt, attemptAdapter) => {
389
+ parser = attemptAdapter.parseStdoutLine;
390
+ },
391
+ });
243
392
  }
244
- await maybeEmitTranscriptEntry(input.onTranscriptEntry, entry);
393
+ finally {
394
+ await preparedAttachments.cleanup();
395
+ }
396
+ });
397
+ await guardActiveRun(() => flushStdoutChunk("", true));
398
+ await guardActiveRun(() => maybeEmitAssistantDelta(input.onAssistantDelta, sentinelStream.finish()));
399
+ const rawResultText = resultText(result);
400
+ const rawAssistantText = assistantTextAccumulator.fullText || rawResultText;
401
+ const partialBody = partialBodyFromRawAssistantText(rawAssistantText, resultSentinel) ||
402
+ (safeTrim(sentinelStream.visibleText) ?? "");
403
+ const finalPartialBody = finalBodyFromRawAssistantText(rawResultText, resultSentinel)
404
+ || finalBodyFromRawAssistantText(rawAssistantText, resultSentinel);
405
+ if (input.abortSignal?.aborted) {
406
+ await maybeEmitAssistantState(input.onAssistantState, "stopped");
407
+ await finalizeChatRun({
408
+ status: "cancelled",
409
+ error: "Chat run stopped before completion",
410
+ errorCode: "chat_stopped",
411
+ resultJson: {
412
+ outcome: "stopped",
413
+ partialBody,
414
+ },
415
+ });
416
+ return {
417
+ outcome: "stopped",
418
+ partialBody,
419
+ replyingAgentId: runtimeAgentId,
420
+ };
245
421
  }
246
- };
247
- const processStdoutLine = async (line) => {
248
- if (!parser || !line.trim())
249
- return;
250
- await processTranscriptEntries(parser(line, new Date().toISOString()));
251
- };
252
- const flushStdoutChunk = async (chunk, finalize = false) => {
253
- const combined = `${stdoutLineBuffer}${chunk}`;
254
- const lines = combined.split(/\r?\n/);
255
- stdoutLineBuffer = lines.pop() ?? "";
256
- for (const line of lines) {
257
- await processStdoutLine(line);
422
+ if (result.timedOut) {
423
+ const errorCode = "chat_timed_out";
424
+ await finalizeChatRun({
425
+ status: "timed_out",
426
+ error: "Chat request timed out",
427
+ errorCode,
428
+ resultJson: {
429
+ outcome: "failed",
430
+ recoverable: true,
431
+ fallbackEnvelope: true,
432
+ partialBody: finalPartialBody,
433
+ },
434
+ });
435
+ throw new ChatAssistantStreamError("Chat request timed out", finalPartialBody, [], {
436
+ errorCode,
437
+ partialBodyUserVisible: Boolean(finalPartialBody),
438
+ });
258
439
  }
259
- if (finalize && stdoutLineBuffer.trim()) {
260
- const trailing = stdoutLineBuffer;
261
- stdoutLineBuffer = "";
262
- await processStdoutLine(trailing);
440
+ if ((result.exitCode ?? 0) !== 0 || result.errorMessage) {
441
+ const errorCode = "chat_adapter_failed";
442
+ await finalizeChatRun({
443
+ status: "failed",
444
+ error: result.errorMessage ?? "Chat adapter execution failed",
445
+ errorCode,
446
+ resultJson: {
447
+ outcome: "failed",
448
+ recoverable: true,
449
+ fallbackEnvelope: true,
450
+ exitCode: result.exitCode ?? null,
451
+ partialBody: finalPartialBody,
452
+ },
453
+ });
454
+ throw new ChatAssistantStreamError(result.errorMessage ?? "Chat adapter execution failed", finalPartialBody, [], {
455
+ errorCode,
456
+ partialBodyUserVisible: Boolean(finalPartialBody),
457
+ });
263
458
  }
264
- };
265
- await maybeEmitAssistantState(input.onAssistantState, "streaming");
266
- const chatAttachments = input.messages
267
- .slice(-12)
268
- .flatMap((message) => message.attachments)
269
- .map((attachment) => {
270
- const reference = preparedAttachments.references.get(attachment.id);
271
- return reference ? { attachmentId: attachment.id, ...reference } : null;
272
- })
273
- .filter((attachment) => attachment !== null);
274
- const media = preparedAttachments.media;
275
- const result = await (async () => {
459
+ await guardActiveRun(() => maybeEmitAssistantState(input.onAssistantState, "finalizing"));
460
+ const raw = resultText(result) || assistantTextAccumulator.fullText;
461
+ const generatedAttachments = extractGeneratedAttachments(result);
462
+ let reply;
276
463
  try {
277
- return await executeAdapterWithModelFallbacks(adapter, {
278
- runId,
279
- agent: stubAgent({
280
- orgId: input.conversation.orgId,
281
- agentRuntimeType: runtimeAgentType,
282
- agentRuntimeConfig: config,
283
- sourceLabel: runtimeSource.descriptor.sourceLabel,
284
- sourceId: runtimeAgentId,
285
- }),
286
- runtime: {
287
- sessionId: null,
288
- sessionParams: null,
289
- sessionDisplayId: null,
290
- taskKey: null,
291
- },
292
- config,
293
- context: {
294
- chatPrompt: prompt,
295
- chatConversationId: input.conversation.id,
296
- chatMode: true,
297
- rudderScene,
298
- rudderWorkspace,
299
- rudderWorkspaces,
300
- ...(chatAttachments.length > 0 ? { chatAttachments } : {}),
301
- ...(rudderRuntimeServiceIntents ? { rudderRuntimeServiceIntents } : {}),
302
- ...(linkedProjectId ? { projectId: linkedProjectId } : {}),
303
- ...(linkedIssueIds[0] ? { issueId: linkedIssueIds[0] } : {}),
304
- ...(linkedIssueIds.length > 0 ? { issueIds: linkedIssueIds } : {}),
305
- },
306
- ...(media.length > 0 ? { media } : {}),
307
- onMeta: async (meta) => {
308
- await input.onInvocationMeta?.({
309
- ...meta,
310
- loadedSkills: runtimeSource.runtimeSkills,
311
- });
312
- },
313
- authToken: adapter.supportsLocalAgentJwt
314
- ? createLocalAgentJwt(runtimeAgentId, input.conversation.orgId, runtimeAgentType, runId) ?? undefined
315
- : undefined,
316
- abortSignal: input.abortSignal,
317
- onLog: async (stream, chunk) => {
318
- if (stream === "stdout") {
319
- if (chunk.startsWith("[rudder]")) {
320
- const entry = {
321
- kind: "stdout",
322
- ts: new Date().toISOString(),
323
- text: chunk,
324
- };
325
- await maybeEmitObservedTranscriptEntry(input.onObservedTranscriptEntry, entry);
326
- await maybeEmitTranscriptEntry(input.onTranscriptEntry, entry);
327
- return;
328
- }
329
- await flushStdoutChunk(chunk);
330
- }
331
- },
332
- }, {
333
- resolveAdapter: findServerAdapter,
334
- createAuthToken: (agentRuntimeType) => createLocalAgentJwt(runtimeAgentId, input.conversation.orgId, agentRuntimeType, runId) ?? undefined,
335
- onAttemptStart: (_attempt, attemptAdapter) => {
336
- parser = attemptAdapter.parseStdoutLine;
464
+ reply = parseCompletedAssistantReply(raw, resultSentinel, { requireSentinel: true });
465
+ }
466
+ catch (error) {
467
+ const errorMessage = error instanceof Error ? error.message : "Chat adapter returned an invalid final reply";
468
+ const errorCode = errorMessage.includes("without the required Rudder result sentinel")
469
+ ? "chat_result_missing_sentinel"
470
+ : "chat_result_malformed_json";
471
+ await finalizeChatRun({
472
+ status: "failed",
473
+ error: errorMessage,
474
+ errorCode,
475
+ resultJson: {
476
+ outcome: "failed",
477
+ recoverable: true,
478
+ fallbackEnvelope: true,
479
+ errorCode,
480
+ userMessage: recoverableFailureMessage(errorCode),
481
+ partialBody: finalPartialBody,
337
482
  },
338
483
  });
484
+ throw new ChatAssistantStreamError(errorMessage, finalPartialBody, generatedAttachments, {
485
+ errorCode,
486
+ partialBodyUserVisible: Boolean(finalPartialBody),
487
+ });
488
+ }
489
+ const finalBody = reply.body;
490
+ reply.replyingAgentId = runtimeAgentId;
491
+ if (generatedAttachments.length > 0) {
492
+ reply.generatedAttachments = generatedAttachments;
339
493
  }
340
- finally {
341
- await preparedAttachments.cleanup();
494
+ const streamedBody = safeTrim(sentinelStream.visibleText) ?? "";
495
+ if (finalBody && finalBody !== streamedBody) {
496
+ await guardActiveRun(() => maybeEmitAssistantDelta(input.onAssistantDelta, finalBody));
342
497
  }
343
- })();
344
- await flushStdoutChunk("", true);
345
- await maybeEmitAssistantDelta(input.onAssistantDelta, sentinelStream.finish());
346
- const rawResultText = resultText(result);
347
- const rawAssistantText = assistantTextAccumulator.fullText || rawResultText;
348
- const partialBody = partialBodyFromRawAssistantText(rawAssistantText, resultSentinel) ||
349
- (safeTrim(sentinelStream.visibleText) ?? "");
350
- const finalPartialBody = finalBodyFromRawAssistantText(rawResultText, resultSentinel)
351
- || finalBodyFromRawAssistantText(rawAssistantText, resultSentinel);
352
- if (input.abortSignal?.aborted) {
353
- await maybeEmitAssistantState(input.onAssistantState, "stopped");
498
+ await finalizeChatRun({
499
+ status: "succeeded",
500
+ resultJson: {
501
+ outcome: "completed",
502
+ kind: reply.kind,
503
+ body: finalBody,
504
+ generatedAttachmentCount: generatedAttachments.length,
505
+ },
506
+ usageJson: result.usage ? { ...result.usage } : null,
507
+ });
354
508
  return {
355
- outcome: "stopped",
356
- partialBody,
509
+ outcome: "completed",
510
+ reply,
511
+ partialBody: finalBody,
357
512
  replyingAgentId: runtimeAgentId,
358
513
  };
359
514
  }
360
- if (result.timedOut) {
361
- throw new ChatAssistantStreamError("Chat request timed out", finalPartialBody, [], { partialBodyUserVisible: Boolean(finalPartialBody) });
362
- }
363
- if ((result.exitCode ?? 0) !== 0 || result.errorMessage) {
364
- throw new ChatAssistantStreamError(result.errorMessage ?? "Chat adapter execution failed", finalPartialBody, [], { partialBodyUserVisible: Boolean(finalPartialBody) });
365
- }
366
- await maybeEmitAssistantState(input.onAssistantState, "finalizing");
367
- const raw = resultText(result) || assistantTextAccumulator.fullText;
368
- const generatedAttachments = extractGeneratedAttachments(result);
369
- let reply;
370
- try {
371
- reply = parseCompletedAssistantReply(raw, resultSentinel, { requireSentinel: true });
372
- }
373
515
  catch (error) {
374
- throw new ChatAssistantStreamError(error instanceof Error ? error.message : "Chat adapter returned an invalid final reply", finalPartialBody, generatedAttachments, { partialBodyUserVisible: Boolean(finalPartialBody) });
375
- }
376
- const finalBody = reply.body;
377
- reply.replyingAgentId = runtimeAgentId;
378
- if (generatedAttachments.length > 0) {
379
- reply.generatedAttachments = generatedAttachments;
380
- }
381
- const streamedBody = safeTrim(sentinelStream.visibleText) ?? "";
382
- if (finalBody && finalBody !== streamedBody) {
383
- await maybeEmitAssistantDelta(input.onAssistantDelta, finalBody);
516
+ await finalizeUnhandledRunFailure(error);
517
+ if (error instanceof ChatAssistantStreamError) {
518
+ throw error;
519
+ }
520
+ const partialBody = safeTrim(sentinelStream.visibleText) ?? "";
521
+ throw new ChatAssistantStreamError(error instanceof Error ? error.message : "Chat runtime failed before producing a final reply", partialBody, [], {
522
+ errorCode: "chat_runtime_exception",
523
+ partialBodyUserVisible: false,
524
+ });
384
525
  }
385
- return {
386
- outcome: "completed",
387
- reply,
388
- partialBody: finalBody,
389
- replyingAgentId: runtimeAgentId,
390
- };
391
526
  }
392
527
  return {
393
528
  enrichConversation,
@@ -1 +1 @@
1
- {"version":3,"file":"chat-assistant.js","sourceRoot":"","sources":["../../src/services/chat-assistant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-assistant.js","sourceRoot":"","sources":["../../src/services/chat-assistant.ts"],"names":[],"mappings":"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"}