@vibes.diy/api-svc 4.4.2 → 4.5.4

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 (63) hide show
  1. package/app-msg-evento.js.map +1 -1
  2. package/chat-msg-evento.js.map +1 -1
  3. package/intern/prompt-assembly.d.ts +1 -0
  4. package/intern/prompt-assembly.js +11 -7
  5. package/intern/prompt-assembly.js.map +1 -1
  6. package/package.json +12 -15
  7. package/public/access-function.js +73 -15
  8. package/public/access-function.js.map +1 -1
  9. package/public/app-documents-broadcast.d.ts +36 -0
  10. package/public/app-documents-broadcast.js +99 -0
  11. package/public/app-documents-broadcast.js.map +1 -0
  12. package/public/app-documents-grant-delta.d.ts +13 -0
  13. package/public/app-documents-grant-delta.js +76 -0
  14. package/public/app-documents-grant-delta.js.map +1 -0
  15. package/public/app-documents-put-persist.d.ts +28 -0
  16. package/public/app-documents-put-persist.js +106 -0
  17. package/public/app-documents-put-persist.js.map +1 -0
  18. package/public/app-documents-read-eventos.js +10 -4
  19. package/public/app-documents-read-eventos.js.map +1 -1
  20. package/public/app-documents-write-eventos.js +71 -280
  21. package/public/app-documents-write-eventos.js.map +1 -1
  22. package/public/app-settings-icon-gen.d.ts +8 -0
  23. package/public/app-settings-icon-gen.js +29 -0
  24. package/public/app-settings-icon-gen.js.map +1 -0
  25. package/public/app-settings-secrets.d.ts +5 -0
  26. package/public/app-settings-secrets.js +92 -0
  27. package/public/app-settings-secrets.js.map +1 -0
  28. package/public/app-settings-sql-upsert.d.ts +5 -0
  29. package/public/app-settings-sql-upsert.js +139 -0
  30. package/public/app-settings-sql-upsert.js.map +1 -0
  31. package/public/app-settings-suggestion-bless.d.ts +4 -0
  32. package/public/app-settings-suggestion-bless.js +88 -0
  33. package/public/app-settings-suggestion-bless.js.map +1 -0
  34. package/public/ensure-app-settings.d.ts +5 -5
  35. package/public/ensure-app-settings.js +6 -337
  36. package/public/ensure-app-settings.js.map +1 -1
  37. package/public/fs-prompt.d.ts +16 -0
  38. package/public/fs-prompt.js +173 -0
  39. package/public/fs-prompt.js.map +1 -0
  40. package/public/image-gen.d.ts +15 -0
  41. package/public/image-gen.js +222 -0
  42. package/public/image-gen.js.map +1 -0
  43. package/public/llm-dispatch.d.ts +113 -0
  44. package/public/llm-dispatch.js +621 -0
  45. package/public/llm-dispatch.js.map +1 -0
  46. package/public/prompt-chat-section.d.ts +5 -41
  47. package/public/prompt-chat-section.js +10 -1607
  48. package/public/prompt-chat-section.js.map +1 -1
  49. package/public/provider-errors.d.ts +55 -0
  50. package/public/provider-errors.js +150 -0
  51. package/public/provider-errors.js.map +1 -0
  52. package/public/request-flow.js +4 -2
  53. package/public/request-flow.js.map +1 -1
  54. package/public/set-mode-fsid.js +2 -2
  55. package/public/set-mode-fsid.js.map +1 -1
  56. package/public/stream-assembly.d.ts +38 -0
  57. package/public/stream-assembly.js +470 -0
  58. package/public/stream-assembly.js.map +1 -0
  59. package/shared-msg-evento.js.map +1 -1
  60. package/types.js.map +1 -1
  61. package/intern/get-slug-binding.d.ts +0 -7
  62. package/intern/get-slug-binding.js +0 -34
  63. package/intern/get-slug-binding.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { Result, Option, EventoResult, exception2Result } from "@adviser/cement";
