universal-llm-client 3.1.0 → 4.1.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 (135) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +177 -0
  3. package/dist/ai-model.d.ts +87 -0
  4. package/dist/ai-model.d.ts.map +1 -1
  5. package/dist/ai-model.js +99 -0
  6. package/dist/ai-model.js.map +1 -1
  7. package/dist/auditor.d.ts +5 -1
  8. package/dist/auditor.d.ts.map +1 -1
  9. package/dist/auditor.js +9 -0
  10. package/dist/auditor.js.map +1 -1
  11. package/dist/client.d.ts +14 -0
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +60 -0
  14. package/dist/client.js.map +1 -1
  15. package/dist/http.d.ts +2 -0
  16. package/dist/http.d.ts.map +1 -1
  17. package/dist/http.js +1 -0
  18. package/dist/http.js.map +1 -1
  19. package/dist/index.d.ts +3 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +12 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/interfaces.d.ts +186 -6
  24. package/dist/interfaces.d.ts.map +1 -1
  25. package/dist/interfaces.js +14 -0
  26. package/dist/interfaces.js.map +1 -1
  27. package/dist/providers/anthropic.d.ts +56 -0
  28. package/dist/providers/anthropic.d.ts.map +1 -0
  29. package/dist/providers/anthropic.js +524 -0
  30. package/dist/providers/anthropic.js.map +1 -0
  31. package/dist/providers/google.d.ts +5 -0
  32. package/dist/providers/google.d.ts.map +1 -1
  33. package/dist/providers/google.js +81 -4
  34. package/dist/providers/google.js.map +1 -1
  35. package/dist/providers/index.d.ts +1 -0
  36. package/dist/providers/index.d.ts.map +1 -1
  37. package/dist/providers/index.js +1 -0
  38. package/dist/providers/index.js.map +1 -1
  39. package/dist/providers/ollama.d.ts +13 -1
  40. package/dist/providers/ollama.d.ts.map +1 -1
  41. package/dist/providers/ollama.js +72 -10
  42. package/dist/providers/ollama.js.map +1 -1
  43. package/dist/providers/openai.d.ts +4 -0
  44. package/dist/providers/openai.d.ts.map +1 -1
  45. package/dist/providers/openai.js +53 -1
  46. package/dist/providers/openai.js.map +1 -1
  47. package/dist/router.d.ts +50 -0
  48. package/dist/router.d.ts.map +1 -1
  49. package/dist/router.js +319 -0
  50. package/dist/router.js.map +1 -1
  51. package/dist/stream-decoder.d.ts +29 -2
  52. package/dist/stream-decoder.d.ts.map +1 -1
  53. package/dist/stream-decoder.js +39 -11
  54. package/dist/stream-decoder.js.map +1 -1
  55. package/dist/structured-output.d.ts +370 -0
  56. package/dist/structured-output.d.ts.map +1 -0
  57. package/dist/structured-output.js +397 -0
  58. package/dist/structured-output.js.map +1 -0
  59. package/dist/zod-adapter.d.ts +44 -0
  60. package/dist/zod-adapter.d.ts.map +1 -0
  61. package/dist/zod-adapter.js +61 -0
  62. package/dist/zod-adapter.js.map +1 -0
  63. package/package.json +23 -4
  64. package/src/ai-model.ts +350 -0
  65. package/src/auditor.ts +213 -0
  66. package/src/client.ts +402 -0
  67. package/src/debug/debug-google-streaming.ts +97 -0
  68. package/src/debug/debug-tool-execution.ts +86 -0
  69. package/src/debug/test-lmstudio-tools.ts +155 -0
  70. package/src/demos/README.md +47 -0
  71. package/src/demos/basic/universal-llm-examples.ts +161 -0
  72. package/src/demos/mcp/astrid-memory-demo.ts +295 -0
  73. package/src/demos/mcp/astrid-persona-memory.ts +357 -0
  74. package/src/demos/mcp/mcp-mongodb-demo.ts +275 -0
  75. package/src/demos/mcp/simple-astrid-memory.ts +148 -0
  76. package/src/demos/mcp/simple-mcp-demo.ts +68 -0
  77. package/src/demos/mcp/working-mcp-demo.ts +62 -0
  78. package/src/demos/model-alias-demo.ts +0 -0
  79. package/src/demos/tools/RAG_MEMORY_INTEGRATION.md +267 -0
  80. package/src/demos/tools/astrid-memory-demo.ts +270 -0
  81. package/src/demos/tools/astrid-production-memory-clean.ts +785 -0
  82. package/src/demos/tools/astrid-production-memory.ts +558 -0
  83. package/src/demos/tools/basic-translation-test.ts +66 -0
  84. package/src/demos/tools/chromadb-similarity-tuning.ts +390 -0
  85. package/src/demos/tools/clean-multilingual-conversation.ts +209 -0
  86. package/src/demos/tools/clean-translation-test.ts +119 -0
  87. package/src/demos/tools/clean-universal-multilingual-test.ts +131 -0
  88. package/src/demos/tools/complete-rag-demo.ts +369 -0
  89. package/src/demos/tools/complete-tool-demo.ts +132 -0
  90. package/src/demos/tools/demo-tool-calling.ts +124 -0
  91. package/src/demos/tools/dynamic-language-switching-test.ts +251 -0
  92. package/src/demos/tools/hybrid-thinking-test.ts +154 -0
  93. package/src/demos/tools/memory-integration-test.ts +420 -0
  94. package/src/demos/tools/multilingual-memory-system.ts +802 -0
  95. package/src/demos/tools/ondemand-translation-demo.ts +655 -0
  96. package/src/demos/tools/production-tool-demo.ts +245 -0
  97. package/src/demos/tools/revolutionary-multilingual-test.ts +151 -0
  98. package/src/demos/tools/rigorous-language-analysis.ts +218 -0
  99. package/src/demos/tools/test-universal-memory-system.ts +126 -0
  100. package/src/demos/tools/translation-integration-guide.ts +346 -0
  101. package/src/demos/tools/universal-memory-system.ts +560 -0
  102. package/src/http.ts +247 -0
  103. package/src/index.ts +160 -0
  104. package/src/interfaces.ts +657 -0
  105. package/src/mcp.ts +345 -0
  106. package/src/providers/anthropic.ts +762 -0
  107. package/src/providers/google.ts +620 -0
  108. package/src/providers/index.ts +8 -0
  109. package/src/providers/ollama.ts +469 -0
  110. package/src/providers/openai.ts +392 -0
  111. package/src/router.ts +780 -0
  112. package/src/stream-decoder.ts +361 -0
  113. package/src/structured-output.ts +702 -0
  114. package/src/test-scripts/test-advanced-tools.ts +310 -0
  115. package/src/test-scripts/test-google-streaming-enhanced.ts +147 -0
  116. package/src/test-scripts/test-google-streaming.ts +63 -0
  117. package/src/test-scripts/test-google-system-prompt-comprehensive.ts +189 -0
  118. package/src/test-scripts/test-mcp-config.ts +28 -0
  119. package/src/test-scripts/test-mcp-connection.ts +29 -0
  120. package/src/test-scripts/test-system-message-positions.ts +163 -0
  121. package/src/test-scripts/test-system-prompt-improvement-demo.ts +83 -0
  122. package/src/test-scripts/test-tool-calling.ts +231 -0
  123. package/src/tests/ai-model.test.ts +1614 -0
  124. package/src/tests/auditor.test.ts +224 -0
  125. package/src/tests/http.test.ts +200 -0
  126. package/src/tests/interfaces.test.ts +117 -0
  127. package/src/tests/providers/google.test.ts +660 -0
  128. package/src/tests/providers/ollama.test.ts +954 -0
  129. package/src/tests/providers/openai.test.ts +1122 -0
  130. package/src/tests/router.test.ts +254 -0
  131. package/src/tests/stream-decoder.test.ts +179 -0
  132. package/src/tests/structured-output.test.ts +1340 -0
  133. package/src/tests/tools.test.ts +175 -0
  134. package/src/tools.ts +246 -0
  135. package/src/zod-adapter.ts +72 -0
