@vibes.diy/api-svc 14.3.16 → 14.3.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 (95) hide show
  1. package/intern/agent-dispatcher.d.ts +1 -0
  2. package/intern/agent-dispatcher.js +2 -0
  3. package/intern/agent-dispatcher.js.map +1 -1
  4. package/intern/agent-session.d.ts +28 -1
  5. package/intern/agent-session.js +21 -1
  6. package/intern/agent-session.js.map +1 -1
  7. package/intern/agent-wake.d.ts +1 -0
  8. package/intern/agent-wake.js +1 -0
  9. package/intern/agent-wake.js.map +1 -1
  10. package/intern/builder-model.d.ts +4 -1
  11. package/intern/builder-model.js +12 -6
  12. package/intern/builder-model.js.map +1 -1
  13. package/intern/eval-handles.d.ts +1 -1
  14. package/intern/eval-handles.js +3 -3
  15. package/intern/eval-handles.js.map +1 -1
  16. package/intern/get-model-defaults.d.ts +1 -0
  17. package/intern/get-model-defaults.js +13 -0
  18. package/intern/get-model-defaults.js.map +1 -1
  19. package/intern/in-flight-turns.d.ts +1 -1
  20. package/intern/in-flight-turns.js +1 -1
  21. package/intern/in-flight-turns.js.map +1 -1
  22. package/intern/mint-fire-core.d.ts +2 -0
  23. package/intern/mint-fire-core.js +2 -0
  24. package/intern/mint-fire-core.js.map +1 -1
  25. package/intern/process-access-bindings.js +1 -1
  26. package/intern/process-access-bindings.js.map +1 -1
  27. package/intern/prompt-usage.js +20 -0
  28. package/intern/prompt-usage.js.map +1 -1
  29. package/intern/provider-sse.d.ts +1 -0
  30. package/intern/provider-sse.js +83 -2
  31. package/intern/provider-sse.js.map +1 -1
  32. package/intern/subagent-model.d.ts +20 -0
  33. package/intern/subagent-model.js +30 -0
  34. package/intern/subagent-model.js.map +1 -0
  35. package/intern/usage-rounds.d.ts +7 -0
  36. package/intern/usage-rounds.js +20 -0
  37. package/intern/usage-rounds.js.map +1 -0
  38. package/models.json +63 -1
  39. package/package.json +12 -12
  40. package/public/agent-turn-action.d.ts +30 -0
  41. package/public/agent-turn-action.js +374 -0
  42. package/public/agent-turn-action.js.map +1 -0
  43. package/public/agent-turn-assembly.d.ts +34 -0
  44. package/public/agent-turn-assembly.js +199 -0
  45. package/public/agent-turn-assembly.js.map +1 -0
  46. package/public/append-block-event.d.ts +31 -0
  47. package/public/append-block-event.js +121 -0
  48. package/public/append-block-event.js.map +1 -0
  49. package/public/auto-publish-on-persist.d.ts +10 -0
  50. package/public/auto-publish-on-persist.js +40 -0
  51. package/public/auto-publish-on-persist.js.map +1 -0
  52. package/public/codegen-turn-route.d.ts +40 -0
  53. package/public/codegen-turn-route.js +177 -0
  54. package/public/codegen-turn-route.js.map +1 -0
  55. package/public/draft-runtime.js +12 -2
  56. package/public/draft-runtime.js.map +1 -1
  57. package/public/guest-build-generation.js +2 -1
  58. package/public/guest-build-generation.js.map +1 -1
  59. package/public/handle-prompt-context.d.ts +41 -0
  60. package/public/handle-prompt-context.js +397 -0
  61. package/public/handle-prompt-context.js.map +1 -0
  62. package/public/handler-llm-request.d.ts +48 -0
  63. package/public/handler-llm-request.js +363 -0
  64. package/public/handler-llm-request.js.map +1 -0
  65. package/public/image-gen.js +1 -1
  66. package/public/image-gen.js.map +1 -1
  67. package/public/llm-dispatch-fallback.d.ts +46 -0
  68. package/public/llm-dispatch-fallback.js +293 -0
  69. package/public/llm-dispatch-fallback.js.map +1 -0
  70. package/public/llm-dispatch.d.ts +5 -180
  71. package/public/llm-dispatch.js +5 -1158
  72. package/public/llm-dispatch.js.map +1 -1
  73. package/public/open-chat.d.ts +5 -0
  74. package/public/open-chat.js +70 -7
  75. package/public/open-chat.js.map +1 -1
  76. package/public/prompt-chat-section.js +119 -1167
  77. package/public/prompt-chat-section.js.map +1 -1
  78. package/public/prompt-section-actions.d.ts +41 -0
  79. package/public/prompt-section-actions.js +161 -0
  80. package/public/prompt-section-actions.js.map +1 -0
  81. package/public/prompt-turn-envelope.d.ts +26 -0
  82. package/public/prompt-turn-envelope.js +120 -0
  83. package/public/prompt-turn-envelope.js.map +1 -0
  84. package/public/prompt-turn-settled.d.ts +32 -0
  85. package/public/prompt-turn-settled.js +157 -0
  86. package/public/prompt-turn-settled.js.map +1 -0
  87. package/public/prompt-turn-terminal.d.ts +22 -0
  88. package/public/prompt-turn-terminal.js +135 -0
  89. package/public/prompt-turn-terminal.js.map +1 -0
  90. package/public/prompt-turn-types.d.ts +37 -0
  91. package/public/prompt-turn-types.js +2 -0
  92. package/public/prompt-turn-types.js.map +1 -0
  93. package/public/social-store.js.map +1 -1
  94. package/public/stream-assembly.js +33 -51
  95. package/public/stream-assembly.js.map +1 -1
