@vibes.diy/api-svc 2.0.1 → 2.0.6

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 (50) hide show
  1. package/create-handler.js +4 -0
  2. package/create-handler.js.map +1 -1
  3. package/index.d.ts +1 -0
  4. package/index.js +1 -0
  5. package/index.js.map +1 -1
  6. package/intern/ensure-chat-id.js +64 -1
  7. package/intern/ensure-chat-id.js.map +1 -1
  8. package/intern/ensure-slug-binding.d.ts +8 -1
  9. package/intern/ensure-slug-binding.js +71 -40
  10. package/intern/ensure-slug-binding.js.map +1 -1
  11. package/intern/grouped-vibe-import-map.d.ts +2 -22
  12. package/intern/grouped-vibe-import-map.js +3 -23
  13. package/intern/grouped-vibe-import-map.js.map +1 -1
  14. package/intern/pre-allocate.d.ts +12 -0
  15. package/intern/pre-allocate.js +56 -0
  16. package/intern/pre-allocate.js.map +1 -0
  17. package/intern/write-apps.js +16 -3
  18. package/intern/write-apps.js.map +1 -1
  19. package/models.json +19 -6
  20. package/package.json +18 -17
  21. package/public/app-documents.d.ts +7 -0
  22. package/public/app-documents.js +210 -0
  23. package/public/app-documents.js.map +1 -0
  24. package/public/ensure-app-settings.js +25 -2
  25. package/public/ensure-app-settings.js.map +1 -1
  26. package/public/fork-app.d.ts +5 -0
  27. package/public/fork-app.js +287 -0
  28. package/public/fork-app.js.map +1 -0
  29. package/public/open-chat.js +1 -0
  30. package/public/open-chat.js.map +1 -1
  31. package/public/prompt-chat-section.d.ts +5 -3
  32. package/public/prompt-chat-section.js +324 -41
  33. package/public/prompt-chat-section.js.map +1 -1
  34. package/public/request-flow.d.ts +5 -0
  35. package/public/request-flow.js +33 -0
  36. package/public/request-flow.js.map +1 -1
  37. package/svc-ws-send-provider.d.ts +1 -0
  38. package/svc-ws-send-provider.js +1 -0
  39. package/svc-ws-send-provider.js.map +1 -1
  40. package/types.d.ts +1 -0
  41. package/types.js.map +1 -1
  42. package/usage-report/inspect-db-report-template.d.ts +4 -0
  43. package/usage-report/inspect-db-report-template.js +25 -7
  44. package/usage-report/inspect-db-report-template.js.map +1 -1
  45. package/usage-report/inspect-db-report.js +25 -0
  46. package/usage-report/inspect-db-report.js.map +1 -1
  47. package/vibes-msg-evento.js +3 -1
  48. package/vibes-msg-evento.js.map +1 -1
  49. package/intern/import-map.ts-off +0 -405
  50. package/intern/invite-system.ts-off +0 -392