@@ -106,7 +106,34 @@ export interface DecoderOptions {
106
106
  knownToolNames?: Set<string>;
107
107
  }
108
108
  /**
109
- * Create a stream decoder by type.
109
+ * Factory function that creates a StreamDecoder instance.
110
+ * External code registers these via `registerDecoder()`.
110
111
  */
111
- export declare function createDecoder(type: DecoderType, callback: DecoderCallback, _options?: DecoderOptions): StreamDecoder;
112
+ export type DecoderFactory = (callback: DecoderCallback, options?: DecoderOptions) => StreamDecoder;
113
+ /**
114
+ * Register a custom stream decoder type.
115
+ * Once registered, it can be used via `createDecoder(name, ...)` or
116
+ * by passing `decoderType: name` in ChatOptions.
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * import { registerDecoder } from 'universal-llm-client';
121
+ *
122
+ * registerDecoder('my-decoder', (callback, options) => {
123
+ * return new MyCustomDecoder(callback, options);
124
+ * });
125
+ * ```
126
+ */
127
+ export declare function registerDecoder(type: string, factory: DecoderFactory): void;
128
+ /**
129
+ * Get all registered decoder type names.
130
+ */
131
+ export declare function getRegisteredDecoders(): string[];
132
+ /**
133
+ * Create a stream decoder by type name.
134
+ * Looks up the decoder in the registry (built-in + custom).
135
+ *
136
+ * @throws Error if the decoder type is not registered
137
+ */
138
+ export declare function createDecoder(type: DecoderType | string, callback: DecoderCallback, options?: DecoderOptions): StreamDecoder;
112
139
  //# sourceMappingURL=stream-decoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-decoder.d.ts","sourceRoot":"","sources":["../src/stream-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAElD,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAM5D;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC1B,2CAA2C;IAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAC;IACd,oEAAoE;IACpE,eAAe,IAAI,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC;AAMD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAMpF;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACpD,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,QAAQ,EAAE,eAAe;IAIrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;IAIb,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM,GAAG,SAAS;CAGrC;AAMD;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,QAAQ,EAAE,eAAe;IAIrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,qDAAqD;IACrD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,gEAAgE;IAChE,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;IAIb,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM,GAAG,SAAS;CAGrC;AAMD;;;;;;GAMG;AACH,qBAAa,2BAA4B,YAAW,aAAa;IAC7D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,QAAQ,EAAE,eAAe;IAIrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;IAgBb,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,OAAO,CAAC,aAAa;IAyFrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;CAM5B;AAMD,MAAM,WAAW,cAAc;IAC3B,yDAAyD;IACzD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CACzB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,eAAe,EACzB,QAAQ,CAAC,EAAE,cAAc,GAC1B,aAAa,CAWf"}
