@zhivex-ai/core 1.6.0 → 1.7.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 (108) hide show
  1. package/README.md +36 -0
  2. package/dist/agent-handoff-contracts.d.ts +12 -0
  3. package/dist/agent-handoff-contracts.d.ts.map +1 -0
  4. package/dist/agent-handoff-contracts.js +18 -0
  5. package/dist/agent-handoff-contracts.js.map +1 -0
  6. package/dist/agent-handoff.d.ts +2 -11
  7. package/dist/agent-handoff.d.ts.map +1 -1
  8. package/dist/agent-handoff.js +1 -18
  9. package/dist/agent-handoff.js.map +1 -1
  10. package/dist/agent-trace.d.ts +1 -5
  11. package/dist/agent-trace.d.ts.map +1 -1
  12. package/dist/agent-trace.js.map +1 -1
  13. package/dist/agent.d.ts.map +1 -1
  14. package/dist/agent.js +39 -23
  15. package/dist/agent.js.map +1 -1
  16. package/dist/api-stability.d.ts.map +1 -1
  17. package/dist/api-stability.js +4 -0
  18. package/dist/api-stability.js.map +1 -1
  19. package/dist/artifact.js +1 -1
  20. package/dist/artifact.js.map +1 -1
  21. package/dist/catalog.d.ts +8 -1
  22. package/dist/catalog.d.ts.map +1 -1
  23. package/dist/catalog.js +7 -0
  24. package/dist/catalog.js.map +1 -1
  25. package/dist/contracts.d.ts +8 -0
  26. package/dist/contracts.d.ts.map +1 -0
  27. package/dist/contracts.js +2 -0
  28. package/dist/contracts.js.map +1 -0
  29. package/dist/generate-text.d.ts.map +1 -1
  30. package/dist/generate-text.js +6 -3
  31. package/dist/generate-text.js.map +1 -1
  32. package/dist/google.d.ts +1 -60
  33. package/dist/google.d.ts.map +1 -1
  34. package/dist/google.js +0 -198
  35. package/dist/google.js.map +1 -1
  36. package/dist/index.d.ts +6 -2
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/live-agent.js +1 -1
  41. package/dist/live-agent.js.map +1 -1
  42. package/dist/middleware.d.ts +16 -0
  43. package/dist/middleware.d.ts.map +1 -1
  44. package/dist/middleware.js +338 -58
  45. package/dist/middleware.js.map +1 -1
  46. package/dist/model-capabilities.d.ts +66 -0
  47. package/dist/model-capabilities.d.ts.map +1 -0
  48. package/dist/model-capabilities.js +136 -0
  49. package/dist/model-capabilities.js.map +1 -0
  50. package/dist/node.d.ts +8 -0
  51. package/dist/node.d.ts.map +1 -0
  52. package/dist/node.js +8 -0
  53. package/dist/node.js.map +1 -0
  54. package/dist/pricing.d.ts +7 -0
  55. package/dist/pricing.d.ts.map +1 -0
  56. package/dist/pricing.js +2 -0
  57. package/dist/pricing.js.map +1 -0
  58. package/dist/provider-resources.d.ts +61 -0
  59. package/dist/provider-resources.d.ts.map +1 -0
  60. package/dist/provider-resources.js +199 -0
  61. package/dist/provider-resources.js.map +1 -0
  62. package/dist/runner.js +1 -1
  63. package/dist/runner.js.map +1 -1
  64. package/dist/runtime-entry.d.ts +15 -0
  65. package/dist/runtime-entry.d.ts.map +1 -0
  66. package/dist/runtime-entry.js +14 -0
  67. package/dist/runtime-entry.js.map +1 -0
  68. package/dist/runtime.d.ts +9 -1
  69. package/dist/runtime.d.ts.map +1 -1
  70. package/dist/runtime.js +35 -8
  71. package/dist/runtime.js.map +1 -1
  72. package/dist/secure-id-node.d.ts +2 -0
  73. package/dist/secure-id-node.d.ts.map +1 -0
  74. package/dist/secure-id-node.js +3 -0
  75. package/dist/secure-id-node.js.map +1 -0
  76. package/dist/secure-id.d.ts.map +1 -1
  77. package/dist/secure-id.js +6 -2
  78. package/dist/secure-id.js.map +1 -1
  79. package/dist/testing.d.ts +4 -0
  80. package/dist/testing.d.ts.map +1 -0
  81. package/dist/testing.js +4 -0
  82. package/dist/testing.js.map +1 -0
  83. package/dist/types.d.ts +3 -3
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/ui-entry.d.ts +6 -0
  86. package/dist/ui-entry.d.ts.map +1 -0
  87. package/dist/ui-entry.js +5 -0
  88. package/dist/ui-entry.js.map +1 -0
  89. package/dist/ui.js +1 -1
  90. package/dist/ui.js.map +1 -1
  91. package/dist/workflow-state-contracts.d.ts +76 -0
  92. package/dist/workflow-state-contracts.d.ts.map +1 -0
  93. package/dist/workflow-state-contracts.js +49 -0
  94. package/dist/workflow-state-contracts.js.map +1 -0
  95. package/dist/workflow-state-service.d.ts +3 -34
  96. package/dist/workflow-state-service.d.ts.map +1 -1
  97. package/dist/workflow-state-service.js +2 -2
  98. package/dist/workflow-state-service.js.map +1 -1
  99. package/dist/workflow.d.ts +4 -42
  100. package/dist/workflow.d.ts.map +1 -1
  101. package/dist/workflow.js +3 -47
  102. package/dist/workflow.js.map +1 -1
  103. package/dist/workflows-entry.d.ts +9 -0
  104. package/dist/workflows-entry.d.ts.map +1 -0
  105. package/dist/workflows-entry.js +5 -0
  106. package/dist/workflows-entry.js.map +1 -0
  107. package/package.json +34 -1
  108. package/secure-id-internal.d.ts +1 -0
