@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.
- package/dist/agent-runtimes/codex-models.d.ts.map +1 -1
- package/dist/agent-runtimes/codex-models.js +2 -92
- package/dist/agent-runtimes/codex-models.js.map +1 -1
- package/dist/agent-runtimes/registry.d.ts.map +1 -1
- package/dist/agent-runtimes/registry.js +17 -2
- package/dist/agent-runtimes/registry.js.map +1 -1
- package/dist/bundled-plugins/plugin-linear/dist/worker.js +20 -1
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/activity.d.ts.map +1 -1
- package/dist/routes/activity.js +86 -0
- package/dist/routes/activity.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +9 -3
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/agents.management-routes.d.ts.map +1 -1
- package/dist/routes/agents.management-routes.js +17 -3
- package/dist/routes/agents.management-routes.js.map +1 -1
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +238 -5
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.stream-routes.d.ts.map +1 -1
- package/dist/routes/chats.stream-routes.js +38 -7
- package/dist/routes/chats.stream-routes.js.map +1 -1
- package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
- package/dist/routes/issues.comments-attachments.js +24 -8
- package/dist/routes/issues.comments-attachments.js.map +1 -1
- package/dist/routes/messenger.d.ts.map +1 -1
- package/dist/routes/messenger.js +49 -1
- package/dist/routes/messenger.js.map +1 -1
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +65 -2
- package/dist/routes/orgs.js.map +1 -1
- package/dist/services/activity.d.ts +37 -0
- package/dist/services/activity.d.ts.map +1 -1
- package/dist/services/activity.js +619 -27
- package/dist/services/activity.js.map +1 -1
- package/dist/services/agent-run-context.d.ts.map +1 -1
- package/dist/services/agent-run-context.js +100 -9
- package/dist/services/agent-run-context.js.map +1 -1
- package/dist/services/agents.d.ts +48 -13
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/automation-chat-output.d.ts +1 -0
- package/dist/services/automation-chat-output.d.ts.map +1 -1
- package/dist/services/automations.d.ts.map +1 -1
- package/dist/services/automations.js +35 -5
- package/dist/services/automations.js.map +1 -1
- package/dist/services/board-auth.d.ts +2 -2
- package/dist/services/chat-agent-runs.d.ts +65 -0
- package/dist/services/chat-agent-runs.d.ts.map +1 -0
- package/dist/services/chat-agent-runs.js +267 -0
- package/dist/services/chat-agent-runs.js.map +1 -0
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.d.ts +12 -0
- package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.js +23 -1
- package/dist/services/chat-assistant.helpers.js.map +1 -1
- package/dist/services/chat-assistant.js +312 -177
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chats.d.ts +89 -1
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +29 -17
- package/dist/services/chats.js.map +1 -1
- package/dist/services/issues.comments-attachments.d.ts +1 -0
- package/dist/services/issues.comments-attachments.d.ts.map +1 -1
- package/dist/services/issues.comments-attachments.js +25 -1
- package/dist/services/issues.comments-attachments.js.map +1 -1
- package/dist/services/issues.d.ts +1 -0
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +1 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.js +18 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.js +2 -9
- package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
- package/dist/services/messenger.d.ts +56 -2
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +218 -3
- package/dist/services/messenger.js.map +1 -1
- package/dist/services/organization-intelligence-profiles.js +3 -3
- package/dist/services/organization-intelligence-profiles.js.map +1 -1
- package/dist/services/organization-skills.d.ts +1 -1
- package/dist/services/organization-skills.d.ts.map +1 -1
- package/dist/services/organization-skills.js +1 -1
- package/dist/services/organization-skills.js.map +1 -1
- package/dist/services/run-intelligence.d.ts.map +1 -1
- package/dist/services/run-intelligence.js +6 -2
- package/dist/services/run-intelligence.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +17 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +1 -0
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +8 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +13 -7
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js +2 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
- package/dist/services/workspace-runtime.services.d.ts +1 -1
- package/package.json +13 -13
- package/resources/bundled-skills/rudder/SKILL.md +29 -32
- package/resources/bundled-skills/rudder/references/api-reference.md +12 -2
- package/resources/bundled-skills/rudder/references/cli-reference.md +13 -2
- package/skills/rudder/SKILL.md +29 -32
- package/skills/rudder/references/api-reference.md +12 -2
- package/skills/rudder/references/cli-reference.md +13 -2
- package/ui-dist/assets/{_basePickBy-pCn65kUg.js → _basePickBy-DQRD3jbd.js} +1 -1
- package/ui-dist/assets/{_baseUniq-D_Y907uk.js → _baseUniq-ChSV83Tl.js} +1 -1
- package/ui-dist/assets/{arc-D1FOXYxM.js → arc-BCwqsots.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-BqM99oWe.js → architectureDiagram-2XIMDMQ5-D59Qu6r3.js} +1 -1
- package/ui-dist/assets/{blockDiagram-WCTKOSBZ-B31x8PiB.js → blockDiagram-WCTKOSBZ-BLJNQhjF.js} +1 -1
- package/ui-dist/assets/{c4Diagram-IC4MRINW-BXxWTBO0.js → c4Diagram-IC4MRINW-CK3IxauE.js} +1 -1
- package/ui-dist/assets/channel-D0Hj27Hq.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-A-mJSYhX.js → chunk-4BX2VUAB-By54H8_d.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-C_xHp5sT.js → chunk-55IACEB6-Ct4oxREP.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-hzewwsYy.js → chunk-FMBD7UC4-Bo5QQDeN.js} +1 -1
- package/ui-dist/assets/{chunk-JSJVCQXG-BOEtQsnL.js → chunk-JSJVCQXG-DRWD6spx.js} +1 -1
- package/ui-dist/assets/{chunk-KX2RTZJC-CoIlm_Hx.js → chunk-KX2RTZJC-CduFLzMt.js} +1 -1
- package/ui-dist/assets/{chunk-NQ4KR5QH-DmGxBmwd.js → chunk-NQ4KR5QH-Deady69Q.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-2Yp7ffIW.js → chunk-QZHKN3VN-CBCxkdH6.js} +1 -1
- package/ui-dist/assets/{chunk-WL4C6EOR-S0etjqNL.js → chunk-WL4C6EOR-isrINTKV.js} +1 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-Dtwo6gbt.js +1 -0
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-Dtwo6gbt.js +1 -0
- package/ui-dist/assets/clone-kRqsxkGl.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-Db8NTY-v.js → cose-bilkent-S5V4N54A-DEqI6MB2.js} +1 -1
- package/ui-dist/assets/{dagre-KLK3FWXG-KnB-W-rz.js → dagre-KLK3FWXG-htMxe3b1.js} +1 -1
- package/ui-dist/assets/{diagram-E7M64L7V-DZKhPUtZ.js → diagram-E7M64L7V-FoZTYbSd.js} +1 -1
- package/ui-dist/assets/{diagram-IFDJBPK2-N9A6mG2G.js → diagram-IFDJBPK2-Ba9PRO_-.js} +1 -1
- package/ui-dist/assets/{diagram-P4PSJMXO-O9bD_Xdl.js → diagram-P4PSJMXO-CtCxaSco.js} +1 -1
- package/ui-dist/assets/{erDiagram-INFDFZHY-DDZjMLSL.js → erDiagram-INFDFZHY-CSvCOhU9.js} +1 -1
- package/ui-dist/assets/{flowDiagram-PKNHOUZH-XvyruncW.js → flowDiagram-PKNHOUZH-BJ8wlqYl.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-A5KZAMGK-DyyT5dog.js → ganttDiagram-A5KZAMGK-CZnnlHd9.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-gADHznug.js → gitGraphDiagram-K3NZZRJ6-G9KG4OCz.js} +1 -1
- package/ui-dist/assets/{graph-7vIigZeu.js → graph-CmEOZML6.js} +1 -1
- package/ui-dist/assets/{index-D5KlAqB7.js → index-0jU9C9J5.js} +1 -1
- package/ui-dist/assets/{index-ClVYEFCG.js → index-2k06YsZ0.js} +1 -1
- package/ui-dist/assets/{index-DTSMhh6G.js → index-B1-HLXQ1.js} +1 -1
- package/ui-dist/assets/{index-9UhHaawM.js → index-B4drPtcc.js} +1 -1
- package/ui-dist/assets/{index-CyGieKZt.js → index-B76BV2-o.js} +1 -1
- package/ui-dist/assets/{index-CwtC_TfQ.js → index-BA75uuCE.js} +1 -1
- package/ui-dist/assets/{index-CDS-GPuQ.js → index-BJNHDHzx.js} +1 -1
- package/ui-dist/assets/{index-BNrlKXIp.js → index-Bf1iZPV6.js} +1 -1
- package/ui-dist/assets/{index-BCFtYRTF.js → index-BuyUdFsk.js} +1 -1
- package/ui-dist/assets/{index-CPbseJy6.js → index-Bz9EamK2.js} +1 -1
- package/ui-dist/assets/{index-CzAI6rBQ.js → index-CGE3v4f8.js} +1 -1
- package/ui-dist/assets/{index-DOFyevXp.js → index-CKQRI15h.js} +1 -1
- package/ui-dist/assets/{index-CaT6akeq.js → index-ChZln_1i.js} +1 -1
- package/ui-dist/assets/{index-CLcM1MHz.js → index-CmbpxZxI.js} +1 -1
- package/ui-dist/assets/{index-lPwz_ooR.js → index-CxjiCZ6r.js} +1 -1
- package/ui-dist/assets/{index-Cdg8kabT.js → index-D9SubOrM.js} +1 -1
- package/ui-dist/assets/{index-C5eIQEdO.js → index-D9cJ_mwP.js} +1 -1
- package/ui-dist/assets/{index-4KVTXANB.js → index-Dfu3lMcj.js} +1 -1
- package/ui-dist/assets/{index-D5JBYAir.js → index-DrRZfTTF.js} +1 -1
- package/ui-dist/assets/{index-DVz1zQD4.js → index-KkfX5W81.js} +1 -1
- package/ui-dist/assets/index-NnBHP7m8.js +1750 -0
- package/ui-dist/assets/{index-nWNmZVtb.js → index-OW_vF7mc.js} +1 -1
- package/ui-dist/assets/index-XCEW55-_.css +1 -0
- package/ui-dist/assets/{index-CATFiL_5.js → index-n3HgsyPM.js} +1 -1
- package/ui-dist/assets/{infoDiagram-LFFYTUFH-DZSE3bR9.js → infoDiagram-LFFYTUFH-CULxi1Pi.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-IImK5aQu.js → ishikawaDiagram-PHBUUO56-De4H5SvP.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-4ABVD52K-acBx1Vxv.js → journeyDiagram-4ABVD52K-aQURd3zC.js} +1 -1
- package/ui-dist/assets/{kanban-definition-K7BYSVSG-CTFjpqbi.js → kanban-definition-K7BYSVSG-sxdgA8Mj.js} +1 -1
- package/ui-dist/assets/{layout-C82SEtWJ.js → layout-B0y-hpF1.js} +1 -1
- package/ui-dist/assets/{linear-CRoau0uq.js → linear-CcF3oPj1.js} +1 -1
- package/ui-dist/assets/{mermaid.core-Ci5CSmlH.js → mermaid.core-Ca_slkna.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-YRQLILUH-J7GvZpev.js → mindmap-definition-YRQLILUH-bqiHlPwE.js} +1 -1
- package/ui-dist/assets/{pieDiagram-SKSYHLDU-vNggbv_2.js → pieDiagram-SKSYHLDU-1aKBqhWX.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-337W2JSQ-Dw7kvy6Y.js → quadrantDiagram-337W2JSQ-Bca_TP9m.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-BvSEyElm.js → requirementDiagram-Z7DCOOCP-Co_pbTj0.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-DwCLD2LN.js → sankeyDiagram-WA2Y5GQK-FNWr9Qgb.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-D_s9lUAn.js → sequenceDiagram-2WXFIKYE-Dy0_t8KK.js} +1 -1
- package/ui-dist/assets/{stateDiagram-RAJIS63D-B0jPEqLW.js → stateDiagram-RAJIS63D-DJWDtTEw.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-BzIR1BG8.js +1 -0
- package/ui-dist/assets/{timeline-definition-YZTLITO2-DdDstc8N.js → timeline-definition-YZTLITO2-BG2EEfkn.js} +1 -1
- package/ui-dist/assets/{treemap-KZPCXAKY-CYbOkWQq.js → treemap-KZPCXAKY-memeaR_f.js} +1 -1
- package/ui-dist/assets/{vennDiagram-LZ73GAT5-uxQlceJ0.js → vennDiagram-LZ73GAT5-CJ_ThALk.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-JWTSCODW-DbYD2ThH.js → xychartDiagram-JWTSCODW-BxKpwCJ-.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/channel-CEHUUFG8.js +0 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-Bb_snefw.js +0 -1
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-Bb_snefw.js +0 -1
- package/ui-dist/assets/clone-B2KToI8w.js +0 -1
- package/ui-dist/assets/index-BMr_32cW.css +0 -1
- package/ui-dist/assets/index-CgZIlV_x.js +0 -1732
- 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 {
|
|
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
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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
|
-
|
|
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
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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
|
-
|
|
239
|
-
|
|
305
|
+
if (finalize && stdoutLineBuffer.trim()) {
|
|
306
|
+
const trailing = stdoutLineBuffer;
|
|
307
|
+
stdoutLineBuffer = "";
|
|
308
|
+
await processStdoutLine(trailing);
|
|
240
309
|
}
|
|
241
|
-
|
|
242
|
-
|
|
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
|
-
|
|
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
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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 (
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
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
|
-
|
|
266
|
-
|
|
267
|
-
|
|
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
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
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
|
-
|
|
341
|
-
|
|
494
|
+
const streamedBody = safeTrim(sentinelStream.visibleText) ?? "";
|
|
495
|
+
if (finalBody && finalBody !== streamedBody) {
|
|
496
|
+
await guardActiveRun(() => maybeEmitAssistantDelta(input.onAssistantDelta, finalBody));
|
|
342
497
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
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: "
|
|
356
|
-
|
|
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
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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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"}
|