@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.
@@ -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;AAgBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB"}
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: { name: schemaName, input_schema: jsonSchema },
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,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE;aACrD,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
+ {"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,CAuE7E"}
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.80",
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": {