@@ -0,0 +1,41 @@
1
+ import type { PromptStep } from "../intern/prompt-step.js";
2
+ import { Result, Option } from "@adviser/cement";
3
+ import { PromptAndBlockMsgs, ReqPromptChatSection, type ReqWithVerifiedBuildAuth, type FileSystemItem, VibeFile } from "@vibes.diy/api-types";
4
+ import { VibesApiSQLCtx } from "../types.js";
5
+ import { FileSystemRef, BlockEndMsg } from "@vibes.diy/call-ai-v2";
6
+ import { sqlite } from "@vibes.diy/api-sql";
7
+ import { type AppendBlockEventParams, type ResChat } from "./append-block-event.js";
8
+ export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, proseOnly, blockChunks, fileSystem, model, byok, researchRequested, codegenTheme, codegenVariety, editBaseFsId, initiator, agentDispatched, carried, onFsRef, frontendDraft, persistSections, ctx, step, researchModel, }: {
9
+ step?: PromptStep;
10
+ researchModel?: string;
11
+ vctx: VibesApiSQLCtx;
12
+ req: ReqWithVerifiedBuildAuth<ReqPromptChatSection>;
13
+ ctx?: AppendBlockEventParams["ctx"];
14
+ resChat: ResChat;
15
+ promptId: string;
16
+ blockSeq: number;
17
+ value: BlockEndMsg;
18
+ collectedMsgs: PromptAndBlockMsgs[];
19
+ blockChunks?: number;
20
+ frontendDraft?: boolean;
21
+ persistSections?: (sections: sqlite.SqlChatSection[]) => Promise<Result<void>>;
22
+ fileSystem?: VibeFile[];
23
+ carried?: readonly FileSystemItem[];
24
+ proseOnly?: boolean;
25
+ model?: string;
26
+ byok?: boolean;
27
+ initiator?: "platform";
28
+ agentDispatched?: boolean;
29
+ codegenTheme?: string;
30
+ codegenVariety?: {
31
+ archetype: string;
32
+ flourishes: string[];
33
+ };
34
+ editBaseFsId?: string;
35
+ onFsRef?: (fsRef: FileSystemRef) => Promise<void>;
36
+ researchRequested?: boolean;
37
+ }): Promise<Result<{
38
+ blockSeq: number;
39
+ fsRef: Option<FileSystemRef>;
40
+ deferredPersist?: "awaiting-handle";
41
+ }>>;
@@ -0,0 +1,397 @@
1
+ import { persistGuestUsage } from "../intern/guest-build-usage.js";
2
+ import { stampUsageRounds, usageRoundRole } from "../intern/usage-rounds.js";
3
+ import { Result, Option, exception2Result, chunkyAsync } from "@adviser/cement";
4
+ import { isDraftOwnerHandle, isPromptFSStyle, isReqPromptFSUpdateChatSection, isResError, } from "@vibes.diy/api-types";
5
+ import { type } from "arktype";
6
+ import { and, eq } from "drizzle-orm/sql/expressions";
7
+ import { costCentsFromUsage } from "../billing.js";
8
+ import { FileSystemRef, isBlockStreamMsg } from "@vibes.diy/call-ai-v2";
9
+ import { clientRefStamp } from "../intern/client-attribution.js";
10
+ import { ensureAppSlugItem } from "./ensure-app-slug-item.js";
11
+ import { loadVersionTimeline, resolveEditBaseSeed } from "../intern/version-timeline.js";
12
+ import { resolveCodeBlocks, resolveCodeBlockChangedPaths, createBlockAccumulator, } from "../intern/prompt-streaming.js";
13
+ import { persistCodegenThemeMarker, persistCodegenVarietyMarker } from "../intern/prompt-assembly.js";
14
+ import { reconcileResearchPointer } from "../intern/persist-url-research.js";
15
+ import { claimDraftState } from "../intern/draft-chat-store.js";
16
+ import { settleLightMintAtProvisionalAddress, settleMintJobIfLive } from "../intern/mint-job-store.js";
17
+ import { publishChatAppClaimed } from "../intern/section-fan-out.js";
18
+ import { validateAgentFiles } from "../intern/agent-file-validation.js";
19
+ import { autoPublishOnPersist } from "./auto-publish-on-persist.js";
20
+ async function persistChatSections(vctx, sections) {
21
+ let result = Result.Ok(undefined);
22
+ await chunkyAsync({
23
+ input: sections,
24
+ splitCondition: (secChunk) => secChunk.length >= 20,
25
+ commit: async (secChunk) => {
26
+ const rChunk = await exception2Result(() => vctx.sql.db.insert(vctx.sql.tables.chatSections).values(secChunk));
27
+ if (rChunk.isErr())
28
+ result = Result.Err(rChunk);
29
+ },
30
+ });
31
+ return result;
32
+ }
33
+ export async function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, proseOnly, blockChunks = 100, fileSystem, model, byok, researchRequested, codegenTheme, codegenVariety, editBaseFsId, initiator, agentDispatched, carried, onFsRef, frontendDraft, persistSections = (sections) => persistChatSections(vctx, sections), ctx, step, researchModel, }) {
34
+ let fsRef = Option.None();
35
+ let deferredPersist;
36
+ const code = [];
37
+ const sections = [];
38
+ const collectedMsgs = [...iCollectedMsgs];
39
+ const blockAcc = createBlockAccumulator();
40
+ for (const msg of collectedMsgs) {
41
+ if (!isBlockStreamMsg(msg)) {
42
+ continue;
43
+ }
44
+ let sqlVal = sections[sections.length - 1];
45
+ if (sections.length === 0 || sqlVal.blocks.length >= blockChunks) {
46
+ sections.push({
47
+ chatId: req.chatId,
48
+ promptId,
49
+ blockSeq: blockSeq++,
50
+ blocks: [],
51
+ created: msg.timestamp.toISOString(),
52
+ });
53
+ sqlVal = sections[sections.length - 1];
54
+ }
55
+ sqlVal.blocks.push(msg);
56
+ const closed = blockAcc.ingest(msg);
57
+ if (closed)
58
+ code.push({ begin: closed.begin, lines: [...closed.lines], end: closed.end });
59
+ }
60
+ const promptContextValues = () => ({
61
+ userId: req._auth.verifiedAuth.claims.userId,
62
+ chatId: req.chatId,
63
+ promptId,
64
+ fsId: fsRef.IsSome() ? fsRef.unwrap().fsId : undefined,
65
+ nethash: vctx.netHash(),
66
+ promptTokens: value.usage.calculated.prompt_tokens,
67
+ completionTokens: value.usage.calculated.completion_tokens,
68
+ totalTokens: value.usage.calculated.total_tokens,
69
+ ref: {
70
+ type: "prompt.usage.sql",
71
+ ...(frontendDraft === true ? { frontendDraft: true } : {}),
72
+ usage: stampUsageRounds(value.usage, usageRoundRole({ frontendDraft, step, mode: resChat.mode })),
73
+ fsRef: fsRef.toValue(),
74
+ ...(model !== undefined && model !== "" ? { model } : {}),
75
+ ...(step === undefined ? {} : { step }),
76
+ ...(researchModel === undefined || researchModel === "" ? {} : { researchModel }),
77
+ ...(byok === true ? { byok: true } : {}),
78
+ ...(initiator === "platform" ? { initiator: "platform" } : {}),
79
+ ...(agentDispatched === true ? { agentDispatched: true } : {}),
80
+ ...clientRefStamp(vctx),
81
+ },
82
+ created: new Date().toISOString(),
83
+ });
84
+ let draftReplayPersisted = false;
85
+ let ownerHandleForPersist = resChat.ownerHandle;
86
+ let appSlugForPersist = resChat.appSlug;
87
+ if (code.length > 0 && (resChat.mode === "codegen" || isPromptFSStyle(resChat.mode))) {
88
+ if (isDraftOwnerHandle(ownerHandleForPersist)) {
89
+ const rSections = await persistSections(sections);
90
+ if (rSections.isErr())
91
+ return Result.Err(rSections);
92
+ const rContext = await exception2Result(() => req._auth.type === "VerifiedGuestBuildAuth"
93
+ ? persistGuestUsage(vctx, promptContextValues())
94
+ : vctx.sql.db.insert(vctx.sql.tables.promptContexts).values(promptContextValues()));
95
+ if (rContext.isErr())
96
+ return Result.Err(rContext);
97
+ draftReplayPersisted = true;
98
+ const rPark = await claimDraftState(vctx, req.chatId, ["unowned", "turn-parked"], "turn-parked");
99
+ if (rPark.isErr())
100
+ return Result.Err(rPark);
101
+ if (rPark.Ok()) {
102
+ vctx.logger
103
+ .Info()
104
+ .Any("event", { userId: req._auth.verifiedAuth.claims.userId, chatId: req.chatId, promptId })
105
+ .Msg("draft-persist-deferred-awaiting-handle");
106
+ deferredPersist = "awaiting-handle";
107
+ }
108
+ else {
109
+ const rLive = await readChatAddress(vctx, req.chatId);
110
+ if (rLive.isErr())
111
+ return Result.Err(rLive);
112
+ const live = rLive.Ok();
113
+ if (live === undefined || isDraftOwnerHandle(live.ownerHandle)) {
114
+ return Result.Err(`draft chat ${req.chatId} lost the park claim but still has no owner handle`);
115
+ }
116
+ ownerHandleForPersist = live.ownerHandle;
117
+ appSlugForPersist = live.appSlug;
118
+ }
119
+ }
120
+ else {
121
+ const rLive = await readChatAddress(vctx, req.chatId);
122
+ if (rLive.isErr())
123
+ return Result.Err(rLive);
124
+ const live = rLive.Ok();
125
+ if (live !== undefined && isDraftOwnerHandle(live.ownerHandle) === false) {
126
+ if (live.ownerHandle !== ownerHandleForPersist || live.appSlug !== appSlugForPersist) {
127
+ vctx.logger
128
+ .Info()
129
+ .Any("event", {
130
+ chatId: req.chatId,
131
+ promptId,
132
+ from: { ownerHandle: ownerHandleForPersist, appSlug: appSlugForPersist },
133
+ to: live,
134
+ })
135
+ .Msg("persist-address-refreshed-mid-turn");
136
+ }
137
+ ownerHandleForPersist = live.ownerHandle;
138
+ appSlugForPersist = live.appSlug;
139
+ }
140
+ }
141
+ }
142
+ if (deferredPersist === undefined &&
143
+ proseOnly !== true &&
144
+ code.length > 0 &&
145
+ (resChat.mode === "codegen" || isPromptFSStyle(resChat.mode))) {
146
+ if (req._auth.type === "VerifiedGuestBuildAuth" || req.auth === undefined)
147
+ return Result.Err("guest-build-cannot-publish");
148
+ let resolvedFileSystem;
149
+ let changedPathsFromBlocks;
150
+ let carriedItems = carried ?? [];
151
+ if (fileSystem) {
152
+ resolvedFileSystem = fileSystem;
153
+ changedPathsFromBlocks = resolveCodeBlockChangedPaths(code);
154
+ }
155
+ else {
156
+ const timelineResult = await loadVersionTimeline(vctx, req.chatId);
157
+ if (timelineResult.isErr())
158
+ return Result.Err(timelineResult);
159
+ const timeline = timelineResult.Ok();
160
+ const chainHeadFsId = timeline.length > 0 ? timeline[timeline.length - 1].fsId : undefined;
161
+ const chainHeadVfs = chainHeadFsId !== undefined ? timeline[timeline.length - 1].vfs : new Map();
162
+ const base = await resolveEditBaseSeed(vctx, {
163
+ editBaseFsId,
164
+ chainHeadFsId,
165
+ chainHeadVfs,
166
+ chainHeadCarried: chainHeadFsId !== undefined ? timeline[timeline.length - 1].carried : [],
167
+ ownerHandle: ownerHandleForPersist,
168
+ appSlug: appSlugForPersist,
169
+ });
170
+ carriedItems = base.carried;
171
+ const resolved = resolveCodeBlocks(code, base.vfs);
172
+ resolvedFileSystem = resolved.files;
173
+ changedPathsFromBlocks = resolved.changedPaths;
174
+ }
175
+ {
176
+ const sources = resolvedFileSystem
177
+ .filter((file) => file.type === "code-block")
178
+ .filter((file) => file.filename.startsWith("/~~") === false);
179
+ if (agentDispatched === true && code.some((block) => block.begin.path?.includes("~~") === true))
180
+ return Result.Err("Generated code cannot overwrite derived runtime artifacts.");
181
+ const changedPaths = new Set(isReqPromptFSUpdateChatSection(req) && req.agentFileCommit !== undefined
182
+ ? req.agentFileCommit.changes.map((file) => file.path)
183
+ : changedPathsFromBlocks);
184
+ const changes = sources
185
+ .filter((file) => changedPaths.has(file.filename))
186
+ .map((file) => ({ path: file.filename, contents: file.content }));
187
+ if (agentDispatched === true || changes.length > 0) {
188
+ const checked = await validateAgentFiles(vctx, {
189
+ vfs: new Map(sources.map((file) => [file.filename, file.content])),
190
+ changes,
191
+ ownerHandle: ownerHandleForPersist,
192
+ });
193
+ if (checked.isErr())
194
+ return Result.Err(checked.Err());
195
+ }
196
+ }
197
+ const rFs = await ensureAppSlugItem(vctx, {
198
+ type: "vibes.diy.req-ensure-app-slug",
199
+ mode: "dev",
200
+ runId: promptId,
201
+ appSlug: appSlugForPersist,
202
+ ownerHandle: ownerHandleForPersist,
203
+ fileSystem: resolvedFileSystem,
204
+ auth: req.auth,
205
+ _auth: req._auth,
206
+ }, { carried: carriedItems });
207
+ if (rFs.isErr()) {
208
+ console.error("Failed to ensure app slug item for code blocks:", rFs.Err());
209
+ return Result.Err(rFs);
210
+ }
211
+ const ensured = rFs.Ok();
212
+ if (isResError(ensured)) {
213
+ return Result.Err(`${ensured.error.message} [${ensured.error.code}]`);
214
+ }
215
+ const tFsRef = type(FileSystemRef).onDeepUndeclaredKey("delete")(ensured);
216
+ if (tFsRef instanceof type.errors) {
217
+ return Result.Err(`Failed to parse FileSystemRef: ${tFsRef.summary}`);
218
+ }
219
+ fsRef = Option.Some(tFsRef);
220
+ if (onFsRef) {
221
+ const rReveal = await exception2Result(() => onFsRef(tFsRef));
222
+ if (rReveal.isErr()) {
223
+ vctx.logger.Warn().Err(rReveal).Str("promptId", promptId).Msg("reveal-emit-failed");
224
+ }
225
+ }
226
+ }
227
+ value.fsRef = fsRef.toValue();
228
+ const rSql = await exception2Result(async () => {
229
+ const values = promptContextValues();
230
+ if (draftReplayPersisted === false) {
231
+ if (req._auth.type === "VerifiedGuestBuildAuth") {
232
+ const persisted = await persistGuestUsage(vctx, values);
233
+ if (persisted.isErr())
234
+ return persisted;
235
+ }
236
+ else
237
+ await vctx.sql.db.insert(vctx.sql.tables.promptContexts).values(values);
238
+ }
239
+ else if (deferredPersist === undefined) {
240
+ await vctx.sql.db
241
+ .update(vctx.sql.tables.promptContexts)
242
+ .set({ fsId: values.fsId, ref: values.ref })
243
+ .where(eq(vctx.sql.tables.promptContexts.promptId, promptId));
244
+ const terminalSection = sections.find((section) => section.blocks.includes(value));
245
+ if (terminalSection !== undefined && fsRef.IsSome()) {
246
+ const t = vctx.sql.tables.chatSections;
247
+ await vctx.sql.db
248
+ .update(t)
249
+ .set({ blocks: terminalSection.blocks })
250
+ .where(and(eq(t.chatId, req.chatId), eq(t.promptId, promptId), eq(t.blockSeq, terminalSection.blockSeq)));
251
+ }
252
+ }
253
+ });
254
+ if (rSql.isErr()) {
255
+ return Result.Err(rSql);
256
+ }
257
+ const costCents = costCentsFromUsage(value.usage);
258
+ const billingP = (async () => {
259
+ if (costCents <= 0 || req._auth.type === "VerifiedGuestBuildAuth")
260
+ return;
261
+ if (byok === true)
262
+ return;
263
+ const rTrack = await vctx.billing.trackUsage({
264
+ userId: req._auth.verifiedAuth.claims.userId,
265
+ costCents,
266
+ promptId,
267
+ ...(model !== undefined && model !== "" ? { model } : {}),
268
+ mode: resChat.mode,
269
+ });
270
+ if (rTrack.isErr()) {
271
+ vctx.logger.Warn().Err(rTrack).Str("promptId", promptId).Msg("billing-track-failed");
272
+ }
273
+ })();
274
+ const markerP = (async () => {
275
+ if (!(resChat.mode === "codegen" && fsRef.IsSome()))
276
+ return;
277
+ const rMark = await exception2Result(() => persistCodegenThemeMarker(vctx, {
278
+ userId: req._auth.verifiedAuth.claims.userId,
279
+ ownerHandle: ownerHandleForPersist,
280
+ appSlug: appSlugForPersist,
281
+ theme: codegenTheme,
282
+ }));
283
+ if (rMark.isErr()) {
284
+ vctx.logger.Warn().Err(rMark).Str("chatId", req.chatId).Msg("persistCodegenThemeMarker failed");
285
+ }
286
+ const rVariety = await exception2Result(() => persistCodegenVarietyMarker(vctx, {
287
+ userId: req._auth.verifiedAuth.claims.userId,
288
+ ownerHandle: ownerHandleForPersist,
289
+ appSlug: appSlugForPersist,
290
+ variety: codegenVariety,
291
+ }));
292
+ if (rVariety.isErr()) {
293
+ vctx.logger.Warn().Err(rVariety).Str("chatId", req.chatId).Msg("persistCodegenVarietyMarker failed");
294
+ }
295
+ })();
296
+ await Promise.all([billingP, markerP, draftReplayPersisted ? Promise.resolve(Result.Ok(undefined)) : persistSections(sections)]);
297
+ if (resChat.mode === "codegen") {
298
+ const rSettle = await exception2Result(() => settleMintJobIfLive(vctx, {
299
+ chatId: req.chatId,
300
+ ownerHandle: ownerHandleForPersist,
301
+ appSlug: appSlugForPersist,
302
+ logModule: "handlePromptContext",
303
+ }));
304
+ if (rSettle.isErr()) {
305
+ vctx.logger.Warn().Err(rSettle).Str("chatId", req.chatId).Str("promptId", promptId).Msg("mint-job-settle-rejected");
306
+ }
307
+ if (fsRef.IsSome()) {
308
+ const rLight = await exception2Result(() => settleLightMintAtProvisionalAddress(vctx, {
309
+ chatId: req.chatId,
310
+ ownerHandle: ownerHandleForPersist,
311
+ appSlug: appSlugForPersist,
312
+ logModule: "handlePromptContext",
313
+ }));
314
+ if (rLight.isErr()) {
315
+ vctx.logger.Warn().Err(rLight).Str("chatId", req.chatId).Str("promptId", promptId).Msg("light-mint-settle-rejected");
316
+ }
317
+ else if (rLight.Ok() && ctx !== undefined) {
318
+ await publishChatAppClaimed({
319
+ connections: vctx.connections,
320
+ chatId: req.chatId,
321
+ ownerHandle: ownerHandleForPersist,
322
+ appSlug: appSlugForPersist,
323
+ sendCtx: ctx,
324
+ validated: ctx.validated,
325
+ logger: vctx.logger,
326
+ });
327
+ }
328
+ }
329
+ }
330
+ if (researchRequested === true) {
331
+ const reconciliation = reconcileResearchPointer(vctx, {
332
+ userId: req._auth.verifiedAuth.claims.userId,
333
+ chatId: req.chatId,
334
+ promptId,
335
+ }).then((rResearch) => {
336
+ if (rResearch.isErr()) {
337
+ vctx.logger.Warn().Err(rResearch).Str("promptId", promptId).Msg("reconcile-url-research-pointer-failed");
338
+ }
339
+ }, (error) => {
340
+ vctx.logger
341
+ .Warn()
342
+ .Any("event", { chatId: req.chatId, promptId, error: String(error) })
343
+ .Msg("reconcile-url-research-pointer-rejected");
344
+ });
345
+ const waitUntil = vctx.waitUntil;
346
+ if (waitUntil !== undefined) {
347
+ const registered = exception2Result(() => waitUntil(reconciliation));
348
+ if (registered.isErr()) {
349
+ vctx.logger.Warn().Err(registered).Str("promptId", promptId).Msg("reconcile-url-research-pointer-wait-until-failed");
350
+ }
351
+ }
352
+ else {
353
+ await reconciliation;
354
+ }
355
+ }
356
+ if (fsRef.IsSome() && initiator !== "platform" && req._auth.type === "VerifiedAuthResult" && req.auth !== undefined) {
357
+ const mintTask = autoPublishOnPersist(vctx, {
358
+ ownerHandle: ownerHandleForPersist,
359
+ appSlug: appSlugForPersist,
360
+ fsId: fsRef.Unwrap().fsId,
361
+ callerUserId: req._auth.verifiedAuth.claims.userId,
362
+ auth: req.auth,
363
+ promptId,
364
+ }).catch((error) => {
365
+ vctx.logger
366
+ .Warn()
367
+ .Any("event", { chatId: req.chatId, promptId, error: String(error) })
368
+ .Msg("auto-publish-mint-rejected");
369
+ });
370
+ const waitUntil = vctx.waitUntil;
371
+ if (waitUntil !== undefined) {
372
+ const registered = exception2Result(() => waitUntil(mintTask));
373
+ if (registered.isErr()) {
374
+ vctx.logger.Warn().Err(registered).Str("promptId", promptId).Msg("auto-publish-mint-wait-until-failed");
375
+ }
376
+ }
377
+ else {
378
+ await mintTask;
379
+ }
380
+ }
381
+ iCollectedMsgs.splice(0, collectedMsgs.length);
382
+ return Result.Ok({ blockSeq, fsRef, ...(deferredPersist === undefined ? {} : { deferredPersist }) });
383
+ }
384
+ async function readChatAddress(vctx, chatId) {
385
+ const t = vctx.sql.tables.chatContexts;
386
+ const r = await exception2Result(() => vctx.sql.db
387
+ .select({ ownerHandle: t.ownerHandle, appSlug: t.appSlug })
388
+ .from(t)
389
+ .where(eq(t.chatId, chatId))
390
+ .limit(1)
391
+ .then((rows) => rows[0]));
392
+ if (r.isErr())
393
+ return Result.Err(r);
394
+ const row = r.Ok();
395
+ return Result.Ok(row === undefined ? undefined : { ownerHandle: row.ownerHandle, appSlug: row.appSlug });
396
+ }
397
+ //# sourceMappingURL=handle-prompt-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-prompt-context.js","sourceRoot":"","sources":["../../jsr/public/handle-prompt-context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,8BAA8B,EAM9B,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAiC,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,KAAK,UAAU,mBAAmB,CAAC,IAAoB,EAAE,QAAiC;IACxF,IAAI,MAAM,GAAiB,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,WAAW,CAAC;QAChB,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE;QACnD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/G,IAAI,MAAM,CAAC,KAAK,EAAE;gBAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,IAAI,EACJ,GAAG,EACH,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,aAAa,EAAE,cAAc,EAC7B,SAAS,EACT,WAAW,GAAG,GAAG,EACjB,UAAU,EACV,KAAK,EACL,IAAI,EACJ,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,SAAS,EACT,eAAe,EACf,OAAO,EACP,OAAO,EACP,aAAa,EACb,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,EACnE,GAAG,EACH,IAAI,EACJ,aAAa,GAkGd;IACC,IAAI,KAAK,GAA0B,MAAM,CAAC,IAAI,EAAE,CAAC;IAIjD,IAAI,eAA8C,CAAC;IACnD,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAG7C,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACjE,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ;gBACR,QAAQ,EAAE,QAAQ,EAAE;gBACpB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;YACH,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;QAC5C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACtD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;QACvB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa;QAClD,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB;QAC1D,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY;QAChD,GAAG,EAAE;YACH,IAAI,EAAE,kBAAkB;YACxB,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAG1D,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjG,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;YAEtB,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAIzD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YAGjF,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAIxC,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAK9D,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAI9D,GAAG,cAAc,CAAC,IAAI,CAAC;SACG;QAC5B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC,CAAC;IACH,IAAI,oBAAoB,GAAG,KAAK,CAAC;IASjC,IAAI,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAChD,IAAI,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAMrF,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAI9C,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,SAAS,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC3C,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB;gBACzC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CACrF,CAAC;YACF,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,oBAAoB,GAAG,IAAI,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;YACjG,IAAI,KAAK,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM;qBACR,IAAI,EAAE;qBACN,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;qBAC5F,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACjD,eAAe,GAAG,iBAAiB,CAAC;YACtC,CAAC;iBAAM,CAAC;gBAMN,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,KAAK,EAAE;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;gBACxB,IAAI,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/D,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,MAAM,oDAAoD,CAAC,CAAC;gBAClG,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC;gBACzC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YAgBN,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;gBACzE,IAAI,IAAI,CAAC,WAAW,KAAK,qBAAqB,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;oBACrF,IAAI,CAAC,MAAM;yBACR,IAAI,EAAE;yBACN,GAAG,CAAC,OAAO,EAAE;wBACZ,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,QAAQ;wBACR,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,iBAAiB,EAAE;wBACxE,EAAE,EAAE,IAAI;qBACT,CAAC;yBACD,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAC/C,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC;gBACzC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IACD,IACE,eAAe,KAAK,SAAS;QAC7B,SAAS,KAAK,IAAI;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC7D,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAE3H,IAAI,kBAA8B,CAAC;QAMnC,IAAI,sBAAyC,CAAC;QAG9C,IAAI,YAAY,GAA8B,OAAO,IAAI,EAAE,CAAC;QAC5D,IAAI,UAAU,EAAE,CAAC;YACf,kBAAkB,GAAG,UAAU,CAAC;YAChC,sBAAsB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YAKN,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACnE,IAAI,cAAc,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC;YAOrC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,MAAM,YAAY,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAkB,CAAC;YACjH,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE;gBAC3C,YAAY;gBACZ,aAAa;gBACb,YAAY;gBACZ,gBAAgB,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC1F,WAAW,EAAE,qBAAqB;gBAClC,OAAO,EAAE,iBAAiB;aAC3B,CAAC,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC;YACpC,sBAAsB,GAAG,QAAQ,CAAC,YAAY,CAAC;QACjD,CAAC;QAQD,CAAC;YACC,MAAM,OAAO,GAAG,kBAAkB;iBAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;iBAC5C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YAC/D,IAAI,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;gBAC7F,OAAO,MAAM,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAClF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,8BAA8B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS;gBACtE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtD,CAAC,CAAC,sBAAsB,CAC3B,CAAC;YACF,MAAM,OAAO,GAAG,OAAO;iBACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,eAAe,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE;oBAC7C,GAAG,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClE,OAAO;oBACP,WAAW,EAAE,qBAAqB;iBACnC,CAAC,CAAC;gBACH,IAAI,OAAO,CAAC,KAAK,EAAE;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CACjC,IAAI,EACJ;YACE,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,QAAQ;YAEf,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,qBAAqB;YAClC,UAAU,EAAE,kBAAkB;YAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,EACD,EAAE,OAAO,EAAE,YAAY,EAAE,CAC1B,CAAC;QAEF,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAOD,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,GAAG,CAAC,kCAAkC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAI,SAAS,CAAC,KAAK,EAAE;oBAAE,OAAO,SAAS,CAAC;YAC1C,CAAC;;gBAAM,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAIzC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;iBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;iBACtC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;iBAC3C,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAGhE,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,IAAI,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;gBACvC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;qBACd,MAAM,CAAC,CAAC,CAAC;qBACT,GAAG,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;qBACvC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAiBD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;QAC3B,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB;YAAE,OAAO;QAI1E,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;YAC5C,SAAS;YACT,QAAQ;YACR,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAQL,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAAE,OAAO;QAC5D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACxC,yBAAyB,CAAC,IAAI,EAAE;YAC9B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;YAC5C,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,YAAY;SACpB,CAAC,CACH,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAClG,CAAC;QAID,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC3C,2BAA2B,CAAC,IAAI,EAAE;YAChC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;YAC5C,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,cAAc;SACxB,CAAC,CACH,CAAC;QACF,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAcjI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC1C,mBAAmB,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,qBAAqB;SACjC,CAAC,CACH,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACtH,CAAC;QAmBD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACzC,mCAAmC,CAAC,IAAI,EAAE;gBACxC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,qBAAqB;gBAClC,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,qBAAqB;aACjC,CAAC,CACH,CAAC;YACF,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACvH,CAAC;iBAAM,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,qBAAqB,CAAC;oBAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,WAAW,EAAE,qBAAqB;oBAClC,OAAO,EAAE,iBAAiB;oBAC1B,OAAO,EAAE,GAAG;oBACZ,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAaD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,EAAE;YACpD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;YAC5C,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ;SACT,CAAC,CAAC,IAAI,CACL,CAAC,SAAS,EAAE,EAAE;YACZ,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,MAAM;iBACR,IAAI,EAAE;iBACN,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;iBACpE,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACpD,CAAC,CACF,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YACrE,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YACvH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,CAAC;QACvB,CAAC;IACH,CAAC;IAqCD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE;YAC1C,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI;YACzB,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;YAClD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ;SACT,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1B,IAAI,CAAC,MAAM;iBACR,IAAI,EAAE;iBACN,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;iBACpE,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC;QACjB,CAAC;IACH,CAAC;IAID,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACvG,CAAC;AAQD,KAAK,UAAU,eAAe,CAC5B,IAAoB,EACpB,MAAc;IAEd,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,EAAE;SACR,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC1D,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;IACF,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3G,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { HandleTriggerCtx } from "@adviser/cement";
2
+ import { Scope } from "@adviser/scopey";
3
+ import { MsgBase, ReqPromptChatSection, ReqPromptLLMChatSection, ReqWithVerifiedAuth, VibesDiyError, W3CWebSocketEvent, type UrlResearchJob } from "@vibes.diy/api-types";
4
+ import { VibesApiSQLCtx } from "../types.js";
5
+ import { ChatMessage, type LLMMessage, type ToolDefinition } from "@vibes.diy/call-ai-v2";
6
+ import { type SectionInitiator } from "../intern/turn-initiator.js";
7
+ import { type LLMRequestWithHeaders } from "./llm-dispatch-fallback.js";
8
+ import { type ResChat } from "./append-block-event.js";
9
+ export declare function currentUserMessageText(messages: readonly ChatMessage[]): string;
10
+ export declare function mergeServerTools(outgoing: {
11
+ readonly tools?: unknown;
12
+ readonly tool_choice?: unknown;
13
+ }, serverTools: readonly ToolDefinition[] | undefined): {
14
+ tools?: ToolDefinition[];
15
+ tool_choice?: "auto";
16
+ };
17
+ export declare function handlerLlmRequest({ scope, ctx, vctx, blockSeq, req, resChat, promptId, preAssembled, serverTools, initiator, agentDispatched, platformInitiated, modelUsage, subagentModel, }: {
18
+ modelUsage?: "agent" | "subagent";
19
+ subagentModel?: string;
20
+ scope: Scope;
21
+ ctx: HandleTriggerCtx<W3CWebSocketEvent, MsgBase<ReqWithVerifiedAuth<ReqPromptChatSection>>, never | VibesDiyError>;
22
+ vctx: VibesApiSQLCtx;
23
+ req: ReqWithVerifiedAuth<ReqPromptLLMChatSection>;
24
+ resChat: ResChat;
25
+ promptId: string;
26
+ blockSeq: number;
27
+ preAssembled?: {
28
+ model: string;
29
+ messages: LLMMessage[];
30
+ isInitialTurn: boolean;
31
+ codegenTheme?: string;
32
+ codegenVariety?: {
33
+ archetype: string;
34
+ flourishes: string[];
35
+ };
36
+ enrichedPrompt?: string;
37
+ };
38
+ serverTools?: readonly ToolDefinition[];
39
+ initiator?: SectionInitiator;
40
+ agentDispatched?: boolean;
41
+ platformInitiated?: boolean;
42
+ }): Promise<{
43
+ res: Response;
44
+ blockSeq: number;
45
+ llmReq: LLMRequestWithHeaders;
46
+ abort: AbortController;
47
+ urlResearchJob?: UrlResearchJob;
48
+ }>;