Overview
PluginContext is what plugin code sees during request build. It’s the input to getTools, getSubAgents, getMiddlewares, getRequestTools’s sibling getTools, and getNestModules.
RuntimeContext instead — available in request-time hooks (getRequestTools, getRequestSubAgents) and in every tool handler / sub-agent handler / middleware hook.
Fields
config
config
- Type:
TConfig(defaults toMergedConfig = Record<string, unknown>)
configSchema. Already validated by the time you receive it — parse it through your plugin’s own schema for typed access.identity
identity
- Type:
OracleIdentity
name, org, description, and prompt come from the config argument to createOracleApp. entityDid is sourced from the ORACLE_ENTITY_DID env var. Read-only.availablePlugins
availablePlugins
- Type:
ReadonlySet<string>
PluginContext and RuntimeContext instances during the lifetime of the app.logger
logger
- Type:
Logger
Logger interface:debug, verbose, and child are optional. The runtime ships NestJS’s Logger as the default; you can override via createOracleApp({ logger }).Lifetime
A newPluginContext is built per request build. The runtime caches boot-time hook outputs (getTools, getSubAgents, getMiddlewares) — they fire once at boot for warming and once per request build for retrieval. Per-request-only data lives in RuntimeContext.