@sogni-ai/sogni-client 4.2.0-alpha.21 → 4.2.0-alpha.22

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 (170) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/CLAUDE.md +7 -0
  3. package/README.md +45 -25
  4. package/dist/Chat/ChatTools.js +30 -16
  5. package/dist/Chat/ChatTools.js.map +1 -1
  6. package/dist/Chat/hostedToolValidation.generated.d.ts +46 -0
  7. package/dist/Chat/hostedToolValidation.generated.js +306 -0
  8. package/dist/Chat/hostedToolValidation.generated.js.map +1 -0
  9. package/dist/Chat/index.d.ts +41 -1
  10. package/dist/Chat/index.js +166 -2
  11. package/dist/Chat/index.js.map +1 -1
  12. package/dist/Chat/modelRouting.d.ts +8 -26
  13. package/dist/Chat/modelRouting.js +11 -106
  14. package/dist/Chat/modelRouting.js.map +1 -1
  15. package/dist/Chat/sogniHostedTools.generated.json +1285 -283
  16. package/dist/Chat/tools.d.ts +52 -3
  17. package/dist/Chat/tools.js +80 -27
  18. package/dist/Chat/tools.js.map +1 -1
  19. package/dist/Chat/types.d.ts +119 -3
  20. package/dist/CreativeWorkflows/index.d.ts +1 -7
  21. package/dist/CreativeWorkflows/index.js +23 -21
  22. package/dist/CreativeWorkflows/index.js.map +1 -1
  23. package/dist/CreativeWorkflows/types.d.ts +27 -33
  24. package/dist/index.d.ts +19 -4
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/Cache.js +6 -1
  28. package/dist/lib/Cache.js.map +1 -1
  29. package/dist-esm/Account/CurrentAccount.js +59 -0
  30. package/dist-esm/Account/CurrentAccount.js.map +1 -0
  31. package/dist-esm/Account/index.js +543 -0
  32. package/dist-esm/Account/index.js.map +1 -0
  33. package/dist-esm/Account/types.js +2 -0
  34. package/dist-esm/Account/types.js.map +1 -0
  35. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js +327 -0
  36. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js.map +1 -0
  37. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js +222 -0
  38. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js.map +1 -0
  39. package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js +15 -0
  40. package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
  41. package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js +35 -0
  42. package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js.map +1 -0
  43. package/dist-esm/ApiClient/WebSocketClient/events.js +2 -0
  44. package/dist-esm/ApiClient/WebSocketClient/events.js.map +1 -0
  45. package/dist-esm/ApiClient/WebSocketClient/index.js +221 -0
  46. package/dist-esm/ApiClient/WebSocketClient/index.js.map +1 -0
  47. package/dist-esm/ApiClient/WebSocketClient/messages.js +2 -0
  48. package/dist-esm/ApiClient/WebSocketClient/messages.js.map +1 -0
  49. package/dist-esm/ApiClient/WebSocketClient/types.js +2 -0
  50. package/dist-esm/ApiClient/WebSocketClient/types.js.map +1 -0
  51. package/dist-esm/ApiClient/events.js +2 -0
  52. package/dist-esm/ApiClient/events.js.map +1 -0
  53. package/dist-esm/ApiClient/index.js +120 -0
  54. package/dist-esm/ApiClient/index.js.map +1 -0
  55. package/dist-esm/ApiGroup.js +10 -0
  56. package/dist-esm/ApiGroup.js.map +1 -0
  57. package/dist-esm/Chat/ChatStream.js +181 -0
  58. package/dist-esm/Chat/ChatStream.js.map +1 -0
  59. package/dist-esm/Chat/ChatTools.js +562 -0
  60. package/dist-esm/Chat/ChatTools.js.map +1 -0
  61. package/dist-esm/Chat/hostedToolValidation.generated.js +301 -0
  62. package/dist-esm/Chat/hostedToolValidation.generated.js.map +1 -0
  63. package/dist-esm/Chat/index.js +598 -0
  64. package/dist-esm/Chat/index.js.map +1 -0
  65. package/dist-esm/Chat/modelRouting.js +326 -0
  66. package/dist-esm/Chat/modelRouting.js.map +1 -0
  67. package/dist-esm/Chat/sogniHostedTools.generated.json +1531 -0
  68. package/dist-esm/Chat/tools.js +149 -0
  69. package/dist-esm/Chat/tools.js.map +1 -0
  70. package/dist-esm/Chat/types.js +2 -0
  71. package/dist-esm/Chat/types.js.map +1 -0
  72. package/dist-esm/CreativeWorkflows/index.js +256 -0
  73. package/dist-esm/CreativeWorkflows/index.js.map +1 -0
  74. package/dist-esm/CreativeWorkflows/types.js +2 -0
  75. package/dist-esm/CreativeWorkflows/types.js.map +1 -0
  76. package/dist-esm/Projects/Job.js +391 -0
  77. package/dist-esm/Projects/Job.js.map +1 -0
  78. package/dist-esm/Projects/Project.js +295 -0
  79. package/dist-esm/Projects/Project.js.map +1 -0
  80. package/dist-esm/Projects/createJobRequestMessage.js +528 -0
  81. package/dist-esm/Projects/createJobRequestMessage.js.map +1 -0
  82. package/dist-esm/Projects/index.js +1309 -0
  83. package/dist-esm/Projects/index.js.map +1 -0
  84. package/dist-esm/Projects/types/ComfySamplerParams.js +2 -0
  85. package/dist-esm/Projects/types/ComfySamplerParams.js.map +1 -0
  86. package/dist-esm/Projects/types/ControlNetParams.js +2 -0
  87. package/dist-esm/Projects/types/ControlNetParams.js.map +1 -0
  88. package/dist-esm/Projects/types/EstimationResponse.js +2 -0
  89. package/dist-esm/Projects/types/EstimationResponse.js.map +1 -0
  90. package/dist-esm/Projects/types/ModelOptions.js +89 -0
  91. package/dist-esm/Projects/types/ModelOptions.js.map +1 -0
  92. package/dist-esm/Projects/types/ModelTiersRaw.js +13 -0
  93. package/dist-esm/Projects/types/ModelTiersRaw.js.map +1 -0
  94. package/dist-esm/Projects/types/RawProject.js +2 -0
  95. package/dist-esm/Projects/types/RawProject.js.map +1 -0
  96. package/dist-esm/Projects/types/events.js +2 -0
  97. package/dist-esm/Projects/types/events.js.map +1 -0
  98. package/dist-esm/Projects/types/index.js +10 -0
  99. package/dist-esm/Projects/types/index.js.map +1 -0
  100. package/dist-esm/Projects/utils/index.js +229 -0
  101. package/dist-esm/Projects/utils/index.js.map +1 -0
  102. package/dist-esm/Projects/utils/samplers.js +36 -0
  103. package/dist-esm/Projects/utils/samplers.js.map +1 -0
  104. package/dist-esm/Projects/utils/scheduler.js +27 -0
  105. package/dist-esm/Projects/utils/scheduler.js.map +1 -0
  106. package/dist-esm/Stats/index.js +20 -0
  107. package/dist-esm/Stats/index.js.map +1 -0
  108. package/dist-esm/Stats/types.js +2 -0
  109. package/dist-esm/Stats/types.js.map +1 -0
  110. package/dist-esm/events.js +2 -0
  111. package/dist-esm/events.js.map +1 -0
  112. package/dist-esm/index.js +144 -0
  113. package/dist-esm/index.js.map +1 -0
  114. package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js +58 -0
  115. package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
  116. package/dist-esm/lib/AuthManager/AuthManagerBase.js +9 -0
  117. package/dist-esm/lib/AuthManager/AuthManagerBase.js.map +1 -0
  118. package/dist-esm/lib/AuthManager/CookieAuthManager.js +48 -0
  119. package/dist-esm/lib/AuthManager/CookieAuthManager.js.map +1 -0
  120. package/dist-esm/lib/AuthManager/TokenAuthManager.js +186 -0
  121. package/dist-esm/lib/AuthManager/TokenAuthManager.js.map +1 -0
  122. package/dist-esm/lib/AuthManager/index.js +5 -0
  123. package/dist-esm/lib/AuthManager/index.js.map +1 -0
  124. package/dist-esm/lib/Cache.js +32 -0
  125. package/dist-esm/lib/Cache.js.map +1 -0
  126. package/dist-esm/lib/DataEntity.js +30 -0
  127. package/dist-esm/lib/DataEntity.js.map +1 -0
  128. package/dist-esm/lib/DefaultLogger.js +32 -0
  129. package/dist-esm/lib/DefaultLogger.js.map +1 -0
  130. package/dist-esm/lib/EIP712Helper.js +37 -0
  131. package/dist-esm/lib/EIP712Helper.js.map +1 -0
  132. package/dist-esm/lib/RestClient.js +90 -0
  133. package/dist-esm/lib/RestClient.js.map +1 -0
  134. package/dist-esm/lib/TypedEventEmitter.js +68 -0
  135. package/dist-esm/lib/TypedEventEmitter.js.map +1 -0
  136. package/dist-esm/lib/base64.js +18 -0
  137. package/dist-esm/lib/base64.js.map +1 -0
  138. package/dist-esm/lib/getUUID.js +7 -0
  139. package/dist-esm/lib/getUUID.js.map +1 -0
  140. package/dist-esm/lib/isNodejs.js +3 -0
  141. package/dist-esm/lib/isNodejs.js.map +1 -0
  142. package/dist-esm/lib/mediaValidation.js +277 -0
  143. package/dist-esm/lib/mediaValidation.js.map +1 -0
  144. package/dist-esm/lib/utils/index.js +30 -0
  145. package/dist-esm/lib/utils/index.js.map +1 -0
  146. package/dist-esm/lib/validation.js +138 -0
  147. package/dist-esm/lib/validation.js.map +1 -0
  148. package/dist-esm/package.json +3 -0
  149. package/dist-esm/types/ErrorData.js +2 -0
  150. package/dist-esm/types/ErrorData.js.map +1 -0
  151. package/dist-esm/types/json.js +2 -0
  152. package/dist-esm/types/json.js.map +1 -0
  153. package/dist-esm/types/token.js +2 -0
  154. package/dist-esm/types/token.js.map +1 -0
  155. package/dist-esm/version.js +3 -0
  156. package/dist-esm/version.js.map +1 -0
  157. package/llms-full.txt +11 -20
  158. package/llms.txt +9 -18
  159. package/package.json +21 -5
  160. package/src/Chat/ChatTools.ts +36 -16
  161. package/src/Chat/hostedToolValidation.generated.ts +453 -0
  162. package/src/Chat/index.ts +198 -3
  163. package/src/Chat/modelRouting.ts +26 -150
  164. package/src/Chat/sogniHostedTools.generated.json +1285 -283
  165. package/src/Chat/tools.ts +106 -41
  166. package/src/Chat/types.ts +131 -3
  167. package/src/CreativeWorkflows/index.ts +22 -41
  168. package/src/CreativeWorkflows/types.ts +69 -42
  169. package/src/index.ts +33 -12
  170. package/src/lib/Cache.ts +8 -1
