Appearance
Extension points
Faimulus can be extended through four main integration areas:
Providers and models
Implement AiModel for completion-style nodes and AgentCapableModel for agent loops. Register an AiProviderDefinition in AiProviderRegistry to expose provider metadata, configuration, and model creation. AiModelCatalog resolves explicit roles and uses the named general role as its fallback. Keep credentials in the host; workflow YAML contains only optional semantic role names.
This separation is intentional and important: provider integrations supply capabilities, while workflow authors target logical roles. Model identity stays in workspace config, not in workflow node definitions.
Application-owned provider, memory, and channel drivers use the shared workspace layout:
text
workspace/drivers/<provider|memory|channel>/<name>/
manifest.yaml
package.json
driver.tsThe manifest declares apiVersion: 1, its parent-matching kind, a unique type, and a relative TypeScript entrypoint. Driver-specific npm dependencies belong in that driver's package.json and are installed during image build. The server type-checks and compiles trusted driver code once at startup; a broken driver is logged and skipped.
Continue with the dedicated provider drivers guide for a full implementation walkthrough.
Toolsets and MCP servers
Implement the Toolset contract directly or use the HTTP/stdio MCP helpers. Define tool schemas and policy boundaries so the host can authorize side effects. MCP servers are typically configured as toolsets and can be backed by streamable HTTP or stdio transport. Apply authorization and network policy at the host boundary, because tools can perform side effects.
Memories
Add memory drivers to provide named persistence surfaces such as key/value stores, file-backed memories, or remote storage. Register them with the workspace memory catalog so workflows can resolve them by name. Keep persistence details and credentials in the driver implementation and host configuration, while workflows reference the logical memory surface.
Continue with the dedicated memory drivers guide for implementation and configuration details.
Channels
Bundled channel drivers keep their image package contract. Application-owned channel drivers use the shared workspace contract above. Channel integrations let workflows receive and send messages through transports such as webhooks, messaging services, or other external protocols. Continue with channel drivers.