1
+ {"version":3,"file":"stream-decoder.d.ts","sourceRoot":"","sources":["../src/stream-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAElD,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAM5D;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC1B,2CAA2C;IAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAC;IACd,oEAAoE;IACpE,eAAe,IAAI,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC;AAMD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAMpF;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACpD,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,QAAQ,EAAE,eAAe;IAIrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;IAIb,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM,GAAG,SAAS;CAGrC;AAMD;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,QAAQ,EAAE,eAAe;IAIrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,qDAAqD;IACrD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,gEAAgE;IAChE,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;IAIb,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM,GAAG,SAAS;CAGrC;AAMD;;;;;;GAMG;AACH,qBAAa,2BAA4B,YAAW,aAAa;IAC7D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,QAAQ,EAAE,eAAe;IAIrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;IAgBb,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,OAAO,CAAC,aAAa;IAyFrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;CAM5B;AAMD,MAAM,WAAW,cAAc;IAC3B,yDAAyD;IACzD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,aAAa,CAAC;AAKpG;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAOD;;;;;GAKG;AACH,wBAAgB,aAAa,CACzB,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,cAAc,GACzB,aAAa,CAOf"}
@@ -220,19 +220,47 @@ export class InterleavedReasoningDecoder {
220
220
  return false;
221
221
  }
222
222
  }
