UNPKG

@tanstack/ai

Version:

Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.

61 lines (60 loc) • 2.98 kB
import { EventType } from "../types.js"; //#region src/utilities/spec-event-keys.ts var SHARED = /* @__PURE__ */ new Set([ "type", "timestamp", "rawEvent", "metadata" ]); function keys(...fields) { return /* @__PURE__ */ new Set([...SHARED, ...fields]); } var SPEC_KEYS = /* @__PURE__ */ new Map([ [EventType.TEXT_MESSAGE_START, keys("messageId", "role", "name")], [EventType.TEXT_MESSAGE_CONTENT, keys("messageId", "delta")], [EventType.TEXT_MESSAGE_END, keys("messageId")], [EventType.TEXT_MESSAGE_CHUNK, keys("messageId", "role", "delta", "name")], [EventType.TOOL_CALL_START, keys("toolCallId", "toolCallName", "parentMessageId")], [EventType.TOOL_CALL_ARGS, keys("toolCallId", "delta")], [EventType.TOOL_CALL_END, keys("toolCallId")], [EventType.TOOL_CALL_CHUNK, keys("toolCallId", "toolCallName", "parentMessageId", "delta")], [EventType.TOOL_CALL_RESULT, keys("messageId", "toolCallId", "content", "role")], [EventType.STATE_SNAPSHOT, keys("snapshot")], [EventType.STATE_DELTA, keys("delta")], [EventType.MESSAGES_SNAPSHOT, keys("messages")], [EventType.ACTIVITY_SNAPSHOT, keys("messageId", "activityType", "content", "replace")], [EventType.ACTIVITY_DELTA, keys("messageId", "activityType", "patch")], [EventType.RAW, keys("event", "source")], [EventType.CUSTOM, keys("name", "value")], [EventType.RUN_STARTED, keys("threadId", "runId", "protocolVersion", "parentRunId", "input")], [EventType.RUN_FINISHED, keys("threadId", "runId", "result", "outcome", "usage")], [EventType.RUN_ERROR, keys("message", "code", "usage")], [EventType.STEP_STARTED, keys("stepName")], [EventType.STEP_FINISHED, keys("stepName")], [EventType.REASONING_START, keys("messageId")], [EventType.REASONING_MESSAGE_START, keys("messageId", "role")], [EventType.REASONING_MESSAGE_CONTENT, keys("messageId", "delta")], [EventType.REASONING_MESSAGE_END, keys("messageId")], [EventType.REASONING_MESSAGE_CHUNK, keys("messageId", "delta")], [EventType.REASONING_END, keys("messageId")], [EventType.REASONING_ENCRYPTED_VALUE, keys("subtype", "entityId", "encryptedValue")], [EventType.SUBAGENT_STARTED, keys("subagentRunId", "name", "description", "parentSubagentRunId", "parentToolCallId", "parentMessageId")], [EventType.SUBAGENT_FINISHED, keys("subagentRunId", "result", "outcome")], [EventType.SUBAGENT_ERROR, keys("subagentRunId", "message", "code")] ]); var RUN_SCOPED = /* @__PURE__ */ new Set([ EventType.RUN_STARTED, EventType.RUN_FINISHED, EventType.RUN_ERROR, EventType.MESSAGES_SNAPSHOT ]); var ATTRIBUTABLE_KEYS = new Map([...SPEC_KEYS].filter(([type]) => !RUN_SCOPED.has(type)).map(([type, fields]) => [type, /* @__PURE__ */ new Set([...fields, "subagentRunId"])])); function specKeysFor(type) { return ATTRIBUTABLE_KEYS.get(type) ?? SPEC_KEYS.get(type) ?? SHARED; } function isSpecTopLevelKey(type, key) { return specKeysFor(type).has(key); } //#endregion export { isSpecTopLevelKey, specKeysFor }; //# sourceMappingURL=spec-event-keys.js.map