@vibes.diy/api-svc 2.6.1 → 2.6.2

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 (36) hide show
  1. package/LICENSE.md +19 -50
  2. package/chat-msg-evento.d.ts +514 -76
  3. package/evento-handler-manifest.d.ts +524 -86
  4. package/evento-handler-manifest.js +2 -0
  5. package/evento-handler-manifest.js.map +1 -1
  6. package/index.d.ts +1 -0
  7. package/index.js +1 -0
  8. package/index.js.map +1 -1
  9. package/intern/prompt-assembly.js +2 -2
  10. package/intern/prompt-assembly.js.map +1 -1
  11. package/intern/write-apps.d.ts +1 -0
  12. package/intern/write-apps.js +55 -17
  13. package/intern/write-apps.js.map +1 -1
  14. package/package.json +12 -12
  15. package/public/app-documents-write-eventos.js +38 -14
  16. package/public/app-documents-write-eventos.js.map +1 -1
  17. package/public/app-seq-allocation.d.ts +1 -0
  18. package/public/app-seq-allocation.js +29 -5
  19. package/public/app-seq-allocation.js.map +1 -1
  20. package/public/doc-content-equal.d.ts +1 -0
  21. package/public/doc-content-equal.js +41 -0
  22. package/public/doc-content-equal.js.map +1 -0
  23. package/public/ensure-app-slug-item.js +1 -1
  24. package/public/ensure-app-slug-item.js.map +1 -1
  25. package/public/get-chat-response.d.ts +3 -0
  26. package/public/get-chat-response.js +73 -0
  27. package/public/get-chat-response.js.map +1 -0
  28. package/public/prompt-chat-section.d.ts +2 -1
  29. package/public/prompt-chat-section.js +74 -4
  30. package/public/prompt-chat-section.js.map +1 -1
  31. package/public/select-app.d.ts +1 -0
  32. package/public/select-app.js +1 -0
  33. package/public/select-app.js.map +1 -1
  34. package/public/seq-allocation.d.ts +6 -1
  35. package/public/seq-allocation.js +29 -8
  36. package/public/seq-allocation.js.map +1 -1
