@typia/vercel 12.1.0-dev.20260325 → 13.0.0-dev.20260425
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/LICENSE +21 -21
- package/README.md +111 -111
- package/lib/_virtual/VercelParameterConverter.mjs +4 -0
- package/lib/_virtual/VercelParameterConverter.mjs.map +1 -0
- package/lib/_virtual/VercelToolsRegistrar.mjs +4 -0
- package/lib/_virtual/VercelToolsRegistrar.mjs.map +1 -0
- package/lib/_virtual/_commonjsHelpers.mjs +6 -0
- package/lib/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/lib/_virtual/index.mjs +4 -0
- package/lib/_virtual/index.mjs.map +1 -0
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +5 -125
- package/lib/index.mjs.map +1 -1
- package/lib/index2.mjs +142 -0
- package/lib/index2.mjs.map +1 -0
- package/lib/internal/VercelParameterConverter.js.map +1 -1
- package/lib/internal/VercelParameterConverter.mjs +5 -6
- package/lib/internal/VercelParameterConverter.mjs.map +1 -1
- package/lib/internal/VercelParameterConverter2.mjs +21 -0
- package/lib/internal/VercelParameterConverter2.mjs.map +1 -0
- package/lib/internal/VercelToolsRegistrar.js.map +1 -1
- package/lib/internal/VercelToolsRegistrar.mjs +5 -123
- package/lib/internal/VercelToolsRegistrar.mjs.map +1 -1
- package/lib/internal/VercelToolsRegistrar2.mjs +151 -0
- package/lib/internal/VercelToolsRegistrar2.mjs.map +1 -0
- package/package.json +8 -9
- package/src/index.ts +155 -155
- package/src/internal/VercelParameterConverter.ts +8 -8
- package/src/internal/VercelToolsRegistrar.ts +166 -166
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VercelParameterConverter2.mjs","sources":["VercelParameterConverter.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VercelParameterConverter = void 0;\nconst ai_1 = require(\"ai\");\nvar VercelParameterConverter;\n(function (VercelParameterConverter) {\n VercelParameterConverter.convert = (parameters) => (0, ai_1.jsonSchema)(parameters);\n})(VercelParameterConverter || (exports.VercelParameterConverter = VercelParameterConverter = {}));\n//# sourceMappingURL=VercelParameterConverter.js.map"],"names":["VercelParameterConverter_1","VercelParameterConverter"],"mappings":";;;;;;;;AACA,CAAA,MAAM,CAAC,cAAc,CAACA,wBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,wBAAA,CAAA,wBAAgC,GAAG,MAAM;CACzC,MAAM,IAAI,GAAG,UAAa;AAC1B,CAAA,IAAIC,0BAAwB;CAC5B,CAAC,UAAU,wBAAwB,EAAE;AACrC,KAAI,wBAAwB,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;CACvF,CAAC,EAAEA,0BAAwB,KAAKD,wBAAA,CAAA,wBAAgC,GAAGC,0BAAwB,GAAG,EAAE,CAAC,CAAC;AAClG;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VercelToolsRegistrar.js","sourceRoot":"","sources":["../../src/internal/VercelToolsRegistrar.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,wCAAgD;AAChD,2BAAgC;AAEhC,yEAAsE;AAEtE,IAAiB,oBAAoB,CAqJpC;AArJD,WAAiB,oBAAoB;IACnC;;;;;OAKG;IACU,4BAAO,GAAG,CAAC,KAGvB,EAAwB,EAAE;;QACzB,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"VercelToolsRegistrar.js","sourceRoot":"","sources":["../../src/internal/VercelToolsRegistrar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,126 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { VercelParameterConverter } from './VercelParameterConverter.mjs';
|
|
1
|
+
import { getDefaultExportFromCjs } from '../_virtual/_commonjsHelpers.mjs';
|
|
2
|
+
import { __require as requireVercelToolsRegistrar } from './VercelToolsRegistrar2.mjs';
|
|
4
3
|
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Convert typia controllers to Vercel AI SDK tools.
|
|
9
|
-
*
|
|
10
|
-
* @param props Conversion properties
|
|
11
|
-
* @returns Record of Vercel AI SDK Tools
|
|
12
|
-
*/
|
|
13
|
-
VercelToolsRegistrar.convert = (props) => {
|
|
14
|
-
const prefix = props.prefix ?? false;
|
|
15
|
-
const tools = {};
|
|
16
|
-
// check duplicate tool names
|
|
17
|
-
if (prefix === false && props.controllers.length >= 2) {
|
|
18
|
-
const names = new Map();
|
|
19
|
-
const duplicates = [];
|
|
20
|
-
for (const controller of props.controllers) {
|
|
21
|
-
for (const func of controller.application.functions) {
|
|
22
|
-
const existing = names.get(func.name);
|
|
23
|
-
if (existing !== undefined)
|
|
24
|
-
duplicates.push(`"${func.name}" in "${controller.name}" (conflicts with "${existing}")`);
|
|
25
|
-
else
|
|
26
|
-
names.set(func.name, controller.name);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
if (duplicates.length > 0)
|
|
30
|
-
throw new Error(`Duplicate tool names found:\n - ${duplicates.join("\n - ")}`);
|
|
31
|
-
}
|
|
32
|
-
// convert controllers to tools
|
|
33
|
-
for (const controller of props.controllers) {
|
|
34
|
-
if (controller.protocol === "class") {
|
|
35
|
-
registerClassController({ tools, controller, prefix });
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
registerHttpController({ tools, controller, prefix });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return tools;
|
|
42
|
-
};
|
|
43
|
-
const registerClassController = (props) => {
|
|
44
|
-
const { tools, controller, prefix } = props;
|
|
45
|
-
const execute = controller.execute;
|
|
46
|
-
for (const func of controller.application.functions) {
|
|
47
|
-
const toolName = prefix
|
|
48
|
-
? `${controller.name}_${func.name}`
|
|
49
|
-
: func.name;
|
|
50
|
-
const method = execute[func.name];
|
|
51
|
-
if (typeof method !== "function") {
|
|
52
|
-
throw new Error(`Method "${func.name}" not found on controller "${controller.name}"`);
|
|
53
|
-
}
|
|
54
|
-
tools[toolName] = createTool({
|
|
55
|
-
name: toolName,
|
|
56
|
-
func,
|
|
57
|
-
execute: async (args) => method.call(execute, args),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
const registerHttpController = (props) => {
|
|
62
|
-
const { tools, controller, prefix } = props;
|
|
63
|
-
const application = controller.application;
|
|
64
|
-
const connection = controller.connection;
|
|
65
|
-
for (const func of application.functions) {
|
|
66
|
-
const toolName = prefix
|
|
67
|
-
? `${controller.name}_${func.name}`
|
|
68
|
-
: func.name;
|
|
69
|
-
tools[toolName] = createTool({
|
|
70
|
-
name: toolName,
|
|
71
|
-
func,
|
|
72
|
-
execute: async (args) => {
|
|
73
|
-
if (controller.execute !== undefined) {
|
|
74
|
-
const response = await controller.execute({
|
|
75
|
-
connection,
|
|
76
|
-
application,
|
|
77
|
-
function: func,
|
|
78
|
-
arguments: args,
|
|
79
|
-
});
|
|
80
|
-
return response.body;
|
|
81
|
-
}
|
|
82
|
-
return HttpLlm.execute({
|
|
83
|
-
application,
|
|
84
|
-
function: func,
|
|
85
|
-
connection,
|
|
86
|
-
input: args,
|
|
87
|
-
});
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
const createTool = (props) => {
|
|
93
|
-
const { name, func, execute } = props;
|
|
94
|
-
return tool({
|
|
95
|
-
description: func.description ?? "",
|
|
96
|
-
inputSchema: VercelParameterConverter.convert(func.parameters),
|
|
97
|
-
execute: async (args) => {
|
|
98
|
-
const coerced = LlmJson.coerce(args, func.parameters);
|
|
99
|
-
const validation = func.validate(coerced);
|
|
100
|
-
if (!validation.success)
|
|
101
|
-
return {
|
|
102
|
-
success: false,
|
|
103
|
-
error: `Type errors in "${name}" arguments:\n\n` +
|
|
104
|
-
`\`\`\`json\n${LlmJson.stringify(validation)}\n\`\`\``,
|
|
105
|
-
};
|
|
106
|
-
try {
|
|
107
|
-
const result = await execute(validation.data);
|
|
108
|
-
return result === undefined
|
|
109
|
-
? { success: true }
|
|
110
|
-
: { success: true, data: result };
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
return {
|
|
114
|
-
success: false,
|
|
115
|
-
error: error instanceof Error
|
|
116
|
-
? `${error.name}: ${error.message}`
|
|
117
|
-
: String(error),
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
})(VercelToolsRegistrar || (VercelToolsRegistrar = {}));
|
|
4
|
+
var VercelToolsRegistrarExports = requireVercelToolsRegistrar();
|
|
5
|
+
var VercelToolsRegistrar = /*@__PURE__*/getDefaultExportFromCjs(VercelToolsRegistrarExports);
|
|
124
6
|
|
|
125
|
-
export { VercelToolsRegistrar };
|
|
7
|
+
export { VercelToolsRegistrar as default };
|
|
126
8
|
//# sourceMappingURL=VercelToolsRegistrar.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VercelToolsRegistrar.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"VercelToolsRegistrar.mjs","sources":["VercelToolsRegistrar.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireVercelToolsRegistrar } from \"/home/samchon/github/samchon/typia@next/packages/vercel/lib/internal/VercelToolsRegistrar.js\";\nvar VercelToolsRegistrarExports = requireVercelToolsRegistrar();\nexport { VercelToolsRegistrarExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(VercelToolsRegistrarExports);"],"names":[],"mappings":";;;AAEA,IAAI,2BAA2B,GAAG,2BAA2B,EAAE;AAE/D,2BAAe,aAAa,uBAAuB,CAAC,2BAA2B,CAAC;;;;"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { __exports as VercelToolsRegistrar } from '../_virtual/VercelToolsRegistrar.mjs';
|
|
2
|
+
import require$$0$1 from '@typia/utils';
|
|
3
|
+
import require$$0 from 'ai';
|
|
4
|
+
import { __require as requireVercelParameterConverter } from './VercelParameterConverter2.mjs';
|
|
5
|
+
|
|
6
|
+
var hasRequiredVercelToolsRegistrar;
|
|
7
|
+
|
|
8
|
+
function requireVercelToolsRegistrar () {
|
|
9
|
+
if (hasRequiredVercelToolsRegistrar) return VercelToolsRegistrar;
|
|
10
|
+
hasRequiredVercelToolsRegistrar = 1;
|
|
11
|
+
var __awaiter = (VercelToolsRegistrar && VercelToolsRegistrar.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(VercelToolsRegistrar, "__esModule", { value: true });
|
|
21
|
+
VercelToolsRegistrar.VercelToolsRegistrar = void 0;
|
|
22
|
+
const utils_1 = require$$0$1;
|
|
23
|
+
const ai_1 = require$$0;
|
|
24
|
+
const VercelParameterConverter_1 = requireVercelParameterConverter();
|
|
25
|
+
var VercelToolsRegistrar$1;
|
|
26
|
+
(function (VercelToolsRegistrar) {
|
|
27
|
+
/**
|
|
28
|
+
* Convert typia controllers to Vercel AI SDK tools.
|
|
29
|
+
*
|
|
30
|
+
* @param props Conversion properties
|
|
31
|
+
* @returns Record of Vercel AI SDK Tools
|
|
32
|
+
*/
|
|
33
|
+
VercelToolsRegistrar.convert = (props) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const prefix = (_a = props.prefix) !== null && _a !== void 0 ? _a : false;
|
|
36
|
+
const tools = {};
|
|
37
|
+
// check duplicate tool names
|
|
38
|
+
if (prefix === false && props.controllers.length >= 2) {
|
|
39
|
+
const names = new Map();
|
|
40
|
+
const duplicates = [];
|
|
41
|
+
for (const controller of props.controllers) {
|
|
42
|
+
for (const func of controller.application.functions) {
|
|
43
|
+
const existing = names.get(func.name);
|
|
44
|
+
if (existing !== undefined)
|
|
45
|
+
duplicates.push(`"${func.name}" in "${controller.name}" (conflicts with "${existing}")`);
|
|
46
|
+
else
|
|
47
|
+
names.set(func.name, controller.name);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (duplicates.length > 0)
|
|
51
|
+
throw new Error(`Duplicate tool names found:\n - ${duplicates.join("\n - ")}`);
|
|
52
|
+
}
|
|
53
|
+
// convert controllers to tools
|
|
54
|
+
for (const controller of props.controllers) {
|
|
55
|
+
if (controller.protocol === "class") {
|
|
56
|
+
registerClassController({ tools, controller, prefix });
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
registerHttpController({ tools, controller, prefix });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return tools;
|
|
63
|
+
};
|
|
64
|
+
const registerClassController = (props) => {
|
|
65
|
+
const { tools, controller, prefix } = props;
|
|
66
|
+
const execute = controller.execute;
|
|
67
|
+
for (const func of controller.application.functions) {
|
|
68
|
+
const toolName = prefix
|
|
69
|
+
? `${controller.name}_${func.name}`
|
|
70
|
+
: func.name;
|
|
71
|
+
const method = execute[func.name];
|
|
72
|
+
if (typeof method !== "function") {
|
|
73
|
+
throw new Error(`Method "${func.name}" not found on controller "${controller.name}"`);
|
|
74
|
+
}
|
|
75
|
+
tools[toolName] = createTool({
|
|
76
|
+
name: toolName,
|
|
77
|
+
func,
|
|
78
|
+
execute: (args) => __awaiter(this, void 0, void 0, function* () { return method.call(execute, args); }),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const registerHttpController = (props) => {
|
|
83
|
+
const { tools, controller, prefix } = props;
|
|
84
|
+
const application = controller.application;
|
|
85
|
+
const connection = controller.connection;
|
|
86
|
+
for (const func of application.functions) {
|
|
87
|
+
const toolName = prefix
|
|
88
|
+
? `${controller.name}_${func.name}`
|
|
89
|
+
: func.name;
|
|
90
|
+
tools[toolName] = createTool({
|
|
91
|
+
name: toolName,
|
|
92
|
+
func,
|
|
93
|
+
execute: (args) => __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
if (controller.execute !== undefined) {
|
|
95
|
+
const response = yield controller.execute({
|
|
96
|
+
connection,
|
|
97
|
+
application,
|
|
98
|
+
function: func,
|
|
99
|
+
arguments: args,
|
|
100
|
+
});
|
|
101
|
+
return response.body;
|
|
102
|
+
}
|
|
103
|
+
return utils_1.HttpLlm.execute({
|
|
104
|
+
application,
|
|
105
|
+
function: func,
|
|
106
|
+
connection,
|
|
107
|
+
input: args,
|
|
108
|
+
});
|
|
109
|
+
}),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const createTool = (props) => {
|
|
114
|
+
var _a;
|
|
115
|
+
const { name, func, execute } = props;
|
|
116
|
+
return (0, ai_1.tool)({
|
|
117
|
+
description: (_a = func.description) !== null && _a !== void 0 ? _a : "",
|
|
118
|
+
inputSchema: VercelParameterConverter_1.VercelParameterConverter.convert(func.parameters),
|
|
119
|
+
execute: (args) => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const coerced = utils_1.LlmJson.coerce(args, func.parameters);
|
|
121
|
+
const validation = func.validate(coerced);
|
|
122
|
+
if (!validation.success)
|
|
123
|
+
return {
|
|
124
|
+
success: false,
|
|
125
|
+
error: `Type errors in "${name}" arguments:\n\n` +
|
|
126
|
+
`\`\`\`json\n${utils_1.LlmJson.stringify(validation)}\n\`\`\``,
|
|
127
|
+
};
|
|
128
|
+
try {
|
|
129
|
+
const result = yield execute(validation.data);
|
|
130
|
+
return result === undefined
|
|
131
|
+
? { success: true }
|
|
132
|
+
: { success: true, data: result };
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
return {
|
|
136
|
+
success: false,
|
|
137
|
+
error: error instanceof Error
|
|
138
|
+
? `${error.name}: ${error.message}`
|
|
139
|
+
: String(error),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}),
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
})(VercelToolsRegistrar$1 || (VercelToolsRegistrar.VercelToolsRegistrar = VercelToolsRegistrar$1 = {}));
|
|
146
|
+
|
|
147
|
+
return VercelToolsRegistrar;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export { requireVercelToolsRegistrar as __require };
|
|
151
|
+
//# sourceMappingURL=VercelToolsRegistrar2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VercelToolsRegistrar2.mjs","sources":["VercelToolsRegistrar.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VercelToolsRegistrar = void 0;\nconst utils_1 = require(\"@typia/utils\");\nconst ai_1 = require(\"ai\");\nconst VercelParameterConverter_1 = require(\"./VercelParameterConverter\");\nvar VercelToolsRegistrar;\n(function (VercelToolsRegistrar) {\n /**\n * Convert typia controllers to Vercel AI SDK tools.\n *\n * @param props Conversion properties\n * @returns Record of Vercel AI SDK Tools\n */\n VercelToolsRegistrar.convert = (props) => {\n var _a;\n const prefix = (_a = props.prefix) !== null && _a !== void 0 ? _a : false;\n const tools = {};\n // check duplicate tool names\n if (prefix === false && props.controllers.length >= 2) {\n const names = new Map();\n const duplicates = [];\n for (const controller of props.controllers) {\n for (const func of controller.application.functions) {\n const existing = names.get(func.name);\n if (existing !== undefined)\n duplicates.push(`\"${func.name}\" in \"${controller.name}\" (conflicts with \"${existing}\")`);\n else\n names.set(func.name, controller.name);\n }\n }\n if (duplicates.length > 0)\n throw new Error(`Duplicate tool names found:\\n - ${duplicates.join(\"\\n - \")}`);\n }\n // convert controllers to tools\n for (const controller of props.controllers) {\n if (controller.protocol === \"class\") {\n registerClassController({ tools, controller, prefix });\n }\n else {\n registerHttpController({ tools, controller, prefix });\n }\n }\n return tools;\n };\n const registerClassController = (props) => {\n const { tools, controller, prefix } = props;\n const execute = controller.execute;\n for (const func of controller.application.functions) {\n const toolName = prefix\n ? `${controller.name}_${func.name}`\n : func.name;\n const method = execute[func.name];\n if (typeof method !== \"function\") {\n throw new Error(`Method \"${func.name}\" not found on controller \"${controller.name}\"`);\n }\n tools[toolName] = createTool({\n name: toolName,\n func,\n execute: (args) => __awaiter(this, void 0, void 0, function* () { return method.call(execute, args); }),\n });\n }\n };\n const registerHttpController = (props) => {\n const { tools, controller, prefix } = props;\n const application = controller.application;\n const connection = controller.connection;\n for (const func of application.functions) {\n const toolName = prefix\n ? `${controller.name}_${func.name}`\n : func.name;\n tools[toolName] = createTool({\n name: toolName,\n func,\n execute: (args) => __awaiter(this, void 0, void 0, function* () {\n if (controller.execute !== undefined) {\n const response = yield controller.execute({\n connection,\n application,\n function: func,\n arguments: args,\n });\n return response.body;\n }\n return utils_1.HttpLlm.execute({\n application,\n function: func,\n connection,\n input: args,\n });\n }),\n });\n }\n };\n const createTool = (props) => {\n var _a;\n const { name, func, execute } = props;\n return (0, ai_1.tool)({\n description: (_a = func.description) !== null && _a !== void 0 ? _a : \"\",\n inputSchema: VercelParameterConverter_1.VercelParameterConverter.convert(func.parameters),\n execute: (args) => __awaiter(this, void 0, void 0, function* () {\n const coerced = utils_1.LlmJson.coerce(args, func.parameters);\n const validation = func.validate(coerced);\n if (!validation.success)\n return {\n success: false,\n error: `Type errors in \"${name}\" arguments:\\n\\n` +\n `\\`\\`\\`json\\n${utils_1.LlmJson.stringify(validation)}\\n\\`\\`\\``,\n };\n try {\n const result = yield execute(validation.data);\n return result === undefined\n ? { success: true }\n : { success: true, data: result };\n }\n catch (error) {\n return {\n success: false,\n error: error instanceof Error\n ? `${error.name}: ${error.message}`\n : String(error),\n };\n }\n }),\n });\n };\n})(VercelToolsRegistrar || (exports.VercelToolsRegistrar = VercelToolsRegistrar = {}));\n//# sourceMappingURL=VercelToolsRegistrar.js.map"],"names":["this","VercelToolsRegistrar_1","require$$0","require$$1","require$$2","VercelToolsRegistrar"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typia/vercel",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.0-dev.20260425",
|
|
4
4
|
"description": "Vercel AI SDK integration for typia",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"homepage": "https://typia.io",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@typia/
|
|
26
|
-
"@typia/
|
|
25
|
+
"@typia/interface": "^13.0.0-dev.20260425",
|
|
26
|
+
"@typia/utils": "^13.0.0-dev.20260425"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"ai": ">=6.0.0"
|
|
@@ -31,15 +31,15 @@
|
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
33
33
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
34
|
-
"@rollup/plugin-typescript": "^12.3.0",
|
|
35
34
|
"@types/json-schema": "^7.0.15",
|
|
35
|
+
"@typescript/native-preview": "7.0.0-dev.20260421.2",
|
|
36
36
|
"ai": "^6.0.116",
|
|
37
37
|
"rimraf": "^6.1.2",
|
|
38
38
|
"rollup": "^4.56.0",
|
|
39
39
|
"rollup-plugin-auto-external": "^2.0.0",
|
|
40
40
|
"rollup-plugin-node-externals": "^8.1.2",
|
|
41
41
|
"tinyglobby": "^0.2.12",
|
|
42
|
-
"
|
|
42
|
+
"ttsc": "^0.4.2"
|
|
43
43
|
},
|
|
44
44
|
"sideEffects": false,
|
|
45
45
|
"files": [
|
|
@@ -62,15 +62,14 @@
|
|
|
62
62
|
"chatgpt",
|
|
63
63
|
"gemini",
|
|
64
64
|
"validation",
|
|
65
|
-
"json-schema"
|
|
66
|
-
"typescript"
|
|
65
|
+
"json-schema"
|
|
67
66
|
],
|
|
68
67
|
"publishConfig": {
|
|
69
68
|
"access": "public"
|
|
70
69
|
},
|
|
71
70
|
"scripts": {
|
|
72
|
-
"build": "rimraf lib &&
|
|
73
|
-
"dev": "
|
|
71
|
+
"build": "rimraf lib && ttsc && rollup -c",
|
|
72
|
+
"dev": "ttsc --watch"
|
|
74
73
|
},
|
|
75
74
|
"module": "lib/index.mjs",
|
|
76
75
|
"types": "lib/index.d.ts"
|