mirror of
https://github.com/mudler/LocalAI.git
synced 2026-11-06 12:33:16 -05:00
For a kind that declares files.transfer, the connector manager gives the add-on a handle and not the bytes, in both directions. Inbound, the add-on streams the file to the host. The chat upload then reads it from the blob store, so a 6 MB PDF reaches the chat. Outbound, the manager checks the access of the chat to the file, gives the process that runs the add-on only the hash and the size of the content, and the add-on pulls the chunks. The file limit of such a kind has no inline cap: it is the smallest of the host ceiling, the ability the kind declares and the limit the owner set for the bot, and the sentence names the number and the layer. A kind without transfer keeps the 1 MiB inline cap, and its sentence says so. Checks: the files of one message may add up to three times the limit; the media type that the add-on states must be among the types the kind declares; an outbound file must have a type that the kind declares and must not start with an HTML page. Every transfer writes one audit line with direction, binding, size, result, layer and time, and no name or content. The binding page no longer says "larger files need streaming" for a kind that streams. The specs run the real Telegram and Slack add-ons, the real gateway and the real file operations over scripted platform APIs, with a 6 MB file in each direction. Not in this change: a daily byte counter per binding, and a virus scan (the table has a hook that accepts everything). Assisted-by: Claude:claude-sonnet-5-5 go test