@rudderhq/server 0.7.16 → 0.7.18
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/create-http-app.d.ts.map +1 -1
- package/dist/bootstrap/create-http-app.js +3 -9
- package/dist/bootstrap/create-http-app.js.map +1 -1
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +16 -69
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.message-query-routes.d.ts +9 -0
- package/dist/routes/chats.message-query-routes.d.ts.map +1 -0
- package/dist/routes/chats.message-query-routes.js +43 -0
- package/dist/routes/chats.message-query-routes.js.map +1 -0
- package/dist/routes/chats.stop-route.d.ts +3 -0
- package/dist/routes/chats.stop-route.d.ts.map +1 -0
- package/dist/routes/chats.stop-route.js +240 -0
- package/dist/routes/chats.stop-route.js.map +1 -0
- package/dist/routes/chats.stream-routes.d.ts.map +1 -1
- package/dist/routes/chats.stream-routes.js +94 -390
- package/dist/routes/chats.stream-routes.js.map +1 -1
- package/dist/routes/chats.stream-support.d.ts +41 -0
- package/dist/routes/chats.stream-support.d.ts.map +1 -1
- package/dist/routes/chats.stream-support.js +58 -0
- package/dist/routes/chats.stream-support.js.map +1 -1
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +0 -1
- package/dist/routes/orgs.js.map +1 -1
- package/dist/services/chat-generation-locks.test.js +0 -8
- package/dist/services/chat-generation-locks.test.js.map +1 -1
- package/dist/services/chat-inline-annotation-validation.d.ts.map +1 -1
- package/dist/services/chat-inline-annotation-validation.js +3 -10
- package/dist/services/chat-inline-annotation-validation.js.map +1 -1
- package/dist/services/chat-inline-annotations.test.js +9 -15
- package/dist/services/chat-inline-annotations.test.js.map +1 -1
- package/dist/services/chat-message-mutation-fingerprint.d.ts +29 -1
- package/dist/services/chat-message-mutation-fingerprint.d.ts.map +1 -1
- package/dist/services/chat-message-mutation-fingerprint.js +55 -0
- package/dist/services/chat-message-mutation-fingerprint.js.map +1 -1
- package/dist/services/chats.annotation-persistence.d.ts +5 -0
- package/dist/services/chats.annotation-persistence.d.ts.map +1 -1
- package/dist/services/chats.annotation-persistence.js +33 -1
- package/dist/services/chats.annotation-persistence.js.map +1 -1
- package/dist/services/chats.d.ts +2 -28
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +3 -29
- package/dist/services/chats.js.map +1 -1
- package/dist/services/organization-workspace-browser.d.ts.map +1 -1
- package/dist/services/organization-workspace-browser.js +1 -7
- package/dist/services/organization-workspace-browser.js.map +1 -1
- package/dist/services/product-analytics-collector.test.js +5 -1
- package/dist/services/product-analytics-collector.test.js.map +1 -1
- package/dist/services/rudder-plugin-catalog.d.ts.map +1 -1
- package/dist/services/rudder-plugin-catalog.js +10 -11
- package/dist/services/rudder-plugin-catalog.js.map +1 -1
- package/dist/services/rudder-plugins.d.ts +0 -2
- package/dist/services/rudder-plugins.d.ts.map +1 -1
- package/dist/services/rudder-plugins.js +11 -15
- package/dist/services/rudder-plugins.js.map +1 -1
- package/dist/services/rudder-plugins.test.js +1 -17
- package/dist/services/rudder-plugins.test.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +1 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +11 -0
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +3 -33
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +1 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js +23 -0
- package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
- package/package.json +14 -14
- package/ui-dist/assets/{LibraryLiveSurface-DnY0wZep.js → LibraryLiveSurface-BHneB__U.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-CT-9m1Vc.js → abnfDiagram-VRR7QNED-GUoY9rTt.js} +1 -1
- package/ui-dist/assets/{addon-fit-C6aMSfRz.js → addon-fit-CqXXE0-1.js} +1 -1
- package/ui-dist/assets/{arc-1nExaM-y.js → arc-BD7m_r6l.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-bILoPPs5.js → architectureDiagram-ZJ3FMSHR-nEufXAY_.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3--zRFciqi.js → blockDiagram-677ZJIJ3-D3qUEbL5.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-CrtaX6A_.js → c4Diagram-LMCZKHZV-7SPUxKgx.js} +1 -1
- package/ui-dist/assets/channel-Czz1OwXA.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-DoBb7ZYS.js → chunk-2Q5K7J3B-6o3ETzOY.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-DilGswdp.js → chunk-32BRIVSS-Efd566e8.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-D8q00d1k.js → chunk-5VM5RSS4-BA4X4gzU.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-Bl1KSAwQ.js → chunk-EX3LRPZG-BD7K-mPD.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-DtdgLB7Y.js → chunk-JWPE2WC7-DXv6iHxr.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-UaG7L1QI.js → chunk-MOJQB5TN-dQ6gk-_u.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-mkz9qbQF.js → chunk-RYQCIY6F-xEk6bTb7.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-FGET6Myl.js → chunk-V7JOEXUC-zlvz5Y5q.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-BgfUmupS.js → chunk-VR4S4FIN--zCSWk5F.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-B6I-gBFN.js → chunk-XXDRQBXY-CZ2QWPRe.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-C_ooAkuA.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-C_ooAkuA.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-DVGWBjbO.js → cose-bilkent-JH36ORCC-DrRNgFzR.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-CWjLXAiA.js → cynefin-VYW2F7L2-T9PONuTh.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DWY5Jowv.js → cynefinDiagram-TSTJHNR4-Dkop4mS3.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-Bp0SVTqP.js → dagre-VKFMJZFB-Chc8Imxx.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-EhsLuQCs.js → diagram-FQU43EPY-n4pgnJYP.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-C_ifHw4Q.js → diagram-G47NLZAW-DnjvVsj5.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-BCitqFNA.js → diagram-NH7WQ7WH-kHZ9astC.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-BRjomHnO.js → diagram-OA4YK3LP-BAMly3yv.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-Cr_E92JE.js → diagram-WEI45ONY-BTFQhBrp.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-0WJQMwqt.js → ebnfDiagram-CCIWWBDH-c2T4DORg.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-B0EBivSu.js → erDiagram-Q63AITRT-BXLi1JHT.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-BwdRtCsd.js → flowDiagram-23GEKE2U-CHzX7naH.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-KxlqXAqZ.js → ganttDiagram-NO4QXBWP-BqUKeoDF.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-DeTCa-SS.js → gitGraphDiagram-IHSO6WYX-DM4K-DoE.js} +1 -1
- package/ui-dist/assets/{graph-rdRwl3us.js → graph-BDejhZe_.js} +1 -1
- package/ui-dist/assets/{index-CbEMZXO1.js → index-B4zWD5-i.js} +1 -1
- package/ui-dist/assets/{index-B2jHUYti.js → index-BJ-hTdyx.js} +1 -1
- package/ui-dist/assets/{index-CY1CWc3h.js → index-BN90mN5Z.js} +1 -1
- package/ui-dist/assets/{index-D3RtGD1i.js → index-Bni14R_J.js} +1 -1
- package/ui-dist/assets/index-BsB7Sc7m.css +32 -0
- package/ui-dist/assets/{index-CcLF8pix.js → index-BuCCxdIU.js} +1 -1
- package/ui-dist/assets/{index-NxbW73mN.js → index-CH8tOJZ9.js} +1 -1
- package/ui-dist/assets/{index-7Mb8iY3g.js → index-CIbvFYbV.js} +1 -1
- package/ui-dist/assets/{index-BzLCEJCf.js → index-CV0k_zvK.js} +1 -1
- package/ui-dist/assets/{index-CuP2P51w.js → index-DAM3EGbv.js} +1 -1
- package/ui-dist/assets/{index-s8ZAOPE2.js → index-DHzaZSPM.js} +641 -641
- package/ui-dist/assets/{index-DBPJ49Cn.js → index-DSAl1a-M.js} +1 -1
- package/ui-dist/assets/{index-Bi7KPtJ3.js → index-DVDu5Nwd.js} +1 -1
- package/ui-dist/assets/{index-C2DKaTLo.js → index-DZBZIqJI.js} +1 -1
- package/ui-dist/assets/{index-CtFA44ZZ.js → index-WbyFmgaS.js} +1 -1
- package/ui-dist/assets/{index-D5pdKmHf.js → index-XnCv8P5f.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-Cun6yrS9.js → infoDiagram-FWYZ7A6U-PcFBrZTu.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-SHuCvm_3.js → ishikawaDiagram-FXEZZL3T-BF2qBweH.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-B2oa-ovF.js → journeyDiagram-5HDEW3XC-D3TqAoEB.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-DtG3RFW0.js → kanban-definition-HUTT4EX6-CUiHrckR.js} +1 -1
- package/ui-dist/assets/{layout-DmSY_WKW.js → layout-DMKAzTyC.js} +1 -1
- package/ui-dist/assets/{linear-BiklTv-9.js → linear-D8C0WdTA.js} +1 -1
- package/ui-dist/assets/{map-B3RAMPoy.js → map-DUCHGq8e.js} +1 -1
- package/ui-dist/assets/{mermaid.core-CQj0CvWy.js → mermaid.core-C-eoqr77.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-BQrncLdk.js → mindmap-definition-LN4V7U3C-B54nV_Hu.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-BmkmBhyS.js → pegDiagram-2B236MQR-CcIDNzTo.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-B0dWJser.js → pieDiagram-ENE6RG2P-BU4swrSE.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-RS2o06NX.js → quadrantDiagram-ABIIQ3AL-CnniDL18.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-B4dlWUnB.js → railroadDiagram-RFXS5EU6-CiBY7wpV.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-7M1vICZA.js → requirementDiagram-TGXJPOKE-C7c_tTqS.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-LUpZrugG.js → sankeyDiagram-HTMAVEWB-DJuTS99d.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-DB4ecUEg.js → sequenceDiagram-DBY2YBRQ-BxhtY70W.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-CgLQGkEa.js → sizeCapture-X5ZJPWSS-0A0Kww03.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-BxLcsZg0.js → stateDiagram-2N3HPSRC-DPw4bytW.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-ANI7JZ72.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-CFoyzQNM.js → swimlanes-5IMT3BWC-D6MMDWrs.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CxjGCcz5.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-C1vajCzY.js → timeline-definition-FHXFAJF6-gNKDUxQx.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-C42rETOq.js → vennDiagram-L72KCM5P-BpZCM-ST.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-BgzD6-QL.js → wardleyDiagram-EHGQE667-CvR0dYqn.js} +1 -1
- package/ui-dist/assets/{xterm-BeBaISmm.js → xterm-CEksOm0P.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BdoJT_55.js → xychartDiagram-FW5EYKEG-C6_4sxeI.js} +1 -1
- package/ui-dist/index.html +11 -7
- package/ui-dist/assets/channel-C3jj6nd_.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-CNsW5NoJ.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CNsW5NoJ.js +0 -1
- package/ui-dist/assets/index-CYaeM_68.css +0 -32
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DAlIlXqa.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DXfnihCA.js +0 -8
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { stopChatGenerationSchema } from "@rudderhq/shared";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
import { conflict } from "../errors.js";
|
|
4
|
+
import { cancelActiveChatGeneration, getActiveChatGeneration, } from "../services/chat-generation-locks.js";
|
|
5
|
+
import { startingChatGenerationGates, } from "./chats.stream-support.js";
|
|
6
|
+
export function registerChatStopRoute(ctx) {
|
|
7
|
+
const { router, svc, assertConversationAccess, assertChatLocalMutationAllowed, assertSideChatMutationAllowed, wakeTerminalProjector, } = ctx;
|
|
8
|
+
router.post("/chats/:id/messages/stream/stop", async (req, res) => {
|
|
9
|
+
const parsed = stopChatGenerationSchema.safeParse(req.body ?? {});
|
|
10
|
+
if (!parsed.success) {
|
|
11
|
+
res.status(400).json({ error: "Invalid chat Stop request", details: parsed.error.issues });
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const conversation = await assertConversationAccess(req, req.params.id);
|
|
15
|
+
if (!conversation) {
|
|
16
|
+
res.status(404).json({ error: "Chat conversation not found" });
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
assertChatLocalMutationAllowed(conversation);
|
|
20
|
+
await assertSideChatMutationAllowed(req, conversation);
|
|
21
|
+
const controlActionId = parsed.data.controlActionId ?? randomUUID();
|
|
22
|
+
const startupGate = startingChatGenerationGates.get(conversation.id) ?? null;
|
|
23
|
+
let startupStopRequested = false;
|
|
24
|
+
let startupInterruptRequested = false;
|
|
25
|
+
try {
|
|
26
|
+
let active = getActiveChatGeneration(conversation.id);
|
|
27
|
+
if (active && !active.generationId && startupGate) {
|
|
28
|
+
startupStopRequested = true;
|
|
29
|
+
startupGate.stopRequested = true;
|
|
30
|
+
startupInterruptRequested = cancelActiveChatGeneration(conversation.id);
|
|
31
|
+
const startupGenerationId = await startupGate.generationReady;
|
|
32
|
+
active = startupGenerationId ? getActiveChatGeneration(conversation.id) : null;
|
|
33
|
+
if (!startupGenerationId) {
|
|
34
|
+
res.json({
|
|
35
|
+
stopped: startupInterruptRequested,
|
|
36
|
+
controlActionId,
|
|
37
|
+
generationId: null,
|
|
38
|
+
disposition: startupInterruptRequested ? "startup_cancelled" : "interrupted_unverified",
|
|
39
|
+
});
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const latestActiveGeneration = active?.generationId
|
|
44
|
+
? null
|
|
45
|
+
: await svc.getLatestActiveGeneration(conversation.id);
|
|
46
|
+
const generationId = parsed.data.expectedGenerationId
|
|
47
|
+
?? active?.generationId
|
|
48
|
+
?? latestActiveGeneration?.id
|
|
49
|
+
?? null;
|
|
50
|
+
if (!generationId) {
|
|
51
|
+
res.json({
|
|
52
|
+
stopped: false,
|
|
53
|
+
controlActionId,
|
|
54
|
+
generationId: null,
|
|
55
|
+
disposition: "no_active_generation",
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
let durableCheckpoint = await svc.generationProtocol.getLatestVisibleCheckpoint({
|
|
60
|
+
orgId: conversation.orgId,
|
|
61
|
+
conversationId: conversation.id,
|
|
62
|
+
generationId,
|
|
63
|
+
});
|
|
64
|
+
if (durableCheckpoint.generation.runtimeTerminalAt && !parsed.data.controlActionId) {
|
|
65
|
+
wakeTerminalProjector();
|
|
66
|
+
res.json({
|
|
67
|
+
stopped: false,
|
|
68
|
+
controlActionId,
|
|
69
|
+
generationId,
|
|
70
|
+
disposition: "no_active_generation",
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const expectedAttemptEpoch = parsed.data.expectedAttemptEpoch
|
|
75
|
+
?? durableCheckpoint.generation.attemptEpoch;
|
|
76
|
+
const requestedControlVersion = parsed.data.expectedControlVersion
|
|
77
|
+
?? durableCheckpoint.generation.controlVersion;
|
|
78
|
+
const requestedRenderSeq = parsed.data.lastCommittedRenderSeq
|
|
79
|
+
?? durableCheckpoint.generationSeq;
|
|
80
|
+
const requestedBodyHash = parsed.data.renderedBodyHash
|
|
81
|
+
?? durableCheckpoint.bodyHash;
|
|
82
|
+
let stop = null;
|
|
83
|
+
for (let attempt = 0; attempt < 2 && !stop; attempt += 1) {
|
|
84
|
+
try {
|
|
85
|
+
stop = await svc.generationProtocol.beginStopAction({
|
|
86
|
+
orgId: conversation.orgId,
|
|
87
|
+
conversationId: conversation.id,
|
|
88
|
+
controlActionId,
|
|
89
|
+
expectedGenerationId: generationId,
|
|
90
|
+
expectedAttemptEpoch,
|
|
91
|
+
expectedControlVersion: requestedControlVersion,
|
|
92
|
+
admissionControlVersion: attempt === 0
|
|
93
|
+
? requestedControlVersion
|
|
94
|
+
: durableCheckpoint.generation.controlVersion,
|
|
95
|
+
requestedRenderSeq,
|
|
96
|
+
requestedBodyHash,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const status = error && typeof error === "object" && "status" in error
|
|
101
|
+
? Number(error.status)
|
|
102
|
+
: null;
|
|
103
|
+
if (attempt > 0 || status !== 409)
|
|
104
|
+
throw error;
|
|
105
|
+
durableCheckpoint = await svc.generationProtocol.getLatestVisibleCheckpoint({
|
|
106
|
+
orgId: conversation.orgId,
|
|
107
|
+
conversationId: conversation.id,
|
|
108
|
+
generationId,
|
|
109
|
+
});
|
|
110
|
+
if (durableCheckpoint.generation.runtimeTerminalAt && !parsed.data.controlActionId) {
|
|
111
|
+
wakeTerminalProjector();
|
|
112
|
+
res.json({
|
|
113
|
+
stopped: false,
|
|
114
|
+
controlActionId,
|
|
115
|
+
generationId,
|
|
116
|
+
disposition: "no_active_generation",
|
|
117
|
+
});
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (durableCheckpoint.generation.attemptEpoch !== expectedAttemptEpoch)
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (!stop)
|
|
125
|
+
throw new Error("Failed to establish the chat Stop cutoff");
|
|
126
|
+
const wasWaitingForNetwork = durableCheckpoint.generation.status === "waiting_for_network";
|
|
127
|
+
if (stop.idempotent
|
|
128
|
+
&& parsed.data.expectedControlVersion !== undefined
|
|
129
|
+
&& stop.action.expectedControlVersion !== parsed.data.expectedControlVersion) {
|
|
130
|
+
throw conflict("Control action id was already used for a different Stop request");
|
|
131
|
+
}
|
|
132
|
+
if (stop.outcome === "completion_committed") {
|
|
133
|
+
res.json({
|
|
134
|
+
stopped: false,
|
|
135
|
+
controlActionId,
|
|
136
|
+
generationId,
|
|
137
|
+
disposition: "completion_committed",
|
|
138
|
+
});
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (stop.outcome === "already_terminal") {
|
|
142
|
+
const alreadyStopped = stop.generation.status === "stopped"
|
|
143
|
+
|| stop.action.localDisposition === "stopped";
|
|
144
|
+
wakeTerminalProjector();
|
|
145
|
+
res.json({
|
|
146
|
+
stopped: alreadyStopped,
|
|
147
|
+
controlActionId,
|
|
148
|
+
generationId,
|
|
149
|
+
disposition: alreadyStopped ? "stopped" : "no_active_generation",
|
|
150
|
+
acceptedThroughSeq: stop.action.acceptedThroughSeq,
|
|
151
|
+
frozenBodyHash: stop.action.frozenBodyHash,
|
|
152
|
+
});
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (stop.outcome === "stop_in_progress" && !stop.generation.runtimeTerminalAt) {
|
|
156
|
+
const localInterruptRequested = startupInterruptRequested || cancelActiveChatGeneration(conversation.id);
|
|
157
|
+
res.json({
|
|
158
|
+
stopped: Boolean(localInterruptRequested),
|
|
159
|
+
controlActionId,
|
|
160
|
+
generationId,
|
|
161
|
+
disposition: "stopping",
|
|
162
|
+
acceptedThroughSeq: stop.action.acceptedThroughSeq,
|
|
163
|
+
frozenBodyHash: stop.action.frozenBodyHash,
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (stop.idempotent && stop.generation.runtimeTerminalAt) {
|
|
168
|
+
const terminalDisposition = stop.generation.status === "stopped"
|
|
169
|
+
|| stop.action.localDisposition === "stopped"
|
|
170
|
+
? "stopped"
|
|
171
|
+
: "stopping";
|
|
172
|
+
wakeTerminalProjector();
|
|
173
|
+
res.json({
|
|
174
|
+
stopped: true,
|
|
175
|
+
controlActionId,
|
|
176
|
+
generationId,
|
|
177
|
+
disposition: terminalDisposition,
|
|
178
|
+
acceptedThroughSeq: stop.action.acceptedThroughSeq,
|
|
179
|
+
frozenBodyHash: stop.action.frozenBodyHash,
|
|
180
|
+
});
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const localInterruptRequested = startupInterruptRequested || cancelActiveChatGeneration(conversation.id);
|
|
184
|
+
let stopped = Boolean(localInterruptRequested);
|
|
185
|
+
let disposition = "stopping";
|
|
186
|
+
if (startupStopRequested) {
|
|
187
|
+
await svc.generationProtocol.recordRuntimeTerminal({
|
|
188
|
+
orgId: conversation.orgId,
|
|
189
|
+
conversationId: conversation.id,
|
|
190
|
+
generationId,
|
|
191
|
+
expectedAttemptEpoch: stop.generation.attemptEpoch,
|
|
192
|
+
finalStatus: "stopped",
|
|
193
|
+
terminalReason: "operator_stop",
|
|
194
|
+
controlActionId,
|
|
195
|
+
});
|
|
196
|
+
wakeTerminalProjector();
|
|
197
|
+
}
|
|
198
|
+
else if (wasWaitingForNetwork) {
|
|
199
|
+
stopped = true;
|
|
200
|
+
disposition = "stopped";
|
|
201
|
+
await svc.generationProtocol.recordRuntimeTerminal({
|
|
202
|
+
orgId: conversation.orgId,
|
|
203
|
+
conversationId: conversation.id,
|
|
204
|
+
generationId,
|
|
205
|
+
expectedAttemptEpoch: stop.generation.attemptEpoch,
|
|
206
|
+
finalStatus: "stopped",
|
|
207
|
+
terminalReason: "operator_stop",
|
|
208
|
+
controlActionId,
|
|
209
|
+
});
|
|
210
|
+
wakeTerminalProjector();
|
|
211
|
+
}
|
|
212
|
+
else if (!localInterruptRequested) {
|
|
213
|
+
disposition = "interrupted_unverified";
|
|
214
|
+
await svc.generationProtocol.recordRuntimeTerminal({
|
|
215
|
+
orgId: conversation.orgId,
|
|
216
|
+
conversationId: conversation.id,
|
|
217
|
+
generationId,
|
|
218
|
+
expectedAttemptEpoch: stop.generation.attemptEpoch,
|
|
219
|
+
finalStatus: "interrupted_unverified",
|
|
220
|
+
terminalReason: "stop_without_local_runtime_owner",
|
|
221
|
+
controlActionId,
|
|
222
|
+
});
|
|
223
|
+
wakeTerminalProjector();
|
|
224
|
+
}
|
|
225
|
+
res.json({
|
|
226
|
+
stopped,
|
|
227
|
+
controlActionId,
|
|
228
|
+
generationId,
|
|
229
|
+
disposition,
|
|
230
|
+
acceptedThroughSeq: stop.action.acceptedThroughSeq,
|
|
231
|
+
frozenBodyHash: stop.action.frozenBodyHash,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
finally {
|
|
235
|
+
if (startupStopRequested)
|
|
236
|
+
startupGate?.resolveStopApplied();
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=chats.stop-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chats.stop-route.js","sourceRoot":"","sources":["../../src/routes/chats.stop-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats.stream-routes.d.ts","sourceRoot":"","sources":["../../src/routes/chats.stream-routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chats.stream-routes.d.ts","sourceRoot":"","sources":["../../src/routes/chats.stream-routes.ts"],"names":[],"mappings":"AAiDA,OAAO,EAaL,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,sBAAsB,QAu5CnE"}
|