Fen contracts
events #
Event-bus shapes.
agent-shutdown #
Emitted once per run during teardown. :error is present for crashed paths.
| Field | Type | Required | Summary |
|---|---|---|---|
:agent # | Agent | yes | Agent instance associated with the event. |
:error # | string | Crash details when shutdown follows an error path. | |
:reason # | keyword | yes | :normal | :crashed |
:type # | :agent-shutdown | yes | Event discriminator for :agent-shutdown events. |
agent-started #
Emitted once per run after setup and before the first new step.
| Field | Type | Required | Summary |
|---|---|---|---|
:agent # | Agent | yes | Agent instance associated with the event. |
:cwd # | string | yes | Working directory for the active agent run. |
:model # | string | yes | Model identifier selected for the active run. |
:provider # | keyword|string | yes | Provider name selected for the active run. |
:type # | :agent-started | yes | Event discriminator for :agent-started events. |
agent-turn-complete #
Emitted once per submitted user turn after the agent coroutine finishes and the presenter busy flag has been cleared.
| Field | Type | Required | Summary |
|---|---|---|---|
:agent # | Agent | yes | Agent instance associated with the completed turn. |
:error # | string | Error summary when the turn ended with :status :error. | |
:message-count # | number | yes | Conversation message count after the turn finished. |
:result # | string | Final visible assistant text for successful or cancelled turns, when available. | |
:status # | keyword | yes | :ok | :cancelled | :error |
:type # | :agent-turn-complete | yes | Event discriminator for :agent-turn-complete events. |
assistant-stream-end #
Stream finished. Emitted once after all per-block end events for a single AssistantMessage.
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :assistant-stream-end | yes | Event discriminator for :assistant-stream-end events. |
assistant-text #
Final visible text emitted by the assistant. One per AssistantMessage with text blocks.
| Field | Type | Required | Summary |
|---|---|---|---|
:final? # | boolean | True when this is the final aggregate payload for the current block. | |
:text # | string | yes | Complete assistant text payload for this event. |
:type # | :assistant-text | yes | Event discriminator for :assistant-text events. |
assistant-text-delta #
Streaming text token. Aggregated by presenters during a stream.
| Field | Type | Required | Summary |
|---|---|---|---|
:delta # | string | yes | Incremental streamed text fragment for the open content block. |
:type # | :assistant-text-delta | yes | Event discriminator for :assistant-text-delta events. |
assistant-thinking #
Final reasoning text from the assistant (for providers that surface reasoning content).
| Field | Type | Required | Summary |
|---|---|---|---|
:final? # | boolean | True when this is the final aggregate payload for the current block. | |
:text # | string | yes | Complete assistant text payload for this event. |
:type # | :assistant-thinking | yes | Event discriminator for :assistant-thinking events. |
assistant-thinking-delta #
Streaming reasoning token.
| Field | Type | Required | Summary |
|---|---|---|---|
:delta # | string | yes | Incremental streamed text fragment for the open content block. |
:type # | :assistant-thinking-delta | yes | Event discriminator for :assistant-thinking-delta events. |
cancelled #
Cooperative cancel observed; the current step appended an aborted assistant message.
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :cancelled | yes | Event discriminator for :cancelled events. |
compaction-summary #
Context compaction completed and produced a summary for older messages.
| Field | Type | Required | Summary |
|---|---|---|---|
:guidance # | string | Optional user guidance supplied to /compact. | |
:messages-kept # | number | Number of recent messages kept verbatim. | |
:messages-summarized # | number | Number of older messages summarized. | |
:summary # | string | yes | Summary text installed into the compacted model context. |
:tokens-after # | number | Approximate context tokens after compaction. | |
:tokens-before # | number | Approximate context tokens before compaction. | |
:trigger # | keyword | Why compaction ran, such as :manual. | |
:type # | :compaction-summary | yes | Event discriminator for :compaction-summary events. |
dismiss #
Presenter signal that an open overlay/picker should close.
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :dismiss | yes | Event discriminator for :dismiss events. |
done #
Provider stream: terminal event for a successful AssistantMessage.
| Field | Type | Required | Summary |
|---|---|---|---|
:message # | AssistantMessage | yes | Canonical assistant message produced by the provider stream. |
:type # | :done | yes | Event discriminator for :done events. |
error #
Generic surface error — typically command-dispatch or user-input failures.
| Field | Type | Required | Summary |
|---|---|---|---|
:error # | string | yes | Human-readable error message for presenters and logs. |
:type # | :error | yes | Event discriminator for :error events. |
extension-error #
Emitted when an extension event handler raises. Suppressed for recursive extension-error events to prevent loops.
| Field | Type | Required | Summary |
|---|---|---|---|
:error # | string | yes | Human-readable error message for presenters and logs. |
:event # | keyword|string | Original event being handled when the extension error occurred. | |
:owner # | keyword|string | Extension owner whose handler raised, when known. | |
:type # | :extension-error | yes | Event discriminator for :extension-error events. |
extension-loaded #
Emitted by the loader for each successfully loaded extension manifest.
| Field | Type | Required | Summary |
|---|---|---|---|
:first-party? # | boolean | True when the loaded extension came from fen's bundled extension set. | |
:name # | string | yes | Extension manifest name that was loaded. |
:type # | :extension-loaded | yes | Event discriminator for :extension-loaded events. |
info #
Transient informational message intended for the presenter status row or panel.
| Field | Type | Required | Summary |
|---|---|---|---|
:info # | string | Human-readable informational message payload. | |
:text # | string | Alternative human-readable informational text. | |
:type # | :info | yes | Event discriminator for :info events. |
llm-end #
Provider call completed (success or error). The :message field carries the canonical AssistantMessage.
| Field | Type | Required | Summary |
|---|---|---|---|
:message # | AssistantMessage | yes | Canonical assistant message produced by the provider stream. |
:type # | :llm-end | yes | Event discriminator for :llm-end events. |
llm-start #
Provider call beginning.
| Field | Type | Required | Summary |
|---|---|---|---|
:model # | string | Model identifier used for the provider request, when known. | |
:provider # | keyword | Provider name for the outbound LLM call, when known. | |
:type # | :llm-start | yes | Event discriminator for :llm-start events. |
message-appended #
Emitted by fen.core.agent immediately after agent.messages grows.
| Field | Type | Required | Summary |
|---|---|---|---|
:agent # | Agent | yes | Agent instance associated with the event. |
:index # | number | yes | 1-based index of the appended message. |
:message # | Message | yes | Canonical message that was appended to the conversation. |
:type # | :message-appended | yes | Event discriminator for :message-appended events. |
queued #
User-line queued while the agent is busy. Consumed by the agent on natural-stop.
| Field | Type | Required | Summary |
|---|---|---|---|
:line # | string | yes | Raw user input line associated with the event. |
:type # | :queued | yes | Event discriminator for :queued events. |
redraw #
Presenter hint that a registered panel needs to be repainted.
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :redraw | yes | Event discriminator for :redraw events. |
reinit-presenter #
Presenter signal that the UI should be torn down and re-initialized (used by /reload).
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :reinit-presenter | yes | Event discriminator for :reinit-presenter events. |
reset-conversation #
Presenter signal that the active conversation should be cleared (used by /new).
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :reset-conversation | yes | Event discriminator for :reset-conversation events. |
set-status-info #
Presenter-level status hint. Owners post a transient status line; nil clears.
| Field | Type | Required | Summary |
|---|---|---|---|
:info # | string|nil | Transient status text to show, or nil to clear it. | |
:type # | :set-status-info | yes | Event discriminator for :set-status-info events. |
start #
Provider stream opened. Marker event emitted before any block events.
| Field | Type | Required | Summary |
|---|---|---|---|
:type # | :start | yes | Event discriminator for :start events. |
text-delta #
Provider stream: incremental text token within the open block.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:delta # | string | yes | Incremental streamed text fragment for the open content block. |
:type # | :text-delta | yes | Event discriminator for :text-delta events. |
text-end #
Provider stream: TextContent block closed; full text supplied.
| Field | Type | Required | Summary |
|---|---|---|---|
:content # | string | yes | Complete text or thinking content for the closed stream block. |
:content-index # | number | yes | Position within the assistant's content array. |
:type # | :text-end | yes | Event discriminator for :text-end events. |
text-start #
Provider stream: a TextContent block is starting.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:type # | :text-start | yes | Event discriminator for :text-start events. |
thinking-delta #
Provider stream: incremental reasoning token within the open block.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:delta # | string | yes | Incremental streamed text fragment for the open content block. |
:type # | :thinking-delta | yes | Event discriminator for :thinking-delta events. |
thinking-end #
Provider stream: ThinkingContent block closed; full text supplied.
| Field | Type | Required | Summary |
|---|---|---|---|
:content # | string | yes | Complete text or thinking content for the closed stream block. |
:content-index # | number | yes | Position within the assistant's content array. |
:type # | :thinking-end | yes | Event discriminator for :thinking-end events. |
thinking-start #
Provider stream: a ThinkingContent block is starting.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:type # | :thinking-start | yes | Event discriminator for :thinking-start events. |
tool-call #
Tool call about to execute. Carries the canonical ToolCall block.
| Field | Type | Required | Summary |
|---|---|---|---|
:tool-call # | ToolCall | yes | Canonical tool-call block associated with this event. |
:type # | :tool-call | yes | Event discriminator for :tool-call events. |
tool-call-delta #
Provider stream: incremental JSON-text fragment for the open ToolCall arguments. Some providers stream arguments token-by-token; consumers may concatenate.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:delta # | string | yes | Incremental streamed text fragment for the open content block. |
:type # | :tool-call-delta | yes | Event discriminator for :tool-call-delta events. |
tool-call-end #
Provider stream: ToolCall block closed; complete canonical ToolCall block supplied.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:tool-call # | ToolCall | yes | Canonical tool-call block associated with this event. |
:type # | :tool-call-end | yes | Event discriminator for :tool-call-end events. |
tool-call-start #
Provider stream: a ToolCall block is starting; arguments not yet known.
| Field | Type | Required | Summary |
|---|---|---|---|
:content-index # | number | yes | Position within the assistant's content array. |
:type # | :tool-call-start | yes | Event discriminator for :tool-call-start events. |
tool-result #
Tool execution finished. Carries the canonical ToolResultMessage.
| Field | Type | Required | Summary |
|---|---|---|---|
:result # | ToolResultMessage | yes | Canonical tool-result message produced by the tool executor. |
:type # | :tool-result | yes | Event discriminator for :tool-result events. |
user #
User-submitted line accepted by the presenter input layer. Distinct from :queued (which fires when the line is queued during a busy turn).
| Field | Type | Required | Summary |
|---|---|---|---|
:line # | string | yes | Raw user input line associated with the event. |
:type # | :user | yes | Event discriminator for :user events. |
types #
Canonical message/tool types.
AgentContext #
Per-call payload handed to a provider's :complete.
| Field | Type | Required | Summary |
|---|---|---|---|
:max-tokens # | number | yes | Maximum output token budget requested for the provider call. |
:messages # | [Message] | yes | Canonical conversation history to convert into provider wire format. |
:system-prompt # | string|nil | Fully rendered system prompt for the current step, or nil when omitted. | |
:tools # | [Tool] | yes | Provider-visible tool specs available for this step. |
AgentTool #
Tool extended with execution metadata for the agent loop. Registered through (api.register :tool ...).
| Field | Type | Required | Summary |
|---|---|---|---|
:description # | string | yes | Provider-facing description included in the tool schema. |
:execute # | (args ?yield-fn) -> AgentToolResult | yes | Runtime callback that executes the tool with decoded arguments. |
:label # | string | UI label. | |
:name # | string | yes | Registry name used to merge and dispatch the tool. |
:parameters # | JSONSchema | yes | Provider-facing argument schema used for validation and prompting. |
AgentToolResult #
Outcome of a tool execution.
| Field | Type | Required | Summary |
|---|---|---|---|
:content # | [TextContent] | yes | Text content returned to the provider as the tool observation. |
:details # | any | Opaque presenter payload (UI-only). | |
:is-error? # | boolean | yes | True when the tool observation represents a failed call. |
AssistantMessage #
Single model response. Content is always an array, even when empty.
| Field | Type | Required | Summary |
|---|---|---|---|
:api # | keyword | :openai-completions | :openai-responses | :anthropic-messages | :openai-codex | |
:content # | [TextContent|ThinkingContent|ToolCall] | yes | Ordered assistant output blocks, including visible text, reasoning, and tool calls. |
:error-message # | string | Present only when stop-reason = :error. | |
:model # | string | Provider model identifier that produced this response. | |
:provider # | keyword | Registered provider :name (e.g. :openai, :anthropic). | |
:role # | :assistant | yes | Message role discriminator for model-authored turns. |
:stop-reason # | StopReason | Normalized reason the provider stopped generation. | |
:timestamp # | number | yes | Milliseconds since epoch when the assistant message was recorded. |
:usage # | Usage | Optional token accounting returned by the provider for this response. |
Message #
Union of UserMessage, AssistantMessage, ToolResultMessage. Stored on agent.messages and passed to providers in AgentContext.messages.
| Member | Kind | Summary |
|---|---|---|
UserMessage # | variant | UserMessage is a Message union variant. |
AssistantMessage # | variant | AssistantMessage is a Message union variant. |
ToolResultMessage # | variant | ToolResultMessage is a Message union variant. |
StopReason #
Why the assistant stopped producing output.
| Member | Kind | Summary |
|---|---|---|
:stop # | enum | :stop is a StopReason enum value. |
:length # | enum | :length is a StopReason enum value. |
:tool-use # | enum | :tool-use is a StopReason enum value. |
:error # | enum | :error is a StopReason enum value. |
:aborted # | enum | :aborted is a StopReason enum value. |
TextContent #
Plain visible text block.
| Field | Type | Required | Summary |
|---|---|---|---|
:text # | string | yes | Visible UTF-8 text payload. |
:type # | :text | yes | Content-block discriminator for visible text. |
ThinkingContent #
Reasoning/extended-thinking block. Surfaces both Anthropic extended thinking and OpenAI reasoning items.
| Field | Type | Required | Summary |
|---|---|---|---|
:redacted? # | boolean | True when the provider redacted visible text. | |
:thinking # | string | yes | Reasoning or extended-thinking text emitted by the provider. |
:thinking-signature # | string | Opaque echo signature; required for multi-turn extended thinking. | |
:type # | :thinking | yes | Content-block discriminator for provider reasoning text. |
Tool #
Provider-agnostic tool spec — what providers see in AgentContext.tools.
| Field | Type | Required | Summary |
|---|---|---|---|
:description # | string | yes | Provider-visible explanation of when and how to call the tool. |
:name # | string | yes | Provider-visible tool name used in tool-call blocks. |
:parameters # | JSONSchema | yes | {:type :object :properties {...} :required [...]} |
ToolCall #
Assistant request to invoke a tool. Arguments are a parsed Lua table — providers JSON-decode wire arguments before constructing this block.
| Field | Type | Required | Summary |
|---|---|---|---|
:arguments # | table | yes | Decoded argument table validated by the target tool implementation. |
:id # | string | yes | Provider- or agent-generated id used to match the eventual tool result. |
:name # | string | yes | Registered tool name to execute. |
:type # | :tool-call | yes | Content-block discriminator for tool invocation requests. |
ToolResultMessage #
Result of a single tool call, carried back to the provider on the next turn.
| Field | Type | Required | Summary |
|---|---|---|---|
:content # | [TextContent] | yes | Tool output blocks returned to the provider on the next turn. |
:details # | any | Opaque presenter payload (UI-only). | |
:is-error? # | boolean | yes | True when the tool result should be treated as an error observation. |
:role # | :tool-result | yes | Message role discriminator for tool execution results. |
:timestamp # | number | yes | Milliseconds since epoch when the tool result was recorded. |
:tool-call-id # | string | yes | Matches the originating ToolCall.id. |
:tool-name # | string | yes | Tool name that produced the result, copied from the originating call. |
Usage #
Token usage counters returned by the provider (best-effort — providers fill what they can).
| Field | Type | Required | Summary |
|---|---|---|---|
:cache-read # | number | Provider cache-read tokens credited for the response. | |
:cache-write # | number | Provider cache-write tokens billed or recorded for the response. | |
:input # | number | Input or prompt tokens counted for the response. | |
:output # | number | Generated output tokens counted for the response. | |
:total-tokens # | number | Provider-reported total tokens, or the best available aggregate. |
UserMessage #
Single user turn. Content is either a plain string or an array of TextContent blocks.
| Field | Type | Required | Summary |
|---|---|---|---|
:content # | string|[TextContent] | yes | Visible user input as plain text or canonical text content blocks. |
:role # | :user | yes | Message role discriminator for user-authored turns. |
:timestamp # | number | yes | Milliseconds since epoch. |
register-kinds #
Extension API register kinds.
auth-backend #
Auth credential backend. Resolves an api-key or rotates an OAuth token for one or more providers.
| Field | Type | Required | Summary |
|---|---|---|---|
:api-key # | () -> string|nil | yes | Return the current bearer/API key, refreshing or loading secrets as needed. |
:login! # | (opts) -> any | Optional. Drives fen --login <name>. | |
:logout! # | () -> any | Optional. Drives fen --logout <name>. | |
:name # | keyword|string | yes | Auth backend name selected by provider configuration or CLI login/logout flags. |
command #
Slash command contribution. Looked up by name when the user submits /<name> <args> from a presenter.
| Field | Type | Required | Summary |
|---|---|---|---|
:description # | string | Human-readable command help shown in command listings and docs. | |
:handler # | (args caller-state) -> any | yes | Callback invoked with raw command arguments and the caller's runtime state. |
:idle-only? # | boolean | Refuse the command while the agent is busy. | |
:name # | keyword|string | yes | Command name without the leading slash. |
:order # | number | Sort hint for /help. |
control #
Keyboard/UI control surface for presenters that support typed input bindings.
| Field | Type | Required | Summary |
|---|---|---|---|
:description # | string | Human-readable explanation of the control's UI effect. | |
:handler # | (ctx) -> any | yes | Callback invoked by the presenter when the control is activated. |
:name # | keyword|string | yes | Stable control name exposed to presenter help and docs. |
hook #
Lifecycle hook (currently before-tool). Inspects a tool call before it executes.
| Field | Type | Required | Summary |
|---|---|---|---|
:before-tool # | (tool-name args ctx) -> any | yes | Return {:block true :reason string} to veto. |
introspect #
Read-only extension state snapshot provider. Collected on demand for agent_state, /extensions, and runtime diagnostics.
| Field | Type | Required | Summary |
|---|---|---|---|
:description # | string | Human-readable description shown by diagnostics and docs. | |
:name # | keyword|string | yes | Owner-scoped snapshot name. Multiple extensions may reuse the same name. |
:snapshot # | (ctx) -> table | yes | Cheap, side-effect-free thunk returning JSON-friendly data. It is pcall-isolated and should not expose secrets. |
panel #
Non-modal side panel contribution rendered by presenters that support panels.
| Field | Type | Required | Summary |
|---|---|---|---|
:enabled? # | (ctx) -> boolean | Optional predicate that hides the panel without unregistering it. | |
:name # | keyword|string | yes | Stable panel name used for toggles, docs, and diagnostics. |
:render # | (ctx) -> any | yes | Callback returning rows or presenter-specific content for the panel body. |
:title # | string | Optional display title when the presenter renders panel chrome. |
presenter #
UI driver. Owns the input/output loop. Exactly one is active per run; the loader picks based on flags and manifest hints.
| Field | Type | Required | Summary |
|---|---|---|---|
:init # | (ctx) -> nil | Optional lifecycle callback run before the presenter loop starts. | |
:name # | keyword|string | yes | Presenter name selected by CLI flags or extension activation rules. |
:run # | (ctx) -> nil | yes | Main input/output loop for the selected presenter. |
:shutdown # | (ctx) -> nil | Optional lifecycle callback used to release terminal, socket, or other UI resources. |
provider #
LLM provider contribution. See the :provider-interface contract for the required record.
| Field | Type | Required | Summary |
|---|---|---|---|
:api # | keyword | yes | Protocol family (:openai-completions, :anthropic-messages, ...). Many providers may share an :api. |
:build-body # | (model ctx options) -> table | yes | Build the provider request body from a model id, AgentContext, and call options. |
:complete # | (model ctx options ?on-event ?yield-fn) -> AssistantMessage | yes | High-level provider entry point that runs one model turn and returns a canonical assistant message. |
:convert-messages # | ([Message]) -> [WireMessage] | yes | Translate canonical conversation messages into this provider's wire message format. |
:convert-tools # | ([Tool]) -> [WireTool] | yes | Translate canonical tool specs into this provider's wire tool schema. |
:map-stop-reason # | (string) -> StopReason | yes | Normalize provider stop reasons into fen's canonical StopReason enum. |
:name # | keyword|string | yes | Provider name selected by settings or CLI options. |
:parse-response # | (WireResponse) -> AssistantMessage | yes | Convert a non-streaming provider response payload into an AssistantMessage. |
session-backend #
Persistence backend for canonical JSONL-style sessions. The --session flag selects one and fen.core.extensions.register.session_backend.set-active! activates it.
| Field | Type | Required | Summary |
|---|---|---|---|
:append # | (session message) -> nil | yes | Persist one canonical Message to the active session. |
:close # | (session) -> nil | yes | Flush and release backend resources for an open session. |
:find # | (opts) -> [SessionInfo] | yes | Search sessions using backend-specific filters. |
:latest # | (opts) -> SessionInfo|nil | yes | Return the newest matching session, if any. |
:list # | (opts) -> [SessionInfo] | yes | List sessions visible to this backend in a stable display order. |
:load # | (path opts) -> [Message] | yes | Read canonical messages from a stored session path. |
:name # | keyword|string | yes | Session backend name selected by CLI flags or extension configuration. |
:open # | (opts) -> session | yes | Create or open the active session for a new run. |
:open-existing # | (path opts) -> session | yes | Open an existing session file or directory for appending. |
status #
Status-line contributor — produces a short string for the presenter's status row.
| Field | Type | Required | Summary |
|---|---|---|---|
:name # | keyword|string | yes | Stable status item name used for sorting, diagnostics, and docs. |
:order # | number | Sort hint within the status side; lower values render earlier. | |
:render # | (ctx) -> string|nil | yes | Callback returning the current status text, or nil/empty text to hide it. |
tool #
Agent tool contribution. Merged into the per-step AgentContext.tools and dispatched by name when the assistant emits a ToolCall.
| Field | Type | Required | Summary |
|---|---|---|---|
:description # | string | yes | Provider-facing guidance explaining when the model should call this tool. |
:execute # | (args ?yield-fn) -> AgentToolResult | yes | Runtime callback that executes decoded arguments and returns canonical tool content. |
:label # | string | Optional short UI label shown by presenters while the tool runs. | |
:name # | string | yes | Unique tool name exposed to providers and matched against ToolCall.name. |
:parameters # | JSONSchema | yes | JSON object schema describing the tool arguments providers may emit. |
interfaces #
Provider/auth/session interface records.
auth-backend #
Required record shape for (api.register :auth-backend ...).
| Member | Kind | Summary |
|---|---|---|
:api-key # | method | :api-key is a required auth-backend interface method. |
:login! # | optional-method | :login! is an optional auth-backend interface method. |
:logout! # | optional-method | :logout! is an optional auth-backend interface method. |
provider #
Required record shape for (api.register :provider ...). See the :provider register-kind for field details.
| Member | Kind | Summary |
|---|---|---|
:complete # | method | :complete is a required provider interface method. |
:convert-messages # | method | :convert-messages is a required provider interface method. |
:convert-tools # | method | :convert-tools is a required provider interface method. |
:map-stop-reason # | method | :map-stop-reason is a required provider interface method. |
:parse-response # | method | :parse-response is a required provider interface method. |
:build-body # | method | :build-body is a required provider interface method. |
session-backend #
Required record shape for (api.register :session-backend ...).
| Member | Kind | Summary |
|---|---|---|
:open # | method | :open is a required session-backend interface method. |
:open-existing # | method | :open-existing is a required session-backend interface method. |
:append # | method | :append is a required session-backend interface method. |
:close # | method | :close is a required session-backend interface method. |
:load # | method | :load is a required session-backend interface method. |
:find # | method | :find is a required session-backend interface method. |
:list # | method | :list is a required session-backend interface method. |
:latest # | method | :latest is a required session-backend interface method. |