@moxxy/sdk 0.37.2 → 0.38.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/provider-utils.d.ts
CHANGED
|
@@ -33,5 +33,19 @@ export declare function toFriendlyError(err: unknown, ctx?: {
|
|
|
33
33
|
message: string;
|
|
34
34
|
retryable: boolean;
|
|
35
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Convert, then re-attach the author's `.describe()` text.
|
|
38
|
+
*
|
|
39
|
+
* A field description is the only place a tool author gets to say what a
|
|
40
|
+
* parameter means, and the model is the audience — dropping it leaves the
|
|
41
|
+
* model guessing at values (`tab_id: "current"` for a field documented as
|
|
42
|
+
* "omit for the active tab"). `description` is standard JSON Schema, so every
|
|
43
|
+
* provider either uses it or ignores it.
|
|
44
|
+
*
|
|
45
|
+
* Doing it here rather than at each of the dozen returns below also fixes the
|
|
46
|
+
* wrappers for free: `.describe()` may sit on the ZodOptional/ZodEffects OR on
|
|
47
|
+
* the type inside it, and each level of the recursion re-enters through this
|
|
48
|
+
* function. The outermost wins, because it applies last.
|
|
49
|
+
*/
|
|
36
50
|
export declare function zodToJsonSchema(schema: unknown, depth?: number): unknown;
|
|
37
51
|
//# sourceMappingURL=provider-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-utils.d.ts","sourceRoot":"","sources":["../src/provider-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,CAAC;AAE5F;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAYtD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,GAAG,GAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9D;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAYzC;AAmBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"provider-utils.d.ts","sourceRoot":"","sources":["../src/provider-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,CAAC;AAE5F;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAYtD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,GAAG,GAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9D;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAYzC;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,CAMnE"}
|
package/dist/provider-utils.js
CHANGED
|
@@ -73,7 +73,30 @@ export function toFriendlyError(err, ctx = {}) {
|
|
|
73
73
|
* blowing the call stack and taking down provider request construction.
|
|
74
74
|
*/
|
|
75
75
|
const MAX_SCHEMA_DEPTH = 32;
|
|
76
|
+
/**
|
|
77
|
+
* Convert, then re-attach the author's `.describe()` text.
|
|
78
|
+
*
|
|
79
|
+
* A field description is the only place a tool author gets to say what a
|
|
80
|
+
* parameter means, and the model is the audience — dropping it leaves the
|
|
81
|
+
* model guessing at values (`tab_id: "current"` for a field documented as
|
|
82
|
+
* "omit for the active tab"). `description` is standard JSON Schema, so every
|
|
83
|
+
* provider either uses it or ignores it.
|
|
84
|
+
*
|
|
85
|
+
* Doing it here rather than at each of the dozen returns below also fixes the
|
|
86
|
+
* wrappers for free: `.describe()` may sit on the ZodOptional/ZodEffects OR on
|
|
87
|
+
* the type inside it, and each level of the recursion re-enters through this
|
|
88
|
+
* function. The outermost wins, because it applies last.
|
|
89
|
+
*/
|
|
76
90
|
export function zodToJsonSchema(schema, depth = 0) {
|
|
91
|
+
const json = convertSchema(schema, depth);
|
|
92
|
+
const description = schema?._def?.description;
|
|
93
|
+
if (typeof description !== 'string' || !description)
|
|
94
|
+
return json;
|
|
95
|
+
if (typeof json !== 'object' || json === null || Array.isArray(json))
|
|
96
|
+
return json;
|
|
97
|
+
return { ...json, description };
|
|
98
|
+
}
|
|
99
|
+
function convertSchema(schema, depth) {
|
|
77
100
|
if (depth > MAX_SCHEMA_DEPTH)
|
|
78
101
|
return {};
|
|
79
102
|
const s = schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-utils.js","sourceRoot":"","sources":["../src/provider-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider-utils.js","sourceRoot":"","sources":["../src/provider-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moxxy/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "Typed public surface for the moxxy framework: event types, define* factories, lifecycle hook signatures.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"moxxy",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"undici": "^6.28.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"typescript": "^
|
|
74
|
+
"typescript": "^6.0.3",
|
|
75
75
|
"undici": "^6.28.0",
|
|
76
76
|
"vitest": "^3.2.6",
|
|
77
77
|
"zod": "^3.25.76",
|
|
@@ -152,3 +152,57 @@ describe('resolveProviderTools', () => {
|
|
|
152
152
|
expect(resolveProviderTools([webSearch], models, 'catalog-drift').tools).toEqual([webSearch]);
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Field descriptions are the only place a tool author can say what a parameter
|
|
158
|
+
* means, and the model is the audience. They were dropped on the floor: every
|
|
159
|
+
* `.describe()` in every moxxy tool reached the provider as nothing at all,
|
|
160
|
+
* which is how a model ends up inventing `tab_id: "current"` for a field whose
|
|
161
|
+
* description reads "Omit for the active tab".
|
|
162
|
+
*/
|
|
163
|
+
describe('zodToJsonSchema — descriptions', () => {
|
|
164
|
+
it('carries a field description through to the model', () => {
|
|
165
|
+
const out = zodToJsonSchema(z.object({ a: z.string().describe('Co to jest a') })) as {
|
|
166
|
+
properties: Record<string, Record<string, unknown>>;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
expect(out.properties.a).toEqual({ type: 'string', description: 'Co to jest a' });
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it('keeps a description that sits under a wrapper', () => {
|
|
173
|
+
expect(zodToJsonSchema(z.string().describe('opis').optional())).toEqual({
|
|
174
|
+
type: 'string',
|
|
175
|
+
description: 'opis',
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
it('lets the outermost description win when a wrapper carries one too', () => {
|
|
180
|
+
const schema = z.string().describe('wewnetrzny').optional().describe('zewnetrzny');
|
|
181
|
+
|
|
182
|
+
expect(zodToJsonSchema(schema)).toEqual({ type: 'string', description: 'zewnetrzny' });
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
it('describes a whole object, an enum and an array element too', () => {
|
|
186
|
+
const out = zodToJsonSchema(
|
|
187
|
+
z
|
|
188
|
+
.object({
|
|
189
|
+
mode: z.enum(['a', 'b']).describe('Tryb'),
|
|
190
|
+
tags: z.array(z.string()).describe('Etykiety'),
|
|
191
|
+
})
|
|
192
|
+
.describe('Cale wejscie'),
|
|
193
|
+
) as { description: string; properties: Record<string, Record<string, unknown>> };
|
|
194
|
+
|
|
195
|
+
expect(out.description).toBe('Cale wejscie');
|
|
196
|
+
expect(out.properties.mode?.description).toBe('Tryb');
|
|
197
|
+
expect(out.properties.tags?.description).toBe('Etykiety');
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
it('adds no description key when the author wrote none', () => {
|
|
201
|
+
expect(zodToJsonSchema(z.string())).toEqual({ type: 'string' });
|
|
202
|
+
expect(zodToJsonSchema(z.object({ a: z.string() }))).toEqual({
|
|
203
|
+
type: 'object',
|
|
204
|
+
properties: { a: { type: 'string' } },
|
|
205
|
+
required: ['a'],
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
});
|
package/src/provider-utils.ts
CHANGED
|
@@ -80,7 +80,29 @@ export function toFriendlyError(
|
|
|
80
80
|
*/
|
|
81
81
|
const MAX_SCHEMA_DEPTH = 32;
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Convert, then re-attach the author's `.describe()` text.
|
|
85
|
+
*
|
|
86
|
+
* A field description is the only place a tool author gets to say what a
|
|
87
|
+
* parameter means, and the model is the audience — dropping it leaves the
|
|
88
|
+
* model guessing at values (`tab_id: "current"` for a field documented as
|
|
89
|
+
* "omit for the active tab"). `description` is standard JSON Schema, so every
|
|
90
|
+
* provider either uses it or ignores it.
|
|
91
|
+
*
|
|
92
|
+
* Doing it here rather than at each of the dozen returns below also fixes the
|
|
93
|
+
* wrappers for free: `.describe()` may sit on the ZodOptional/ZodEffects OR on
|
|
94
|
+
* the type inside it, and each level of the recursion re-enters through this
|
|
95
|
+
* function. The outermost wins, because it applies last.
|
|
96
|
+
*/
|
|
83
97
|
export function zodToJsonSchema(schema: unknown, depth = 0): unknown {
|
|
98
|
+
const json = convertSchema(schema, depth);
|
|
99
|
+
const description = (schema as { _def?: { description?: string } } | null)?._def?.description;
|
|
100
|
+
if (typeof description !== 'string' || !description) return json;
|
|
101
|
+
if (typeof json !== 'object' || json === null || Array.isArray(json)) return json;
|
|
102
|
+
return { ...json, description };
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function convertSchema(schema: unknown, depth: number): unknown {
|
|
84
106
|
if (depth > MAX_SCHEMA_DEPTH) return {};
|
|
85
107
|
const s = schema as { _def?: { typeName?: string }; toJSON?: () => unknown };
|
|
86
108
|
// Only honor a pre-serialized schema's `toJSON` for NON-zod objects (a plain
|