@rei-standard/amsg-server 2.6.0-next.2 → 2.6.0-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +452 -24
- package/dist/adapters/d1.d.ts +388 -0
- package/dist/adapters/factory.d.ts +39 -0
- package/dist/adapters/interface.d.ts +265 -0
- package/dist/adapters/neon.d.ts +82 -0
- package/dist/adapters/pg-shared.d.ts +161 -0
- package/dist/adapters/pg.d.ts +84 -0
- package/dist/adapters/schema.d.ts +41 -0
- package/dist/adapters/schema.sqlite.d.ts +49 -0
- package/dist/chunk-5FXVSC5O.mjs +144 -0
- package/dist/chunk-E7OWP3VL.cjs +135 -0
- package/dist/chunk-HTGYGGUH.mjs +4998 -0
- package/dist/chunk-V6NZQ22S.cjs +144 -0
- package/dist/chunk-WOXSQBAM.cjs +4998 -0
- package/dist/chunk-ZGGF4GMA.mjs +135 -0
- package/dist/cloudflare/single-user-worker.d.ts +37 -0
- package/dist/cloudflare.cjs +35 -2
- package/dist/cloudflare.d.ts +9 -2
- package/dist/cloudflare.mjs +36 -3
- package/dist/handlers/cancel-message.d.ts +3 -0
- package/dist/handlers/capabilities.d.ts +4 -0
- package/dist/handlers/client-state.d.ts +7 -0
- package/dist/handlers/get-message.d.ts +3 -0
- package/dist/handlers/get-user-key.d.ts +3 -0
- package/dist/handlers/init-tenant.d.ts +23 -0
- package/dist/handlers/llm-credentials.d.ts +5 -0
- package/dist/handlers/messages.d.ts +3 -0
- package/dist/handlers/outbox.d.ts +7 -0
- package/dist/handlers/push-subscription.d.ts +5 -0
- package/dist/handlers/schedule-message.d.ts +3 -0
- package/dist/handlers/send-notifications.d.ts +3 -0
- package/dist/handlers/single-user-init.d.ts +13 -0
- package/dist/handlers/update-message.d.ts +3 -0
- package/dist/handlers/vapid-public-key.d.ts +19 -0
- package/dist/index.cjs +121 -44
- package/dist/index.d.cts +113 -766
- package/dist/index.d.ts +113 -766
- package/dist/index.mjs +113 -36
- package/dist/lib/agentic-fire.d.ts +108 -0
- package/dist/lib/client-state-store.d.ts +61 -0
- package/dist/lib/constant-time.d.ts +14 -0
- package/dist/lib/db-errors.d.ts +10 -0
- package/dist/lib/encryption.d.ts +48 -0
- package/dist/lib/errors.d.ts +93 -0
- package/dist/lib/llm-credentials-store.d.ts +147 -0
- package/dist/lib/llm.d.ts +1 -0
- package/dist/lib/message-processor.d.ts +56 -0
- package/dist/lib/outbox-store.d.ts +33 -0
- package/dist/lib/push-subscription-store.d.ts +71 -0
- package/dist/lib/recurrence.d.ts +51 -0
- package/dist/lib/request.d.ts +135 -0
- package/dist/lib/run-tick.d.ts +106 -0
- package/dist/lib/schema-version.d.ts +50 -0
- package/dist/lib/state-accessors.d.ts +70 -0
- package/dist/lib/state-chunks.d.ts +55 -0
- package/dist/lib/task-projection.d.ts +87 -0
- package/dist/lib/validation.d.ts +62 -0
- package/dist/lib/version.d.ts +7 -0
- package/dist/lib/webcrypto-utils.d.ts +1 -0
- package/dist/lib/webpush-webcrypto.d.ts +78 -0
- package/dist/{neon-BFUS25UX.cjs → neon-U6TQFKMJ.cjs} +100 -8
- package/dist/{neon-CU5N3CSW.mjs → neon-Y4KEZO5C.mjs} +96 -4
- package/dist/{pg-IIH3M4OM.cjs → pg-B324Q2R4.cjs} +89 -8
- package/dist/{pg-QO6NKTGL.mjs → pg-GWJZBWAM.mjs} +85 -4
- package/dist/single-user.d.ts +94 -0
- package/dist/tenant/blob-store.d.ts +30 -0
- package/dist/tenant/context.d.ts +47 -0
- package/dist/tenant/single-user-context.d.ts +29 -0
- package/dist/tenant/token.d.ts +26 -0
- package/package.json +3 -3
- package/dist/chunk-5ENJGVZX.mjs +0 -72
- package/dist/chunk-GN5QTMCL.cjs +0 -1870
- package/dist/chunk-PVNLB6TF.mjs +0 -1870
- package/dist/chunk-RGECD4OH.cjs +0 -72
- package/dist/cloudflare-B-E51VjP.d.cts +0 -2848
- package/dist/cloudflare-B-E51VjP.d.ts +0 -2848
- package/dist/cloudflare.d.cts +0 -2
- package/dist/neon-CJl66EGy.d.cts +0 -251
- package/dist/neon-DYvGnCzx.d.ts +0 -251
- package/dist/pg-07S-u_H4.d.cts +0 -246
- package/dist/pg-Du-pN_UT.d.ts +0 -246
- package/dist/schema-C8OnYk6j.d.cts +0 -74
- package/dist/schema-C8OnYk6j.d.ts +0 -74
package/dist/index.cjs
CHANGED
|
@@ -23,7 +23,52 @@
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
var _chunkWOXSQBAMcjs = require('./chunk-WOXSQBAM.cjs');
|
|
71
|
+
require('./chunk-V6NZQ22S.cjs');
|
|
27
72
|
|
|
28
73
|
// src/server/adapters/factory.js
|
|
29
74
|
async function createAdapter(config) {
|
|
@@ -39,11 +84,11 @@ async function createAdapter(config) {
|
|
|
39
84
|
}
|
|
40
85
|
switch (config.driver) {
|
|
41
86
|
case "neon": {
|
|
42
|
-
const { NeonAdapter } = await Promise.resolve().then(() => _interopRequireWildcard(require("./neon-
|
|
87
|
+
const { NeonAdapter } = await Promise.resolve().then(() => _interopRequireWildcard(require("./neon-U6TQFKMJ.cjs")));
|
|
43
88
|
return new NeonAdapter(config.connectionString);
|
|
44
89
|
}
|
|
45
90
|
case "pg": {
|
|
46
|
-
const { PgAdapter } = await Promise.resolve().then(() => _interopRequireWildcard(require("./pg-
|
|
91
|
+
const { PgAdapter } = await Promise.resolve().then(() => _interopRequireWildcard(require("./pg-B324Q2R4.cjs")));
|
|
47
92
|
return new PgAdapter(config.connectionString);
|
|
48
93
|
}
|
|
49
94
|
default:
|
|
@@ -56,7 +101,7 @@ async function createAdapter(config) {
|
|
|
56
101
|
// src/server/handlers/init-tenant.js
|
|
57
102
|
function createInitTenantHandler(ctx) {
|
|
58
103
|
async function POST(headers, body) {
|
|
59
|
-
const initSecret =
|
|
104
|
+
const initSecret = _chunkWOXSQBAMcjs.getHeader.call(void 0, headers, "x-init-secret");
|
|
60
105
|
if (ctx.tenant.initSecret && initSecret !== ctx.tenant.initSecret) {
|
|
61
106
|
return {
|
|
62
107
|
status: 401,
|
|
@@ -69,7 +114,7 @@ function createInitTenantHandler(ctx) {
|
|
|
69
114
|
}
|
|
70
115
|
};
|
|
71
116
|
}
|
|
72
|
-
const parsed =
|
|
117
|
+
const parsed = _chunkWOXSQBAMcjs.parseJsonBody.call(void 0, body);
|
|
73
118
|
if (!parsed.ok) {
|
|
74
119
|
return {
|
|
75
120
|
status: 400,
|
|
@@ -83,7 +128,7 @@ function createInitTenantHandler(ctx) {
|
|
|
83
128
|
const tenantId = payload.tenantId || void 0;
|
|
84
129
|
const driver = payload.driver;
|
|
85
130
|
const databaseUrl = payload.databaseUrl || payload.connectionString;
|
|
86
|
-
if (tenantId && !
|
|
131
|
+
if (tenantId && !_chunkWOXSQBAMcjs.isValidUUIDv4.call(void 0, tenantId)) {
|
|
87
132
|
return {
|
|
88
133
|
status: 400,
|
|
89
134
|
body: {
|
|
@@ -203,7 +248,7 @@ function createSendNotificationsHandler(ctx) {
|
|
|
203
248
|
}
|
|
204
249
|
};
|
|
205
250
|
}
|
|
206
|
-
const data = await
|
|
251
|
+
const data = await _chunkWOXSQBAMcjs.runScheduledTick.call(void 0, { ...ctx, db, masterKey });
|
|
207
252
|
return { status: 200, body: { success: true, data } };
|
|
208
253
|
}
|
|
209
254
|
return { POST };
|
|
@@ -212,14 +257,6 @@ function createSendNotificationsHandler(ctx) {
|
|
|
212
257
|
// src/server/tenant/blob-store.js
|
|
213
258
|
var _crypto = require('crypto');
|
|
214
259
|
var inMemoryNamespaces = /* @__PURE__ */ new Map();
|
|
215
|
-
function base64UrlEncode(input) {
|
|
216
|
-
return Buffer.from(input).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
|
|
217
|
-
}
|
|
218
|
-
function base64UrlDecode(input) {
|
|
219
|
-
const normalized = input.replace(/-/g, "+").replace(/_/g, "/");
|
|
220
|
-
const padLength = (4 - normalized.length % 4) % 4;
|
|
221
|
-
return Buffer.from(normalized + "=".repeat(padLength), "base64");
|
|
222
|
-
}
|
|
223
260
|
function getKekBuffer(kek) {
|
|
224
261
|
const value = String(kek || "").trim();
|
|
225
262
|
if (!value) {
|
|
@@ -233,16 +270,16 @@ function encryptConfig(config, kekBuffer) {
|
|
|
233
270
|
const plaintext = Buffer.from(JSON.stringify(config), "utf8");
|
|
234
271
|
const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
235
272
|
const authTag = cipher.getAuthTag();
|
|
236
|
-
return `v1.${
|
|
273
|
+
return `v1.${_chunkWOXSQBAMcjs.bytesToBase64Url.call(void 0, iv)}.${_chunkWOXSQBAMcjs.bytesToBase64Url.call(void 0, authTag)}.${_chunkWOXSQBAMcjs.bytesToBase64Url.call(void 0, ciphertext)}`;
|
|
237
274
|
}
|
|
238
275
|
function decryptConfig(encrypted, kekBuffer) {
|
|
239
276
|
const parts = String(encrypted || "").split(".");
|
|
240
277
|
if (parts.length !== 4 || parts[0] !== "v1") {
|
|
241
278
|
throw new Error("INVALID_TENANT_CONFIG");
|
|
242
279
|
}
|
|
243
|
-
const iv =
|
|
244
|
-
const authTag =
|
|
245
|
-
const ciphertext =
|
|
280
|
+
const iv = _chunkWOXSQBAMcjs.base64UrlToBytes.call(void 0, parts[1]);
|
|
281
|
+
const authTag = _chunkWOXSQBAMcjs.base64UrlToBytes.call(void 0, parts[2]);
|
|
282
|
+
const ciphertext = _chunkWOXSQBAMcjs.base64UrlToBytes.call(void 0, parts[3]);
|
|
246
283
|
const decipher = _crypto.createDecipheriv.call(void 0, "aes-256-gcm", kekBuffer, iv);
|
|
247
284
|
decipher.setAuthTag(authTag);
|
|
248
285
|
const plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString("utf8");
|
|
@@ -309,16 +346,8 @@ function createTenantBlobStore(options) {
|
|
|
309
346
|
|
|
310
347
|
// src/server/tenant/token.js
|
|
311
348
|
|
|
312
|
-
function base64UrlEncode2(input) {
|
|
313
|
-
return Buffer.from(input).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
|
|
314
|
-
}
|
|
315
|
-
function base64UrlDecode2(input) {
|
|
316
|
-
const normalized = input.replace(/-/g, "+").replace(/_/g, "/");
|
|
317
|
-
const padLength = (4 - normalized.length % 4) % 4;
|
|
318
|
-
return Buffer.from(normalized + "=".repeat(padLength), "base64");
|
|
319
|
-
}
|
|
320
349
|
function sign(input, secret) {
|
|
321
|
-
return
|
|
350
|
+
return _chunkWOXSQBAMcjs.bytesToBase64Url.call(void 0, _crypto.createHmac.call(void 0, "sha256", secret).update(input).digest());
|
|
322
351
|
}
|
|
323
352
|
function nowEpochSeconds() {
|
|
324
353
|
return Math.floor(Date.now() / 1e3);
|
|
@@ -334,8 +363,8 @@ function createTenantToken(params, secret) {
|
|
|
334
363
|
v: 1
|
|
335
364
|
};
|
|
336
365
|
const header = { alg: "HS256", typ: "JWT" };
|
|
337
|
-
const encodedHeader =
|
|
338
|
-
const encodedPayload =
|
|
366
|
+
const encodedHeader = _chunkWOXSQBAMcjs.bytesToBase64Url.call(void 0, _chunkWOXSQBAMcjs.utf8.call(void 0, JSON.stringify(header)));
|
|
367
|
+
const encodedPayload = _chunkWOXSQBAMcjs.bytesToBase64Url.call(void 0, _chunkWOXSQBAMcjs.utf8.call(void 0, JSON.stringify(payload)));
|
|
339
368
|
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
340
369
|
const signature = sign(signingInput, secret);
|
|
341
370
|
return `${signingInput}.${signature}`;
|
|
@@ -351,20 +380,20 @@ function verifyTenantToken(token, secret, options = {}) {
|
|
|
351
380
|
const [encodedHeader, encodedPayload, receivedSignature] = parts;
|
|
352
381
|
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
353
382
|
const expectedSignature = sign(signingInput, secret);
|
|
354
|
-
let
|
|
355
|
-
let
|
|
383
|
+
let receivedBytes;
|
|
384
|
+
let expectedBytes;
|
|
356
385
|
try {
|
|
357
|
-
|
|
358
|
-
|
|
386
|
+
receivedBytes = _chunkWOXSQBAMcjs.base64UrlToBytes.call(void 0, receivedSignature);
|
|
387
|
+
expectedBytes = _chunkWOXSQBAMcjs.base64UrlToBytes.call(void 0, expectedSignature);
|
|
359
388
|
} catch (e) {
|
|
360
389
|
throw new Error("INVALID_TENANT_AUTH");
|
|
361
390
|
}
|
|
362
|
-
if (
|
|
391
|
+
if (!_chunkWOXSQBAMcjs.timingSafeEqualBytes.call(void 0, receivedBytes, expectedBytes)) {
|
|
363
392
|
throw new Error("INVALID_TENANT_AUTH");
|
|
364
393
|
}
|
|
365
394
|
let payload;
|
|
366
395
|
try {
|
|
367
|
-
payload = JSON.parse(
|
|
396
|
+
payload = JSON.parse(_chunkWOXSQBAMcjs.utf8Decode.call(void 0, _chunkWOXSQBAMcjs.base64UrlToBytes.call(void 0, encodedPayload)));
|
|
368
397
|
} catch (e2) {
|
|
369
398
|
throw new Error("INVALID_TENANT_AUTH");
|
|
370
399
|
}
|
|
@@ -438,8 +467,17 @@ function createTenantContextManager(options) {
|
|
|
438
467
|
async function getOrCreateAdapter(dbConfig) {
|
|
439
468
|
const cacheKey = `${dbConfig.driver}:${dbConfig.connectionString}`;
|
|
440
469
|
if (!adapterCache.has(cacheKey)) {
|
|
441
|
-
const
|
|
442
|
-
|
|
470
|
+
const created = (async () => {
|
|
471
|
+
const adapter = await adapterFactory(dbConfig);
|
|
472
|
+
if (typeof adapter.initSchema === "function") {
|
|
473
|
+
await adapter.initSchema();
|
|
474
|
+
}
|
|
475
|
+
return adapter;
|
|
476
|
+
})().catch((error) => {
|
|
477
|
+
adapterCache.delete(cacheKey);
|
|
478
|
+
throw error;
|
|
479
|
+
});
|
|
480
|
+
adapterCache.set(cacheKey, created);
|
|
443
481
|
}
|
|
444
482
|
return adapterCache.get(cacheKey);
|
|
445
483
|
}
|
|
@@ -575,12 +613,15 @@ async function createReiServer(config) {
|
|
|
575
613
|
return {
|
|
576
614
|
handlers: {
|
|
577
615
|
initTenant: createInitTenantHandler(ctx),
|
|
578
|
-
getUserKey:
|
|
579
|
-
scheduleMessage:
|
|
616
|
+
getUserKey: _chunkWOXSQBAMcjs.createGetUserKeyHandler.call(void 0, ctx),
|
|
617
|
+
scheduleMessage: _chunkWOXSQBAMcjs.createScheduleMessageHandler.call(void 0, ctx),
|
|
580
618
|
sendNotifications: createSendNotificationsHandler(ctx),
|
|
581
|
-
updateMessage:
|
|
582
|
-
cancelMessage:
|
|
583
|
-
messages:
|
|
619
|
+
updateMessage: _chunkWOXSQBAMcjs.createUpdateMessageHandler.call(void 0, ctx),
|
|
620
|
+
cancelMessage: _chunkWOXSQBAMcjs.createCancelMessageHandler.call(void 0, ctx),
|
|
621
|
+
messages: _chunkWOXSQBAMcjs.createMessagesHandler.call(void 0, ctx),
|
|
622
|
+
getMessage: _chunkWOXSQBAMcjs.createGetMessageHandler.call(void 0, ctx),
|
|
623
|
+
pushSubscription: _chunkWOXSQBAMcjs.createPushSubscriptionHandler.call(void 0, ctx),
|
|
624
|
+
llmCredentials: _chunkWOXSQBAMcjs.createLlmCredentialsHandler.call(void 0, ctx)
|
|
584
625
|
}
|
|
585
626
|
};
|
|
586
627
|
}
|
|
@@ -606,4 +647,40 @@ async function createReiServer(config) {
|
|
|
606
647
|
|
|
607
648
|
|
|
608
649
|
|
|
609
|
-
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
exports.CORS_ALLOW_HEADERS = _chunkWOXSQBAMcjs.CORS_ALLOW_HEADERS; exports.CORS_ALLOW_METHODS = _chunkWOXSQBAMcjs.CORS_ALLOW_METHODS; exports.CRED_ID_MAX_LENGTH = _chunkWOXSQBAMcjs.CRED_ID_MAX_LENGTH; exports.CRED_PUT_BATCH_MAX = _chunkWOXSQBAMcjs.CRED_PUT_BATCH_MAX; exports.CRED_REFS_MAX_ENTRIES = _chunkWOXSQBAMcjs.CRED_REFS_MAX_ENTRIES; exports.CRED_ROWS_PER_USER_MAX = _chunkWOXSQBAMcjs.CRED_ROWS_PER_USER_MAX; exports.DEFAULT_CLAIM_LEASE_MS = _chunkWOXSQBAMcjs.DEFAULT_CLAIM_LEASE_MS; exports.DEFAULT_HEARTBEAT_LEASE_TTL_MS = _chunkWOXSQBAMcjs.DEFAULT_HEARTBEAT_LEASE_TTL_MS; exports.DEFAULT_LEASE_HEARTBEAT_MS = _chunkWOXSQBAMcjs.DEFAULT_LEASE_HEARTBEAT_MS; exports.DEFAULT_MAX_SCHEDULED_TASKS_PER_FIRE = _chunkWOXSQBAMcjs.DEFAULT_MAX_SCHEDULED_TASKS_PER_FIRE; exports.DEFAULT_MAX_TOOL_ITERATIONS = _chunkWOXSQBAMcjs.DEFAULT_MAX_TOOL_ITERATIONS; exports.DEFAULT_TOTAL_TIMEOUT_MS = _chunkWOXSQBAMcjs.DEFAULT_TOTAL_TIMEOUT_MS; exports.MAX_PUSH_PAYLOAD_BYTES = _chunkWOXSQBAMcjs.MAX_PUSH_PAYLOAD_BYTES; exports.MIN_SCHEDULE_LEAD_MS = _chunkWOXSQBAMcjs.MIN_SCHEDULE_LEAD_MS; exports.NonRetryableError = _chunkWOXSQBAMcjs.NonRetryableError; exports.PUSH_ENVELOPE_RESERVED_BYTES = _chunkWOXSQBAMcjs.PUSH_ENVELOPE_RESERVED_BYTES; exports.SCHEMA_VERSION = _chunkWOXSQBAMcjs.SCHEMA_VERSION; exports.WEB_PUSH_ENCRYPTION_OVERHEAD_BYTES = _chunkWOXSQBAMcjs.WEB_PUSH_ENCRYPTION_OVERHEAD_BYTES; exports.WEB_PUSH_MAX_BODY_BYTES = _chunkWOXSQBAMcjs.WEB_PUSH_MAX_BODY_BYTES; exports.advanceOccurrence = _chunkWOXSQBAMcjs.advanceOccurrence; exports.createAdapter = createAdapter; exports.createD1Adapter = _chunkWOXSQBAMcjs.createD1Adapter; exports.createReiServer = createReiServer; exports.createSingleUserCloudflareWorker = _chunkWOXSQBAMcjs.createSingleUserCloudflareWorker; exports.createSingleUserServer = _chunkWOXSQBAMcjs.createSingleUserServer; exports.createTenantToken = createTenantToken; exports.createWebCryptoWebPush = _chunkWOXSQBAMcjs.createWebCryptoWebPush; exports.decryptFromStorage = _chunkWOXSQBAMcjs.decryptFromStorage; exports.decryptPayload = _chunkWOXSQBAMcjs.decryptPayload; exports.deriveUserEncryptionKey = _chunkWOXSQBAMcjs.deriveUserEncryptionKey; exports.encryptForStorage = _chunkWOXSQBAMcjs.encryptForStorage; exports.ensureSchema = _chunkWOXSQBAMcjs.ensureSchema; exports.getSchemaVersion = _chunkWOXSQBAMcjs.getSchemaVersion; exports.hasChatCredRef = _chunkWOXSQBAMcjs.hasChatCredRef; exports.isNonRetryableError = _chunkWOXSQBAMcjs.isNonRetryableError; exports.isValidCredId = _chunkWOXSQBAMcjs.isValidCredId; exports.isValidISO8601 = _chunkWOXSQBAMcjs.isValidISO8601; exports.isValidTimeZoneId = _chunkWOXSQBAMcjs.isValidTimeZoneId; exports.isValidUUID = _chunkWOXSQBAMcjs.isValidUUID; exports.isValidUUIDv4 = _chunkWOXSQBAMcjs.isValidUUIDv4; exports.isValidUrl = _chunkWOXSQBAMcjs.isValidUrl; exports.measurePushPayload = _chunkWOXSQBAMcjs.measurePushPayload; exports.nextFutureOccurrence = _chunkWOXSQBAMcjs.nextFutureOccurrence; exports.planNextOccurrence = _chunkWOXSQBAMcjs.planNextOccurrence; exports.resolveLlmCredential = _chunkWOXSQBAMcjs.resolveLlmCredential; exports.runScheduledTick = _chunkWOXSQBAMcjs.runScheduledTick; exports.runTask = _chunkWOXSQBAMcjs.runTask; exports.sanitizeErrorSummary = _chunkWOXSQBAMcjs.sanitizeErrorSummary; exports.summarizeErrorCause = _chunkWOXSQBAMcjs.summarizeErrorCause; exports.supportsLlmCredentialsStore = _chunkWOXSQBAMcjs.supportsLlmCredentialsStore; exports.validateAvatarUrl = _chunkWOXSQBAMcjs.validateAvatarUrl; exports.validateCredRefs = _chunkWOXSQBAMcjs.validateCredRefs; exports.validateCredValue = _chunkWOXSQBAMcjs.validateCredValue; exports.validateLlmMessagesArray = _chunkWOXSQBAMcjs.validateLlmMessagesArray; exports.validateScheduleMessagePayload = _chunkWOXSQBAMcjs.validateScheduleMessagePayload; exports.validateSplitPattern = _chunkWOXSQBAMcjs.validateSplitPattern; exports.verifyTenantToken = verifyTenantToken;
|