@sqlrooms/ai-core / AiSliceOptions
Interface: AiSliceOptions<TTools>
Configuration options for creating an AI slice.
TTools is inferred from the tools value and constrains toolRenderers:
- Keys must be present in
tools - Each renderer's
outputprop is typed to that tool's return type
Example
createAiSlice({
tools: {query: createQueryTool(store), chart: createVegaChartTool()},
toolRenderers: {
query: QueryToolResult, // ToolRenderer<QueryToolOutput>
chart: VegaChartToolResult, // ToolRenderer<VegaChartToolOutput>
TYPO: SomeRenderer, // compile error — not a key of tools
},
})Type Parameters
| Type Parameter | Default type |
|---|---|
TTools extends ToolSet | ToolSet |
Properties
config?
optionalconfig:Partial<{sessions:object[];currentSessionId?:string;openSessionTabs?:string[]; }>
initialPrompt?
optionalinitialPrompt:string
tools
tools:
TTools
toolRenderers?
optionaltoolRenderers:ToolRenderers<TTools>
getInstructions()
getInstructions: (
args?) =>string
Parameters
| Parameter | Type |
|---|---|
args? | { session?: { id: string; name: string; modelProvider: string; model: string; customModelName?: string; baseUrl?: string; analysisResults: object[]; createdAt?: Date; uiMessages: object[]; messagesRevision: number; prompt: string; isRunning: boolean; lastOpenedAt?: number; runContext?: {[key: string]: unknown; items: object[]; capturedAt: number; }; agentProgress?: Record<string, unknown[]>; }; runContext?: {[key: string]: unknown; items: object[]; capturedAt: number; }; } |
args.session? | { id: string; name: string; modelProvider: string; model: string; customModelName?: string; baseUrl?: string; analysisResults: object[]; createdAt?: Date; uiMessages: object[]; messagesRevision: number; prompt: string; isRunning: boolean; lastOpenedAt?: number; runContext?: {[key: string]: unknown; items: object[]; capturedAt: number; }; agentProgress?: Record<string, unknown[]>; } |
args.session.id? | string |
args.session.name? | string |
args.session.modelProvider? | string |
args.session.model? | string |
args.session.customModelName? | string |
args.session.baseUrl? | string |
args.session.analysisResults? | object[] |
args.session.createdAt? | Date |
args.session.uiMessages? | object[] |
args.session.messagesRevision? | number |
args.session.prompt? | string |
args.session.isRunning? | boolean |
args.session.lastOpenedAt? | number |
args.session.runContext? | {[key: string]: unknown; items: object[]; capturedAt: number; } |
args.session.runContext.items? | object[] |
args.session.runContext.capturedAt? | number |
args.session.agentProgress? | Record<string, unknown[]> |
args.runContext? | {[key: string]: unknown; items: object[]; capturedAt: number; } |
args.runContext.items? | object[] |
args.runContext.capturedAt? | number |
Returns
string
getRunContext()?
optionalgetRunContext: () => {[key:string]:unknown;items:object[];capturedAt:number; } |undefined
Returns
{[key: string]: unknown; items: object[]; capturedAt: number; } | undefined
formatRunContextInstructions()?
optionalformatRunContextInstructions: (args) =>string
Parameters
| Parameter | Type |
|---|---|
args | { runContext: {[key: string]: unknown; items: object[]; capturedAt: number; }; session?: { id: string; name: string; modelProvider: string; model: string; customModelName?: string; baseUrl?: string; analysisResults: object[]; createdAt?: Date; uiMessages: object[]; messagesRevision: number; prompt: string; isRunning: boolean; lastOpenedAt?: number; runContext?: {[key: string]: unknown; items: object[]; capturedAt: number; }; agentProgress?: Record<string, unknown[]>; }; } |
args.runContext | {[key: string]: unknown; items: object[]; capturedAt: number; } |
args.runContext.items | object[] |
args.runContext.capturedAt | number |
args.session? | { id: string; name: string; modelProvider: string; model: string; customModelName?: string; baseUrl?: string; analysisResults: object[]; createdAt?: Date; uiMessages: object[]; messagesRevision: number; prompt: string; isRunning: boolean; lastOpenedAt?: number; runContext?: {[key: string]: unknown; items: object[]; capturedAt: number; }; agentProgress?: Record<string, unknown[]>; } |
args.session.id | string |
args.session.name | string |
args.session.modelProvider | string |
args.session.model | string |
args.session.customModelName? | string |
args.session.baseUrl? | string |
args.session.analysisResults | object[] |
args.session.createdAt? | Date |
args.session.uiMessages | object[] |
args.session.messagesRevision | number |
args.session.prompt | string |
args.session.isRunning | boolean |
args.session.lastOpenedAt? | number |
args.session.runContext? | {[key: string]: unknown; items: object[]; capturedAt: number; } |
args.session.runContext.items | object[] |
args.session.runContext.capturedAt | number |
args.session.agentProgress? | Record<string, unknown[]> |
Returns
string
defaultProvider?
optionaldefaultProvider:string
defaultModel?
optionaldefaultModel:string
getCustomModel()?
optionalgetCustomModel: () =>LanguageModel|undefined
Provide a pre-configured model client for a provider (e.g., Azure).
Returns
LanguageModel | undefined
getProviderOptions?
optionalgetProviderOptions:GetProviderOptions
maxSteps?
optionalmaxSteps:number
getApiKey()?
optionalgetApiKey: (modelProvider) =>string
Parameters
| Parameter | Type |
|---|---|
modelProvider | string |
Returns
string
getBaseUrl()?
optionalgetBaseUrl: () =>string
Returns
string
chatEndPoint?
optionalchatEndPoint:string
Optional remote endpoint to use for chat; if empty, local transport is used
chatHeaders?
optionalchatHeaders:Record<string,string>
Optional headers to send with remote endpoint
