concevent-ai-agent-sdk 3.0.0 → 3.0.2
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 +5 -5
- 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 +124 -0
- package/dist/core/tool-validation.js.map +1 -0
- package/dist/tools/read.d.ts +2 -2
- package/dist/types/config.d.ts +2 -2
- package/dist/types/config.js +2 -2
- package/package.json +2 -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 |
|
|
@@ -191,7 +191,7 @@ interface RetryConfig {
|
|
|
191
191
|
|
|
192
192
|
```typescript
|
|
193
193
|
interface TimeoutConfig {
|
|
194
|
-
toolExecutionMs?: number; // Default:
|
|
194
|
+
toolExecutionMs?: number; // Default: 60000 (60 seconds) - Per-tool execution timeout
|
|
195
195
|
apiRequestMs?: number; // Default: 120000 (2 minutes) - OpenAI API request timeout
|
|
196
196
|
}
|
|
197
197
|
```
|
|
@@ -1255,7 +1255,7 @@ The SDK provides configurable timeouts to prevent hanging on long-running operat
|
|
|
1255
1255
|
|
|
1256
1256
|
| Setting | Default | Description |
|
|
1257
1257
|
|---------|---------|-------------|
|
|
1258
|
-
| `toolExecutionMs` |
|
|
1258
|
+
| `toolExecutionMs` | 60 seconds | Timeout for each tool execution |
|
|
1259
1259
|
| `apiRequestMs` | 2 minutes | Timeout for OpenAI API requests |
|
|
1260
1260
|
|
|
1261
1261
|
#### Configuration
|
|
@@ -1307,7 +1307,7 @@ Tool timeout errors are returned as part of the tool result, allowing the LLM to
|
|
|
1307
1307
|
|
|
1308
1308
|
```typescript
|
|
1309
1309
|
// The LLM will receive an error like:
|
|
1310
|
-
// "Tool execution timed out after
|
|
1310
|
+
// "Tool execution timed out after 60000ms"
|
|
1311
1311
|
|
|
1312
1312
|
// You can provide a custom error message:
|
|
1313
1313
|
const agent = createAgent({
|
|
@@ -1333,7 +1333,7 @@ await agent.chat("Process this data", {
|
|
|
1333
1333
|
timezone: "UTC",
|
|
1334
1334
|
abortSignal: abortController.signal, // Manual abort at 10s
|
|
1335
1335
|
});
|
|
1336
|
-
// Tool timeout at
|
|
1336
|
+
// Tool timeout at 60s (default) or API timeout at 2min (default)
|
|
1337
1337
|
// Whichever comes first will cancel the operation
|
|
1338
1338
|
```
|
|
1339
1339
|
|
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":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,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,124 @@
|
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
const ajv = new Ajv({ allErrors: true, verbose: true });
|
|
3
|
+
export class ToolArgumentParseError extends Error {
|
|
4
|
+
constructor(toolName, originalError, rawArgs) {
|
|
5
|
+
const preview = rawArgs.length > 100 ? rawArgs.slice(0, 100) + '...' : rawArgs;
|
|
6
|
+
super(`Failed to parse arguments for tool "${toolName}": ${originalError.message}\n` +
|
|
7
|
+
`Raw arguments: ${preview}\n` +
|
|
8
|
+
`Please provide valid JSON arguments.`);
|
|
9
|
+
this.name = 'ToolArgumentParseError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class ToolArgumentValidationError extends Error {
|
|
13
|
+
constructor(toolName, errors) {
|
|
14
|
+
super(`Invalid arguments for tool "${toolName}":\n` +
|
|
15
|
+
errors.map((e) => ` - ${e}`).join('\n') +
|
|
16
|
+
'\n' +
|
|
17
|
+
`Please provide arguments matching the schema.`);
|
|
18
|
+
this.name = 'ToolArgumentValidationError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Gets the value at a JSON pointer path in an object.
|
|
23
|
+
*/
|
|
24
|
+
function getValueAtPath(obj, path) {
|
|
25
|
+
const parts = path.split('/').filter(Boolean);
|
|
26
|
+
let current = obj;
|
|
27
|
+
for (const part of parts) {
|
|
28
|
+
if (current && typeof current === 'object') {
|
|
29
|
+
current = current[part];
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return current;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Formats an ajv error into a human/LLM-readable string with schema details.
|
|
39
|
+
*/
|
|
40
|
+
function formatAjvError(error, data) {
|
|
41
|
+
const path = error.instancePath || '(root)';
|
|
42
|
+
const actual = error.instancePath ? getValueAtPath(data, error.instancePath) : data;
|
|
43
|
+
const actualStr = JSON.stringify(actual);
|
|
44
|
+
switch (error.keyword) {
|
|
45
|
+
case 'type':
|
|
46
|
+
return `${path}: expected ${error.params.type}, got ${typeof actual} (${actualStr})`;
|
|
47
|
+
case 'required':
|
|
48
|
+
return `${path}: missing required property "${error.params.missingProperty}"`;
|
|
49
|
+
case 'enum':
|
|
50
|
+
return `${path}: must be one of [${error.params.allowedValues
|
|
51
|
+
.map((v) => JSON.stringify(v))
|
|
52
|
+
.join(', ')}], got ${actualStr}`;
|
|
53
|
+
case 'minimum':
|
|
54
|
+
return `${path}: must be >= ${error.params.limit}, got ${actualStr}`;
|
|
55
|
+
case 'maximum':
|
|
56
|
+
return `${path}: must be <= ${error.params.limit}, got ${actualStr}`;
|
|
57
|
+
case 'minLength':
|
|
58
|
+
return `${path}: string must have length >= ${error.params.limit}, got length ${actual?.length}`;
|
|
59
|
+
case 'maxLength':
|
|
60
|
+
return `${path}: string must have length <= ${error.params.limit}, got length ${actual?.length}`;
|
|
61
|
+
case 'pattern':
|
|
62
|
+
return `${path}: must match pattern "${error.params.pattern}", got ${actualStr}`;
|
|
63
|
+
case 'format':
|
|
64
|
+
return `${path}: must be a valid ${error.params.format}, got ${actualStr}`;
|
|
65
|
+
case 'const':
|
|
66
|
+
return `${path}: must be exactly ${JSON.stringify(error.params.allowedValue)}, got ${actualStr}`;
|
|
67
|
+
case 'additionalProperties':
|
|
68
|
+
return `${path}: unexpected property "${error.params.additionalProperty}"`;
|
|
69
|
+
// Array validations
|
|
70
|
+
case 'minItems':
|
|
71
|
+
return `${path}: array must have >= ${error.params.limit} items, got ${actual?.length}`;
|
|
72
|
+
case 'maxItems':
|
|
73
|
+
return `${path}: array must have <= ${error.params.limit} items, got ${actual?.length}`;
|
|
74
|
+
case 'uniqueItems':
|
|
75
|
+
return `${path}: array must have unique items, found duplicate at index ${error.params.j}`;
|
|
76
|
+
case 'contains':
|
|
77
|
+
return `${path}: array must contain at least one matching item`;
|
|
78
|
+
// Number validations
|
|
79
|
+
case 'multipleOf':
|
|
80
|
+
return `${path}: must be a multiple of ${error.params.multipleOf}, got ${actualStr}`;
|
|
81
|
+
case 'exclusiveMinimum':
|
|
82
|
+
return `${path}: must be > ${error.params.limit}, got ${actualStr}`;
|
|
83
|
+
case 'exclusiveMaximum':
|
|
84
|
+
return `${path}: must be < ${error.params.limit}, got ${actualStr}`;
|
|
85
|
+
// Object validations
|
|
86
|
+
case 'minProperties':
|
|
87
|
+
return `${path}: object must have >= ${error.params.limit} properties`;
|
|
88
|
+
case 'maxProperties':
|
|
89
|
+
return `${path}: object must have <= ${error.params.limit} properties`;
|
|
90
|
+
case 'propertyNames':
|
|
91
|
+
return `${path}: invalid property name "${error.params.propertyName}"`;
|
|
92
|
+
case 'dependencies':
|
|
93
|
+
case 'dependentRequired':
|
|
94
|
+
return `${path}: property "${error.params.property}" requires "${error.params.missingProperty}" to be present`;
|
|
95
|
+
// Schema composition
|
|
96
|
+
case 'oneOf':
|
|
97
|
+
return `${path}: must match exactly one schema in oneOf, matched ${error.params.passingSchemas?.length ?? 0}`;
|
|
98
|
+
case 'anyOf':
|
|
99
|
+
return `${path}: must match at least one schema in anyOf`;
|
|
100
|
+
case 'not':
|
|
101
|
+
return `${path}: must NOT match the schema`;
|
|
102
|
+
default:
|
|
103
|
+
// Fallback for any keyword we haven't explicitly handled
|
|
104
|
+
return `${path}: ${error.message}${actualStr !== undefined ? ` (got ${actualStr})` : ''}`;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Validates tool arguments against a JSON Schema.
|
|
109
|
+
* Throws ToolArgumentValidationError if validation fails.
|
|
110
|
+
*
|
|
111
|
+
* @param args - The arguments to validate
|
|
112
|
+
* @param schema - The JSON Schema to validate against
|
|
113
|
+
* @param toolName - The name of the tool (for error messages)
|
|
114
|
+
*/
|
|
115
|
+
export function validateToolArguments(args, schema, toolName) {
|
|
116
|
+
const validate = ajv.compile(schema);
|
|
117
|
+
if (!validate(args)) {
|
|
118
|
+
const errors = validate.errors?.map((e) => formatAjvError(e, args)) || [
|
|
119
|
+
'Unknown validation error',
|
|
120
|
+
];
|
|
121
|
+
throw new ToolArgumentValidationError(toolName, errors);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=tool-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-validation.js","sourceRoot":"","sources":["../../src/core/tool-validation.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAExD,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,QAAgB,EAAE,aAAoB,EAAE,OAAe;QACjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,KAAK,CACH,uCAAuC,QAAQ,MAAM,aAAa,CAAC,OAAO,IAAI;YAC5E,kBAAkB,OAAO,IAAI;YAC7B,sCAAsC,CACzC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,QAAgB,EAAE,MAAgB;QAC5C,KAAK,CACH,+BAA+B,QAAQ,MAAM;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,IAAI;YACJ,+CAA+C,CAClD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAY,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAkB,EAAE,IAAa;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,QAAQ,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEzC,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,cAAc,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,OAAO,MAAM,KAAK,SAAS,GAAG,CAAC;QAEvF,KAAK,UAAU;YACb,OAAO,GAAG,IAAI,gCAAgC,KAAK,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC;QAEhF,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,qBAAsB,KAAK,CAAC,MAAM,CAAC,aAA2B;iBACzE,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACtC,IAAI,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC;QAErC,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,gBAAgB,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC;QAEvE,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,gBAAgB,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC;QAEvE,KAAK,WAAW;YACd,OAAO,GAAG,IAAI,gCACZ,KAAK,CAAC,MAAM,CAAC,KACf,gBAAiB,MAAiB,EAAE,MAAM,EAAE,CAAC;QAE/C,KAAK,WAAW;YACd,OAAO,GAAG,IAAI,gCACZ,KAAK,CAAC,MAAM,CAAC,KACf,gBAAiB,MAAiB,EAAE,MAAM,EAAE,CAAC;QAE/C,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,yBAAyB,KAAK,CAAC,MAAM,CAAC,OAAO,UAAU,SAAS,EAAE,CAAC;QAEnF,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,qBAAqB,KAAK,CAAC,MAAM,CAAC,MAAM,SAAS,SAAS,EAAE,CAAC;QAE7E,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAC/C,KAAK,CAAC,MAAM,CAAC,YAAY,CAC1B,SAAS,SAAS,EAAE,CAAC;QAExB,KAAK,sBAAsB;YACzB,OAAO,GAAG,IAAI,0BAA0B,KAAK,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC;QAE7E,oBAAoB;QACpB,KAAK,UAAU;YACb,OAAO,GAAG,IAAI,wBAAwB,KAAK,CAAC,MAAM,CAAC,KAAK,eACrD,MAAoB,EAAE,MACzB,EAAE,CAAC;QAEL,KAAK,UAAU;YACb,OAAO,GAAG,IAAI,wBAAwB,KAAK,CAAC,MAAM,CAAC,KAAK,eACrD,MAAoB,EAAE,MACzB,EAAE,CAAC;QAEL,KAAK,aAAa;YAChB,OAAO,GAAG,IAAI,4DAA4D,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAE7F,KAAK,UAAU;YACb,OAAO,GAAG,IAAI,iDAAiD,CAAC;QAElE,qBAAqB;QACrB,KAAK,YAAY;YACf,OAAO,GAAG,IAAI,2BAA2B,KAAK,CAAC,MAAM,CAAC,UAAU,SAAS,SAAS,EAAE,CAAC;QAEvF,KAAK,kBAAkB;YACrB,OAAO,GAAG,IAAI,eAAe,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC;QAEtE,KAAK,kBAAkB;YACrB,OAAO,GAAG,IAAI,eAAe,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC;QAEtE,qBAAqB;QACrB,KAAK,eAAe;YAClB,OAAO,GAAG,IAAI,yBAAyB,KAAK,CAAC,MAAM,CAAC,KAAK,aAAa,CAAC;QAEzE,KAAK,eAAe;YAClB,OAAO,GAAG,IAAI,yBAAyB,KAAK,CAAC,MAAM,CAAC,KAAK,aAAa,CAAC;QAEzE,KAAK,eAAe;YAClB,OAAO,GAAG,IAAI,4BAA4B,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC;QAEzE,KAAK,cAAc,CAAC;QACpB,KAAK,mBAAmB;YACtB,OAAO,GAAG,IAAI,eAAe,KAAK,CAAC,MAAM,CAAC,QAAQ,eAAe,KAAK,CAAC,MAAM,CAAC,eAAe,iBAAiB,CAAC;QAEjH,qBAAqB;QACrB,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,qDACZ,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CACzC,EAAE,CAAC;QAEL,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,2CAA2C,CAAC;QAE5D,KAAK,KAAK;YACR,OAAO,GAAG,IAAI,6BAA6B,CAAC;QAE9C;YACE,yDAAyD;YACzD,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA6B,EAC7B,MAAuB,EACvB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;YACrE,0BAA0B;SAC3B,CAAC;QACF,MAAM,IAAI,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
|
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/dist/types/config.d.ts
CHANGED
|
@@ -167,8 +167,8 @@ export interface TimeoutConfig {
|
|
|
167
167
|
*/
|
|
168
168
|
apiRequestMs?: number;
|
|
169
169
|
}
|
|
170
|
-
/** Default timeout for tool execution:
|
|
171
|
-
export declare const DEFAULT_TOOL_EXECUTION_TIMEOUT_MS =
|
|
170
|
+
/** Default timeout for tool execution: 60 seconds */
|
|
171
|
+
export declare const DEFAULT_TOOL_EXECUTION_TIMEOUT_MS = 60000;
|
|
172
172
|
/** Default timeout for API requests: 2 minutes */
|
|
173
173
|
export declare const DEFAULT_API_REQUEST_TIMEOUT_MS = 120000;
|
|
174
174
|
/**
|
package/dist/types/config.js
CHANGED
|
@@ -3,8 +3,8 @@ export const DEFAULT_RETRY_MAX_ATTEMPTS = 3;
|
|
|
3
3
|
export const DEFAULT_RETRY_BASE_DELAY_MS = 1000;
|
|
4
4
|
export const DEFAULT_RETRY_MAX_DELAY_MS = 30000;
|
|
5
5
|
export const DEFAULT_RETRY_BACKOFF_MULTIPLIER = 2;
|
|
6
|
-
/** Default timeout for tool execution:
|
|
7
|
-
export const DEFAULT_TOOL_EXECUTION_TIMEOUT_MS =
|
|
6
|
+
/** Default timeout for tool execution: 60 seconds */
|
|
7
|
+
export const DEFAULT_TOOL_EXECUTION_TIMEOUT_MS = 60_000;
|
|
8
8
|
/** Default timeout for API requests: 2 minutes */
|
|
9
9
|
export const DEFAULT_API_REQUEST_TIMEOUT_MS = 120_000;
|
|
10
10
|
//# sourceMappingURL=config.js.map
|
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.2",
|
|
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,7 @@
|
|
|
39
39
|
"author": "",
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"dependencies": {
|
|
42
|
+
"ajv": "^8.17.1",
|
|
42
43
|
"openai": "^4.77.0",
|
|
43
44
|
"zod": "^3.24.1",
|
|
44
45
|
"zod-to-json-schema": "^3.24.1"
|