@vibes.diy/api-svc 14.1.12 → 14.1.14

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 (121) hide show
  1. package/asset-grant.js +3 -0
  2. package/asset-grant.js.map +1 -1
  3. package/billing.d.ts +1 -0
  4. package/billing.js +8 -1
  5. package/billing.js.map +1 -1
  6. package/create-handler.js +4 -1
  7. package/create-handler.js.map +1 -1
  8. package/evento-handler-manifest.js +2 -0
  9. package/evento-handler-manifest.js.map +1 -1
  10. package/intern/agent-assembly.js +29 -21
  11. package/intern/agent-assembly.js.map +1 -1
  12. package/intern/agent-dispatcher.js.map +1 -1
  13. package/intern/agent-instruction.d.ts +1 -1
  14. package/intern/agent-instruction.js +5 -2
  15. package/intern/agent-instruction.js.map +1 -1
  16. package/intern/agent-lane-flag.d.ts +0 -7
  17. package/intern/agent-lane-flag.js +0 -3
  18. package/intern/agent-lane-flag.js.map +1 -1
  19. package/intern/agent-request-frame.d.ts +12 -0
  20. package/intern/agent-request-frame.js +47 -0
  21. package/intern/agent-request-frame.js.map +1 -0
  22. package/intern/agent-session-instruction.d.ts +2 -2
  23. package/intern/agent-session-instruction.js +3 -1
  24. package/intern/agent-session-instruction.js.map +1 -1
  25. package/intern/agent-session-runtime.d.ts +1 -0
  26. package/intern/agent-session-runtime.js +16 -7
  27. package/intern/agent-session-runtime.js.map +1 -1
  28. package/intern/agent-session-store.d.ts +9 -0
  29. package/intern/agent-session-store.js +16 -1
  30. package/intern/agent-session-store.js.map +1 -1
  31. package/intern/agent-session.d.ts +2 -0
  32. package/intern/agent-session.js +22 -1
  33. package/intern/agent-session.js.map +1 -1
  34. package/intern/agent-turn.d.ts +1 -2
  35. package/intern/agent-turn.js +1 -2
  36. package/intern/agent-turn.js.map +1 -1
  37. package/intern/asset-sniff.d.ts +22 -0
  38. package/intern/asset-sniff.js +154 -0
  39. package/intern/asset-sniff.js.map +1 -0
  40. package/intern/autumn-plan.js.map +1 -1
  41. package/intern/kyc.d.ts +25 -0
  42. package/intern/kyc.js +97 -0
  43. package/intern/kyc.js.map +1 -0
  44. package/intern/llm-tool-loop.d.ts +0 -11
  45. package/intern/llm-tool-loop.js +11 -52
  46. package/intern/llm-tool-loop.js.map +1 -1
  47. package/intern/manifest-assets-line.d.ts +2 -0
  48. package/intern/manifest-assets-line.js +12 -0
  49. package/intern/manifest-assets-line.js.map +1 -0
  50. package/intern/open-turn-store.d.ts +9 -0
  51. package/intern/open-turn-store.js +30 -0
  52. package/intern/open-turn-store.js.map +1 -1
  53. package/intern/process-access-bindings.d.ts +3 -5
  54. package/intern/process-access-bindings.js.map +1 -1
  55. package/intern/process-backend-bindings.d.ts +3 -5
  56. package/intern/process-backend-bindings.js.map +1 -1
  57. package/intern/prompt-assembly.js +4 -0
  58. package/intern/prompt-assembly.js.map +1 -1
  59. package/intern/resolve-owned-asset-ref.d.ts +14 -0
  60. package/intern/resolve-owned-asset-ref.js +19 -0
  61. package/intern/resolve-owned-asset-ref.js.map +1 -0
  62. package/intern/resolve-servable-asset.d.ts +40 -0
  63. package/intern/resolve-servable-asset.js +108 -0
  64. package/intern/resolve-servable-asset.js.map +1 -0
  65. package/intern/turn-terminal.d.ts +0 -31
  66. package/intern/turn-terminal.js +0 -0
  67. package/intern/turn-terminal.js.map +1 -1
  68. package/intern/version-timeline.d.ts +9 -2
  69. package/intern/version-timeline.js +33 -10
  70. package/intern/version-timeline.js.map +1 -1
  71. package/intern/write-apps.d.ts +7 -4
  72. package/intern/write-apps.js +3 -0
  73. package/intern/write-apps.js.map +1 -1
  74. package/package.json +14 -14
  75. package/public/asset-original.d.ts +7 -0
  76. package/public/asset-original.js +140 -0
  77. package/public/asset-original.js.map +1 -0
  78. package/public/asset-session.d.ts +1 -0
  79. package/public/asset-session.js +15 -0
  80. package/public/asset-session.js.map +1 -1
  81. package/public/asset-upload-grant.js +13 -0
  82. package/public/asset-upload-grant.js.map +1 -1
  83. package/public/cid-asset.js +29 -5
  84. package/public/cid-asset.js.map +1 -1
  85. package/public/ensure-app-slug-item.d.ts +2 -1
  86. package/public/ensure-app-slug-item.js +59 -11
  87. package/public/ensure-app-slug-item.js.map +1 -1
  88. package/public/ensure-user-settings.js +1 -1
  89. package/public/ensure-user-settings.js.map +1 -1
  90. package/public/files-asset.js +33 -26
  91. package/public/files-asset.js.map +1 -1
  92. package/public/fork-app.js +1 -1
  93. package/public/fork-app.js.map +1 -1
  94. package/public/fs-prompt.js +7 -2
  95. package/public/fs-prompt.js.map +1 -1
  96. package/public/get-app-by-fsid.js +19 -1
  97. package/public/get-app-by-fsid.js.map +1 -1
  98. package/public/llm-dispatch.d.ts +3 -2
  99. package/public/llm-dispatch.js +18 -10
  100. package/public/llm-dispatch.js.map +1 -1
  101. package/public/open-chat.js +21 -12
  102. package/public/open-chat.js.map +1 -1
  103. package/public/prompt-chat-section.js +12 -49
  104. package/public/prompt-chat-section.js.map +1 -1
  105. package/public/put-asset.d.ts +1 -0
  106. package/public/put-asset.js +55 -4
  107. package/public/put-asset.js.map +1 -1
  108. package/public/report-prompt-cache.d.ts +49 -0
  109. package/public/report-prompt-cache.js +257 -0
  110. package/public/report-prompt-cache.js.map +1 -0
  111. package/public/serv-entry-point.js +41 -16
  112. package/public/serv-entry-point.js.map +1 -1
  113. package/public/stream-assembly.d.ts +3 -2
  114. package/public/stream-assembly.js +2 -1
  115. package/public/stream-assembly.js.map +1 -1
  116. package/public/viewer-capabilities.d.ts +3 -0
  117. package/public/viewer-capabilities.js.map +1 -1
  118. package/public/who-am-i.js +5 -4
  119. package/public/who-am-i.js.map +1 -1
  120. package/vibes-req-res-evento.js +2 -1
  121. package/vibes-req-res-evento.js.map +1 -1
