@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 CHANGED
@@ -54,7 +54,7 @@ export function handoff(AgentClass, opts) {
54
54
  return {
55
55
  name,
56
56
  description,
57
- parameters: zodToJsonSchema(inputSchema),
57
+ parameters: zodToJsonSchema(inputSchema, 'input'),
58
58
  };
59
59
  },
60
60
  };
@@ -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;aACzC,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"}
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":"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"}
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,EAAE,OAAO,CAAC;SAC1F,CAAA;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;QAC9E,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAiB;IAGnB,UAAU,CAAuB;IACjC,OAAO,CAAyC;IAChD,aAAa,CAA8D;IAEpF,YACE,UAAiC,EACjC,OAAgD,EAChD,aAA6D;QAE7D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,aAAa;YAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACvD,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CACT,EAAiD;QAEjD,OAAO,IAAI,iBAAiB,CAAkB,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAClF,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAG5B,OAA+C;IAC/C,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,OAA8B;IAE9B,OAAO,IAAI,WAAW,CAAC,OAAsD,CAAC,CAAA;AAChF,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAAC,IAA2C;IACtE,MAAM,MAAM,GAAyB;QACnC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;QAC1B,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;QACxC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC;KAChG,CAAA;IACD,mEAAmE;IACnE,kEAAkE;IAClE,yEAAyE;IACzE,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY;QAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAA;IACpF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,8 +1,16 @@
1
1
  import type { z } from 'zod';
2
+ import { type SchemaIo } from '@rudderjs/json-schema';
2
3
  /**
3
- * Lightweight Zod → JSON Schema converter.
4
- * Handles the common types used in tool definitions.
5
- * Supports both Zod v3 (typeName) and Zod v4 (_def.type).
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;AAE5B;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
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
- * Lightweight Zod → JSON Schema converter.
3
- * Handles the common types used in tool definitions.
4
- * Supports both Zod v3 (typeName) and Zod v4 (_def.type).
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 zodTypeToJson(schema);
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":"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"}
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.0",
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.7.0",
87
- "@rudderjs/orm": "^1.14.0"
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
- "openai": ">=4.70.0",
103
+ "@aws-sdk/client-bedrock-runtime": ">=3.600.0",
103
104
  "@google/genai": ">=1.0.0",
104
105
  "cohere-ai": ">=7.0.0",
105
- "@aws-sdk/client-bedrock-runtime": ">=3.600.0"
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/orm": "^1.14.0"
113
+ "@rudderjs/core": "^1.11.0",
114
+ "@rudderjs/orm": "^1.20.0"
114
115
  },
115
116
  "author": "Suleiman Shahbari",
116
117
  "scripts": {