1.6 KiB
1.6 KiB
YAMS Plugins: Overview and Spec
This document is an entry point for YAMS plugin development. The authoritative
specification lives at docs/spec/plugin_spec.md.
- Spec: docs/spec/plugin_spec.md
- C‑ABI core: include/yams/plugins/abi.h
yams_plugin_initreceives an optional host context to call back into YAMS services.
- Interfaces:
- Plugin-provided (called by host):
- Model provider (v1): include/yams/plugins/model_provider_v1.h
- Object storage (v1): include/yams/plugins/object_storage_v1.h (if present)
- Host-provided (called by plugin):
- Host Services (v1): include/yams/plugins/host_services_v1.h
- Exposes core application services like Document and Search to plugins.
- Host Services (v1): include/yams/plugins/host_services_v1.h
- Plugin-provided (called by host):
Quick start
- Discover plugins:
yams plugin scan [dir|file] - Trust a plugin:
yams plugin trust add /path/to/plugin.so - List trusted:
yams plugin trust list - Load on daemon start: place plugins in a trusted directory or set
plugin_dirin config.
Runtime notes
- The daemon prefers a host‑backed
model_provider_v1plugin for embeddings; otherwise it falls back to the built‑in registry or mock/null providers. - Progress events (ModelLoadEvent) may be emitted during model preload or warmup.
SDK
- In‑repo SDK: external/yams-sdk (Python‑first; JSON‑RPC helpers, templates, conformance runner)
- Mirror: https://git.sr.ht/~trvon/yams-sdk
- Templates: external/yams-sdk/python/templates (e.g., external-dr)
- SDK‑driven tests: yams/tests/sdk (exercise handshake/call/conformance without the daemon)
For detailed vtables, error mapping, lifecycle, and security/trust policy, see docs/spec/plugin_spec.md.