import type { ClientToolDescriptor, HostToolEffect, HostToolExecutionResult, RemoteHostToolCall, SpotlightCommandCatalog, SpotlightHostToolsManifest, SpotlightSkill } from "@inupedia/spotlight-protocol"; import type { SpotlightHttp } from "./http.js"; export type SpotlightHostToolHandlerContext = { input: Record; call: RemoteHostToolCall; hostEffect?: HostToolEffect; }; export type SpotlightHostTool = { name: string; displayName?: string; description?: string; handler: (ctx: SpotlightHostToolHandlerContext) => Promise; }; export type SessionHostToolHandler = (call: RemoteHostToolCall, ctx: SpotlightHostToolHandlerContext) => Promise; export declare function buildClientToolsManifest(tools: SpotlightHostTool[]): ClientToolDescriptor[]; export declare function resolveHostTools(tools: SpotlightHostTool[]): Map; export declare function executeHostTool(toolMap: Map, call: RemoteHostToolCall, options: { allowedHostNames: Set; hostEffect?: HostToolEffect; sessionToolHandler?: SessionHostToolHandler; }): Promise; export declare function fetchHostToolsManifest(http: SpotlightHttp, signal?: AbortSignal): Promise; export declare function resetHostToolsManifestCacheForTests(): void; export declare function fetchDefaultCommandCatalog(http: SpotlightHttp, signal?: AbortSignal): Promise; export declare function mergeCommandCatalogs(base: SpotlightCommandCatalog, overlay: SpotlightCommandCatalog | undefined | null): SpotlightCommandCatalog; /** * Serialize browser-bundled Skills for the remote LangGraph runtime. * * Local source paths are intentionally removed, while the instruction body is * retained: a consumer-owned Skill only exists in the browser bundle and the * shared server cannot read that consumer's filesystem. */ export declare function serializeSkillsForRemote(skills: SpotlightSkill[]): SpotlightSkill[]; export declare function createSpotlightHostAdapter(options: { tools: SpotlightHostTool[] | (() => SpotlightHostTool[]); }): { getClientToolDescriptors(): ClientToolDescriptor[]; getToolMap(): Map; executeHostTool(call: RemoteHostToolCall, execOptions: { allowedHostNames: Set; hostEffect?: HostToolEffect; sessionToolHandler?: SessionHostToolHandler; }): Promise; }; export type SpotlightHostAdapter = ReturnType; //# sourceMappingURL=host.d.ts.map