Open an aindrive drive as a read-only folder in Memona
Agents / bot (pull_request) Has been skipped
CI / checks (pull_request) Failing after 1m21s

The plugin reaches a drive through aindrive's remote MCP endpoint with
the drive's access token. Opening a connection asks which tools the
token may call, so it works while the drive's machine sleeps. Listing,
stat and reading map to list_files, stat and read_file; a read is
statted first, and a file whose length changed in between is refused as
a conflict. Reads decode only the window asked for, straight from the
reply pieces, so any 1 MiB slice of a file up to aindrive's 8 MiB limit
fits Memona's per-call fuel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 22:51:35 +09:00
parent 4ef9b217fa
commit 3c2cd123b7
17 changed files with 2536 additions and 2 deletions
+28
View File
@@ -0,0 +1,28 @@
[package]
name = "memona-plugin-aindrive"
version = "0.1.0"
edition = "2024"
license = "MIT"
description = "An aindrive filesystem provider for Memona, built as a WASI component."
repository = "https://git.capsulizers.com/commons/memona-plugin-aindrive"
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
wit-bindgen = "=0.62.0"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
base64 = "0.22"
tokio = { version = "1", features = ["macros", "rt"] }
[lints.clippy]
panic = "deny"
unwrap_used = "deny"
expect_used = "deny"
wildcard_imports = "deny"
[profile.dev]
debug = 0