@framers/agentos 0.11.3 → 0.11.4
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/model-strict-tool-use.d.ts +20 -1
- package/dist/core/llm/providers/model-strict-tool-use.d.ts.map +1 -1
- package/dist/core/llm/providers/model-strict-tool-use.js +73 -2
- package/dist/core/llm/providers/model-strict-tool-use.js.map +1 -1
- package/dist/core/llm/providers/structuredOutputFormat.d.ts +28 -0
- package/dist/core/llm/providers/structuredOutputFormat.d.ts.map +1 -1
- package/dist/core/llm/providers/structuredOutputFormat.js +5 -1
- package/dist/core/llm/providers/structuredOutputFormat.js.map +1 -1
- package/dist/io/media/images/imageToBuffer.d.ts +4 -2
- package/dist/io/media/images/imageToBuffer.d.ts.map +1 -1
- package/dist/io/media/images/imageToBuffer.js +39 -23
- package/dist/io/media/images/imageToBuffer.js.map +1 -1
- package/package.json +1 -1
|
@@ -75,11 +75,30 @@ export declare function modelSupportsStrictToolUse(modelId: string): boolean;
|
|
|
75
75
|
* `not` / `contains` / `unevaluatedProperties`) — a FIELD literally named
|
|
76
76
|
* `additionalProperties` inside `properties` must not trip the check.
|
|
77
77
|
*
|
|
78
|
+
* The check also applies Anthropic's explicit complexity limits (see
|
|
79
|
+
* {@link STRICT_MAX_UNION_TYPED_PARAMETERS}): a schema over them 400s on every
|
|
80
|
+
* attempt, so it degrades to the non-strict forced tool too.
|
|
81
|
+
*
|
|
78
82
|
* @param inputSchema Lowered JSON Schema destined for `tool.input_schema`.
|
|
79
83
|
* @returns `true` when no reachable node carries a non-`false`
|
|
80
|
-
* `additionalProperties
|
|
84
|
+
* `additionalProperties` and the schema is within the complexity limits;
|
|
85
|
+
* `false` otherwise (caller must omit `strict`).
|
|
81
86
|
*/
|
|
82
87
|
export declare function toolInputSchemaSupportsStrict(inputSchema: unknown): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Anthropic's explicit limit on parameters that use `anyOf` or a type array
|
|
90
|
+
* (`"type": ["string", "null"]`), summed over every strict schema in a request:
|
|
91
|
+
* https://platform.claude.com/docs/en/build-with-claude/structured-outputs
|
|
92
|
+
* ("Schema complexity limits"). The forced structured-output tool is the only
|
|
93
|
+
* strict schema in its request, so its own count is the request's total.
|
|
94
|
+
*/
|
|
95
|
+
export declare const STRICT_MAX_UNION_TYPED_PARAMETERS = 16;
|
|
96
|
+
/**
|
|
97
|
+
* Anthropic's explicit limit on parameters left out of `required`, summed over
|
|
98
|
+
* every strict schema in a request (same page as
|
|
99
|
+
* {@link STRICT_MAX_UNION_TYPED_PARAMETERS}).
|
|
100
|
+
*/
|
|
101
|
+
export declare const STRICT_MAX_OPTIONAL_PARAMETERS = 24;
|
|
83
102
|
/**
|
|
84
103
|
* Rewrite a strict-compatible `input_schema` so every reachable object node
|
|
85
104
|
* carries `additionalProperties: false` EXPLICITLY.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-strict-tool-use.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/providers/model-strict-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAInE;AAED
|
|
1
|
+
{"version":3,"file":"model-strict-tool-use.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/providers/model-strict-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAInE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAQ3E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAsIjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,uCAAuC,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAErF"}
|
|
@@ -77,12 +77,83 @@ export function modelSupportsStrictToolUse(modelId) {
|
|
|
77
77
|
* `not` / `contains` / `unevaluatedProperties`) — a FIELD literally named
|
|
78
78
|
* `additionalProperties` inside `properties` must not trip the check.
|
|
79
79
|
*
|
|
80
|
+
* The check also applies Anthropic's explicit complexity limits (see
|
|
81
|
+
* {@link STRICT_MAX_UNION_TYPED_PARAMETERS}): a schema over them 400s on every
|
|
82
|
+
* attempt, so it degrades to the non-strict forced tool too.
|
|
83
|
+
*
|
|
80
84
|
* @param inputSchema Lowered JSON Schema destined for `tool.input_schema`.
|
|
81
85
|
* @returns `true` when no reachable node carries a non-`false`
|
|
82
|
-
* `additionalProperties
|
|
86
|
+
* `additionalProperties` and the schema is within the complexity limits;
|
|
87
|
+
* `false` otherwise (caller must omit `strict`).
|
|
83
88
|
*/
|
|
84
89
|
export function toolInputSchemaSupportsStrict(inputSchema) {
|
|
85
|
-
|
|
90
|
+
if (!nodeSupportsStrict(inputSchema, 0))
|
|
91
|
+
return false;
|
|
92
|
+
const counts = { unionTyped: 0, optional: 0 };
|
|
93
|
+
countStrictParameters(inputSchema, 0, counts);
|
|
94
|
+
return (counts.unionTyped <= STRICT_MAX_UNION_TYPED_PARAMETERS &&
|
|
95
|
+
counts.optional <= STRICT_MAX_OPTIONAL_PARAMETERS);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Anthropic's explicit limit on parameters that use `anyOf` or a type array
|
|
99
|
+
* (`"type": ["string", "null"]`), summed over every strict schema in a request:
|
|
100
|
+
* https://platform.claude.com/docs/en/build-with-claude/structured-outputs
|
|
101
|
+
* ("Schema complexity limits"). The forced structured-output tool is the only
|
|
102
|
+
* strict schema in its request, so its own count is the request's total.
|
|
103
|
+
*/
|
|
104
|
+
export const STRICT_MAX_UNION_TYPED_PARAMETERS = 16;
|
|
105
|
+
/**
|
|
106
|
+
* Anthropic's explicit limit on parameters left out of `required`, summed over
|
|
107
|
+
* every strict schema in a request (same page as
|
|
108
|
+
* {@link STRICT_MAX_UNION_TYPED_PARAMETERS}).
|
|
109
|
+
*/
|
|
110
|
+
export const STRICT_MAX_OPTIONAL_PARAMETERS = 24;
|
|
111
|
+
/**
|
|
112
|
+
* Count, below the root, the nodes that use `anyOf` / `oneOf` or a type array,
|
|
113
|
+
* and the object properties left out of `required`. It walks the positions
|
|
114
|
+
* {@link nodeSupportsStrict} walks. A node reached twice (a shared `$defs`
|
|
115
|
+
* entry) counts once per position, which can only over-count, and an
|
|
116
|
+
* over-count only costs strict mode, never the request.
|
|
117
|
+
*/
|
|
118
|
+
function countStrictParameters(node, depth, counts) {
|
|
119
|
+
if (depth > MAX_STRICT_SCAN_DEPTH)
|
|
120
|
+
return;
|
|
121
|
+
if (!node || typeof node !== 'object' || Array.isArray(node))
|
|
122
|
+
return;
|
|
123
|
+
const schema = node;
|
|
124
|
+
if (depth > 0 &&
|
|
125
|
+
(Array.isArray(schema.type) || Array.isArray(schema.anyOf) || Array.isArray(schema.oneOf))) {
|
|
126
|
+
counts.unionTyped += 1;
|
|
127
|
+
}
|
|
128
|
+
const properties = schema.properties;
|
|
129
|
+
if (properties && typeof properties === 'object' && !Array.isArray(properties)) {
|
|
130
|
+
const required = new Set(Array.isArray(schema.required) ? schema.required : []);
|
|
131
|
+
for (const name of Object.keys(properties)) {
|
|
132
|
+
if (!required.has(name))
|
|
133
|
+
counts.optional += 1;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const subschemas = [];
|
|
137
|
+
for (const key of ['properties', 'patternProperties', '$defs', 'definitions', 'dependentSchemas']) {
|
|
138
|
+
const map = schema[key];
|
|
139
|
+
if (map && typeof map === 'object' && !Array.isArray(map)) {
|
|
140
|
+
subschemas.push(...Object.values(map));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
for (const key of ['items', 'prefixItems', 'anyOf', 'oneOf', 'allOf']) {
|
|
144
|
+
const value = schema[key];
|
|
145
|
+
if (Array.isArray(value))
|
|
146
|
+
subschemas.push(...value);
|
|
147
|
+
else if (value && typeof value === 'object')
|
|
148
|
+
subschemas.push(value);
|
|
149
|
+
}
|
|
150
|
+
for (const key of ['if', 'then', 'else', 'not', 'contains', 'unevaluatedProperties']) {
|
|
151
|
+
const value = schema[key];
|
|
152
|
+
if (value && typeof value === 'object' && !Array.isArray(value))
|
|
153
|
+
subschemas.push(value);
|
|
154
|
+
}
|
|
155
|
+
for (const sub of subschemas)
|
|
156
|
+
countStrictParameters(sub, depth + 1, counts);
|
|
86
157
|
}
|
|
87
158
|
/** Defensive recursion bound — lowered schemas are shallow trees; anything
|
|
88
159
|
* deeper is malformed and must not stack-overflow the request path. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-strict-tool-use.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/model-strict-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,oEAAoE,CAAC,IAAI,CAC9E,OAAO,CACR,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"model-strict-tool-use.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/model-strict-tool-use.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,34 @@ export interface BuildResponseFormatInput {
|
|
|
31
31
|
*/
|
|
32
32
|
schemaName: string;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Adapt a lowered JSON Schema into a shape Anthropic's tool `input_schema`
|
|
36
|
+
* accepts. The Anthropic Messages API requires the tool input_schema to be a
|
|
37
|
+
* JSON Schema **object** with a top-level `type`, and REJECTS a top-level
|
|
38
|
+
* `oneOf` / `allOf` / `anyOf` (`input_schema does not support … at the top
|
|
39
|
+
* level`). {@link lowerZodToJsonSchema} emits `{ anyOf: [...] }` for a top-level
|
|
40
|
+
* `z.union` / `z.discriminatedUnion` and `{}` for shapes it does not model.
|
|
41
|
+
* Two adaptations:
|
|
42
|
+
*
|
|
43
|
+
* 1. **Union of objects → one merged object.** Union the members' `properties`
|
|
44
|
+
* (merging same-named `enum` members so a discriminant like `kind` becomes
|
|
45
|
+
* the full set of variant values, and keeping a shared property's differing
|
|
46
|
+
* schemas under a nested `anyOf`), and keep in `required` only the fields
|
|
47
|
+
* required by EVERY member, so variant-specific fields stay optional. The
|
|
48
|
+
* model returns one flat object; the caller's Zod schema re-validates the
|
|
49
|
+
* exact variant, so strictness is preserved. Nested `anyOf` (inside a
|
|
50
|
+
* property / `additionalProperties`) is left intact — Anthropic only forbids
|
|
51
|
+
* it at the TOP level.
|
|
52
|
+
* 2. **No top-level `type` (e.g. `{}` or a non-object union) → `{ type: 'object' }`**
|
|
53
|
+
* (mirrors the `?? { type: 'object' }` fallback AnthropicProvider's regular
|
|
54
|
+
* tool-conversion path applies). An object schema already carrying a `type`
|
|
55
|
+
* passes through unchanged.
|
|
56
|
+
*
|
|
57
|
+
* @internal Exported for tests: {@link lowerZodToJsonSchema} gives an enum no
|
|
58
|
+
* other fields, so some merge rules can only be reached with a hand-written
|
|
59
|
+
* schema. Callers use {@link buildResponseFormat}.
|
|
60
|
+
*/
|
|
61
|
+
export declare function ensureAnthropicObjectSchema(jsonSchema: unknown): Record<string, unknown>;
|
|
34
62
|
/**
|
|
35
63
|
* Build a provider-specific structured-output payload from a Zod schema.
|
|
36
64
|
*
|
|
@@ -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;AA2ED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2DxF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB"}
|
|
@@ -88,8 +88,12 @@ function mergePropertySchemas(schemas) {
|
|
|
88
88
|
* (mirrors the `?? { type: 'object' }` fallback AnthropicProvider's regular
|
|
89
89
|
* tool-conversion path applies). An object schema already carrying a `type`
|
|
90
90
|
* passes through unchanged.
|
|
91
|
+
*
|
|
92
|
+
* @internal Exported for tests: {@link lowerZodToJsonSchema} gives an enum no
|
|
93
|
+
* other fields, so some merge rules can only be reached with a hand-written
|
|
94
|
+
* schema. Callers use {@link buildResponseFormat}.
|
|
91
95
|
*/
|
|
92
|
-
function ensureAnthropicObjectSchema(jsonSchema) {
|
|
96
|
+
export function ensureAnthropicObjectSchema(jsonSchema) {
|
|
93
97
|
if (!jsonSchema || typeof jsonSchema !== 'object') {
|
|
94
98
|
return { type: 'object' };
|
|
95
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredOutputFormat.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"structuredOutputFormat.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/structuredOutputFormat.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* or a file path is decoded directly. One that looks like a path is read as
|
|
10
10
|
* a file first, and decoded when no file exists there and it is base64
|
|
11
11
|
* (standard or URL-safe) whose bytes start with a PNG, JPEG, GIF, WebP, TIFF,
|
|
12
|
-
* AVIF
|
|
13
|
-
* JPEG's base64 begins with `/9j/`. A
|
|
12
|
+
* AVIF, HEIC, BMP, ICO, JPEG 2000, JPEG XL or SVG signature: standard base64
|
|
13
|
+
* uses `/` (RFC 4648, Table 1), so a JPEG's base64 begins with `/9j/`. A
|
|
14
|
+
* missing path is still an error; when the string is base64 of another
|
|
15
|
+
* format, the error says so without repeating the string.
|
|
14
16
|
* - **`file://` URL** — resolved to a local filesystem path and read.
|
|
15
17
|
* - **HTTP/HTTPS URL** — fetched via `globalThis.fetch` and buffered.
|
|
16
18
|
* - **Local file path** — a string that contains `/` or `\`, or ends in a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageToBuffer.d.ts","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"AAYA
|
|
1
|
+
{"version":3,"file":"imageToBuffer.d.ts","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyE3E;AAsDD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAI3D"}
|
|
@@ -20,8 +20,10 @@ import * as fs from 'node:fs/promises';
|
|
|
20
20
|
* or a file path is decoded directly. One that looks like a path is read as
|
|
21
21
|
* a file first, and decoded when no file exists there and it is base64
|
|
22
22
|
* (standard or URL-safe) whose bytes start with a PNG, JPEG, GIF, WebP, TIFF,
|
|
23
|
-
* AVIF
|
|
24
|
-
* JPEG's base64 begins with `/9j/`. A
|
|
23
|
+
* AVIF, HEIC, BMP, ICO, JPEG 2000, JPEG XL or SVG signature: standard base64
|
|
24
|
+
* uses `/` (RFC 4648, Table 1), so a JPEG's base64 begins with `/9j/`. A
|
|
25
|
+
* missing path is still an error; when the string is base64 of another
|
|
26
|
+
* format, the error says so without repeating the string.
|
|
25
27
|
* - **`file://` URL** — resolved to a local filesystem path and read.
|
|
26
28
|
* - **HTTP/HTTPS URL** — fetched via `globalThis.fetch` and buffered.
|
|
27
29
|
* - **Local file path** — a string that contains `/` or `\`, or ends in a
|
|
@@ -85,11 +87,19 @@ export async function imageToBuffer(input) {
|
|
|
85
87
|
// Standard base64 uses `/` (RFC 4648, Table 1), so raw base64 looks like a
|
|
86
88
|
// path. When no file exists there and the string decodes to image bytes,
|
|
87
89
|
// it is the image; a missing path that does not stays an error.
|
|
88
|
-
const
|
|
89
|
-
if (
|
|
90
|
-
|
|
90
|
+
const compact = trimmed.replace(/\s+/g, '');
|
|
91
|
+
if (!isMissingFileError(error) || !BASE64_PATTERN.test(compact)) {
|
|
92
|
+
throw error;
|
|
91
93
|
}
|
|
92
|
-
|
|
94
|
+
const bytes = Buffer.from(compact, 'base64');
|
|
95
|
+
if (hasImageSignature(bytes)) {
|
|
96
|
+
return bytes;
|
|
97
|
+
}
|
|
98
|
+
// Node's error names the whole string as the path, which for a base64
|
|
99
|
+
// payload can run to megabytes in a message or a log line.
|
|
100
|
+
throw Object.assign(new Error(`imageToBuffer: no file exists at ${preview(trimmed)}, and it is not base64 of a ` +
|
|
101
|
+
'recognised image format (PNG, JPEG, GIF, WebP, TIFF, AVIF, HEIC, BMP, ICO, ' +
|
|
102
|
+
'JPEG 2000, JPEG XL or SVG). Pass the image as a data URL or a Buffer.'), { code: error.code, cause: error });
|
|
93
103
|
}
|
|
94
104
|
}
|
|
95
105
|
// Fallback: raw base64 string (no data URL prefix).
|
|
@@ -97,24 +107,18 @@ export async function imageToBuffer(input) {
|
|
|
97
107
|
}
|
|
98
108
|
/** The standard and URL-safe base64 alphabets of RFC 4648, with optional padding. */
|
|
99
109
|
const BASE64_PATTERN = /^[A-Za-z0-9+/_-]+={0,2}$/;
|
|
100
|
-
/**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
* do not start with a PNG, JPEG, GIF, WebP, TIFF, AVIF or HEIC signature.
|
|
106
|
-
*/
|
|
107
|
-
function decodeBase64Image(value) {
|
|
108
|
-
const compact = value.replace(/\s+/g, '');
|
|
109
|
-
if (!BASE64_PATTERN.test(compact)) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
const bytes = Buffer.from(compact, 'base64');
|
|
113
|
-
return hasImageSignature(bytes) ? bytes : null;
|
|
110
|
+
/** A short, quoted form of `value` for an error message. */
|
|
111
|
+
function preview(value) {
|
|
112
|
+
return value.length <= 80
|
|
113
|
+
? JSON.stringify(value)
|
|
114
|
+
: `${JSON.stringify(value.slice(0, 40))}... (${value.length} characters)`;
|
|
114
115
|
}
|
|
115
116
|
/**
|
|
116
|
-
* True when `bytes` start with the signature of PNG, JPEG, GIF, WebP, TIFF,
|
|
117
|
-
*
|
|
117
|
+
* True when `bytes` start with the signature of PNG, JPEG, GIF, WebP, TIFF, an
|
|
118
|
+
* ISO media file such as AVIF or HEIC (`ftyp` at offset 4), BMP, ICO, JPEG 2000,
|
|
119
|
+
* the JPEG XL container, or SVG text. JPEG XL's bare codestream marker (FF 0A)
|
|
120
|
+
* is left out: two bytes are too few, and a path such as `/work...` decodes to
|
|
121
|
+
* them.
|
|
118
122
|
*/
|
|
119
123
|
function hasImageSignature(bytes) {
|
|
120
124
|
const startsWith = (...signature) => signature.every((byte, i) => bytes[i] === byte);
|
|
@@ -124,7 +128,19 @@ function hasImageSignature(bytes) {
|
|
|
124
128
|
(startsWith(0x52, 0x49, 0x46, 0x46) && bytes.subarray(8, 12).toString('latin1') === 'WEBP') ||
|
|
125
129
|
startsWith(0x49, 0x49, 0x2a, 0x00) || // TIFF, little-endian
|
|
126
130
|
startsWith(0x4d, 0x4d, 0x00, 0x2a) || // TIFF, big-endian
|
|
127
|
-
bytes.subarray(4, 8).toString('latin1') === 'ftyp'
|
|
131
|
+
bytes.subarray(4, 8).toString('latin1') === 'ftyp' ||
|
|
132
|
+
// BMP: "BM", then the file size, which a whole file's bytes match.
|
|
133
|
+
(startsWith(0x42, 0x4d) && bytes.length >= 6 && bytes.readUInt32LE(2) === bytes.length) ||
|
|
134
|
+
startsWith(0x00, 0x00, 0x01, 0x00) || // ICO
|
|
135
|
+
startsWith(0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20, 0x0d, 0x0a, 0x87, 0x0a) || // JPEG 2000 (JP2)
|
|
136
|
+
startsWith(0xff, 0x4f, 0xff, 0x51) || // JPEG 2000 codestream
|
|
137
|
+
startsWith(0x00, 0x00, 0x00, 0x0c, 0x4a, 0x58, 0x4c, 0x20, 0x0d, 0x0a, 0x87, 0x0a) || // JPEG XL container
|
|
138
|
+
isSvgText(bytes));
|
|
139
|
+
}
|
|
140
|
+
/** True when `bytes` are SVG markup: `<svg`, or an XML declaration followed by `<svg`. */
|
|
141
|
+
function isSvgText(bytes) {
|
|
142
|
+
const head = bytes.subarray(0, 1024).toString('utf8').replace(/^\uFEFF/, '').trimStart();
|
|
143
|
+
return head.startsWith('<svg') || (head.startsWith('<?xml') && head.includes('<svg'));
|
|
128
144
|
}
|
|
129
145
|
/**
|
|
130
146
|
* True for the errors `fs.readFile` gives when nothing exists at the path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageToBuffer.js","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"imageToBuffer.js","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.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.11.
|
|
3
|
+
"version": "0.11.4",
|
|
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": {
|