Skip to main content
Version: 0.22.0

Interface: ExtensionContribution

Defined in: core/extensions.ts:55

What an extension brings to a session. Every part is optional.

Properties​

PropertyTypeDescriptionDefined in
api?Record<string, unknown>What the session hands back to the host (e.g. the knowledge base's store), by name.core/extensions.ts:86
fileTools?string[]Built-in file tools it needs the session to have (Read, Glob, Grep…).core/extensions.ts:61
helpLines?string[]What it says about itself in this session (its commands, its folder), for the agent to tell the person (SessionFacts).core/extensions.ts:84
hooks?Partial<Record<HookEvent, HookCallbackMatcher[]>>Its hooks, by event, run after the kit's own: an internal extension's only (the memory hears the person's messages with UserPromptSubmit).core/extensions.ts:82
mcpServers?Record<string, McpServerConfig>MCP servers, by name (mcp__<name>__<tool>).core/extensions.ts:57
promptSection?stringA section of the system prompt, after the agent's own and the list of extensions.core/extensions.ts:59
readOnlyDirs?string[]Folders the file tools may read and search, never write (a sources folder).core/extensions.ts:63
readOnlyHintServers?string[]Its MCP servers whose tools that only read plan mode learns from the servers themselves (readOnlyHint), asked while the session runs: an installed extension whose manifest lists no readOnlyTools. A list in the manifest wins: its servers aren't here.core/extensions.ts:73
readOnlyTools?string[]Its MCP tools that only read: plan mode lets them through.core/extensions.ts:67
selfAskingTools?string[]Its MCP tools that ask the person themselves: interactive mode's step gate doesn't ask first.core/extensions.ts:75
toolLabels?Readonly<Record<string, ToolLabel>>How the chat shows its tools, by full name, in the kit's language: its line and how it counts in a folded group.core/extensions.ts:77
toolOnlyDirs?object[]Folders reached only through its own tools, never the file tools, and what to use instead.core/extensions.ts:65