@@ -1,7 +1,91 @@
1
- import { promises as fs } from "node:fs";
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { constants, promises as fs } from "node:fs";
2
3
  import path from "node:path";
3
- const serializeInput = (input) => JSON.stringify(input);
4
+ import { ValidationError } from "./errors.js";
5
+ import { canonicalStoreFileStem, ensurePrivateDirectory, writePrivateFile } from "./store-security.js";
6
+ const cacheKeySensitiveField = /(?:^|[-_])(api[-_]?key|authorization|cookie|credential|password|secret|token)(?:$|[-_])/iu;
7
+ const cacheKeyOmittedFields = new Set([
8
+ "abortSignal",
9
+ "execute",
10
+ "inputGuardrails",
11
+ "isEnabled",
12
+ "onError",
13
+ "outputGuardrails",
14
+ "signal"
15
+ ]);
16
+ const canonicalCacheInput = (value, seen = new WeakSet()) => {
17
+ if (value === null)
18
+ return "null";
19
+ if (value === undefined)
20
+ return '"[undefined]"';
21
+ if (typeof value === "string" || typeof value === "boolean")
22
+ return JSON.stringify(value);
23
+ if (typeof value === "number") {
24
+ if (Number.isNaN(value))
25
+ return '"[number:NaN]"';
26
+ if (value === Number.POSITIVE_INFINITY)
27
+ return '"[number:Infinity]"';
28
+ if (value === Number.NEGATIVE_INFINITY)
29
+ return '"[number:-Infinity]"';
30
+ return JSON.stringify(Object.is(value, -0) ? 0 : value);
31
+ }
32
+ if (typeof value === "bigint")
33
+ return JSON.stringify(`[bigint:${value.toString()}]`);
34
+ if (typeof value === "function" || typeof value === "symbol") {
35
+ throw new TypeError("Generate cache keys cannot canonicalize functions or symbols.");
36
+ }
37
+ if (value instanceof Date)
38
+ return JSON.stringify(`[date:${value.toISOString()}]`);
39
+ if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {
40
+ const bytes = value instanceof ArrayBuffer
41
+ ? new Uint8Array(value)
42
+ : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
43
+ return JSON.stringify(`[bytes:sha256:${createHash("sha256").update(bytes).digest("hex")}]`);
44
+ }
45
+ if (typeof AbortSignal !== "undefined" && value instanceof AbortSignal) {
46
+ return '"[abort-signal]"';
47
+ }
48
+ if (seen.has(value)) {
49
+ throw new TypeError("Generate cache keys cannot canonicalize cyclic input.");
50
+ }
51
+ seen.add(value);
52
+ try {
53
+ if (Array.isArray(value)) {
54
+ return `[${value.map((entry) => canonicalCacheInput(entry, seen)).join(",")}]`;
55
+ }
56
+ return `{${Object.keys(value)
57
+ .filter((key) => !cacheKeyOmittedFields.has(key))
58
+ .sort()
59
+ .map((key) => {
60
+ if (cacheKeySensitiveField.test(key)) {
61
+ throw new TypeError("Generate cache keys cannot include sensitive fields.");
62
+ }
63
+ const entry = value[key];
64
+ const serialized = canonicalCacheInput(entry, seen);
65
+ return `${JSON.stringify(key)}:${serialized}`;
66
+ })
67
+ .join(",")}}`;
68
+ }
69
+ finally {
70
+ seen.delete(value);
71
+ }
72
+ };
73
+ const createDefaultGenerateCacheKey = (input) => `generate:v2:${createHash("sha256").update(canonicalCacheInput(input)).digest("hex")}`;
74
+ const defaultGenerateCacheModelScopes = new WeakMap();
75
+ const getDefaultGenerateCacheModelScope = (model) => {
76
+ const existing = defaultGenerateCacheModelScopes.get(model);
77
+ if (existing) {
78
+ return existing;
79
+ }
80
+ const created = `model-instance:${randomUUID()}`;
81
+ defaultGenerateCacheModelScopes.set(model, created);
82
+ return created;
83
+ };
4
84
  const telemetryObserversSymbol = Symbol("zhivex-ai.telemetry-observers");
