@openai/agents-core 0.1.11 → 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/dist/agent.d.ts +8 -5
- package/dist/agent.js +4 -3
- package/dist/agent.js.map +1 -1
- package/dist/agent.mjs +4 -3
- package/dist/agent.mjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/items.d.ts +424 -80
- package/dist/metadata.js +2 -2
- package/dist/metadata.js.map +1 -1
- package/dist/metadata.mjs +2 -2
- package/dist/metadata.mjs.map +1 -1
- package/dist/runImplementation.js +346 -0
- package/dist/runImplementation.js.map +1 -1
- package/dist/runImplementation.mjs +346 -0
- package/dist/runImplementation.mjs.map +1 -1
- package/dist/runState.d.ts +2416 -225
- package/dist/shims/shims-browser.d.ts +1 -1
- package/dist/shims/shims-workerd.d.ts +1 -1
- package/dist/tool.d.ts +5 -5
- package/dist/tool.js.map +1 -1
- package/dist/tool.mjs.map +1 -1
- package/dist/types/helpers.d.ts +3 -3
- package/dist/types/protocol.d.ts +1249 -205
- package/dist/types/protocol.js +101 -19
- package/dist/types/protocol.js.map +1 -1
- package/dist/types/protocol.mjs +100 -18
- package/dist/types/protocol.mjs.map +1 -1
- package/dist/utils/base64.d.ts +4 -0
- package/dist/utils/base64.js +43 -0
- package/dist/utils/base64.js.map +1 -0
- package/dist/utils/base64.mjs +40 -0
- package/dist/utils/base64.mjs.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +1 -0
- package/dist/utils/index.mjs.map +1 -1
- package/dist/utils/smartString.js +56 -3
- package/dist/utils/smartString.js.map +1 -1
- package/dist/utils/smartString.mjs +56 -3
- package/dist/utils/smartString.mjs.map +1 -1
- package/dist/utils/tools.js +24 -6
- package/dist/utils/tools.js.map +1 -1
- package/dist/utils/tools.mjs +24 -6
- package/dist/utils/tools.mjs.map +1 -1
- package/dist/utils/typeGuards.d.ts +2 -2
- package/dist/utils/typeGuards.js +7 -7
- package/dist/utils/typeGuards.js.map +1 -1
- package/dist/utils/typeGuards.mjs +7 -7
- package/dist/utils/typeGuards.mjs.map +1 -1
- package/dist/utils/zodCompat.d.ts +13 -0
- package/dist/utils/zodCompat.js +29 -0
- package/dist/utils/zodCompat.js.map +1 -0
- package/dist/utils/zodCompat.mjs +24 -0
- package/dist/utils/zodCompat.mjs.map +1 -0
- package/dist/utils/zodJsonSchemaCompat.d.ts +29 -0
- package/dist/utils/zodJsonSchemaCompat.js +282 -0
- package/dist/utils/zodJsonSchemaCompat.js.map +1 -0
- package/dist/utils/zodJsonSchemaCompat.mjs +278 -0
- package/dist/utils/zodJsonSchemaCompat.mjs.map +1 -0
- package/package.json +3 -3
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toSmartString = toSmartString;
|
|
4
|
+
const BYTE_PREVIEW_LIMIT = 20;
|
|
4
5
|
function toSmartString(value) {
|
|
5
6
|
if (value === null || value === undefined) {
|
|
6
7
|
return String(value);
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
+
if (isArrayBufferLike(value)) {
|
|
10
|
+
return formatByteArray(new Uint8Array(value));
|
|
11
|
+
}
|
|
12
|
+
if (isArrayBufferView(value)) {
|
|
13
|
+
const view = value;
|
|
14
|
+
return formatByteArray(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === 'string') {
|
|
9
17
|
return value;
|
|
10
18
|
}
|
|
11
|
-
|
|
19
|
+
if (typeof value === 'object') {
|
|
12
20
|
try {
|
|
13
|
-
return JSON.stringify(value);
|
|
21
|
+
return JSON.stringify(value, smartStringReplacer);
|
|
14
22
|
}
|
|
15
23
|
catch (_e) {
|
|
16
24
|
return '[object with circular references]';
|
|
@@ -18,4 +26,49 @@ function toSmartString(value) {
|
|
|
18
26
|
}
|
|
19
27
|
return String(value);
|
|
20
28
|
}
|
|
29
|
+
function isArrayBufferLike(value) {
|
|
30
|
+
if (value instanceof ArrayBuffer) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
const sharedArrayBufferCtor = globalThis.SharedArrayBuffer;
|
|
34
|
+
return Boolean(sharedArrayBufferCtor && value instanceof sharedArrayBufferCtor);
|
|
35
|
+
}
|
|
36
|
+
function isArrayBufferView(value) {
|
|
37
|
+
return typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(value);
|
|
38
|
+
}
|
|
39
|
+
function isSerializedBufferSnapshot(value) {
|
|
40
|
+
return (typeof value === 'object' &&
|
|
41
|
+
value !== null &&
|
|
42
|
+
value.type === 'Buffer' &&
|
|
43
|
+
Array.isArray(value.data));
|
|
44
|
+
}
|
|
45
|
+
function formatByteArray(bytes) {
|
|
46
|
+
if (bytes.length === 0) {
|
|
47
|
+
return '[byte array (0 bytes)]';
|
|
48
|
+
}
|
|
49
|
+
const previewLength = Math.min(bytes.length, BYTE_PREVIEW_LIMIT);
|
|
50
|
+
const previewParts = [];
|
|
51
|
+
for (let i = 0; i < previewLength; i++) {
|
|
52
|
+
previewParts.push(formatByte(bytes[i]));
|
|
53
|
+
}
|
|
54
|
+
const ellipsis = bytes.length > BYTE_PREVIEW_LIMIT ? ' …' : '';
|
|
55
|
+
const preview = previewParts.join(' ');
|
|
56
|
+
return `[byte array ${preview}${ellipsis} (${bytes.length} bytes)]`;
|
|
57
|
+
}
|
|
58
|
+
function formatByte(byte) {
|
|
59
|
+
return `0x${byte.toString(16).padStart(2, '0')}`;
|
|
60
|
+
}
|
|
61
|
+
function smartStringReplacer(_key, nestedValue) {
|
|
62
|
+
if (isArrayBufferLike(nestedValue)) {
|
|
63
|
+
return formatByteArray(new Uint8Array(nestedValue));
|
|
64
|
+
}
|
|
65
|
+
if (isArrayBufferView(nestedValue)) {
|
|
66
|
+
const view = nestedValue;
|
|
67
|
+
return formatByteArray(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
|
|
68
|
+
}
|
|
69
|
+
if (isSerializedBufferSnapshot(nestedValue)) {
|
|
70
|
+
return formatByteArray(Uint8Array.from(nestedValue.data));
|
|
71
|
+
}
|
|
72
|
+
return nestedValue;
|
|
73
|
+
}
|
|
21
74
|
//# sourceMappingURL=smartString.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartString.js","sourceRoot":"","sources":["../../src/utils/smartString.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"smartString.js","sourceRoot":"","sources":["../../src/utils/smartString.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
const BYTE_PREVIEW_LIMIT = 20;
|
|
1
2
|
export function toSmartString(value) {
|
|
2
3
|
if (value === null || value === undefined) {
|
|
3
4
|
return String(value);
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
+
if (isArrayBufferLike(value)) {
|
|
7
|
+
return formatByteArray(new Uint8Array(value));
|
|
8
|
+
}
|
|
9
|
+
if (isArrayBufferView(value)) {
|
|
10
|
+
const view = value;
|
|
11
|
+
return formatByteArray(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
|
|
12
|
+
}
|
|
13
|
+
if (typeof value === 'string') {
|
|
6
14
|
return value;
|
|
7
15
|
}
|
|
8
|
-
|
|
16
|
+
if (typeof value === 'object') {
|
|
9
17
|
try {
|
|
10
|
-
return JSON.stringify(value);
|
|
18
|
+
return JSON.stringify(value, smartStringReplacer);
|
|
11
19
|
}
|
|
12
20
|
catch (_e) {
|
|
13
21
|
return '[object with circular references]';
|
|
@@ -15,4 +23,49 @@ export function toSmartString(value) {
|
|
|
15
23
|
}
|
|
16
24
|
return String(value);
|
|
17
25
|
}
|
|
26
|
+
function isArrayBufferLike(value) {
|
|
27
|
+
if (value instanceof ArrayBuffer) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
const sharedArrayBufferCtor = globalThis.SharedArrayBuffer;
|
|
31
|
+
return Boolean(sharedArrayBufferCtor && value instanceof sharedArrayBufferCtor);
|
|
32
|
+
}
|
|
33
|
+
function isArrayBufferView(value) {
|
|
34
|
+
return typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(value);
|
|
35
|
+
}
|
|
36
|
+
function isSerializedBufferSnapshot(value) {
|
|
37
|
+
return (typeof value === 'object' &&
|
|
38
|
+
value !== null &&
|
|
39
|
+
value.type === 'Buffer' &&
|
|
40
|
+
Array.isArray(value.data));
|
|
41
|
+
}
|
|
42
|
+
function formatByteArray(bytes) {
|
|
43
|
+
if (bytes.length === 0) {
|
|
44
|
+
return '[byte array (0 bytes)]';
|
|
45
|
+
}
|
|
46
|
+
const previewLength = Math.min(bytes.length, BYTE_PREVIEW_LIMIT);
|
|
47
|
+
const previewParts = [];
|
|
48
|
+
for (let i = 0; i < previewLength; i++) {
|
|
49
|
+
previewParts.push(formatByte(bytes[i]));
|
|
50
|
+
}
|
|
51
|
+
const ellipsis = bytes.length > BYTE_PREVIEW_LIMIT ? ' …' : '';
|
|
52
|
+
const preview = previewParts.join(' ');
|
|
53
|
+
return `[byte array ${preview}${ellipsis} (${bytes.length} bytes)]`;
|
|
54
|
+
}
|
|
55
|
+
function formatByte(byte) {
|
|
56
|
+
return `0x${byte.toString(16).padStart(2, '0')}`;
|
|
57
|
+
}
|
|
58
|
+
function smartStringReplacer(_key, nestedValue) {
|
|
59
|
+
if (isArrayBufferLike(nestedValue)) {
|
|
60
|
+
return formatByteArray(new Uint8Array(nestedValue));
|
|
61
|
+
}
|
|
62
|
+
if (isArrayBufferView(nestedValue)) {
|
|
63
|
+
const view = nestedValue;
|
|
64
|
+
return formatByteArray(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
|
|
65
|
+
}
|
|
66
|
+
if (isSerializedBufferSnapshot(nestedValue)) {
|
|
67
|
+
return formatByteArray(Uint8Array.from(nestedValue.data));
|
|
68
|
+
}
|
|
69
|
+
return nestedValue;
|
|
70
|
+
}
|
|
18
71
|
//# sourceMappingURL=smartString.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartString.mjs","sourceRoot":"","sources":["../../src/utils/smartString.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"smartString.mjs","sourceRoot":"","sources":["../../src/utils/smartString.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tools.js
CHANGED
|
@@ -6,6 +6,14 @@ exports.convertAgentOutputTypeToSerializable = convertAgentOutputTypeToSerializa
|
|
|
6
6
|
const zod_1 = require("openai/helpers/zod");
|
|
7
7
|
const errors_1 = require("../errors.js");
|
|
8
8
|
const typeGuards_1 = require("./typeGuards.js");
|
|
9
|
+
const zodJsonSchemaCompat_1 = require("./zodJsonSchemaCompat.js");
|
|
10
|
+
const zodCompat_1 = require("./zodCompat.js");
|
|
11
|
+
// openai/helpers/zod cannot emit strict schemas for every Zod runtime
|
|
12
|
+
// (notably Zod v4), so we delegate to a small local converter living in
|
|
13
|
+
// zodJsonSchemaCompat.ts whenever its output is missing the required JSON Schema bits.
|
|
14
|
+
function buildJsonSchemaFromZod(inputType) {
|
|
15
|
+
return (0, zodJsonSchemaCompat_1.zodJsonSchemaCompat)(inputType);
|
|
16
|
+
}
|
|
9
17
|
/**
|
|
10
18
|
* Convert a string to a function tool name by replacing spaces with underscores and
|
|
11
19
|
* non-alphanumeric characters with underscores.
|
|
@@ -36,14 +44,24 @@ function getSchemaAndParserFromInputType(inputType, name) {
|
|
|
36
44
|
if ((0, typeGuards_1.isZodObject)(inputType)) {
|
|
37
45
|
const formattedFunction = (0, zod_1.zodResponsesFunction)({
|
|
38
46
|
name,
|
|
39
|
-
parameters: inputType,
|
|
47
|
+
parameters: (0, zodCompat_1.asZodType)(inputType),
|
|
40
48
|
function: () => { }, // empty function here to satisfy the OpenAI helper
|
|
41
49
|
description: '',
|
|
42
50
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
if ((0, zodJsonSchemaCompat_1.hasJsonSchemaObjectShape)(formattedFunction.parameters)) {
|
|
52
|
+
return {
|
|
53
|
+
schema: formattedFunction.parameters,
|
|
54
|
+
parser: formattedFunction.$parseRaw,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const fallbackSchema = buildJsonSchemaFromZod(inputType);
|
|
58
|
+
if (fallbackSchema) {
|
|
59
|
+
return {
|
|
60
|
+
schema: fallbackSchema,
|
|
61
|
+
parser: (rawInput) => inputType.parse(JSON.parse(rawInput)),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
throw new errors_1.UserError('Unable to convert the provided Zod schema to JSON Schema. Ensure that the `zod` package is available at runtime or provide a JSON schema object instead.');
|
|
47
65
|
}
|
|
48
66
|
else if (typeof inputType === 'object' && inputType !== null) {
|
|
49
67
|
return {
|
|
@@ -61,7 +79,7 @@ function convertAgentOutputTypeToSerializable(outputType) {
|
|
|
61
79
|
return 'text';
|
|
62
80
|
}
|
|
63
81
|
if ((0, typeGuards_1.isZodObject)(outputType)) {
|
|
64
|
-
const output = (0, zod_1.zodTextFormat)(outputType, 'output');
|
|
82
|
+
const output = (0, zod_1.zodTextFormat)((0, zodCompat_1.asZodType)(outputType), 'output');
|
|
65
83
|
return {
|
|
66
84
|
type: output.type,
|
|
67
85
|
name: output.name,
|
package/dist/utils/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/utils/tools.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/utils/tools.ts"],"names":[],"mappings":";;AAgCA,gDAaC;AAUD,0EA2CC;AAKD,oFAkBC;AAzHD,4CAAyE;AACzE,yCAAsC;AAGtC,gDAA2C;AAE3C,kEAG+B;AAE/B,8CAAwC;AAMxC,sEAAsE;AACtE,wEAAwE;AACxE,uFAAuF;AACvF,SAAS,sBAAsB,CAC7B,SAAwB;IAExB,OAAO,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,kCAAkC;IAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhC,uDAAuD;IACvD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAE1C,+BAA+B;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAwB,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,+BAA+B,CAC7C,SAAY,EACZ,IAAY;IAKZ,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpD,IAAI,IAAA,wBAAW,EAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,iBAAiB,GAAG,IAAA,0BAAoB,EAAC;YAC7C,IAAI;YACJ,UAAU,EAAE,IAAA,qBAAS,EAAC,SAAS,CAAC;YAChC,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,mDAAmD;YACvE,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,IAAI,IAAA,8CAAwB,EAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO;gBACL,MAAM,EAAE,iBAAiB,CAAC,UAAmC;gBAC7D,MAAM,EAAE,iBAAiB,CAAC,SAAS;aACpC,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACpE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,kBAAS,CACjB,0JAA0J,CAC3J,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM;SACP,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,kBAAS,CAAC,sDAAsD,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAgB,oCAAoC,CAClD,UAA2B;IAE3B,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAA,wBAAW,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,mBAAa,EAAC,IAAA,qBAAS,EAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;YAC9B,MAAM,EAAE,MAAM,CAAC,MAA+B;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/utils/tools.mjs
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { zodResponsesFunction, zodTextFormat } from 'openai/helpers/zod';
|
|
2
2
|
import { UserError } from "../errors.mjs";
|
|
3
3
|
import { isZodObject } from "./typeGuards.mjs";
|
|
4
|
+
import { zodJsonSchemaCompat, hasJsonSchemaObjectShape, } from "./zodJsonSchemaCompat.mjs";
|
|
5
|
+
import { asZodType } from "./zodCompat.mjs";
|
|
6
|
+
// openai/helpers/zod cannot emit strict schemas for every Zod runtime
|
|
7
|
+
// (notably Zod v4), so we delegate to a small local converter living in
|
|
8
|
+
// zodJsonSchemaCompat.ts whenever its output is missing the required JSON Schema bits.
|
|
9
|
+
function buildJsonSchemaFromZod(inputType) {
|
|
10
|
+
return zodJsonSchemaCompat(inputType);
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* Convert a string to a function tool name by replacing spaces with underscores and
|
|
6
14
|
* non-alphanumeric characters with underscores.
|
|
@@ -31,14 +39,24 @@ export function getSchemaAndParserFromInputType(inputType, name) {
|
|
|
31
39
|
if (isZodObject(inputType)) {
|
|
32
40
|
const formattedFunction = zodResponsesFunction({
|
|
33
41
|
name,
|
|
34
|
-
parameters: inputType,
|
|
42
|
+
parameters: asZodType(inputType),
|
|
35
43
|
function: () => { }, // empty function here to satisfy the OpenAI helper
|
|
36
44
|
description: '',
|
|
37
45
|
});
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
if (hasJsonSchemaObjectShape(formattedFunction.parameters)) {
|
|
47
|
+
return {
|
|
48
|
+
schema: formattedFunction.parameters,
|
|
49
|
+
parser: formattedFunction.$parseRaw,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const fallbackSchema = buildJsonSchemaFromZod(inputType);
|
|
53
|
+
if (fallbackSchema) {
|
|
54
|
+
return {
|
|
55
|
+
schema: fallbackSchema,
|
|
56
|
+
parser: (rawInput) => inputType.parse(JSON.parse(rawInput)),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
throw new UserError('Unable to convert the provided Zod schema to JSON Schema. Ensure that the `zod` package is available at runtime or provide a JSON schema object instead.');
|
|
42
60
|
}
|
|
43
61
|
else if (typeof inputType === 'object' && inputType !== null) {
|
|
44
62
|
return {
|
|
@@ -56,7 +74,7 @@ export function convertAgentOutputTypeToSerializable(outputType) {
|
|
|
56
74
|
return 'text';
|
|
57
75
|
}
|
|
58
76
|
if (isZodObject(outputType)) {
|
|
59
|
-
const output = zodTextFormat(outputType, 'output');
|
|
77
|
+
const output = zodTextFormat(asZodType(outputType), 'output');
|
|
60
78
|
return {
|
|
61
79
|
type: output.type,
|
|
62
80
|
name: output.name,
|
package/dist/utils/tools.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.mjs","sourceRoot":"","sources":["../../src/utils/tools.ts"],"names":[],"mappings":"OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB;OACjE,EAAE,SAAS,EAAE;OAGb,EAAE,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"tools.mjs","sourceRoot":"","sources":["../../src/utils/tools.ts"],"names":[],"mappings":"OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB;OACjE,EAAE,SAAS,EAAE;OAGb,EAAE,WAAW,EAAE;OAEf,EACL,mBAAmB,EACnB,wBAAwB,GACzB;OAEM,EAAE,SAAS,EAAE;AAMpB,sEAAsE;AACtE,wEAAwE;AACxE,uFAAuF;AACvF,SAAS,sBAAsB,CAC7B,SAAwB;IAExB,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,kCAAkC;IAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhC,uDAAuD;IACvD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAE1C,+BAA+B;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAwB,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,SAAY,EACZ,IAAY;IAKZ,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;YAC7C,IAAI;YACJ,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC;YAChC,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,mDAAmD;YACvE,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,IAAI,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO;gBACL,MAAM,EAAE,iBAAiB,CAAC,UAAmC;gBAC7D,MAAM,EAAE,iBAAiB,CAAC,SAAS;aACpC,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACpE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,SAAS,CACjB,0JAA0J,CAC3J,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM;SACP,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAA2B;IAE3B,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;YAC9B,MAAM,EAAE,MAAM,CAAC,MAA+B;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ZodObjectLike } from './zodCompat';
|
|
2
2
|
/**
|
|
3
3
|
* Verifies that an input is a ZodObject without needing to have Zod at runtime since it's an
|
|
4
4
|
* optional dependency.
|
|
5
5
|
* @param input
|
|
6
6
|
* @returns
|
|
7
7
|
*/
|
|
8
|
-
export declare function isZodObject(input: unknown): input is
|
|
8
|
+
export declare function isZodObject(input: unknown): input is ZodObjectLike;
|
|
9
9
|
/**
|
|
10
10
|
* Verifies that an input is an object with an `input` property.
|
|
11
11
|
* @param input
|
package/dist/utils/typeGuards.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isZodObject = isZodObject;
|
|
4
4
|
exports.isAgentToolInput = isAgentToolInput;
|
|
5
|
+
const zodCompat_1 = require("./zodCompat.js");
|
|
5
6
|
/**
|
|
6
7
|
* Verifies that an input is a ZodObject without needing to have Zod at runtime since it's an
|
|
7
8
|
* optional dependency.
|
|
@@ -9,13 +10,12 @@ exports.isAgentToolInput = isAgentToolInput;
|
|
|
9
10
|
* @returns
|
|
10
11
|
*/
|
|
11
12
|
function isZodObject(input) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
input._def.typeName === 'ZodObject');
|
|
13
|
+
const definition = (0, zodCompat_1.readZodDefinition)(input);
|
|
14
|
+
if (!definition) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const type = (0, zodCompat_1.readZodType)(input);
|
|
18
|
+
return type === 'object';
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Verifies that an input is an object with an `input` property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/utils/typeGuards.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/utils/typeGuards.ts"],"names":[],"mappings":";;AASA,kCAQC;AAOD,4CASC;AAhCD,8CAA6D;AAE7D;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,MAAM,UAAU,GAAG,IAAA,6BAAiB,EAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,uBAAW,EAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,KAAK,QAAQ,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAG7C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAQ,KAAa,CAAC,KAAK,KAAK,QAAQ,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readZodDefinition, readZodType } from "./zodCompat.mjs";
|
|
1
2
|
/**
|
|
2
3
|
* Verifies that an input is a ZodObject without needing to have Zod at runtime since it's an
|
|
3
4
|
* optional dependency.
|
|
@@ -5,13 +6,12 @@
|
|
|
5
6
|
* @returns
|
|
6
7
|
*/
|
|
7
8
|
export function isZodObject(input) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
input._def.typeName === 'ZodObject');
|
|
9
|
+
const definition = readZodDefinition(input);
|
|
10
|
+
if (!definition) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const type = readZodType(input);
|
|
14
|
+
return type === 'object';
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Verifies that an input is an object with an `input` property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeGuards.mjs","sourceRoot":"","sources":["../../src/utils/typeGuards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typeGuards.mjs","sourceRoot":"","sources":["../../src/utils/typeGuards.ts"],"names":[],"mappings":"OACO,EAAE,iBAAiB,EAAE,WAAW,EAAE;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,KAAK,QAAQ,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAG7C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAQ,KAAa,CAAC,KAAK,KAAK,QAAQ,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ZodObject as ZodObjectV3, ZodTypeAny } from 'zod';
|
|
2
|
+
import type { ZodObject as ZodObjectV4, ZodType as ZodTypeV4 } from 'zod/v4';
|
|
3
|
+
type ZodDefinition = Record<string, unknown> | undefined;
|
|
4
|
+
type ZodTypeV4Any = ZodTypeV4<any, any, any>;
|
|
5
|
+
export type ZodTypeLike = ZodTypeAny | ZodTypeV4Any;
|
|
6
|
+
export type ZodObjectLike = ZodObjectV3<any, any, any, any, any> | ZodObjectV4<any, any>;
|
|
7
|
+
export declare function asZodType(schema: ZodTypeLike): ZodTypeAny;
|
|
8
|
+
export declare function readZodDefinition(input: unknown): ZodDefinition;
|
|
9
|
+
export declare function readZodType(input: unknown): string | undefined;
|
|
10
|
+
export type ZodInfer<T extends ZodTypeLike> = T extends {
|
|
11
|
+
_output: infer Output;
|
|
12
|
+
} ? Output : never;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.asZodType = asZodType;
|
|
4
|
+
exports.readZodDefinition = readZodDefinition;
|
|
5
|
+
exports.readZodType = readZodType;
|
|
6
|
+
function asZodType(schema) {
|
|
7
|
+
return schema;
|
|
8
|
+
}
|
|
9
|
+
function readZodDefinition(input) {
|
|
10
|
+
if (typeof input !== 'object' || input === null) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const candidate = input;
|
|
14
|
+
return candidate._zod?.def || candidate._def || candidate.def;
|
|
15
|
+
}
|
|
16
|
+
function readZodType(input) {
|
|
17
|
+
const def = readZodDefinition(input);
|
|
18
|
+
if (!def) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const rawType = (typeof def.typeName === 'string' && def.typeName) ||
|
|
22
|
+
(typeof def.type === 'string' && def.type);
|
|
23
|
+
if (typeof rawType !== 'string') {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const lower = rawType.toLowerCase();
|
|
27
|
+
return lower.startsWith('zod') ? lower.slice(3) : lower;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=zodCompat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodCompat.js","sourceRoot":"","sources":["../../src/utils/zodCompat.ts"],"names":[],"mappings":";;AAkBA,8BAEC;AAED,8CAOC;AAED,kCAgBC;AA7BD,SAAgB,SAAS,CAAC,MAAmB;IAC3C,OAAO,MAA+B,CAAC;AACzC,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,KAAgB,CAAC;IACnC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GACX,CAAC,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;QAClD,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function asZodType(schema) {
|
|
2
|
+
return schema;
|
|
3
|
+
}
|
|
4
|
+
export function readZodDefinition(input) {
|
|
5
|
+
if (typeof input !== 'object' || input === null) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const candidate = input;
|
|
9
|
+
return candidate._zod?.def || candidate._def || candidate.def;
|
|
10
|
+
}
|
|
11
|
+
export function readZodType(input) {
|
|
12
|
+
const def = readZodDefinition(input);
|
|
13
|
+
if (!def) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const rawType = (typeof def.typeName === 'string' && def.typeName) ||
|
|
17
|
+
(typeof def.type === 'string' && def.type);
|
|
18
|
+
if (typeof rawType !== 'string') {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const lower = rawType.toLowerCase();
|
|
22
|
+
return lower.startsWith('zod') ? lower.slice(3) : lower;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=zodCompat.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodCompat.mjs","sourceRoot":"","sources":["../../src/utils/zodCompat.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,OAAO,MAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,KAAgB,CAAC;IACnC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GACX,CAAC,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;QAClD,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { JsonObjectSchema, JsonSchemaDefinitionEntry } from '../types';
|
|
2
|
+
import type { ZodObjectLike } from './zodCompat';
|
|
3
|
+
/**
|
|
4
|
+
* The JSON-schema helpers in openai/helpers/zod only emit complete schemas for
|
|
5
|
+
* a subset of Zod constructs. In particular, Zod v4 (and several decorators in v3)
|
|
6
|
+
* omit `type`, `properties`, or `required` metadata, which breaks tool execution
|
|
7
|
+
* when a user relies on automatic schema extraction.
|
|
8
|
+
*
|
|
9
|
+
* This module provides a minimal, type-directed fallback converter that inspects
|
|
10
|
+
* Zod internals and synthesises the missing JSON Schema bits on demand. The
|
|
11
|
+
* converter only covers the constructs we actively depend on (objects, optionals,
|
|
12
|
+
* unions, tuples, records, sets, etc.); anything more exotic simply returns
|
|
13
|
+
* `undefined`, signalling to the caller that it should surface a user error.
|
|
14
|
+
*
|
|
15
|
+
* The implementation is intentionally explicit: helper functions isolate each
|
|
16
|
+
* Zod shape, making the behaviour both testable and easier to trim back if the
|
|
17
|
+
* upstream helper gains first-class support. See zodJsonSchemaCompat.test.ts for
|
|
18
|
+
* the regression cases we guarantee.
|
|
19
|
+
*/
|
|
20
|
+
type LooseJsonObjectSchema = {
|
|
21
|
+
type: 'object';
|
|
22
|
+
properties: Record<string, JsonSchemaDefinitionEntry>;
|
|
23
|
+
required?: string[];
|
|
24
|
+
additionalProperties?: boolean;
|
|
25
|
+
$schema?: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function hasJsonSchemaObjectShape(value: unknown): value is LooseJsonObjectSchema;
|
|
28
|
+
export declare function zodJsonSchemaCompat(input: ZodObjectLike): JsonObjectSchema<any> | undefined;
|
|
29
|
+
export {};
|