concevent-ai-agent-sdk 3.0.1 → 3.0.3
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/README.md +1 -1
- package/dist/core/agent.js +1 -1
- package/dist/core/openrouter-utils.d.ts.map +1 -1
- package/dist/core/openrouter-utils.js +9 -1
- package/dist/core/openrouter-utils.js.map +1 -1
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +3 -0
- package/dist/core/tool-executor.js.map +1 -1
- package/dist/core/tool-validation.d.ts +17 -0
- package/dist/core/tool-validation.d.ts.map +1 -0
- package/dist/core/tool-validation.js +126 -0
- package/dist/core/tool-validation.js.map +1 -0
- package/dist/tools/read.d.ts +2 -2
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -147,7 +147,7 @@ const agent = createAgent(config: AgentConfig): Agent;
|
|
|
147
147
|
| `baseURL` | `string` | ❌ | OpenRouter default | Custom API base URL |
|
|
148
148
|
| `temperature` | `number` | ❌ | `0.1` | Sampling temperature (0-2) |
|
|
149
149
|
| `reasoningEffort` | `'low' \| 'medium' \| 'high'` | ❌ | `'high'` | Reasoning effort level for supported models |
|
|
150
|
-
| `maxIterations` | `number` | ❌ | `
|
|
150
|
+
| `maxIterations` | `number` | ❌ | `50` | Maximum tool execution iterations per chat |
|
|
151
151
|
| `stream` | `boolean` | ❌ | `true` | Enable streaming responses with delta callbacks |
|
|
152
152
|
| `summarization` | `SummarizationConfig` | ❌ | `{ enabled: true }` | Summarization settings |
|
|
153
153
|
| `parallelToolExecution` | `ParallelExecutionConfig` | ❌ | `{ maxConcurrency: 5 }` | Parallel tool execution settings |
|
package/dist/core/agent.js
CHANGED
|
@@ -9,7 +9,7 @@ import { logger } from './logger.js';
|
|
|
9
9
|
import { buildResponseFormat, validateResponse, formatValidationError, hasSchema, } from './response-format.js';
|
|
10
10
|
import { executeWithRetry, resolveRetryConfig } from './retry.js';
|
|
11
11
|
import { MiddlewareExecutor } from './middleware.js';
|
|
12
|
-
const DEFAULT_MAX_ITERATIONS =
|
|
12
|
+
const DEFAULT_MAX_ITERATIONS = 50;
|
|
13
13
|
export function createAgent(config) {
|
|
14
14
|
if (!config.apiKey) {
|
|
15
15
|
throw new AgentError('API_KEY_REQUIRED');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-utils.d.ts","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"openrouter-utils.d.ts","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,CAiFtD;AAED,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,mBAAmB,EAAE,GAClC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAS9C;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,GACjE,KAAK,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC,CAqBD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,GAAG,aAAa,CAerF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAK1D;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAKxD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAK7D;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;CACzC;AAED,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,mBAAmB,CAiCrB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ToolArgumentParseError } from './tool-validation.js';
|
|
1
2
|
export const ENCRYPTED_REASONING_MARKER = '[REASONING_ENCRYPTED]';
|
|
2
3
|
export function convertChatMessagesToOpenAI(messages) {
|
|
3
4
|
const result = [];
|
|
@@ -97,10 +98,17 @@ export function convertFunctionDeclarationsToTools(declarations) {
|
|
|
97
98
|
export function convertOpenAIToolCallsToFunctionCalls(toolCalls) {
|
|
98
99
|
return toolCalls.map((call) => {
|
|
99
100
|
if (call.type === 'function') {
|
|
101
|
+
let args;
|
|
102
|
+
try {
|
|
103
|
+
args = JSON.parse(call.function.arguments);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
throw new ToolArgumentParseError(call.function.name, error, call.function.arguments);
|
|
107
|
+
}
|
|
100
108
|
return {
|
|
101
109
|
id: call.id,
|
|
102
110
|
name: call.function.name,
|
|
103
|
-
args
|
|
111
|
+
args,
|
|
104
112
|
};
|
|
105
113
|
}
|
|
106
114
|
throw new Error(`Unsupported tool call type: ${call.type}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-utils.js","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openrouter-utils.js","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAI1D,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,QAAQ,EAAE,MAAM;aAChB,SAAS,EAAE,MAAM;gBADjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;CAKpC;AAuHD,qBAAa,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,OAAO,CAAC,OAAO,CAA2C;gBAE9C,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE;IAOhD,mBAAmB;IAInB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK/B,eAAe,CACnB,IAAI,EAAE,QAAQ,GAAG,gBAAgB,EACjC,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,EACzC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IA+C9B;;OAEG;YACW,gBAAgB;IA2DxB,gBAAgB,CACpB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,EACzC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EAC3C,cAAc,GAAE,MAAU,EAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,EACpD,OAAO,CAAC,EAAE,WAAW,EAAE,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiF9B,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,kBAAkB,GACzB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;CAqBzC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { logger } from './logger.js';
|
|
2
|
+
import { validateToolArguments } from './tool-validation.js';
|
|
2
3
|
/**
|
|
3
4
|
* Error thrown when a tool execution times out.
|
|
4
5
|
*/
|
|
@@ -139,6 +140,8 @@ export class ToolExecutor {
|
|
|
139
140
|
};
|
|
140
141
|
}
|
|
141
142
|
try {
|
|
143
|
+
// Validate arguments against schema before execution
|
|
144
|
+
validateToolArguments(call.args, tool.declaration.parametersJsonSchema, call.name);
|
|
142
145
|
const executionPromise = tool.executor(call.args, context);
|
|
143
146
|
// Wrap with timeout if specified
|
|
144
147
|
const result = timeoutMs && timeoutMs > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JsonSchema7Type } from 'zod-to-json-schema';
|
|
2
|
+
export declare class ToolArgumentParseError extends Error {
|
|
3
|
+
constructor(toolName: string, originalError: Error, rawArgs: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class ToolArgumentValidationError extends Error {
|
|
6
|
+
constructor(toolName: string, errors: string[]);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validates tool arguments against a JSON Schema.
|
|
10
|
+
* Throws ToolArgumentValidationError if validation fails.
|
|
11
|
+
*
|
|
12
|
+
* @param args - The arguments to validate
|
|
13
|
+
* @param schema - The JSON Schema to validate against
|
|
14
|
+
* @param toolName - The name of the tool (for error messages)
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateToolArguments(args: Record<string, unknown>, schema: JsonSchema7Type, toolName: string): void;
|
|
17
|
+
//# sourceMappingURL=tool-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-validation.d.ts","sourceRoot":"","sources":["../../src/core/tool-validation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;CASpE;AAED,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAS/C;AA+HD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,MAAM,GACf,IAAI,CAQN"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
import addFormats from 'ajv-formats';
|
|
3
|
+
const ajv = new Ajv({ allErrors: true, verbose: true });
|
|
4
|
+
addFormats(ajv);
|
|
5
|
+
export class ToolArgumentParseError extends Error {
|
|
6
|
+
constructor(toolName, originalError, rawArgs) {
|
|
7
|
+
const preview = rawArgs.length > 100 ? rawArgs.slice(0, 100) + '...' : rawArgs;
|
|
8
|
+
super(`Failed to parse arguments for tool "${toolName}": ${originalError.message}\n` +
|
|
9
|
+
`Raw arguments: ${preview}\n` +
|
|
10
|
+
`Please provide valid JSON arguments.`);
|
|
11
|
+
this.name = 'ToolArgumentParseError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class ToolArgumentValidationError extends Error {
|
|
15
|
+
constructor(toolName, errors) {
|
|
16
|
+
super(`Invalid arguments for tool "${toolName}":\n` +
|
|
17
|
+
errors.map((e) => ` - ${e}`).join('\n') +
|
|
18
|
+
'\n' +
|
|
19
|
+
`Please provide arguments matching the schema.`);
|
|
20
|
+
this.name = 'ToolArgumentValidationError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Gets the value at a JSON pointer path in an object.
|
|
25
|
+
*/
|
|
26
|
+
function getValueAtPath(obj, path) {
|
|
27
|
+
const parts = path.split('/').filter(Boolean);
|
|
28
|
+
let current = obj;
|
|
29
|
+
for (const part of parts) {
|
|
30
|
+
if (current && typeof current === 'object') {
|
|
31
|
+
current = current[part];
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return current;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Formats an ajv error into a human/LLM-readable string with schema details.
|
|
41
|
+
*/
|
|
42
|
+
function formatAjvError(error, data) {
|
|
43
|
+
const path = error.instancePath || '(root)';
|
|
44
|
+
const actual = error.instancePath ? getValueAtPath(data, error.instancePath) : data;
|
|
45
|
+
const actualStr = JSON.stringify(actual);
|
|
46
|
+
switch (error.keyword) {
|
|
47
|
+
case 'type':
|
|
48
|
+
return `${path}: expected ${error.params.type}, got ${typeof actual} (${actualStr})`;
|
|
49
|
+
case 'required':
|
|
50
|
+
return `${path}: missing required property "${error.params.missingProperty}"`;
|
|
51
|
+
case 'enum':
|
|
52
|
+
return `${path}: must be one of [${error.params.allowedValues
|
|
53
|
+
.map((v) => JSON.stringify(v))
|
|
54
|
+
.join(', ')}], got ${actualStr}`;
|
|
55
|
+
case 'minimum':
|
|
56
|
+
return `${path}: must be >= ${error.params.limit}, got ${actualStr}`;
|
|
57
|
+
case 'maximum':
|
|
58
|
+
return `${path}: must be <= ${error.params.limit}, got ${actualStr}`;
|
|
59
|
+
case 'minLength':
|
|
60
|
+
return `${path}: string must have length >= ${error.params.limit}, got length ${actual?.length}`;
|
|
61
|
+
case 'maxLength':
|
|
62
|
+
return `${path}: string must have length <= ${error.params.limit}, got length ${actual?.length}`;
|
|
63
|
+
case 'pattern':
|
|
64
|
+
return `${path}: must match pattern "${error.params.pattern}", got ${actualStr}`;
|
|
65
|
+
case 'format':
|
|
66
|
+
return `${path}: must be a valid ${error.params.format}, got ${actualStr}`;
|
|
67
|
+
case 'const':
|
|
68
|
+
return `${path}: must be exactly ${JSON.stringify(error.params.allowedValue)}, got ${actualStr}`;
|
|
69
|
+
case 'additionalProperties':
|
|
70
|
+
return `${path}: unexpected property "${error.params.additionalProperty}"`;
|
|
71
|
+
// Array validations
|
|
72
|
+
case 'minItems':
|
|
73
|
+
return `${path}: array must have >= ${error.params.limit} items, got ${actual?.length}`;
|
|
74
|
+
case 'maxItems':
|
|
75
|
+
return `${path}: array must have <= ${error.params.limit} items, got ${actual?.length}`;
|
|
76
|
+
case 'uniqueItems':
|
|
77
|
+
return `${path}: array must have unique items, found duplicate at index ${error.params.j}`;
|
|
78
|
+
case 'contains':
|
|
79
|
+
return `${path}: array must contain at least one matching item`;
|
|
80
|
+
// Number validations
|
|
81
|
+
case 'multipleOf':
|
|
82
|
+
return `${path}: must be a multiple of ${error.params.multipleOf}, got ${actualStr}`;
|
|
83
|
+
case 'exclusiveMinimum':
|
|
84
|
+
return `${path}: must be > ${error.params.limit}, got ${actualStr}`;
|
|
85
|
+
case 'exclusiveMaximum':
|
|
86
|
+
return `${path}: must be < ${error.params.limit}, got ${actualStr}`;
|
|
87
|
+
// Object validations
|
|
88
|
+
case 'minProperties':
|
|
89
|
+
return `${path}: object must have >= ${error.params.limit} properties`;
|
|
90
|
+
case 'maxProperties':
|
|
91
|
+
return `${path}: object must have <= ${error.params.limit} properties`;
|
|
92
|
+
case 'propertyNames':
|
|
93
|
+
return `${path}: invalid property name "${error.params.propertyName}"`;
|
|
94
|
+
case 'dependencies':
|
|
95
|
+
case 'dependentRequired':
|
|
96
|
+
return `${path}: property "${error.params.property}" requires "${error.params.missingProperty}" to be present`;
|
|
97
|
+
// Schema composition
|
|
98
|
+
case 'oneOf':
|
|
99
|
+
return `${path}: must match exactly one schema in oneOf, matched ${error.params.passingSchemas?.length ?? 0}`;
|
|
100
|
+
case 'anyOf':
|
|
101
|
+
return `${path}: must match at least one schema in anyOf`;
|
|
102
|
+
case 'not':
|
|
103
|
+
return `${path}: must NOT match the schema`;
|
|
104
|
+
default:
|
|
105
|
+
// Fallback for any keyword we haven't explicitly handled
|
|
106
|
+
return `${path}: ${error.message}${actualStr !== undefined ? ` (got ${actualStr})` : ''}`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Validates tool arguments against a JSON Schema.
|
|
111
|
+
* Throws ToolArgumentValidationError if validation fails.
|
|
112
|
+
*
|
|
113
|
+
* @param args - The arguments to validate
|
|
114
|
+
* @param schema - The JSON Schema to validate against
|
|
115
|
+
* @param toolName - The name of the tool (for error messages)
|
|
116
|
+
*/
|
|
117
|
+
export function validateToolArguments(args, schema, toolName) {
|
|
118
|
+
const validate = ajv.compile(schema);
|
|
119
|
+
if (!validate(args)) {
|
|
120
|
+
const errors = validate.errors?.map((e) => formatAjvError(e, args)) || [
|
|
121
|
+
'Unknown validation error',
|
|
122
|
+
];
|
|
123
|
+
throw new ToolArgumentValidationError(toolName, errors);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=tool-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-validation.js","sourceRoot":"","sources":["../../src/core/tool-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/read.d.ts
CHANGED
|
@@ -10,12 +10,12 @@ export declare const readSchema: z.ZodObject<{
|
|
|
10
10
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
|
12
12
|
file_path: string;
|
|
13
|
-
offset?: number | undefined;
|
|
14
13
|
limit?: number | undefined;
|
|
14
|
+
offset?: number | undefined;
|
|
15
15
|
}, {
|
|
16
16
|
file_path: string;
|
|
17
|
-
offset?: number | undefined;
|
|
18
17
|
limit?: number | undefined;
|
|
18
|
+
offset?: number | undefined;
|
|
19
19
|
}>;
|
|
20
20
|
export type ReadParams = z.infer<typeof readSchema>;
|
|
21
21
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "concevent-ai-agent-sdk",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "Framework-agnostic AI Agent SDK with tool calling, conversation management, and automatic summarization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -39,6 +39,8 @@
|
|
|
39
39
|
"author": "",
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"dependencies": {
|
|
42
|
+
"ajv": "^8.17.1",
|
|
43
|
+
"ajv-formats": "^3.0.1",
|
|
42
44
|
"openai": "^4.77.0",
|
|
43
45
|
"zod": "^3.24.1",
|
|
44
46
|
"zod-to-json-schema": "^3.24.1"
|