ai.matey.utils 0.2.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.
- package/LICENSE +21 -0
- package/dist/cjs/conversation-history.js +139 -0
- package/dist/cjs/conversation-history.js.map +1 -0
- package/dist/cjs/index.js +42 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/model-cache.js +163 -0
- package/dist/cjs/model-cache.js.map +1 -0
- package/dist/cjs/parameter-normalizer.js +451 -0
- package/dist/cjs/parameter-normalizer.js.map +1 -0
- package/dist/cjs/streaming-modes.js +277 -0
- package/dist/cjs/streaming-modes.js.map +1 -0
- package/dist/cjs/streaming.js +892 -0
- package/dist/cjs/streaming.js.map +1 -0
- package/dist/cjs/structured-output.js +398 -0
- package/dist/cjs/structured-output.js.map +1 -0
- package/dist/cjs/system-message.js +222 -0
- package/dist/cjs/system-message.js.map +1 -0
- package/dist/cjs/validation.js +534 -0
- package/dist/cjs/validation.js.map +1 -0
- package/dist/cjs/warnings.js +301 -0
- package/dist/cjs/warnings.js.map +1 -0
- package/dist/esm/conversation-history.js +134 -0
- package/dist/esm/conversation-history.js.map +1 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/model-cache.js +158 -0
- package/dist/esm/model-cache.js.map +1 -0
- package/dist/esm/parameter-normalizer.js +434 -0
- package/dist/esm/parameter-normalizer.js.map +1 -0
- package/dist/esm/streaming-modes.js +265 -0
- package/dist/esm/streaming-modes.js.map +1 -0
- package/dist/esm/streaming.js +860 -0
- package/dist/esm/streaming.js.map +1 -0
- package/dist/esm/structured-output.js +387 -0
- package/dist/esm/structured-output.js.map +1 -0
- package/dist/esm/system-message.js +213 -0
- package/dist/esm/system-message.js.map +1 -0
- package/dist/esm/validation.js +523 -0
- package/dist/esm/validation.js.map +1 -0
- package/dist/esm/warnings.js +284 -0
- package/dist/esm/warnings.js.map +1 -0
- package/dist/types/conversation-history.d.ts +70 -0
- package/dist/types/conversation-history.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model-cache.d.ts +88 -0
- package/dist/types/model-cache.d.ts.map +1 -0
- package/dist/types/parameter-normalizer.d.ts +154 -0
- package/dist/types/parameter-normalizer.d.ts.map +1 -0
- package/dist/types/streaming-modes.d.ts +139 -0
- package/dist/types/streaming-modes.d.ts.map +1 -0
- package/dist/types/streaming.d.ts +384 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/structured-output.d.ts +157 -0
- package/dist/types/structured-output.d.ts.map +1 -0
- package/dist/types/system-message.d.ts +78 -0
- package/dist/types/system-message.d.ts.map +1 -0
- package/dist/types/validation.d.ts +46 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/warnings.d.ts +149 -0
- package/dist/types/warnings.d.ts.map +1 -0
- package/package.json +75 -0
- package/readme.md +280 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-message.js","sourceRoot":"","sources":["../../src/system-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation Utilities
|
|
4
|
+
*
|
|
5
|
+
* Core validation functions for IR requests, messages, and parameters.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.isValidMessageRole = isValidMessageRole;
|
|
11
|
+
exports.validateMessageContent = validateMessageContent;
|
|
12
|
+
exports.validateMessage = validateMessage;
|
|
13
|
+
exports.validateMessages = validateMessages;
|
|
14
|
+
exports.validateTemperature = validateTemperature;
|
|
15
|
+
exports.validateMaxTokens = validateMaxTokens;
|
|
16
|
+
exports.validateTopP = validateTopP;
|
|
17
|
+
exports.validateParameters = validateParameters;
|
|
18
|
+
exports.validateIRChatRequest = validateIRChatRequest;
|
|
19
|
+
const ai_matey_errors_1 = require("ai.matey.errors");
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Message Validation
|
|
22
|
+
// ============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Validate message role.
|
|
25
|
+
*/
|
|
26
|
+
function isValidMessageRole(role) {
|
|
27
|
+
return ['system', 'user', 'assistant', 'tool'].includes(role);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate message content.
|
|
31
|
+
*/
|
|
32
|
+
function validateMessageContent(content, provenance) {
|
|
33
|
+
if (typeof content === 'string') {
|
|
34
|
+
if (content.length === 0) {
|
|
35
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
36
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
37
|
+
message: 'Message content cannot be empty string',
|
|
38
|
+
validationDetails: [
|
|
39
|
+
{
|
|
40
|
+
field: 'content',
|
|
41
|
+
value: content,
|
|
42
|
+
reason: 'Content must be non-empty string or content blocks',
|
|
43
|
+
expected: 'Non-empty string or array of content blocks',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
provenance,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (!Array.isArray(content)) {
|
|
52
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
53
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
54
|
+
message: 'Message content must be string or array of content blocks',
|
|
55
|
+
validationDetails: [
|
|
56
|
+
{
|
|
57
|
+
field: 'content',
|
|
58
|
+
value: content,
|
|
59
|
+
reason: 'Invalid content type',
|
|
60
|
+
expected: 'string or ContentBlock[]',
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
provenance,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (content.length === 0) {
|
|
67
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
68
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
69
|
+
message: 'Message content array cannot be empty',
|
|
70
|
+
validationDetails: [
|
|
71
|
+
{
|
|
72
|
+
field: 'content',
|
|
73
|
+
value: content,
|
|
74
|
+
reason: 'Content array must contain at least one block',
|
|
75
|
+
expected: 'Non-empty array',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
provenance,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// Validate each content block
|
|
82
|
+
content.forEach((block, index) => {
|
|
83
|
+
if (!block || typeof block !== 'object') {
|
|
84
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
85
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
86
|
+
message: `Invalid content block at index ${index}`,
|
|
87
|
+
validationDetails: [
|
|
88
|
+
{
|
|
89
|
+
field: `content[${index}]`,
|
|
90
|
+
value: block,
|
|
91
|
+
reason: 'Content block must be an object',
|
|
92
|
+
expected: 'ContentBlock object',
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
provenance,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
const blockType = block.type;
|
|
99
|
+
if (!['text', 'image', 'tool_use', 'tool_result'].includes(blockType)) {
|
|
100
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
101
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
102
|
+
message: `Invalid content block type: ${blockType}`,
|
|
103
|
+
validationDetails: [
|
|
104
|
+
{
|
|
105
|
+
field: `content[${index}].type`,
|
|
106
|
+
value: blockType,
|
|
107
|
+
reason: 'Unknown content block type',
|
|
108
|
+
expected: 'text, image, tool_use, or tool_result',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
provenance,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Validate a single message.
|
|
118
|
+
*/
|
|
119
|
+
function validateMessage(message, provenance) {
|
|
120
|
+
if (!message || typeof message !== 'object') {
|
|
121
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
122
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
123
|
+
message: 'Message must be an object',
|
|
124
|
+
validationDetails: [
|
|
125
|
+
{
|
|
126
|
+
field: 'message',
|
|
127
|
+
value: message,
|
|
128
|
+
reason: 'Invalid message type',
|
|
129
|
+
expected: 'IRMessage object',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
provenance,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
const msg = message;
|
|
136
|
+
// Validate role
|
|
137
|
+
if (!msg.role) {
|
|
138
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
139
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
140
|
+
message: 'Message missing required field: role',
|
|
141
|
+
validationDetails: [
|
|
142
|
+
{
|
|
143
|
+
field: 'role',
|
|
144
|
+
value: undefined,
|
|
145
|
+
reason: 'Role is required',
|
|
146
|
+
expected: 'system, user, assistant, or tool',
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
provenance,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (!isValidMessageRole(msg.role)) {
|
|
153
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
154
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
155
|
+
message: `Invalid message role: ${String(msg.role)}`,
|
|
156
|
+
validationDetails: [
|
|
157
|
+
{
|
|
158
|
+
field: 'role',
|
|
159
|
+
value: msg.role,
|
|
160
|
+
reason: 'Invalid role value',
|
|
161
|
+
expected: 'system, user, assistant, or tool',
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
provenance,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
// Validate content
|
|
168
|
+
if (msg.content === undefined) {
|
|
169
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
170
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
171
|
+
message: 'Message missing required field: content',
|
|
172
|
+
validationDetails: [
|
|
173
|
+
{
|
|
174
|
+
field: 'content',
|
|
175
|
+
value: undefined,
|
|
176
|
+
reason: 'Content is required',
|
|
177
|
+
expected: 'string or ContentBlock[]',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
provenance,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
validateMessageContent(msg.content, provenance);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Validate messages array.
|
|
187
|
+
*/
|
|
188
|
+
function validateMessages(messages, provenance) {
|
|
189
|
+
if (!Array.isArray(messages)) {
|
|
190
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
191
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
192
|
+
message: 'Messages must be an array',
|
|
193
|
+
validationDetails: [
|
|
194
|
+
{
|
|
195
|
+
field: 'messages',
|
|
196
|
+
value: messages,
|
|
197
|
+
reason: 'Invalid messages type',
|
|
198
|
+
expected: 'Array of IRMessage',
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
provenance,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
if (messages.length === 0) {
|
|
205
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
206
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
207
|
+
message: 'Messages array cannot be empty',
|
|
208
|
+
validationDetails: [
|
|
209
|
+
{
|
|
210
|
+
field: 'messages',
|
|
211
|
+
value: messages,
|
|
212
|
+
reason: 'At least one message is required',
|
|
213
|
+
expected: 'Non-empty array',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
provenance,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
messages.forEach((message, index) => {
|
|
220
|
+
try {
|
|
221
|
+
validateMessage(message, provenance);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (error instanceof ai_matey_errors_1.ValidationError) {
|
|
225
|
+
// Add index to field names
|
|
226
|
+
const details = error.validationDetails.map((detail) => ({
|
|
227
|
+
...detail,
|
|
228
|
+
field: `messages[${index}].${detail.field}`,
|
|
229
|
+
}));
|
|
230
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
231
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_MESSAGE_FORMAT,
|
|
232
|
+
message: `Invalid message at index ${index}: ${error.message}`,
|
|
233
|
+
validationDetails: details,
|
|
234
|
+
provenance,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
throw error;
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
// ============================================================================
|
|
242
|
+
// Parameter Validation
|
|
243
|
+
// ============================================================================
|
|
244
|
+
/**
|
|
245
|
+
* Validate temperature parameter.
|
|
246
|
+
*/
|
|
247
|
+
function validateTemperature(temperature, provenance) {
|
|
248
|
+
if (temperature === undefined || temperature === null) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
if (typeof temperature !== 'number') {
|
|
252
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
253
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
254
|
+
message: 'Temperature must be a number',
|
|
255
|
+
validationDetails: [
|
|
256
|
+
{
|
|
257
|
+
field: 'temperature',
|
|
258
|
+
value: temperature,
|
|
259
|
+
reason: 'Invalid type',
|
|
260
|
+
expected: 'number',
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
provenance,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
if (temperature < 0 || temperature > 2) {
|
|
267
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
268
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
269
|
+
message: 'Temperature must be between 0 and 2',
|
|
270
|
+
validationDetails: [
|
|
271
|
+
{
|
|
272
|
+
field: 'temperature',
|
|
273
|
+
value: temperature,
|
|
274
|
+
reason: 'Out of range',
|
|
275
|
+
expected: '0 <= temperature <= 2',
|
|
276
|
+
},
|
|
277
|
+
],
|
|
278
|
+
provenance,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Validate maxTokens parameter.
|
|
284
|
+
*/
|
|
285
|
+
function validateMaxTokens(maxTokens, provenance) {
|
|
286
|
+
if (maxTokens === undefined || maxTokens === null) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
if (typeof maxTokens !== 'number') {
|
|
290
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
291
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
292
|
+
message: 'maxTokens must be a number',
|
|
293
|
+
validationDetails: [
|
|
294
|
+
{
|
|
295
|
+
field: 'maxTokens',
|
|
296
|
+
value: maxTokens,
|
|
297
|
+
reason: 'Invalid type',
|
|
298
|
+
expected: 'number',
|
|
299
|
+
},
|
|
300
|
+
],
|
|
301
|
+
provenance,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
if (!Number.isInteger(maxTokens) || maxTokens < 1) {
|
|
305
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
306
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
307
|
+
message: 'maxTokens must be a positive integer',
|
|
308
|
+
validationDetails: [
|
|
309
|
+
{
|
|
310
|
+
field: 'maxTokens',
|
|
311
|
+
value: maxTokens,
|
|
312
|
+
reason: 'Invalid value',
|
|
313
|
+
expected: 'Positive integer',
|
|
314
|
+
},
|
|
315
|
+
],
|
|
316
|
+
provenance,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Validate topP parameter.
|
|
322
|
+
*/
|
|
323
|
+
function validateTopP(topP, provenance) {
|
|
324
|
+
if (topP === undefined || topP === null) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
if (typeof topP !== 'number') {
|
|
328
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
329
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
330
|
+
message: 'topP must be a number',
|
|
331
|
+
validationDetails: [
|
|
332
|
+
{
|
|
333
|
+
field: 'topP',
|
|
334
|
+
value: topP,
|
|
335
|
+
reason: 'Invalid type',
|
|
336
|
+
expected: 'number',
|
|
337
|
+
},
|
|
338
|
+
],
|
|
339
|
+
provenance,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
if (topP < 0 || topP > 1) {
|
|
343
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
344
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
345
|
+
message: 'topP must be between 0 and 1',
|
|
346
|
+
validationDetails: [
|
|
347
|
+
{
|
|
348
|
+
field: 'topP',
|
|
349
|
+
value: topP,
|
|
350
|
+
reason: 'Out of range',
|
|
351
|
+
expected: '0 <= topP <= 1',
|
|
352
|
+
},
|
|
353
|
+
],
|
|
354
|
+
provenance,
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Validate parameters object.
|
|
360
|
+
*/
|
|
361
|
+
function validateParameters(parameters, provenance) {
|
|
362
|
+
if (parameters === undefined || parameters === null) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
if (typeof parameters !== 'object') {
|
|
366
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
367
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
368
|
+
message: 'Parameters must be an object',
|
|
369
|
+
validationDetails: [
|
|
370
|
+
{
|
|
371
|
+
field: 'parameters',
|
|
372
|
+
value: parameters,
|
|
373
|
+
reason: 'Invalid type',
|
|
374
|
+
expected: 'IRParameters object',
|
|
375
|
+
},
|
|
376
|
+
],
|
|
377
|
+
provenance,
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
const params = parameters;
|
|
381
|
+
// Validate individual parameters
|
|
382
|
+
validateTemperature(params.temperature, provenance);
|
|
383
|
+
validateMaxTokens(params.maxTokens, provenance);
|
|
384
|
+
validateTopP(params.topP, provenance);
|
|
385
|
+
// Validate topK
|
|
386
|
+
if (params.topK !== undefined && params.topK !== null) {
|
|
387
|
+
if (typeof params.topK !== 'number' || !Number.isInteger(params.topK) || params.topK < 1) {
|
|
388
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
389
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
390
|
+
message: 'topK must be a positive integer',
|
|
391
|
+
validationDetails: [
|
|
392
|
+
{
|
|
393
|
+
field: 'topK',
|
|
394
|
+
value: params.topK,
|
|
395
|
+
reason: 'Invalid value',
|
|
396
|
+
expected: 'Positive integer',
|
|
397
|
+
},
|
|
398
|
+
],
|
|
399
|
+
provenance,
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
// Validate penalties
|
|
404
|
+
if (params.frequencyPenalty !== undefined && params.frequencyPenalty !== null) {
|
|
405
|
+
if (typeof params.frequencyPenalty !== 'number' ||
|
|
406
|
+
params.frequencyPenalty < -2 ||
|
|
407
|
+
params.frequencyPenalty > 2) {
|
|
408
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
409
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
410
|
+
message: 'frequencyPenalty must be between -2 and 2',
|
|
411
|
+
validationDetails: [
|
|
412
|
+
{
|
|
413
|
+
field: 'frequencyPenalty',
|
|
414
|
+
value: params.frequencyPenalty,
|
|
415
|
+
reason: 'Out of range',
|
|
416
|
+
expected: '-2 <= frequencyPenalty <= 2',
|
|
417
|
+
},
|
|
418
|
+
],
|
|
419
|
+
provenance,
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (params.presencePenalty !== undefined && params.presencePenalty !== null) {
|
|
424
|
+
if (typeof params.presencePenalty !== 'number' ||
|
|
425
|
+
params.presencePenalty < -2 ||
|
|
426
|
+
params.presencePenalty > 2) {
|
|
427
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
428
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_PARAMETERS,
|
|
429
|
+
message: 'presencePenalty must be between -2 and 2',
|
|
430
|
+
validationDetails: [
|
|
431
|
+
{
|
|
432
|
+
field: 'presencePenalty',
|
|
433
|
+
value: params.presencePenalty,
|
|
434
|
+
reason: 'Out of range',
|
|
435
|
+
expected: '-2 <= presencePenalty <= 2',
|
|
436
|
+
},
|
|
437
|
+
],
|
|
438
|
+
provenance,
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
// ============================================================================
|
|
444
|
+
// Request Validation
|
|
445
|
+
// ============================================================================
|
|
446
|
+
/**
|
|
447
|
+
* Validate IR chat request.
|
|
448
|
+
*/
|
|
449
|
+
function validateIRChatRequest(request, provenance) {
|
|
450
|
+
if (!request || typeof request !== 'object') {
|
|
451
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
452
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_REQUEST,
|
|
453
|
+
message: 'Request must be an object',
|
|
454
|
+
validationDetails: [
|
|
455
|
+
{
|
|
456
|
+
field: 'request',
|
|
457
|
+
value: request,
|
|
458
|
+
reason: 'Invalid request type',
|
|
459
|
+
expected: 'IRChatRequest object',
|
|
460
|
+
},
|
|
461
|
+
],
|
|
462
|
+
provenance,
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
const req = request;
|
|
466
|
+
// Validate messages
|
|
467
|
+
if (!req.messages) {
|
|
468
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
469
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_REQUEST,
|
|
470
|
+
message: 'Request missing required field: messages',
|
|
471
|
+
validationDetails: [
|
|
472
|
+
{
|
|
473
|
+
field: 'messages',
|
|
474
|
+
value: undefined,
|
|
475
|
+
reason: 'Messages array is required',
|
|
476
|
+
expected: 'Non-empty array of IRMessage',
|
|
477
|
+
},
|
|
478
|
+
],
|
|
479
|
+
provenance,
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
validateMessages(req.messages, provenance);
|
|
483
|
+
// Validate parameters if present
|
|
484
|
+
if (req.parameters !== undefined) {
|
|
485
|
+
validateParameters(req.parameters, provenance);
|
|
486
|
+
}
|
|
487
|
+
// Validate metadata
|
|
488
|
+
if (!req.metadata) {
|
|
489
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
490
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_REQUEST,
|
|
491
|
+
message: 'Request missing required field: metadata',
|
|
492
|
+
validationDetails: [
|
|
493
|
+
{
|
|
494
|
+
field: 'metadata',
|
|
495
|
+
value: undefined,
|
|
496
|
+
reason: 'Metadata is required',
|
|
497
|
+
expected: 'IRMetadata object',
|
|
498
|
+
},
|
|
499
|
+
],
|
|
500
|
+
provenance,
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
if (!req.metadata.requestId) {
|
|
504
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
505
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_REQUEST,
|
|
506
|
+
message: 'Request metadata missing requestId',
|
|
507
|
+
validationDetails: [
|
|
508
|
+
{
|
|
509
|
+
field: 'metadata.requestId',
|
|
510
|
+
value: undefined,
|
|
511
|
+
reason: 'Request ID is required',
|
|
512
|
+
expected: 'string',
|
|
513
|
+
},
|
|
514
|
+
],
|
|
515
|
+
provenance,
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
if (!req.metadata.timestamp) {
|
|
519
|
+
throw new ai_matey_errors_1.ValidationError({
|
|
520
|
+
code: ai_matey_errors_1.ErrorCode.INVALID_REQUEST,
|
|
521
|
+
message: 'Request metadata missing timestamp',
|
|
522
|
+
validationDetails: [
|
|
523
|
+
{
|
|
524
|
+
field: 'metadata.timestamp',
|
|
525
|
+
value: undefined,
|
|
526
|
+
reason: 'Timestamp is required',
|
|
527
|
+
expected: 'number',
|
|
528
|
+
},
|
|
529
|
+
],
|
|
530
|
+
provenance,
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
|