2
- import { ActiveEntry, parseArrayWarning, isActiveCachedSuggestion, isActiveCachedSuggestionBless, isActiveDbAcl, isActiveEnv, isActiveIcon, isActiveIconDescription, isActiveModelSetting, isActiveModelSettingRuntime, isActiveModelSettingCodegen, isActiveModelSettingImg, isActiveColorTheme, isActiveSkills, isActiveTheme, isReqEnsureAppSettingsColorTheme, isReqEnsureAppSettingsIconDescription, isReqEnsureAppSettingsIconRegen, isReqEnsureAppSettingsImg, isReqEnsureAppSettingsSkills, isReqEnsureAppSettingsTheme, isActiveTitle, isEnablePublicAccess, isEnableRequest, isReqEnsureAppSettings, isReqEnsureAppSettingsRuntime, isReqEnsureAppSettingsCodegen, isReqEnsureAppSettingsCachedSuggestion, isReqEnsureAppSettingsCachedSuggestionBless, isReqEnsureAppSettingsDbAcl, isReqEnsureAppSettingsDbAclRemove, isReqEnsureAppSettingsEnv, isReqEnsureAppSettingsSecretSet, isReqEnsureAppSettingsSecretRemove, isReqEnsureAppSettingsTitle, isReqPublicAccess, isReqRequest, isActiveSecret, } from "@vibes.diy/api-types";
2
+ import { ActiveEntry, parseArrayWarning, isActiveCachedSuggestion, isActiveDbAcl, isActiveEnv, isActiveIconDescription, isActiveModelSettingRuntime, isActiveModelSettingCodegen, isActiveModelSettingImg, isActiveColorTheme, isActiveSkills, isActiveTheme, isReqEnsureAppSettingsColorTheme, isReqEnsureAppSettingsIconDescription, isReqEnsureAppSettingsIconRegen, isReqEnsureAppSettingsImg, isReqEnsureAppSettingsSkills, isReqEnsureAppSettingsTheme, isActiveTitle, isEnablePublicAccess, isEnableRequest, isReqEnsureAppSettings, isReqEnsureAppSettingsRuntime, isReqEnsureAppSettingsCodegen, isReqEnsureAppSettingsCachedSuggestion, isReqEnsureAppSettingsCachedSuggestionBless, isReqEnsureAppSettingsDbAcl, isReqEnsureAppSettingsDbAclRemove, isReqEnsureAppSettingsEnv, isReqEnsureAppSettingsSecretSet, isReqEnsureAppSettingsSecretRemove, isReqEnsureAppSettingsTitle, isReqPublicAccess, isReqRequest, } from "@vibes.diy/api-types";
3
3
  import { ensureLogger } from "@vibes.diy/identity";
4
4
  import { unwrapMsgBase } from "../unwrap-msg-base.js";
5
5
  import { optAuth } from "../check-auth.js";
@@ -7,128 +7,12 @@ import { eq, and } from "drizzle-orm/sql/expressions";
7
7
  import { getModelDefaults } from "../intern/get-model-defaults.js";
8
8
  import { approveAllPendingRequests } from "./request-flow.js";
9
9
  import { purgeRootHtmlCacheSameColo } from "../intern/swr-purge.js";
