@vibes.diy/api-svc 11.1.1 → 11.1.3
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.
- package/cf-serve.js +38 -0
- package/cf-serve.js.map +1 -1
- package/evento-handler-manifest.js +2 -0
- package/evento-handler-manifest.js.map +1 -1
- package/intern/append-turn-to-chat.js +5 -2
- package/intern/append-turn-to-chat.js.map +1 -1
- package/intern/attach-draft-handle.d.ts +16 -0
- package/intern/attach-draft-handle.js +199 -0
- package/intern/attach-draft-handle.js.map +1 -0
- package/intern/draft-chat-store.d.ts +46 -0
- package/intern/draft-chat-store.js +82 -0
- package/intern/draft-chat-store.js.map +1 -0
- package/intern/ensure-chat-id.d.ts +14 -0
- package/intern/ensure-chat-id.js +83 -28
- package/intern/ensure-chat-id.js.map +1 -1
- package/intern/ensure-slug-binding.d.ts +21 -7
- package/intern/ensure-slug-binding.js +49 -70
- package/intern/ensure-slug-binding.js.map +1 -1
- package/intern/onboarding-handle.d.ts +1 -0
- package/intern/onboarding-handle.js +9 -9
- package/intern/onboarding-handle.js.map +1 -1
- package/intern/prompt-assembly.js +13 -1
- package/intern/prompt-assembly.js.map +1 -1
- package/package.json +11 -11
- package/public/attach-draft-handle.d.ts +3 -0
- package/public/attach-draft-handle.js +44 -0
- package/public/attach-draft-handle.js.map +1 -0
- package/public/ensure-app-slug-item.js +8 -3
- package/public/ensure-app-slug-item.js.map +1 -1
- package/public/fork-app.js +7 -4
- package/public/fork-app.js.map +1 -1
- package/public/llm-dispatch.d.ts +9 -0
- package/public/llm-dispatch.js +50 -11
- package/public/llm-dispatch.js.map +1 -1
- package/public/onboarding-handle.js +1 -0
- package/public/onboarding-handle.js.map +1 -1
- package/public/open-chat.js +8 -2
- package/public/open-chat.js.map +1 -1
- package/public/shared-mint.js +2 -1
- package/public/shared-mint.js.map +1 -1
- package/public/social-flow.js +5 -13
- package/public/social-flow.js.map +1 -1
- package/public/user-slug-bindings.d.ts +7 -0
- package/public/user-slug-bindings.js +18 -12
- package/public/user-slug-bindings.js.map +1 -1
- package/public/who-am-i.d.ts +1 -0
- package/public/who-am-i.js +4 -11
- package/public/who-am-i.js.map +1 -1
- package/sessions-dispatch-timing.d.ts +43 -0
- package/sessions-dispatch-timing.js +98 -0
- package/sessions-dispatch-timing.js.map +1 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { exception2Result, Result } from "@adviser/cement";
|
|
2
|
+
import { type } from "arktype";
|
|
3
|
+
import { and, eq, inArray, isNotNull } from "drizzle-orm/sql/expressions";
|
|
4
|
+
import { DRAFT_OWNER_HANDLE } from "@vibes.diy/api-types";
|
|
5
|
+
const draftPreAlloc = type({
|
|
6
|
+
"pairs?": type({ title: "string", slug: "string" }).array(),
|
|
7
|
+
"skills?": "string[]",
|
|
8
|
+
"iconDescription?": "string",
|
|
9
|
+
"theme?": "string",
|
|
10
|
+
"enrichedPrompt?": "string",
|
|
11
|
+
"privacySensitive?": "boolean",
|
|
12
|
+
"deferred?": {
|
|
13
|
+
"access?": { needed: "boolean", why: "string" },
|
|
14
|
+
"backend?": { recommended: "boolean", why: "string" },
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
export function parseDraftPreAlloc(raw) {
|
|
18
|
+
if (raw === null || raw === undefined)
|
|
19
|
+
return undefined;
|
|
20
|
+
const parsed = draftPreAlloc(raw);
|
|
21
|
+
return parsed instanceof type.errors ? undefined : parsed;
|
|
22
|
+
}
|
|
23
|
+
const DRAFT_STATES = ["unowned", "turn-parked", "attached"];
|
|
24
|
+
function coerceState(raw) {
|
|
25
|
+
return DRAFT_STATES.find((s) => s === raw) ?? "unowned";
|
|
26
|
+
}
|
|
27
|
+
export async function readDraftChat(vctx, args) {
|
|
28
|
+
const t = vctx.sql.tables.chatContexts;
|
|
29
|
+
const r = await exception2Result(() => vctx.sql.db
|
|
30
|
+
.select({
|
|
31
|
+
chatId: t.chatId,
|
|
32
|
+
userId: t.userId,
|
|
33
|
+
appSlug: t.appSlug,
|
|
34
|
+
ownerHandle: t.ownerHandle,
|
|
35
|
+
draftState: t.draftState,
|
|
36
|
+
draftPreAlloc: t.draftPreAlloc,
|
|
37
|
+
})
|
|
38
|
+
.from(t)
|
|
39
|
+
.where(and(eq(t.chatId, args.chatId), isNotNull(t.draftState), ...(args.userId === undefined ? [] : [eq(t.userId, args.userId)])))
|
|
40
|
+
.limit(1)
|
|
41
|
+
.then((rows) => rows[0]));
|
|
42
|
+
if (r.isErr())
|
|
43
|
+
return Result.Err(r);
|
|
44
|
+
const row = r.Ok();
|
|
45
|
+
if (row === undefined || row.draftState === null)
|
|
46
|
+
return Result.Ok(undefined);
|
|
47
|
+
const preAlloc = parseDraftPreAlloc(row.draftPreAlloc);
|
|
48
|
+
return Result.Ok({
|
|
49
|
+
chatId: row.chatId,
|
|
50
|
+
userId: row.userId,
|
|
51
|
+
appSlug: row.appSlug,
|
|
52
|
+
ownerHandle: row.ownerHandle,
|
|
53
|
+
draftState: coerceState(row.draftState),
|
|
54
|
+
...(preAlloc === undefined ? {} : { preAlloc }),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export async function claimDraftState(vctx, chatId, fromStates, toState) {
|
|
58
|
+
const t = vctx.sql.tables.chatContexts;
|
|
59
|
+
const r = await exception2Result(() => vctx.sql.db
|
|
60
|
+
.update(t)
|
|
61
|
+
.set({ draftState: toState })
|
|
62
|
+
.where(and(eq(t.chatId, chatId), inArray(t.draftState, fromStates)))
|
|
63
|
+
.returning({ chatId: t.chatId }));
|
|
64
|
+
if (r.isErr())
|
|
65
|
+
return Result.Err(r);
|
|
66
|
+
return Result.Ok(r.Ok().length > 0);
|
|
67
|
+
}
|
|
68
|
+
export async function insertDraftChat(vctx, args) {
|
|
69
|
+
const r = await exception2Result(() => vctx.sql.db.insert(vctx.sql.tables.chatContexts).values({
|
|
70
|
+
chatId: args.chatId,
|
|
71
|
+
userId: args.userId,
|
|
72
|
+
appSlug: args.appSlug,
|
|
73
|
+
ownerHandle: DRAFT_OWNER_HANDLE,
|
|
74
|
+
created: new Date().toISOString(),
|
|
75
|
+
draftState: "unowned",
|
|
76
|
+
...(args.preAlloc === undefined ? {} : { draftPreAlloc: args.preAlloc }),
|
|
77
|
+
}));
|
|
78
|
+
if (r.isErr())
|
|
79
|
+
return Result.Err(r);
|
|
80
|
+
return Result.Ok(undefined);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=draft-chat-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-chat-store.js","sourceRoot":"","sources":["../../jsr/intern/draft-chat-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { VibesApiSQLCtx } from "../types.js";
|
|
2
2
|
import { Result } from "@adviser/cement";
|
|
3
|
+
import { type PreAllocateResult } from "./pre-allocate.js";
|
|
3
4
|
import { ReqOpenChat, ReqWithVerifiedAuth } from "@vibes.diy/api-types";
|
|
4
5
|
export declare const DRY_RUN_PLACEHOLDER_HANDLE = "dry-run-preview";
|
|
5
6
|
export declare const DRY_RUN_PLACEHOLDER_APP_SLUG = "dry-run-preview";
|
|
@@ -14,8 +15,21 @@ interface EnsureChatIdPResult {
|
|
|
14
15
|
appSlug: string;
|
|
15
16
|
ownerHandle: string;
|
|
16
17
|
chatId: string;
|
|
18
|
+
draft?: boolean;
|
|
17
19
|
chatCreated?: boolean;
|
|
18
20
|
}
|
|
19
21
|
export declare function dryRunHandleIsForeign(ctx: VibesApiSQLCtx, handle: string, userId: string): Promise<Result<boolean>>;
|
|
20
22
|
export declare function ensureChatId(ctx: VibesApiSQLCtx, req: ReqWithVerifiedAuth<ReqOpenChat>): Promise<Result<EnsureChatIdPResult>>;
|
|
23
|
+
export declare function writePreAllocActiveEntries(ctx: VibesApiSQLCtx, { userId, ownerHandle, appSlug, title, skills, iconDescription, theme, enrichedPrompt, privacySensitive, deferred, }: {
|
|
24
|
+
userId: string;
|
|
25
|
+
ownerHandle: string;
|
|
26
|
+
appSlug: string;
|
|
27
|
+
title?: string;
|
|
28
|
+
skills?: string[];
|
|
29
|
+
iconDescription?: string;
|
|
30
|
+
theme?: string;
|
|
31
|
+
enrichedPrompt?: string;
|
|
32
|
+
privacySensitive?: boolean;
|
|
33
|
+
deferred?: PreAllocateResult["deferred"];
|
|
34
|
+
}): Promise<void>;
|
|
21
35
|
export {};
|
package/intern/ensure-chat-id.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { and, desc, eq } from "drizzle-orm/sql/expressions";
|
|
2
2
|
import { exception2Result, Result } from "@adviser/cement";
|
|
3
3
|
import { ensureLogger } from "@vibes.diy/identity";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveUserHandleBinding, ensureAppSlug, getDefaultUserSlug, persistDefaultUserSlug, resolveAdminOwnerBinding, toRFC2822_32ByteLength, } from "./ensure-slug-binding.js";
|
|
5
5
|
import { preAllocate } from "./pre-allocate.js";
|
|
6
|
+
import { insertDraftChat } from "./draft-chat-store.js";
|
|
6
7
|
import { upsertPendingMintJob } from "./mint-job-store.js";
|
|
8
|
+
import { generate } from "random-words";
|
|
7
9
|
import { resolveDeveloperAccess } from "../public/developer-grants.js";
|
|
8
10
|
import { writeAppSettingItems } from "../public/app-setting-items.js";
|
|
11
|
+
import { DRAFT_OWNER_HANDLE, HANDLE_REQUIRED_CODE, HANDLE_REQUIRED_MESSAGE, isDraftOwnerHandle, mkResError, } from "@vibes.diy/api-types";
|
|
9
12
|
export const DRY_RUN_PLACEHOLDER_HANDLE = "dry-run-preview";
|
|
10
13
|
export const DRY_RUN_PLACEHOLDER_APP_SLUG = "dry-run-preview";
|
|
11
14
|
export function preAllocEligible(req) {
|
|
@@ -87,6 +90,7 @@ export async function ensureChatId(ctx, req) {
|
|
|
87
90
|
let ownerHandle = "";
|
|
88
91
|
let chatId;
|
|
89
92
|
let chatCreated = false;
|
|
93
|
+
let draft = false;
|
|
90
94
|
const userId = req._auth.verifiedAuth.claims.userId;
|
|
91
95
|
if (req.dryRun === true && !req.chatId) {
|
|
92
96
|
return dryRunResolveChatId(ctx, req);
|
|
@@ -110,14 +114,17 @@ export async function ensureChatId(ctx, req) {
|
|
|
110
114
|
}
|
|
111
115
|
else {
|
|
112
116
|
if (req.ownerHandle) {
|
|
113
|
-
const resUser = await
|
|
117
|
+
const resUser = await resolveUserHandleBinding(ctx, req._auth.verifiedAuth.claims, {
|
|
114
118
|
userId,
|
|
115
119
|
ownerHandle: req.ownerHandle,
|
|
116
120
|
appSlug: req.appSlug,
|
|
117
121
|
});
|
|
118
122
|
if (resUser.isErr())
|
|
119
123
|
return Result.Err(`Failed to ensure ownerHandle: ${resUser.Err().message}`);
|
|
120
|
-
|
|
124
|
+
const resolved = resUser.Ok();
|
|
125
|
+
if (resolved.status === "needs-handle")
|
|
126
|
+
return Result.Err(mkResError(HANDLE_REQUIRED_MESSAGE, HANDLE_REQUIRED_CODE));
|
|
127
|
+
ownerHandle = resolved.binding.ownerHandle;
|
|
121
128
|
}
|
|
122
129
|
else {
|
|
123
130
|
const resDefault = await getDefaultUserSlug(ctx, userId);
|
|
@@ -128,11 +135,20 @@ export async function ensureChatId(ctx, req) {
|
|
|
128
135
|
ownerHandle = defaultBinding.ownerHandle;
|
|
129
136
|
}
|
|
130
137
|
else {
|
|
131
|
-
const resNew = await
|
|
138
|
+
const resNew = await resolveUserHandleBinding(ctx, req._auth.verifiedAuth.claims, { userId });
|
|
132
139
|
if (resNew.isErr())
|
|
133
140
|
return Result.Err(`Failed to ensure ownerHandle: ${resNew.Err().message}`);
|
|
134
|
-
|
|
135
|
-
|
|
141
|
+
const resolvedNew = resNew.Ok();
|
|
142
|
+
if (resolvedNew.status === "needs-handle") {
|
|
143
|
+
if (req.allowDraft !== true)
|
|
144
|
+
return Result.Err(mkResError(HANDLE_REQUIRED_MESSAGE, HANDLE_REQUIRED_CODE));
|
|
145
|
+
draft = true;
|
|
146
|
+
ownerHandle = DRAFT_OWNER_HANDLE;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
ownerHandle = resolvedNew.binding.ownerHandle;
|
|
150
|
+
await persistDefaultUserSlug(ctx, userId, ownerHandle);
|
|
151
|
+
}
|
|
136
152
|
}
|
|
137
153
|
}
|
|
138
154
|
if (req.appSlug) {
|
|
@@ -171,20 +187,44 @@ export async function ensureChatId(ctx, req) {
|
|
|
171
187
|
console.warn("preAllocate failed; falling through to random-words:", rPre.Err());
|
|
172
188
|
}
|
|
173
189
|
}
|
|
174
|
-
|
|
175
|
-
if (
|
|
176
|
-
|
|
190
|
+
let chosenTitle;
|
|
191
|
+
if (draft) {
|
|
192
|
+
appSlug = proposeDraftAppSlug(ctx, req.appSlug, preferredPairs);
|
|
193
|
+
chatId = ctx.sthis.nextId(12).str;
|
|
194
|
+
const rDraft = await insertDraftChat(ctx, {
|
|
195
|
+
chatId,
|
|
196
|
+
userId,
|
|
197
|
+
appSlug,
|
|
198
|
+
preAlloc: {
|
|
199
|
+
...(preferredPairs === undefined ? {} : { pairs: preferredPairs }),
|
|
200
|
+
...(preAllocSkills === undefined ? {} : { skills: preAllocSkills }),
|
|
201
|
+
...(preAllocIconDescription === undefined ? {} : { iconDescription: preAllocIconDescription }),
|
|
202
|
+
...(preAllocTheme === undefined ? {} : { theme: preAllocTheme }),
|
|
203
|
+
...(preAllocEnrichedPrompt === undefined ? {} : { enrichedPrompt: preAllocEnrichedPrompt }),
|
|
204
|
+
...(preAllocPrivacySensitive === undefined ? {} : { privacySensitive: preAllocPrivacySensitive }),
|
|
205
|
+
...(preAllocDeferred === undefined ? {} : { deferred: preAllocDeferred }),
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
if (rDraft.isErr()) {
|
|
209
|
+
return Result.Err(`Failed to create draft chat: ${rDraft.Err().message}`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
const resApp = await ensureAppSlug(ctx, { userId, ownerHandle, appSlug: req.appSlug, preferredPairs });
|
|
214
|
+
if (resApp.isErr()) {
|
|
215
|
+
return Result.Err(`Failed to ensure appSlug: ${resApp.Err().message}`);
|
|
216
|
+
}
|
|
217
|
+
appSlug = resApp.Ok().appSlug;
|
|
218
|
+
chosenTitle = resApp.Ok().chosenTitle;
|
|
219
|
+
chatId = ctx.sthis.nextId(12).str;
|
|
220
|
+
await ctx.sql.db.insert(ctx.sql.tables.chatContexts).values({
|
|
221
|
+
chatId,
|
|
222
|
+
userId,
|
|
223
|
+
appSlug,
|
|
224
|
+
ownerHandle,
|
|
225
|
+
created: new Date().toISOString(),
|
|
226
|
+
});
|
|
177
227
|
}
|
|
178
|
-
appSlug = resApp.Ok().appSlug;
|
|
179
|
-
const chosenTitle = resApp.Ok().chosenTitle;
|
|
180
|
-
chatId = ctx.sthis.nextId(12).str;
|
|
181
|
-
await ctx.sql.db.insert(ctx.sql.tables.chatContexts).values({
|
|
182
|
-
chatId,
|
|
183
|
-
userId,
|
|
184
|
-
appSlug,
|
|
185
|
-
ownerHandle,
|
|
186
|
-
created: new Date().toISOString(),
|
|
187
|
-
});
|
|
188
228
|
if (preAllocEligible(req)) {
|
|
189
229
|
const mintPrompt = req.prompt;
|
|
190
230
|
void upsertPendingMintJob(ctx, { chatId, userId, ownerHandle, appSlug, prompt: mintPrompt }).then((rJob) => {
|
|
@@ -198,13 +238,14 @@ export async function ensureChatId(ctx, req) {
|
|
|
198
238
|
}
|
|
199
239
|
});
|
|
200
240
|
}
|
|
201
|
-
if (
|
|
202
|
-
(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
241
|
+
if (!draft &&
|
|
242
|
+
(chosenTitle !== undefined ||
|
|
243
|
+
(preAllocSkills !== undefined && preAllocSkills.length > 0) ||
|
|
244
|
+
preAllocIconDescription !== undefined ||
|
|
245
|
+
preAllocTheme !== undefined ||
|
|
246
|
+
preAllocEnrichedPrompt !== undefined ||
|
|
247
|
+
preAllocPrivacySensitive === true ||
|
|
248
|
+
preAllocDeferred !== undefined)) {
|
|
208
249
|
await writePreAllocActiveEntries(ctx, {
|
|
209
250
|
userId,
|
|
210
251
|
ownerHandle,
|
|
@@ -220,9 +261,23 @@ export async function ensureChatId(ctx, req) {
|
|
|
220
261
|
}
|
|
221
262
|
}
|
|
222
263
|
}
|
|
223
|
-
|
|
264
|
+
const isDraft = draft || isDraftOwnerHandle(ownerHandle);
|
|
265
|
+
return Result.Ok({ appSlug, ownerHandle, chatId, chatCreated, ...(isDraft ? { draft: true } : {}) });
|
|
266
|
+
}
|
|
267
|
+
function proposeDraftAppSlug(ctx, explicit, preferredPairs) {
|
|
268
|
+
const candidates = [
|
|
269
|
+
...(explicit === undefined ? [] : [explicit]),
|
|
270
|
+
...(preferredPairs ?? []).map((p) => p.slug),
|
|
271
|
+
generate({ exactly: 1, wordsPerString: 3, separator: "-" })[0],
|
|
272
|
+
];
|
|
273
|
+
for (const candidate of candidates) {
|
|
274
|
+
const sanitized = toRFC2822_32ByteLength(candidate);
|
|
275
|
+
if (sanitized.length > 0)
|
|
276
|
+
return sanitized;
|
|
277
|
+
}
|
|
278
|
+
return `draft-${toRFC2822_32ByteLength(ctx.sthis.nextId(8).str)}`;
|
|
224
279
|
}
|
|
225
|
-
async function writePreAllocActiveEntries(ctx, { userId, ownerHandle, appSlug, title, skills, iconDescription, theme, enrichedPrompt, privacySensitive, deferred, }) {
|
|
280
|
+
export async function writePreAllocActiveEntries(ctx, { userId, ownerHandle, appSlug, title, skills, iconDescription, theme, enrichedPrompt, privacySensitive, deferred, }) {
|
|
226
281
|
const entries = [];
|
|
227
282
|
if (title) {
|
|
228
283
|
entries.push({ type: "active.title", title });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-chat-id.js","sourceRoot":"","sources":["../../jsr/intern/ensure-chat-id.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ensure-chat-id.js","sourceRoot":"","sources":["../../jsr/intern/ensure-chat-id.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,21 @@ export type AppSlugBindingParam = Partial<NeedOneAppSlugUserSlug> & {
|
|
|
6
6
|
userId: string;
|
|
7
7
|
claims: ClerkClaim;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
declare const boundHandleBrand: unique symbol;
|
|
10
|
+
export type BoundHandle = HandleBinding & {
|
|
11
|
+
readonly [boundHandleBrand]: true;
|
|
12
|
+
};
|
|
13
|
+
export type HandleResolution = {
|
|
14
|
+
readonly status: "bound";
|
|
15
|
+
readonly binding: BoundHandle;
|
|
16
|
+
} | {
|
|
17
|
+
readonly status: "needs-handle";
|
|
18
|
+
};
|
|
19
|
+
export declare function writeHandleBinding(ctx: VibesApiSQLCtx, userId: string, ownerHandle: string): Promise<Result<BoundHandle>>;
|
|
10
20
|
export declare function ownerHandleFromClaims(claims: ClerkClaim): string[];
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function silentMintCandidates(userId: string): string[];
|
|
13
|
-
export declare function ensureUserSlug(ctx: VibesApiSQLCtx, claims: ClerkClaim, binding: (OptAppSlugOptUserSlug | OptAppSlugUserSlug | AppSlugOptUserSlug | AppSlugUserSlug) & {
|
|
21
|
+
export declare function resolveUserHandleBinding(ctx: VibesApiSQLCtx, claims: ClerkClaim, binding: (OptAppSlugOptUserSlug | OptAppSlugUserSlug | AppSlugOptUserSlug | AppSlugUserSlug) & {
|
|
14
22
|
userId: string;
|
|
15
|
-
}): Promise<Result<
|
|
23
|
+
}): Promise<Result<HandleResolution>>;
|
|
16
24
|
export declare function writeAppSlugBinding(ctx: VibesApiSQLCtx, userId: string, ownerHandle: string, appSlug: string): Promise<Result<AppSlugBinding>>;
|
|
17
25
|
export declare function ensureAppSlug(ctx: VibesApiSQLCtx, binding: (OptAppSlugUserSlug | AppSlugUserSlug) & {
|
|
18
26
|
userId: string;
|
|
@@ -37,11 +45,17 @@ export declare function claimForkAppSlug(ctx: VibesApiSQLCtx, args: {
|
|
|
37
45
|
export declare function allocateForkAppSlug(claim: (appSlug: string) => Promise<Result<ForkSlugClaim>>, candidates: string[]): Promise<Result<string>>;
|
|
38
46
|
export declare function getDefaultUserSlug(ctx: VibesApiSQLCtx, userId: string): Promise<Result<HandleBinding | undefined>>;
|
|
39
47
|
export declare function persistDefaultUserSlug(ctx: VibesApiSQLCtx, userId: string, ownerHandle: string): Promise<void>;
|
|
40
|
-
export
|
|
48
|
+
export type AppHandleResolution = {
|
|
49
|
+
readonly status: "bound";
|
|
50
|
+
readonly binding: AppHandleBinding;
|
|
51
|
+
} | {
|
|
52
|
+
readonly status: "needs-handle";
|
|
53
|
+
};
|
|
54
|
+
export declare function ensureSlugBinding(ctx: VibesApiSQLCtx, binding: AppSlugBindingParam): Promise<Result<AppHandleResolution>>;
|
|
41
55
|
export declare function resolveAdminOwnerBinding(ctx: VibesApiSQLCtx, args: {
|
|
42
56
|
callerUserId: string;
|
|
43
57
|
requestedOwnerHandle: string;
|
|
44
58
|
sanitizedOwnerHandle: string;
|
|
45
59
|
appSlug: string | undefined;
|
|
46
|
-
}): Promise<
|
|
60
|
+
}): Promise<BoundHandle | null>;
|
|
47
61
|
export { toRFC2822_32ByteLength };
|
|
@@ -2,7 +2,7 @@ import { exception2Result, Result } from "@adviser/cement";
|
|
|
2
2
|
import { generate } from "random-words";
|
|
3
3
|
import { and, eq } from "drizzle-orm/sql/expressions";
|
|
4
4
|
import { sql } from "drizzle-orm/sql";
|
|
5
|
-
import { isUserSettingDefaultHandle, userSettingItem, parseArrayWarning, } from "@vibes.diy/api-types";
|
|
5
|
+
import { isReservedHandle, isUserSettingDefaultHandle, userSettingItem, parseArrayWarning, } from "@vibes.diy/api-types";
|
|
6
6
|
import { ensureLogger } from "@vibes.diy/identity";
|
|
7
7
|
import { toRFC2822_32ByteLength } from "@vibes.diy/vibe-types";
|
|
8
8
|
import { matchInvitesToNewHandle } from "../public/social-invite-signup-match.js";
|
|
@@ -20,20 +20,26 @@ async function runSignupInviteMatch(ctx, input) {
|
|
|
20
20
|
if (r.isErr())
|
|
21
21
|
console.error("[social-invite] signup contact-match failed (isolated):", r.Err());
|
|
22
22
|
}
|
|
23
|
+
function asBoundHandle(binding) {
|
|
24
|
+
return binding;
|
|
25
|
+
}
|
|
23
26
|
export async function writeHandleBinding(ctx, userId, ownerHandle) {
|
|
24
27
|
return exception2Result(async () => {
|
|
28
|
+
if (isReservedHandle(ownerHandle)) {
|
|
29
|
+
return Result.Err(`ownerHandle "${ownerHandle}" is reserved`);
|
|
30
|
+
}
|
|
25
31
|
const existing = await ctx.sql.db
|
|
26
32
|
.select()
|
|
27
33
|
.from(ctx.sql.tables.handleBinding)
|
|
28
34
|
.where(eq(ctx.sql.tables.handleBinding.userId, userId));
|
|
29
35
|
const owned = existing.find((e) => e.handle === ownerHandle);
|
|
30
36
|
if (owned) {
|
|
31
|
-
return Result.Ok({
|
|
37
|
+
return Result.Ok(asBoundHandle({
|
|
32
38
|
type: "vibes.diy-user-slug-binding",
|
|
33
39
|
userId,
|
|
34
40
|
ownerHandle: owned.handle,
|
|
35
41
|
tenant: owned.tenant,
|
|
36
|
-
});
|
|
42
|
+
}));
|
|
37
43
|
}
|
|
38
44
|
if (existing.length >= ctx.params.maxUserSlugPerUserId) {
|
|
39
45
|
return Result.Err("maximum ownerHandle bindings reached for this userId");
|
|
@@ -57,12 +63,12 @@ export async function writeHandleBinding(ctx, userId, ownerHandle) {
|
|
|
57
63
|
if (!owner || owner.userId !== userId) {
|
|
58
64
|
return Result.Err(`ownerHandle "${ownerHandle}" is owned by another user`);
|
|
59
65
|
}
|
|
60
|
-
return Result.Ok({
|
|
66
|
+
return Result.Ok(asBoundHandle({
|
|
61
67
|
type: "vibes.diy-user-slug-binding",
|
|
62
68
|
userId,
|
|
63
69
|
ownerHandle,
|
|
64
70
|
tenant: owner.tenant,
|
|
65
|
-
});
|
|
71
|
+
}));
|
|
66
72
|
});
|
|
67
73
|
}
|
|
68
74
|
export function ownerHandleFromClaims(claims) {
|
|
@@ -87,68 +93,26 @@ export function ownerHandleFromClaims(claims) {
|
|
|
87
93
|
}
|
|
88
94
|
return result;
|
|
89
95
|
}
|
|
90
|
-
export function
|
|
91
|
-
let h = 0;
|
|
92
|
-
for (let i = 0; i < userId.length; i = i + 1) {
|
|
93
|
-
h = (h * 31 + userId.charCodeAt(i)) >>> 0;
|
|
94
|
-
}
|
|
95
|
-
return `vibe-${h.toString(36)}`;
|
|
96
|
-
}
|
|
97
|
-
export function silentMintCandidates(userId) {
|
|
98
|
-
return [
|
|
99
|
-
...new Array(5).fill(0).map(() => generate({ exactly: 1, wordsPerString: 3, separator: "-" })[0]),
|
|
100
|
-
deterministicUserSlugCandidate(userId),
|
|
101
|
-
];
|
|
102
|
-
}
|
|
103
|
-
export async function ensureUserSlug(ctx, claims, binding) {
|
|
96
|
+
export async function resolveUserHandleBinding(ctx, claims, binding) {
|
|
104
97
|
return exception2Result(async () => {
|
|
105
98
|
if (!binding.ownerHandle) {
|
|
106
99
|
const existingForUser = await ctx.sql.db
|
|
107
100
|
.select()
|
|
108
101
|
.from(ctx.sql.tables.handleBinding)
|
|
109
102
|
.where(eq(ctx.sql.tables.handleBinding.userId, binding.userId));
|
|
110
|
-
if (existingForUser.length >= ctx.params.maxUserSlugPerUserId) {
|
|
111
|
-
return Result.Err("maximum ownerHandle bindings reached for this userId");
|
|
112
|
-
}
|
|
113
103
|
if (existingForUser.length > 0) {
|
|
114
104
|
const earliest = [...existingForUser].sort((a, b) => a.created.localeCompare(b.created) || a.handle.localeCompare(b.handle))[0];
|
|
115
105
|
return Result.Ok({
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
106
|
+
status: "bound",
|
|
107
|
+
binding: asBoundHandle({
|
|
108
|
+
type: "vibes.diy-user-slug-binding",
|
|
109
|
+
userId: binding.userId,
|
|
110
|
+
ownerHandle: earliest.handle,
|
|
111
|
+
tenant: earliest.tenant,
|
|
112
|
+
}),
|
|
120
113
|
});
|
|
121
114
|
}
|
|
122
|
-
|
|
123
|
-
for (const tryUserSlug of ownerHandleCandidates) {
|
|
124
|
-
const sanitizedUserSlug = toRFC2822_32ByteLength(tryUserSlug);
|
|
125
|
-
if (!sanitizedUserSlug) {
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
const existing = await ctx.sql.db
|
|
129
|
-
.select()
|
|
130
|
-
.from(ctx.sql.tables.handleBinding)
|
|
131
|
-
.where(eq(ctx.sql.tables.handleBinding.handle, sanitizedUserSlug))
|
|
132
|
-
.limit(1)
|
|
133
|
-
.then((r) => r[0]);
|
|
134
|
-
if (existing) {
|
|
135
|
-
if (existing.userId === binding.userId) {
|
|
136
|
-
return Result.Ok({
|
|
137
|
-
type: "vibes.diy-user-slug-binding",
|
|
138
|
-
userId: binding.userId,
|
|
139
|
-
ownerHandle: existing.handle,
|
|
140
|
-
tenant: existing.tenant,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
|
-
const rWrite = await writeHandleBinding(ctx, binding.userId, sanitizedUserSlug);
|
|
146
|
-
if (rWrite.isOk()) {
|
|
147
|
-
await runSignupInviteMatch(ctx, { claims, userId: binding.userId, ownerHandle: sanitizedUserSlug });
|
|
148
|
-
return rWrite;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return Result.Err("could not generate unique ownerHandle after attempts");
|
|
115
|
+
return Result.Ok({ status: "needs-handle" });
|
|
152
116
|
}
|
|
153
117
|
const sanitizedUserSlug = toRFC2822_32ByteLength(binding.ownerHandle);
|
|
154
118
|
const existing = await ctx.sql.db
|
|
@@ -161,7 +125,7 @@ export async function ensureUserSlug(ctx, claims, binding) {
|
|
|
161
125
|
const rWrite = await writeHandleBinding(ctx, binding.userId, sanitizedUserSlug);
|
|
162
126
|
if (rWrite.isOk()) {
|
|
163
127
|
await runSignupInviteMatch(ctx, { claims, userId: binding.userId, ownerHandle: sanitizedUserSlug });
|
|
164
|
-
return rWrite;
|
|
128
|
+
return Result.Ok({ status: "bound", binding: rWrite.Ok() });
|
|
165
129
|
}
|
|
166
130
|
const devOwner = await resolveDeveloperOwnerBinding(ctx, {
|
|
167
131
|
callerUserId: binding.userId,
|
|
@@ -169,7 +133,7 @@ export async function ensureUserSlug(ctx, claims, binding) {
|
|
|
169
133
|
appSlug: binding.appSlug,
|
|
170
134
|
});
|
|
171
135
|
if (devOwner !== null)
|
|
172
|
-
return Result.Ok(devOwner);
|
|
136
|
+
return Result.Ok({ status: "bound", binding: devOwner });
|
|
173
137
|
const adminOwner = await resolveAdminOwnerBinding(ctx, {
|
|
174
138
|
callerUserId: binding.userId,
|
|
175
139
|
requestedOwnerHandle: binding.ownerHandle,
|
|
@@ -177,20 +141,23 @@ export async function ensureUserSlug(ctx, claims, binding) {
|
|
|
177
141
|
appSlug: binding.appSlug,
|
|
178
142
|
});
|
|
179
143
|
if (adminOwner === null)
|
|
180
|
-
return rWrite;
|
|
144
|
+
return Result.Err(rWrite.Err());
|
|
181
145
|
logAdminWriteOverride(ctx, {
|
|
182
146
|
op: "source-write",
|
|
183
147
|
actingUserId: binding.userId,
|
|
184
148
|
ownerHandle: sanitizedUserSlug,
|
|
185
149
|
appSlug: binding.appSlug ?? "",
|
|
186
150
|
});
|
|
187
|
-
return Result.Ok(adminOwner);
|
|
151
|
+
return Result.Ok({ status: "bound", binding: adminOwner });
|
|
188
152
|
}
|
|
189
153
|
return Result.Ok({
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
154
|
+
status: "bound",
|
|
155
|
+
binding: asBoundHandle({
|
|
156
|
+
type: "vibes.diy-user-slug-binding",
|
|
157
|
+
userId: binding.userId,
|
|
158
|
+
ownerHandle: existing.handle,
|
|
159
|
+
tenant: existing.tenant,
|
|
160
|
+
}),
|
|
194
161
|
});
|
|
195
162
|
});
|
|
196
163
|
}
|
|
@@ -398,21 +365,28 @@ export async function persistDefaultUserSlug(ctx, userId, ownerHandle) {
|
|
|
398
365
|
}
|
|
399
366
|
}
|
|
400
367
|
export async function ensureSlugBinding(ctx, binding) {
|
|
401
|
-
const rUserSlug = await
|
|
368
|
+
const rUserSlug = await resolveUserHandleBinding(ctx, binding.claims, binding);
|
|
402
369
|
if (rUserSlug.isErr()) {
|
|
403
370
|
return Result.Err(rUserSlug);
|
|
404
371
|
}
|
|
372
|
+
const resolution = rUserSlug.Ok();
|
|
373
|
+
if (resolution.status === "needs-handle") {
|
|
374
|
+
return Result.Ok({ status: "needs-handle" });
|
|
375
|
+
}
|
|
405
376
|
const rAppSlug = await ensureAppSlug(ctx, {
|
|
406
377
|
...binding,
|
|
407
|
-
ownerHandle:
|
|
378
|
+
ownerHandle: resolution.binding.ownerHandle,
|
|
408
379
|
});
|
|
409
380
|
if (rAppSlug.isErr()) {
|
|
410
381
|
return Result.Err(rAppSlug);
|
|
411
382
|
}
|
|
412
383
|
return Result.Ok({
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
384
|
+
status: "bound",
|
|
385
|
+
binding: {
|
|
386
|
+
type: "vibes.diy-app-user-slug-binding",
|
|
387
|
+
ownerHandle: resolution.binding,
|
|
388
|
+
appSlug: rAppSlug.Ok(),
|
|
389
|
+
},
|
|
416
390
|
});
|
|
417
391
|
}
|
|
418
392
|
async function resolveDeveloperOwnerBinding(ctx, args) {
|
|
@@ -450,7 +424,12 @@ async function lookupOwnerHandleBinding(ctx, sanitizedOwnerHandle) {
|
|
|
450
424
|
.then((r) => r[0]);
|
|
451
425
|
if (owner === undefined)
|
|
452
426
|
return null;
|
|
453
|
-
return {
|
|
427
|
+
return asBoundHandle({
|
|
428
|
+
type: "vibes.diy-user-slug-binding",
|
|
429
|
+
userId: owner.userId,
|
|
430
|
+
ownerHandle: sanitizedOwnerHandle,
|
|
431
|
+
tenant: owner.tenant,
|
|
432
|
+
});
|
|
454
433
|
}
|
|
455
434
|
export { toRFC2822_32ByteLength };
|
|
456
435
|
//# sourceMappingURL=ensure-slug-binding.js.map
|