Meta-tools
The model-callable tool surface exposed by every session.
These are the tools your agent actually calls — through session.tools() or over MCP. They are the
same across every provider; provider-specific operations are reached through them.
These six definitions are the complete router surface. API keys, OAuth, Studio, SDK adapters, enabled Memory, Knowledge packs, and provider count do not change it.
Router surface — exactly six tools
| Tool | Purpose |
|---|---|
STACKLINK_SEARCH_TOOLS | Run up to four atomic task searches and return at most six candidates per query. |
STACKLINK_GET_TOOL_CONTRACTS | Load up to six exact signed contracts returned by search. |
STACKLINK_MANAGE_CONNECTIONS | List or authorize accounts for one exact provider. |
STACKLINK_EXECUTE_TOOLS | Execute one or more signed contracts with bounded concurrency. |
STACKLINK_REMOTE_WORKBENCH | Use deferred workbench operations for all runtimes, workspaces, files, artifacts, and reusable runs. |
STACKLINK_GET_OPERATION | Inspect or cancel an exact connection, approval, tool, batch, or Workbench operation. |
Search returns compact descriptors and signed contractRef values, not raw provider schemas. Only
those references can load contracts or execute tools.
Waiting and resumption
The runtime owns waiting_for_connection and waiting_for_approval. It persists the model message
history, stops the model loop, and resumes exactly once from a terminal platform event. The model
does not poll OAuth or approval state.
Memory and internal capabilities
Memory recall and capture are automatic session middleware and add zero initial tools. Platform, Knowledge, GST, and explicit Memory operations are never appended as raw definitions. Host applications use their typed APIs; model-facing internal capabilities must pass through the same bounded search, signed contract, scope, and execution rules as provider tools.
Specialist surface
A specialist session can expose one to ten exact direct provider tools:
modelSurface: {
mode: 'specialist',
specialist: {
toolKeys: ['gmail.messages.search'],
includeConnectionManagement: true,
},
}Connection management counts toward the same maximum of ten. Whole-provider preload and hybrid surfaces are rejected.