10
- export function buildEnsureEntryResult(entries) {
11
- const result = {
12
- entries,
13
- entry: {
14
- settings: {
15
- env: [],
16
- },
17
- },
18
- };
19
- entries.forEach((e) => {
20
- switch (true) {
21
- case isEnablePublicAccess(e):
22
- result.entry.publicAccess = e;
23
- break;
24
- case isEnableRequest(e):
25
- result.entry.enableRequest = e;
26
- break;
27
- case isActiveTitle(e):
28
- result.entry.settings.title = e.title;
29
- break;
30
- case isActiveSkills(e):
31
- result.entry.settings.skills = e.skills;
32
- break;
33
- case isActiveTheme(e):
34
- result.entry.settings.theme = e.theme;
35
- break;
36
- case isActiveColorTheme(e):
37
- result.entry.settings.colorTheme = e.colorTheme;
38
- break;
39
- case isActiveIconDescription(e):
40
- result.entry.settings.iconDescription = e.description;
41
- break;
42
- case isActiveIcon(e): {
43
- const head = e.versions.find((v) => v.cid === e.currentCid);
44
- if (head && head.cid.length > 0) {
45
- result.entry.settings.icon = { cid: head.cid, mime: head.mime };
46
- }
47
- break;
48
- }
49
- case isActiveModelSettingCodegen(e):
50
- result.entry.settings.codegen = e.param;
51
- break;
52
- case isActiveModelSettingRuntime(e):
53
- result.entry.settings.runtime = e.param;
54
- break;
55
- case isActiveModelSettingImg(e):
56
- result.entry.settings.img = e.param;
57
- break;
58
- case isActiveEnv(e):
59
- result.entry.settings.env.push(...e.env);
60
- break;
61
- case isActiveCachedSuggestion(e):
62
- result.entry.cachedSuggestions = result.entry.cachedSuggestions ?? {};
63
- result.entry.cachedSuggestions[e.key] = { fsId: e.fsId, sourceFsId: e.sourceFsId };
64
- break;
65
- case isActiveCachedSuggestionBless(e):
66
- result.entry.cachedSuggestionBlesses = result.entry.cachedSuggestionBlesses ?? {};
67
- result.entry.cachedSuggestionBlesses[e.key] = {
68
- ...(e.fsId ? { fsId: e.fsId } : {}),
69
- ...(e.sourceFsId ? { sourceFsId: e.sourceFsId } : {}),
70
- ...(e.targetOwnerHandle ? { targetOwnerHandle: e.targetOwnerHandle } : {}),
71
- ...(e.targetAppSlug ? { targetAppSlug: e.targetAppSlug } : {}),
72
- approvedBy: e.approvedBy,
73
- approvedAt: e.approvedAt,
74
- };
75
- break;
76
- case isActiveDbAcl(e):
77
- result.entry.dbAcls = result.entry.dbAcls ?? {};
78
- result.entry.dbAcls[e.dbName] = e.acl;
79
- break;
80
- }
81
- });
82
- return result;
83
- }
10
+ import { buildEnsureEntryResult, sqlRemove, sqlUpsert } from "./app-settings-sql-upsert.js";
11
+ import { applySecretOp, redactModelApiKeys, redactSecretEntries } from "./app-settings-secrets.js";
12
+ import { adminUserIdSet, applyCachedSuggestionBless } from "./app-settings-suggestion-bless.js";
13
+ import { postIconGen, recentlyRegenerated } from "./app-settings-icon-gen.js";
14
+ export { buildEnsureEntryResult, redactSecretEntries, redactModelApiKeys, adminUserIdSet };
84
15
  const MODEL_DEFAULTS_TIMEOUT_MS = 3000;
