@vibes.diy/api-svc 14.3.65 → 14.3.66

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 (155) hide show
  1. package/cf-serve.js +1 -0
  2. package/cf-serve.js.map +1 -1
  3. package/check-auth.js +6 -1
  4. package/check-auth.js.map +1 -1
  5. package/create-handler.d.ts +2 -1
  6. package/create-handler.js +28 -17
  7. package/create-handler.js.map +1 -1
  8. package/evento-handler-manifest.js +2 -3
  9. package/evento-handler-manifest.js.map +1 -1
  10. package/guest-principal-token.d.ts +17 -0
  11. package/guest-principal-token.js +52 -0
  12. package/guest-principal-token.js.map +1 -0
  13. package/intern/agent-assembly.d.ts +7 -1
  14. package/intern/agent-assembly.js +14 -9
  15. package/intern/agent-assembly.js.map +1 -1
  16. package/intern/agent-belt.js +28 -0
  17. package/intern/agent-belt.js.map +1 -1
  18. package/intern/agent-build-tools.d.ts +3 -0
  19. package/intern/agent-build-tools.js.map +1 -1
  20. package/intern/agent-session.d.ts +1 -0
  21. package/intern/agent-session.js +6 -2
  22. package/intern/agent-session.js.map +1 -1
  23. package/intern/automatic-draft-attachment.js +1 -8
  24. package/intern/automatic-draft-attachment.js.map +1 -1
  25. package/intern/client-message-dedupe.d.ts +27 -0
  26. package/intern/client-message-dedupe.js +89 -0
  27. package/intern/client-message-dedupe.js.map +1 -0
  28. package/intern/draft-runtime-store.d.ts +0 -2
  29. package/intern/draft-runtime-store.js +0 -15
  30. package/intern/draft-runtime-store.js.map +1 -1
  31. package/intern/guest-credit-meter.d.ts +13 -0
  32. package/intern/guest-credit-meter.js +82 -0
  33. package/intern/guest-credit-meter.js.map +1 -0
  34. package/intern/guest-mask.d.ts +8 -0
  35. package/intern/guest-mask.js +18 -0
  36. package/intern/guest-mask.js.map +1 -0
  37. package/intern/guest-principal-claim.d.ts +24 -0
  38. package/intern/guest-principal-claim.js +208 -0
  39. package/intern/guest-principal-claim.js.map +1 -0
  40. package/intern/guest-principal-store.d.ts +31 -0
  41. package/intern/guest-principal-store.js +159 -0
  42. package/intern/guest-principal-store.js.map +1 -0
  43. package/intern/inflate-file-attachments.d.ts +4 -1
  44. package/intern/inflate-file-attachments.js +86 -13
  45. package/intern/inflate-file-attachments.js.map +1 -1
  46. package/intern/llm-tool-loop.d.ts +1 -0
  47. package/intern/llm-tool-loop.js +16 -6
  48. package/intern/llm-tool-loop.js.map +1 -1
  49. package/intern/load-selected-backend.js +3 -0
  50. package/intern/load-selected-backend.js.map +1 -1
  51. package/intern/mint-job-store.d.ts +4 -0
  52. package/intern/mint-job-store.js +19 -0
  53. package/intern/mint-job-store.js.map +1 -1
  54. package/intern/open-turn-store.d.ts +17 -0
  55. package/intern/open-turn-store.js +8 -8
  56. package/intern/open-turn-store.js.map +1 -1
  57. package/intern/webp-rendition.d.ts +14 -0
  58. package/intern/webp-rendition.js +46 -0
  59. package/intern/webp-rendition.js.map +1 -0
  60. package/package.json +13 -13
  61. package/public/agent-turn-action.js +22 -3
  62. package/public/agent-turn-action.js.map +1 -1
  63. package/public/agent-turn-assembly.js +1 -0
  64. package/public/agent-turn-assembly.js.map +1 -1
  65. package/public/app-settings-snapshot.js +13 -2
  66. package/public/app-settings-snapshot.js.map +1 -1
  67. package/public/append-block-event.d.ts +3 -3
  68. package/public/append-block-event.js +5 -2
  69. package/public/append-block-event.js.map +1 -1
  70. package/public/attach-draft-handle.js +0 -4
  71. package/public/attach-draft-handle.js.map +1 -1
  72. package/public/claim-guest-principal.d.ts +3 -0
  73. package/public/claim-guest-principal.js +40 -0
  74. package/public/claim-guest-principal.js.map +1 -0
  75. package/public/codegen-turn-route.js +15 -2
  76. package/public/codegen-turn-route.js.map +1 -1
  77. package/public/developer-grants-flow.js +3 -0
  78. package/public/developer-grants-flow.js.map +1 -1
  79. package/public/dm-read-eventos.d.ts +5 -5
  80. package/public/dm-sync-eventos.d.ts +1 -1
  81. package/public/dm-write-eventos.d.ts +3 -3
  82. package/public/draft-runtime.d.ts +2 -2
  83. package/public/draft-runtime.js +8 -19
  84. package/public/draft-runtime.js.map +1 -1
  85. package/public/ensure-app-slug-item.js +4 -0
  86. package/public/ensure-app-slug-item.js.map +1 -1
  87. package/public/get-app-by-fsid.js +4 -5
  88. package/public/get-app-by-fsid.js.map +1 -1
  89. package/public/get-chat-details.js +4 -11
  90. package/public/get-chat-details.js.map +1 -1
  91. package/public/get-chat-response.js +3 -9
  92. package/public/get-chat-response.js.map +1 -1
  93. package/public/handle-prompt-context.d.ts +2 -2
  94. package/public/handle-prompt-context.js +5 -14
  95. package/public/handle-prompt-context.js.map +1 -1
  96. package/public/handler-llm-request.js +17 -11
  97. package/public/handler-llm-request.js.map +1 -1
  98. package/public/invite-flow.js +3 -0
  99. package/public/invite-flow.js.map +1 -1
  100. package/public/open-chat.d.ts +11 -4
  101. package/public/open-chat.js +13 -13
  102. package/public/open-chat.js.map +1 -1
  103. package/public/prompt-chat-section.d.ts +1 -2
  104. package/public/prompt-chat-section.js +252 -232
  105. package/public/prompt-chat-section.js.map +1 -1
  106. package/public/publish-app.js +6 -0
  107. package/public/publish-app.js.map +1 -1
  108. package/public/request-flow.js +3 -0
  109. package/public/request-flow.js.map +1 -1
  110. package/public/set-mode-fsid.js +4 -0
  111. package/public/set-mode-fsid.js.map +1 -1
  112. package/public/set-version-lock.js +3 -0
  113. package/public/set-version-lock.js.map +1 -1
  114. package/public/social-invite-flow.js +4 -1
  115. package/public/social-invite-flow.js.map +1 -1
  116. package/public/stream-assembly.d.ts +5 -5
  117. package/public/stream-assembly.js +1 -4
  118. package/public/stream-assembly.js.map +1 -1
  119. package/shard-gate.js +11 -1
  120. package/shard-gate.js.map +1 -1
  121. package/types.d.ts +4 -3
  122. package/types.js.map +1 -1
  123. package/usage-report/draft-output-alert.js +3 -4
  124. package/usage-report/draft-output-alert.js.map +1 -1
  125. package/usage-report/gold-drip-sweep-util.js +2 -1
  126. package/usage-report/gold-drip-sweep-util.js.map +1 -1
  127. package/usage-report/new-user-alert-util.js +1 -1
  128. package/usage-report/new-user-alert-util.js.map +1 -1
  129. package/check-build-auth.d.ts +0 -18
  130. package/check-build-auth.js +0 -73
  131. package/check-build-auth.js.map +0 -1
  132. package/guest-build-token.d.ts +0 -16
  133. package/guest-build-token.js +0 -44
  134. package/guest-build-token.js.map +0 -1
  135. package/intern/draft-continuation.d.ts +0 -6
  136. package/intern/draft-continuation.js +0 -86
  137. package/intern/draft-continuation.js.map +0 -1
  138. package/intern/guest-build-issuance.d.ts +0 -9
  139. package/intern/guest-build-issuance.js +0 -83
  140. package/intern/guest-build-issuance.js.map +0 -1
  141. package/intern/guest-build-start.d.ts +0 -8
  142. package/intern/guest-build-start.js +0 -66
  143. package/intern/guest-build-start.js.map +0 -1
  144. package/intern/guest-build-store.d.ts +0 -50
  145. package/intern/guest-build-store.js +0 -232
  146. package/intern/guest-build-store.js.map +0 -1
  147. package/intern/guest-build-usage.d.ts +0 -7
  148. package/intern/guest-build-usage.js +0 -18
  149. package/intern/guest-build-usage.js.map +0 -1
  150. package/public/guest-build-generation.d.ts +0 -8
  151. package/public/guest-build-generation.js +0 -221
  152. package/public/guest-build-generation.js.map +0 -1
  153. package/public/guest-build.d.ts +0 -7
  154. package/public/guest-build.js +0 -127
  155. package/public/guest-build.js.map +0 -1
