@vibes.diy/api-svc 14.3.29 → 14.3.31

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 (44) hide show
  1. package/intern/agent-dispatcher.js +30 -1
  2. package/intern/agent-dispatcher.js.map +1 -1
  3. package/intern/attach-draft-handle.d.ts +1 -0
  4. package/intern/attach-draft-handle.js +56 -2
  5. package/intern/attach-draft-handle.js.map +1 -1
  6. package/intern/draft-continuation.js +6 -1
  7. package/intern/draft-continuation.js.map +1 -1
  8. package/intern/draft-lane-config.d.ts +3 -0
  9. package/intern/draft-lane-config.js +5 -0
  10. package/intern/draft-lane-config.js.map +1 -1
  11. package/intern/draft-lane-look.d.ts +4 -0
  12. package/intern/draft-lane-look.js +29 -0
  13. package/intern/draft-lane-look.js.map +1 -1
  14. package/intern/draft-lane-opens.js +42 -0
  15. package/intern/draft-lane-opens.js.map +1 -1
  16. package/intern/draft-lane-persist.d.ts +13 -3
  17. package/intern/draft-lane-persist.js +59 -17
  18. package/intern/draft-lane-persist.js.map +1 -1
  19. package/intern/draft-lane-store.d.ts +1 -0
  20. package/intern/draft-lane-store.js.map +1 -1
  21. package/intern/draft-lane-worker.d.ts +26 -3
  22. package/intern/draft-lane-worker.js +157 -32
  23. package/intern/draft-lane-worker.js.map +1 -1
  24. package/intern/draft-lane.d.ts +1 -0
  25. package/intern/draft-lane.js +3 -1
  26. package/intern/draft-lane.js.map +1 -1
  27. package/intern/ensure-chat-id.d.ts +1 -0
  28. package/intern/ensure-chat-id.js +21 -16
  29. package/intern/ensure-chat-id.js.map +1 -1
  30. package/intern/guest-build-store.d.ts +9 -0
  31. package/intern/guest-build-store.js +100 -1
  32. package/intern/guest-build-store.js.map +1 -1
  33. package/intern/guest-draft-start.d.ts +25 -0
  34. package/intern/guest-draft-start.js +66 -0
  35. package/intern/guest-draft-start.js.map +1 -0
  36. package/intern/mint-job-store.d.ts +7 -0
  37. package/intern/mint-job-store.js +22 -0
  38. package/intern/mint-job-store.js.map +1 -1
  39. package/package.json +12 -12
  40. package/public/open-chat.d.ts +2 -1
  41. package/public/open-chat.js +30 -7
  42. package/public/open-chat.js.map +1 -1
  43. package/public/shared-mint.js +12 -3
  44. package/public/shared-mint.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"draft-lane-opens.js","sourceRoot":"","sources":["../../jsr/intern/draft-lane-opens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"draft-lane-opens.js","sourceRoot":"","sources":["../../jsr/intern/draft-lane-opens.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,24 @@
1
1
  import { Result } from "@adviser/cement";
2
- import type { PromptAndBlockMsgs } from "@vibes.diy/api-types";
2
+ import { type PromptAndBlockMsgs, type VerifiedGuestBuildAuth } from "@vibes.diy/api-types";
3
3
  import type { DashAuthType, VerifiedAuthResult } from "@vibes.diy/identity";
4
4
  import type { VibesApiSQLCtx } from "../types.js";
5
5
  import type { DraftToPersist } from "./draft-lane.js";
6
- export interface PersistDraftArgs {
6
+ interface PersistDraftBase {
7
7
  readonly chatId: string;
8
8
  readonly ownerHandle: string;
9
9
  readonly appSlug: string;
10
+ readonly draft: DraftToPersist;
11
+ readonly promptId?: string;
12
+ }
13
+ export interface PersistAccountDraftArgs extends PersistDraftBase {
10
14
  readonly auth: DashAuthType;
11
15
  readonly verified: VerifiedAuthResult;
12
- readonly draft: DraftToPersist;
13
16
  }
17
+ export interface PersistGuestDraftArgs extends PersistDraftBase {
18
+ readonly guest: VerifiedGuestBuildAuth;
19
+ }
20
+ export type PersistDraftArgs = PersistAccountDraftArgs | PersistGuestDraftArgs;
21
+ export declare function frontendDraftVfs(vfs: ReadonlyMap<string, string>): ReadonlyMap<string, string>;
14
22
  export declare function insertSection(vctx: VibesApiSQLCtx, row: {
15
23
  readonly chatId: string;
16
24
  readonly promptId: string;
@@ -23,4 +31,6 @@ export interface PersistDraftSeams {
23
31
  export declare function persistDraftBuild(vctx: VibesApiSQLCtx, args: PersistDraftArgs, seams?: PersistDraftSeams): Promise<Result<{
24
32
  readonly appSlug: string;
25
33
  readonly buildId: string;
34
+ readonly proposedSlug?: string;
26
35
  }>>;
36
+ export {};
@@ -1,6 +1,36 @@
1
1
  import { Result, exception2Result } from "@adviser/cement";
2
+ import { isDraftOwnerHandle, isServerOnlyVibeFile, } from "@vibes.diy/api-types";
2
3
  import { handlePromptContext } from "../public/handle-prompt-context.js";
3
- import { blockEndOf, draftTextToBlocks } from "./draft-lane-parse.js";
4
+ import { blockEndOf, draftTextToBlocks, parseDraftText, renderDraftText } from "./draft-lane-parse.js";
5
+ function isGuestDraft(args) {
6
+ return "guest" in args;
7
+ }
8
+ export function frontendDraftVfs(vfs) {
9
+ return new Map([...vfs].filter(([path]) => isServerOnlyVibeFile(path) === false));
10
+ }
11
+ async function frontendDraftText(draft) {
12
+ if ([...draft.vfs.keys()].some((path) => isServerOnlyVibeFile(path)) === false)
13
+ return Result.Ok(draft.text);
14
+ const parsed = await parseDraftText(draft.text);
15
+ if (parsed.isErr())
16
+ return Result.Err(parsed.Err());
17
+ const { vfs, intro, tail } = parsed.Ok();
18
+ return Result.Ok(renderDraftText({ vfs: frontendDraftVfs(vfs), intro, tail }));
19
+ }
20
+ function draftTurnRequest(args, request) {
21
+ const base = {
22
+ type: "vibes.diy.req-prompt-chat-section",
23
+ mode: "codegen",
24
+ chatId: args.chatId,
25
+ outerTid: `draft-lane-${args.chatId}`,
26
+ prompt: request,
27
+ };
28
+ if (isGuestDraft(args)) {
29
+ const guest = args.guest.inGuestAuth;
30
+ return { ...base, guest, _auth: args.guest };
31
+ }
32
+ return { ...base, auth: args.auth, _auth: args.verified };
33
+ }
4
34
  export async function insertSection(vctx, row) {
5
35
  const inserted = await exception2Result(() => vctx.sql.db.insert(vctx.sql.tables.chatSections).values({
6
36
  chatId: row.chatId,
@@ -13,20 +43,17 @@ export async function insertSection(vctx, row) {
13
43
  }
14
44
  export async function persistDraftBuild(vctx, args, seams) {
15
45
  const { chatId, draft } = args;
16
- const promptId = vctx.sthis.nextId(12).str;
46
+ const guest = isGuestDraft(args);
47
+ const parkable = guest || isDraftOwnerHandle(args.ownerHandle);
48
+ const promptId = args.promptId ?? vctx.sthis.nextId(12).str;
17
49
  const request = {
18
50
  model: draft.model,
19
51
  messages: [{ role: "user", content: [{ type: "text", text: draft.sentence }] }],
20
52
  };
21
- const req = {
22
- type: "vibes.diy.req-prompt-chat-section",
23
- mode: "codegen",
24
- auth: args.auth,
25
- chatId,
26
- outerTid: `draft-lane-${chatId}`,
27
- prompt: request,
28
- _auth: args.verified,
29
- };
53
+ const req = draftTurnRequest(args, request);
54
+ const text = parkable ? await frontendDraftText(draft) : Result.Ok(draft.text);
55
+ if (text.isErr())
56
+ return Result.Err(text.Err());
30
57
  const begin = await insertSection(vctx, {
31
58
  chatId,
32
59
  promptId,
@@ -39,13 +66,15 @@ export async function persistDraftBuild(vctx, args, seams) {
39
66
  chatId,
40
67
  promptId,
41
68
  blockSeq: 1,
42
- evt: { type: "prompt.req", request, streamId: promptId, chatId, seq: 1, timestamp: new Date(), firstDraft: true },
69
+ evt: parkable
70
+ ? { type: "prompt.req", request, streamId: promptId, chatId, seq: 1, timestamp: new Date() }
71
+ : { type: "prompt.req", request, streamId: promptId, chatId, seq: 1, timestamp: new Date(), firstDraft: true },
43
72
  });
44
73
  if (echo.isErr())
45
74
  return Result.Err(echo.Err());
46
75
  let id = 0;
47
76
  const blocks = await draftTextToBlocks({
48
- text: draft.text,
77
+ text: text.Ok(),
49
78
  streamId: promptId,
50
79
  createId: () => `${promptId}-${++id}`,
51
80
  usage: draft.usage.map((usage) => ({
@@ -77,9 +106,22 @@ export async function persistDraftBuild(vctx, args, seams) {
77
106
  if (persisted.isErr())
78
107
  return Result.Err(persisted.Err());
79
108
  const { blockSeq, fsRef, deferredPersist } = persisted.Ok();
80
- if (deferredPersist !== undefined || fsRef.IsNone())
81
- return Result.Err("draft turn committed no filesystem");
82
- const ref = fsRef.unwrap();
109
+ let committed;
110
+ if (guest) {
111
+ if (deferredPersist !== "awaiting-handle")
112
+ return Result.Err("guest draft turn did not park");
113
+ const proposedSlug = draft.classification.slug;
114
+ committed = { appSlug: args.appSlug, buildId: promptId, ...(proposedSlug.length > 0 ? { proposedSlug } : {}) };
115
+ }
116
+ else if (parkable && deferredPersist === "awaiting-handle") {
117
+ committed = { appSlug: args.appSlug, buildId: promptId };
118
+ }
119
+ else {
120
+ if (deferredPersist !== undefined || fsRef.IsNone())
121
+ return Result.Err("draft turn committed no filesystem");
122
+ const ref = fsRef.unwrap();
123
+ committed = { appSlug: ref.appSlug, buildId: ref.fsId };
124
+ }
83
125
  const closed = await (seams?.insertClosingSection ?? insertSection)(vctx, {
84
126
  chatId,
85
127
  promptId,
@@ -89,6 +131,6 @@ export async function persistDraftBuild(vctx, args, seams) {
89
131
  if (closed.isErr()) {
90
132
  vctx.logger.Warn().Err(closed.Err()).Str("chatId", chatId).Str("promptId", promptId).Msg("draft-lane-block-end-failed");
91
133
  }
92
- return Result.Ok({ appSlug: ref.appSlug, buildId: ref.fsId });
134
+ return Result.Ok(committed);
93
135
  }
94
136
  //# sourceMappingURL=draft-lane-persist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft-lane-persist.js","sourceRoot":"","sources":["../../jsr/intern/draft-lane-persist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"draft-lane-persist.js","sourceRoot":"","sources":["../../jsr/intern/draft-lane-persist.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GAMrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAyBvG,SAAS,YAAY,CAAC,IAAsB;IAC1C,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,GAAgC;IAC/D,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC;AAGD,KAAK,UAAU,iBAAiB,CAAC,KAAqB;IACpD,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7G,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAQD,SAAS,gBAAgB,CAAC,IAAsB,EAAE,OAAwB;IACxE,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,cAAc,IAAI,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,OAAO;KACP,CAAC;IACX,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACtD,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAA2D,CAAC;IACxG,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAA2D,CAAC;AACrH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAoB,EACpB,GAAwH;IAExH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;QACjB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC,CACH,CAAC;IACF,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9E,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAoB,EACpB,IAAsB,EACtB,KAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEjC,MAAM,QAAQ,GAAG,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IAC5D,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;KAClG,CAAC;IACF,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;QACtC,MAAM;QACN,QAAQ;QACR,QAAQ,EAAE,CAAC;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;KAC/F,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;QACrC,MAAM;QACN,QAAQ;QACR,QAAQ,EAAE,CAAC;QAMX,GAAG,EAAE,QAAQ;YACX,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;YAC5F,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;KACjH,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,EAAE;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;YACjC,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3F,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAErF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC;QAC1C,IAAI;QACJ,GAAG;QACH,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClF,QAAQ;QACR,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;QAC/B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,IAAI;QAChB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,eAAe;KAC/B,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;IAK5D,IAAI,SAAiG,CAAC;IACtG,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,eAAe,KAAK,iBAAiB;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAG9F,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;QAC/C,SAAS,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjH,CAAC;SAAM,IAAI,QAAQ,IAAI,eAAe,KAAK,iBAAiB,EAAE,CAAC;QAE7D,SAAS,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,IAAI,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAC7G,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,SAAS,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IAQD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,oBAAoB,IAAI,aAAa,CAAC,CAAC,IAAI,EAAE;QACxE,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,GAAG,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;KACpG,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC1H,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC"}
@@ -20,6 +20,7 @@ export interface DraftCompletion {
20
20
  readonly draftNote: string;
21
21
  readonly opensVerdict?: DraftRowVerdict;
22
22
  readonly aliasesUsed?: readonly string[];
23
+ readonly proposedSlug?: string;
23
24
  }
24
25
  export interface DraftJobSql {
25
26
  readonly db: VibesApiSQLCtx["sql"]["db"];
@@ -1 +1 @@
1
- {"version":3,"file":"draft-lane-store.js","sourceRoot":"","sources":["../../jsr/intern/draft-lane-store.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAmE1F,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"draft-lane-store.js","sourceRoot":"","sources":["../../jsr/intern/draft-lane-store.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAqE1F,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACjE,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { Result } from "@adviser/cement";
2
+ import { type GuestCredential } from "@vibes.diy/api-types";
2
3
  import type { DashAuthType } from "@vibes.diy/identity";
3
4
  import type { VibesApiSQLCtx } from "../types.js";
5
+ import { type DraftModelCall } from "./draft-lane-classify.js";
6
+ import { type DraftLaneDeps } from "./draft-lane.js";
4
7
  import type { DraftJobStore } from "./draft-lane-store.js";
5
8
  export declare const DRAFT_LANE_PATH = "/internal/draft-lane";
6
9
  export declare const DRAFT_LANE_AUTH_HEADER = "x-vibes-draft-lane-auth";
@@ -8,10 +11,14 @@ export declare const draftLaneJob: import("arktype/internal/variants/object.ts")
8
11
  chatId: string;
9
12
  leaseToken: string;
10
13
  sentence: string;
11
- auth: {
14
+ auth?: {
12
15
  type: "clerk" | "device-id" | "ucan";
13
16
  token: string;
14
- };
17
+ } | undefined;
18
+ guest?: {
19
+ type: "guest-build";
20
+ token: string;
21
+ } | undefined;
15
22
  submittedAt?: number | undefined;
16
23
  analyticsCountry?: string | undefined;
17
24
  }, {}>;
@@ -22,12 +29,24 @@ export declare function draftLaneDispatcher(args: {
22
29
  readonly internalSecret: string | undefined;
23
30
  readonly fetch: (request: Request) => Promise<Response>;
24
31
  }): DispatchDraftLane | undefined;
32
+ export declare const DRAFT_LANE_NOT_ADMISSIBLE = "draft-lane-route-status-409";
25
33
  export declare function isDraftLaneCallAuthorized(secret: string | undefined, provided: string | null): boolean;
34
+ export type DraftLanePrincipal = {
35
+ readonly kind: "account";
36
+ readonly auth: DashAuthType;
37
+ } | {
38
+ readonly kind: "guest";
39
+ readonly guest: GuestCredential;
40
+ };
26
41
  export type DraftLaneSkipReason = "disabled" | "no-dispatcher" | "no-build-intent" | "job-order-error" | "claim-miss" | "claim-error";
42
+ export declare function unownedDraftLaneArmed(vctx: VibesApiSQLCtx, args: {
43
+ readonly prompt: string;
44
+ readonly dispatch: DispatchDraftLane | undefined;
45
+ }): boolean;
27
46
  export declare function startDraftLane(vctx: VibesApiSQLCtx, args: {
28
47
  readonly chatId: string;
29
48
  readonly prompt: string;
30
- readonly auth: DashAuthType;
49
+ readonly principal: DraftLanePrincipal;
31
50
  readonly jobOrder?: Promise<unknown>;
32
51
  readonly store: DraftJobStore;
33
52
  readonly dispatch: DispatchDraftLane | undefined;
@@ -44,4 +63,8 @@ export declare function handleDraftLaneRequest(args: {
44
63
  readonly vctx: VibesApiSQLCtx;
45
64
  readonly internalSecret: string | undefined;
46
65
  readonly store: DraftJobStore;
66
+ readonly seams?: {
67
+ readonly callModel?: DraftModelCall;
68
+ readonly systemPrompt?: DraftLaneDeps["systemPrompt"];
69
+ };
47
70
  }): Promise<Response>;
@@ -1,25 +1,30 @@
1
1
  import { Result, exception2Result } from "@adviser/cement";
2
2
  import { type } from "arktype";
3
3
  import { and, eq } from "drizzle-orm/sql/expressions";
4
- import { dashAuthType } from "@vibes.diy/api-types";
4
+ import { dashAuthType, guestCredential, isDraftOwnerHandle, } from "@vibes.diy/api-types";
5
5
  import { verifyAuth } from "../check-auth.js";
6
- import { readDraftLaneConfig } from "./draft-lane-config.js";
6
+ import { requireLiveGuestBuild } from "../public/guest-build.js";
7
+ import { guestDraftLaneConfig, readDraftLaneConfig } from "./draft-lane-config.js";
7
8
  import { looksLikeBuildIntent } from "./draft-lane-classify.js";
8
9
  import { autofixAndCheck } from "./draft-lane-autofix.js";
9
10
  import { loadDraftSystemPrompt } from "./draft-lane-prompt.js";
10
11
  import { draftModelCallFor } from "./draft-lane-transport.js";
11
- import { persistDraftBuild } from "./draft-lane-persist.js";
12
+ import { frontendDraftVfs, persistDraftBuild } from "./draft-lane-persist.js";
12
13
  import { validateAgentFiles } from "./agent-file-validation.js";
13
14
  import { runDraftLane } from "./draft-lane.js";
15
+ import { admitGuestBuild, guestBuildIdentity, interruptGuestBuild, settleGuestBuild } from "./guest-build-store.js";
16
+ import { closeTurn } from "./open-turn-store.js";
17
+ import { reconcileParkedFirstDraft } from "./attach-draft-handle.js";
14
18
  import { captureDraftTurnSettled, clampDraftSubmittedAt, draftTurnSettledArgs } from "./draft-lane-settled.js";
15
- import { preDrawDraftLook } from "./draft-lane-look.js";
19
+ import { bufferDraftLook, preDrawDraftLook } from "./draft-lane-look.js";
16
20
  export const DRAFT_LANE_PATH = "/internal/draft-lane";
17
21
  export const DRAFT_LANE_AUTH_HEADER = "x-vibes-draft-lane-auth";
18
22
  export const draftLaneJob = type({
19
23
  chatId: "0 < string <= 128",
20
24
  leaseToken: "0 < string <= 256",
21
25
  sentence: "0 < string <= 16000",
22
- auth: dashAuthType,
26
+ "auth?": dashAuthType,
27
+ "guest?": guestCredential,
23
28
  "submittedAt?": "number",
24
29
  "analyticsCountry?": "0 < string <= 8",
25
30
  });
@@ -42,11 +47,17 @@ export function draftLaneDispatcher(args) {
42
47
  return res.ok ? Result.Ok(undefined) : Result.Err(`draft-lane-route-status-${res.status}`);
43
48
  };
44
49
  }
50
+ export const DRAFT_LANE_NOT_ADMISSIBLE = "draft-lane-route-status-409";
45
51
  export function isDraftLaneCallAuthorized(secret, provided) {
46
52
  if (secret === undefined || secret.length === 0)
47
53
  return false;
48
54
  return provided !== null && provided === secret;
49
55
  }
56
+ export function unownedDraftLaneArmed(vctx, args) {
57
+ const config = readDraftLaneConfig(vctx.sthis.env);
58
+ const automaticHandle = vctx.sthis.env.get("GUEST_FIRST_BUILD_ENABLED") === "true";
59
+ return (config.enabled && config.guestEnabled && automaticHandle && args.dispatch !== undefined && looksLikeBuildIntent(args.prompt));
60
+ }
50
61
  export async function startDraftLane(vctx, args) {
51
62
  const skipped = (reason, error) => {
52
63
  const line = reason === "no-dispatcher" || reason === "job-order-error" || reason === "claim-error"
@@ -84,7 +95,7 @@ export async function startDraftLane(vctx, args) {
84
95
  chatId: args.chatId,
85
96
  leaseToken,
86
97
  sentence: args.prompt,
87
- auth: args.auth,
98
+ ...(args.principal.kind === "guest" ? { guest: args.principal.guest } : { auth: args.principal.auth }),
88
99
  ...(args.submittedAt === undefined ? {} : { submittedAt: args.submittedAt }),
89
100
  ...(country === undefined || country.length === 0 ? {} : { analyticsCountry: country }),
90
101
  };
@@ -93,11 +104,18 @@ export async function startDraftLane(vctx, args) {
93
104
  if (failed === undefined)
94
105
  return;
95
106
  vctx.logger.Warn().Err(failed).Str("chatId", args.chatId).Msg("draft-lane-dispatch-failed");
107
+ if (failed.message === DRAFT_LANE_NOT_ADMISSIBLE)
108
+ return;
96
109
  await args.store.abandonDraft(vctx.sql, args.chatId, leaseToken);
110
+ if (args.principal.kind === "guest")
111
+ await interruptPendingGuestBuild(vctx, args.chatId);
97
112
  });
98
113
  const lookWritten = args.look === undefined
99
114
  ? Promise.resolve(undefined)
100
- : preDrawDraftLook(vctx, args.look, args.rnd).then((drawn) => {
115
+ : (isDraftOwnerHandle(args.look.ownerHandle)
116
+ ?
117
+ bufferDraftLook(vctx, { chatId: args.chatId, userId: args.look.userId }, args.rnd)
118
+ : preDrawDraftLook(vctx, args.look, args.rnd)).then((drawn) => {
101
119
  if (drawn.isErr())
102
120
  vctx.logger.Warn().Err(drawn.Err()).Str("chatId", args.chatId).Msg("draft-lane-look-failed");
103
121
  });
@@ -113,6 +131,66 @@ export async function startDraftLane(vctx, args) {
113
131
  await lookWritten;
114
132
  return true;
115
133
  }
134
+ async function liveSentinelAddress(vctx, key) {
135
+ const t = vctx.sql.tables.chatContexts;
136
+ const live = await exception2Result(() => vctx.sql.db
137
+ .select({ ownerHandle: t.ownerHandle, appSlug: t.appSlug })
138
+ .from(t)
139
+ .where(and(eq(t.chatId, key.chatId), eq(t.userId, key.userId)))
140
+ .limit(1)
141
+ .then((rows) => rows[0]));
142
+ if (live.isErr())
143
+ return Result.Err(live.Err());
144
+ const row = live.Ok();
145
+ if (row === undefined)
146
+ return Result.Err(`draft chat ${key.chatId} is gone`);
147
+ return Result.Ok({ parks: isDraftOwnerHandle(row.ownerHandle), ownerHandle: row.ownerHandle, appSlug: row.appSlug });
148
+ }
149
+ async function verifyDraftPrincipal(vctx, job) {
150
+ if (job.auth !== undefined && job.guest === undefined) {
151
+ const verified = await verifyAuth(vctx, { auth: job.auth });
152
+ if (verified.isErr())
153
+ return Result.Err(verified.Err());
154
+ const identity = verified.Ok();
155
+ if (identity.type !== "VerifiedAuthResult")
156
+ return Result.Err("draft-lane-unverified");
157
+ return Result.Ok({ kind: "account", auth: job.auth, verified: identity });
158
+ }
159
+ if (job.guest === undefined || job.auth !== undefined)
160
+ return Result.Err("draft-lane-one-credential");
161
+ const signer = vctx.guestBuildSigner;
162
+ if (signer === undefined)
163
+ return Result.Err("guest-build-unavailable");
164
+ const claims = await signer.verify(job.guest.token);
165
+ if (claims.isErr())
166
+ return Result.Err(claims.Err());
167
+ if (claims.Ok().chatId !== job.chatId || claims.Ok().userId !== guestBuildIdentity(job.chatId).guestUserId)
168
+ return Result.Err("guest-chat-scope-mismatch");
169
+ const verified = {
170
+ type: "VerifiedGuestBuildAuth",
171
+ inGuestAuth: job.guest,
172
+ verifiedAuth: { type: "guest-build", claims: claims.Ok() },
173
+ };
174
+ const live = await requireLiveGuestBuild(vctx, verified);
175
+ if (live.isErr())
176
+ return Result.Err(live.Err());
177
+ return Result.Ok({ kind: "guest", verified });
178
+ }
179
+ async function interruptPendingGuestBuild(vctx, chatId) {
180
+ const moved = await interruptGuestBuild(vctx, { chatId });
181
+ if (moved.isErr())
182
+ vctx.logger.Warn().Err(moved.Err()).Str("chatId", chatId).Msg("draft-lane-guest-interrupt-failed");
183
+ }
184
+ async function settleGuestDraft(vctx, turn, outcome) {
185
+ const closed = await closeTurn(vctx.sql, turn);
186
+ if (closed.isErr())
187
+ vctx.logger.Warn().Err(closed.Err()).Str("chatId", turn.chatId).Msg("draft-lane-guest-close-failed");
188
+ const moved = outcome.kind === "drafted" ? await settleGuestBuild(vctx, turn) : await interruptGuestBuild(vctx, turn);
189
+ if (moved.isErr() || moved.Ok() === false) {
190
+ const line = vctx.logger.Warn().Str("chatId", turn.chatId).Str("outcome", outcome.kind);
191
+ (moved.isErr() ? line.Err(moved.Err()) : line).Msg("draft-lane-guest-settle-missed");
192
+ }
193
+ }
116
194
  function json(status, body) {
117
195
  return new Response(JSON.stringify(body), {
118
196
  status,
@@ -136,13 +214,11 @@ export async function handleDraftLaneRequest(args) {
136
214
  const job = draftLaneJob(body.Ok());
137
215
  if (job instanceof type.errors)
138
216
  return json(400, { error: "invalid job" });
139
- const verified = await verifyAuth(vctx, { auth: job.auth });
140
- if (verified.isErr())
141
- return json(401, { error: "unverified" });
142
- const identity = verified.Ok();
143
- if (identity.type !== "VerifiedAuthResult")
217
+ const principal = await verifyDraftPrincipal(vctx, job);
218
+ if (principal.isErr())
144
219
  return json(401, { error: "unverified" });
145
- const userId = identity.verifiedAuth.claims.userId;
220
+ const who = principal.Ok();
221
+ const userId = who.verified.verifiedAuth.claims.userId;
146
222
  const t = vctx.sql.tables.chatContexts;
147
223
  const chat = await exception2Result(() => vctx.sql.db
148
224
  .select({ ownerHandle: t.ownerHandle, appSlug: t.appSlug })
@@ -150,45 +226,94 @@ export async function handleDraftLaneRequest(args) {
150
226
  .where(and(eq(t.chatId, job.chatId), eq(t.userId, userId)))
151
227
  .limit(1)
152
228
  .then((rows) => rows[0]));
153
- if (chat.isErr())
229
+ if (chat.isErr()) {
230
+ if (who.kind === "guest")
231
+ await interruptPendingGuestBuild(vctx, job.chatId);
154
232
  return json(503, { error: "store unavailable" });
233
+ }
155
234
  const row = chat.Ok();
156
235
  if (row === undefined)
157
236
  return json(404, { error: "chat not found" });
237
+ let guestTurn = undefined;
238
+ if (who.kind === "guest") {
239
+ const claims = who.verified.verifiedAuth.claims;
240
+ const promptId = vctx.sthis.nextId(12).str;
241
+ const admitted = await admitGuestBuild(vctx, {
242
+ chatId: claims.chatId,
243
+ guestUserId: claims.userId,
244
+ jti: claims.jti,
245
+ promptId,
246
+ });
247
+ if (admitted.isErr()) {
248
+ await args.store.abandonDraft(vctx.sql, job.chatId, job.leaseToken);
249
+ await interruptPendingGuestBuild(vctx, job.chatId);
250
+ return json(503, { error: "store unavailable" });
251
+ }
252
+ if (admitted.Ok() === false)
253
+ return json(409, { error: "guest build not admissible" });
254
+ guestTurn = { chatId: claims.chatId, promptId };
255
+ }
256
+ const laneConfig = who.kind === "guest" ? guestDraftLaneConfig(config) : config;
257
+ let persistAt;
258
+ const persistAddress = () => {
259
+ if (persistAt !== undefined)
260
+ return persistAt;
261
+ persistAt =
262
+ who.kind === "guest" || isDraftOwnerHandle(row.ownerHandle) === false
263
+ ? Promise.resolve(Result.Ok({ parks: who.kind === "guest", ownerHandle: row.ownerHandle, appSlug: row.appSlug }))
264
+ : liveSentinelAddress(vctx, { chatId: job.chatId, userId });
265
+ return persistAt;
266
+ };
158
267
  const outcome = await runDraftLane({
159
268
  chatId: job.chatId,
160
269
  leaseToken: job.leaseToken,
161
270
  sentence: job.sentence,
162
271
  userHandle: row.ownerHandle,
163
- config,
272
+ config: laneConfig,
164
273
  deps: {
165
274
  store: args.store,
166
275
  sql: vctx.sql,
167
- callModel: draftModelCallFor(vctx),
168
- systemPrompt: (classification) => loadDraftSystemPrompt(vctx, {
169
- chatId: job.chatId,
170
- ownerHandle: row.ownerHandle,
171
- model: config.builderModel,
172
- classification,
173
- }),
276
+ callModel: args.seams?.callModel ?? draftModelCallFor(vctx),
277
+ systemPrompt: args.seams?.systemPrompt ??
278
+ ((classification) => loadDraftSystemPrompt(vctx, {
279
+ chatId: job.chatId,
280
+ ownerHandle: row.ownerHandle,
281
+ model: config.builderModel,
282
+ classification,
283
+ })),
174
284
  autofixAndCheck,
175
- saveCheck: async (vfs) => {
285
+ saveCheck: async (draftVfs) => {
286
+ const at = await persistAddress();
287
+ if (at.isErr())
288
+ return Result.Err(at.Err());
289
+ const vfs = at.Ok().parks ? frontendDraftVfs(draftVfs) : draftVfs;
176
290
  const changes = [...vfs].map(([path, contents]) => ({ path, contents }));
177
- const checked = await validateAgentFiles(vctx, { vfs, changes, ownerHandle: row.ownerHandle });
291
+ const checked = await validateAgentFiles(vctx, { vfs, changes, ownerHandle: at.Ok().ownerHandle });
178
292
  return checked.isErr() ? Result.Err(checked.Err()) : Result.Ok(undefined);
179
293
  },
180
- persist: (draft) => persistDraftBuild(vctx, {
181
- chatId: job.chatId,
182
- ownerHandle: row.ownerHandle,
183
- appSlug: row.appSlug,
184
- auth: job.auth,
185
- verified: identity,
186
- draft,
187
- }),
294
+ persist: async (draft) => {
295
+ const at = await persistAddress();
296
+ if (at.isErr())
297
+ return Result.Err(at.Err());
298
+ const base = { chatId: job.chatId, ownerHandle: at.Ok().ownerHandle, appSlug: at.Ok().appSlug, draft };
299
+ const persistArgs = who.kind === "guest"
300
+ ? { ...base, guest: who.verified, ...(guestTurn === undefined ? {} : { promptId: guestTurn.promptId }) }
301
+ : { ...base, auth: who.auth, verified: who.verified };
302
+ return persistDraftBuild(vctx, persistArgs);
303
+ },
188
304
  now: () => Date.now(),
189
305
  log: (event) => vctx.logger.Info().Any("draftLane", event).Msg(`draft-lane-${event.step}`),
190
306
  },
191
307
  });
308
+ if (outcome.kind === "drafted") {
309
+ const reconciled = await reconcileParkedFirstDraft(vctx, job.chatId);
310
+ if (reconciled.isErr())
311
+ vctx.logger.Warn().Err(reconciled.Err()).Str("chatId", job.chatId).Msg("draft-lane-first-draft-reconcile-failed");
312
+ }
313
+ if (guestTurn !== undefined)
314
+ await settleGuestDraft(vctx, guestTurn, outcome);
315
+ if (who.kind === "guest")
316
+ return json(200, { ...outcome });
192
317
  const nowMs = Date.now();
193
318
  captureDraftTurnSettled(vctx, {
194
319
  chatId: job.chatId,