85
+ const DEFAULT_FILE_GENERATE_CACHE_MAX_KEY_BYTES = 1024 * 1024;
86
+ const DEFAULT_FILE_GENERATE_CACHE_MAX_ENTRY_BYTES = 16 * 1024 * 1024;
87
+ const FILE_GENERATE_CACHE_READ_CHUNK_BYTES = 64 * 1024;
88
+ const FILE_GENERATE_CACHE_SCHEMA_VERSION = 1;
5
89
  const getTelemetryObservers = (model) => [...(model[telemetryObserversSymbol] ?? [])];
6
90
  export const emitLanguageModelTelemetryEvent = async (model, event) => {
7
91
  const observers = getTelemetryObservers(model);
@@ -271,24 +355,49 @@ export const createTelemetryMiddleware = (options) => {
271
355
  };
272
356
  return middleware;
273
357
  };
274
- export const createCachedGenerateMiddleware = (options) => ({
275
- name: "cache",
276
- async wrapGenerate(context, next) {
277
- const key = options.getKey?.(context.input, context.model) ??
278
- serializeInput({
279
- provider: context.model.provider,
280
- modelId: context.model.modelId,
281
- input: context.input
282
- });
283
- const cached = await options.cache.get(key);
284
- if (cached) {
285
- return cached;
286
- }
287
- const output = await next();
288
- await options.cache.set(key, output);
289
- return output;
358
+ export const createCachedGenerateMiddleware = (options) => {
359
+ if (typeof options.scope === "string" && options.scope.trim().length === 0) {
360
+ throw new ValidationError('The generate cache "scope" must be a non-empty string.');
290
361
  }
291
- });
362
+ return {
363
+ name: "cache",
364
+ async wrapGenerate(context, next) {
365
+ if (!options.getKey && options.scope === undefined && options.cache.scopeRequirement === "stable") {
366
+ return next();
367
+ }
368
+ let key;
369
+ if (options.getKey) {
370
+ key = options.getKey(context.input, context.model);
371
+ }
372
+ else {
373
+ const scope = typeof options.scope === "function"
374
+ ? options.scope(context.input, context.model)
375
+ : options.scope ?? getDefaultGenerateCacheModelScope(context.model);
376
+ if (typeof scope !== "string" || scope.trim().length === 0) {
377
+ throw new ValidationError('The generate cache "scope" must resolve to a non-empty string.');
378
+ }
379
+ try {
380
+ key = createDefaultGenerateCacheKey({
381
+ scope,
382
+ provider: context.model.provider,
383
+ modelId: context.model.modelId,
384
+ input: context.input
385
+ });
386
+ }
387
+ catch {
388
+ return next();
389
+ }
390
+ }
391
+ const cached = await options.cache.get(key);
392
+ if (cached) {
393
+ return cached;
394
+ }
395
+ const output = await next();
396
+ await options.cache.set(key, output);
397
+ return output;
398
+ }
399
+ };
400
+ };
292
401
  export const createInMemoryGenerateCache = () => {
293
402
  const store = new Map();
294
403
  return {
@@ -300,13 +409,85 @@ export const createInMemoryGenerateCache = () => {
300
409
  }
301
410
  };
302
411
  };
412
+ const positiveFileCacheLimit = (value, fallback, name) => {
413
+ const resolved = value ?? fallback;
414
+ if (!Number.isSafeInteger(resolved) || resolved <= 0) {
415
+ throw new ValidationError(`The file generate cache "${name}" limit must be a positive safe integer.`);
416
+ }
417
+ return resolved;
418
+ };
419
+ const readFileWithinLimit = async (filePath, maxBytes) => {
420
+ const handle = await fs.open(filePath, constants.O_RDONLY | constants.O_NOFOLLOW);
421
+ try {
422
+ const stat = await handle.stat();
423
+ if (!stat.isFile() || stat.size > maxBytes) {
424
+ return undefined;
425
+ }
426
+ const chunks = [];
427
+ let receivedBytes = 0;
428
+ while (receivedBytes <= maxBytes) {
429
+ const chunk = Buffer.allocUnsafe(Math.min(FILE_GENERATE_CACHE_READ_CHUNK_BYTES, maxBytes - receivedBytes + 1));
430
+ const { bytesRead } = await handle.read(chunk, 0, chunk.byteLength, null);
431
+ if (bytesRead === 0) {
432
+ return Buffer.concat(chunks, receivedBytes).toString("utf8");
433
+ }
434
+ receivedBytes += bytesRead;
435
+ if (receivedBytes > maxBytes) {
436
+ return undefined;
437
+ }
438
+ chunks.push(chunk.subarray(0, bytesRead));
439
+ }
440
+ return undefined;
441
+ }
442
+ finally {
443
+ await handle.close();
444
+ }
445
+ };
303
446
  export const createFileGenerateCache = (options) => {
304
- const getPath = (key) => path.join(options.dir, `${Buffer.from(key).toString("base64url")}.json`);
447
+ const maxKeyBytes = positiveFileCacheLimit(options.maxKeyBytes, DEFAULT_FILE_GENERATE_CACHE_MAX_KEY_BYTES, "maxKeyBytes");
448
+ const maxEntryBytes = positiveFileCacheLimit(options.maxEntryBytes, DEFAULT_FILE_GENERATE_CACHE_MAX_ENTRY_BYTES, "maxEntryBytes");
449
+ if (options.ttlMs !== undefined && (!Number.isSafeInteger(options.ttlMs) || options.ttlMs <= 0)) {
450
+ throw new ValidationError('The file generate cache "ttlMs" must be a positive safe integer.');
451
+ }
452
+ const keyIsWithinLimit = (key) => Buffer.byteLength(key, "utf8") <= maxKeyBytes;
453
+ const getPath = (key) => path.join(options.dir, `${canonicalStoreFileStem("generate-cache", [key])}.json`);
305
454
  return {
455
+ scopeRequirement: "stable",
306
456
  async get(key) {
457
+ if (!keyIsWithinLimit(key)) {
458
+ return undefined;
459
+ }
307
460
  try {
308
- const file = await fs.readFile(getPath(key), "utf8");
309
- return JSON.parse(file);
461
+ const file = await readFileWithinLimit(getPath(key), maxEntryBytes);
462
+ if (file === undefined) {
463
+ return undefined;
464
+ }
465
+ try {
466
+ const parsed = JSON.parse(file);
467
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
468
+ return undefined;
469
+ }
470
+ const envelope = parsed;
471
+ if (envelope.schemaVersion !== FILE_GENERATE_CACHE_SCHEMA_VERSION ||
472
+ typeof envelope.createdAt !== "number" ||
473
+ !Number.isSafeInteger(envelope.createdAt) ||
474
+ envelope.value === null ||
475
+ typeof envelope.value !== "object" ||
476
+ Array.isArray(envelope.value)) {
477
+ return undefined;
478
+ }
479
+ if (options.ttlMs !== undefined && Date.now() - envelope.createdAt >= options.ttlMs) {
480
+ await fs.unlink(getPath(key)).catch(() => undefined);
481
+ return undefined;
482
+ }
483
+ return envelope.value;
484
+ }
485
+ catch (error) {
486
+ if (error instanceof SyntaxError) {
487
+ return undefined;
488
+ }
489
+ throw error;
490
+ }
310
491
  }
311
492
  catch (error) {
312
493
  const err = error;
@@ -317,57 +498,156 @@ export const createFileGenerateCache = (options) => {
317
498
  }
318
499
  },
319
500
  async set(key, value) {
320
- await fs.mkdir(options.dir, { recursive: true });
321
- await fs.writeFile(getPath(key), JSON.stringify(value), "utf8");
501
+ if (!keyIsWithinLimit(key)) {
502
+ return;
503
+ }
504
+ let serialized;
505
+ try {
506
+ serialized = JSON.stringify({
507
+ schemaVersion: FILE_GENERATE_CACHE_SCHEMA_VERSION,
508
+ createdAt: Date.now(),
509
+ value
510
+ });
511
+ }
512
+ catch (error) {
513
+ if (error instanceof TypeError) {
514
+ return;
515
+ }
516
+ throw error;
517
+ }
518
+ if (Buffer.byteLength(serialized, "utf8") > maxEntryBytes) {
519
+ return;
520
+ }
521
+ await ensurePrivateDirectory(options.dir);
522
+ await fs.chmod(options.dir, 0o700);
523
+ await writePrivateFile(getPath(key), serialized);
322
524
  }
323
525
  };
324
526
  };
325
527
  export const createCircuitBreakerMiddleware = (options) => {
326
- const failureThreshold = Math.max(1, options.failureThreshold ?? 3);
327
- const cooldownMs = Math.max(0, options.cooldownMs ?? 30_000);
328
- const state = { failures: 0 };
528
+ const failureThreshold = options.failureThreshold ?? 3;
529
+ const cooldownMs = options.cooldownMs ?? 30_000;
530
+ if (!Number.isSafeInteger(failureThreshold) || failureThreshold <= 0) {
531
+ throw new ValidationError('The circuit breaker "failureThreshold" must be a positive safe integer.');
532
+ }
533
+ if (!Number.isSafeInteger(cooldownMs) || cooldownMs < 0) {
534
+ throw new ValidationError('The circuit breaker "cooldownMs" must be a non-negative safe integer.');
535
+ }
536
+ const states = new WeakMap();
537
+ const getState = (model) => {
538
+ const existing = states.get(model);
539
+ if (existing) {
540
+ return existing;
541
+ }
542
+ const created = { failures: 0, halfOpenProbeInFlight: false };
543
+ states.set(model, created);
544
+ return created;
545
+ };
546
+ const notifyStateChange = async (model, state, status) => {
547
+ try {
548
+ await options.onStateChange?.({
549
+ failures: state.failures,
550
+ openedAt: state.openedAt,
551
+ model,
552
+ status
553
+ });
554
+ }
555
+ catch {
556
+ // State observers are operational hooks and must not alter model outcomes.
557
+ }
558
+ };
559
+ const openError = (model) => new Error(`Circuit breaker open for model "${model.provider}/${model.modelId}".`);
560
+ const beginRequest = async (model) => {
561
+ const state = getState(model);
562
+ if (state.openedAt === undefined) {
563
+ return { state, halfOpenProbe: false };
564
+ }
565
+ const cooldownElapsed = Date.now() - state.openedAt >= cooldownMs;
566
+ if (!cooldownElapsed || state.halfOpenProbeInFlight) {
567
+ throw openError(model);
568
+ }
569
+ state.halfOpenProbeInFlight = true;
570
+ await notifyStateChange(model, state, "half-open");
571
+ return { state, halfOpenProbe: true };
572
+ };
573
+ const markSuccess = async (model, permit) => {
574
+ const { state } = permit;
575
+ if (!permit.halfOpenProbe && state.openedAt !== undefined) {
576
+ return;
577
+ }
578
+ const changed = state.failures > 0 || state.openedAt !== undefined || state.halfOpenProbeInFlight;
579
+ state.failures = 0;
580
+ state.openedAt = undefined;
581
+ state.halfOpenProbeInFlight = false;
582
+ if (changed) {
583
+ await notifyStateChange(model, state, "closed");
584
+ }
585
+ };
586
+ const markFailure = async (model, permit, error) => {
587
+ const { state } = permit;
588
+ const err = error instanceof Error ? error : new Error(String(error));
589
+ let isFailure = true;
590
+ try {
591
+ isFailure = options.isFailure?.(err) ?? true;
592
+ }
593
+ catch {
594
+ isFailure = true;
595
+ }
596
+ if (!isFailure) {
597
+ if (permit.halfOpenProbe) {
598
+ await markSuccess(model, permit);
599
+ }
600
+ return;
601
+ }
602
+ const wasOpen = state.openedAt !== undefined;
603
+ state.failures += 1;
604
+ if (permit.halfOpenProbe) {
605
+ state.halfOpenProbeInFlight = false;
606
+ state.openedAt = Date.now();
607
+ await notifyStateChange(model, state, "open");
608
+ }
609
+ else if (!wasOpen && state.failures >= failureThreshold) {
610
+ state.openedAt = Date.now();
611
+ await notifyStateChange(model, state, "open");
612
+ }
613
+ };
329
614
  return {
330
615
  name: "circuit-breaker",
331
616
  async wrapGenerate(context, next) {
332
- const now = Date.now();
333
- if (state.openedAt && now - state.openedAt < cooldownMs) {
334
- throw new Error(`Circuit breaker open for model "${context.model.provider}/${context.model.modelId}".`);
335
- }
336
- if (state.openedAt && now - state.openedAt >= cooldownMs) {
337
- await options.onStateChange?.({
338
- ...state,
339
- model: context.model,
340
- status: "half-open"
341
- });
342
- }
617
+ const permit = await beginRequest(context.model);
343
618
  try {
344
619
  const result = await next();
345
- state.failures = 0;
346
- state.openedAt = undefined;
347
- await options.onStateChange?.({
348
- ...state,
349
- model: context.model,
350
- status: "closed"
351
- });
620
+ await markSuccess(context.model, permit);
352
621
  return result;
353
622
  }
354
623
  catch (error) {
355
- const err = error instanceof Error ? error : new Error(String(error));
356
- const isFailure = options.isFailure?.(err) ?? true;
357
- if (!isFailure) {
624
+ await markFailure(context.model, permit, error);
625
+ throw error;
626
+ }
627
+ },
628
+ async wrapStream(context, next) {
629
+ return (async function* () {
630
+ const permit = await beginRequest(context.model);
631
+ let settled = false;
632
+ try {
633
+ const stream = await next();
634
+ for await (const event of stream) {
635
+ yield event;
636
+ }
637
+ await markSuccess(context.model, permit);
638
+ settled = true;
639
+ }
640
+ catch (error) {
641
+ await markFailure(context.model, permit, error);
642
+ settled = true;
358
643
  throw error;
359
644
  }
360
- state.failures += 1;
361
- if (state.failures >= failureThreshold) {
362
- state.openedAt = Date.now();
363
- await options.onStateChange?.({
364
- ...state,
365
- model: context.model,
366
- status: "open"
367
- });
645
+ finally {
646
+ if (!settled && permit.halfOpenProbe) {
647
+ permit.state.halfOpenProbeInFlight = false;
648
+ }
368
649
  }
369
- throw error;
370
- }
650
+ })();
371
651
  }
372
652
  };
373
653
  };
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { AgentCapabilities, ModelCapabilities, ReasoningConfig } from "./types.js";
2
+ /**
3
+ * Describes how a model exposes a capability.
4
+ *
5
+ * `prompted` means that the SDK can provide the behavior through prompting
6
+ * rather than a provider-native API. `model-dependent` preserves conditional
7
+ * support that the legacy boolean contract cannot represent.
8
+ */
9
+ export declare const MODEL_CAPABILITY_SUPPORT_LEVELS: readonly ["unsupported", "native", "prompted", "model-dependent"];
10
+ export type ModelCapabilitySupportLevel = (typeof MODEL_CAPABILITY_SUPPORT_LEVELS)[number];
11
+ export type ModelCapabilityKind = "language" | "embedding" | "transcription" | "speech" | "image-generation" | "video-generation" | "music-generation" | "realtime";
12
+ export type LanguageModelCapabilityFeature = "streaming" | "tools" | "structuredOutput" | "jsonMode" | "toolChoice" | "parallelToolCalls" | "vision" | "files" | "audioInput" | "audioOutput" | "fileSearch" | "urlContext" | "contextCaching" | "explicitPromptCaching" | "batch" | "interactions" | "rawPrediction" | "computerUse" | "reasoning" | "webSearch";
13
+ export type EmbeddingModelCapabilityFeature = "embeddings" | "batch";
14
+ export type TranscriptionModelCapabilityFeature = "streaming" | "audioInput" | "batch";
15
+ export type SpeechModelCapabilityFeature = "streaming" | "audioOutput" | "batch";
16
+ export type ImageGenerationModelCapabilityFeature = "streaming" | "imageGeneration" | "imageInput" | "batch";
17
+ export type VideoGenerationModelCapabilityFeature = "streaming" | "videoGeneration" | "imageInput" | "audioOutput" | "batch";
18
+ export type MusicGenerationModelCapabilityFeature = "streaming" | "musicGeneration" | "imageInput" | "audioInput" | "audioOutput" | "batch";
19
+ export type RealtimeModelCapabilityFeature = "sessions" | "streaming" | "audioInput" | "audioOutput" | "imageInput" | "tools" | "browserTokens";
20
+ export interface ReasoningCapabilityDetails {
21
+ readonly efforts?: ReadonlyArray<NonNullable<ReasoningConfig["effort"]>>;
22
+ readonly modes?: ReadonlyArray<NonNullable<ReasoningConfig["mode"]>>;
23
+ readonly contexts?: ReadonlyArray<NonNullable<ReasoningConfig["context"]>>;
24
+ }
25
+ export interface AgentCapabilityDetails {
26
+ readonly support: ModelCapabilitySupportLevel;
27
+ readonly capabilities: AgentCapabilities;
28
+ }
29
+ interface ModelCapabilityProfileBase<TKind extends ModelCapabilityKind, TFeature extends string> {
30
+ readonly kind: TKind;
31
+ /** Omitted features are treated as `unsupported`. */
32
+ readonly capabilities: Readonly<Partial<Record<TFeature, ModelCapabilitySupportLevel>>>;
33
+ }
34
+ export interface LanguageModelCapabilityProfile extends ModelCapabilityProfileBase<"language", LanguageModelCapabilityFeature> {
35
+ readonly reasoningDetails?: ReasoningCapabilityDetails;
36
+ readonly agent?: AgentCapabilityDetails;
37
+ }
38
+ export interface EmbeddingModelCapabilityProfile extends ModelCapabilityProfileBase<"embedding", EmbeddingModelCapabilityFeature> {
39
+ }
40
+ export interface TranscriptionModelCapabilityProfile extends ModelCapabilityProfileBase<"transcription", TranscriptionModelCapabilityFeature> {
41
+ }
42
+ export interface SpeechModelCapabilityProfile extends ModelCapabilityProfileBase<"speech", SpeechModelCapabilityFeature> {
43
+ }
44
+ export interface ImageGenerationModelCapabilityProfile extends ModelCapabilityProfileBase<"image-generation", ImageGenerationModelCapabilityFeature> {
45
+ }
46
+ export interface VideoGenerationModelCapabilityProfile extends ModelCapabilityProfileBase<"video-generation", VideoGenerationModelCapabilityFeature> {
47
+ }
48
+ export interface MusicGenerationModelCapabilityProfile extends ModelCapabilityProfileBase<"music-generation", MusicGenerationModelCapabilityFeature> {
49
+ }
50
+ export interface RealtimeModelCapabilityProfile extends ModelCapabilityProfileBase<"realtime", RealtimeModelCapabilityFeature> {
51
+ readonly agent?: AgentCapabilityDetails;
52
+ }
53
+ export type ModelCapabilityProfile = LanguageModelCapabilityProfile | EmbeddingModelCapabilityProfile | TranscriptionModelCapabilityProfile | SpeechModelCapabilityProfile | ImageGenerationModelCapabilityProfile | VideoGenerationModelCapabilityProfile | MusicGenerationModelCapabilityProfile | RealtimeModelCapabilityProfile;
54
+ /**
55
+ * Returns whether a support level is representable as `true` in the legacy
56
+ * boolean contract. Consumers that need to distinguish native, prompted, and
57
+ * conditional support should use the v2 profile directly.
58
+ */
59
+ export declare const isModelCapabilitySupported: (support: ModelCapabilitySupportLevel | undefined) => boolean;
60
+ /**
61
+ * Converts a kind-specific v2 capability profile to the existing flat
62
+ * `ModelCapabilities` contract.
63
+ */
64
+ export declare const deriveLegacyModelCapabilities: (profile: ModelCapabilityProfile) => ModelCapabilities;
65
+ export {};
66
+ //# sourceMappingURL=model-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-capabilities.d.ts","sourceRoot":"","sources":["../src/model-capabilities.ts"],"names":[],"mappings":"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"}