@vibes.diy/api-svc 12.3.2 → 13.0.0

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 (55) hide show
  1. package/index.d.ts +1 -0
  2. package/index.js +1 -0
  3. package/index.js.map +1 -1
  4. package/intern/dead-letter-log.d.ts +10 -0
  5. package/intern/dead-letter-log.js +60 -0
  6. package/intern/dead-letter-log.js.map +1 -0
  7. package/intern/ensure-chat-id.d.ts +1 -0
  8. package/intern/ensure-chat-id.js +4 -2
  9. package/intern/ensure-chat-id.js.map +1 -1
  10. package/intern/get-open-turn.js +19 -6
  11. package/intern/get-open-turn.js.map +1 -1
  12. package/intern/half-open-turn.d.ts +5 -2
  13. package/intern/half-open-turn.js +7 -3
  14. package/intern/half-open-turn.js.map +1 -1
  15. package/intern/mint-admission.d.ts +1 -0
  16. package/intern/mint-admission.js +10 -0
  17. package/intern/mint-admission.js.map +1 -1
  18. package/intern/mint-fire-core.d.ts +2 -1
  19. package/intern/mint-fire-core.js +14 -7
  20. package/intern/mint-fire-core.js.map +1 -1
  21. package/intern/mint-job-store.d.ts +17 -7
  22. package/intern/mint-job-store.js +47 -5
  23. package/intern/mint-job-store.js.map +1 -1
  24. package/intern/prompt-assembly.d.ts +2 -0
  25. package/intern/prompt-assembly.js +9 -1
  26. package/intern/prompt-assembly.js.map +1 -1
  27. package/intern/work-tools.d.ts +13 -1
  28. package/intern/work-tools.js +45 -2
  29. package/intern/work-tools.js.map +1 -1
  30. package/package.json +14 -12
  31. package/public/llm-dispatch.d.ts +1 -0
  32. package/public/llm-dispatch.js +1 -1
  33. package/public/llm-dispatch.js.map +1 -1
  34. package/public/open-chat.js +9 -5
  35. package/public/open-chat.js.map +1 -1
  36. package/public/prompt-chat-section.d.ts +2 -2
  37. package/public/prompt-chat-section.js +20 -5
  38. package/public/prompt-chat-section.js.map +1 -1
  39. package/public/serv-entry-point.js +2 -1
  40. package/public/serv-entry-point.js.map +1 -1
  41. package/public/shared-mint.d.ts +1 -0
  42. package/public/shared-mint.js +10 -4
  43. package/public/shared-mint.js.map +1 -1
  44. package/usage-report/backfill-published-chips-util.d.ts +43 -0
  45. package/usage-report/backfill-published-chips-util.js +120 -0
  46. package/usage-report/backfill-published-chips-util.js.map +1 -0
  47. package/usage-report/backfill-published-chips.d.ts +1 -0
  48. package/usage-report/backfill-published-chips.js +97 -0
  49. package/usage-report/backfill-published-chips.js.map +1 -0
  50. package/usage-report/new-user-alert-util.d.ts +100 -0
  51. package/usage-report/new-user-alert-util.js +138 -0
  52. package/usage-report/new-user-alert-util.js.map +1 -0
  53. package/usage-report/new-user-alert.d.ts +1 -0
  54. package/usage-report/new-user-alert.js +227 -0
  55. package/usage-report/new-user-alert.js.map +1 -0
package/index.d.ts CHANGED
@@ -32,6 +32,7 @@ export * from "./intern/notify-request-pending.js";
32
32
  export * from "./intern/notify-dm-received.js";
33
33
  export * from "./intern/notify-social-edge.js";
34
34
  export * from "./intern/notify-tick-silent.js";
35
+ export * from "./intern/dead-letter-log.js";
35
36
  export * from "./intern/prune-vibe-logs.js";
36
37
  export * from "./intern/recovery.js";
37
38
  export * from "./intern/llm-tool-loop.js";
package/index.js CHANGED
@@ -32,6 +32,7 @@ export * from "./intern/notify-request-pending.js";
32
32
  export * from "./intern/notify-dm-received.js";
33
33
  export * from "./intern/notify-social-edge.js";
34
34
  export * from "./intern/notify-tick-silent.js";
35
+ export * from "./intern/dead-letter-log.js";
35
36
  export * from "./intern/prune-vibe-logs.js";
36
37
  export * from "./intern/recovery.js";