@@ -0,0 +1,154 @@
1
+ import { Result, exception2Result } from "@adviser/cement";
2
+ export function isGatedMime(mimeType) {
3
+ const mime = normalizeMime(mimeType);
4
+ if (mime.startsWith("image/"))
5
+ return false;
6
+ if (mime.startsWith("text/"))
7
+ return false;
8
+ if (mime === "application/json")
9
+ return false;
10
+ return true;
11
+ }
12
+ function normalizeMime(mimeType) {
13
+ return mimeType.split(";")[0].trim().toLowerCase();
14
+ }
15
+ const MAGIC = [
16
+ ["image/png", [[0, [0x89, 0x50, 0x4e, 0x47]]]],
17
+ ["image/jpeg", [[0, [0xff, 0xd8, 0xff]]]],
18
+ ["image/gif", [[0, [0x47, 0x49, 0x46, 0x38]]]],
19
+ [
20
+ "image/webp",
21
+ [
22
+ [0, [0x52, 0x49, 0x46, 0x46]],
23
+ [8, [0x57, 0x45, 0x42, 0x50]],
24
+ ],
25
+ ],
26
+ ["application/pdf", [[0, [0x25, 0x50, 0x44, 0x46]]]],
27
+ ["audio/mpeg", [[0, [0x49, 0x44, 0x33]]]],
28
+ [
29
+ "audio/wav",
30
+ [
31
+ [0, [0x52, 0x49, 0x46, 0x46]],
32
+ [8, [0x57, 0x41, 0x56, 0x45]],
33
+ ],
34
+ ],
35
+ ["audio/ogg", [[0, [0x4f, 0x67, 0x67, 0x53]]]],
36
+ [
37
+ "audio/mp4",
38
+ [
39
+ [4, [0x66, 0x74, 0x79, 0x70]],
40
+ [8, [0x4d, 0x34, 0x41, 0x20]],
41
+ ],
42
+ ],
43
+ [
44
+ "image/avif",
45
+ [
46
+ [4, [0x66, 0x74, 0x79, 0x70]],
47
+ [8, [0x61, 0x76, 0x69, 0x66]],
48
+ ],
49
+ ],
50
+ ["font/woff2", [[0, [0x77, 0x4f, 0x46, 0x32]]]],
51
+ ["font/ttf", [[0, [0x00, 0x01, 0x00, 0x00]]]],
52
+ ];
53
+ export const ASSET_TYPES = MAGIC.map(([mime, magic]) => ({
54
+ mime,
55
+ magic,
56
+ gated: isGatedMime(mime),
57
+ }));
58
+ export function sniffMime(head) {
59
+ for (const t of ASSET_TYPES) {
60
+ if (t.magic.every(([off, bytes]) => bytes.every((b, i) => head[off + i] === b)))
61
+ return t.mime;
62
+ }
63
+ return null;
64
+ }
65
+ export function isSniffableMime(mimeType) {
66
+ if (mimeType === undefined)
67
+ return false;
68
+ const mime = normalizeMime(mimeType);
69
+ return ASSET_TYPES.some((t) => t.mime === mime);
70
+ }
71
+ export const IMAGE_CAP_BYTES = 25 * 1024 * 1024;
72
+ export const OTHER_CAP_BYTES = 50 * 1024 * 1024;
73
+ export function assetCapBytes(mimeType) {
74
+ if (mimeType === undefined)
75
+ return OTHER_CAP_BYTES;
76
+ return normalizeMime(mimeType).startsWith("image/") ? IMAGE_CAP_BYTES : OTHER_CAP_BYTES;
77
+ }
78
+ export function effectiveCapBytes(claimed, sniffed) {
79
+ const fromClaim = assetCapBytes(claimed);
80
+ if (sniffed === null)
81
+ return fromClaim;
82
+ return Math.min(fromClaim, assetCapBytes(sniffed));
83
+ }
84
+ export const OVER_CAP_MARKER = "asset-over-cap";
85
+ export function countingStream(cap, onHead) {
86
+ let total = 0;
87
+ let sawHead = false;
88
+ return new TransformStream({
89
+ transform(chunk, controller) {
90
+ total += chunk.byteLength;
91
+ if (total > cap) {
92
+ controller.error(new Error(`${OVER_CAP_MARKER}: ${cap}`));
93
+ return;
94
+ }
95
+ if (sawHead === false) {
96
+ sawHead = true;
97
+ onHead?.(chunk.slice(0, HEAD_BYTES));
98
+ }
99
+ controller.enqueue(chunk);
100
+ },
101
+ });
102
+ }
103
+ export const HEAD_BYTES = 16;
104
+ export async function peekHead(body, n = HEAD_BYTES) {
105
+ const reader = body.getReader();
106
+ const buffered = [];
107
+ const rRead = await exception2Result(async () => {
108
+ let got = 0;
109
+ while (got < n) {
110
+ const { done, value } = await reader.read();
111
+ if (done)
112
+ break;
113
+ if (value === undefined)
114
+ continue;
115
+ buffered.push(value);
116
+ got += value.byteLength;
117
+ }
118
+ return got;
119
+ });
120
+ if (rRead.isErr()) {
121
+ await exception2Result(() => reader.cancel(rRead.Err()));
122
+ return Result.Err(rRead.Err());
123
+ }
124
+ const head = new Uint8Array(Math.min(rRead.Ok(), n));
125
+ let off = 0;
126
+ for (const chunk of buffered) {
127
+ if (off >= head.length)
128
+ break;
129
+ const take = Math.min(chunk.byteLength, head.length - off);
130
+ head.set(chunk.subarray(0, take), off);
131
+ off += take;
132
+ }
133
+ const stream = new ReadableStream({
134
+ async pull(controller) {
135
+ const pending = buffered.shift();
136
+ if (pending !== undefined) {
137
+ controller.enqueue(pending);
138
+ return;
139
+ }
140
+ const { done, value } = await reader.read();
141
+ if (done) {
142
+ controller.close();
143
+ return;
144
+ }
145
+ if (value !== undefined)
146
+ controller.enqueue(value);
147
+ },
148
+ cancel(reason) {
149
+ return reader.cancel(reason);
150
+ },
151
+ });
152
+ return Result.Ok({ head, stream });
153
+ }
154
+ //# sourceMappingURL=asset-sniff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-sniff.js","sourceRoot":"","sources":["../../jsr/intern/asset-sniff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"autumn-plan.js","sourceRoot":"","sources":["../../jsr/intern/autumn-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAc9G,MAAM,UAAU,QAAQ,CAAC,KAA2B;IAClD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAmBD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAKpC;IAGC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,KAAwB,EAAE,IAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,IAAI,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,iBAAiB,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,GAAG,CAAC,SAAS,EAAE;gBACxC,eAAe,EAAE,OAAO;aACzB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;SACrF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;QAC7E,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,oBAAoB;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAOD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,aAAa,MAAM,4BAA4B,CAAC,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"autumn-plan.js","sourceRoot":"","sources":["../../jsr/intern/autumn-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAc9G,MAAM,UAAU,QAAQ,CAAC,KAA2B;IAClD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AA0BD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAKpC;IAGC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,KAAwB,EAAE,IAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,IAAI,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,iBAAiB,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,GAAG,CAAC,SAAS,EAAE;gBACxC,eAAe,EAAE,OAAO;aACzB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;SACrF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;QAC7E,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,oBAAoB;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAOD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,aAAa,MAAM,4BAA4B,CAAC,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { Result } from "@adviser/cement";
2
+ import type { Logger } from "@adviser/cement";
3
+ import { VibesApiSQLCtx } from "../types.js";
4
+ export type KycStamp = "card";
5
+ export interface KycStatus {
6
+ readonly card: boolean;
7
+ readonly cardAt?: string;
8
+ }
9
+ type KycCtx = Pick<VibesApiSQLCtx, "sql">;
10
+ export declare function kycFromSettingItems(items: readonly unknown[]): KycStatus;
11
+ export declare function readKycResult(vctx: KycCtx, userId: string): Promise<Result<KycStatus>>;
12
+ export declare function readKyc(vctx: KycCtx, userId: string): Promise<KycStatus>;
13
+ export declare const __kycTestHooks: {
14
+ afterReadSettings?: () => Promise<void>;
15
+ };
16
+ export declare function stampKycCard(vctx: KycCtx, userId: string, at?: string): Promise<"stamped" | "already">;
17
+ export declare function requireKyc(vctx: KycCtx, userId: string, stamp: KycStamp): Promise<Result<{
18
+ readonly stamp: KycStamp;
19
+ }>>;
20
+ export declare function stampKycCardOnSavedCard(opts: {
21
+ readonly vctx: KycCtx;
22
+ readonly logger: Logger;
23
+ readonly waitUntil?: ((promise: Promise<unknown>) => void) | undefined;
24
+ }): (userId: string) => void;
25
+ export {};
package/intern/kyc.js ADDED
@@ -0,0 +1,97 @@
1
+ import { Result, exception2Result } from "@adviser/cement";
2
+ import { eq } from "drizzle-orm/sql/expressions";
3
+ import { sql } from "drizzle-orm";
4
+ function isKycSettingItem(e) {
5
+ return typeof e === "object" && e !== null && e.type === "kyc";
6
+ }
7
+ export function kycFromSettingItems(items) {
8
+ for (const e of items) {
9
+ if (isKycSettingItem(e) && typeof e.cardAt === "string" && e.cardAt.length > 0) {
10
+ return { card: true, cardAt: e.cardAt };
11
+ }
12
+ }
13
+ return { card: false };
14
+ }
15
+ async function selectSettingItems(vctx, userId) {
16
+ const rRows = await exception2Result(() => vctx.sql.db
17
+ .select({ settings: vctx.sql.tables.userSettings.settings })
18
+ .from(vctx.sql.tables.userSettings)
19
+ .where(eq(vctx.sql.tables.userSettings.userId, userId))
20
+ .limit(1));
21
+ if (rRows.isErr()) {
22
+ return Result.Err(rRows.Err());
23
+ }
24
+ return Result.Ok(rRows.Ok()[0]?.settings ?? []);
25
+ }
26
+ export async function readKycResult(vctx, userId) {
27
+ const rItems = await selectSettingItems(vctx, userId);
28
+ if (rItems.isErr()) {
29
+ return Result.Err(`kyc lookup failed: ${rItems.Err().message}`);
30
+ }
31
+ return Result.Ok(kycFromSettingItems(rItems.Ok()));
32
+ }
33
+ export async function readKyc(vctx, userId) {
34
+ const r = await readKycResult(vctx, userId);
35
+ if (r.isErr())
36
+ throw r.Err();
37
+ return r.Ok();
38
+ }
39
+ function runKycSql(db, flavour, stmt) {
40
+ if (flavour === "pg") {
41
+ return db.execute(stmt);
42
+ }
43
+ return db.run(stmt);
44
+ }
45
+ export const __kycTestHooks = {};
46
+ export async function stampKycCard(vctx, userId, at = new Date().toISOString()) {
47
+ const now = new Date().toISOString();
48
+ const rItems = await selectSettingItems(vctx, userId);
49
+ if (rItems.isErr())
50
+ throw rItems.Err();
51
+ if (kycFromSettingItems(rItems.Ok()).card === true) {
52
+ return "already";
53
+ }
54
+ await __kycTestHooks.afterReadSettings?.();
55
+ const flavour = vctx.sql.flavour;
56
+ const stamp = { type: "kyc", cardAt: at };
57
+ const stampArray = sql `${JSON.stringify([stamp])}`;
58
+ const settingsSeed = flavour === "pg" ? sql `${stampArray}::jsonb` : stampArray;
59
+ const rInsert = await exception2Result(() => runKycSql(vctx.sql.db, flavour, sql `
60
+ INSERT INTO "UserSettings" ("userId","settings","updated","created")
61
+ VALUES (${userId}, ${settingsSeed}, ${now}, ${now})
62
+ ON CONFLICT ("userId") DO NOTHING`));
63
+ if (rInsert.isErr())
64
+ throw rInsert.Err();
65
+ const appended = flavour === "pg"
66
+ ? sql `"settings" || ${stampArray}::jsonb`
67
+ : sql `json_insert("settings", '$[#]', json(${JSON.stringify(stamp)}))`;
68
+ const absent = flavour === "pg"
69
+ ? sql `NOT EXISTS (SELECT 1 FROM jsonb_array_elements("UserSettings"."settings") e WHERE e->>'type' = 'kyc')`
70
+ : sql `NOT EXISTS (SELECT 1 FROM json_each("UserSettings"."settings") e WHERE json_extract(e.value, '$.type') = 'kyc')`;
71
+ const rUpdate = await exception2Result(() => runKycSql(vctx.sql.db, flavour, sql `
72
+ UPDATE "UserSettings"
73
+ SET "settings" = ${appended}, "updated" = ${now}
74
+ WHERE "userId" = ${userId} AND ${absent}`));
75
+ if (rUpdate.isErr())
76
+ throw rUpdate.Err();
77
+ return "stamped";
78
+ }
79
+ export async function requireKyc(vctx, userId, stamp) {
80
+ const rStatus = await readKycResult(vctx, userId);
81
+ if (rStatus.isErr()) {
82
+ return Result.Err(rStatus.Err());
83
+ }
84
+ if (stamp === "card" && rStatus.Ok().card === false) {
85
+ return Result.Err(`kyc-required: ${stamp}`);
86
+ }
87
+ return Result.Ok({ stamp });
88
+ }
89
+ export function stampKycCardOnSavedCard(opts) {
90
+ return (userId) => {
91
+ const stamping = stampKycCard(opts.vctx, userId).catch((e) => {
92
+ opts.logger.Warn().Err(e).Str("userId", userId).Msg("kyc-card-stamp-failed");
93
+ });
94
+ opts.waitUntil?.(stamping);
95
+ };
96
+ }
97
+ //# sourceMappingURL=kyc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kyc.js","sourceRoot":"","sources":["../../jsr/intern/kyc.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAkBlC,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAwB,CAAC,IAAI,KAAK,KAAK,CAAC;AACzF,CAAC;AAOD,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAc;IAC5D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACxC,IAAI,CAAC,GAAG,CAAC,EAAE;SACR,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;SAClC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtD,KAAK,CAAC,CAAC,CAAC,CACZ,CAAC;IACF,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAkC,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,MAAc;IACxD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AAChB,CAAC;AAID,SAAS,SAAS,CAAC,EAAe,EAAE,OAA8B,EAAE,IAA4B;IAC9F,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAQ,EAA+D,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IACD,OAAQ,EAA2D,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAOD,MAAM,CAAC,MAAM,cAAc,GAAgD,EAAE,CAAC;AAiC9E,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,MAAc,EACd,EAAE,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAErC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,EAAE;QAAE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,cAAc,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IACjC,MAAM,KAAK,GAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAK1D,MAAM,UAAU,GAAG,GAAG,CAAA,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC1C,SAAS,CACP,IAAI,CAAC,GAAG,CAAC,EAAE,EACX,OAAO,EACP,GAAG,CAAA;;kBAES,MAAM,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG;0CACf,CACrC,CACF,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE;QAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,QAAQ,GACZ,OAAO,KAAK,IAAI;QACd,CAAC,CAAC,GAAG,CAAA,iBAAiB,UAAU,SAAS;QACzC,CAAC,CAAC,GAAG,CAAA,wCAAwC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3E,MAAM,MAAM,GACV,OAAO,KAAK,IAAI;QACd,CAAC,CAAC,GAAG,CAAA,uGAAuG;QAC5G,CAAC,CAAC,GAAG,CAAA,iHAAiH,CAAC;IAC3H,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC1C,SAAS,CACP,IAAI,CAAC,GAAG,CAAC,EAAE,EACX,OAAO,EACP,GAAG,CAAA;;8BAEqB,QAAQ,iBAAiB,GAAG;4BAC9B,MAAM,QAAQ,MAAM,EAAE,CAC7C,CACF,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE;QAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,KAAe;IAC5E,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9B,CAAC;AAcD,MAAM,UAAU,uBAAuB,CAAC,IAIvC;IACC,OAAO,CAAC,MAAc,EAAE,EAAE;QAGxB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YACpE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC"}
@@ -5,7 +5,6 @@ export declare const MAX_TOOL_CALL_ID_CHARS = 256;
5
5
  export declare const MAX_TOOL_CALL_NAME_CHARS = 256;