@@ -1,232 +0,0 @@
1
- import { exception2Result, Result } from "@adviser/cement";
2
- import { type } from "arktype";
3
- import { and, eq, gt, isNull, inArray, sql } from "drizzle-orm";
4
- import { DRAFT_OWNER_HANDLE } from "@vibes.diy/api-types";
5
- import { readAgentSession, AGENT_SESSION_RECORD_ID } from "./agent-session-store.js";
6
- import { hasPendingWork } from "./agent-session.js";
7
- import { openTurn, getOpenTurn } from "./open-turn-store.js";
8
- import { sweepLostTurns } from "./open-turn-sweep.js";
9
- import { blocksCarryTurnTerminal, lastPersistedBlock } from "./persisted-block-seq.js";
10
- import { liveTurnsOwnedBy } from "./in-flight-turns.js";
11
- const guestBuildRow = type({
12
- chatId: "string",
13
- guestUserId: "string",
14
- jti: "string",
15
- shardId: "string",
16
- expiresAt: "string",
17
- status: "'issued' | 'running' | 'settled' | 'interrupted' | 'claimed'",
18
- firstPromptId: "string | null",
19
- claimedUserId: "string | null",
20
- revision: "number",
21
- plane: "string",
22
- issuanceRequestId: "string",
23
- originalPrompt: "string",
24
- created: "string",
25
- updated: "string",
26
- });
27
- export function guestBuildIdentity(chatId) {
28
- return { guestUserId: `guest:${chatId}`, shardId: `guest-${chatId}` };
29
- }
30
- export async function readGuestBuild(vctx, chatId) {
31
- const t = vctx.sql.tables.guestBuilds;
32
- const read = await exception2Result(() => vctx.sql.db.select().from(t).where(eq(t.chatId, chatId)).limit(1));
33
- if (read.isErr())
34
- return Result.Err(read.Err());
35
- const row = read.Ok()[0];
36
- if (row === undefined)
37
- return Result.Ok(undefined);
38
- const parsed = guestBuildRow({ ...row, ...guestBuildIdentity(row.chatId) });
39
- return parsed instanceof type.errors ? Result.Err(parsed.summary) : Result.Ok(parsed);
40
- }
41
- export async function createGuestBuild(vctx, input) {
42
- const created = input.created ?? new Date().toISOString();
43
- const { guestUserId, shardId, ...stored } = input;
44
- const identity = guestBuildIdentity(input.chatId);
45
- if (guestUserId !== identity.guestUserId || shardId !== identity.shardId)
46
- return Result.Err("guest-build-identity-mismatch");
47
- return exception2Result(() => vctx.sql.db.transaction(async (db) => {
48
- const inserted = await db
49
- .insert(vctx.sql.tables.guestBuilds)
50
- .values({ ...stored, created, updated: created, status: "issued", revision: 0 })
51
- .onConflictDoNothing()
52
- .returning({ chatId: vctx.sql.tables.guestBuilds.chatId });
53
- if (inserted.length === 0)
54
- return false;
55
- await db.insert(vctx.sql.tables.chatContexts).values({
56
- chatId: input.chatId,
57
- userId: input.guestUserId,
58
- ownerHandle: DRAFT_OWNER_HANDLE,
59
- appSlug: `draft-${input.chatId}`,
60
- draftState: "unowned",
61
- created,
62
- });
63
- return true;
64
- }));
65
- }
66
- export async function admitGuestBuild(vctx, input) {
67
- if (input.guestUserId !== guestBuildIdentity(input.chatId).guestUserId)
68
- return Result.Ok(false);
69
- const t = vctx.sql.tables.guestBuilds;
70
- const now = new Date().toISOString();
71
- return exception2Result(() => vctx.sql.db.transaction(async (db) => {
72
- const saved = await db
73
- .update(t)
74
- .set({ status: "running", firstPromptId: input.promptId, revision: sql `${t.revision} + 1`, updated: now })
75
- .where(and(eq(t.chatId, input.chatId), eq(t.jti, input.jti), eq(t.status, "issued"), isNull(t.claimedUserId), gt(t.expiresAt, now)))
76
- .returning({ chatId: t.chatId });
77
- if (saved.length === 0)
78
- return false;
79
- const opened = await openTurn({ ...vctx.sql, db }, {
80
- chatId: input.chatId,
81
- promptId: input.promptId,
82
- userId: input.guestUserId,
83
- ownerHandle: DRAFT_OWNER_HANDLE,
84
- appSlug: `draft-${input.chatId}`,
85
- kind: "first-build",
86
- ...(vctx.doInstance === undefined ? {} : { objectId: vctx.doInstance.objectId, instanceId: vctx.doInstance.instanceId }),
87
- ...(vctx.doInstance?.codegenLane === undefined ? {} : { codegenLane: vctx.doInstance.codegenLane }),
88
- });
89
- if (opened.isErr())
90
- db.rollback();
91
- return true;
92
- }));
93
- }
94
- async function isQuiescent(vctx, chatId) {
95
- const t = vctx.sql.tables.openTurns;
96
- const open = await exception2Result(() => vctx.sql.db
97
- .select({ promptId: t.promptId })
98
- .from(t)
99
- .where(and(eq(t.chatId, chatId), eq(t.status, "open")))
100
- .limit(1));
101
- if (open.isErr())
102
- return Result.Err(open.Err());
103
- if (open.Ok().length > 0)
104
- return Result.Ok(false);
105
- const journal = await readAgentSession(vctx.sql, chatId);
106
- if (journal.isErr())
107
- return Result.Err(journal.Err());
108
- return Result.Ok(hasPendingWork(journal.Ok().snapshot) === false && journal.Ok().snapshot?.status !== "running");
109
- }
110
- export async function settleGuestBuild(vctx, input) {
111
- const quiet = await isQuiescent(vctx, input.chatId);
112
- if (quiet.isErr())
113
- return Result.Err(quiet.Err());
114
- if (quiet.Ok() === false)
115
- return Result.Ok(false);
116
- const t = vctx.sql.tables.guestBuilds;
117
- const saved = await exception2Result(() => vctx.sql.db
118
- .update(t)
119
- .set({ status: "settled", revision: sql `${t.revision} + 1`, updated: new Date().toISOString() })
120
- .where(and(eq(t.chatId, input.chatId), eq(t.firstPromptId, input.promptId), inArray(t.status, ["running", "interrupted"]), isNull(t.claimedUserId)))
121
- .returning({ chatId: t.chatId }));
122
- return saved.isErr() ? Result.Err(saved.Err()) : Result.Ok(saved.Ok().length === 1);
123
- }
124
- export async function recoverGuestBuild(vctx, row) {
125
- if (row.status !== "running" || row.firstPromptId === null)
126
- return Result.Ok(row);
127
- const swept = await sweepLostTurns(vctx.sql, {
128
- chatId: row.chatId,
129
- nowMs: Date.now(),
130
- ...(vctx.doInstance === undefined
131
- ? {}
132
- : {
133
- ownerGone: {
134
- objectId: vctx.doInstance.objectId,
135
- instanceId: vctx.doInstance.instanceId,
136
- bornAtMs: vctx.doInstance.constructedAtMs,
137
- livePromptIds: liveTurnsOwnedBy(row.chatId, vctx.doInstance.instanceId),
138
- },
139
- }),
140
- });
141
- if (swept.isErr())
142
- return Result.Err(swept.Err());
143
- if (swept.Ok().failures.length > 0)
144
- return Result.Err(swept.Ok().failures[0].reason);
145
- const turn = await getOpenTurn(vctx.sql, { chatId: row.chatId, promptId: row.firstPromptId });
146
- if (turn.isErr())
147
- return Result.Err(turn.Err());
148
- if (turn.Ok() === undefined || turn.Ok()?.status === "open")
149
- return Result.Ok(row);
150
- const last = await lastPersistedBlock(vctx.sql, { chatId: row.chatId, promptId: row.firstPromptId });
151
- if (last.isErr())
152
- return Result.Err(last.Err());
153
- if (blocksCarryTurnTerminal(last.Ok()?.blocks) === false)
154
- return Result.Ok(row);
155
- const changed = await exception2Result(() => vctx.sql.db
156
- .update(vctx.sql.tables.guestBuilds)
157
- .set({ status: "interrupted", revision: sql `${vctx.sql.tables.guestBuilds.revision} + 1`, updated: new Date().toISOString() })
158
- .where(and(eq(vctx.sql.tables.guestBuilds.chatId, row.chatId), eq(vctx.sql.tables.guestBuilds.status, "running"))));
159
- if (changed.isErr())
160
- return Result.Err(changed.Err());
161
- const loaded = await readGuestBuild(vctx, row.chatId);
162
- if (loaded.isErr())
163
- return Result.Err(loaded.Err());
164
- const recovered = loaded.Ok();
165
- return recovered === undefined ? Result.Err("guest-build-unavailable") : Result.Ok(recovered);
166
- }
167
- export async function transferGuestBuild(vctx, input) {
168
- const transferred = await exception2Result(() => vctx.sql.db.transaction(async (db) => {
169
- const tx = { ...vctx, sql: { ...vctx.sql, db } };
170
- const t = vctx.sql.tables.guestBuilds;
171
- const loaded = await readGuestBuild(tx, input.chatId);
172
- if (loaded.isErr())
173
- return Result.Err(loaded.Err());
174
- const row = loaded.Ok();
175
- if (row === undefined || row.guestUserId !== input.guestUserId || row.jti !== input.jti)
176
- return Result.Err("guest-build-unavailable");
177
- const chats = vctx.sql.tables.chatContexts;
178
- const chat = await db
179
- .select({ userId: chats.userId, ownerHandle: chats.ownerHandle })
180
- .from(chats)
181
- .where(eq(chats.chatId, input.chatId))
182
- .limit(1);
183
- if (chat.length !== 1 || chat[0].userId !== (row.claimedUserId ?? row.guestUserId))
184
- return Result.Err("guest-build-ownership-unavailable");
185
- if (row.claimedUserId !== null)
186
- return row.claimedUserId === input.userId ? Result.Ok(row) : Result.Err("guest-build-already-claimed");
187
- if (chat[0].ownerHandle !== DRAFT_OWNER_HANDLE)
188
- return Result.Err("guest-build-address-already-attached");
189
- if (row.expiresAt <= new Date().toISOString())
190
- return Result.Err("guest-build-expired");
191
- if (row.status !== "settled")
192
- return Result.Err("guest-build-pending");
193
- const quiet = await isQuiescent(tx, input.chatId);
194
- if (quiet.isErr())
195
- return Result.Err(quiet.Err());
196
- if (quiet.Ok() === false)
197
- return Result.Err("guest-build-pending");
198
- const journal = await readAgentSession(tx.sql, input.chatId);
199
- if (journal.isErr())
200
- return Result.Err(journal.Err());
201
- const changed = await db
202
- .update(t)
203
- .set({ claimedUserId: input.userId, status: "claimed", revision: row.revision + 1, updated: new Date().toISOString() })
204
- .where(and(eq(t.chatId, row.chatId), eq(t.revision, row.revision), eq(t.status, "settled"), isNull(t.claimedUserId)))
205
- .returning({ chatId: t.chatId });
206
- if (changed.length === 0)
207
- return Result.Err("guest-build-claim-retry");
208
- const movedChat = await db
209
- .update(chats)
210
- .set({ userId: input.userId })
211
- .where(and(eq(chats.chatId, input.chatId), eq(chats.userId, input.guestUserId)))
212
- .returning({ chatId: chats.chatId });
213
- if (movedChat.length !== 1)
214
- db.rollback();
215
- for (const table of [vctx.sql.tables.promptContexts, vctx.sql.tables.mintJobs, vctx.sql.tables.openTurns]) {
216
- await db
217
- .update(table)
218
- .set({ userId: input.userId })
219
- .where(and(eq(table.chatId, input.chatId), eq(table.userId, input.guestUserId)));
220
- }
221
- if (journal.Ok().snapshot !== undefined) {
222
- const turns = vctx.sql.tables.openTurns;
223
- await db
224
- .update(turns)
225
- .set({ agentSessionRevision: journal.Ok().revision + 1 })
226
- .where(and(eq(turns.chatId, input.chatId), eq(turns.promptId, AGENT_SESSION_RECORD_ID)));
227
- }
228
- return Result.Ok({ ...row, claimedUserId: input.userId, status: "claimed", revision: row.revision + 1 });
229
- }));
230
- return transferred;
231
- }
232
- //# sourceMappingURL=guest-build-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guest-build-store.js","sourceRoot":"","sources":["../../jsr/intern/guest-build-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Result } from "@adviser/cement";
2
- import type { VibesApiSQLCtx } from "../types.js";
3
- type PromptUsageInsert = VibesApiSQLCtx["sql"]["tables"]["promptContexts"]["$inferInsert"];
4
- export declare function persistGuestUsage(vctx: VibesApiSQLCtx, values: PromptUsageInsert & {
5
- readonly ref: Record<string, unknown>;
6
- }): Promise<Result<void>>;
7
- export {};
@@ -1,18 +0,0 @@
1
- import { exception2Result, Result } from "@adviser/cement";
2
- import { readGuestBuild } from "./guest-build-store.js";
3
- export async function persistGuestUsage(vctx, values) {
4
- return exception2Result(() => vctx.sql.db.transaction(async (db) => {
5
- const tx = { ...vctx, sql: { ...vctx.sql, db } };
6
- const loaded = await readGuestBuild(tx, values.chatId);
7
- if (loaded.isErr())
8
- return Result.Err(loaded.Err());
9
- const row = loaded.Ok();
10
- if (row === undefined || row.guestUserId !== values.userId || row.firstPromptId !== values.promptId)
11
- return Result.Err("guest-usage-identity-mismatch");
12
- await db
13
- .insert(vctx.sql.tables.promptContexts)
14
- .values({ ...values, userId: row.claimedUserId ?? row.guestUserId, ref: { ...values.ref, platformFunded: true } });
15
- return Result.Ok(undefined);
16
- }));
17
- }
18
- //# sourceMappingURL=guest-build-usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guest-build-usage.js","sourceRoot":"","sources":["../../jsr/intern/guest-build-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAoB,EACpB,MAAqE;IAErE,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC,QAAQ;YACjG,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACrD,MAAM,EAAE;aACL,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;aACtC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACrH,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- import { Result, type HandleTriggerCtx, type EventoResultType } from "@adviser/cement";
2
- import { type MsgBase, type ReqOpenChat, type ReqPromptChatSection, type ReqWithVerifiedBuildAuth, type VibesDiyError, type W3CWebSocketEvent } from "@vibes.diy/api-types";
3
- type BuildCtx<Req extends {
4
- type: string;
5
- }> = HandleTriggerCtx<W3CWebSocketEvent, MsgBase<ReqWithVerifiedBuildAuth<Req>>, VibesDiyError>;
6
- export declare function handleGuestOpen(ctx: BuildCtx<ReqOpenChat>): Promise<Result<EventoResultType>>;
7
- export declare function handleGuestPrompt(ctx: BuildCtx<ReqPromptChatSection>): Promise<Result<EventoResultType>>;
8
- export {};
@@ -1,221 +0,0 @@
1
- import { EventoResult, Result, exception2Result } from "@adviser/cement";
2
- import { scopey } from "@adviser/scopey";
3
- import { and, eq } from "drizzle-orm";
4
- import { type } from "arktype";
5
- import { DRAFT_OWNER_HANDLE, isReqPromptLLMChatSection, } from "@vibes.diy/api-types";
6
- import { wrapMsgBase } from "../unwrap-msg-base.js";
7
- import { requireLiveGuestBuild } from "./guest-build.js";
8
- import { admitGuestBuild, settleGuestBuild } from "../intern/guest-build-store.js";
9
- import { resendChatSectionsPrevMsg } from "../intern/resend-prev-msg.js";
10
- import { assemblePromptPayload } from "../intern/prompt-assembly.js";
11
- import { getModelDefaults } from "../intern/get-model-defaults.js";
12
- import { subagentModelFor } from "../intern/subagent-model.js";
13
- import { appendBlockEvent } from "./llm-dispatch.js";
14
- import { handleLlmResponse } from "./stream-assembly.js";
15
- import { closeTurn } from "../intern/open-turn-store.js";
16
- import { maxPersistedBlockSeq } from "../intern/persisted-block-seq.js";
17
- import { peekInFlightTurns } from "../intern/in-flight-turns.js";
18
- import { GUEST_INITIAL_OUTPUT_TOKEN_LIMIT } from "@vibes.diy/vibe-types/runtime-ai-limits.js";
19
- const guestPromptText = type({ messages: [{ role: "'user'", content: [{ type: "'text'", text: "0 < string <= 16000" }] }] });
20
- export async function handleGuestOpen(ctx) {
21
- const req = ctx.validated.payload;
22
- if (req._auth.type !== "VerifiedGuestBuildAuth")
23
- return Result.Err("guest-build-auth-required");
24
- const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
25
- const allowed = await requireLiveGuestBuild(vctx, req._auth);
26
- if (allowed.isErr())
27
- return Result.Err(allowed.Err());
28
- const row = allowed.Ok();
29
- const t = vctx.sql.tables.chatContexts;
30
- const found = await exception2Result(() => vctx.sql.db
31
- .select({ appSlug: t.appSlug, ownerHandle: t.ownerHandle })
32
- .from(t)
33
- .where(and(eq(t.chatId, row.chatId), eq(t.userId, row.guestUserId)))
34
- .limit(1));
35
- if (found.isErr())
36
- return Result.Err(found.Err());
37
- const address = found.Ok()[0];
38
- if (address === undefined || address.ownerHandle !== DRAFT_OWNER_HANDLE)
39
- return Result.Err("guest-build-unavailable");
40
- const wsp = ctx.send.provider;
41
- const chatCtx = wsp.chatIds.get(row.chatId) ?? { chatId: row.chatId, tids: new Set() };
42
- chatCtx.tids.add(ctx.validated.tid);
43
- wsp.chatIds.set(row.chatId, chatCtx);
44
- const replay = await resendChatSectionsPrevMsg({
45
- historyLimit: req.historyLimit,
46
- vctx,
47
- chatCtx,
48
- tid: ctx.validated.tid,
49
- dst: ctx.validated.src,
50
- send: (msg) => ctx.send.send(ctx, msg),
51
- });
52
- if (replay.isErr())
53
- return Result.Err(replay.Err());
54
- const acknowledged = await ctx.send.send(ctx, wrapMsgBase(ctx.validated, {
55
- tid: ctx.validated.tid,
56
- payload: {
57
- type: "vibes.diy.res-open-chat",
58
- ...(replay.Ok() === undefined ? {} : { history: replay.Ok() }),
59
- chatId: row.chatId,
60
- ...address,
61
- mode: "codegen",
62
- draft: true,
63
- firstTurnFired: row.status !== "issued",
64
- },
65
- }));
66
- return acknowledged.isErr() ? Result.Err(acknowledged.Err()) : Result.Ok(EventoResult.Continue);
67
- }
68
- export async function handleGuestPrompt(ctx) {
69
- const original = ctx.validated.payload;
70
- if (original._auth.type !== "VerifiedGuestBuildAuth" ||
71
- original.mode !== "codegen" ||
72
- isReqPromptLLMChatSection(original) === false)
73
- return Result.Err("guest-build-mode-refused");
74
- const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
75
- if (vctx.sthis.env.get("GUEST_FIRST_BUILD_ENABLED") !== "true")
76
- return Result.Err("guest-build-issuance-paused");
77
- const allowed = await requireLiveGuestBuild(vctx, original._auth);
78
- if (allowed.isErr())
79
- return Result.Err(allowed.Err());
80
- const prompt = guestPromptText(original.prompt);
81
- if (prompt instanceof type.errors)
82
- return Result.Err("guest-build-needs-one-description");
83
- const req = {
84
- type: "vibes.diy.req-prompt-chat-section",
85
- mode: "codegen",
86
- chatId: original.chatId,
87
- outerTid: original.outerTid,
88
- guest: original._auth.inGuestAuth,
89
- _auth: original._auth,
90
- prompt: { messages: prompt.messages },
91
- };
92
- ctx.validated.payload = req;
93
- const row = allowed.Ok();
94
- if (prompt.messages[0].content[0].text !== row.originalPrompt)
95
- return Result.Err("guest-build-original-prompt-required");
96
- const promptId = vctx.sthis.nextId(12).str;
97
- const admitted = await admitGuestBuild(vctx, { chatId: row.chatId, guestUserId: row.guestUserId, jti: row.jti, promptId });
98
- if (admitted.isErr())
99
- return Result.Err(admitted.Err());
100
- if (admitted.Ok() === false)
101
- return Result.Err("guest-build-sign-in-to-continue");
102
- const resChat = { ownerHandle: DRAFT_OWNER_HANDLE, appSlug: `draft-${row.chatId}`, mode: "codegen" };
103
- await exception2Result(() => ctx.send.send(ctx, wrapMsgBase(ctx.validated, {
104
- tid: ctx.validated.tid,
105
- payload: { type: "vibes.diy.res-prompt-chat-section", chatId: row.chatId, ...resChat, promptId, outerTid: req.outerTid },
106
- })));
107
- let blockSeq = 0;
108
- const terminal = { promptBlockEndEmitted: false };
109
- const completed = await exception2Result(() => scopey(async (scope) => {
110
- const models = await scope.evalResult(() => getModelDefaults(vctx, {})).do();
111
- const model = subagentModelFor({ defaults: models });
112
- const assembled = await scope
113
- .evalResult(() => assemblePromptPayload(vctx, {
114
- chatId: row.chatId,
115
- userId: row.guestUserId,
116
- model,
117
- newUserMessages: prompt.messages,
118
- degradeAttachments: true,
119
- }))
120
- .do();
121
- await scope
122
- .evalResult(() => appendBlockEvent({
123
- ctx,
124
- vctx,
125
- req,
126
- promptId,
127
- blockSeq,
128
- evt: { type: "prompt.block-begin", streamId: promptId, chatId: row.chatId, seq: blockSeq++, timestamp: new Date() },
129
- }))
130
- .do();
131
- const llmReq = {
132
- model,
133
- messages: assembled.messages,
134
- stream: true,
135
- max_tokens: GUEST_INITIAL_OUTPUT_TOKEN_LIMIT,
136
- verbosity: "low",
137
- headers: vctx.params.llm.headers,
138
- };
139
- await scope
140
- .evalResult(() => appendBlockEvent({
141
- ctx,
142
- vctx,
143
- req,
144
- promptId,
145
- blockSeq,
146
- evt: {
147
- type: "prompt.req",
148
- request: { model, messages: prompt.messages },
149
- streamId: promptId,
150
- chatId: row.chatId,
151
- seq: blockSeq++,
152
- timestamp: new Date(),
153
- },
154
- }))
155
- .do();
156
- const abort = new AbortController();
157
- const response = await scope.evalResult(() => exception2Result(() => vctx.llmRequest(llmReq, { signal: abort.signal }))).do();
158
- if (response.ok === false || response.body === null)
159
- return Result.Err(`guest-build-provider-error: ${response.status}`);
160
- blockSeq = await handleLlmResponse({
161
- scope,
162
- ctx,
163
- vctx,
164
- req,
165
- resChat,
166
- res: response,
167
- promptId,
168
- blockSeq,
169
- llmReq,
170
- abort,
171
- terminal,
172
- frontendDraft: true,
173
- codegenTheme: assembled.codegenTheme,
174
- codegenVariety: assembled.codegenVariety,
175
- });
176
- return Result.Ok(undefined);
177
- })).finally(() => terminal.releasePersistGate?.());
178
- const maxSeq = await maxPersistedBlockSeq(vctx.sql, { chatId: row.chatId, promptId });
179
- if (maxSeq.isErr())
180
- return Result.Err(maxSeq.Err());
181
- blockSeq = Math.max(blockSeq, (maxSeq.Ok() ?? -1) + 1);
182
- if (completed.isErr()) {
183
- const error = await appendBlockEvent({
184
- ctx,
185
- vctx,
186
- req,
187
- promptId,
188
- blockSeq,
189
- evt: {
190
- type: "prompt.error",
191
- streamId: promptId,
192
- chatId: row.chatId,
193
- seq: blockSeq++,
194
- timestamp: new Date(),
195
- error: completed.Err().message,
196
- },
197
- });
198
- if (error.isErr())
199
- return Result.Err(error.Err());
200
- }
201
- const ended = await appendBlockEvent({
202
- ctx,
203
- vctx,
204
- req,
205
- promptId,
206
- blockSeq,
207
- emitMode: terminal.promptBlockEndEmitted === true ? "store-only" : "store",
208
- evt: { type: "prompt.block-end", streamId: promptId, chatId: row.chatId, seq: blockSeq, timestamp: new Date() },
209
- });
210
- if (ended.isErr())
211
- return Result.Err(ended.Err());
212
- const closed = await closeTurn(vctx.sql, { chatId: row.chatId, promptId });
213
- if (closed.isErr())
214
- return Result.Err(closed.Err());
215
- peekInFlightTurns(row.chatId)?.delete(promptId);
216
- const settled = await settleGuestBuild(vctx, { chatId: row.chatId, promptId });
217
- if (settled.isErr())
218
- return Result.Err(settled.Err());
219
- return Result.Ok(EventoResult.Continue);
220
- }
221
- //# sourceMappingURL=guest-build-generation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guest-build-generation.js","sourceRoot":"","sources":["../../jsr/public/guest-build-generation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Result, type EventoHandler } from "@adviser/cement";
2
- import { type MsgBase, type ReqGuestBuildStatus, type ReqClaimGuestBuild, type W3CWebSocketEvent, type VibesDiyError, type VerifiedGuestBuildAuth } from "@vibes.diy/api-types";
3
- import type { VibesApiSQLCtx } from "../types.js";
4
- import { type GuestBuildRow } from "../intern/guest-build-store.js";
5
- export declare function requireLiveGuestBuild(vctx: VibesApiSQLCtx, auth: VerifiedGuestBuildAuth): Promise<Result<GuestBuildRow>>;
6
- export declare const guestBuildStatus: EventoHandler<W3CWebSocketEvent, MsgBase<ReqGuestBuildStatus>, VibesDiyError>;
7
- export declare const claimGuestBuild: EventoHandler<W3CWebSocketEvent, MsgBase<ReqClaimGuestBuild>, VibesDiyError>;