@@ -7,25 +7,42 @@ export function appReleaseLockKey(userId, appSlug) {
7
7
  function jsonParam(flavour, value) {
8
8
  return flavour === "pg" ? sql `${JSON.stringify(value)}::jsonb` : sql `${JSON.stringify(value)}`;
9
9
  }
10
- function existsByFsId(row) {
10
+ function existsByFsIdOrRunId(row) {
11
+ const runClause = row.runId == null ? sql `` : sql ` OR "runId"=${row.runId}`;
11
12
  return sql `SELECT 1 FROM ${TABLE}
12
13
  WHERE "appSlug"=${row.appSlug} AND "userId"=${row.userId}
13
- AND "userSlug"=${row.ownerHandle} AND "fsId"=${row.fsId}`;
14
+ AND "userSlug"=${row.ownerHandle} AND ("fsId"=${row.fsId}${runClause})`;
14
15
  }
15
16
  export function buildInsertIfAbsent(p) {
16
17
  const { row, flavour } = p;
17
18
  return sql `
18
- INSERT INTO ${TABLE} ("appSlug","userId","userSlug","releaseSeq","fsId","env","fileSystem","meta","mode","created")
19
+ INSERT INTO ${TABLE} ("appSlug","userId","userSlug","releaseSeq","fsId","runId","env","fileSystem","meta","mode","created")
19
20
  SELECT ${row.appSlug}, ${row.userId}, ${row.ownerHandle},
20
21
  COALESCE(MAX("releaseSeq"),0)+1,
21
- ${row.fsId}, ${jsonParam(flavour, row.env)}, ${jsonParam(flavour, row.fileSystem)},
22
+ ${row.fsId}, ${row.runId ?? null}, ${jsonParam(flavour, row.env)}, ${jsonParam(flavour, row.fileSystem)},
22
23
  ${jsonParam(flavour, row.meta)}, ${row.mode}, ${row.created}
23
24
  FROM ${TABLE}
24
25
  WHERE "appSlug"=${row.appSlug} AND "userId"=${row.userId}
25
- HAVING NOT EXISTS (${existsByFsId(row)})
26
+ HAVING NOT EXISTS (${existsByFsIdOrRunId(row)})
26
27
  RETURNING "releaseSeq"
27
28
  `;
28
29
  }
30
+ function buildSelectByRunId(row) {
31
+ return sql `SELECT "releaseSeq" FROM ${TABLE}
32
+ WHERE "appSlug"=${row.appSlug} AND "userId"=${row.userId}
33
+ AND "userSlug"=${row.ownerHandle} AND "runId"=${row.runId}
34
+ ORDER BY "releaseSeq" DESC
35
+ LIMIT 1`;
36
+ }
37
+ function buildReconcileRunRow(row, flavour) {
38
+ return sql `UPDATE ${TABLE}
39
+ SET "fsId"=${row.fsId}, "env"=${jsonParam(flavour, row.env)},
40
+ "fileSystem"=${jsonParam(flavour, row.fileSystem)},
41
+ "mode"=CASE WHEN "mode"='production' OR ${row.mode}='production' THEN 'production' ELSE 'dev' END
42
+ WHERE "appSlug"=${row.appSlug} AND "userId"=${row.userId}
43
+ AND "userSlug"=${row.ownerHandle} AND "runId"=${row.runId}
44
+ AND NOT ("mode"='production' AND ${row.mode}='dev')`;
45
+ }
29
46
  function buildSelectByFsId(row) {
30
47
  return sql `SELECT "releaseSeq", "mode" FROM ${TABLE}
31
48
  WHERE "appSlug"=${row.appSlug} AND "userId"=${row.userId}
@@ -54,6 +71,13 @@ async function dedupOrInsert(exec, flavour, p) {
54
71
  if (inserted.length > 0 && inserted[0].releaseSeq != null) {
55
72
  return Number(inserted[0].releaseSeq);
56
73
  }
74
+ if (p.row.runId != null) {
75
+ const existingRun = normalizeRows(await runReturning(exec, flavour, buildSelectByRunId(p.row)));
76
+ if (existingRun.length > 0 && existingRun[0].releaseSeq != null) {
77
+ await runReturning(exec, flavour, buildReconcileRunRow(p.row, flavour));
78
+ return Number(existingRun[0].releaseSeq);
79
+ }
80
+ }
57
81
  if (p.row.mode === "production") {
58
82
  await runReturning(exec, flavour, buildUpgradeToProduction(p.row));
59
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-seq-allocation.js","sourceRoot":"","sources":["../../jsr/public/app-seq-allocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-seq-allocation.js","sourceRoot":"","sources":["../../jsr/public/app-seq-allocation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function docContentEqual(a: unknown, b: unknown): boolean;
@@ -0,0 +1,41 @@
1
+ function canonical(value) {
2
+ if (value === undefined)
3
+ return "null";
4
+ if (value === null || typeof value !== "object")
5
+ return JSON.stringify(value) ?? "null";
6
+ if (Array.isArray(value))
7
+ return `[${value.map((v) => (v === undefined ? "null" : canonical(v))).join(",")}]`;
8
+ const obj = value;
9
+ const keys = Object.keys(obj)
10
+ .filter((k) => obj[k] !== undefined)
11
+ .sort();
12
+ return `{${keys.map((k) => `${JSON.stringify(k)}:${canonical(obj[k])}`).join(",")}}`;
13
+ }
14
+ function stripMintedFileUrls(files) {
15
+ if (!files || typeof files !== "object" || Array.isArray(files))
16
+ return files;
17
+ const out = {};
18
+ for (const [key, entry] of Object.entries(files)) {
19
+ if (entry && typeof entry === "object" && !Array.isArray(entry)) {
20
+ const { url: _omitUrl, ...rest } = entry;
21
+ out[key] = rest;
22
+ }
23
+ else {
24
+ out[key] = entry;
25
+ }
26
+ }
27
+ return out;
28
+ }
29
+ function normalizeForCompare(doc) {
30
+ if (!doc || typeof doc !== "object" || Array.isArray(doc))
31
+ return doc;
32
+ const { _id: _omitId, ...rest } = doc;
33
+ if ("_files" in rest) {
34
+ rest._files = stripMintedFileUrls(rest._files);
35
+ }
36
+ return rest;
37
+ }
38
+ export function docContentEqual(a, b) {
39
+ return canonical(normalizeForCompare(a)) === canonical(normalizeForCompare(b));
40
+ }
41
+ //# sourceMappingURL=doc-content-equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-content-equal.js","sourceRoot":"","sources":["../../jsr/public/doc-content-equal.ts"],"names":[],"mappings":"AA2BA,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9G,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACnC,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACvF,CAAC;AAKD,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAgC,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAID,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACtE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,GAA8B,CAAC;IACjE,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,UAAU,eAAe,CAAC,CAAU,EAAE,CAAU;IACpD,OAAO,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -64,7 +64,7 @@ export async function ensureAppSlugItem(vctx, req, opts) {
64
64
  vibeFileItem: writeAppSlugsOp[idx].fsItem,
65
65
  storage: op.Ok(),
66
66
  }));
67
- const rEnsure = await ensureApps(vctx, { env: req.env ?? {}, mode: req.mode, userId: req._auth.verifiedAuth.claims.userId }, rAppSlugBinding.Ok(), fullFileSystem);
67
+ const rEnsure = await ensureApps(vctx, { env: req.env ?? {}, mode: req.mode, userId: req._auth.verifiedAuth.claims.userId, runId: req.runId }, rAppSlugBinding.Ok(), fullFileSystem);
68
68
  if (rEnsure.isErr()) {
69
69
  return Result.Err(rEnsure);
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-app-slug-item.js","sourceRoot":"","sources":["../../jsr/public/ensure-app-slug-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-app-slug-item.js","sourceRoot":"","sources":["../../jsr/public/ensure-app-slug-item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqGetChatResponse, ResGetChatResponse, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const getChatResponseEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqGetChatResponse>, ResGetChatResponse | VibesDiyError>;
@@ -0,0 +1,73 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqGetChatResponse, PromptAndBlockMsgs, parseArrayWarning, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { ensureLogger } from "@vibes.diy/identity";
5
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
6
+ import { checkAuth } from "../check-auth.js";
7
+ import { eq, and } from "drizzle-orm/sql/expressions";
8
+ export const getChatResponseEvento = {
9
+ hash: "get-chat-response",
10
+ validate: unwrapMsgBase(async (msg) => {
11
+ const ret = reqGetChatResponse(msg.payload);
12
+ if (ret instanceof type.errors) {
13
+ return Result.Ok(Option.None());
14
+ }
15
+ return Result.Ok(Option.Some({
16
+ ...msg,
17
+ payload: ret,
18
+ }));
19
+ }),
20
+ handle: checkAuth(async (ctx) => {
21
+ const req = ctx.validated.payload;
22
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
23
+ const userId = req._auth.verifiedAuth.claims.userId;
24
+ const rows = await vctx.sql.db
25
+ .select({
26
+ chatId: vctx.sql.tables.chatSections.chatId,
27
+ promptId: vctx.sql.tables.chatSections.promptId,
28
+ fsId: vctx.sql.tables.promptContexts.fsId,
29
+ promptCreated: vctx.sql.tables.promptContexts.created,
30
+ sectionCreated: vctx.sql.tables.chatSections.created,
31
+ blockSeq: vctx.sql.tables.chatSections.blockSeq,
32
+ blocks: vctx.sql.tables.chatSections.blocks,
33
+ })
34
+ .from(vctx.sql.tables.handleBinding)
35
+ .innerJoin(vctx.sql.tables.chatContexts, eq(vctx.sql.tables.chatContexts.ownerHandle, vctx.sql.tables.handleBinding.handle))
36
+ .innerJoin(vctx.sql.tables.chatSections, eq(vctx.sql.tables.chatSections.chatId, vctx.sql.tables.chatContexts.chatId))
37
+ .leftJoin(vctx.sql.tables.promptContexts, and(eq(vctx.sql.tables.promptContexts.chatId, vctx.sql.tables.chatSections.chatId), eq(vctx.sql.tables.promptContexts.promptId, vctx.sql.tables.chatSections.promptId)))
38
+ .where(and(eq(vctx.sql.tables.handleBinding.userId, userId), eq(vctx.sql.tables.chatContexts.ownerHandle, req.ownerHandle), eq(vctx.sql.tables.chatContexts.appSlug, req.appSlug), ...(req.chatId !== undefined ? [eq(vctx.sql.tables.chatContexts.chatId, req.chatId)] : []), ...(req.promptId !== undefined ? [eq(vctx.sql.tables.chatSections.promptId, req.promptId)] : [])));
39
+ const turns = new Map();
40
+ for (const row of rows) {
41
+ let turn = turns.get(row.promptId);
42
+ if (turn === undefined) {
43
+ turn = {
44
+ chatId: row.chatId,
45
+ promptId: row.promptId,
46
+ created: row.promptCreated ?? row.sectionCreated,
47
+ ...(row.fsId !== undefined && row.fsId !== null ? { fsId: row.fsId } : {}),
48
+ sections: [],
49
+ };
50
+ turns.set(row.promptId, turn);
51
+ }
52
+ const { filtered: blocks, warning } = parseArrayWarning(row.blocks, PromptAndBlockMsgs);
53
+ if (warning.length > 0) {
54
+ ensureLogger(vctx.sthis, "getChatResponse").Warn().Any({ parseErrors: warning }).Msg("skip");
55
+ }
56
+ const section = { blockSeq: row.blockSeq, blocks };
57
+ turn.sections.push(section);
58
+ }
59
+ for (const turn of turns.values()) {
60
+ turn.sections.sort((a, b) => a.blockSeq - b.blockSeq);
61
+ }
62
+ const orderedTurns = Array.from(turns.values()).sort((a, b) => (a.created < b.created ? 1 : a.created > b.created ? -1 : 0));
63
+ await ctx.send.send(ctx, {
64
+ type: "vibes.diy.res-get-chat-response",
65
+ ...(req.chatId !== undefined ? { chatId: req.chatId } : {}),
66
+ ownerHandle: req.ownerHandle,
67
+ appSlug: req.appSlug,
68
+ turns: orderedTurns,
69
+ });
70
+ return Result.Ok(EventoResult.Continue);
71
+ }),
72
+ };
73
+ //# sourceMappingURL=get-chat-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-chat-response.js","sourceRoot":"","sources":["../../jsr/public/get-chat-response.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export type { PromptAssetFetchDeps };
10
10
  export { createPromptAssetFetch, promptsPkgBaseUrl };
11
11
  export { resolveCodeBlocksToFileSystem, createStreamingResolver, createBlockAccumulator, logApplyError };
12
12
  export type { ApplyErrorEvent, StreamingResolverDeps, BlockApplyResult, StreamingResolver, ClosedCodeBlock, BlockAccumulator, ApplyEditsError, FenceParseError, };
13
- export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks, fileSystem, }: {
13
+ export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks, fileSystem, model, }: {
14
14
  vctx: VibesApiSQLCtx;
15
15
  req: ReqWithVerifiedAuth<ReqPromptChatSection>;
16
16
  resChat: ResChat;
@@ -20,6 +20,7 @@ export declare function handlePromptContext({ vctx, req, resChat, promptId, bloc
20
20
  collectedMsgs: PromptAndBlockMsgs[];
21
21
  blockChunks?: number;
22
22
  fileSystem?: VibeFile[];
23
+ model?: string;
23
24
  }): Promise<Result<{
24
25
  blockSeq: number;
25
26
  fsRef: Option<FileSystemRef>;
@@ -405,7 +405,7 @@ async function appendBlockEvent({ ctx, vctx, req, promptId, blockSeq, evt, emitM
405
405
  }
406
406
  return Result.Ok();
407
407
  }
408
- export async function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks = 100, fileSystem, }) {
408
+ export async function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks = 100, fileSystem, model, }) {
409
409
  let fsRef = Option.None();
410
410
  const code = [];
411
411
  const sections = [];
@@ -447,6 +447,7 @@ export async function handlePromptContext({ vctx, req, resChat, promptId, blockS
447
447
  const rFs = await ensureAppSlugItem(vctx, {
448
448
  type: "vibes.diy.req-ensure-app-slug",
449
449
  mode: "dev",
450
+ runId: promptId,
450
451
  appSlug: resChat.appSlug,
451
452
  ownerHandle: resChat.ownerHandle,
452
453
  fileSystem: resolvedFileSystem,
@@ -477,6 +478,7 @@ export async function handlePromptContext({ vctx, req, resChat, promptId, blockS
477
478
  type: "prompt.usage.sql",
478
479
  usage: value.usage,
479
480
  fsRef: fsRef.toValue(),
481
+ ...(model !== undefined && model !== "" ? { model } : {}),
480
482
  },
481
483
  created: new Date().toISOString(),
482
484
  }));
@@ -664,6 +666,30 @@ async function handlerLlmRequest({ scope, ctx, vctx, blockSeq, req, resChat, pro
664
666
  return dispatch.ok ? Result.Ok(dispatch.res) : Result.Err(dispatch.error);
665
667
  })
666
668
  .do();
669
+ const finalModel = dispatch.llmReq.model;
670
+ if (dispatch.ok && finalModel !== undefined && finalModel !== modelId) {
671
+ await scope
672
+ .evalResult(async () => {
673
+ const r = await appendBlockEvent({
674
+ ctx,
675
+ vctx,
676
+ req,
677
+ promptId,
678
+ blockSeq,
679
+ evt: {
680
+ type: "prompt.model-resolved",
681
+ streamId: promptId,
682
+ chatId: req.chatId,
683
+ seq: blockSeq,
684
+ model: finalModel,
685
+ timestamp: new Date(),
686
+ },
687
+ });
688
+ blockSeq++;
689
+ return r;
690
+ })
691
+ .do();
692
+ }
667
693
  return { res, blockSeq, llmReq: dispatch.llmReq, abort: dispatch.abort };
668
694
  }
669
695
  async function handleProdiaImageRequest({ scope, ctx, vctx, req, promptId, blockSeq, resolvedModel, resChat, }) {
@@ -848,7 +874,7 @@ async function handleProdiaImageRequest({ scope, ctx, vctx, req, promptId, block
848
874
  }
849
875
  return Result.Ok(blockSeq);
850
876
  }
851
- async function handleEndMsg({ collectedMsgs, vctx, req, ctx, resChat, promptId, value, blockSeq, fileSystem, terminal, }) {
877
+ async function handleEndMsg({ collectedMsgs, vctx, req, ctx, resChat, promptId, value, blockSeq, fileSystem, terminal, model, }) {
852
878
  const endSeq = blockSeq++;
853
879
  const rEnd = await appendBlockEvent({
854
880
  ctx,
@@ -863,7 +889,7 @@ async function handleEndMsg({ collectedMsgs, vctx, req, ctx, resChat, promptId,
863
889
  return Result.Err(rEnd);
864
890
  }
865
891
  terminal.promptBlockEndEmitted = true;
866
- const r = await handlePromptContext({ vctx, req, promptId, resChat, value, blockSeq, collectedMsgs, fileSystem });
892
+ const r = await handlePromptContext({ vctx, req, promptId, resChat, value, blockSeq, collectedMsgs, fileSystem, model });
867
893
  if (r.isErr()) {
868
894
  return Result.Err(r);
869
895
  }
@@ -932,6 +958,31 @@ async function handleLlmResponse({ scope, vctx, req, ctx, res, resChat, promptId
932
958
  const blockAcc = createBlockAccumulator();
933
959
  let recoveryCounter = { consecutiveFruitless: 0 };
934
960
  let isRecoveryStream = false;
961
+ let turnRawText = "";
962
+ let rawEmitted = false;
963
+ const emitTurnRaw = async () => {
964
+ if (rawEmitted || turnRawText === "")
965
+ return Result.Ok();
966
+ rawEmitted = true;
967
+ const r = await appendBlockEvent({
968
+ ctx,
969
+ vctx,
970
+ req,
971
+ promptId,
972
+ blockSeq,
973
+ evt: {
974
+ type: "prompt.raw",
975
+ streamId: promptId,
976
+ chatId: req.chatId,
977
+ seq: blockSeq,
978
+ text: turnRawText,
979
+ timestamp: new Date(),
980
+ },
981
+ resChat,
982
+ });
983
+ blockSeq++;
984
+ return r;
985
+ };
935
986
  let currentRes = res;
936
987
  let currentAbort = abort;
937
988
  const HEARTBEAT_MS = 20_000;
@@ -1061,13 +1112,25 @@ async function handleLlmResponse({ scope, vctx, req, ctx, res, resChat, promptId
1061
1112
  }
1062
1113
  else {
1063
1114
  collectedMsgs.push(value);
1064
- const x = await handleEndMsg({ collectedMsgs, vctx, req, ctx, resChat, promptId, value, blockSeq, terminal });
1115
+ const x = await handleEndMsg({
1116
+ collectedMsgs,
1117
+ vctx,
1118
+ req,
1119
+ ctx,
1120
+ resChat,
1121
+ promptId,
1122
+ value,
1123
+ blockSeq,
1124
+ terminal,
1125
+ model: llmReq.model,
1126
+ });
1065
1127
  if (x.isErr())
1066
1128
  return Result.Err(x);
1067
1129
  blockSeq = x.Ok();
1068
1130
  collectedMsgs.splice(0, collectedMsgs.length);
1069
1131
  }
1070
1132
  }
1133
+ turnRawText += recoverHint === null ? partialBuffer.text : recoverHint.partial;
1071
1134
  if (isRecoveryStream) {
1072
1135
  recoveryCounter = updateRecoveryCounter(recoveryCounter, { madeProgress: streamMadeProgress });
1073
1136
  recoveryLogger
@@ -1081,6 +1144,9 @@ async function handleLlmResponse({ scope, vctx, req, ctx, res, resChat, promptId
1081
1144
  .Msg("recovery-stream-end");
1082
1145
  }
1083
1146
  if (recoverHint === null) {
1147
+ const rRaw = await emitTurnRaw();
1148
+ if (rRaw.isErr())
1149
+ return Result.Err(rRaw);
1084
1150
  return Result.Ok();
1085
1151
  }
1086
1152
  if (!shouldAttemptRecovery(recoveryCounter)) {
@@ -1093,6 +1159,9 @@ async function handleLlmResponse({ scope, vctx, req, ctx, res, resChat, promptId
1093
1159
  consecutiveFruitless: recoveryCounter.consecutiveFruitless,
1094
1160
  })
1095
1161
  .Msg("recovery-exhausted");
1162
+ const rRaw = await emitTurnRaw();
1163
+ if (rRaw.isErr())
1164
+ return Result.Err(rRaw);
1096
1165
  const exhaustedEnd = {
1097
1166
  type: "block.end",
1098
1167
  blockId: recoverHint.blockId,
@@ -1122,6 +1191,7 @@ async function handleLlmResponse({ scope, vctx, req, ctx, res, resChat, promptId
1122
1191
  value: exhaustedEnd,
1123
1192
  blockSeq,
1124
1193
  terminal,
1194
+ model: llmReq.model,
1125
1195
  });
1126
1196
  if (xEnd.isErr())
1127
1197
  return Result.Err(xEnd);