@framers/agentos 0.9.80 → 0.9.82
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/core/llm/providers/structuredOutputFormat.d.ts.map +1 -1
- package/dist/core/llm/providers/structuredOutputFormat.js +26 -1
- package/dist/core/llm/providers/structuredOutputFormat.js.map +1 -1
- package/dist/orchestration/compiler/SchemaLowering.d.ts.map +1 -1
- package/dist/orchestration/compiler/SchemaLowering.js +28 -0
- package/dist/orchestration/compiler/SchemaLowering.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredOutputFormat.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"structuredOutputFormat.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAuCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB"}
|
|
@@ -12,6 +12,28 @@ function sanitizeName(name) {
|
|
|
12
12
|
return 'response';
|
|
13
13
|
return name.replace(SCHEMA_NAME_INVALID_CHARS, '_').slice(0, SCHEMA_NAME_MAX_LEN);
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Anthropic requires every tool's `input_schema` to be a JSON Schema object
|
|
17
|
+
* with a top-level `type`. {@link lowerZodToJsonSchema} returns `{}` for
|
|
18
|
+
* top-level shapes it does not model (e.g. a bare `z.discriminatedUnion`),
|
|
19
|
+
* which the Anthropic Messages API rejects with
|
|
20
|
+
* `tools.0.custom.input_schema.type: Field required`. Inject `type: 'object'`
|
|
21
|
+
* when the lowered schema has no top-level `type`; pass schemas that already
|
|
22
|
+
* declare a `type` through unchanged, so this is a no-op for the common
|
|
23
|
+
* object-schema case (mirrors the `?? { type: 'object' }` fallback the regular
|
|
24
|
+
* tool-conversion path in AnthropicProvider already applies).
|
|
25
|
+
*/
|
|
26
|
+
function ensureAnthropicObjectSchema(jsonSchema) {
|
|
27
|
+
if (jsonSchema && typeof jsonSchema === 'object' && 'type' in jsonSchema) {
|
|
28
|
+
return jsonSchema;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
type: 'object',
|
|
32
|
+
...(jsonSchema && typeof jsonSchema === 'object'
|
|
33
|
+
? jsonSchema
|
|
34
|
+
: {}),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
15
37
|
/**
|
|
16
38
|
* Build a provider-specific structured-output payload from a Zod schema.
|
|
17
39
|
*
|
|
@@ -46,7 +68,10 @@ export function buildResponseFormat(input) {
|
|
|
46
68
|
case 'anthropic':
|
|
47
69
|
return {
|
|
48
70
|
_agentosUseToolForStructuredOutput: true,
|
|
49
|
-
tool: {
|
|
71
|
+
tool: {
|
|
72
|
+
name: schemaName,
|
|
73
|
+
input_schema: ensureAnthropicObjectSchema(jsonSchema),
|
|
74
|
+
},
|
|
50
75
|
};
|
|
51
76
|
case 'gemini':
|
|
52
77
|
case 'gemini-cli':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredOutputFormat.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAmBzF,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AACnD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,SAAS,YAAY,CAAC,IAAY;IAChC,wEAAwE;IACxE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAElD,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE;oBACX,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,UAAU;iBACnB;aACF,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,kCAAkC,EAAE,IAAI;gBACxC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"structuredOutputFormat.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAmBzF,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AACnD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,SAAS,YAAY,CAAC,IAAY;IAChC,wEAAwE;IACxE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,2BAA2B,CAAC,UAAmB;IACtD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzE,OAAO,UAAqC,CAAC;IAC/C,CAAC;IACD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;YAC9C,CAAC,CAAE,UAAsC;YACzC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAElD,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE;oBACX,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,UAAU;iBACnB;aACF,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,kCAAkC,EAAE,IAAI;gBACxC,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,YAAY,EAAE,2BAA2B,CAAC,UAAU,CAAC;iBACtD;aACF,CAAC;QACJ,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY;YACf,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE;aACxC,CAAC;QACJ,KAAK,YAAY,CAAC;QAClB;YACE,iEAAiE;YACjE,+DAA+D;YAC/D,6DAA6D;YAC7D,iDAAiD;YACjD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaLowering.d.ts","sourceRoot":"","sources":["../../../src/orchestration/compiler/SchemaLowering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"SchemaLowering.d.ts","sourceRoot":"","sources":["../../../src/orchestration/compiler/SchemaLowering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsG7E"}
|
|
@@ -85,6 +85,34 @@ export function lowerZodToJsonSchema(schema) {
|
|
|
85
85
|
case 'default':
|
|
86
86
|
// Unwrap; defaults are runtime concerns, not JSON Schema concerns for our use case.
|
|
87
87
|
return lowerZodToJsonSchema(def.innerType);
|
|
88
|
+
case 'union': {
|
|
89
|
+
// z.union AND z.discriminatedUnion both surface as `union` in Zod v4 (the
|
|
90
|
+
// discriminated variant only adds `_def.discriminator`). Lower each option
|
|
91
|
+
// and expose them via `anyOf`. The result intentionally has no top-level
|
|
92
|
+
// `type`: the Anthropic structured-output adapter injects `{ type: 'object' }`
|
|
93
|
+
// (its tool input_schema requires a type), and OpenAI strict mode declines a
|
|
94
|
+
// typeless root (`canUseStrictJsonSchema`) and degrades to json_object — so a
|
|
95
|
+
// typeless `anyOf` is safe across providers while still giving the model the
|
|
96
|
+
// real variant shapes (previously a union lowered to `{}`, leaving the model
|
|
97
|
+
// unguided and structured output validation failing).
|
|
98
|
+
const options = def.options ?? [];
|
|
99
|
+
return { anyOf: options.map((opt) => lowerZodToJsonSchema(opt)) };
|
|
100
|
+
}
|
|
101
|
+
case 'literal': {
|
|
102
|
+
// Zod v4: def.values is an array of allowed literal constants (a literal may
|
|
103
|
+
// carry more than one). Model it as a single-value enum so discriminants in a
|
|
104
|
+
// discriminated union read correctly.
|
|
105
|
+
const values = def.values ?? [];
|
|
106
|
+
return { enum: values };
|
|
107
|
+
}
|
|
108
|
+
case 'record': {
|
|
109
|
+
// Open-ended string-keyed map → JSON Schema object whose value shape is
|
|
110
|
+
// described by additionalProperties.
|
|
111
|
+
return {
|
|
112
|
+
type: 'object',
|
|
113
|
+
additionalProperties: lowerZodToJsonSchema(def.valueType),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
88
116
|
default:
|
|
89
117
|
// Unknown / unsupported Zod type — return empty schema (treat as untyped).
|
|
90
118
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaLowering.js","sourceRoot":"","sources":["../../../src/orchestration/compiler/SchemaLowering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,qFAAqF;IACrF,MAAM,GAAG,GAAI,MAAc,CAAC,IAA2C,CAAC;IACxE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,sEAAsE;IACtE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAA0B,CAAC;IAEhD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAE5B,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAE5B,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE7B,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAE1B,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,4EAA4E;YAC5E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAiC,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,uDAAuD;YACvD,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,OAAkB,CAAC;aACpD,CAAC;QACJ,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,UAAU,GAA4B,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,sFAAsF;YACtF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAgC,CAAC;YAEnD,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,UAAU,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBAEpD,iFAAiF;gBACjF,MAAM,SAAS,GAAK,WAAmB,CAAC,IAA4C,EAAE,IAA0B,CAAC;gBACjH,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU;gBACV,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,KAAK,UAAU;YACb,yFAAyF;YACzF,OAAO,oBAAoB,CAAC,GAAG,CAAC,SAAoB,CAAC,CAAC;QAExD,KAAK,SAAS;YACZ,oFAAoF;YACpF,OAAO,oBAAoB,CAAC,GAAG,CAAC,SAAoB,CAAC,CAAC;QAExD;YACE,2EAA2E;YAC3E,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"SchemaLowering.js","sourceRoot":"","sources":["../../../src/orchestration/compiler/SchemaLowering.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.82",
|
|
4
4
|
"description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
|
|
5
5
|
"homepage": "https://agentos.sh",
|
|
6
6
|
"repository": {
|