@framers/agentos 0.9.82 → 0.9.83
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;
|
|
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;AA6GD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB"}
|
|
@@ -13,26 +13,83 @@ function sanitizeName(name) {
|
|
|
13
13
|
return name.replace(SCHEMA_NAME_INVALID_CHARS, '_').slice(0, SCHEMA_NAME_MAX_LEN);
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* top-level
|
|
19
|
-
*
|
|
20
|
-
* `
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
16
|
+
* Adapt a lowered JSON Schema into a shape Anthropic's tool `input_schema`
|
|
17
|
+
* accepts. The Anthropic Messages API requires the tool input_schema to be a
|
|
18
|
+
* JSON Schema **object** with a top-level `type`, and REJECTS a top-level
|
|
19
|
+
* `oneOf` / `allOf` / `anyOf` (`input_schema does not support … at the top
|
|
20
|
+
* level`). {@link lowerZodToJsonSchema} emits `{ anyOf: [...] }` for a top-level
|
|
21
|
+
* `z.union` / `z.discriminatedUnion` and `{}` for shapes it does not model.
|
|
22
|
+
* Two adaptations:
|
|
23
|
+
*
|
|
24
|
+
* 1. **Union of objects → one merged object.** Union the members' `properties`
|
|
25
|
+
* (merging same-named `enum` members so a discriminant like `kind` becomes
|
|
26
|
+
* the full set of variant values), and keep in `required` only the fields
|
|
27
|
+
* required by EVERY member, so variant-specific fields stay optional. The
|
|
28
|
+
* model returns one flat object; the caller's Zod schema re-validates the
|
|
29
|
+
* exact variant, so strictness is preserved. Nested `anyOf` (inside a
|
|
30
|
+
* property / `additionalProperties`) is left intact — Anthropic only forbids
|
|
31
|
+
* it at the TOP level.
|
|
32
|
+
* 2. **No top-level `type` (e.g. `{}` or a non-object union) → `{ type: 'object' }`**
|
|
33
|
+
* (mirrors the `?? { type: 'object' }` fallback AnthropicProvider's regular
|
|
34
|
+
* tool-conversion path applies). An object schema already carrying a `type`
|
|
35
|
+
* passes through unchanged.
|
|
25
36
|
*/
|
|
26
37
|
function ensureAnthropicObjectSchema(jsonSchema) {
|
|
27
|
-
if (jsonSchema
|
|
28
|
-
return
|
|
38
|
+
if (!jsonSchema || typeof jsonSchema !== 'object') {
|
|
39
|
+
return { type: 'object' };
|
|
40
|
+
}
|
|
41
|
+
const schema = jsonSchema;
|
|
42
|
+
const variants = (Array.isArray(schema.anyOf)
|
|
43
|
+
? schema.anyOf
|
|
44
|
+
: Array.isArray(schema.oneOf)
|
|
45
|
+
? schema.oneOf
|
|
46
|
+
: null);
|
|
47
|
+
if (variants &&
|
|
48
|
+
variants.length > 0 &&
|
|
49
|
+
variants.every((v) => v && typeof v === 'object' && v.type === 'object')) {
|
|
50
|
+
const mergedProperties = {};
|
|
51
|
+
const requiredCounts = {};
|
|
52
|
+
for (const variant of variants) {
|
|
53
|
+
const props = variant.properties && typeof variant.properties === 'object'
|
|
54
|
+
? variant.properties
|
|
55
|
+
: {};
|
|
56
|
+
for (const [key, propSchema] of Object.entries(props)) {
|
|
57
|
+
const existing = mergedProperties[key];
|
|
58
|
+
const incoming = propSchema;
|
|
59
|
+
if (existing &&
|
|
60
|
+
Array.isArray(existing.enum) &&
|
|
61
|
+
incoming &&
|
|
62
|
+
Array.isArray(incoming.enum)) {
|
|
63
|
+
// Same field is an enum across variants (e.g. the discriminant) —
|
|
64
|
+
// union the allowed values so the model can satisfy any variant.
|
|
65
|
+
mergedProperties[key] = {
|
|
66
|
+
enum: Array.from(new Set([...existing.enum, ...incoming.enum])),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
else if (!(key in mergedProperties)) {
|
|
70
|
+
mergedProperties[key] = propSchema;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const variantRequired = Array.isArray(variant.required)
|
|
74
|
+
? variant.required
|
|
75
|
+
: [];
|
|
76
|
+
for (const field of variantRequired) {
|
|
77
|
+
requiredCounts[field] = (requiredCounts[field] ?? 0) + 1;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// A field is required in the merged object only when EVERY variant requires
|
|
81
|
+
// it; variant-specific fields must stay optional.
|
|
82
|
+
const required = Object.keys(requiredCounts).filter((field) => requiredCounts[field] === variants.length);
|
|
83
|
+
return {
|
|
84
|
+
type: 'object',
|
|
85
|
+
properties: mergedProperties,
|
|
86
|
+
...(required.length > 0 ? { required } : {}),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if ('type' in schema) {
|
|
90
|
+
return schema;
|
|
29
91
|
}
|
|
30
|
-
return {
|
|
31
|
-
type: 'object',
|
|
32
|
-
...(jsonSchema && typeof jsonSchema === 'object'
|
|
33
|
-
? jsonSchema
|
|
34
|
-
: {}),
|
|
35
|
-
};
|
|
92
|
+
return { type: 'object', ...schema };
|
|
36
93
|
}
|
|
37
94
|
/**
|
|
38
95
|
* Build a provider-specific structured-output payload from a Zod schema.
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"structuredOutputFormat.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.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.83",
|
|
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": {
|