@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.
Files changed (153) hide show
  1. package/dist/bootstrap/create-http-app.d.ts.map +1 -1
  2. package/dist/bootstrap/create-http-app.js +3 -9
  3. package/dist/bootstrap/create-http-app.js.map +1 -1
  4. package/dist/routes/chats.d.ts.map +1 -1
  5. package/dist/routes/chats.js +16 -69
  6. package/dist/routes/chats.js.map +1 -1
  7. package/dist/routes/chats.message-query-routes.d.ts +9 -0
  8. package/dist/routes/chats.message-query-routes.d.ts.map +1 -0
  9. package/dist/routes/chats.message-query-routes.js +43 -0
  10. package/dist/routes/chats.message-query-routes.js.map +1 -0
  11. package/dist/routes/chats.stop-route.d.ts +3 -0
  12. package/dist/routes/chats.stop-route.d.ts.map +1 -0
  13. package/dist/routes/chats.stop-route.js +240 -0
  14. package/dist/routes/chats.stop-route.js.map +1 -0
  15. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  16. package/dist/routes/chats.stream-routes.js +94 -390
  17. package/dist/routes/chats.stream-routes.js.map +1 -1
  18. package/dist/routes/chats.stream-support.d.ts +41 -0
  19. package/dist/routes/chats.stream-support.d.ts.map +1 -1
  20. package/dist/routes/chats.stream-support.js +58 -0
  21. package/dist/routes/chats.stream-support.js.map +1 -1
  22. package/dist/routes/orgs.d.ts.map +1 -1
  23. package/dist/routes/orgs.js +0 -1
  24. package/dist/routes/orgs.js.map +1 -1
  25. package/dist/services/chat-generation-locks.test.js +0 -8
  26. package/dist/services/chat-generation-locks.test.js.map +1 -1
  27. package/dist/services/chat-inline-annotation-validation.d.ts.map +1 -1
  28. package/dist/services/chat-inline-annotation-validation.js +3 -10
  29. package/dist/services/chat-inline-annotation-validation.js.map +1 -1
  30. package/dist/services/chat-inline-annotations.test.js +9 -15
  31. package/dist/services/chat-inline-annotations.test.js.map +1 -1
  32. package/dist/services/chat-message-mutation-fingerprint.d.ts +29 -1
  33. package/dist/services/chat-message-mutation-fingerprint.d.ts.map +1 -1
  34. package/dist/services/chat-message-mutation-fingerprint.js +55 -0
  35. package/dist/services/chat-message-mutation-fingerprint.js.map +1 -1
  36. package/dist/services/chats.annotation-persistence.d.ts +5 -0
  37. package/dist/services/chats.annotation-persistence.d.ts.map +1 -1
  38. package/dist/services/chats.annotation-persistence.js +33 -1
  39. package/dist/services/chats.annotation-persistence.js.map +1 -1
  40. package/dist/services/chats.d.ts +2 -28
  41. package/dist/services/chats.d.ts.map +1 -1
  42. package/dist/services/chats.js +3 -29
  43. package/dist/services/chats.js.map +1 -1
  44. package/dist/services/organization-workspace-browser.d.ts.map +1 -1
  45. package/dist/services/organization-workspace-browser.js +1 -7
  46. package/dist/services/organization-workspace-browser.js.map +1 -1
  47. package/dist/services/product-analytics-collector.test.js +5 -1
  48. package/dist/services/product-analytics-collector.test.js.map +1 -1
  49. package/dist/services/rudder-plugin-catalog.d.ts.map +1 -1
  50. package/dist/services/rudder-plugin-catalog.js +10 -11
  51. package/dist/services/rudder-plugin-catalog.js.map +1 -1
  52. package/dist/services/rudder-plugins.d.ts +0 -2
  53. package/dist/services/rudder-plugins.d.ts.map +1 -1
  54. package/dist/services/rudder-plugins.js +11 -15
  55. package/dist/services/rudder-plugins.js.map +1 -1
  56. package/dist/services/rudder-plugins.test.js +1 -17
  57. package/dist/services/rudder-plugins.test.js.map +1 -1
  58. package/dist/services/runtime-kernel/heartbeat.core.d.ts +1 -0
  59. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  60. package/dist/services/runtime-kernel/heartbeat.core.js +11 -0
  61. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  62. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  63. package/dist/services/runtime-kernel/heartbeat.js +3 -33
  64. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  65. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +1 -0
  66. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
  67. package/dist/services/runtime-kernel/heartbeat.recovery.js +23 -0
  68. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  69. package/package.json +14 -14
  70. package/ui-dist/assets/{LibraryLiveSurface-DnY0wZep.js → LibraryLiveSurface-BHneB__U.js} +1 -1
  71. package/ui-dist/assets/{abnfDiagram-VRR7QNED-CT-9m1Vc.js → abnfDiagram-VRR7QNED-GUoY9rTt.js} +1 -1
  72. package/ui-dist/assets/{addon-fit-C6aMSfRz.js → addon-fit-CqXXE0-1.js} +1 -1
  73. package/ui-dist/assets/{arc-1nExaM-y.js → arc-BD7m_r6l.js} +1 -1
  74. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-bILoPPs5.js → architectureDiagram-ZJ3FMSHR-nEufXAY_.js} +1 -1
  75. package/ui-dist/assets/{blockDiagram-677ZJIJ3--zRFciqi.js → blockDiagram-677ZJIJ3-D3qUEbL5.js} +1 -1
  76. package/ui-dist/assets/{c4Diagram-LMCZKHZV-CrtaX6A_.js → c4Diagram-LMCZKHZV-7SPUxKgx.js} +1 -1
  77. package/ui-dist/assets/channel-Czz1OwXA.js +1 -0
  78. package/ui-dist/assets/{chunk-2Q5K7J3B-DoBb7ZYS.js → chunk-2Q5K7J3B-6o3ETzOY.js} +1 -1
  79. package/ui-dist/assets/{chunk-32BRIVSS-DilGswdp.js → chunk-32BRIVSS-Efd566e8.js} +1 -1
  80. package/ui-dist/assets/{chunk-5VM5RSS4-D8q00d1k.js → chunk-5VM5RSS4-BA4X4gzU.js} +1 -1
  81. package/ui-dist/assets/{chunk-EX3LRPZG-Bl1KSAwQ.js → chunk-EX3LRPZG-BD7K-mPD.js} +1 -1
  82. package/ui-dist/assets/{chunk-JWPE2WC7-DtdgLB7Y.js → chunk-JWPE2WC7-DXv6iHxr.js} +1 -1
  83. package/ui-dist/assets/{chunk-MOJQB5TN-UaG7L1QI.js → chunk-MOJQB5TN-dQ6gk-_u.js} +1 -1
  84. package/ui-dist/assets/{chunk-RYQCIY6F-mkz9qbQF.js → chunk-RYQCIY6F-xEk6bTb7.js} +1 -1
  85. package/ui-dist/assets/{chunk-V7JOEXUC-FGET6Myl.js → chunk-V7JOEXUC-zlvz5Y5q.js} +1 -1
  86. package/ui-dist/assets/{chunk-VR4S4FIN-BgfUmupS.js → chunk-VR4S4FIN--zCSWk5F.js} +1 -1
  87. package/ui-dist/assets/{chunk-XXDRQBXY-B6I-gBFN.js → chunk-XXDRQBXY-CZ2QWPRe.js} +1 -1
  88. package/ui-dist/assets/classDiagram-OUVF2IWQ-C_ooAkuA.js +1 -0
  89. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-C_ooAkuA.js +1 -0
  90. package/ui-dist/assets/{cose-bilkent-JH36ORCC-DVGWBjbO.js → cose-bilkent-JH36ORCC-DrRNgFzR.js} +1 -1
  91. package/ui-dist/assets/{cynefin-VYW2F7L2-CWjLXAiA.js → cynefin-VYW2F7L2-T9PONuTh.js} +1 -1
  92. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DWY5Jowv.js → cynefinDiagram-TSTJHNR4-Dkop4mS3.js} +1 -1
  93. package/ui-dist/assets/{dagre-VKFMJZFB-Bp0SVTqP.js → dagre-VKFMJZFB-Chc8Imxx.js} +1 -1
  94. package/ui-dist/assets/{diagram-FQU43EPY-EhsLuQCs.js → diagram-FQU43EPY-n4pgnJYP.js} +1 -1
  95. package/ui-dist/assets/{diagram-G47NLZAW-C_ifHw4Q.js → diagram-G47NLZAW-DnjvVsj5.js} +1 -1
  96. package/ui-dist/assets/{diagram-NH7WQ7WH-BCitqFNA.js → diagram-NH7WQ7WH-kHZ9astC.js} +1 -1
  97. package/ui-dist/assets/{diagram-OA4YK3LP-BRjomHnO.js → diagram-OA4YK3LP-BAMly3yv.js} +1 -1
  98. package/ui-dist/assets/{diagram-WEI45ONY-Cr_E92JE.js → diagram-WEI45ONY-BTFQhBrp.js} +1 -1
  99. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-0WJQMwqt.js → ebnfDiagram-CCIWWBDH-c2T4DORg.js} +1 -1
  100. package/ui-dist/assets/{erDiagram-Q63AITRT-B0EBivSu.js → erDiagram-Q63AITRT-BXLi1JHT.js} +1 -1
  101. package/ui-dist/assets/{flowDiagram-23GEKE2U-BwdRtCsd.js → flowDiagram-23GEKE2U-CHzX7naH.js} +1 -1
  102. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-KxlqXAqZ.js → ganttDiagram-NO4QXBWP-BqUKeoDF.js} +1 -1
  103. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-DeTCa-SS.js → gitGraphDiagram-IHSO6WYX-DM4K-DoE.js} +1 -1
  104. package/ui-dist/assets/{graph-rdRwl3us.js → graph-BDejhZe_.js} +1 -1
  105. package/ui-dist/assets/{index-CbEMZXO1.js → index-B4zWD5-i.js} +1 -1
  106. package/ui-dist/assets/{index-B2jHUYti.js → index-BJ-hTdyx.js} +1 -1
  107. package/ui-dist/assets/{index-CY1CWc3h.js → index-BN90mN5Z.js} +1 -1
  108. package/ui-dist/assets/{index-D3RtGD1i.js → index-Bni14R_J.js} +1 -1
  109. package/ui-dist/assets/index-BsB7Sc7m.css +32 -0
  110. package/ui-dist/assets/{index-CcLF8pix.js → index-BuCCxdIU.js} +1 -1
  111. package/ui-dist/assets/{index-NxbW73mN.js → index-CH8tOJZ9.js} +1 -1
  112. package/ui-dist/assets/{index-7Mb8iY3g.js → index-CIbvFYbV.js} +1 -1
  113. package/ui-dist/assets/{index-BzLCEJCf.js → index-CV0k_zvK.js} +1 -1
  114. package/ui-dist/assets/{index-CuP2P51w.js → index-DAM3EGbv.js} +1 -1
  115. package/ui-dist/assets/{index-s8ZAOPE2.js → index-DHzaZSPM.js} +641 -641
  116. package/ui-dist/assets/{index-DBPJ49Cn.js → index-DSAl1a-M.js} +1 -1
  117. package/ui-dist/assets/{index-Bi7KPtJ3.js → index-DVDu5Nwd.js} +1 -1
  118. package/ui-dist/assets/{index-C2DKaTLo.js → index-DZBZIqJI.js} +1 -1
  119. package/ui-dist/assets/{index-CtFA44ZZ.js → index-WbyFmgaS.js} +1 -1
  120. package/ui-dist/assets/{index-D5pdKmHf.js → index-XnCv8P5f.js} +1 -1
  121. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-Cun6yrS9.js → infoDiagram-FWYZ7A6U-PcFBrZTu.js} +1 -1
  122. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-SHuCvm_3.js → ishikawaDiagram-FXEZZL3T-BF2qBweH.js} +1 -1
  123. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-B2oa-ovF.js → journeyDiagram-5HDEW3XC-D3TqAoEB.js} +1 -1
  124. package/ui-dist/assets/{kanban-definition-HUTT4EX6-DtG3RFW0.js → kanban-definition-HUTT4EX6-CUiHrckR.js} +1 -1
  125. package/ui-dist/assets/{layout-DmSY_WKW.js → layout-DMKAzTyC.js} +1 -1
  126. package/ui-dist/assets/{linear-BiklTv-9.js → linear-D8C0WdTA.js} +1 -1
  127. package/ui-dist/assets/{map-B3RAMPoy.js → map-DUCHGq8e.js} +1 -1
  128. package/ui-dist/assets/{mermaid.core-CQj0CvWy.js → mermaid.core-C-eoqr77.js} +4 -4
  129. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-BQrncLdk.js → mindmap-definition-LN4V7U3C-B54nV_Hu.js} +1 -1
  130. package/ui-dist/assets/{pegDiagram-2B236MQR-BmkmBhyS.js → pegDiagram-2B236MQR-CcIDNzTo.js} +1 -1
  131. package/ui-dist/assets/{pieDiagram-ENE6RG2P-B0dWJser.js → pieDiagram-ENE6RG2P-BU4swrSE.js} +1 -1
  132. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-RS2o06NX.js → quadrantDiagram-ABIIQ3AL-CnniDL18.js} +1 -1
  133. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-B4dlWUnB.js → railroadDiagram-RFXS5EU6-CiBY7wpV.js} +1 -1
  134. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-7M1vICZA.js → requirementDiagram-TGXJPOKE-C7c_tTqS.js} +1 -1
  135. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-LUpZrugG.js → sankeyDiagram-HTMAVEWB-DJuTS99d.js} +1 -1
  136. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-DB4ecUEg.js → sequenceDiagram-DBY2YBRQ-BxhtY70W.js} +1 -1
  137. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-CgLQGkEa.js → sizeCapture-X5ZJPWSS-0A0Kww03.js} +1 -1
  138. package/ui-dist/assets/{stateDiagram-2N3HPSRC-BxLcsZg0.js → stateDiagram-2N3HPSRC-DPw4bytW.js} +1 -1
  139. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-ANI7JZ72.js +1 -0
  140. package/ui-dist/assets/{swimlanes-5IMT3BWC-CFoyzQNM.js → swimlanes-5IMT3BWC-D6MMDWrs.js} +2 -2
  141. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CxjGCcz5.js +8 -0
  142. package/ui-dist/assets/{timeline-definition-FHXFAJF6-C1vajCzY.js → timeline-definition-FHXFAJF6-gNKDUxQx.js} +1 -1
  143. package/ui-dist/assets/{vennDiagram-L72KCM5P-C42rETOq.js → vennDiagram-L72KCM5P-BpZCM-ST.js} +1 -1
  144. package/ui-dist/assets/{wardleyDiagram-EHGQE667-BgzD6-QL.js → wardleyDiagram-EHGQE667-CvR0dYqn.js} +1 -1
  145. package/ui-dist/assets/{xterm-BeBaISmm.js → xterm-CEksOm0P.js} +1 -1
  146. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BdoJT_55.js → xychartDiagram-FW5EYKEG-C6_4sxeI.js} +1 -1
  147. package/ui-dist/index.html +11 -7
  148. package/ui-dist/assets/channel-C3jj6nd_.js +0 -1
  149. package/ui-dist/assets/classDiagram-OUVF2IWQ-CNsW5NoJ.js +0 -1
  150. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CNsW5NoJ.js +0 -1
  151. package/ui-dist/assets/index-CYaeM_68.css +0 -32
  152. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DAlIlXqa.js +0 -1
  153. 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":"AAkDA,OAAO,EAYL,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,sBAAsB,QA+sDnE"}
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"}