6
6
  export declare const MAX_TOOL_CALL_ARGUMENT_CHARS: number;
7
7
  export declare const MAX_PROVIDER_CHUNK_ERRORS = 3;
8
- export declare const LANDING_ROUND_RESERVE_MS = 5000;
9
8
  export type LlmToolCallField = "id" | "name" | "arguments";
10
9
  export declare class LlmToolLoopError extends Error {
11
10
  readonly field: LlmToolCallField;
@@ -82,20 +81,10 @@ export interface LlmToolLoopArgs {
82
81
  readonly call: LlmToolCall;
83
82
  readonly text: string;
84
83
  }) => Promise<Result<void>>;
85
- readonly pending?: LlmToolLoopPending;
86
84
  readonly maxToolRounds?: number;
87
85
  readonly maxToolCalls?: number;
88
86
  readonly now?: () => number;
89
87
  }
90
- export interface LlmToolLoopPending {
91
- hasPending(): boolean;
92
- waitForAny(input: {
93
- readonly remainingMs: number;
94
- }): Promise<string | undefined>;
95
- cancelAll(): void;
96
- markDelivered(): void;
97
- close(): void;
98
- }
99
88
  export interface LlmToolLoopResult {
100
89
  readonly request: LLMRequest;
101
90
  readonly rounds: number;
@@ -1,5 +1,6 @@
1
1
  import { Result, exception2Result } from "@adviser/cement";
2
2
  import { isSseEnd, isSseError, isSseLine, } from "@vibes.diy/call-ai-v2";
3
+ import { composeAgentRequest, isAppContextMessage } from "./agent-request-frame.js";
3
4
  const DEFAULT_MAX_TOOL_ROUNDS = 3;
4
5
  const DEFAULT_MAX_TOOL_CALLS = 3;
5
6
  export const MAX_TOOL_RESULT_CHARS = 8_192;
@@ -7,7 +8,6 @@ export const MAX_TOOL_CALL_ID_CHARS = 256;
7
8
  export const MAX_TOOL_CALL_NAME_CHARS = 256;
8
9
  export const MAX_TOOL_CALL_ARGUMENT_CHARS = 64 * 1024;
9
10
  export const MAX_PROVIDER_CHUNK_ERRORS = 3;
10
- export const LANDING_ROUND_RESERVE_MS = 5_000;
11
11
  export class LlmToolLoopError extends Error {
12
12
  field;
13
13
  limit;
@@ -35,10 +35,14 @@ export function createLlmToolLoopBudget({ totalBudgetMs, maxAttempts, now = () =
35
35
  attemptsUsed: 0,
36
36
  };
37
37
  }
38
- function withSystemHead(messages, head) {
39
- if (head === undefined)
40
- return [...messages];
41
- return [...head, ...messages.filter((message) => message.role !== "system")];
38
+ function withRequestFrame(transcript, delivered, frame) {
39
+ const source = frame ?? transcript;
40
+ return composeAgentRequest({
41
+ system: source.filter((message) => message.role === "system"),
42
+ journal: transcript,
43
+ context: source.filter(isAppContextMessage),
44
+ tail: delivered,
45
+ });
42
46
  }
43
47
  function remainingBudget(budget, now) {
44
48
  return Math.max(0, budget.deadlineAt - now());
@@ -297,7 +301,7 @@ async function consumeProviderStream(args, stream, request, now, textState) {
297
301
  }
298
302
  if (isSseEnd(event, event.streamId)) {
299
303
  if (sawToolCall === false) {
300
- if (args.session !== undefined || args.pending?.hasPending() === true) {
304
+ if (args.session !== undefined) {
301
305
  completedNormally = true;
302
306
  return Result.Ok({ toolCalls: [], sawToolCall: false, assistantContent, withheldEnd: event });
303
307
  }
@@ -376,7 +380,7 @@ export async function runLlmToolLoop(args) {
376
380
  }
377
381
  currentRequest = {
378
382
  ...currentRequest,
379
- messages: withSystemHead([...currentRequest.messages, ...messages], args.session.head()),
383
+ messages: withRequestFrame(currentRequest.messages, messages, args.session.head()),
380
384
  };
381
385
  const checkpoint = await args.session.checkpoint(currentRequest.messages);
382
386
  if (checkpoint.isErr())
@@ -398,49 +402,6 @@ export async function runLlmToolLoop(args) {
398
402
  textState.separatorOwed = true;
399
403
  continue;
400
404
  }
401
- const withheld = streamResult.withheldEnd;
402
- if (withheld !== undefined) {
403
- const pending = args.pending;
404
- const waitMs = remainingBudget(args.budget, now) - LANDING_ROUND_RESERVE_MS;
405
- if (rounds >= maxToolRounds || waitMs <= 0) {
406
- pending?.close();
407
- pending?.cancelAll();
408
- const rVisible = await args.onVisible(withheld);
409
- if (rVisible.isErr())
410
- return Result.Err(String(rVisible.Err()));
411
- return Result.Ok({ request: currentRequest, rounds, calls });
412
- }
413
- const landing = await pending?.waitForAny({ remainingMs: waitMs });
414
- if (landing === undefined) {
415
- const rVisible = await args.onVisible(withheld);
416
- if (rVisible.isErr())
417
- return Result.Err(String(rVisible.Err()));
418
- return Result.Ok({ request: currentRequest, rounds, calls });
419
- }
420
- rounds++;
421
- if (textState.lastChar !== "" && /\s/.test(textState.lastChar) === false)
422
- textState.separatorOwed = true;
423
- const spoken = streamResult.assistantContent === null || streamResult.assistantContent.length === 0
424
- ? []
425
- : [{ role: "assistant", content: [{ type: "text", text: streamResult.assistantContent }] }];
426
- const withLanding = {
427
- ...currentRequest,
428
- messages: [...currentRequest.messages, ...spoken, { role: "user", content: [{ type: "text", text: landing }] }],
429
- };
430
- const rLanded = await args.dispatch({ request: withLanding, budget: args.budget, round: rounds });
431
- if (rLanded.isErr()) {
432
- const rVisible = await args.onVisible(withheld);
433
- if (rVisible.isErr())
434
- return Result.Err(String(rVisible.Err()));
435
- return Result.Err(String(rLanded.Err()));
436
- }
437
- pending?.markDelivered();
438
- const landed = rLanded.Ok();
439
- currentRequest = landed.request;
440
- currentStream = landed.stream;
441
- currentAbort = landed.abort;
442
- continue;
443
- }
444
405
  return Result.Ok({ request: currentRequest, rounds, calls });
445
406
  }
446
407
  if (rounds >= maxToolRounds)
@@ -514,8 +475,6 @@ export async function runLlmToolLoop(args) {
514
475
  }
515
476
  }
516
477
  finally {
517
- args.pending?.close();
518
- args.pending?.cancelAll();
519
478
  args.onSpend?.({ rounds, calls });
520
479
  }
521
480
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-tool-loop.js","sourceRoot":"","sources":["../../jsr/intern/llm-tool-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-tool-loop.js","sourceRoot":"","sources":["../../jsr/intern/llm-tool-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { FileSystemItem } from "@vibes.diy/api-types";
2
+ export declare function manifestAssetsLine(items: readonly FileSystemItem[]): string;
@@ -0,0 +1,12 @@
1
+ import { carriedItems } from "./version-timeline.js";
2
+ export function manifestAssetsLine(items) {
3
+ const assets = carriedItems(items);
4
+ if (assets.length === 0)
5
+ return "";
6
+ const list = assets.map((a) => `${a.fileName} (${a.mimeType}, ${kb(a.size)})`).join(", ");
7
+ return `assets: ${list} — serve them by absolute path, e.g. <img src="/logo.png">`;
8
+ }
9
+ function kb(n) {
10
+ return `${Math.max(1, Math.round(n / 1024))} KB`;
11
+ }
12
+ //# sourceMappingURL=manifest-assets-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-assets-line.js","sourceRoot":"","sources":["../../jsr/intern/manifest-assets-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAYrD,MAAM,UAAU,kBAAkB,CAAC,KAAgC;IACjE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,OAAO,WAAW,IAAI,4DAA4D,CAAC;AACrF,CAAC;AAGD,SAAS,EAAE,CAAC,CAAS;IACnB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC"}
@@ -58,6 +58,15 @@ export declare function getOpenTurn(sql: OpenTurnSql, args: {
58
58
  chatId: string;
59
59
  promptId: string;
60
60
  }): Promise<Result<OpenTurnRow | undefined>>;
61
+ export declare const OPEN_TURN_STATUS_BATCH_LIMIT = 500;
62
+ export declare function getOpenTurnStatuses(sql: OpenTurnSql, keys: readonly {
63
+ readonly chatId: string;
64
+ readonly promptId: string;
65
+ }[]): Promise<Result<Map<string, {
66
+ status: OpenTurnStatus;
67
+ deadlineAt: string;
68
+ }>>>;
69
+ export declare function openTurnKey(chatId: string, promptId: string): string;
61
70
  export declare function claimLostTurns(sql: OpenTurnSql, args: {
62
71
  nowMs: number;
63
72
  chatId?: string;
@@ -121,6 +121,36 @@ export async function getOpenTurn(sql, args) {
121
121
  return Result.Err(r);
122
122
  return Result.Ok(toRow(r.Ok()[0]));
123
123
  }
124
+ export const OPEN_TURN_STATUS_BATCH_LIMIT = 500;
125
+ export async function getOpenTurnStatuses(sql, keys) {
126
+ const out = new Map();
127
+ for (let start = 0; start < keys.length; start += OPEN_TURN_STATUS_BATCH_LIMIT) {
128
+ const chunk = keys.slice(start, start + OPEN_TURN_STATUS_BATCH_LIMIT);
129
+ const keyed = or(...chunk.map((k) => and(eq(sql.tables.openTurns.chatId, k.chatId), eq(sql.tables.openTurns.promptId, k.promptId))));
130
+ const r = await exception2Result(() => sql.db
131
+ .select({
132
+ chatId: sql.tables.openTurns.chatId,
133
+ promptId: sql.tables.openTurns.promptId,
134
+ status: sql.tables.openTurns.status,
135
+ deadlineAt: sql.tables.openTurns.deadlineAt,
136
+ })
137
+ .from(sql.tables.openTurns)
138
+ .where(keyed)
139
+ .limit(chunk.length));
140
+ if (r.isErr())
141
+ return Result.Err(r);
142
+ for (const row of r.Ok()) {
143
+ out.set(openTurnKey(row.chatId, row.promptId), {
144
+ status: OPEN_TURN_STATUSES.find((st) => st === row.status) ?? "open",
145
+ deadlineAt: row.deadlineAt,
146
+ });
147
+ }
148
+ }
149
+ return Result.Ok(out);
150
+ }
151
+ export function openTurnKey(chatId, promptId) {
152
+ return `${chatId}\u0000${promptId}`;
153
+ }
124
154
  export async function claimLostTurns(sql, args) {
125
155
  const nowIso = new Date(args.nowMs).toISOString();
126
156
  const limit = args.limit ?? OPEN_TURN_CLAIM_LIMIT;