223
+ /** Internal registry of decoder factories, keyed by decoder type name */
224
+ const decoderRegistry = new Map();
223
225
  /**
224
- * Create a stream decoder by type.
226
+ * Register a custom stream decoder type.
227
+ * Once registered, it can be used via `createDecoder(name, ...)` or
228
+ * by passing `decoderType: name` in ChatOptions.
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * import { registerDecoder } from 'universal-llm-client';
233
+ *
234
+ * registerDecoder('my-decoder', (callback, options) => {
235
+ * return new MyCustomDecoder(callback, options);
236
+ * });
237
+ * ```
238
+ */
239
+ export function registerDecoder(type, factory) {
240
+ decoderRegistry.set(type, factory);
241
+ }
242
+ /**
243
+ * Get all registered decoder type names.
244
+ */
245
+ export function getRegisteredDecoders() {
246
+ return Array.from(decoderRegistry.keys());
247
+ }
248
+ // Pre-register built-in decoders
249
+ registerDecoder('passthrough', (cb) => new PassthroughDecoder(cb));
250
+ registerDecoder('standard-chat', (cb) => new StandardChatDecoder(cb));
251
+ registerDecoder('interleaved-reasoning', (cb) => new InterleavedReasoningDecoder(cb));
252
+ /**
253
+ * Create a stream decoder by type name.
254
+ * Looks up the decoder in the registry (built-in + custom).
255
+ *
256
+ * @throws Error if the decoder type is not registered
225
257
  */