@@ -0,0 +1,301 @@
1
+ function matchesType(value, type) {
2
+ switch (type) {
3
+ case 'array':
4
+ return Array.isArray(value);
5
+ case 'integer':
6
+ return typeof value === 'number' && Number.isInteger(value);
7
+ case 'number':
8
+ return typeof value === 'number' && Number.isFinite(value);
9
+ case 'boolean':
10
+ return typeof value === 'boolean';
11
+ case 'object':
12
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
13
+ case 'string':
14
+ return typeof value === 'string';
15
+ case 'null':
16
+ return value === null;
17
+ default:
18
+ return true;
19
+ }
20
+ }
21
+ function typeLabel(type) {
22
+ if (Array.isArray(type))
23
+ return type.join(' or ');
24
+ return type !== null && type !== void 0 ? type : 'valid value';
25
+ }
26
+ function typeList(type) {
27
+ if (!type)
28
+ return [];
29
+ return Array.isArray(type) ? type : [type];
30
+ }
31
+ function formatEnum(values) {
32
+ return values.map(value => JSON.stringify(value)).join(', ');
33
+ }
34
+ function isRecord(value) {
35
+ return !!value && typeof value === 'object' && !Array.isArray(value);
36
+ }
37
+ function valuesEqual(left, right) {
38
+ if (Object.is(left, right))
39
+ return true;
40
+ if (typeof left !== typeof right)
41
+ return false;
42
+ if (left === null || right === null)
43
+ return left === right;
44
+ if (typeof left !== 'object')
45
+ return false;
46
+ try {
47
+ return JSON.stringify(left) === JSON.stringify(right);
48
+ }
49
+ catch (_a) {
50
+ return false;
51
+ }
52
+ }
53
+ function coerceValueForTypes(value, allowedTypes) {
54
+ if (typeof value !== 'string')
55
+ return { value, coerced: false };
56
+ const trimmed = value.trim();
57
+ if (!trimmed)
58
+ return { value, coerced: false };
59
+ if (allowedTypes.includes('integer') || allowedTypes.includes('number')) {
60
+ const numberValue = Number(trimmed);
61
+ if (Number.isFinite(numberValue)
62
+ && (!allowedTypes.includes('integer') || Number.isInteger(numberValue))) {
63
+ return { value: numberValue, coerced: true };
64
+ }
65
+ }
66
+ if (allowedTypes.includes('boolean')) {
67
+ if (/^(?:true|false)$/i.test(trimmed)) {
68
+ return { value: trimmed.toLowerCase() === 'true', coerced: true };
69
+ }
70
+ }
71
+ return { value, coerced: false };
72
+ }
73
+ function validateNumberBounds(path, value, schema, errors) {
74
+ if (schema.minimum !== undefined && value < schema.minimum) {
75
+ errors.push(`Argument "${path}" must be at least ${schema.minimum}`);
76
+ }
77
+ if (schema.maximum !== undefined && value > schema.maximum) {
78
+ errors.push(`Argument "${path}" must be at most ${schema.maximum}`);
79
+ }
80
+ if (typeof schema.exclusiveMinimum === 'number' && value <= schema.exclusiveMinimum) {
81
+ errors.push(`Argument "${path}" must be greater than ${schema.exclusiveMinimum}`);
82
+ }
83
+ if (typeof schema.exclusiveMaximum === 'number' && value >= schema.exclusiveMaximum) {
84
+ errors.push(`Argument "${path}" must be less than ${schema.exclusiveMaximum}`);
85
+ }
86
+ if (schema.exclusiveMinimum === true && schema.minimum !== undefined && value <= schema.minimum) {
87
+ errors.push(`Argument "${path}" must be greater than ${schema.minimum}`);
88
+ }
89
+ if (schema.exclusiveMaximum === true && schema.maximum !== undefined && value >= schema.maximum) {
90
+ errors.push(`Argument "${path}" must be less than ${schema.maximum}`);
91
+ }
92
+ }
93
+ function validateStringConstraints(path, value, schema, errors) {
94
+ if (schema.minLength !== undefined && value.length < schema.minLength) {
95
+ errors.push(`Argument "${path}" must contain at least ${schema.minLength} character${schema.minLength === 1 ? '' : 's'}`);
96
+ }
97
+ if (schema.maxLength !== undefined && value.length > schema.maxLength) {
98
+ errors.push(`Argument "${path}" must contain at most ${schema.maxLength} character${schema.maxLength === 1 ? '' : 's'}`);
99
+ }
100
+ if (schema.pattern) {
101
+ try {
102
+ // Hosted-tool schema authors near-universally assume anchored matching
103
+ // for ID-like fields, but JSON Schema `pattern` is unanchored. Auto-anchor
104
+ // to prevent prefix/suffix injection (e.g. `pattern: 'safe-prefix-'` should
105
+ // reject `'evil-safe-prefix-suffix'`). Wrapping with `^(?:...)$` is safe
106
+ // even for already-anchored patterns — `^^…$$` still matches the same set.
107
+ if (!new RegExp(`^(?:${schema.pattern})$`).test(value)) {
108
+ errors.push(`Argument "${path}" must match pattern ${JSON.stringify(schema.pattern)}`);
109
+ }
110
+ }
111
+ catch (_a) {
112
+ errors.push(`Schema for "${path}" contains invalid pattern ${JSON.stringify(schema.pattern)}`);
113
+ }
114
+ }
115
+ }
116
+ function validateCompositeSchema(path, value, schema, context) {
117
+ var _a, _b;
118
+ if (schema.allOf) {
119
+ let nextValue = value;
120
+ for (const childSchema of schema.allOf) {
121
+ const result = validateValueAgainstSchema(path, nextValue, childSchema, context);
122
+ nextValue = result.value;
123
+ }
124
+ return { matched: true, value: nextValue };
125
+ }
126
+ const alternatives = (_a = schema.oneOf) !== null && _a !== void 0 ? _a : schema.anyOf;
127
+ if (!alternatives)
128
+ return { matched: true, value };
129
+ const matches = [];
130
+ for (const childSchema of alternatives) {
131
+ const trial = Object.assign(Object.assign({}, context), { errors: [], warnings: [] });
132
+ const result = validateValueAgainstSchema(path, value, childSchema, trial);
133
+ if (trial.errors.length === 0)
134
+ matches.push(result.value);
135
+ }
136
+ if (schema.oneOf && matches.length !== 1) {
137
+ context.errors.push(`Argument "${path}" must match exactly one allowed schema`);
138
+ return { matched: false, value };
139
+ }
140
+ if (schema.anyOf && matches.length < 1) {
141
+ context.errors.push(`Argument "${path}" must match at least one allowed schema`);
142
+ return { matched: false, value };
143
+ }
144
+ return { matched: true, value: (_b = matches[0]) !== null && _b !== void 0 ? _b : value };
145
+ }
146
+ function validateObjectAgainstSchema(path, value, schema, context) {
147
+ var _a, _b;
148
+ const properties = (_a = schema.properties) !== null && _a !== void 0 ? _a : {};
149
+ const cleaned = {};
150
+ for (const required of (_b = schema.required) !== null && _b !== void 0 ? _b : []) {
151
+ const propValue = value[required];
152
+ // Empty string and empty array are treated as missing — schema authors
153
+ // assume `required` means "has a usable value", not "is non-undefined".
154
+ // Empty object is left untouched (some schemas legitimately accept `{}`).
155
+ const isMissing = propValue === undefined
156
+ || propValue === null
157
+ || propValue === ''
158
+ || (Array.isArray(propValue) && propValue.length === 0);
159
+ if (isMissing) {
160
+ context.errors.push(`Missing required argument "${path ? `${path}.` : ''}${required}"`);
161
+ }
162
+ }
163
+ for (const [name, entryValue] of Object.entries(value)) {
164
+ if (entryValue === undefined || entryValue === null) {
165
+ if (name in properties || !context.stripUnknownProperties)
166
+ cleaned[name] = entryValue;
167
+ continue;
168
+ }
169
+ const property = properties[name];
170
+ if (!property) {
171
+ if (schema.additionalProperties === false || context.stripUnknownProperties) {
172
+ context.warnings.push(`Stripped unknown argument "${path ? `${path}.` : ''}${name}"`);
173
+ }
174
+ else if (isRecord(schema.additionalProperties)) {
175
+ cleaned[name] = validateValueAgainstSchema(path ? `${path}.${name}` : name, entryValue, schema.additionalProperties, context).value;
176
+ }
177
+ else {
178
+ cleaned[name] = entryValue;
179
+ }
180
+ continue;
181
+ }
182
+ cleaned[name] = validateValueAgainstSchema(path ? `${path}.${name}` : name, entryValue, property, context).value;
183
+ }
184
+ return cleaned;
185
+ }
186
+ function validateArrayAgainstSchema(path, value, schema, context) {
187
+ if (schema.minItems !== undefined && value.length < schema.minItems) {
188
+ context.errors.push(`Argument "${path}" must contain at least ${schema.minItems} item${schema.minItems === 1 ? '' : 's'}`);
189
+ }
190
+ if (schema.maxItems !== undefined && value.length > schema.maxItems) {
191
+ context.errors.push(`Argument "${path}" must contain at most ${schema.maxItems} item${schema.maxItems === 1 ? '' : 's'}`);
192
+ }
193
+ if (!schema.items)
194
+ return value;
195
+ if (Array.isArray(schema.items)) {
196
+ const tupleSchemas = schema.items;
197
+ return value.map((item, index) => {
198
+ const itemSchema = tupleSchemas[index];
199
+ return itemSchema
200
+ ? validateValueAgainstSchema(`${path}[${index}]`, item, itemSchema, context).value
201
+ : item;
202
+ });
203
+ }
204
+ return value.map((item, index) => validateValueAgainstSchema(`${path}[${index}]`, item, schema.items, context).value);
205
+ }
206
+ function validateValueAgainstSchema(path, rawValue, schema, context) {
207
+ var _a;
208
+ const composite = validateCompositeSchema(path, rawValue, schema, context);
209
+ if (!composite.matched)
210
+ return { value: rawValue };
211
+ let value = composite.value;
212
+ const allowedTypes = typeList(schema.type);
213
+ if (context.coercePrimitives
214
+ && allowedTypes.length > 0
215
+ && !allowedTypes.some(type => matchesType(value, type))) {
216
+ const coerced = coerceValueForTypes(value, allowedTypes);
217
+ if (coerced.coerced) {
218
+ context.warnings.push(`Coerced argument "${path}" to ${typeof coerced.value}`);
219
+ value = coerced.value;
220
+ }
221
+ }
222
+ if (allowedTypes.length > 0 && !allowedTypes.some(type => matchesType(value, type))) {
223
+ context.errors.push(`Argument "${path}" must be ${typeLabel(schema.type)}`);
224
+ return { value };
225
+ }
226
+ if (schema.const !== undefined && !valuesEqual(value, schema.const)) {
227
+ context.errors.push(`Argument "${path}" must be ${JSON.stringify(schema.const)}`);
228
+ }
229
+ if (schema.enum
230
+ && !context.skipEnumProperties.has(path)
231
+ && !context.skipEnumProperties.has((_a = path.split('.').at(-1)) !== null && _a !== void 0 ? _a : path)
232
+ && !schema.enum.some(candidate => valuesEqual(candidate, value))) {
233
+ context.errors.push(`Argument "${path}" must be one of ${formatEnum(schema.enum)}`);
234
+ }
235
+ if (typeof value === 'number') {
236
+ validateNumberBounds(path, value, schema, context.errors);
237
+ }
238
+ if (typeof value === 'string') {
239
+ validateStringConstraints(path, value, schema, context.errors);
240
+ }
241
+ if (Array.isArray(value)) {
242
+ value = validateArrayAgainstSchema(path, value, schema, context);
243
+ }
244
+ if (isRecord(value)) {
245
+ value = validateObjectAgainstSchema(path, value, schema, context);
246
+ }
247
+ return { value };
248
+ }
249
+ export function validateAndNormalizeHostedToolArguments(tools, toolName, args, options = {}) {
250
+ var _a, _b;
251
+ if (!args || typeof args !== 'object' || Array.isArray(args)) {
252
+ return {
253
+ ok: false,
254
+ errors: ['Tool arguments must be a JSON object'],
255
+ cleaned: {},
256
+ warnings: [],
257
+ };
258
+ }
259
+ const tool = tools.find(candidate => candidate.function.name === toolName);
260
+ if (!tool) {
261
+ return {
262
+ ok: false,
263
+ errors: [`Unknown hosted Sogni tool "${toolName}"`],
264
+ cleaned: args,
265
+ warnings: [],
266
+ };
267
+ }
268
+ const schema = tool.function.parameters;
269
+ if (!schema) {
270
+ return { ok: true, errors: [], cleaned: args, warnings: [] };
271
+ }
272
+ const context = {
273
+ skipEnumProperties: new Set((_a = options.skipEnumProperties) !== null && _a !== void 0 ? _a : ['model']),
274
+ coercePrimitives: options.coercePrimitives === true,
275
+ stripUnknownProperties: options.stripUnknownProperties === true,
276
+ errors: [],
277
+ warnings: [],
278
+ };
279
+ const normalizedSchema = Object.assign(Object.assign({}, schema), { type: (_b = schema.type) !== null && _b !== void 0 ? _b : 'object' });
280
+ const cleaned = validateValueAgainstSchema('', args, normalizedSchema, context).value;
281
+ return {
282
+ ok: context.errors.length === 0,
283
+ errors: context.errors,
284
+ cleaned: isRecord(cleaned) ? cleaned : args,
285
+ warnings: context.warnings,
286
+ };
287
+ }
288
+ export function validateHostedToolArguments(tools, toolName, args, options = {}) {
289
+ const result = validateAndNormalizeHostedToolArguments(tools, toolName, args, options);
290
+ return {
291
+ ok: result.ok,
292
+ errors: result.errors,
293
+ };
294
+ }
295
+ export function assertHostedToolArguments(tools, toolName, args, options) {
296
+ const result = validateHostedToolArguments(tools, toolName, args, options);
297
+ if (!result.ok) {
298
+ throw new Error(`Invalid ${toolName} arguments: ${result.errors.join('; ')}`);
299
+ }
300
+ }
301
+ //# sourceMappingURL=hostedToolValidation.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostedToolValidation.generated.js","sourceRoot":"","sources":["../../src/Chat/hostedToolValidation.generated.ts"],"names":[],"mappings":"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"}