@@ -0,0 +1,287 @@
1
+ import { Result, Option, EventoResult, exception2Result } from "@adviser/cement";
2
+ import { reqForkApp, isResHasAccessInviteAccepted, isResHasAccessRequestApproved, isFetchOkResult, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { and, eq } from "drizzle-orm/sql/expressions";
5
+ import { max } from "drizzle-orm/sql";
6
+ import { generate } from "random-words";
7
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
8
+ import { checkAuth } from "../check-auth.js";
9
+ import { ensureAppSlug, ensureUserSlug, getDefaultUserSlug, persistDefaultUserSlug } from "../intern/ensure-slug-binding.js";
10
+ import { ensureAppSettings } from "./ensure-app-settings.js";
11
+ import { hasAccessInvite } from "./invite-flow.js";
12
+ import { hasAccessRequest } from "./request-flow.js";
13
+ function sanitizeSlug(raw) {
14
+ return raw
15
+ .toLowerCase()
16
+ .replace(/[^a-z0-9-]/g, "-")
17
+ .replace(/-+/g, "-")
18
+ .replace(/^-+|-+$/g, "");
19
+ }
20
+ function buildForkCandidates(srcAppSlug, word) {
21
+ const src = sanitizeSlug(srcAppSlug);
22
+ const out = [];
23
+ const withSrc = sanitizeSlug(`${src}-${word}`);
24
+ if (withSrc.length <= 32 && withSrc !== src)
25
+ out.push(withSrc);
26
+ while (out.length < 3) {
27
+ const words = generate({ exactly: 1, wordsPerString: 3, separator: "-" })[0];
28
+ const cand = sanitizeSlug(`${word}-${words}`);
29
+ if (!cand || cand.length > 32)
30
+ continue;
31
+ if (!out.includes(cand))
32
+ out.push(cand);
33
+ }
34
+ return out;
35
+ }
36
+ export async function forkApp(vctx, req, userId, claims) {
37
+ let src;
38
+ if (req.srcFsId) {
39
+ src = await vctx.sql.db
40
+ .select()
41
+ .from(vctx.sql.tables.apps)
42
+ .where(and(eq(vctx.sql.tables.apps.fsId, req.srcFsId), eq(vctx.sql.tables.apps.appSlug, req.srcAppSlug), eq(vctx.sql.tables.apps.userSlug, req.srcUserSlug)))
43
+ .limit(1)
44
+ .then((r) => r[0]);
45
+ }
46
+ else {
47
+ const maxCreatedSub = vctx.sql.db
48
+ .select({ mode: vctx.sql.tables.apps.mode, maxCreated: max(vctx.sql.tables.apps.created).as("max_created") })
49
+ .from(vctx.sql.tables.apps)
50
+ .where(and(eq(vctx.sql.tables.apps.userSlug, req.srcUserSlug), eq(vctx.sql.tables.apps.appSlug, req.srcAppSlug)))
51
+ .groupBy(vctx.sql.tables.apps.mode)
52
+ .as("mc");
53
+ const rows = await vctx.sql.db
54
+ .select({
55
+ appSlug: vctx.sql.tables.apps.appSlug,
56
+ userId: vctx.sql.tables.apps.userId,
57
+ userSlug: vctx.sql.tables.apps.userSlug,
58
+ releaseSeq: vctx.sql.tables.apps.releaseSeq,
59
+ fsId: vctx.sql.tables.apps.fsId,
60
+ env: vctx.sql.tables.apps.env,
61
+ fileSystem: vctx.sql.tables.apps.fileSystem,
62
+ meta: vctx.sql.tables.apps.meta,
63
+ mode: vctx.sql.tables.apps.mode,
64
+ created: vctx.sql.tables.apps.created,
65
+ })
66
+ .from(vctx.sql.tables.apps)
67
+ .innerJoin(maxCreatedSub, and(eq(vctx.sql.tables.apps.mode, maxCreatedSub.mode), eq(vctx.sql.tables.apps.created, maxCreatedSub.maxCreated), eq(vctx.sql.tables.apps.userSlug, req.srcUserSlug), eq(vctx.sql.tables.apps.appSlug, req.srcAppSlug)))
68
+ .orderBy(vctx.sql.tables.apps.mode);
69
+ src = rows[rows.length - 1];
70
+ }
71
+ if (!src) {
72
+ return Result.Err("app-not-found");
73
+ }
74
+ const isOwner = userId === src.userId;
75
+ if (!isOwner) {
76
+ const rAppSet = await ensureAppSettings(vctx, {
77
+ type: "vibes.diy.req-ensure-app-settings",
78
+ appSlug: src.appSlug,
79
+ userSlug: src.userSlug,
80
+ });
81
+ if (rAppSet.isErr())
82
+ return Result.Err("app-settings-not-found");
83
+ const settings = rAppSet.Ok().settings;
84
+ const isPublic = settings.entry.publicAccess?.enable && src.mode === "production";
85
+ let granted = !!isPublic;
86
+ if (!granted) {
87
+ const rInvite = await hasAccessInvite(vctx, { appSlug: src.appSlug, userSlug: src.userSlug, grantUserId: userId });
88
+ if (rInvite.isOk() && isResHasAccessInviteAccepted(rInvite.Ok()))
89
+ granted = true;
90
+ }
91
+ if (!granted) {
92
+ const rReq = await hasAccessRequest(vctx, { appSlug: src.appSlug, userSlug: src.userSlug, foreignUserId: userId });
93
+ if (rReq.isOk() && isResHasAccessRequestApproved(rReq.Ok()))
94
+ granted = true;
95
+ }
96
+ if (!granted && settings.entry.enableRequest?.enable && src.mode === "production") {
97
+ granted = true;
98
+ }
99
+ if (!granted)
100
+ return Result.Err("not-grant");
101
+ }
102
+ let destUserSlug;
103
+ const rDefault = await getDefaultUserSlug(vctx, userId);
104
+ if (rDefault.isErr())
105
+ return Result.Err(`Failed to get default userSlug: ${rDefault.Err().message}`);
106
+ const defaultBinding = rDefault.Ok();
107
+ if (defaultBinding) {
108
+ destUserSlug = defaultBinding.userSlug;
109
+ }
110
+ else {
111
+ const rNew = await ensureUserSlug(vctx, claims, { userId });
112
+ if (rNew.isErr())
113
+ return Result.Err(`Failed to ensure userSlug: ${rNew.Err().message}`);
114
+ destUserSlug = rNew.Ok().userSlug;
115
+ await persistDefaultUserSlug(vctx, userId, destUserSlug);
116
+ }
117
+ const skipChat = req.skipChat === true;
118
+ const word = skipChat ? "clone" : "remix";
119
+ const srcMeta = src.meta ?? [];
120
+ const titleMeta = srcMeta.find((m) => m.type === "title");
121
+ const sourceTitle = titleMeta?.title ?? req.srcAppSlug;
122
+ const candidates = buildForkCandidates(req.srcAppSlug, word);
123
+ const rApp = await ensureAppSlug(vctx, {
124
+ userId,
125
+ userSlug: destUserSlug,
126
+ preferredPairs: candidates.map((slug) => ({ title: sourceTitle, slug })),
127
+ });
128
+ if (rApp.isErr())
129
+ return Result.Err(`Failed to ensure appSlug: ${rApp.Err().message}`);
130
+ const destAppSlug = rApp.Ok().appSlug;
131
+ const destMeta = [...srcMeta.filter((m) => m.type !== "remix-of"), { type: "remix-of", srcFsId: src.fsId }];
132
+ const destMode = skipChat ? "production" : "dev";
133
+ const rIns = await exception2Result(() => vctx.sql.db.insert(vctx.sql.tables.apps).values({
134
+ appSlug: destAppSlug,
135
+ userId,
136
+ userSlug: destUserSlug,
137
+ releaseSeq: 1,
138
+ fsId: src.fsId,
139
+ env: src.env,
140
+ fileSystem: src.fileSystem,
141
+ meta: destMeta,
142
+ mode: destMode,
143
+ created: new Date().toISOString(),
144
+ }));
145
+ if (rIns.isErr())
146
+ return Result.Err(`Failed to insert forked app: ${rIns.Err().message}`);
147
+ const chatId = vctx.sthis.nextId(12).str;
148
+ const rChat = await exception2Result(() => vctx.sql.db.insert(vctx.sql.tables.chatContexts).values({
149
+ chatId,
150
+ userId,
151
+ appSlug: destAppSlug,
152
+ userSlug: destUserSlug,
153
+ created: new Date().toISOString(),
154
+ }));
155
+ if (rChat.isErr())
156
+ return Result.Err(`Failed to create chatContext: ${rChat.Err().message}`);
157
+ if (skipChat) {
158
+ const rReqSet = await ensureAppSettings(vctx, {
159
+ type: "vibes.diy.req-ensure-app-settings",
160
+ appSlug: destAppSlug,
161
+ userSlug: destUserSlug,
162
+ request: { enable: true, autoAcceptViewRequest: false },
163
+ }, userId);
164
+ if (rReqSet.isErr())
165
+ return Result.Err(`Failed to set clone access request: ${rReqSet.Err().message}`);
166
+ const rPubSet = await ensureAppSettings(vctx, {
167
+ type: "vibes.diy.req-ensure-app-settings",
168
+ appSlug: destAppSlug,
169
+ userSlug: destUserSlug,
170
+ publicAccess: { enable: false },
171
+ }, userId);
172
+ if (rPubSet.isErr())
173
+ return Result.Err(`Failed to disable clone public access: ${rPubSet.Err().message}`);
174
+ return Result.Ok({
175
+ type: "vibes.diy.res-fork-app",
176
+ userSlug: destUserSlug,
177
+ appSlug: destAppSlug,
178
+ chatId,
179
+ srcFsId: src.fsId,
180
+ srcUserSlug: src.userSlug,
181
+ srcAppSlug: src.appSlug,
182
+ });
183
+ }
184
+ const fsItems = src.fileSystem;
185
+ const srcEntry = fsItems.find((f) => f.entryPoint && f.fileName === "/App.jsx") ?? fsItems.find((f) => f.fileName === "/App.jsx");
186
+ if (srcEntry) {
187
+ const rFetch = await vctx.storage.fetch(srcEntry.assetURI);
188
+ if (!isFetchOkResult(rFetch)) {
189
+ return Result.Err(`fork-fetch-app-jsx: ${srcEntry.fileName} (${srcEntry.assetURI})`);
190
+ }
191
+ const content = await new Response(rFetch.data).text();
192
+ const lines = content.split("\n");
193
+ const promptId = vctx.sthis.nextId(12).str;
194
+ const blockId = vctx.sthis.nextId(12).str;
195
+ const streamId = blockId;
196
+ const sectionId = promptId;
197
+ const now = new Date();
198
+ const baseBlock = { blockId, streamId, blockNr: 0, timestamp: now };
199
+ const userText = `Remix of ${src.userSlug}/${src.appSlug}`;
200
+ const blocks = [
201
+ { type: "prompt.block-begin", chatId, streamId, seq: 0, timestamp: now },
202
+ {
203
+ type: "prompt.req",
204
+ request: { messages: [{ role: "user", content: [{ type: "text", text: userText }] }] },
205
+ chatId,
206
+ streamId,
207
+ seq: 1,
208
+ timestamp: now,
209
+ },
210
+ { type: "block.begin", ...baseBlock, seq: 2 },
211
+ { type: "block.code.begin", sectionId, lang: "jsx", ...baseBlock, seq: 3 },
212
+ ...lines.map((line, i) => ({
213
+ type: "block.code.line",
214
+ sectionId,
215
+ lang: "jsx",
216
+ line,
217
+ lineNr: i + 1,
218
+ ...baseBlock,
219
+ seq: 4 + i,
220
+ })),
221
+ {
222
+ type: "block.code.end",
223
+ sectionId,
224
+ lang: "jsx",
225
+ stats: { lines: lines.length, bytes: content.length },
226
+ ...baseBlock,
227
+ seq: 4 + lines.length,
228
+ },
229
+ {
230
+ type: "block.end",
231
+ stats: {
232
+ toplevel: { lines: 0, bytes: 0 },
233
+ code: { lines: lines.length, bytes: content.length },
234
+ image: { lines: 0, bytes: 0 },
235
+ total: { lines: lines.length, bytes: content.length },
236
+ },
237
+ usage: { given: [], calculated: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } },
238
+ fsRef: { appSlug: destAppSlug, userSlug: destUserSlug, mode: destMode, fsId: src.fsId },
239
+ ...baseBlock,
240
+ seq: 5 + lines.length,
241
+ },
242
+ { type: "prompt.block-end", chatId, streamId, seq: 6 + lines.length, timestamp: now },
243
+ ];
244
+ const rSection = await exception2Result(() => vctx.sql.db.insert(vctx.sql.tables.chatSections).values({
245
+ chatId,
246
+ promptId,
247
+ blockSeq: 0,
248
+ blocks,
249
+ created: now.toISOString(),
250
+ }));
251
+ if (rSection.isErr())
252
+ return Result.Err(`Failed to seed chatSection: ${rSection.Err().message}`);
253
+ }
254
+ return Result.Ok({
255
+ type: "vibes.diy.res-fork-app",
256
+ userSlug: destUserSlug,
257
+ appSlug: destAppSlug,
258
+ chatId,
259
+ srcFsId: src.fsId,
260
+ srcUserSlug: src.userSlug,
261
+ srcAppSlug: src.appSlug,
262
+ });
263
+ }
264
+ export const forkAppEvento = {
265
+ hash: "fork-app",
266
+ validate: unwrapMsgBase(async (msg) => {
267
+ const ret = reqForkApp(msg.payload);
268
+ if (ret instanceof type.errors) {
269
+ return Result.Ok(Option.None());
270
+ }
271
+ return Result.Ok(Option.Some({
272
+ ...msg,
273
+ payload: ret,
274
+ }));
275
+ }),
276
+ handle: checkAuth(async (ctx) => {
277
+ const req = ctx.validated.payload;
278
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
279
+ const rRes = await forkApp(vctx, req, req._auth.verifiedAuth.claims.userId, req._auth.verifiedAuth.claims);
280
+ if (rRes.isErr()) {
281
+ return Result.Err(rRes);
282
+ }
283
+ await ctx.send.send(ctx, rRes.Ok());
284
+ return Result.Ok(EventoResult.Continue);
285
+ }),
286
+ };
287
+ //# sourceMappingURL=fork-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork-app.js","sourceRoot":"","sources":["../../jsr/public/fork-app.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export const openChat = {
27
27
  chatPromise = ensureChatId(vctx, req);
