@xpert-ai/chatkit-types 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1033,6 +1033,12 @@ export declare type RadioGroup = {
1033
1033
 
1034
1034
  declare type RadiusValue = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | 'full' | '100%' | 'none';
1035
1035
 
1036
+ export declare const REQUEST_USER_INPUT_RESULT_PURPOSE_IMPLEMENTATION_CONFIRMATION = "implementation_confirmation";
1037
+
1038
+ export declare const REQUEST_USER_INPUT_RESULT_PURPOSE_PLAN_CLARIFICATION = "plan_clarification";
1039
+
1040
+ export declare const REQUEST_USER_INPUT_RESULT_TYPE = "request_user_input_result";
1041
+
1036
1042
  export declare const REQUEST_USER_INPUT_TOOL_NAME = "request_user_input";
1037
1043
 
1038
1044
  export declare interface RequestUserInputAnswer {
@@ -1063,9 +1069,15 @@ export declare interface RequestUserInputQuestion {
1063
1069
  }
1064
1070
 
1065
1071
  export declare interface RequestUserInputResult {
1072
+ type: RequestUserInputResultType;
1073
+ purpose: RequestUserInputResultPurpose;
1066
1074
  answers: RequestUserInputAnswer[];
1067
1075
  }
1068
1076
 
1077
+ export declare type RequestUserInputResultPurpose = typeof REQUEST_USER_INPUT_RESULT_PURPOSE_PLAN_CLARIFICATION | typeof REQUEST_USER_INPUT_RESULT_PURPOSE_IMPLEMENTATION_CONFIRMATION;
1078
+
1079
+ export declare type RequestUserInputResultType = typeof REQUEST_USER_INPUT_RESULT_TYPE;
1080
+
1069
1081
  export declare type RequestUserInputToolArgs = RequestUserInputParams;
1070
1082
 
1071
1083
  export declare type RequestUserInputToolCall = ToolCall & {
@@ -1083,6 +1095,17 @@ export declare type Row = {
1083
1095
  id?: string;
1084
1096
  } & BoxBaseProps;
1085
1097
 
1098
+ export declare type RuntimeCapabilitiesSelection = {
1099
+ mode: 'allowlist';
1100
+ skills: {
1101
+ workspaceId?: string;
1102
+ ids: string[];
1103
+ };
1104
+ plugins: {
1105
+ nodeKeys: string[];
1106
+ };
1107
+ };
1108
+
1086
1109
  export declare type Select = {
1087
1110
  type: 'Select';
1088
1111
  key?: string;
@@ -1115,6 +1138,7 @@ export declare type SendUserMessageParams = {
1115
1138
  toolChoice?: ToolChoice;
1116
1139
  model?: string;
1117
1140
  planMode?: boolean;
1141
+ runtimeCapabilities?: RuntimeCapabilitiesSelection;
1118
1142
  trigger?: WorkflowTriggerParams;
1119
1143
  followUpMode?: 'default' | FollowUpBehavior;
1120
1144
  };
@@ -1209,6 +1233,7 @@ export declare type TChatRequestHuman = {
1209
1233
  references?: ChatKitReference[];
1210
1234
  referenceComposition?: ChatKitReferenceCompositionMode;
1211
1235
  planMode?: boolean;
1236
+ runtimeCapabilities?: RuntimeCapabilitiesSelection;
1212
1237
  [key: string]: unknown;
1213
1238
  };
1214
1239
 
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import "@langchain/core/messages/tool";
2
2
  import "@a2ui/lit/0.8";
3
3
  const REQUEST_USER_INPUT_TOOL_NAME = "request_user_input";
4
+ const REQUEST_USER_INPUT_RESULT_TYPE = "request_user_input_result";
5
+ const REQUEST_USER_INPUT_RESULT_PURPOSE_PLAN_CLARIFICATION = "plan_clarification";
6
+ const REQUEST_USER_INPUT_RESULT_PURPOSE_IMPLEMENTATION_CONFIRMATION = "implementation_confirmation";
4
7
  function isRecord(value) {
5
8
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
6
9
  }
@@ -89,6 +92,9 @@ export {
89
92
  ChatMessageEventTypeEnum,
90
93
  ChatMessageStepCategory,
91
94
  ChatMessageTypeEnum,
95
+ REQUEST_USER_INPUT_RESULT_PURPOSE_IMPLEMENTATION_CONFIRMATION,
96
+ REQUEST_USER_INPUT_RESULT_PURPOSE_PLAN_CLARIFICATION,
97
+ REQUEST_USER_INPUT_RESULT_TYPE,
92
98
  REQUEST_USER_INPUT_TOOL_NAME,
93
99
  STATE_VARIABLE_HUMAN,
94
100
  isClientToolInterrupt,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/interrupt.ts","../src/message.ts"],"sourcesContent":["import { type ToolCall } from '@langchain/core/messages/tool';\n\nexport const REQUEST_USER_INPUT_TOOL_NAME = 'request_user_input';\nexport type RequestUserInputToolName = typeof REQUEST_USER_INPUT_TOOL_NAME;\n\nexport interface RequestUserInputOption {\n label: string;\n description: string;\n}\n\nexport interface RequestUserInputQuestion {\n id: string;\n header: string;\n question: string;\n options: RequestUserInputOption[];\n}\n\nexport interface RequestUserInputParams {\n questions: RequestUserInputQuestion[];\n}\n\nexport type RequestUserInputToolArgs = RequestUserInputParams;\n\nexport type RequestUserInputAnswerType = 'option' | 'other';\n\nexport interface RequestUserInputAnswer {\n id: string;\n question: string;\n value: string;\n type: RequestUserInputAnswerType;\n label?: string;\n description?: string;\n}\n\nexport interface RequestUserInputResult {\n answers: RequestUserInputAnswer[];\n}\n\nexport type RequestUserInputToolCall = ToolCall & {\n name: RequestUserInputToolName;\n args: RequestUserInputToolArgs;\n id: string;\n type?: 'tool_call';\n};\n\nexport interface ClientToolRequest {\n clientToolCalls: ToolCall[];\n}\n\nexport interface ToolCallRequest {\n toolCalls: ToolCall[];\n}\n\nexport type InterruptRequest = ToolCallRequest | ClientToolRequest;\n\nexport interface LangGraphInterrupt<TValue = unknown> {\n id: string;\n value: TValue;\n when?: string;\n resumable?: boolean;\n ns?: string[];\n}\n\nexport interface LangGraphInterruptTask<TValue = unknown> {\n id: string;\n name: string;\n path: Array<string | number>;\n interrupts: Array<LangGraphInterrupt<TValue>>;\n}\n\nexport interface LangGraphInterruptPayload<TValue = unknown> {\n tasks: Array<LangGraphInterruptTask<TValue>>;\n}\n\nexport type ClientToolInterrupt<\n TRequest extends ClientToolRequest = ClientToolRequest,\n> = LangGraphInterrupt<TRequest>;\n\nexport type ClientToolInterruptTask<\n TRequest extends ClientToolRequest = ClientToolRequest,\n> = LangGraphInterruptTask<TRequest>;\n\nexport type ClientToolInterruptPayload<\n TRequest extends ClientToolRequest = ClientToolRequest,\n> = LangGraphInterruptPayload<TRequest>;\n\nexport type ToolCallInterrupt<\n TRequest extends ToolCallRequest = ToolCallRequest,\n> = LangGraphInterrupt<TRequest>;\n\nexport type ToolCallInterruptTask<\n TRequest extends ToolCallRequest = ToolCallRequest,\n> = LangGraphInterruptTask<TRequest>;\n\nexport type ToolCallInterruptPayload<\n TRequest extends ToolCallRequest = ToolCallRequest,\n> = LangGraphInterruptPayload<TRequest>;\n\n/**\n * When an interrupt occurs during task execution, the system generates an InterruptPayload.\n *\n * Ordinary tool-call interrupts use `toolCalls`; ChatKit client-tool middleware\n * uses `clientToolCalls` so the UI can route those calls to the client.\n```json\n{\n \"type\": \"event\",\n \"event\": \"on_interrupt\",\n \"data\": {\n \"tasks\": [\n {\n \"id\": \"9c4d2ac5-8808-5b6f-855c-4d48aa3d77a7\",\n \"name\": \"Middleware_wPzR2bIXqE_after_model\",\n \"path\": [\"__pregel_pull\", \"Middleware_wPzR2bIXqE_after_model\"],\n \"interrupts\": [\n {\n \"id\": \"b42f7887d65e57ed11cf08b8927763db\",\n \"value\": {\n \"toolCalls\": [\n {\n \"name\": \"getUserStation\",\n \"args\": {\n \"input\": \"Query the site selected by the user\"\n },\n \"id\": \"call_00_swcaUjIaACXOHHaZyNmQB3Vm\",\n \"type\": \"tool_call\"\n }\n ]\n }\n }\n ]\n }\n ]\n }\n}\n```\n */\nexport interface InterruptPayload extends LangGraphInterruptPayload<InterruptRequest> {}\n\nexport interface ClientToolMessageInput {\n content: unknown;\n name?: string;\n tool_call_id?: string;\n status?: 'success' | 'error';\n artifact?: unknown;\n}\n\nexport interface ClientToolResponse {\n toolMessages: ClientToolMessageInput[];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nexport function isClientToolRequest(\n value: unknown,\n): value is ClientToolRequest {\n return isRecord(value) && Array.isArray(value.clientToolCalls);\n}\n\nexport function isToolCallRequest(value: unknown): value is ToolCallRequest {\n return isRecord(value) && Array.isArray(value.toolCalls);\n}\n\nexport function isInterruptRequest(value: unknown): value is InterruptRequest {\n return isToolCallRequest(value) || isClientToolRequest(value);\n}\n\nexport function isLangGraphInterrupt(\n value: unknown,\n): value is LangGraphInterrupt {\n return (\n isRecord(value) &&\n typeof value.id === 'string' &&\n Object.prototype.hasOwnProperty.call(value, 'value')\n );\n}\n\nexport function isLangGraphInterruptTask(\n value: unknown,\n): value is LangGraphInterruptTask {\n if (\n !isRecord(value) ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string' ||\n !Array.isArray(value.path) ||\n !Array.isArray(value.interrupts)\n ) {\n return false;\n }\n\n return (\n value.path.every(\n (item) => typeof item === 'string' || typeof item === 'number',\n ) && value.interrupts.every(isLangGraphInterrupt)\n );\n}\n\nexport function isLangGraphInterruptPayload(\n value: unknown,\n): value is LangGraphInterruptPayload {\n return (\n isRecord(value) &&\n Array.isArray(value.tasks) &&\n value.tasks.every(isLangGraphInterruptTask)\n );\n}\n\nexport function isClientToolInterrupt(\n value: unknown,\n): value is ClientToolInterrupt {\n return isLangGraphInterrupt(value) && isClientToolRequest(value.value);\n}\n\nexport function isClientToolInterruptTask(\n value: unknown,\n): value is ClientToolInterruptTask {\n return (\n isLangGraphInterruptTask(value) &&\n value.interrupts.every(isClientToolInterrupt)\n );\n}\n\nexport function isClientToolInterruptPayload(\n value: unknown,\n): value is ClientToolInterruptPayload {\n return (\n isLangGraphInterruptPayload(value) &&\n value.tasks.every(isClientToolInterruptTask)\n );\n}\n\nexport function isToolCallInterrupt(\n value: unknown,\n): value is ToolCallInterrupt {\n return isLangGraphInterrupt(value) && isToolCallRequest(value.value);\n}\n\nexport function isToolCallInterruptTask(\n value: unknown,\n): value is ToolCallInterruptTask {\n return (\n isLangGraphInterruptTask(value) &&\n value.interrupts.every(isToolCallInterrupt)\n );\n}\n\nexport function isToolCallInterruptPayload(\n value: unknown,\n): value is ToolCallInterruptPayload {\n return (\n isLangGraphInterruptPayload(value) &&\n value.tasks.every(isToolCallInterruptTask)\n );\n}\n","import type { ToolCall } from '@langchain/core/messages/tool';\nimport { Types } from '@a2ui/lit/0.8';\nimport type { FollowUpBehavior } from './options';\n\nexport enum ChatMessageTypeEnum {\n // LOG = 'log',\n MESSAGE = 'message',\n EVENT = 'event',\n}\n\n/**\n * https://js.langchain.com/docs/how_to/streaming/#event-reference\n */\nexport enum ChatMessageEventTypeEnum {\n ON_CONVERSATION_START = 'on_conversation_start',\n ON_CONVERSATION_END = 'on_conversation_end',\n ON_MESSAGE_START = 'on_message_start',\n ON_MESSAGE_END = 'on_message_end',\n ON_TOOL_START = 'on_tool_start',\n ON_TOOL_END = 'on_tool_end',\n ON_TOOL_ERROR = 'on_tool_error',\n /**\n * Step message in tool call\n */\n ON_TOOL_MESSAGE = 'on_tool_message',\n ON_AGENT_START = 'on_agent_start',\n ON_AGENT_END = 'on_agent_end',\n ON_RETRIEVER_START = 'on_retriever_start',\n ON_RETRIEVER_END = 'on_retriever_end',\n ON_RETRIEVER_ERROR = 'on_retriever_error',\n ON_INTERRUPT = 'on_interrupt',\n ON_ERROR = 'on_error',\n ON_CHAT_EVENT = 'on_chat_event',\n\n ON_CLIENT_EFFECT = 'on_client_effect',\n}\n\n/**\n * Encapsulate multi-agent message events\n */\nexport interface ChatEventEnvelope<T = unknown> {\n type: ChatMessageTypeEnum;\n event?: ChatMessageEventTypeEnum;\n tags: string[];\n data: T;\n}\n\n/**\n * Category of step message: determines the display components of computer use\n */\nexport enum ChatMessageStepCategory {\n /**\n * List of items: urls, files, etc.\n */\n List = 'list',\n /**\n * Websearch results\n */\n WebSearch = 'web_search',\n /**\n * Files list\n */\n Files = 'files',\n /**\n * View a file\n */\n File = 'file',\n /**\n * Program Execution\n */\n Program = 'program',\n /**\n * Iframe\n */\n Iframe = 'iframe',\n\n Memory = 'memory',\n\n Tasks = 'tasks',\n\n /**\n * Knowledges (knowledge base retriever results)\n */\n Knowledges = 'knowledges',\n}\n\n/**\n * Step message type, in canvas and ai message.\n */\nexport type TChatMessageStep<T = any> = TMessageComponent<\n TMessageComponentStep<T>\n>;\n\nexport type ImageDetail = 'auto' | 'low' | 'high';\nexport type MessageContentText = {\n type: 'text';\n text: string;\n};\nexport type MessageContentImageUrl = {\n type: 'image_url';\n image_url:\n | string\n | {\n url: string;\n detail?: ImageDetail;\n };\n};\n\n/**\n * Similar to {@link MessageContentText} | {@link MessageContentImageUrl}, which together form {@link MessageContentComplex}\n */\nexport type TMessageContentComponent<T extends object = object> = {\n id: string;\n type: 'component';\n data: TMessageComponent<T>;\n xpertName?: string;\n agentKey?: string;\n};\n\n/**\n * Defines the data type of the sub-message of `component` type in the message `content` {@link MessageContentComplex}\n */\nexport type TMessageComponent<T extends object = object> = T & {\n id?: string;\n category: 'Dashboard' | 'Computer' | 'Tool';\n type?: string;\n created_date?: Date | string;\n};\n\nexport type TMessageComponentWidgetItem = {\n name: string;\n config: Types.Surface;\n values?: Record<string, unknown>;\n};\n\nexport type TMessageComponentWidgetData = {\n type: 'Widget';\n mode?: string;\n widgets: TMessageComponentWidgetItem[];\n executionId?: string;\n};\n\nexport type TMessageComponentWidget =\n TMessageComponent<TMessageComponentWidgetData>;\n\nexport type TMessageContentWidget =\n TMessageContentComponent<TMessageComponentWidgetData>;\n\nexport type TMessageContentText = {\n id?: string;\n xpertName?: string;\n agentKey?: string;\n type: 'text';\n text: string;\n};\nexport type TMessageContentMemory = {\n id?: string;\n agentKey?: string;\n type: 'memory';\n data: any[];\n};\nexport type TMessageContentReasoning = {\n id?: string;\n xpertName?: string;\n agentKey?: string;\n type: 'reasoning';\n text: string;\n};\n/**\n * Enhance {@link MessageContentComplex} in Langchain.js\n */\nexport type TMessageContentComplex = (\n | TMessageContentText\n | TMessageContentReasoning\n | MessageContentImageUrl\n | TMessageContentComponent\n | TMessageContentMemory\n | (Record<string, any> & {\n type?: 'text' | 'image_url' | string;\n })\n | (Record<string, any> & {\n type?: never;\n })\n) & {\n id?: string;\n xpertName?: string;\n agentKey?: string;\n created_date?: Date | string;\n};\n\n/**\n * Enhance {@link MessageContent} in Langchain.js\n *\n * @deprecated use {@link TMessageItems} instead\n */\nexport type TMessageContent = string | TMessageContentComplex[];\n\nexport type TMessageComponentIframe = {\n type: 'iframe';\n title: string;\n url?: string;\n data?: {\n url?: string;\n };\n};\n\nexport type TMessageComponentStep<T = unknown> = {\n type: ChatMessageStepCategory;\n toolset: string;\n toolset_id: string;\n tool?: string;\n title: string;\n message: string;\n status: 'success' | 'fail' | 'running';\n created_date: Date | string;\n end_date: Date | string;\n error?: string;\n data?: T;\n input?: any;\n output?: unknown;\n artifact?: any;\n};\n\n/**\n * Data type for chat event message\n */\nexport type TChatEventMessage = {\n type?: string;\n title?: string;\n message?: string;\n status?: 'success' | 'fail' | 'running';\n created_date?: Date | string;\n end_date?: Date | string;\n error?: string;\n};\n\nexport interface ChatkitMessage {\n status?: string;\n content: TMessageItems | string;\n reasoning?: TMessageContentReasoning[];\n type: 'user' | 'assistant' | 'system' | 'tool' | 'event';\n id: string;\n followUpMode?: FollowUpBehavior;\n followUpStatus?: 'pending' | 'consumed' | 'canceled';\n targetExecutionId?: string | null;\n visibleAt?: string | Date | null;\n}\n\nexport type TMessageItems = TMessageContentComplex[];\n\nexport type ChatKitReferenceBase = {\n id?: string;\n label?: string;\n text: string;\n};\n\nexport type ChatKitCodeReference = ChatKitReferenceBase & {\n type: 'code';\n path: string;\n startLine: number;\n endLine: number;\n language?: string;\n taskId?: string;\n};\n\nexport type ChatKitQuoteReference = ChatKitReferenceBase & {\n type: 'quote';\n messageId?: string;\n source?: string;\n};\n\nexport type ChatKitImageReference = ChatKitReferenceBase & {\n type: 'image';\n fileId?: string;\n url?: string;\n mimeType?: string;\n name?: string;\n size?: number;\n width?: number;\n height?: number;\n};\n\nexport type ChatKitReference =\n | ChatKitCodeReference\n | ChatKitQuoteReference\n | ChatKitImageReference;\n\nexport type ChatKitReferenceCompositionMode = 'compose' | 'preserve';\n\nexport const STATE_VARIABLE_HUMAN = 'human';\n\n/**\n * Human input message, include parameters and attachments\n */\nexport type TChatRequestHuman = {\n input?: string;\n files?: Partial<File>[];\n references?: ChatKitReference[];\n referenceComposition?: ChatKitReferenceCompositionMode;\n planMode?: boolean;\n [key: string]: unknown;\n};\n\n/**\n * Command to resume with streaming after human decision\n */\nexport type TInterruptCommand = {\n resume?: any;\n update?: any;\n toolCalls?: ToolCall[];\n agentKey?: string;\n};\n\nexport type TChatRequest = {\n /**\n * The human input, include parameters\n */\n input: TChatRequestHuman;\n /**\n * Custom graph state\n */\n state?: { [STATE_VARIABLE_HUMAN]: TChatRequestHuman } & Record<string, any>;\n agentKey?: string;\n projectId?: string;\n conversationId?: string;\n environmentId?: string;\n id?: string;\n executionId?: string;\n confirm?: boolean;\n command?: TInterruptCommand;\n retry?: boolean;\n followUpMode?: FollowUpBehavior;\n /**\n * PRO: Sandbox Environment Id\n * PRO: @description Sandbox environment ID to force using the specified container.\n */\n sandboxEnvironmentId?: string;\n};\n\n/**\n * Data type for client effect message\n */\nexport type TClientEeffectMessage = {\n name: string;\n args: Record<string, any>;\n tool_call_id?: string;\n agentKey?: string;\n created_date?: Date | string;\n};\n\n// Thread context usage\nexport type TThreadContextUsageMetrics = {\n contextTokens: number;\n inputTokens: number;\n outputTokens: number;\n totalTokens: number;\n embedTokens?: number;\n totalPrice?: number;\n currency?: string | null;\n};\n\nexport type TThreadContextUsageEvent = {\n type: 'thread_context_usage';\n threadId: string;\n runId: string | null;\n agentKey: string;\n updatedAt: string;\n usage: TThreadContextUsageMetrics;\n};\n\nexport const CHAT_EVENT_TYPE_FOLLOW_UP_CONSUMED = 'follow_up_consumed' as const;\n\nexport type TFollowUpConsumedEvent = TChatEventMessage & {\n type: typeof CHAT_EVENT_TYPE_FOLLOW_UP_CONSUMED;\n mode: 'queue' | 'steer';\n messageIds: string[];\n clientMessageIds?: string[];\n executionId?: string | null;\n visibleAt?: string | null;\n};\n"],"names":["ChatMessageTypeEnum","ChatMessageEventTypeEnum","ChatMessageStepCategory"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/interrupt.ts","../src/message.ts"],"sourcesContent":["import { type ToolCall } from '@langchain/core/messages/tool';\n\nexport const REQUEST_USER_INPUT_TOOL_NAME = 'request_user_input';\nexport type RequestUserInputToolName = typeof REQUEST_USER_INPUT_TOOL_NAME;\nexport const REQUEST_USER_INPUT_RESULT_TYPE = 'request_user_input_result';\nexport type RequestUserInputResultType = typeof REQUEST_USER_INPUT_RESULT_TYPE;\nexport const REQUEST_USER_INPUT_RESULT_PURPOSE_PLAN_CLARIFICATION =\n 'plan_clarification';\nexport const REQUEST_USER_INPUT_RESULT_PURPOSE_IMPLEMENTATION_CONFIRMATION =\n 'implementation_confirmation';\nexport type RequestUserInputResultPurpose =\n | typeof REQUEST_USER_INPUT_RESULT_PURPOSE_PLAN_CLARIFICATION\n | typeof REQUEST_USER_INPUT_RESULT_PURPOSE_IMPLEMENTATION_CONFIRMATION;\n\nexport interface RequestUserInputOption {\n label: string;\n description: string;\n}\n\nexport interface RequestUserInputQuestion {\n id: string;\n header: string;\n question: string;\n options: RequestUserInputOption[];\n}\n\nexport interface RequestUserInputParams {\n questions: RequestUserInputQuestion[];\n}\n\nexport type RequestUserInputToolArgs = RequestUserInputParams;\n\nexport type RequestUserInputAnswerType = 'option' | 'other';\n\nexport interface RequestUserInputAnswer {\n id: string;\n question: string;\n value: string;\n type: RequestUserInputAnswerType;\n label?: string;\n description?: string;\n}\n\nexport interface RequestUserInputResult {\n type: RequestUserInputResultType;\n purpose: RequestUserInputResultPurpose;\n answers: RequestUserInputAnswer[];\n}\n\nexport type RequestUserInputToolCall = ToolCall & {\n name: RequestUserInputToolName;\n args: RequestUserInputToolArgs;\n id: string;\n type?: 'tool_call';\n};\n\nexport interface ClientToolRequest {\n clientToolCalls: ToolCall[];\n}\n\nexport interface ToolCallRequest {\n toolCalls: ToolCall[];\n}\n\nexport type InterruptRequest = ToolCallRequest | ClientToolRequest;\n\nexport interface LangGraphInterrupt<TValue = unknown> {\n id: string;\n value: TValue;\n when?: string;\n resumable?: boolean;\n ns?: string[];\n}\n\nexport interface LangGraphInterruptTask<TValue = unknown> {\n id: string;\n name: string;\n path: Array<string | number>;\n interrupts: Array<LangGraphInterrupt<TValue>>;\n}\n\nexport interface LangGraphInterruptPayload<TValue = unknown> {\n tasks: Array<LangGraphInterruptTask<TValue>>;\n}\n\nexport type ClientToolInterrupt<\n TRequest extends ClientToolRequest = ClientToolRequest,\n> = LangGraphInterrupt<TRequest>;\n\nexport type ClientToolInterruptTask<\n TRequest extends ClientToolRequest = ClientToolRequest,\n> = LangGraphInterruptTask<TRequest>;\n\nexport type ClientToolInterruptPayload<\n TRequest extends ClientToolRequest = ClientToolRequest,\n> = LangGraphInterruptPayload<TRequest>;\n\nexport type ToolCallInterrupt<\n TRequest extends ToolCallRequest = ToolCallRequest,\n> = LangGraphInterrupt<TRequest>;\n\nexport type ToolCallInterruptTask<\n TRequest extends ToolCallRequest = ToolCallRequest,\n> = LangGraphInterruptTask<TRequest>;\n\nexport type ToolCallInterruptPayload<\n TRequest extends ToolCallRequest = ToolCallRequest,\n> = LangGraphInterruptPayload<TRequest>;\n\n/**\n * When an interrupt occurs during task execution, the system generates an InterruptPayload.\n *\n * Ordinary tool-call interrupts use `toolCalls`; ChatKit client-tool middleware\n * uses `clientToolCalls` so the UI can route those calls to the client.\n```json\n{\n \"type\": \"event\",\n \"event\": \"on_interrupt\",\n \"data\": {\n \"tasks\": [\n {\n \"id\": \"9c4d2ac5-8808-5b6f-855c-4d48aa3d77a7\",\n \"name\": \"Middleware_wPzR2bIXqE_after_model\",\n \"path\": [\"__pregel_pull\", \"Middleware_wPzR2bIXqE_after_model\"],\n \"interrupts\": [\n {\n \"id\": \"b42f7887d65e57ed11cf08b8927763db\",\n \"value\": {\n \"toolCalls\": [\n {\n \"name\": \"getUserStation\",\n \"args\": {\n \"input\": \"Query the site selected by the user\"\n },\n \"id\": \"call_00_swcaUjIaACXOHHaZyNmQB3Vm\",\n \"type\": \"tool_call\"\n }\n ]\n }\n }\n ]\n }\n ]\n }\n}\n```\n */\nexport interface InterruptPayload extends LangGraphInterruptPayload<InterruptRequest> {}\n\nexport interface ClientToolMessageInput {\n content: unknown;\n name?: string;\n tool_call_id?: string;\n status?: 'success' | 'error';\n artifact?: unknown;\n}\n\nexport interface ClientToolResponse {\n toolMessages: ClientToolMessageInput[];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nexport function isClientToolRequest(\n value: unknown,\n): value is ClientToolRequest {\n return isRecord(value) && Array.isArray(value.clientToolCalls);\n}\n\nexport function isToolCallRequest(value: unknown): value is ToolCallRequest {\n return isRecord(value) && Array.isArray(value.toolCalls);\n}\n\nexport function isInterruptRequest(value: unknown): value is InterruptRequest {\n return isToolCallRequest(value) || isClientToolRequest(value);\n}\n\nexport function isLangGraphInterrupt(\n value: unknown,\n): value is LangGraphInterrupt {\n return (\n isRecord(value) &&\n typeof value.id === 'string' &&\n Object.prototype.hasOwnProperty.call(value, 'value')\n );\n}\n\nexport function isLangGraphInterruptTask(\n value: unknown,\n): value is LangGraphInterruptTask {\n if (\n !isRecord(value) ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string' ||\n !Array.isArray(value.path) ||\n !Array.isArray(value.interrupts)\n ) {\n return false;\n }\n\n return (\n value.path.every(\n (item) => typeof item === 'string' || typeof item === 'number',\n ) && value.interrupts.every(isLangGraphInterrupt)\n );\n}\n\nexport function isLangGraphInterruptPayload(\n value: unknown,\n): value is LangGraphInterruptPayload {\n return (\n isRecord(value) &&\n Array.isArray(value.tasks) &&\n value.tasks.every(isLangGraphInterruptTask)\n );\n}\n\nexport function isClientToolInterrupt(\n value: unknown,\n): value is ClientToolInterrupt {\n return isLangGraphInterrupt(value) && isClientToolRequest(value.value);\n}\n\nexport function isClientToolInterruptTask(\n value: unknown,\n): value is ClientToolInterruptTask {\n return (\n isLangGraphInterruptTask(value) &&\n value.interrupts.every(isClientToolInterrupt)\n );\n}\n\nexport function isClientToolInterruptPayload(\n value: unknown,\n): value is ClientToolInterruptPayload {\n return (\n isLangGraphInterruptPayload(value) &&\n value.tasks.every(isClientToolInterruptTask)\n );\n}\n\nexport function isToolCallInterrupt(\n value: unknown,\n): value is ToolCallInterrupt {\n return isLangGraphInterrupt(value) && isToolCallRequest(value.value);\n}\n\nexport function isToolCallInterruptTask(\n value: unknown,\n): value is ToolCallInterruptTask {\n return (\n isLangGraphInterruptTask(value) &&\n value.interrupts.every(isToolCallInterrupt)\n );\n}\n\nexport function isToolCallInterruptPayload(\n value: unknown,\n): value is ToolCallInterruptPayload {\n return (\n isLangGraphInterruptPayload(value) &&\n value.tasks.every(isToolCallInterruptTask)\n );\n}\n","import type { ToolCall } from '@langchain/core/messages/tool';\nimport { Types } from '@a2ui/lit/0.8';\nimport type { FollowUpBehavior } from './options';\n\nexport enum ChatMessageTypeEnum {\n // LOG = 'log',\n MESSAGE = 'message',\n EVENT = 'event',\n}\n\n/**\n * https://js.langchain.com/docs/how_to/streaming/#event-reference\n */\nexport enum ChatMessageEventTypeEnum {\n ON_CONVERSATION_START = 'on_conversation_start',\n ON_CONVERSATION_END = 'on_conversation_end',\n ON_MESSAGE_START = 'on_message_start',\n ON_MESSAGE_END = 'on_message_end',\n ON_TOOL_START = 'on_tool_start',\n ON_TOOL_END = 'on_tool_end',\n ON_TOOL_ERROR = 'on_tool_error',\n /**\n * Step message in tool call\n */\n ON_TOOL_MESSAGE = 'on_tool_message',\n ON_AGENT_START = 'on_agent_start',\n ON_AGENT_END = 'on_agent_end',\n ON_RETRIEVER_START = 'on_retriever_start',\n ON_RETRIEVER_END = 'on_retriever_end',\n ON_RETRIEVER_ERROR = 'on_retriever_error',\n ON_INTERRUPT = 'on_interrupt',\n ON_ERROR = 'on_error',\n ON_CHAT_EVENT = 'on_chat_event',\n\n ON_CLIENT_EFFECT = 'on_client_effect',\n}\n\n/**\n * Encapsulate multi-agent message events\n */\nexport interface ChatEventEnvelope<T = unknown> {\n type: ChatMessageTypeEnum;\n event?: ChatMessageEventTypeEnum;\n tags: string[];\n data: T;\n}\n\n/**\n * Category of step message: determines the display components of computer use\n */\nexport enum ChatMessageStepCategory {\n /**\n * List of items: urls, files, etc.\n */\n List = 'list',\n /**\n * Websearch results\n */\n WebSearch = 'web_search',\n /**\n * Files list\n */\n Files = 'files',\n /**\n * View a file\n */\n File = 'file',\n /**\n * Program Execution\n */\n Program = 'program',\n /**\n * Iframe\n */\n Iframe = 'iframe',\n\n Memory = 'memory',\n\n Tasks = 'tasks',\n\n /**\n * Knowledges (knowledge base retriever results)\n */\n Knowledges = 'knowledges',\n}\n\n/**\n * Step message type, in canvas and ai message.\n */\nexport type TChatMessageStep<T = any> = TMessageComponent<\n TMessageComponentStep<T>\n>;\n\nexport type ImageDetail = 'auto' | 'low' | 'high';\nexport type MessageContentText = {\n type: 'text';\n text: string;\n};\nexport type MessageContentImageUrl = {\n type: 'image_url';\n image_url:\n | string\n | {\n url: string;\n detail?: ImageDetail;\n };\n};\n\n/**\n * Similar to {@link MessageContentText} | {@link MessageContentImageUrl}, which together form {@link MessageContentComplex}\n */\nexport type TMessageContentComponent<T extends object = object> = {\n id: string;\n type: 'component';\n data: TMessageComponent<T>;\n xpertName?: string;\n agentKey?: string;\n};\n\n/**\n * Defines the data type of the sub-message of `component` type in the message `content` {@link MessageContentComplex}\n */\nexport type TMessageComponent<T extends object = object> = T & {\n id?: string;\n category: 'Dashboard' | 'Computer' | 'Tool';\n type?: string;\n created_date?: Date | string;\n};\n\nexport type TMessageComponentWidgetItem = {\n name: string;\n config: Types.Surface;\n values?: Record<string, unknown>;\n};\n\nexport type TMessageComponentWidgetData = {\n type: 'Widget';\n mode?: string;\n widgets: TMessageComponentWidgetItem[];\n executionId?: string;\n};\n\nexport type TMessageComponentWidget =\n TMessageComponent<TMessageComponentWidgetData>;\n\nexport type TMessageContentWidget =\n TMessageContentComponent<TMessageComponentWidgetData>;\n\nexport type TMessageContentText = {\n id?: string;\n xpertName?: string;\n agentKey?: string;\n type: 'text';\n text: string;\n};\nexport type TMessageContentMemory = {\n id?: string;\n agentKey?: string;\n type: 'memory';\n data: any[];\n};\nexport type TMessageContentReasoning = {\n id?: string;\n xpertName?: string;\n agentKey?: string;\n type: 'reasoning';\n text: string;\n};\n/**\n * Enhance {@link MessageContentComplex} in Langchain.js\n */\nexport type TMessageContentComplex = (\n | TMessageContentText\n | TMessageContentReasoning\n | MessageContentImageUrl\n | TMessageContentComponent\n | TMessageContentMemory\n | (Record<string, any> & {\n type?: 'text' | 'image_url' | string;\n })\n | (Record<string, any> & {\n type?: never;\n })\n) & {\n id?: string;\n xpertName?: string;\n agentKey?: string;\n created_date?: Date | string;\n};\n\n/**\n * Enhance {@link MessageContent} in Langchain.js\n *\n * @deprecated use {@link TMessageItems} instead\n */\nexport type TMessageContent = string | TMessageContentComplex[];\n\nexport type TMessageComponentIframe = {\n type: 'iframe';\n title: string;\n url?: string;\n data?: {\n url?: string;\n };\n};\n\nexport type TMessageComponentStep<T = unknown> = {\n type: ChatMessageStepCategory;\n toolset: string;\n toolset_id: string;\n tool?: string;\n title: string;\n message: string;\n status: 'success' | 'fail' | 'running';\n created_date: Date | string;\n end_date: Date | string;\n error?: string;\n data?: T;\n input?: any;\n output?: unknown;\n artifact?: any;\n};\n\n/**\n * Data type for chat event message\n */\nexport type TChatEventMessage = {\n type?: string;\n title?: string;\n message?: string;\n status?: 'success' | 'fail' | 'running';\n created_date?: Date | string;\n end_date?: Date | string;\n error?: string;\n};\n\nexport interface ChatkitMessage {\n status?: string;\n content: TMessageItems | string;\n reasoning?: TMessageContentReasoning[];\n type: 'user' | 'assistant' | 'system' | 'tool' | 'event';\n id: string;\n followUpMode?: FollowUpBehavior;\n followUpStatus?: 'pending' | 'consumed' | 'canceled';\n targetExecutionId?: string | null;\n visibleAt?: string | Date | null;\n}\n\nexport type TMessageItems = TMessageContentComplex[];\n\nexport type ChatKitReferenceBase = {\n id?: string;\n label?: string;\n text: string;\n};\n\nexport type ChatKitCodeReference = ChatKitReferenceBase & {\n type: 'code';\n path: string;\n startLine: number;\n endLine: number;\n language?: string;\n taskId?: string;\n};\n\nexport type ChatKitQuoteReference = ChatKitReferenceBase & {\n type: 'quote';\n messageId?: string;\n source?: string;\n};\n\nexport type ChatKitImageReference = ChatKitReferenceBase & {\n type: 'image';\n fileId?: string;\n url?: string;\n mimeType?: string;\n name?: string;\n size?: number;\n width?: number;\n height?: number;\n};\n\nexport type ChatKitReference =\n | ChatKitCodeReference\n | ChatKitQuoteReference\n | ChatKitImageReference;\n\nexport type ChatKitReferenceCompositionMode = 'compose' | 'preserve';\n\nexport type RuntimeCapabilitiesSelection = {\n mode: 'allowlist';\n skills: {\n workspaceId?: string;\n ids: string[];\n };\n plugins: {\n nodeKeys: string[];\n };\n};\n\nexport const STATE_VARIABLE_HUMAN = 'human';\n\n/**\n * Human input message, include parameters and attachments\n */\nexport type TChatRequestHuman = {\n input?: string;\n files?: Partial<File>[];\n references?: ChatKitReference[];\n referenceComposition?: ChatKitReferenceCompositionMode;\n planMode?: boolean;\n runtimeCapabilities?: RuntimeCapabilitiesSelection;\n [key: string]: unknown;\n};\n\n/**\n * Command to resume with streaming after human decision\n */\nexport type TInterruptCommand = {\n resume?: any;\n update?: any;\n toolCalls?: ToolCall[];\n agentKey?: string;\n};\n\nexport type TChatRequest = {\n /**\n * The human input, include parameters\n */\n input: TChatRequestHuman;\n /**\n * Custom graph state\n */\n state?: { [STATE_VARIABLE_HUMAN]: TChatRequestHuman } & Record<string, any>;\n agentKey?: string;\n projectId?: string;\n conversationId?: string;\n environmentId?: string;\n id?: string;\n executionId?: string;\n confirm?: boolean;\n command?: TInterruptCommand;\n retry?: boolean;\n followUpMode?: FollowUpBehavior;\n /**\n * PRO: Sandbox Environment Id\n * PRO: @description Sandbox environment ID to force using the specified container.\n */\n sandboxEnvironmentId?: string;\n};\n\n/**\n * Data type for client effect message\n */\nexport type TClientEeffectMessage = {\n name: string;\n args: Record<string, any>;\n tool_call_id?: string;\n agentKey?: string;\n created_date?: Date | string;\n};\n\n// Thread context usage\nexport type TThreadContextUsageMetrics = {\n contextTokens: number;\n inputTokens: number;\n outputTokens: number;\n totalTokens: number;\n embedTokens?: number;\n totalPrice?: number;\n currency?: string | null;\n};\n\nexport type TThreadContextUsageEvent = {\n type: 'thread_context_usage';\n threadId: string;\n runId: string | null;\n agentKey: string;\n updatedAt: string;\n usage: TThreadContextUsageMetrics;\n};\n\nexport const CHAT_EVENT_TYPE_FOLLOW_UP_CONSUMED = 'follow_up_consumed' as const;\n\nexport type TFollowUpConsumedEvent = TChatEventMessage & {\n type: typeof CHAT_EVENT_TYPE_FOLLOW_UP_CONSUMED;\n mode: 'queue' | 'steer';\n messageIds: string[];\n clientMessageIds?: string[];\n executionId?: string | null;\n visibleAt?: string | null;\n};\n"],"names":["ChatMessageTypeEnum","ChatMessageEventTypeEnum","ChatMessageStepCategory"],"mappings":";;AAEO,MAAM,+BAA+B;AAErC,MAAM,iCAAiC;AAEvC,MAAM,uDACX;AACK,MAAM,gEACX;AAwJF,SAAS,SAAS,OAAkD;AAClE,SAAO,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEO,SAAS,oBACd,OAC4B;AAC5B,SAAO,SAAS,KAAK,KAAK,MAAM,QAAQ,MAAM,eAAe;AAC/D;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO,SAAS,KAAK,KAAK,MAAM,QAAQ,MAAM,SAAS;AACzD;AAEO,SAAS,mBAAmB,OAA2C;AAC5E,SAAO,kBAAkB,KAAK,KAAK,oBAAoB,KAAK;AAC9D;AAEO,SAAS,qBACd,OAC6B;AAC7B,SACE,SAAS,KAAK,KACd,OAAO,MAAM,OAAO,YACpB,OAAO,UAAU,eAAe,KAAK,OAAO,OAAO;AAEvD;AAEO,SAAS,yBACd,OACiC;AACjC,MACE,CAAC,SAAS,KAAK,KACf,OAAO,MAAM,OAAO,YACpB,OAAO,MAAM,SAAS,YACtB,CAAC,MAAM,QAAQ,MAAM,IAAI,KACzB,CAAC,MAAM,QAAQ,MAAM,UAAU,GAC/B;AACA,WAAO;AAAA,EACT;AAEA,SACE,MAAM,KAAK;AAAA,IACT,CAAC,SAAS,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,EAAA,KACnD,MAAM,WAAW,MAAM,oBAAoB;AAEpD;AAEO,SAAS,4BACd,OACoC;AACpC,SACE,SAAS,KAAK,KACd,MAAM,QAAQ,MAAM,KAAK,KACzB,MAAM,MAAM,MAAM,wBAAwB;AAE9C;AAEO,SAAS,sBACd,OAC8B;AAC9B,SAAO,qBAAqB,KAAK,KAAK,oBAAoB,MAAM,KAAK;AACvE;AAEO,SAAS,0BACd,OACkC;AAClC,SACE,yBAAyB,KAAK,KAC9B,MAAM,WAAW,MAAM,qBAAqB;AAEhD;AAEO,SAAS,6BACd,OACqC;AACrC,SACE,4BAA4B,KAAK,KACjC,MAAM,MAAM,MAAM,yBAAyB;AAE/C;AAEO,SAAS,oBACd,OAC4B;AAC5B,SAAO,qBAAqB,KAAK,KAAK,kBAAkB,MAAM,KAAK;AACrE;AAEO,SAAS,wBACd,OACgC;AAChC,SACE,yBAAyB,KAAK,KAC9B,MAAM,WAAW,MAAM,mBAAmB;AAE9C;AAEO,SAAS,2BACd,OACmC;AACnC,SACE,4BAA4B,KAAK,KACjC,MAAM,MAAM,MAAM,uBAAuB;AAE7C;ACrQO,IAAK,wCAAAA,yBAAL;AAELA,uBAAA,SAAA,IAAU;AACVA,uBAAA,OAAA,IAAQ;AAHE,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AASL,IAAK,6CAAAC,8BAAL;AACLA,4BAAA,uBAAA,IAAwB;AACxBA,4BAAA,qBAAA,IAAsB;AACtBA,4BAAA,kBAAA,IAAmB;AACnBA,4BAAA,gBAAA,IAAiB;AACjBA,4BAAA,eAAA,IAAgB;AAChBA,4BAAA,aAAA,IAAc;AACdA,4BAAA,eAAA,IAAgB;AAIhBA,4BAAA,iBAAA,IAAkB;AAClBA,4BAAA,gBAAA,IAAiB;AACjBA,4BAAA,cAAA,IAAe;AACfA,4BAAA,oBAAA,IAAqB;AACrBA,4BAAA,kBAAA,IAAmB;AACnBA,4BAAA,oBAAA,IAAqB;AACrBA,4BAAA,cAAA,IAAe;AACfA,4BAAA,UAAA,IAAW;AACXA,4BAAA,eAAA,IAAgB;AAEhBA,4BAAA,kBAAA,IAAmB;AArBT,SAAAA;AAAA,GAAA,4BAAA,CAAA,CAAA;AAqCL,IAAK,4CAAAC,6BAAL;AAILA,2BAAA,MAAA,IAAO;AAIPA,2BAAA,WAAA,IAAY;AAIZA,2BAAA,OAAA,IAAQ;AAIRA,2BAAA,MAAA,IAAO;AAIPA,2BAAA,SAAA,IAAU;AAIVA,2BAAA,QAAA,IAAS;AAETA,2BAAA,QAAA,IAAS;AAETA,2BAAA,OAAA,IAAQ;AAKRA,2BAAA,YAAA,IAAa;AAjCH,SAAAA;AAAA,GAAA,2BAAA,CAAA,CAAA;AA0PL,MAAM,uBAAuB;AAkF7B,MAAM,qCAAqC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xpert-ai/chatkit-types",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Type definitions for the ChatKit.",
5
5
  "sideEffects": false,
6
6
  "type": "module",