226
- export function createDecoder(type, callback, _options) {
227
- switch (type) {
228
- case 'passthrough':
229
- return new PassthroughDecoder(callback);
230
- case 'standard-chat':
231
- return new StandardChatDecoder(callback);
232
- case 'interleaved-reasoning':
233
- return new InterleavedReasoningDecoder(callback);
234
- default:
235
- throw new Error(`Unknown decoder type: ${type}`);
258
+ export function createDecoder(type, callback, options) {
259
+ const factory = decoderRegistry.get(type);
260
+ if (!factory) {
261
+ const available = Array.from(decoderRegistry.keys()).join(', ');
262
+ throw new Error(`Unknown decoder type: "${type}". Available: ${available}`);
236
263
  }
264
+ return factory(callback, options);
237
265
  }
238
266
  //# sourceMappingURL=stream-decoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-decoder.js","sourceRoot":"","sources":["../src/stream-decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-decoder.js","sourceRoot":"","sources":["../src/stream-decoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Structured Output Core Types
3
+ *
4
+ * Core types for structured output support in universal-llm-client.
5
+ * Zero-dependency — works with raw JSON Schema and optional validate functions.
6
+ *
7
+ * For Zod integration, use the `universal-llm-client/zod` entrypoint.
8
+ *
9
+ * @module structured-output
10
+ */
11
+ /**
12
+ * JSON Schema definition for structured output.
13
+ * This is a subset of JSON Schema focused on what providers need.
14
+ */
15
+ export interface JSONSchema {
16
+ type?: string | string[];
17
+ properties?: Record<string, JSONSchema>;
18
+ items?: JSONSchema | JSONSchema[] | {
19
+ type: string;
20
+ } | {
21
+ type: string;
22
+ }[];
23
+ required?: string[];
24
+ additionalProperties?: boolean | JSONSchema;
25
+ enum?: (string | number | boolean | null)[];
26
+ const?: unknown;
27
+ oneOf?: JSONSchema[];
28
+ anyOf?: JSONSchema[];
29
+ allOf?: JSONSchema[];
30
+ not?: JSONSchema;
31
+ description?: string;
32
+ default?: unknown;
33
+ examples?: unknown[];
34
+ title?: string;
35
+ format?: string;
36
+ pattern?: string;
37
+ minLength?: number;
38
+ maxLength?: number;
39
+ minimum?: number;
40
+ maximum?: number;
41
+ exclusiveMinimum?: number;
42
+ exclusiveMaximum?: number;
43
+ minItems?: number;
44
+ maxItems?: number;
45
+ uniqueItems?: boolean;
46
+ minProperties?: number;
47
+ maxProperties?: number;
48
+ $ref?: string;
49
+ $id?: string;
50
+ $schema?: string;
51
+ definitions?: Record<string, JSONSchema>;
52
+ $defs?: Record<string, JSONSchema>;
53
+ }
54
+ /**
55
+ * Universal schema configuration for structured output.
56
+ *
57
+ * This is the Bring-Your-Own-Validator interface. The core library never
58
+ * imports Zod — instead it accepts a JSON Schema + optional validate function.
59
+ *
60
+ * Use `universal-llm-client/zod` → `fromZod()` to create this from Zod schemas.
61
+ *
62
+ * @template T The expected output type
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * // Zero-dep usage (no Zod):
67
+ * const config: SchemaConfig<{ name: string; age: number }> = {
68
+ * jsonSchema: {
69
+ * type: 'object',
70
+ * properties: {
71
+ * name: { type: 'string' },
72
+ * age: { type: 'number' },
73
+ * },
74
+ * required: ['name', 'age'],
75
+ * },
76
+ * validate: (data) => data as { name: string; age: number },
77
+ * };
78
+ *
79
+ * // With Zod (via adapter):
80
+ * import { fromZod } from 'universal-llm-client/zod';
81
+ * const config = fromZod(z.object({ name: z.string(), age: z.number() }));
82
+ * ```
83
+ */
84
+ export interface SchemaConfig<T = unknown> {
85
+ /** JSON Schema sent to the LLM provider */
86
+ readonly jsonSchema: JSONSchema;
87
+ /**
88
+ * Optional validator: parse unknown → T or throw.
89
+ * If omitted, JSON.parse() result is returned as-is (unsafe cast).
90
+ */
91
+ readonly validate?: (data: unknown) => T;
92
+ /** Schema name (for provider guidance, e.g. OpenAI strict mode) */
93
+ readonly name?: string;
94
+ /** Schema description (for provider guidance) */
95
+ readonly description?: string;
96
+ }
97
+ /**
98
+ * Provider identifier for schema conversion.
99
+ */
100
+ export type SchemaProvider = 'openai' | 'ollama' | 'google';
101
+ /**
102
+ * Result of converting a schema for a specific provider.
103
+ */
104
+ export interface ProviderSchema {
105
+ /** The JSON Schema for the provider */
106
+ schema: JSONSchema;
107
+ /** Optional schema name (used by OpenAI) */
108
+ name?: string;
109
+ /** Optional schema description (used by OpenAI) */
110
+ description?: string;
111
+ }
112
+ /**
113
+ * Error options for StructuredOutputError
114
+ */
115
+ export interface StructuredOutputErrorOptions {
116
+ /** The raw output from the LLM that failed validation */
117
+ rawOutput: string;
118
+ /** The underlying cause (e.g., validation error) */
119
+ cause?: Error;
120
+ }
121
+ /**
122
+ * Custom error class for structured output validation failures.
123
+ *
124
+ * Thrown when:
125
+ * - JSON parsing of LLM response fails
126
+ * - Schema validation fails
127
+ *
128
+ * Features:
129
+ * - `rawOutput` property containing the original LLM response
130
+ * - `cause` property for the underlying error
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * try {
135
+ * const result = await model.generateStructured(schema, messages);
136
+ * } catch (error) {
137
+ * if (error instanceof StructuredOutputError) {
138
+ * console.log('Raw LLM output:', error.rawOutput);
139
+ * console.log('Cause:', error.cause);
140
+ * }
141
+ * }
142
+ * ```
143
+ */
144
+ export declare class StructuredOutputError extends Error {
145
+ /** The raw output from the LLM that failed validation */
146
+ readonly rawOutput: string;
147
+ /** The underlying cause (e.g., validation error) */
148
+ readonly cause?: Error;
149
+ constructor(message: string, options: StructuredOutputErrorOptions);
150
+ }
151
+ /**
152
+ * Options for structured output generation.
153
+ *
154
+ * Accepts either:
155
+ * - A SchemaConfig (recommended)
156
+ * - A raw JSON Schema object for flexibility
157
+ *
158
+ * @template T The expected output type
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * // Using SchemaConfig
163
+ * const options: StructuredOutputOptions<User> = {
164
+ * schemaConfig: mySchemaConfig,
165
+ * };
166
+ * ```
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * // Using raw JSON Schema
171
+ * const options: StructuredOutputOptions<User> = {
172
+ * jsonSchema: {
173
+ * type: 'object',
174
+ * properties: {
175
+ * name: { type: 'string' },
176
+ * age: { type: 'number' },
177
+ * },
178
+ * required: ['name', 'age'],
179
+ * },
180
+ * };
181
+ * ```
182
+ */
183
+ export interface StructuredOutputOptions<T> {
184
+ /**
185
+ * Schema configuration for structured output.
186
+ * Contains JSON Schema + optional validator.
187
+ */
188
+ schemaConfig?: SchemaConfig<T>;
189
+ /**
190
+ * Raw JSON Schema for structured output.
191
+ * Use this when you have a pre-defined schema without validation.
192
+ */
193
+ jsonSchema?: JSONSchema;
194
+ /**
195
+ * Optional name for the schema.
196
+ * Used by providers like OpenAI for better LLM guidance.
197
+ */
198
+ name?: string;
199
+ /**
200
+ * Optional description for the schema.
201
+ * Used by providers like OpenAI for better LLM guidance.
202
+ */
203
+ description?: string;
204
+ }
205
+ /**
206
+ * Successful structured output result.
207
+ *
208
+ * @template T The output type
209
+ */
210
+ export interface StructuredOutputSuccess<T> {
211
+ /** Indicates success */
212
+ readonly ok: true;
213
+ /** The validated output value */
214
+ readonly value: T;
215
+ }
216
+ /**
217
+ * Failed structured output result.
218
+ *
219
+ * @template _T The expected output type (unused but kept for type alignment with StructuredOutputSuccess)
220
+ */
221
+ export interface StructuredOutputFailure<_T> {
222
+ /** Indicates failure */
223
+ readonly ok: false;
224
+ /** The error that occurred */
225
+ readonly error: StructuredOutputError;
226
+ /** The raw output from the LLM */
227
+ readonly rawOutput: string;
228
+ }
229
+ /**
230
+ * Result of structured output parsing.
231
+ *
232
+ * Discriminated union type that provides type-safe result handling:
233
+ * - `ok: true` → `{ value: T }`
234
+ * - `ok: false` → `{ error: StructuredOutputError, rawOutput: string }`
235
+ *
236
+ * @template T The output type
237
+ */
238
+ export type StructuredOutputResult<T> = StructuredOutputSuccess<T> | StructuredOutputFailure<T>;
239
+ /**
240
+ * Type guard to check if a structured output result is successful.
241
+ */
242
+ export declare function isStructuredOutputSuccess<T>(result: StructuredOutputResult<T>): result is StructuredOutputSuccess<T>;
243
+ /**
244
+ * Type guard to check if a structured output result is a failure.
245
+ */
246
+ export declare function isStructuredOutputFailure<T>(result: StructuredOutputResult<T>): result is StructuredOutputFailure<T>;
247
+ /**
248
+ * Normalize a raw JSON Schema.
249
+ *
250
+ * Currently passes through without modification.
251
+ * Future versions may add normalization for provider compatibility.
252
+ *
253
+ * @param schema The JSON Schema to normalize
254
+ * @returns Normalized JSON Schema
255
+ */
256
+ export declare function normalizeJsonSchema(schema: JSONSchema): JSONSchema;
257
+ /**
258
+ * Get the JSON Schema from a SchemaConfig or StructuredOutputOptions.
259
+ *
260
+ * @param options The structured output options
261
+ * @returns JSON Schema
262
+ */
263
+ export declare function getJsonSchema<T>(options: StructuredOutputOptions<T>): JSONSchema;
264
+ /**
265
+ * Get the JSON Schema from a SchemaConfig directly.
266
+ */
267
+ export declare function getJsonSchemaFromConfig<T>(config: SchemaConfig<T>): JSONSchema;
268
+ /**
269
+ * Strip unsupported features from a JSON Schema for a specific provider.
270
+ *
271
+ * Google/Gemini doesn't support certain JSON Schema features like pattern, min/max.
272
+ * This function removes those recursively.
273
+ *
274
+ * @param schema The JSON Schema to transform
275
+ * @param provider The target provider
276
+ * @returns Cleaned JSON Schema
277
+ */
278
+ export declare function stripUnsupportedFeatures(schema: JSONSchema, provider: SchemaProvider): JSONSchema;
279
+ /**
280
+ * Convert structured output options to a provider-specific schema.
281
+ *
282
+ * This function:
283
+ * 1. Extracts/converts the JSON Schema from options
284
+ * 2. Applies provider-specific transformations (e.g., removing unsupported features for Google)
285
+ * 3. Adds name/description for LLM guidance
286
+ */
287
+ export declare function convertToProviderSchema<T>(provider: SchemaProvider, options: StructuredOutputOptions<T>): ProviderSchema;
288
+ /**
289
+ * Parse and validate structured output from raw LLM response text.
290
+ *
291
+ * This function:
292
+ * 1. Parses JSON from the raw output string
293
+ * 2. Validates using the SchemaConfig's validate function (if provided)
294
+ * 3. Throws StructuredOutputError on failure
295
+ *
296
+ * @param config The schema configuration with optional validator
297
+ * @param rawOutput The raw string output from the LLM
298
+ * @returns The validated and typed data
299
+ * @throws StructuredOutputError if JSON parsing fails or validation fails
300
+ */
301
+ export declare function parseStructured<T>(config: SchemaConfig<T>, rawOutput: string): T;
302
+ /**
303
+ * Try to parse and validate structured output, returning a result object.
304
+ *
305
+ * This is the non-throwing variant of `parseStructured`. Instead of throwing
306
+ * on validation failure, it returns a result object with `ok: false` and
307
+ * the error details.
308
+ *
309
+ * @param config The schema configuration with optional validator
310
+ * @param rawOutput The raw string output from the LLM
311
+ * @returns A result object: `{ ok: true, value }` on success, `{ ok: false, error, rawOutput }` on failure
312
+ */
313
+ export declare function tryParseStructured<T>(config: SchemaConfig<T>, rawOutput: string): StructuredOutputResult<T>;
314
+ /**
315
+ * Validate already-parsed data using a SchemaConfig's validator.
316
+ *
317
+ * This is useful when you have already parsed JSON and need to validate it.
318
+ *
319
+ * @param config The schema configuration with optional validator
320
+ * @param data The parsed data to validate
321
+ * @param rawOutput Optional raw output string for error messages
322
+ * @returns The validated and typed data
323
+ * @throws StructuredOutputError if validation fails
324
+ */
325
+ export declare function validateStructuredOutput<T>(config: SchemaConfig<T>, data: unknown, rawOutput?: string): T;
326
+ /**
327
+ * Incremental JSON parser for streaming structured output.
328
+ *
329
+ * Allows parsing partial JSON as it streams in, returning validated partial
330
+ * objects when possible. Useful for structured output streaming where you
331
+ * want to see partial results before the complete JSON arrives.
332
+ */
333
+ export declare class StreamingJsonParser<T> {
334
+ private buffer;
335
+ private readonly validateFn?;
336
+ constructor(config: SchemaConfig<T>);
337
+ /**
338
+ * Feed a chunk of JSON text to the parser.
339
+ * Returns a validated partial object if the current buffer can be parsed
340
+ * as valid JSON that passes validation, or undefined if not yet valid.
341
+ */
342
+ feed(chunk: string): {
343
+ partial: T | undefined;
344
+ complete: boolean;
345
+ };
346
+ /**
347
+ * Get the current buffer content.
348
+ */
349
+ getBuffer(): string;
350
+ /**
351
+ * Reset the parser state.
352
+ */
353
+ reset(): void;
354
+ /**
355
+ * Attempt to parse partial JSON by adding closing brackets.
356
+ */
357
+ private tryParsePartial;
358
+ }
359
+ /**
360
+ * Streaming structured output result.
361
+ * Each partial yield from the generator is a validated object (possibly partial).
362
+ * The final return value is the complete validated object.
363
+ */
364
+ export interface StreamingStructuredResult<T> {
365
+ /** Whether this is partial (incomplete) data */
366
+ partial: boolean;
367
+ /** The validated partial or complete object */
368
+ value: T;
369
+ }
370
+ //# sourceMappingURL=structured-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../src/structured-output.ts"],"names":[],"mappings":"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"}