28
28
  break;
29
29
  case "app":
30
+ case "img":
30
31
  chatPromise = ensureApplicationChatId({ ctx: vctx, req });
31
32
  break;
32
33
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../jsr/public/open-chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../jsr/public/open-chat.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { EventoHandler, Result, Option, HandleTriggerCtx } from "@adviser/cement";
2
2
  import { Scope } from "@adviser/scopey";
3
- import { type PromptStyle, MsgBase, PromptAndBlockMsgs, ReqPromptChatSection, ReqPromptFSChatSection, ReqWithVerifiedAuth, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ import { type PromptStyle, MsgBase, PromptAndBlockMsgs, ReqPromptChatSection, ReqPromptFSChatSection, ReqWithVerifiedAuth, VibeFile, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
4
4
  import { VibesApiSQLCtx } from "../types.js";
5
- import { FileSystemRef, BlockEndMsg } from "@vibes.diy/call-ai-v2";
6
- export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks }: {
5
+ import { ChatMessage, FileSystemRef, BlockEndMsg } from "@vibes.diy/call-ai-v2";
6
+ export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks, fileSystem }: {
7
7
  vctx: VibesApiSQLCtx;
8
8
  req: ReqWithVerifiedAuth<ReqPromptChatSection>;
9
9
  resChat: ResChat;
@@ -12,10 +12,12 @@ export declare function handlePromptContext({ vctx, req, resChat, promptId, bloc
12
12
  value: BlockEndMsg;
13
13
  collectedMsgs: PromptAndBlockMsgs[];
14
14
  blockChunks?: number;
15
+ fileSystem?: VibeFile[];
15
16
  }): Promise<Result<{
16
17
  blockSeq: number;
17
18
  fsRef: Option<FileSystemRef>;
18
19
  }>>;
20
+ export declare function reconstructConversationMessages(sectionMsgs: PromptAndBlockMsgs[]): ChatMessage[];
19
21
  interface ResChat {
20
22
  appSlug: string;
21
23
  userSlug: string;