n7n-plugin-host 0.1.6

wasmtime-бекенд для crate::registry::PluginRegistry (n7n-harness) — друга (wasm-компонентна) реалізація слотів detector/verify/ast_facts/t0, поруч з in-process-бекендом §3.12 пункту 16а
Documentation
package n7n:fix-deps@0.1.0;

// Хостові імпорти для guest-ів, яким потрібне читання файлів ВУЖЧЕ за
// повний read-only preopen кореня репозиторію (спека
// `2026-08-17-n7n-harness-local-models.md`, §3.9: "читання — read-only
// preopen кореня репозиторію (або хостові імпорти, коли треба вужче)").
//
// У цій половині пункту 16 (без wasmtime) жодного реального
// `wasi:filesystem` preopen-у в дереві немає — обидва шляхи читання, які
// §3.9 називає, лишаються МОЖЛИВОСТЯМИ на папері, доки не приходить
// wasmtime-крок: тоді `ast-facts`/`t0`/`detector` або отримають
// `wasi:filesystem` preopen (ширший шлях, стандартний WASI-пакет,
// свідомо НЕ вендориться тут — додав би зовнішню WIT-залежність до
// контракту-як-документації), або лишаться на цьому вужчому
// host-fs-імпорті — рішення того кроку, не цього.
//
// Спільне для ОБОХ шляхів (і майбутнього `wasi:filesystem`, і цього
// `host-fs`): жодної функції ЗАПИСУ немає в жодному імпорті жодного world
// нижче. Це навмисне — guest-и не отримують WASI-права запису взагалі
// (§3.9, рішення И): T0 повертає план, хост застосовує його через
// `write_guard`. Мутуючий guest — заборонений за побудовою (відсутністю
// імпорту), а не за домовленістю.

/// Вузький, атенуйований доступ до читання файлів — той самий "bridge
/// fiber" з обмеженими можливостями, яким §3.16 спеки описує хостовий бік
/// мосту (Cordis-стаття, §6.3: "the bridge is an ordinary fiber whose
/// capabilities can be attenuated").
interface host-fs {
    /// Прочитати повний текстовий вміст файлу, відносно кореня, який
    /// preopen-ить хост. `Err` — не існує / не UTF-8 / інша I/O-помилка;
    /// текст помилки непрозорий для guest-а (хост не зобов'язаний
    /// розкривати деталі своєї файлової системи).
    read-file: func(path: string) -> result<string, string>;
}