85
- const SECRET_KEY_RE = /^[A-Za-z_][A-Za-z0-9_]{0,63}$/;
86
- const SECRET_VALUE_MAX = 8192;
87
- const SECRET_COUNT_MAX = 32;
88
- const SECRET_LAST4_MIN = 8;
89
- function secretMeta(e) {
90
- return {
91
- key: e.key,
92
- ...(e.value.length >= SECRET_LAST4_MIN ? { last4: e.value.slice(-4) } : {}),
93
- updatedAt: e.updatedAt,
94
- ...(e.setBy ? { setBy: e.setBy } : {}),
95
- };
96
- }
97
- export function redactSecretEntries(s) {
98
- const secrets = s.entries.filter((e) => isActiveSecret(e));
99
- return {
100
- ...s,
101
- entries: s.entries.filter((e) => !isActiveSecret(e)),
102
- entry: {
103
- ...s.entry,
104
- settings: {
105
- ...s.entry.settings,
106
- secrets: secrets.map((e) => secretMeta(e)).sort((a, b) => (a.key < b.key ? -1 : 1)),
107
- },
108
- },
109
- };
110
- }
111
- export function redactModelApiKeys(s) {
112
- const strip = (p) => {
113
- if (!p || p.apiKey === undefined)
114
- return p;
115
- const { apiKey: _apiKey, ...rest } = p;
116
- return rest;
117
- };
118
- return {
119
- ...s,
120
- entries: s.entries.map((e) => (isActiveModelSetting(e) ? { ...e, param: strip(e.param) } : e)),
121
- entry: {
122
- ...s.entry,
123
- settings: {
124
- ...s.entry.settings,
125
- codegen: strip(s.entry.settings.codegen),
126
- runtime: strip(s.entry.settings.runtime),
127
- img: strip(s.entry.settings.img),
128
- },
129
- },
130
- };
131
- }
132
16
  async function withModelDefaults(vctx, res, opts) {
133
17
  res.settings = redactSecretEntries(res.settings);
134
18
  const done = () => {
@@ -154,117 +38,6 @@ async function withModelDefaults(vctx, res, opts) {
154
38
  s.img = defaults.img;
155
39
  return done();
156
40
  }
157
- async function postIconGen(vctx, args) {
158
- await vctx.postQueue({
159
- payload: {
160
- type: "vibes.diy.evt-icon-gen",
161
- ownerHandle: args.ownerHandle,
162
- appSlug: args.appSlug,
163
- ...(args.force ? { force: true } : {}),
164
- },
165
- tid: "queue-event",
166
- src: "ensureAppSettings",
167
- dst: "vibes-service",
168
- ttl: 1,
169
- });
170
- }
171
- const ICON_REGEN_MIN_INTERVAL_MS = 10_000;
172
- function recentlyRegenerated(entries) {
173
- const icon = entries.find(isActiveIcon);
174
- if (!icon)
175
- return false;
176
- const head = icon.versions.find((v) => v.cid === icon.currentCid);
177
- if (!head)
178
- return false;
179
- const headCreated = Date.parse(head.created);
180
- if (Number.isNaN(headCreated))
181
- return false;
182
- return Date.now() - headCreated < ICON_REGEN_MIN_INTERVAL_MS;
183
- }
184
- export function adminUserIdSet(vctx) {
185
- const raw = vctx.sthis.env.get("VIBES_ADMIN_USER_IDS");
186
- if (!raw)
187
- return new Set();
188
- return new Set(raw
189
- .split(",")
190
- .map((s) => s.trim())
191
- .filter((s) => s.length > 0));
192
- }
193
- async function applyCachedSuggestionBless(vctx, req, res, settings, approverUserId, ownerUserId, now) {
194
- if (!isReqEnsureAppSettingsCachedSuggestionBless(req)) {
195
- return [res.settings, "expected a cached-suggestion bless request"];
196
- }
197
- const b = req.cachedSuggestionBless;
198
- const isVibeLink = typeof b.targetAppSlug === "string" && b.targetAppSlug.length > 0;
199
- const hasTargetOwner = typeof b.targetOwnerHandle === "string" && b.targetOwnerHandle.length > 0;
200
- const hasTargetSlug = typeof b.targetAppSlug === "string" && b.targetAppSlug.length > 0;
201
- const hasStay = (b.fsId?.length ?? 0) > 0 || (b.sourceFsId?.length ?? 0) > 0;
202
- if (hasTargetOwner !== hasTargetSlug) {
203
- return [res.settings, "a cross-slug bless requires both targetOwnerHandle and targetAppSlug"];
204
- }
205
- if (isVibeLink && hasStay) {
206
- return [res.settings, "a bless is either a stay (fsId+sourceFsId) or a cross-slug link (target*), not both"];
207
- }
208
- if (isVibeLink && b.op === "bless" && b.targetOwnerHandle !== req.ownerHandle) {
209
- ensureLogger(vctx.sthis, "ensureAppSettings")
210
- .Info()
211
- .Str("reason", "crossOwnerCuratedLink")
212
- .Str("sourceOwnerHandle", req.ownerHandle)
213
- .Str("sourceAppSlug", req.appSlug)
214
- .Str("targetOwnerHandle", b.targetOwnerHandle ?? "")
215
- .Str("targetAppSlug", b.targetAppSlug ?? "")
216
- .Str("approvedBy", approverUserId)
217
- .Msg("cross-owner curated cross-slug link blessed");
218
- }
219
- if (approverUserId !== ownerUserId) {
220
- ensureLogger(vctx.sthis, "ensureAppSettings")
221
- .Info()
222
- .Str("reason", "adminOnBehalfBless")
223
- .Str("op", b.op)
224
- .Str("approvedBy", approverUserId)
225
- .Str("ownerHandle", req.ownerHandle)
226
- .Str("appSlug", req.appSlug)
227
- .Str("key", b.key)
228
- .Str("fsId", b.fsId ?? (isVibeLink ? `vibe:${b.targetOwnerHandle}/${b.targetAppSlug}` : ""))
229
- .Msg("admin on-behalf cached-suggestion bless/revoke (allowlisted)");
230
- }
231
- if (isVibeLink) {
232
- if (b.op === "revoke") {
233
- return await sqlRemove(vctx, res, settings, (e) => isActiveCachedSuggestionBless(e) &&
234
- e.key === b.key &&
235
- e.targetOwnerHandle === b.targetOwnerHandle &&
236
- e.targetAppSlug === b.targetAppSlug);
237
- }
238
- return await sqlUpsert(vctx, res, settings, (e) => isActiveCachedSuggestionBless(e) && e.key === b.key, () => ({
239
- type: "active.cached-suggestion-bless",
240
- key: b.key,
241
- targetOwnerHandle: b.targetOwnerHandle,
242
- targetAppSlug: b.targetAppSlug,
243
- approvedBy: approverUserId,
244
- approvedAt: now,
245
- }));
246
- }
247
- if (!b.fsId || !b.sourceFsId) {
248
- return [res.settings, "a stay bless requires fsId and sourceFsId (or a target vibe for a cross-slug link)"];
249
- }
250
- const blessFsId = b.fsId;
251
- const blessSourceFsId = b.sourceFsId;
252
- if (b.op === "revoke") {
253
- return await sqlRemove(vctx, res, settings, (e) => isActiveCachedSuggestionBless(e) && e.key === b.key && e.fsId === blessFsId && e.sourceFsId === blessSourceFsId);
254
- }
255
- const produced = settings.find((e) => isActiveCachedSuggestion(e) && e.key === b.key && e.fsId === blessFsId && e.sourceFsId === blessSourceFsId);
256
- if (!produced) {
257
- return [res.settings, "cannot bless a cached suggestion with no matching produced entry"];
258
- }
259
- return await sqlUpsert(vctx, res, settings, (e) => isActiveCachedSuggestionBless(e) && e.key === b.key, () => ({
260
- type: "active.cached-suggestion-bless",
261
- key: b.key,
262
- fsId: blessFsId,
263
- sourceFsId: blessSourceFsId,
264
- approvedBy: approverUserId,
265
- approvedAt: now,
266
- }));
267
- }
268
41
  export async function ensureAppSettings(vctx, req, userId) {
269
42
  const rPrev = await exception2Result(() => vctx.sql.db
270
43
  .select()
@@ -511,110 +284,6 @@ export async function ensureAppSettings(vctx, req, userId) {
511
284
  }
512
285
  return Result.Ok(await withModelDefaults(vctx, res));
513
286
  }
514
- const OTHER_OP_FIELDS = [
515
- "publicAccess",
516
- "request",
517
- "title",
518
- "skills",
519
- "theme",
520
- "colorTheme",
521
- "iconDescription",
522
- "iconRegen",
523
- "runtime",
524
- "codegen",
525
- "img",
526
- "env",
527
- "dbAcl",
528
- "dbAclRemove",
529
- "cachedSuggestion",
530
- "cachedSuggestionBless",
531
- ];
532
- async function applySecretOp(vctx, req, res, settings, setBy) {
533
- if (OTHER_OP_FIELDS.some((f) => f in req)) {
534
- return [buildEnsureEntryResult(settings), "secret-op-not-exclusive"];
535
- }
536
- if (isReqEnsureAppSettingsSecretRemove(req)) {
537
- const key = req.secretRemove.key;
538
- return await sqlRemove(vctx, res, settings, (e) => isActiveSecret(e) && e.key === key);
539
- }
540
- const { key, value } = req.secretSet;
541
- if (!SECRET_KEY_RE.test(key)) {
542
- return [
543
- buildEnsureEntryResult(settings),
544
- `secret key must match [A-Za-z_][A-Za-z0-9_]* (max 64 chars), got ${JSON.stringify(key)}`,
545
- ];
546
- }
547
- if (value.length > SECRET_VALUE_MAX) {
548
- return [buildEnsureEntryResult(settings), `secret value exceeds ${SECRET_VALUE_MAX} bytes`];
549
- }
550
- const existingKeys = new Set(settings.filter((e) => isActiveSecret(e)).map((e) => e.key));
551
- if (!existingKeys.has(key) && existingKeys.size >= SECRET_COUNT_MAX) {
552
- return [buildEnsureEntryResult(settings), `secret cap reached (${SECRET_COUNT_MAX} per vibe)`];
553
- }
554
- return await sqlUpsert(vctx, res, settings, (e) => isActiveSecret(e) && e.key === key, () => ({ type: "active.secret", key, value, updatedAt: Date.now(), setBy }));
555
- }
556
- function upsert(settings, match, fn) {
557
- const prev = settings.findLast(match);
558
- for (let i = settings.length - 1; i >= 0; i--) {
559
- if (match(settings[i]))
560
- settings.splice(i, 1);
561
- }
562
- settings.push(fn(prev ?? {}));
563
- return buildEnsureEntryResult(settings);
564
- }
565
- async function sqlUpsert(vctx, res, settings, match, fn) {
566
- const entry = upsert(settings, match, fn);
567
- const ret = await sqlUpdateSettings(vctx, res, entry.entries);
568
- if (ret.isErr()) {
569
- return [entry, ret.Err().message];
570
- }
571
- return [entry];
572
- }
573
- async function sqlRemove(vctx, res, settings, match) {
574
- for (let i = settings.length - 1; i >= 0; i--) {
575
- if (match(settings[i]))
576
- settings.splice(i, 1);
577
- }
578
- const entry = buildEnsureEntryResult(settings);
579
- const ret = await sqlUpdateSettings(vctx, res, entry.entries);
580
- if (ret.isErr()) {
581
- return [entry, ret.Err().message];
582
- }
583
- return [entry];
584
- }
585
- async function sqlUpdateSettings(vctx, res, settings) {
586
- const now = new Date().toISOString();
587
- const rIns = await exception2Result(() => vctx.sql.db
588
- .insert(vctx.sql.tables.appSettings)
589
- .values({
590
- userId: res.userId,
591
- appSlug: res.appSlug,
592
- ownerHandle: res.ownerHandle,
593
- settings,
594
- updated: now,
595
- created: res.created,
596
- })
597
- .onConflictDoUpdate({
598
- target: [vctx.sql.tables.appSettings.userId, vctx.sql.tables.appSettings.ownerHandle, vctx.sql.tables.appSettings.appSlug],
599
- set: {
600
- settings: res.settings.entries,
601
- updated: now,
602
- },
603
- }));
604
- await vctx.postQueue({
605
- payload: {
606
- type: "vibes.diy.evt-app-setting",
607
- ownerHandle: res.ownerHandle,
608
- appSlug: res.appSlug,
609
- settings,
610
- },
611
- tid: "queue-event",
612
- src: "ensureAppSettings",
613
- dst: "vibes-service",
614
- ttl: 1,
615
- });
616
- return rIns;
617
- }
618
287
  export const ensureAppSettingsEvento = {
619
288
  hash: "ensure-app-settings",
620
289
  validate: unwrapMsgBase(async (msg) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-app-settings.js","sourceRoot":"","sources":["../../jsr/public/ensure-app-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-app-settings.js","sourceRoot":"","sources":["../../jsr/public/ensure-app-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Result, HandleTriggerCtx } from "@adviser/cement";
2
+ import { Scope } from "@adviser/scopey";
3
+ import { MsgBase, ReqPromptChatSection, ReqPromptFSChatSection, ReqWithVerifiedAuth, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
4
+ import { VibesApiSQLCtx } from "../types.js";
5
+ import { type ResChat } from "./llm-dispatch.js";
6
+ import { type PromptTerminalSignal } from "./stream-assembly.js";
7
+ export declare function handleFSPrompt({ scope, vctx, resChat, req, ctx, promptId, terminal, }: {
8
+ scope: Scope;
9
+ vctx: VibesApiSQLCtx;
10
+ req: ReqWithVerifiedAuth<ReqPromptFSChatSection>;
11
+ ctx: HandleTriggerCtx<W3CWebSocketEvent, MsgBase<ReqWithVerifiedAuth<ReqPromptChatSection>>, never | VibesDiyError>;
12
+ resChat: ResChat;
13
+ promptId: string;
14
+ blockSeq: number;
15
+ terminal: PromptTerminalSignal;
16
+ }): Promise<Result<number>>;
@@ -0,0 +1,173 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { isReqPromptFSSetChatSection, isReqPromptFSUpdateChatSection, parseArray, fileSystemItem, isVibeCodeBlock, } from "@vibes.diy/api-types";
3
+ import { and, desc, eq } from "drizzle-orm/sql/expressions";
4
+ import { isBlockEnd } from "@vibes.diy/call-ai-v2";
5
+ import { resolveVfsFromFileSystem } from "../intern/version-timeline.js";
6
+ import { langForFilename } from "../intern/ensure-push-seeded-chat.js";
7
+ import { appendBlockEvent } from "./llm-dispatch.js";
8
+ import { handleEndMsg } from "./stream-assembly.js";
9
+ export async function handleFSPrompt({ scope, vctx, resChat, req, ctx, promptId, terminal, }) {
10
+ let fileSystem;
11
+ if (isReqPromptFSSetChatSection(req)) {
12
+ fileSystem = req.fsSet;
13
+ }
14
+ else if (isReqPromptFSUpdateChatSection(req)) {
15
+ let baseItems;
16
+ if (req.refFsId) {
17
+ const refApp = await vctx.sql.db
18
+ .select({ fileSystem: vctx.sql.tables.apps.fileSystem })
19
+ .from(vctx.sql.tables.apps)
20
+ .where(and(eq(vctx.sql.tables.apps.fsId, req.refFsId), eq(vctx.sql.tables.apps.ownerHandle, resChat.ownerHandle), eq(vctx.sql.tables.apps.appSlug, resChat.appSlug)))
21
+ .orderBy(desc(vctx.sql.tables.apps.releaseSeq))
22
+ .limit(1)
23
+ .then((r) => r[0]);
24
+ if (!refApp) {
25
+ throw new Error(`fs-update refFsId ${req.refFsId} is not a release of ${resChat.ownerHandle}/${resChat.appSlug}`);
26
+ }
27
+ baseItems = refApp.fileSystem;
28
+ }
29
+ else {
30
+ const lastestPrompt = await vctx.sql.db
31
+ .select()
32
+ .from(vctx.sql.tables.promptContexts)
33
+ .innerJoin(vctx.sql.tables.apps, eq(vctx.sql.tables.apps.fsId, vctx.sql.tables.promptContexts.fsId))
34
+ .where(eq(vctx.sql.tables.promptContexts.chatId, req.chatId))
35
+ .orderBy(desc(vctx.sql.tables.promptContexts.created))
36
+ .limit(1)
37
+ .then((r) => r[0]);
38
+ baseItems = lastestPrompt?.Apps.fileSystem;
39
+ }
40
+ const refFS = [];
41
+ if (baseItems !== undefined) {
42
+ const vfs = await resolveVfsFromFileSystem(vctx, parseArray(baseItems, fileSystemItem));
43
+ for (const [filename, content] of vfs) {
44
+ if (filename.startsWith("/~~calculated~~/"))
45
+ continue;
46
+ refFS.push({ type: "code-block", filename, lang: langForFilename(filename), content });
47
+ }
48
+ }
49
+ const mapFS = refFS.reduce((acc, file) => {
50
+ acc.set(file.filename, file);
51
+ return acc;
52
+ }, new Map());
53
+ req.fsUpdate.update.forEach((update) => {
54
+ mapFS.set(update.filename, update);
55
+ });
56
+ req.fsUpdate.remove?.forEach((item) => {
57
+ mapFS.delete(item.filename);
58
+ });
59
+ fileSystem = Array.from(mapFS.values());
60
+ }
61
+ const rEndMsg = await scope
62
+ .evalResult(async () => {
63
+ const sectionId = vctx.sthis.nextId(12).str;
64
+ let blockNr = 0;
65
+ const blockId = vctx.sthis.nextId(12).str;
66
+ let blockSeq = 0;
67
+ let bytes = 0;
68
+ const collectedMsgs = [
69
+ {
70
+ type: "block.begin",
71
+ blockId,
72
+ streamId: promptId,
73
+ seq: blockSeq++,
74
+ blockNr: blockNr++,
75
+ timestamp: new Date(),
76
+ },
77
+ ...fileSystem.flatMap((file) => {
78
+ if (!isVibeCodeBlock(file)) {
79
+ return [];
80
+ }
81
+ return [
82
+ {
83
+ type: "block.code.begin",
84
+ sectionId,
85
+ lang: file.lang,
86
+ blockId: blockId,
87
+ streamId: promptId,
88
+ seq: blockSeq++,
89
+ blockNr,
90
+ timestamp: new Date(),
91
+ },
92
+ ...file.content.split("\n").map((line, lineNr) => {
93
+ bytes += line.length + 1;
94
+ return {
95
+ type: "block.code.line",
96
+ sectionId,
97
+ blockId,
98
+ line,
99
+ streamId: promptId,
100
+ seq: blockSeq++,
101
+ timestamp: new Date(),
102
+ lang: file.lang,
103
+ blockNr,
104
+ lineNr,
105
+ };
106
+ }),
107
+ {
108
+ type: "block.code.end",
109
+ sectionId,
110
+ blockId,
111
+ streamId: promptId,
112
+ seq: blockSeq++,
113
+ timestamp: new Date(),
114
+ lang: file.lang,
115
+ blockNr,
116
+ stats: { lines: file.content.split("\n").length, bytes },
117
+ },
118
+ ];
119
+ }),
120
+ ];
121
+ const value = {
122
+ type: "block.end",
123
+ stats: {
124
+ toplevel: { lines: 0, bytes: 0 },
125
+ code: { lines: blockSeq, bytes },
126
+ image: { lines: 0, bytes: 0 },
127
+ total: { lines: blockSeq, bytes },
128
+ },
129
+ usage: {
130
+ given: [],
131
+ calculated: {
132
+ prompt_tokens: 0,
133
+ completion_tokens: 0,
134
+ total_tokens: 0,
135
+ },
136
+ },
137
+ blockId: blockId,
138
+ streamId: promptId,
139
+ seq: blockSeq++,
140
+ blockNr: blockNr,
141
+ timestamp: new Date(),
142
+ };
143
+ collectedMsgs.push(value);
144
+ for (const msg of collectedMsgs) {
145
+ if (!isBlockEnd(msg)) {
146
+ await appendBlockEvent({
147
+ ctx,
148
+ vctx,
149
+ req,
150
+ promptId,
151
+ blockSeq: blockSeq++,
152
+ evt: msg,
153
+ emitMode: "emit-only",
154
+ });
155
+ }
156
+ }
157
+ return handleEndMsg({
158
+ collectedMsgs,
159
+ vctx,
160
+ req,
161
+ ctx,
162
+ resChat,
163
+ promptId,
164
+ value,
165
+ blockSeq,
166
+ fileSystem,
167
+ terminal,
168
+ });
169
+ })
170
+ .do();
171
+ return Result.Ok(rEndMsg);
172
+ }
173
+ //# sourceMappingURL=fs-prompt.js.map