37
38
  export * from "./intern/llm-tool-loop.js";
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PruneVibeLogsSql } from "./prune-vibe-logs.js";
2
+ export declare const DEAD_LETTER_FS_ID = "unknown";
3
+ export interface UndeliveredBackendEventInput {
4
+ readonly body: unknown;
5
+ readonly attempts: number;
6
+ readonly reason: string;
7
+ readonly nowMs?: number;
8
+ readonly idSuffix?: string;
9
+ }
10
+ export declare function recordUndeliveredBackendEvent(sql: PruneVibeLogsSql, input: UndeliveredBackendEventInput): Promise<boolean>;
@@ -0,0 +1,60 @@
1
+ import { exception2Result } from "@adviser/cement";
2
+ import { isEvtBackendArm, isEvtBackendOnChange, mintLogEventId, newLogIdLatch, truncateLogBody, } from "@vibes.diy/api-types";
3
+ export const DEAD_LETTER_FS_ID = "unknown";
4
+ const deadLetterIdLatch = newLogIdLatch();
5
+ function parsePayload(body) {
6
+ const parsed = typeof body === "string" ? exception2Result(() => JSON.parse(body)) : undefined;
7
+ const root = parsed ? (parsed.isOk() ? parsed.Ok() : undefined) : body;
8
+ if (root === null || typeof root !== "object")
9
+ return undefined;
10
+ const envelope = root.payload;
11
+ return envelope !== undefined ? envelope : root;
12
+ }
13
+ export async function recordUndeliveredBackendEvent(sql, input) {
14
+ const payload = parsePayload(input.body);
15
+ let addressed;
16
+ if (isEvtBackendOnChange(payload)) {
17
+ const evt = payload;
18
+ addressed = {
19
+ ownerHandle: evt.ownerHandle,
20
+ appSlug: evt.appSlug,
21
+ trigger: "onchange",
22
+ what: `platform: onChange delivery gave up after ${input.attempts} attempts — ${input.reason}. ` +
23
+ `db=${evt.dbName} doc=${evt.docId} seq=${evt.seq}`,
24
+ };
25
+ }
26
+ else if (isEvtBackendArm(payload)) {
27
+ const evt = payload;
28
+ addressed = {
29
+ ownerHandle: evt.ownerHandle,
30
+ appSlug: evt.appSlug,
31
+ trigger: "scheduled",
32
+ what: `platform: schedule re-arm delivery gave up after ${input.attempts} attempts — ${input.reason}`,
33
+ };
34
+ }
35
+ if (!addressed)
36
+ return false;
37
+ const now = input.nowMs ?? Date.now();
38
+ const row = {
39
+ id: mintLogEventId(deadLetterIdLatch, now, input.idSuffix ?? crypto.randomUUID()),
40
+ ownerHandle: addressed.ownerHandle,
41
+ appSlug: addressed.appSlug,
42
+ lane: "backend",
43
+ level: "error",
44
+ ts: new Date(now).toISOString(),
45
+ fsId: DEAD_LETTER_FS_ID,
46
+ trigger: addressed.trigger,
47
+ sessionId: null,
48
+ deviceHash: null,
49
+ viewerHandle: null,
50
+ body: truncateLogBody(addressed.what),
51
+ country: null,
52
+ };
53
+ const rIns = await exception2Result(() => sql.db.insert(sql.tables.vibeLogEvents).values(row));
54
+ if (rIns.isErr()) {
55
+ console.error("[queue-dead-end] failed to record the undelivered event", { ownerHandle: addressed.ownerHandle, appSlug: addressed.appSlug, trigger: addressed.trigger }, rIns.Err());
56
+ return false;
57
+ }
58
+ return true;
59
+ }
60
+ //# sourceMappingURL=dead-letter-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-letter-log.js","sourceRoot":"","sources":["../../jsr/intern/dead-letter-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,GAIhB,MAAM,sBAAsB,CAAC;AAa9B,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAe3C,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAe1C,SAAS,YAAY,CAAC,IAAa;IACjC,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAGhE,MAAM,QAAQ,GAAI,IAA8B,CAAC,OAAO,CAAC;IACzD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAmCD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,GAAqB,EAAE,KAAmC;IAC5G,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,SAAsG,CAAC;IAC3G,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAA6B,CAAC;QAC1C,SAAS,GAAG;YACV,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,UAAU;YACnB,IAAI,EACF,6CAA6C,KAAK,CAAC,QAAQ,eAAe,KAAK,CAAC,MAAM,IAAI;gBAC1F,MAAM,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE;SACrD,CAAC;IACJ,CAAC;SAAM,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,OAAwB,CAAC;QACrC,SAAS,GAAG;YACV,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YAGpB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,oDAAoD,KAAK,CAAC,QAAQ,eAAe,KAAK,CAAC,MAAM,EAAE;SACtG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,cAAc,CAAC,iBAAiB,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACjF,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,IAAI,EAAE,SAAkB;QACxB,KAAK,EAAE,OAAgB;QACvB,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;QAC/B,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,SAAS,CAAC,OAAO;QAE1B,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QAGjB,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EAC9F,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -18,6 +18,7 @@ interface EnsureChatIdPResult {
18
18
  chatId: string;
19
19
  draft?: boolean;
20
20
  chatCreated?: boolean;
21
+ mintJobOrder?: Promise<Result<void>>;
21
22
  }
22
23
  export declare function dryRunHandleIsForeign(ctx: VibesApiSQLCtx, handle: string, userId: string): Promise<Result<boolean>>;
23
24
  export declare function ensureChatId(ctx: VibesApiSQLCtx, req: ReqWithVerifiedAuth<ReqOpenChat>): Promise<Result<EnsureChatIdPResult>>;
