@akanjs/cli 3.0.0-beta.2 → 3.0.0-beta.3
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/.build-stamp
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
d492352c3c58e1fe064cb199f210489a9405247a400b36a8a688d51f36c67173
|
|
@@ -121,6 +121,18 @@ apps and libs never import it directly (`no-import-external-library`) — everyt
|
|
|
121
121
|
reader produced**, not on the file that was picked: a reader that uploads and answers a `url` has already paid
|
|
122
122
|
what the ceiling exists for, so refusing its 6 MB photo would refuse it for a cost it does not incur. Only the
|
|
123
123
|
built-in path checks the source size, and there the file itself is the carrier.
|
|
124
|
+
- **A `url` carrier is an address the *provider* fetches, so a reader that uploads has to know its storage is
|
|
125
|
+
reachable.** This is the one way an attachment fails with nobody reporting it: the default storage backend
|
|
126
|
+
serves a path only the app can resolve, the adaptor hands it over as written, and the model answers about a
|
|
127
|
+
picture it never saw. Answer `data` when the provider cannot reach the URL — the choice is the reader's,
|
|
128
|
+
because the reader is what chose to upload.
|
|
129
|
+
- **An image type the provider has no block for is refused at the adaptor, not upstream.** `accepts.image` is one
|
|
130
|
+
boolean, so `AgentService.readable` passes every `image/*` through, and the built-in composer reader base64s
|
|
131
|
+
every `image/*` as well — an `AttachReader` answering `null` means "not mine" and falls through to it, so an app
|
|
132
|
+
cannot gate one either. Both shipped vision adaptors therefore match an exact set (`jpeg`, `png`, `gif`, `webp`)
|
|
133
|
+
and name the rest in the text. It matters because an unsupported type is not one unread attachment: it is a
|
|
134
|
+
block the API refuses, so the **whole turn** dies on a vendor 400 — and `image/heic`, the iPhone camera default,
|
|
135
|
+
is the likeliest one an app meets.
|
|
124
136
|
- **`MessageAttachment.ref` is the host's own handle on the file — carried, never read.** A file id, a storage key,
|
|
125
137
|
whatever turns the attachment back into something a tool can be handed. The framework only moves it: the model is
|
|
126
138
|
never shown one, and a tool the app publishes (`useFileFieldTool` below) is what spends it. Without it a host that
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/cli",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.3",
|
|
4
4
|
"sourceType": "module",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@langchain/openai": "^1.4.6",
|
|
34
34
|
"@tailwindcss/node": "^4.3.0",
|
|
35
35
|
"@trapezedev/project": "^7.1.4",
|
|
36
|
-
"akanjs": "3.0.0-beta.
|
|
36
|
+
"akanjs": "3.0.0-beta.3",
|
|
37
37
|
"chalk": "^5.6.2",
|
|
38
38
|
"commander": "^14.0.3",
|
|
39
39
|
"dayjs": "^1.11.20",
|