@rudderjs/ai 1.11.0 → 1.11.1
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/dist/handoff.js +1 -1
- package/dist/handoff.js.map +1 -1
- package/dist/tool.js +2 -2
- package/dist/tool.js.map +1 -1
- package/dist/zod-to-json-schema.d.ts +12 -4
- package/dist/zod-to-json-schema.d.ts.map +1 -1
- package/dist/zod-to-json-schema.js +13 -82
- package/dist/zod-to-json-schema.js.map +1 -1
- package/package.json +9 -8
package/dist/handoff.js
CHANGED
package/dist/handoff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AA2D9E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,0EAA0E,CAAC;CACxF,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,OAAO,CACrB,UAA2C,EAC3C,IAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,YAAY,UAAU,CAAC,IAAI,EAAE,CAAA;IACxD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,uBAAuB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7F,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,oBAAoB,CAAc,CAAA;IAE5E,MAAM,IAAI,GAAgB;QACxB,UAAU,EAAE,UAA0D;QACtE,IAAI;QACJ,WAAW;QACX,WAAW;KACZ,CAAA;IACD,MAAM,UAAU,GAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA;IAE5E,MAAM,IAAI,GAAgB;QACxB,CAAC,cAAc,CAAC,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;QACnB,UAAU;QACV,QAAQ;YACN,OAAO;gBACL,IAAI;gBACJ,WAAW;gBACX,UAAU,EAAE,eAAe,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AA2D9E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,0EAA0E,CAAC;CACxF,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,OAAO,CACrB,UAA2C,EAC3C,IAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,YAAY,UAAU,CAAC,IAAI,EAAE,CAAA;IACxD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,uBAAuB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7F,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,oBAAoB,CAAc,CAAA;IAE5E,MAAM,IAAI,GAAgB;QACxB,UAAU,EAAE,UAA0D;QACtE,IAAI;QACJ,WAAW;QACX,WAAW;KACZ,CAAA;IACD,MAAM,UAAU,GAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA;IAE5E,MAAM,IAAI,GAAgB;QACxB,CAAC,cAAc,CAAC,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;QACnB,UAAU;QACV,QAAQ;YACN,OAAO;gBACL,IAAI;gBACJ,WAAW;gBACX,UAAU,EAAE,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;aAClD,CAAA;QACH,CAAC;KACF,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAiB,EAAE,IAAa;IAC/D,MAAM,IAAI,GAAG,gCAAgC,SAAS,EAAE,CAAA;IACxD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,CAAU;IACtC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,MAAM,GAAI,CAAsC,CAAC,cAAc,CAAC,CAAA;IACtE,OAAO,MAAM,KAAK,IAAI,CAAA;AACxB,CAAC"}
|
package/dist/tool.js
CHANGED
|
@@ -83,7 +83,7 @@ export class ToolBuilder {
|
|
|
83
83
|
const schema = {
|
|
84
84
|
name: this.options.name,
|
|
85
85
|
description: this.options.description,
|
|
86
|
-
parameters: this.options.jsonSchema ?? zodToJsonSchema(this.options.inputSchema),
|
|
86
|
+
parameters: this.options.jsonSchema ?? zodToJsonSchema(this.options.inputSchema, 'input'),
|
|
87
87
|
};
|
|
88
88
|
if (this.options.providerHint)
|
|
89
89
|
schema.providerHint = this.options.providerHint;
|
|
@@ -163,7 +163,7 @@ export function toolToSchema(tool) {
|
|
|
163
163
|
const schema = {
|
|
164
164
|
name: tool.definition.name,
|
|
165
165
|
description: tool.definition.description,
|
|
166
|
-
parameters: tool.definition.jsonSchema ?? zodToJsonSchema(tool.definition.inputSchema),
|
|
166
|
+
parameters: tool.definition.jsonSchema ?? zodToJsonSchema(tool.definition.inputSchema, 'input'),
|
|
167
167
|
};
|
|
168
168
|
// Propagate provider-specific hints so adapters that recognize the
|
|
169
169
|
// `providerHint.type` can substitute their native tool block (see
|
package/dist/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AA4DzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAqB,EACrB,YAAqB;IAErB,MAAM,KAAK,GAA6B,YAAY,KAAK,SAAS;QAChE,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,SAAS,EAAE,YAAY,EAAE;QACnE,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAA;IACvD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,CAAC,GAAG,KAAsD,CAAA;IAChE,OAAO,CAAC,CAAC,UAAU,KAAK,wBAAwB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAChF,CAAC;AA2CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAsB,EACtB,YAAqB,EACrB,YAAqB;IAErB,MAAM,KAAK,GAA0B,YAAY,KAAK,SAAS;QAC7D,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE;QAC5E,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;IAChE,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,CAAC,GAAG,KAA6E,CAAA;IACvF,OAAO,CACL,CAAC,CAAC,UAAU,KAAK,oBAAoB;QACrC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,CAAC,CAAC,QAAQ,KAAK,IAAI;QACnB,OAAO,CAAC,CAAC,YAAY,KAAK,SAAS,CACpC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IAIb,OAAO,CAAwC;IAC/C,UAAU,CAAuB;IAE1C,2EAA2E;IAClE,OAAO,CAAY;IAE5B,YAAY,OAA+C;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,OAA2C,CAAA;IAC/D,CAAC;IAyBD,MAAM,CACJ,OAAyD;QAEzD,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,OAA2C,EAChD,OAA2D,CAC5D,CAAA;IACH,CAAC;IAED,sDAAsD;IACtD,QAAQ;QACN,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
|
+
import { type SchemaIo } from '@rudderjs/json-schema';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Zod → JSON Schema for tool/output definitions.
|
|
5
|
+
*
|
|
6
|
+
* Delegates to the framework's shared, validator-agnostic converter
|
|
7
|
+
* (`@rudderjs/json-schema`), which dispatches on the Standard Schema vendor tag
|
|
8
|
+
* and uses Zod 4's native `z.toJSONSchema` — the same converter `@rudderjs/openapi`
|
|
9
|
+
* uses. Falls back to an open object schema when the converter can't represent
|
|
10
|
+
* the schema, so tool/output definitions always have *some* parameter shape.
|
|
11
|
+
*
|
|
12
|
+
* `io` selects the request (`'input'` — tool parameters) vs response
|
|
13
|
+
* (`'output'` — structured output) projection; defaults to `'output'`.
|
|
6
14
|
*/
|
|
7
|
-
export declare function zodToJsonSchema(schema: z.ZodType): Record<string, unknown>;
|
|
15
|
+
export declare function zodToJsonSchema(schema: z.ZodType, io?: SchemaIo): Record<string, unknown>;
|
|
8
16
|
//# sourceMappingURL=zod-to-json-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-to-json-schema.d.ts","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"zod-to-json-schema.d.ts","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,GAAE,QAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnG"}
|
|
@@ -1,86 +1,17 @@
|
|
|
1
|
+
import { convertSchema } from '@rudderjs/json-schema';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Zod → JSON Schema for tool/output definitions.
|
|
4
|
+
*
|
|
5
|
+
* Delegates to the framework's shared, validator-agnostic converter
|
|
6
|
+
* (`@rudderjs/json-schema`), which dispatches on the Standard Schema vendor tag
|
|
7
|
+
* and uses Zod 4's native `z.toJSONSchema` — the same converter `@rudderjs/openapi`
|
|
8
|
+
* uses. Falls back to an open object schema when the converter can't represent
|
|
9
|
+
* the schema, so tool/output definitions always have *some* parameter shape.
|
|
10
|
+
*
|
|
11
|
+
* `io` selects the request (`'input'` — tool parameters) vs response
|
|
12
|
+
* (`'output'` — structured output) projection; defaults to `'output'`.
|
|
5
13
|
*/
|
|
6
|
-
export function zodToJsonSchema(schema) {
|
|
7
|
-
return
|
|
8
|
-
}
|
|
9
|
-
function getType(def) {
|
|
10
|
-
// Zod v3 uses typeName (e.g. 'ZodString'), Zod v4 uses type (e.g. 'string')
|
|
11
|
-
return def.typeName ?? def.type ?? '';
|
|
12
|
-
}
|
|
13
|
-
function zodTypeToJson(schema) {
|
|
14
|
-
const def = schema._def;
|
|
15
|
-
const t = getType(def);
|
|
16
|
-
const desc = def.description;
|
|
17
|
-
// Object
|
|
18
|
-
if (t === 'ZodObject' || t === 'object') {
|
|
19
|
-
const shape = schema.shape ?? def.shape;
|
|
20
|
-
const properties = {};
|
|
21
|
-
const required = [];
|
|
22
|
-
for (const [key, value] of Object.entries(shape)) {
|
|
23
|
-
properties[key] = zodTypeToJson(value);
|
|
24
|
-
if (!isOptional(value))
|
|
25
|
-
required.push(key);
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
type: 'object',
|
|
29
|
-
properties,
|
|
30
|
-
...(required.length > 0 ? { required } : {}),
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
if (t === 'ZodString' || t === 'string')
|
|
34
|
-
return { type: 'string', ...(desc ? { description: desc } : {}) };
|
|
35
|
-
if (t === 'ZodNumber' || t === 'number')
|
|
36
|
-
return { type: 'number', ...(desc ? { description: desc } : {}) };
|
|
37
|
-
if (t === 'ZodBoolean' || t === 'boolean')
|
|
38
|
-
return { type: 'boolean', ...(desc ? { description: desc } : {}) };
|
|
39
|
-
if (t === 'ZodNull' || t === 'null')
|
|
40
|
-
return { type: 'null' };
|
|
41
|
-
// Array — Zod v3: def.type (inner schema), Zod v4: def.element
|
|
42
|
-
if (t === 'ZodArray' || t === 'array') {
|
|
43
|
-
const inner = def.element ?? def.type;
|
|
44
|
-
return { type: 'array', items: zodTypeToJson(inner) };
|
|
45
|
-
}
|
|
46
|
-
// Enum — Zod v3: def.values (string[]), Zod v4: def.entries (Record)
|
|
47
|
-
if (t === 'ZodEnum' || t === 'enum') {
|
|
48
|
-
const values = def.values ?? Object.keys(def.entries ?? {});
|
|
49
|
-
return { type: 'string', enum: values };
|
|
50
|
-
}
|
|
51
|
-
// Optional
|
|
52
|
-
if (t === 'ZodOptional' || t === 'optional') {
|
|
53
|
-
return zodTypeToJson(def.innerType);
|
|
54
|
-
}
|
|
55
|
-
// Nullable
|
|
56
|
-
if (t === 'ZodNullable' || t === 'nullable') {
|
|
57
|
-
const inner = zodTypeToJson(def.innerType);
|
|
58
|
-
return { ...inner, nullable: true };
|
|
59
|
-
}
|
|
60
|
-
// Default
|
|
61
|
-
if (t === 'ZodDefault' || t === 'default') {
|
|
62
|
-
const inner = zodTypeToJson(def.innerType);
|
|
63
|
-
return { ...inner, default: typeof def.defaultValue === 'function' ? def.defaultValue() : def.defaultValue };
|
|
64
|
-
}
|
|
65
|
-
// Literal — Zod v3: def.value, Zod v4: def.values (array)
|
|
66
|
-
if (t === 'ZodLiteral' || t === 'literal') {
|
|
67
|
-
const val = def.value ?? def.values?.[0];
|
|
68
|
-
return { type: typeof val, enum: [val] };
|
|
69
|
-
}
|
|
70
|
-
// Union
|
|
71
|
-
if (t === 'ZodUnion' || t === 'union') {
|
|
72
|
-
const options = def.options ?? def.members ?? [];
|
|
73
|
-
return { oneOf: options.map((o) => zodTypeToJson(o)) };
|
|
74
|
-
}
|
|
75
|
-
// Record
|
|
76
|
-
if (t === 'ZodRecord' || t === 'record') {
|
|
77
|
-
return { type: 'object', additionalProperties: zodTypeToJson(def.valueType) };
|
|
78
|
-
}
|
|
79
|
-
// Fallback
|
|
80
|
-
return { type: 'string' };
|
|
81
|
-
}
|
|
82
|
-
function isOptional(schema) {
|
|
83
|
-
const t = getType(schema._def);
|
|
84
|
-
return t === 'ZodOptional' || t === 'optional' || t === 'ZodDefault' || t === 'default';
|
|
14
|
+
export function zodToJsonSchema(schema, io = 'output') {
|
|
15
|
+
return convertSchema(schema, io) ?? { type: 'object' };
|
|
85
16
|
}
|
|
86
17
|
//# sourceMappingURL=zod-to-json-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAiB,MAAM,uBAAuB,CAAA;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,KAAe,QAAQ;IACxE,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AACxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/ai",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"description": "AI engine — providers, agents, tools, streaming, middleware",
|
|
5
5
|
"rudderjs": {
|
|
6
6
|
"provider": "AiProvider",
|
|
@@ -79,12 +79,13 @@
|
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
81
|
"zod": "^4.0.0",
|
|
82
|
-
"@rudderjs/console": "^1.4.0"
|
|
82
|
+
"@rudderjs/console": "^1.4.0",
|
|
83
|
+
"@rudderjs/json-schema": "^1.1.0"
|
|
83
84
|
},
|
|
84
85
|
"peerDependencies": {
|
|
85
86
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
86
|
-
"@rudderjs/core": "^1.
|
|
87
|
-
"@rudderjs/orm": "^1.
|
|
87
|
+
"@rudderjs/core": "^1.11.0",
|
|
88
|
+
"@rudderjs/orm": "^1.20.0"
|
|
88
89
|
},
|
|
89
90
|
"peerDependenciesMeta": {
|
|
90
91
|
"@rudderjs/core": {
|
|
@@ -99,18 +100,18 @@
|
|
|
99
100
|
},
|
|
100
101
|
"optionalDependencies": {
|
|
101
102
|
"@anthropic-ai/sdk": ">=0.91.1",
|
|
102
|
-
"
|
|
103
|
+
"@aws-sdk/client-bedrock-runtime": ">=3.600.0",
|
|
103
104
|
"@google/genai": ">=1.0.0",
|
|
104
105
|
"cohere-ai": ">=7.0.0",
|
|
105
|
-
"
|
|
106
|
+
"openai": ">=4.70.0"
|
|
106
107
|
},
|
|
107
108
|
"devDependencies": {
|
|
108
109
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
109
110
|
"@types/node": "^20.0.0",
|
|
110
111
|
"typescript": "^5.4.0",
|
|
111
|
-
"@rudderjs/core": "^1.7.0",
|
|
112
112
|
"@rudderjs/console": "^1.4.0",
|
|
113
|
-
"@rudderjs/
|
|
113
|
+
"@rudderjs/core": "^1.11.0",
|
|
114
|
+
"@rudderjs/orm": "^1.20.0"
|
|
114
115
|
},
|
|
115
116
|
"author": "Suleiman Shahbari",
|
|
116
117
|
"scripts": {
|