@@ -93,6 +93,7 @@ export async function ensureChatId(ctx, req) {
93
93
  let chatId;
94
94
  let chatCreated = false;
95
95
  let draft = false;
96
+ let mintJobOrder;
96
97
  const userId = req._auth.verifiedAuth.claims.userId;
97
98
  if (req.dryRun === true && !req.chatId) {
98
99
  return dryRunResolveChatId(ctx, req);
@@ -237,7 +238,7 @@ export async function ensureChatId(ctx, req) {
237
238
  }
238
239
  if (preAllocEligible(req)) {
239
240
  const mintPrompt = req.prompt;
240
- void upsertPendingMintJob(ctx, { chatId, userId, ownerHandle, appSlug, prompt: mintPrompt }).then((rJob) => {
241
+ mintJobOrder = upsertPendingMintJob(ctx, { chatId, userId, ownerHandle, appSlug, prompt: mintPrompt }).then((rJob) => {
241
242
  if (rJob.isErr()) {
242
243
  ensureLogger(ctx.sthis, "ensureChatId")
243
244
  .Error()
@@ -246,6 +247,7 @@ export async function ensureChatId(ctx, req) {
246
247
  .Str("appSlug", appSlug)
247
248
  .Msg("failed to persist first-build mint job order");
248
249
  }
250
+ return rJob;
249
251
  });
250
252
  }
251
253
  if (!draft &&
@@ -276,7 +278,7 @@ export async function ensureChatId(ctx, req) {
276
278
  }
277
279
  }
278
280
  const isDraft = draft || isDraftOwnerHandle(ownerHandle);
279
- return Result.Ok({ appSlug, ownerHandle, chatId, chatCreated, ...(isDraft ? { draft: true } : {}) });
281
+ return Result.Ok({ appSlug, ownerHandle, chatId, chatCreated, ...(isDraft ? { draft: true } : {}), mintJobOrder });
280
282
  }
281
283
  function proposeDraftAppSlug(ctx, explicit, preferredPairs) {
282
284
  const candidates = [
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-chat-id.js","sourceRoot":"","sources":["../../jsr/intern/ensure-chat-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAA0B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAYL,kBAAkB,EAGlB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,UAAU,GAKX,MAAM,sBAAsB,CAAC;AAS9B,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAC5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAO9D,MAAM,UAAU,gBAAgB,CAAC,GAGhC;IACC,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3D,CAAC;AA+BD,KAAK,UAAU,mBAAmB,CAChC,GAAmB,EACnB,GAAqC;IAErC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;IAEpD,IAAI,WAAmB,CAAC;IACxB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAO9C,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;YAIhB,MAAM,GAAG,GACP,GAAG,CAAC,OAAO,KAAK,SAAS;gBACvB,CAAC,CAAC,MAAM,sBAAsB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC3G,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAOjB,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE;oBAChD,YAAY,EAAE,MAAM;oBACpB,oBAAoB,EAAE,GAAG,CAAC,WAAW;oBACrC,oBAAoB,EAAE,SAAS;oBAC/B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;gBACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,WAAW,4BAA4B,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QACD,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,IAAI,cAAc,EAAE,CAAC;YACnB,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;QAC3C,CAAC;aAAM,CAAC;YAUN,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACzC,GAAG,CAAC,GAAG,CAAC,EAAE;iBACP,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;iBACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;iBAClC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;iBACtD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;iBACnD,KAAK,CAAC,CAAC,CAAC;iBACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;YACF,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAKjG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC5C,GAAG,CAAC,GAAG,CAAC,EAAE;aACP,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;aACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;aACjC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,EACxD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CACjD,CACF;aACA,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAID,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IACxC,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;AACrD,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAmB,EAAE,MAAc,EAAE,MAAc;IAC7F,IAAI,MAAM,KAAK,0BAA0B;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;aAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;aACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;aAClC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACtD,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAmB,EACnB,GAAqC;IAErC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,MAA0B,CAAC;IAC/B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;IAIpD,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC1C,GAAG,CAAC,GAAG,CAAC,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;aACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CACjH,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5B,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC;SAAM,CAAC;QAEN,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAKpB,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE;gBACjF,MAAM;gBACN,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;YAI9B,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC,CAAC;YACrH,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,sCAAsC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5G,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,cAAc,EAAE,CAAC;gBACnB,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9F,IAAI,MAAM,CAAC,KAAK,EAAE;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/F,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChC,IAAI,WAAW,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;oBAO1C,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;wBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC,CAAC;oBAC1G,KAAK,GAAG,IAAI,CAAC;oBACb,WAAW,GAAG,kBAAkB,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC9C,MAAM,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC1C,GAAG,CAAC,GAAG,CAAC,EAAE;iBACP,MAAM,EAAE;iBACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;iBACjC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,EACxD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CACpD,CACF,CACJ,CAAC;YACF,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAC3B,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,WAAW,GAAG,IAAI,CAAC;YAKnB,IAAI,cAA6D,CAAC;YAClE,IAAI,cAAoC,CAAC;YACzC,IAAI,uBAA2C,CAAC;YAChD,IAAI,aAAiC,CAAC;YACtC,IAAI,sBAA0C,CAAC;YAC/C,IAAI,wBAA6C,CAAC;YAClD,IAAI,gBAA+C,CAAC;YAKpD,IAAI,eAA8C,CAAC;YAMnD,IAAI,aAAgC,CAAC;YACrC,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAI1B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;oBACjC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;oBAClC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;oBACpD,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;oBAChC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;oBAClD,wBAAwB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;oBACtD,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;oBACtC,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;oBACpC,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBACzF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACjF,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrD,aAAa,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,IAAI,WAA+B,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBAKV,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAChE,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gBAClC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;oBACxC,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,QAAQ,EAAE;wBACR,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;wBAClE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;wBACnE,GAAG,CAAC,uBAAuB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;wBAC9F,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;wBAChE,GAAG,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC;wBAC3F,GAAG,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;wBACjG,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;wBACzE,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;wBACtE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;qBACjE;iBACF,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnB,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvG,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnB,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;gBAC9B,WAAW,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;gBACtC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gBAClC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;oBAC1D,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,WAAW;oBACX,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBAClC,CAAC,CAAC;YACL,CAAC;YAuBD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC9B,KAAK,oBAAoB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzG,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;wBACjB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC;6BACpC,KAAK,EAAE;6BACP,GAAG,CAAC,IAAI,CAAC;6BACT,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;6BACrB,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;6BACvB,GAAG,CAAC,8CAA8C,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAMD,IACE,CAAC,KAAK;gBACN,CAAC,WAAW,KAAK,SAAS;oBACxB,CAAC,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3D,uBAAuB,KAAK,SAAS;oBACrC,aAAa,KAAK,SAAS;oBAC3B,sBAAsB,KAAK,SAAS;oBACpC,wBAAwB,KAAK,IAAI;oBACjC,gBAAgB,KAAK,SAAS;oBAC9B,eAAe,KAAK,SAAS;oBAC7B,aAAa,KAAK,SAAS,CAAC,EAC9B,CAAC;gBACD,MAAM,0BAA0B,CAAC,GAAG,EAAE;oBACpC,MAAM;oBACN,WAAW;oBACX,OAAO;oBACP,KAAK,EAAE,WAAW;oBAClB,MAAM,EAAE,cAAc;oBACtB,eAAe,EAAE,uBAAuB;oBACxC,KAAK,EAAE,aAAa;oBACpB,cAAc,EAAE,sBAAsB;oBACtC,gBAAgB,EAAE,wBAAwB;oBAC1C,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,aAAa;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAKD,MAAM,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvG,CAAC;AAOD,SAAS,mBAAmB,CAC1B,GAAmB,EACnB,QAA4B,EAC5B,cAA6D;IAE7D,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7C,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;IAC7C,CAAC;IAID,OAAO,SAAS,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AACpE,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAmB,EACnB,EACE,MAAM,EACN,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,eAAe,EACf,KAAK,EACL,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,KAAK,GAcN;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAwB,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAyB,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAwB,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,eAAe,EAAkC,CAAC,CAAC;IAClH,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,cAAc,EAAiC,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAG9B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,IAAI,EAAmC,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC;QAIhG,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,yBAAyB;YAC/B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3B,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAM1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAkC,CAAC,CAAC;QAChH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAA6B,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAMxB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,KAAK,EAAwB,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAIjC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7H,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,4BAA4B,CAAC;aAClD,KAAK,EAAE;aACP,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;aAC9C,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,MAAM,GAAG,CAAC,SAAS,CAAC;QAClB,OAAO,EAAE;YACP,IAAI,EAAE,2BAA2B;YACjC,WAAW;YACX,OAAO;YACP,QAAQ,EAAE,OAAO;SAClB;QACD,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,eAAe;QACpB,GAAG,EAAE,CAAC;KAC0B,CAAC,CAAC;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,GAAG,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE;gBACP,IAAI,EAAE,wBAAwB;gBAC9B,WAAW;gBACX,OAAO;aACR;YACD,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,eAAe;YACpB,GAAG,EAAE,CAAC;SACuB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ensure-chat-id.js","sourceRoot":"","sources":["../../jsr/intern/ensure-chat-id.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { exception2Result, Result } from "@adviser/cement";
2
- import { and, desc, eq, ne } from "drizzle-orm/sql/expressions";
2
+ import { and, desc, eq, inArray, ne } from "drizzle-orm/sql/expressions";
3
3
  import { RESEARCH_BLOCK_SEQ } from "@vibes.diy/api-types";
4
- import { isChatTurnOpen } from "./half-open-turn.js";
4
+ import { isChatTurnOpen, latestTurnPromptId } from "./half-open-turn.js";
5
5
  const OPEN_TURN_SCAN_LIMIT = 40;
6
6
  export async function ownerHasOpenTurn(ctx, q, nowMs) {
7
7
  return exception2Result(async () => {
@@ -14,19 +14,32 @@ export async function ownerHasOpenTurn(ctx, q, nowMs) {
14
14
  .then((r) => r[0]);
15
15
  if (chat === undefined)
16
16
  return Result.Ok(false);
17
- const rows = await ctx.sql.db
17
+ const metaRows = await ctx.sql.db
18
18
  .select({
19
19
  promptId: ctx.sql.tables.chatSections.promptId,
20
- blocks: ctx.sql.tables.chatSections.blocks,
20
+ blockSeq: ctx.sql.tables.chatSections.blockSeq,
21
21
  created: ctx.sql.tables.chatSections.created,
22
22
  })
23
23
  .from(ctx.sql.tables.chatSections)
24
24
  .where(and(eq(ctx.sql.tables.chatSections.chatId, chat.chatId), ne(ctx.sql.tables.chatSections.blockSeq, RESEARCH_BLOCK_SEQ)))
25
25
  .orderBy(desc(ctx.sql.tables.chatSections.created))
26
26
  .limit(OPEN_TURN_SCAN_LIMIT);
27
- const turnRows = rows.map((row) => ({
27
+ const latestPromptId = latestTurnPromptId(metaRows);
28
+ if (latestPromptId === undefined)
29
+ return Result.Ok(false);
30
+ const windowRows = metaRows.filter((row) => row.promptId === latestPromptId);
31
+ const blockSeqs = [...new Set(windowRows.map((row) => row.blockSeq))];
32
+ const blockRows = await ctx.sql.db
33
+ .select({
34
+ blockSeq: ctx.sql.tables.chatSections.blockSeq,
35
+ blocks: ctx.sql.tables.chatSections.blocks,
36
+ })
37
+ .from(ctx.sql.tables.chatSections)
38
+ .where(and(eq(ctx.sql.tables.chatSections.chatId, chat.chatId), eq(ctx.sql.tables.chatSections.promptId, latestPromptId), inArray(ctx.sql.tables.chatSections.blockSeq, blockSeqs)));
39
+ const blocksBySeq = new Map(blockRows.map((row) => [row.blockSeq, Array.isArray(row.blocks) ? row.blocks : []]));
40
+ const turnRows = windowRows.map((row) => ({
28
41
  promptId: row.promptId,
29
- blocks: Array.isArray(row.blocks) ? row.blocks : [],
42
+ blocks: blocksBySeq.get(row.blockSeq) ?? [],
30
43
  created: row.created,
31
44
  }));
32
45
  return Result.Ok(isChatTurnOpen(turnRows, nowMs));
@@ -1 +1 @@
1
- {"version":3,"file":"get-open-turn.js","sourceRoot":"","sources":["../../jsr/intern/get-open-turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-open-turn.js","sourceRoot":"","sources":["../../jsr/intern/get-open-turn.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  export declare const SSR_OPEN_TURN_MAX_AGE_MS = 600000;
2
- export interface OpenTurnRow {
3
- readonly promptId: string;
2
+ export interface OpenTurnRow extends OpenTurnMetaRow {
4
3
  readonly blocks: readonly unknown[];
4
+ }
5
+ export interface OpenTurnMetaRow {
6
+ readonly promptId: string;
5
7
  readonly created: string;
6
8
  }
9
+ export declare function latestTurnPromptId(rows: readonly OpenTurnMetaRow[]): string | undefined;
7
10
  export declare function isChatTurnOpen(rows: readonly OpenTurnRow[], nowMs: number): boolean;
@@ -1,8 +1,6 @@
1
1
  import { isPromptReq, isPromptBlockBegin, isPromptBlockEnd, isPromptError } from "@vibes.diy/api-types";
2
2
  export const SSR_OPEN_TURN_MAX_AGE_MS = 600_000;
3
- export function isChatTurnOpen(rows, nowMs) {
4
- if (rows.length === 0)
5
- return false;
3
+ export function latestTurnPromptId(rows) {
6
4
  let latestPromptId = undefined;
7
5
  let latestCreatedMs = Number.NEGATIVE_INFINITY;
8
6
  for (const row of rows) {
@@ -14,6 +12,12 @@ export function isChatTurnOpen(rows, nowMs) {
14
12
  latestPromptId = row.promptId;
15
13
  }
16
14
  }
15
+ return latestPromptId;
16
+ }
17
+ export function isChatTurnOpen(rows, nowMs) {
18
+ if (rows.length === 0)
19
+ return false;
20
+ const latestPromptId = latestTurnPromptId(rows);
17
21
  if (latestPromptId === undefined)
18
22
  return false;
19
23
  let hasReq = false;
@@ -1 +1 @@
1
- {"version":3,"file":"half-open-turn.js","sourceRoot":"","sources":["../../jsr/intern/half-open-turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAYxG,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAoBhD,MAAM,UAAU,cAAc,CAAC,IAA4B,EAAE,KAAa;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpC,IAAI,cAAc,GAAuB,SAAS,CAAC;IACnD,IAAI,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,SAAS;QAC/B,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;YACzB,eAAe,GAAG,EAAE,CAAC;YACrB,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IACD,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc;YAAE,SAAS;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE,GAAG,YAAY;YAAE,YAAY,GAAG,EAAE,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,MAAM,GAAG,IAAI,CAAC;YACjF,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,WAAW,GAAG,IAAI,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,YAAY,KAAK,MAAM,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,KAAK,GAAG,YAAY,IAAI,wBAAwB,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"half-open-turn.js","sourceRoot":"","sources":["../../jsr/intern/half-open-turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAYxG,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAuBhD,MAAM,UAAU,kBAAkB,CAAC,IAAgC;IACjE,IAAI,cAAc,GAAuB,SAAS,CAAC;IACnD,IAAI,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,SAAS;QAC/B,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;YACzB,eAAe,GAAG,EAAE,CAAC;YACrB,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAUD,MAAM,UAAU,cAAc,CAAC,IAA4B,EAAE,KAAa;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc;YAAE,SAAS;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE,GAAG,YAAY;YAAE,YAAY,GAAG,EAAE,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,MAAM,GAAG,IAAI,CAAC;YACjF,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,WAAW,GAAG,IAAI,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,YAAY,KAAK,MAAM,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,KAAK,GAAG,YAAY,IAAI,wBAAwB,CAAC;AAC1D,CAAC"}
@@ -2,3 +2,4 @@ import type { MintAdmission } from "@vibes.diy/api-types";
2
2
  export type { MintAdmission };
3
3
  export declare function tryReserveMint(adm: MintAdmission): boolean;
4
4
  export declare function releaseMint(adm: MintAdmission): void;
5
+ export declare function mintReleaseOnce(adm: MintAdmission | undefined): () => void;
@@ -8,4 +8,14 @@ export function releaseMint(adm) {
8
8
  if (adm.active > 0)
9
9
  adm.active -= 1;
10
10
  }
11
+ export function mintReleaseOnce(adm) {
12
+ let released = false;
13
+ return () => {
14
+ if (released)
15
+ return;
16
+ released = true;
17
+ if (adm !== undefined)
18
+ releaseMint(adm);
19
+ };
20
+ }
11
21
  //# sourceMappingURL=mint-admission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mint-admission.js","sourceRoot":"","sources":["../../jsr/intern/mint-admission.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC1C,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,MAAM,UAAU,WAAW,CAAC,GAAkB;IAC5C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"mint-admission.js","sourceRoot":"","sources":["../../jsr/intern/mint-admission.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC1C,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,MAAM,UAAU,WAAW,CAAC,GAAkB;IAC5C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACtC,CAAC;AAUD,MAAM,UAAU,eAAe,CAAC,GAA8B;IAC5D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO,GAAG,EAAE;QACV,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,GAAG,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC"}
@@ -17,12 +17,13 @@ export interface RunMintFireOpts {
17
17
  readonly vctx: VibesApiSQLCtx;
18
18
  readonly ownerHandle?: string;
19
19
  readonly appSlug?: string;
20
+ readonly jobOrder?: Promise<unknown>;
20
21
  }
21
22
  export type FirstTurnOutcome = "done" | "failed" | "already-built" | "parked";
22
23
  export interface FirstTurnRetryDeps {
23
24
  readonly maxAttempts: number;
24
25
  fireOnce(): Promise<Result<unknown>>;
25
- hasTurn(): Promise<boolean>;
26
+ hasTurn(): Promise<Result<boolean>>;
26
27
  onDone(): Promise<void>;
27
28
  onRetry(attempt: number, err: string): Promise<void>;
28
29
  onFailed(err: string): Promise<void>;
@@ -3,7 +3,7 @@ import { ensureLogger } from "@vibes.diy/identity";
3
3
  import { promptChatSection } from "../public/prompt-chat-section.js";
4
4
  import { waitMs } from "../public/provider-errors.js";
5
5
  import { wrapMsgBase } from "../unwrap-msg-base.js";
6
- import { chatHasAnyTurn, markMintJob, persistMintFailureSection } from "./mint-job-store.js";
6
+ import { chatHasAnyTurn, markMintJobLogged, persistMintFailureSection } from "./mint-job-store.js";
7
7
  async function fanOutSectionLive(args) {
8
8
  const msgBase = wrapMsgBase(args.base, {
9
9
  payload: {
@@ -31,7 +31,13 @@ const MINT_FIRE_BACKOFF_BASE_MS = 500;
31
31
  export async function runFirstTurnWithRetry(deps) {
32
32
  let lastError = "mint-fired first turn failed";
33
33
  for (let attempt = 1; attempt <= deps.maxAttempts; attempt += 1) {
34
- if (await deps.hasTurn()) {
34
+ const rHasTurn = await deps.hasTurn();
35
+ if (rHasTurn.isErr()) {
36
+ deps.releaseSlot();
37
+ await deps.onParked();
38
+ return "parked";
39
+ }
40
+ if (rHasTurn.Ok()) {
35
41
  deps.releaseSlot();
36
42
  await deps.onDone();
37
43
  return "already-built";
@@ -70,7 +76,7 @@ export function releaseCodegenSlot(adm) {
70
76
  function noopStart() {
71
77
  }
72
78
  export function runMintFire(host, opts) {
73
- const { chatId, prompt, auth, outerTid, vctx, ownerHandle, appSlug } = opts;
79
+ const { chatId, prompt, auth, outerTid, vctx, ownerHandle, appSlug, jobOrder } = opts;
74
80
  const adm = host.ctx.get("codegenAdmission");
75
81
  if (reserveCodegenSlot(adm) === false) {
76
82
  return { accepted: false, start: noopStart };
@@ -106,6 +112,7 @@ export function runMintFire(host, opts) {
106
112
  };
107
113
  const LIVE = ["pending", "parked", "retrying"];
108
114
  const log = ensureLogger(vctx.sthis, "mintFire");
115
+ const writeCtx = { chatId, ownerHandle, appSlug, logModule: "mintFire", jobOrder };
109
116
  async function fireFirstTurn() {
110
117
  await runFirstTurnWithRetry({
111
118
  maxAttempts: MINT_FIRE_MAX_ATTEMPTS,
@@ -123,7 +130,7 @@ export function runMintFire(host, opts) {
123
130
  .Int("attempt", attempt)
124
131
  .Str("err", err)
125
132
  .Msg("mint-fired first turn failed — retrying");
126
- await markMintJob(vctx, chatId, { status: "retrying", attempts: attempt, lastError: err, onlyFrom: LIVE });
133
+ await markMintJobLogged(vctx, writeCtx, { status: "retrying", attempts: attempt, lastError: err, onlyFrom: LIVE });
127
134
  },
128
135
  onParked: async () => {
129
136
  log
@@ -132,7 +139,7 @@ export function runMintFire(host, opts) {
132
139
  .Str("ownerHandle", ownerHandle ?? "")
133
140
  .Str("appSlug", appSlug ?? "")
134
141
  .Msg("mint fire slot unavailable after backoff — parking for reopen retry");
135
- await markMintJob(vctx, chatId, { status: "parked", onlyFrom: ["retrying"] });
142
+ await markMintJobLogged(vctx, writeCtx, { status: "parked", onlyFrom: LIVE });
136
143
  },
137
144
  onFailed: async (err) => {
138
145
  log
@@ -142,7 +149,7 @@ export function runMintFire(host, opts) {
142
149
  .Str("appSlug", appSlug ?? "")
143
150
  .Str("err", err)
144
151
  .Msg("mint-fired first turn failed — retries exhausted, marking job failed");
145
- await markMintJob(vctx, chatId, {
152
+ await markMintJobLogged(vctx, writeCtx, {
146
153
  status: "failed",
147
154
  attempts: MINT_FIRE_MAX_ATTEMPTS,
148
155
  lastError: err,
@@ -165,7 +172,7 @@ export function runMintFire(host, opts) {
165
172
  });
166
173
  }
167
174
  },
168
- onDone: () => markMintJob(vctx, chatId, { status: "done", onlyFrom: LIVE }).then(() => undefined),
175
+ onDone: () => markMintJobLogged(vctx, writeCtx, { status: "done", onlyFrom: LIVE }).then(() => undefined),
169
176
  });
170
177
  }
171
178
  function startFire() {
@@ -1 +1 @@
1
- {"version":3,"file":"mint-fire-core.js","sourceRoot":"","sources":["../../jsr/intern/mint-fire-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mint-fire-core.js","sourceRoot":"","sources":["../../jsr/intern/mint-fire-core.ts"],"names":[],"mappings":"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"}
@@ -15,19 +15,29 @@ export declare function upsertPendingMintJob(vctx: VibesApiSQLCtx, args: {
15
15
  appSlug: string;
16
16
  prompt: string;
17
17
  }): Promise<Result<void>>;
18
- export declare function markMintJob(vctx: VibesApiSQLCtx, chatId: string, patch: {
19
- status: MintJobStatus;
20
- attempts?: number;
21
- lastError?: string | null;
22
- onlyFrom?: MintJobStatus[];
23
- }): Promise<Result<void>>;
18
+ export interface MintJobPatch {
19
+ readonly status: MintJobStatus;
20
+ readonly attempts?: number;
21
+ readonly lastError?: string | null;
22
+ readonly onlyFrom?: MintJobStatus[];
23
+ }
24
+ export declare function markMintJob(vctx: VibesApiSQLCtx, chatId: string, patch: MintJobPatch): Promise<Result<boolean>>;
25
+ export declare const MINT_JOB_ABSENT_RETRY_TOTAL_MS: number;
26
+ export interface MintJobWriteCtx {
27
+ readonly chatId: string;
28
+ readonly ownerHandle?: string;
29
+ readonly appSlug?: string;
30
+ readonly logModule: string;
31
+ readonly jobOrder?: Promise<unknown>;
32
+ }
33
+ export declare function markMintJobLogged(vctx: VibesApiSQLCtx, wctx: MintJobWriteCtx, patch: MintJobPatch): Promise<boolean>;
24
34
  export declare function claimMintJob(vctx: VibesApiSQLCtx, chatId: string, fromStatuses: MintJobStatus[], toStatus: MintJobStatus): Promise<Result<boolean>>;
25
35
  export declare function getMintJob(vctx: VibesApiSQLCtx, chatId: string): Promise<Result<MintJobRow | undefined>>;
26
36
  export declare function getMintJobBySlug(vctx: VibesApiSQLCtx, args: {
27
37
  ownerHandle: string;
28
38
  appSlug: string;
29
39
  }): Promise<Result<MintJobRow | undefined>>;
30
- export declare function chatHasAnyTurn(vctx: VibesApiSQLCtx, chatId: string): Promise<boolean>;
40
+ export declare function chatHasAnyTurn(vctx: VibesApiSQLCtx, chatId: string): Promise<Result<boolean>>;
31
41
  export declare function persistMintFailureSection(vctx: VibesApiSQLCtx, args: {
32
42
  chatId: string;
33
43
  prompt: string;
@@ -1,5 +1,7 @@
1
1
  import { exception2Result, Result } from "@adviser/cement";
2
+ import { ensureLogger } from "@vibes.diy/identity";
2
3
  import { and, eq, inArray, ne } from "drizzle-orm/sql/expressions";
4
+ import { waitMs } from "../public/provider-errors.js";
3
5
  const MINT_JOB_STATUSES = ["pending", "parked", "retrying", "failed", "done"];
4
6
  export const FAILURE_SECTION_BLOCK_SEQ = -1;
5
7
  function coerceStatus(status) {
@@ -38,10 +40,46 @@ export async function markMintJob(vctx, chatId, patch) {
38
40
  const guard = patch.onlyFrom !== undefined
39
41
  ? and(eq(vctx.sql.tables.mintJobs.chatId, chatId), inArray(vctx.sql.tables.mintJobs.status, patch.onlyFrom))
40
42
  : and(eq(vctx.sql.tables.mintJobs.chatId, chatId), ne(vctx.sql.tables.mintJobs.status, "done"));
41
- const r = await exception2Result(() => vctx.sql.db.update(vctx.sql.tables.mintJobs).set(set).where(guard));
43
+ const r = await exception2Result(() => vctx.sql.db.update(vctx.sql.tables.mintJobs).set(set).where(guard).returning({ chatId: vctx.sql.tables.mintJobs.chatId }));
42
44
  if (r.isErr())
43
45
  return Result.Err(r);
44
- return Result.Ok(undefined);
46
+ return Result.Ok(r.Ok().length > 0);
47
+ }
48
+ const MINT_JOB_ABSENT_RETRIES = 4;
49
+ const MINT_JOB_ABSENT_RETRY_DELAY_MS = 250;
50
+ export const MINT_JOB_ABSENT_RETRY_TOTAL_MS = MINT_JOB_ABSENT_RETRIES * MINT_JOB_ABSENT_RETRY_DELAY_MS;
51
+ export async function markMintJobLogged(vctx, wctx, patch) {
52
+ const order = wctx.jobOrder;
53
+ if (order !== undefined)
54
+ await exception2Result(() => order);
55
+ let r = await markMintJob(vctx, wctx.chatId, patch);
56
+ let guardRejected = false;
57
+ for (let attempt = 0; attempt < MINT_JOB_ABSENT_RETRIES && r.isOk() && r.Ok() === false; attempt += 1) {
58
+ const rRow = await getMintJob(vctx, wctx.chatId);
59
+ if (rRow.isErr())
60
+ break;
61
+ if (rRow.Ok() !== undefined) {
62
+ guardRejected = true;
63
+ break;
64
+ }
65
+ await waitMs(MINT_JOB_ABSENT_RETRY_DELAY_MS);
66
+ r = await markMintJob(vctx, wctx.chatId, patch);
67
+ }
68
+ if (r.isOk() && r.Ok())
69
+ return true;
70
+ const logger = ensureLogger(vctx.sthis, wctx.logModule);
71
+ const withCtx = (l) => l
72
+ .Str("chatId", wctx.chatId)
73
+ .Str("ownerHandle", wctx.ownerHandle ?? "")
74
+ .Str("appSlug", wctx.appSlug ?? "")
75
+ .Str("status", patch.status);
76
+ if (r.isErr())
77
+ withCtx(logger.Warn()).Err(r).Msg("first-build job status write FAILED — job row left stale");
78
+ else if (guardRejected)
79
+ withCtx(logger.Debug()).Msg("first-build job status write skipped — row already settled past this transition");
80
+ else
81
+ withCtx(logger.Warn()).Msg("first-build job status write matched NO row — job row left stale");
82
+ return false;
45
83
  }
46
84
  export async function claimMintJob(vctx, chatId, fromStatuses, toStatus) {
47
85
  const r = await exception2Result(() => vctx.sql.db
@@ -75,14 +113,18 @@ export async function chatHasAnyTurn(vctx, chatId) {
75
113
  .from(vctx.sql.tables.chatSections)
76
114
  .where(and(eq(vctx.sql.tables.chatSections.chatId, chatId), ne(vctx.sql.tables.chatSections.blockSeq, FAILURE_SECTION_BLOCK_SEQ)))
77
115
  .limit(1));
78
- if (rSection.isOk() && rSection.Ok().length > 0)
79
- return true;
116
+ if (rSection.isErr())
117
+ return Result.Err(rSection);
118
+ if (rSection.Ok().length > 0)
119
+ return Result.Ok(true);
80
120
  const rPrompt = await exception2Result(() => vctx.sql.db
81
121
  .select({ chatId: vctx.sql.tables.promptContexts.chatId })
82
122
  .from(vctx.sql.tables.promptContexts)
83
123
  .where(eq(vctx.sql.tables.promptContexts.chatId, chatId))
84
124
  .limit(1));
85
- return rPrompt.isOk() && rPrompt.Ok().length > 0;
125
+ if (rPrompt.isErr())
126
+ return Result.Err(rPrompt);
127
+ return Result.Ok(rPrompt.Ok().length > 0);
86
128
  }
87
129
  export async function persistMintFailureSection(vctx, args) {
88
130
  const now = new Date();