/** * Category of one external source an answered agent message touched. * * - `integration` is a third-party service reached through an integration, for example Gmail. * - `website` is a concrete web address the agent fetched or browsed. * - `search` is a lookup the agent ran against a web search engine. * * @private internal type of the agent-message runtime */ export type AgentMessageTouchedExternalSourceKind = 'integration' | 'website' | 'search'; /** * One source outside the agent itself which answering a single message viewed or edited. * * Everything the agent does inside its own folder stays internal and is never described here; * this records only the reach beyond it, so a chat can tell which outside services and websites * one answer really involved. * * Note: [🚉] This is fully serializable as JSON * * @private internal type of the agent-message runtime */ export type AgentMessageTouchedExternalSource = { /** * Category of the touched source. */ readonly kind: AgentMessageTouchedExternalSourceKind; /** * User-facing name of the source, for example `Gmail`, `example.com` or the search query. */ readonly name: string; /** * Address of the source, when the touch names a concrete one. */ readonly url?: string; }; /** * Validates one already-parsed JSON value as a touched external source. * * @param value - Raw serialized source. * @returns The typed source, or `null` when the value does not match the expected shape, so * consumers can silently skip foreign or malformed entries. * * @private internal utility of the agent-message runtime */ export declare function normalizeAgentMessageTouchedExternalSource(value: unknown): AgentMessageTouchedExternalSource | null;