WIT interface
Current package:
omnifs:provider@0.4.0Provider step
Section titled “Provider step”suspended(list<callout>)returned(provider-return)Returned steps carry an operation result and effects. They do not carry trailing callouts.
Provider return
Section titled “Provider return”record provider-return { %result: op-result, effects: effects,}The operation result answers the call. The effects record is the only terminal host-mutation channel.
Operations
Section titled “Operations”| Interface | Functions |
|---|---|
| Lifecycle | initialize, shutdown |
| Namespace | lookup-child, list-children, read-file, open-file, read-chunk, close-file |
| Continuation | resume, cancel |
| Notify | on-event |
initialize is lifecycle setup. Browse operations live under namespace. Suspended operations resume through continuation.resume. Provider events enter through notify.on-event.
Callouts
Section titled “Callouts”fetchgit-open-repofetch-blobopen-archiveread-blob
Callouts are request/response. A provider cannot emit fire-and-forget host work.
Effects
Section titled “Effects”canonicalfsinvalidations
record effects { canonical: list<canonical-store>, fs: list<fs-write>, invalidations: list<invalidation>,}canonical stores raw upstream bytes under a logical object id. fs writes files or directories into the view cache. invalidations evict cached objects or listings.
File metadata
Section titled “File metadata”The WIT file metadata shape uses:
file-size:exact(u64),non-zero, orunknown,byte-source:inline,canonical,blob, ordeferred,read-mode:fullorranged,stability:immutable,mutable, orvolatile.
See File attributes for the host policy derived from those declarations.
For exact record fields, use crates/omnifs-wit/wit/provider.wit in the implementation repo.