Search documentation

Search documentation

Core SDK@pillar-ai/sdk

Events

Subscribe to SDK lifecycle and interaction events.

typescript
import Pillar from '@pillar-ai/sdk'

Methods

Pillar.on()

Subscribe to SDK events

typescript
on(event: K, callback: (data: PillarEvents[K]) => void): () => void

Parameters

event
requiredK
No description.
callback
required(data: PillarEvents[K]) => void
No description.

Returns

() => void

Types

PillarEvents

interface
typescript
interface PillarEvents {
/** SDK is initialized and ready. */
ready: void;
/** SDK encountered an error. */
error: Error;
/** Panel was opened. */
"panel:open": void;
/** Panel was closed. */
"panel:close": void;
/** Panel navigated to a different view. */
"panel:navigate": { view: string; params?: Record<string, string> };
/** User viewed an article. */
"article:view": { articleSlug: string };
/** User performed a search. */
"search:query": { query: string };
/** User sent a chat message. */
"chat:message": { message: string };
/** Text selection popover was shown. */
"textSelection:shown": { text: string };
/** User clicked the text selection popover. */
"textSelection:click": { text: string };
/** Context was updated. */
"context:change": { context: Context };
/** User profile was updated. */
"profile:change": { profile: UserProfile };
/** User action was reported. */
"action:report": { action: string; metadata?: Record<string, unknown> };
/** User was identified. */
"user:identified": {
userId: string;
profile?: {
name?: string;
email?: string;
metadata?: Record<string, unknown>;
};
};
/** User logged out. */
"user:logout": Record<string, never>;
/** Query tool returned a result to the agent. */
"tool:result": { toolName: string; result: unknown; toolCallId?: string };
/** @deprecated Use tool:result instead */
"action:result": { actionName: string; result: unknown; toolCallId?: string };
/** AI-suggested task is being executed. */
"task:execute": TaskExecutePayload;
/** Task completed. */
"task:complete": {
id?: string;
name: string;
success: boolean;
data?: Record<string, unknown>;
};
/** Multi-step workflow started. */
"workflow:start": Workflow;
/** Workflow step became active. */
"workflow:step:active": { workflow: Workflow; step: WorkflowStep };
/** Workflow step completed. */
"workflow:step:complete": {
workflow: Workflow;
step: WorkflowStep;
success: boolean;
};
/** Workflow step was skipped. */
"workflow:step:skip": { workflow: Workflow; step: WorkflowStep };
/** Workflow completed all steps. */
"workflow:complete": Workflow;
/** Workflow was cancelled. */
"workflow:cancel": Workflow;
/** Theme was changed. */
"theme:change": { theme: ResolvedThemeConfig };
/** Text selection feature was toggled. */
"textSelection:change": { enabled: boolean };
/** DOM was scanned. */
"dom:scanned": CompactScanResult;
/** DOM scanning feature was toggled. */
"domScanning:change": { enabled: boolean };
/** Page-aware suggestions were updated. */
"suggestions:updated": {
suggestions: Array<{ id: string; text: string }>;
route: string;
};
/** Sidebar tab was clicked. Use to integrate external support systems. */
"sidebar:click": { tabId: string; label: string };
/** A tool was registered or unregistered. */
"tools:change": { action: "add" | "remove"; name: string };
/** @deprecated Use 'sidebar:click' instead. Will be removed in next major version. */
"support:request": { tabId: string };
}

Properties

ready
requiredvoid
SDK is initialized and ready.
error
requiredError
SDK encountered an error.
"panel:open"
requiredvoid
Panel was opened.
"panel:close"
requiredvoid
Panel was closed.
"panel:navigate"
required{ view: string; params?: Record<string, string> }
Panel navigated to a different view.
"article:view"
required{ articleSlug: string }
User viewed an article.
"search:query"
required{ query: string }
User performed a search.
"chat:message"
required{ message: string }
User sent a chat message.
"textSelection:shown"
required{ text: string }
Text selection popover was shown.
"textSelection:click"
required{ text: string }
User clicked the text selection popover.
"context:change"
required{ context: Context }
Context was updated.
"profile:change"
required{ profile: UserProfile }
User profile was updated.
"action:report"
required{ action: string; metadata?: Record<string, unknown> }
User action was reported.
"user:identified"
required{ userId: string; profile?: { name?: string; email?: string; metadata?: Record<string, unknown>; }; }
User was identified.
"user:logout"
requiredRecord<string, never>
User logged out.
"tool:result"
required{ toolName: string; result: unknown; toolCallId?: string }
Query tool returned a result to the agent.
"task:execute"
requiredTaskExecutePayload
AI-suggested task is being executed.
"task:complete"
required{ id?: string; name: string; success: boolean; data?: Record<string, unknown>; }
Task completed.
"workflow:start"
requiredWorkflow
Multi-step workflow started.
"workflow:step:active"
required{ workflow: Workflow; step: WorkflowStep }
Workflow step became active.
"workflow:step:complete"
required{ workflow: Workflow; step: WorkflowStep; success: boolean; }
Workflow step completed.
"workflow:step:skip"
required{ workflow: Workflow; step: WorkflowStep }
Workflow step was skipped.
"workflow:complete"
requiredWorkflow
Workflow completed all steps.
"workflow:cancel"
requiredWorkflow
Workflow was cancelled.
"theme:change"
required{ theme: ResolvedThemeConfig }
Theme was changed.
"textSelection:change"
required{ enabled: boolean }
Text selection feature was toggled.
"dom:scanned"
requiredCompactScanResult
DOM was scanned.
"domScanning:change"
required{ enabled: boolean }
DOM scanning feature was toggled.
"suggestions:updated"
required{ suggestions: Array<{ id: string; text: string }>; route: string; }
Page-aware suggestions were updated.
"sidebar:click"
required{ tabId: string; label: string }
Sidebar tab was clicked. Use to integrate external support systems.
"tools:change"
required{ action: "add" | "remove"; name: string }
A tool was registered or unregistered.

Deprecated

"action:result"
required{ actionName: string; result: unknown; toolCallId?: string }
Deprecated.
"support:request"
required{ tabId: string }
Deprecated.