@botonic/plugin-ai-agents 0.56.0-alpha.0 → 0.57.0-rslib-esm.1
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/lib/{cjs/agents → agents}/base-agent.d.ts +4 -4
- package/lib/agents/base-agent.js +66 -0
- package/lib/agents/base-agent.js.map +1 -0
- package/lib/agents/index.d.ts +2 -0
- package/lib/agents/index.js +9 -0
- package/lib/agents/index.js.map +1 -0
- package/lib/{esm/agents → agents}/router-agent.d.ts +5 -5
- package/lib/agents/router-agent.js +50 -0
- package/lib/agents/router-agent.js.map +1 -0
- package/lib/{cjs/agents → agents}/specialist-agent.d.ts +5 -5
- package/lib/{cjs/agents → agents}/specialist-agent.js +65 -45
- package/lib/agents/specialist-agent.js.map +1 -0
- package/lib/{cjs/bot-config-tools.d.ts → bot-config-tools.d.ts} +1 -1
- package/lib/bot-config-tools.js +20 -0
- package/lib/bot-config-tools.js.map +1 -0
- package/lib/constants.js +26 -0
- package/lib/constants.js.map +1 -0
- package/lib/{esm/debug-logger.d.ts → debug-logger.d.ts} +1 -1
- package/lib/{cjs/debug-logger.js → debug-logger.js} +14 -9
- package/lib/debug-logger.js.map +1 -0
- package/lib/guardrails/index.d.ts +1 -0
- package/lib/guardrails/index.js +6 -0
- package/lib/guardrails/index.js.map +1 -0
- package/lib/{cjs/guardrails → guardrails}/input.d.ts +2 -2
- package/lib/guardrails/input.js +119 -0
- package/lib/guardrails/input.js.map +1 -0
- package/lib/{esm/index.d.ts → index.d.ts} +3 -3
- package/lib/{esm/index.js → index.js} +114 -74
- package/lib/index.js.map +1 -0
- package/lib/{cjs/llm-config.d.ts → llm-config.d.ts} +1 -1
- package/lib/llm-config.js +150 -0
- package/lib/llm-config.js.map +1 -0
- package/lib/{esm/runners → runners}/base-runner.d.ts +3 -3
- package/lib/{cjs/runners → runners}/base-runner.js +81 -69
- package/lib/runners/base-runner.js.map +1 -0
- package/lib/runners/index.d.ts +2 -0
- package/lib/runners/index.js +9 -0
- package/lib/runners/index.js.map +1 -0
- package/lib/{cjs/runners → runners}/router-runner.d.ts +2 -2
- package/lib/{cjs/runners → runners}/router-runner.js +19 -14
- package/lib/runners/router-runner.js.map +1 -0
- package/lib/{esm/runners → runners}/specialist-runner.d.ts +1 -1
- package/lib/runners/specialist-runner.js +10 -0
- package/lib/runners/specialist-runner.js.map +1 -0
- package/lib/{esm/services → services}/hubtype-api-client.d.ts +2 -2
- package/lib/services/hubtype-api-client.js +191 -0
- package/lib/services/hubtype-api-client.js.map +1 -0
- package/lib/{cjs/services → services}/types.d.ts +1 -1
- package/lib/services/types.js +13 -0
- package/lib/services/types.js.map +1 -0
- package/lib/structured-output/bot-executor.js +21 -0
- package/lib/structured-output/bot-executor.js.map +1 -0
- package/lib/structured-output/carousel.js +26 -0
- package/lib/structured-output/carousel.js.map +1 -0
- package/lib/structured-output/exit.js +14 -0
- package/lib/structured-output/exit.js.map +1 -0
- package/lib/{cjs/structured-output → structured-output}/index.d.ts +0 -10
- package/lib/structured-output/index.js +55 -0
- package/lib/structured-output/index.js.map +1 -0
- package/lib/structured-output/text-with-buttons.js +25 -0
- package/lib/structured-output/text-with-buttons.js.map +1 -0
- package/lib/structured-output/text.js +17 -0
- package/lib/structured-output/text.js.map +1 -0
- package/lib/{cjs/tools → tools}/index.d.ts +2 -2
- package/lib/tools/index.js +8 -0
- package/lib/tools/index.js.map +1 -0
- package/lib/{cjs/tools → tools}/retrieve-knowledge.d.ts +2 -2
- package/lib/tools/retrieve-knowledge.js +40 -0
- package/lib/tools/retrieve-knowledge.js.map +1 -0
- package/lib/{cjs/types.d.ts → types.d.ts} +3 -3
- package/lib/types.js +5 -0
- package/lib/types.js.map +1 -0
- package/package.json +10 -8
- package/src/structured-output/index.ts +0 -2
- package/src/types.ts +4 -4
- package/lib/cjs/agents/base-agent.js +0 -39
- package/lib/cjs/agents/base-agent.js.map +0 -1
- package/lib/cjs/agents/index.d.ts +0 -2
- package/lib/cjs/agents/index.js +0 -8
- package/lib/cjs/agents/index.js.map +0 -1
- package/lib/cjs/agents/router-agent.d.ts +0 -25
- package/lib/cjs/agents/router-agent.js +0 -33
- package/lib/cjs/agents/router-agent.js.map +0 -1
- package/lib/cjs/agents/specialist-agent.js.map +0 -1
- package/lib/cjs/bot-config-tools.js +0 -18
- package/lib/cjs/bot-config-tools.js.map +0 -1
- package/lib/cjs/constants.js +0 -25
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/debug-logger.d.ts +0 -33
- package/lib/cjs/debug-logger.js.map +0 -1
- package/lib/cjs/guardrails/index.d.ts +0 -1
- package/lib/cjs/guardrails/index.js +0 -5
- package/lib/cjs/guardrails/index.js.map +0 -1
- package/lib/cjs/guardrails/input.js +0 -96
- package/lib/cjs/guardrails/input.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -22
- package/lib/cjs/index.js +0 -219
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/llm-config.js +0 -121
- package/lib/cjs/llm-config.js.map +0 -1
- package/lib/cjs/runners/base-runner.d.ts +0 -31
- package/lib/cjs/runners/base-runner.js.map +0 -1
- package/lib/cjs/runners/index.d.ts +0 -2
- package/lib/cjs/runners/index.js +0 -8
- package/lib/cjs/runners/index.js.map +0 -1
- package/lib/cjs/runners/router-runner.js.map +0 -1
- package/lib/cjs/runners/specialist-runner.d.ts +0 -4
- package/lib/cjs/runners/specialist-runner.js +0 -8
- package/lib/cjs/runners/specialist-runner.js.map +0 -1
- package/lib/cjs/services/hubtype-api-client.d.ts +0 -13
- package/lib/cjs/services/hubtype-api-client.js +0 -176
- package/lib/cjs/services/hubtype-api-client.js.map +0 -1
- package/lib/cjs/services/types.js +0 -13
- package/lib/cjs/services/types.js.map +0 -1
- package/lib/cjs/structured-output/bot-executor.js +0 -18
- package/lib/cjs/structured-output/bot-executor.js.map +0 -1
- package/lib/cjs/structured-output/carousel.js +0 -23
- package/lib/cjs/structured-output/carousel.js.map +0 -1
- package/lib/cjs/structured-output/exit.js +0 -11
- package/lib/cjs/structured-output/exit.js.map +0 -1
- package/lib/cjs/structured-output/index.js +0 -45
- package/lib/cjs/structured-output/index.js.map +0 -1
- package/lib/cjs/structured-output/request-contact-info.d.ts +0 -9
- package/lib/cjs/structured-output/request-contact-info.js +0 -14
- package/lib/cjs/structured-output/request-contact-info.js.map +0 -1
- package/lib/cjs/structured-output/text-with-buttons.js +0 -24
- package/lib/cjs/structured-output/text-with-buttons.js.map +0 -1
- package/lib/cjs/structured-output/text.js +0 -14
- package/lib/cjs/structured-output/text.js.map +0 -1
- package/lib/cjs/tools/index.js +0 -8
- package/lib/cjs/tools/index.js.map +0 -1
- package/lib/cjs/tools/retrieve-knowledge.js +0 -34
- package/lib/cjs/tools/retrieve-knowledge.js.map +0 -1
- package/lib/cjs/types.js +0 -3
- package/lib/cjs/types.js.map +0 -1
- package/lib/esm/agents/base-agent.d.ts +0 -28
- package/lib/esm/agents/base-agent.js +0 -39
- package/lib/esm/agents/base-agent.js.map +0 -1
- package/lib/esm/agents/index.d.ts +0 -2
- package/lib/esm/agents/index.js +0 -8
- package/lib/esm/agents/index.js.map +0 -1
- package/lib/esm/agents/router-agent.js +0 -33
- package/lib/esm/agents/router-agent.js.map +0 -1
- package/lib/esm/agents/specialist-agent.d.ts +0 -39
- package/lib/esm/agents/specialist-agent.js +0 -108
- package/lib/esm/agents/specialist-agent.js.map +0 -1
- package/lib/esm/bot-config-tools.d.ts +0 -7
- package/lib/esm/bot-config-tools.js +0 -18
- package/lib/esm/bot-config-tools.js.map +0 -1
- package/lib/esm/constants.d.ts +0 -21
- package/lib/esm/constants.js +0 -25
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/debug-logger.js +0 -116
- package/lib/esm/debug-logger.js.map +0 -1
- package/lib/esm/guardrails/index.d.ts +0 -1
- package/lib/esm/guardrails/index.js +0 -5
- package/lib/esm/guardrails/index.js.map +0 -1
- package/lib/esm/guardrails/input.d.ts +0 -10
- package/lib/esm/guardrails/input.js +0 -96
- package/lib/esm/guardrails/input.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/llm-config.d.ts +0 -30
- package/lib/esm/llm-config.js +0 -121
- package/lib/esm/llm-config.js.map +0 -1
- package/lib/esm/runners/base-runner.js +0 -189
- package/lib/esm/runners/base-runner.js.map +0 -1
- package/lib/esm/runners/index.d.ts +0 -2
- package/lib/esm/runners/index.js +0 -8
- package/lib/esm/runners/index.js.map +0 -1
- package/lib/esm/runners/router-runner.d.ts +0 -8
- package/lib/esm/runners/router-runner.js +0 -44
- package/lib/esm/runners/router-runner.js.map +0 -1
- package/lib/esm/runners/specialist-runner.js +0 -8
- package/lib/esm/runners/specialist-runner.js.map +0 -1
- package/lib/esm/services/hubtype-api-client.js +0 -176
- package/lib/esm/services/hubtype-api-client.js.map +0 -1
- package/lib/esm/services/types.d.ts +0 -72
- package/lib/esm/services/types.js +0 -13
- package/lib/esm/services/types.js.map +0 -1
- package/lib/esm/structured-output/bot-executor.d.ts +0 -13
- package/lib/esm/structured-output/bot-executor.js +0 -18
- package/lib/esm/structured-output/bot-executor.js.map +0 -1
- package/lib/esm/structured-output/carousel.d.ts +0 -18
- package/lib/esm/structured-output/carousel.js +0 -23
- package/lib/esm/structured-output/carousel.js.map +0 -1
- package/lib/esm/structured-output/exit.d.ts +0 -6
- package/lib/esm/structured-output/exit.js +0 -11
- package/lib/esm/structured-output/exit.js.map +0 -1
- package/lib/esm/structured-output/index.d.ts +0 -108
- package/lib/esm/structured-output/index.js +0 -45
- package/lib/esm/structured-output/index.js.map +0 -1
- package/lib/esm/structured-output/request-contact-info.d.ts +0 -9
- package/lib/esm/structured-output/request-contact-info.js +0 -14
- package/lib/esm/structured-output/request-contact-info.js.map +0 -1
- package/lib/esm/structured-output/text-with-buttons.d.ts +0 -17
- package/lib/esm/structured-output/text-with-buttons.js +0 -24
- package/lib/esm/structured-output/text-with-buttons.js.map +0 -1
- package/lib/esm/structured-output/text.d.ts +0 -9
- package/lib/esm/structured-output/text.js +0 -14
- package/lib/esm/structured-output/text.js.map +0 -1
- package/lib/esm/tools/index.d.ts +0 -3
- package/lib/esm/tools/index.js +0 -8
- package/lib/esm/tools/index.js.map +0 -1
- package/lib/esm/tools/retrieve-knowledge.d.ts +0 -6
- package/lib/esm/tools/retrieve-knowledge.js +0 -34
- package/lib/esm/tools/retrieve-knowledge.js.map +0 -1
- package/lib/esm/types.d.ts +0 -53
- package/lib/esm/types.js +0 -3
- package/lib/esm/types.js.map +0 -1
- package/src/structured-output/request-contact-info.ts +0 -18
- /package/lib/{cjs/constants.d.ts → constants.d.ts} +0 -0
- /package/lib/{cjs/structured-output → structured-output}/bot-executor.d.ts +0 -0
- /package/lib/{cjs/structured-output → structured-output}/carousel.d.ts +0 -0
- /package/lib/{cjs/structured-output → structured-output}/exit.d.ts +0 -0
- /package/lib/{cjs/structured-output → structured-output}/text-with-buttons.d.ts +0 -0
- /package/lib/{cjs/structured-output → structured-output}/text.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services/hubtype-api-client.js","sources":["../../src/services/hubtype-api-client.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { BotContext, HubtypeAssistantMessage } from '@botonic/core'\nimport axios from 'axios'\n\nimport { HUBTYPE_API_URL } from '../constants'\nimport type { AgenticInputMessage, Chunk, MemoryOptions } from '../types'\nimport type {\n GetMessagesV2Result,\n HubtypeAssistantMessageV2,\n HubtypeMessage,\n HubtypeMessageV2,\n HubtypeToolMessageV2,\n MessageHistoryResponseV2,\n MessageHistoryV2Params,\n TrackLlmRunsData,\n} from './types'\n\nexport class HubtypeApiClient {\n private readonly authToken: string\n\n constructor(authToken: string) {\n this.authToken = authToken\n }\n\n async retrieveSimilarChunks(\n query: string,\n sourceIds: string[]\n ): Promise<Chunk[]> {\n const url = `${HUBTYPE_API_URL}/external/v1/ai/knowledge_base/similar_chunks/`\n const headers = {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.authToken}`,\n }\n const params = {\n query,\n source_ids: sourceIds,\n num_chunks: 5,\n }\n const response = await axios.post(url, params, { headers })\n const chunks = response.data.chunks.map((chunk: Chunk) => ({\n id: chunk.id,\n text: chunk.text,\n }))\n return chunks\n }\n\n async getLocalMessages(\n maxMemoryLength: number,\n previousHubtypeMessages: HubtypeAssistantMessage[],\n localStorageKey: string\n ): Promise<AgenticInputMessage[]> {\n const localBotonicState =\n typeof globalThis !== 'undefined' && globalThis.localStorage\n ? globalThis.localStorage.getItem(localStorageKey)\n : null\n const botonicState = JSON.parse(localBotonicState || '{}')\n const messages = botonicState.messages\n const filteredMessages = messages\n .filter(message => message.data.text)\n .map(message => ({\n role: message.sentBy === 'user' ? 'user' : 'assistant',\n content: message.data.text,\n }))\n .map(message => this.formatMessage(message))\n const resultMessages = [...filteredMessages, ...previousHubtypeMessages]\n\n return resultMessages.slice(-maxMemoryLength)\n }\n\n async getMessagesV2(\n botContext: BotContext,\n options: MemoryOptions,\n previousHubtypeMessages: HubtypeAssistantMessage[]\n ): Promise<GetMessagesV2Result> {\n const url = `${HUBTYPE_API_URL}/external/v2/ai/agent/message_history/`\n const headers = {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.authToken}`,\n }\n const params: MessageHistoryV2Params = {\n last_message_id: botContext.input.message_id,\n max_messages: options.maxMessages,\n include_tool_calls: options.includeToolCalls,\n max_full_tool_results: options.maxFullToolResults,\n debug_mode: options.debugMode,\n }\n\n try {\n const response = await axios.get<MessageHistoryResponseV2>(url, {\n headers,\n params,\n })\n const { messages, conversation_id, truncated } = response.data\n const formattedMessages = [...messages, ...previousHubtypeMessages]\n .map(message => this.formatMessageV2(message))\n .filter((message): message is AgenticInputMessage => message !== null)\n\n return {\n messages: formattedMessages,\n conversationId: conversation_id,\n truncated,\n }\n } catch (error) {\n console.error(error)\n throw new Error('Failed to get messages from Hubtype V2 API')\n }\n }\n\n private formatMessageV2(\n message: HubtypeMessageV2\n ): AgenticInputMessage | null {\n switch (message.role) {\n case 'user':\n return {\n role: 'user',\n content: message.content ?? '',\n }\n case 'assistant': {\n const assistantMessage = message as HubtypeAssistantMessageV2\n // If assistant message has tool_calls, include them for context\n // Using double assertion as the OpenAI API supports this format,\n // but the agents SDK types are more restrictive\n if (\n assistantMessage.tool_calls &&\n assistantMessage.tool_calls.length > 0\n ) {\n return {\n role: 'assistant',\n content: assistantMessage.content ?? '',\n tool_calls: assistantMessage.tool_calls.map(tc => ({\n id: tc.id,\n type: tc.type,\n function: {\n name: tc.function.name,\n arguments: tc.function.arguments,\n },\n })),\n } as unknown as AgenticInputMessage\n }\n // Regular assistant message without tool_calls\n return {\n role: 'assistant',\n content: [\n {\n type: 'output_text',\n text: assistantMessage.content ?? '',\n },\n ],\n status: 'completed',\n }\n }\n case 'tool': {\n // Tool messages provide context about previous tool executions\n // Using double assertion as the OpenAI API supports this format,\n // but the agents SDK types are more restrictive\n const toolMessage = message as HubtypeToolMessageV2\n return {\n role: 'tool',\n tool_call_id: toolMessage.tool_call_id,\n content: toolMessage.content ?? '',\n } as unknown as AgenticInputMessage\n }\n case 'system':\n return {\n role: 'system',\n content: message.content ?? '',\n }\n default:\n throw new Error(\n `Invalid message role: ${(message as HubtypeMessageV2).role}`\n )\n }\n }\n\n async trackLlmRuns(botId: string, data: TrackLlmRunsData): Promise<void> {\n // Not stop the bot execution if the tracking fails, just log the error\n try {\n const url = `${HUBTYPE_API_URL}/external/v2/conversational_apps/${botId}/track_llm_runs/`\n const headers = {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.authToken}`,\n }\n await axios.post(url, data, { headers })\n } catch (error) {\n console.error('Failed to track LLM runs:', error)\n }\n }\n\n private formatMessage(message: HubtypeMessage): AgenticInputMessage {\n if (message.role === 'user') {\n return {\n content: message.content,\n role: 'user',\n }\n } else if (message.role === 'assistant') {\n return {\n role: 'assistant',\n content: [\n {\n type: 'output_text',\n text: message.content,\n },\n ],\n status: 'completed',\n }\n } else {\n throw new Error('Invalid message role')\n }\n }\n}\n"],"names":["axios","HUBTYPE_API_URL","HubtypeApiClient","query","sourceIds","url","headers","params","response","chunks","chunk","maxMemoryLength","previousHubtypeMessages","localStorageKey","localBotonicState","globalThis","botonicState","JSON","messages","filteredMessages","message","resultMessages","botContext","options","conversation_id","truncated","formattedMessages","error","console","Error","assistantMessage","tc","toolMessage","botId","data","authToken"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var types_TrackProductName = /*#__PURE__*/ function(TrackProductName) {
|
|
2
|
+
TrackProductName["AI_AGENT"] = "ai_agent";
|
|
3
|
+
return TrackProductName;
|
|
4
|
+
}({});
|
|
5
|
+
var types_TrackFeature = /*#__PURE__*/ function(TrackFeature) {
|
|
6
|
+
TrackFeature["AI_AGENT_RUN"] = "ai_agent_run";
|
|
7
|
+
TrackFeature["AI_AGENT_GUARDRAIL"] = "ai_agent_guardrail";
|
|
8
|
+
return TrackFeature;
|
|
9
|
+
}({});
|
|
10
|
+
|
|
11
|
+
export { types_TrackFeature as TrackFeature, types_TrackProductName as TrackProductName };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services/types.js","sources":["../../src/services/types.ts"],"sourcesContent":["import type { HubtypeAssistantMessage, HubtypeUserMessage } from '@botonic/core'\nimport type { AgenticInputMessage } from '../types'\n\nexport enum TrackProductName {\n AI_AGENT = 'ai_agent',\n}\n\nexport enum TrackFeature {\n AI_AGENT_RUN = 'ai_agent_run',\n AI_AGENT_GUARDRAIL = 'ai_agent_guardrail',\n}\n\nexport interface LlmRunData {\n inference_id: string\n is_test: boolean\n product_name: string\n deployment_name: string\n model_name: string\n feature: string\n api_version?: string\n num_prompt_tokens: number\n num_completion_tokens: number\n duration_in_milliseconds: number\n temperature: number\n error: string | null\n}\n\nexport interface TrackLlmRunsData {\n llm_runs: LlmRunData[]\n}\n\nexport type HubtypeMessage = HubtypeAssistantMessage | HubtypeUserMessage\n\n// V2 API Types\ninterface HubtypeToolCall {\n id: string\n type: 'function'\n function: {\n name: string\n arguments: string\n }\n}\n\ninterface HubtypeUserMessageV2 {\n role: 'user'\n content: string | null\n}\n\nexport interface HubtypeAssistantMessageV2 {\n role: 'assistant'\n content: string | null\n tool_calls?: HubtypeToolCall[] | null\n}\n\nexport interface HubtypeToolMessageV2 {\n role: 'tool'\n content: string | null\n tool_call_id: string\n}\n\ninterface HubtypeSystemMessageV2 {\n role: 'system'\n content: string | null\n}\n\nexport type HubtypeMessageV2 =\n | HubtypeUserMessageV2\n | HubtypeAssistantMessageV2\n | HubtypeToolMessageV2\n | HubtypeSystemMessageV2\n\nexport interface MessageHistoryResponseV2 {\n messages: HubtypeMessageV2[]\n conversation_id: string | null\n truncated: boolean\n}\n\nexport interface GetMessagesV2Result {\n messages: AgenticInputMessage[]\n conversationId: string | null\n truncated: boolean\n}\n\nexport interface MessageHistoryV2Params {\n last_message_id: string\n max_messages?: number\n include_tool_calls?: boolean\n max_full_tool_results?: number\n debug_mode?: boolean\n}\n"],"names":["TrackProductName","TrackFeature"],"mappings":"AAGO,IAAKA,sBAAgBA,0BAAhBA;;WAAAA;MAEX;AAEM,IAAKC,kBAAYA,0BAAZA;;;WAAAA;MAGX"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OutputMessageType } from "@botonic/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const BotExecutorSchema = z.object({
|
|
9
|
+
type: z.literal(OutputMessageType.BotExecutor),
|
|
10
|
+
content: z.object({
|
|
11
|
+
text: z.string(),
|
|
12
|
+
buttons: z.array(z.object({
|
|
13
|
+
text: z.string(),
|
|
14
|
+
payload: z.string()
|
|
15
|
+
}))
|
|
16
|
+
})
|
|
17
|
+
}).describe('A text message with buttons to allow the bot to execute a specific action. Use it only when asked explicitly in the prompt');
|
|
18
|
+
|
|
19
|
+
export { BotExecutorSchema };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=bot-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output/bot-executor.js","sources":["../../src/structured-output/bot-executor.ts"],"sourcesContent":["import { type BotExecutorMessage, OutputMessageType } from '@botonic/core'\nimport { z } from 'zod'\n\nexport type { BotExecutorMessage }\n\nexport const BotExecutorSchema = z\n .object({\n type: z.literal(OutputMessageType.BotExecutor),\n content: z.object({\n text: z.string(),\n buttons: z.array(\n z.object({\n text: z.string(),\n payload: z.string(),\n })\n ),\n }),\n })\n .describe(\n 'A text message with buttons to allow the bot to execute a specific action. Use it only when asked explicitly in the prompt'\n )\n"],"names":["OutputMessageType","z","BotExecutorSchema"],"mappings":";;;;;AAA0E;AACnD;AAIhB,MAAME,iBAAiBA,GAAGD,QACxB,CAAC;IACN,MAAMA,SAAS,CAACD,6BAA6B;IAC7C,SAASC,QAAQ,CAAC;QAChB,MAAMA,QAAQ;QACd,SAASA,OAAO,CACdA,QAAQ,CAAC;YACP,MAAMA,QAAQ;YACd,SAASA,QAAQ;QACnB;IAEJ;AACF,GACC,QAAQ,CACP,8HACD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OutputMessageType } from "@botonic/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const CarouselSchema = z.object({
|
|
9
|
+
type: z.literal(OutputMessageType.Carousel),
|
|
10
|
+
content: z.object({
|
|
11
|
+
text: z.string().nullable().optional(),
|
|
12
|
+
elements: z.array(z.object({
|
|
13
|
+
title: z.string(),
|
|
14
|
+
subtitle: z.string(),
|
|
15
|
+
image: z.string(),
|
|
16
|
+
button: z.object({
|
|
17
|
+
text: z.string(),
|
|
18
|
+
url: z.string().nullable().optional()
|
|
19
|
+
})
|
|
20
|
+
}))
|
|
21
|
+
})
|
|
22
|
+
}).describe('A carousel message containing a list of elements');
|
|
23
|
+
|
|
24
|
+
export { CarouselSchema };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output/carousel.js","sources":["../../src/structured-output/carousel.ts"],"sourcesContent":["import { type CarouselMessage, OutputMessageType } from '@botonic/core'\nimport { z } from 'zod'\n\nexport type { CarouselMessage }\n\nexport const CarouselSchema = z\n .object({\n type: z.literal(OutputMessageType.Carousel),\n content: z.object({\n text: z.string().nullable().optional(),\n elements: z.array(\n z.object({\n title: z.string(),\n subtitle: z.string(),\n image: z.string(),\n button: z.object({\n text: z.string(),\n url: z.string().nullable().optional(),\n }),\n })\n ),\n }),\n })\n .describe('A carousel message containing a list of elements')\n"],"names":["OutputMessageType","z","CarouselSchema"],"mappings":";;;;;AAAuE;AAChD;AAIhB,MAAME,cAAcA,GAAGD,QACrB,CAAC;IACN,MAAMA,SAAS,CAACD,0BAA0B;IAC1C,SAASC,QAAQ,CAAC;QAChB,MAAMA,QAAQ,GAAG,QAAQ,GAAG,QAAQ;QACpC,UAAUA,OAAO,CACfA,QAAQ,CAAC;YACP,OAAOA,QAAQ;YACf,UAAUA,QAAQ;YAClB,OAAOA,QAAQ;YACf,QAAQA,QAAQ,CAAC;gBACf,MAAMA,QAAQ;gBACd,KAAKA,QAAQ,GAAG,QAAQ,GAAG,QAAQ;YACrC;QACF;IAEJ;AACF,GACC,QAAQ,CAAC,oDAAmD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OutputMessageType } from "@botonic/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const ExitSchema = z.object({
|
|
9
|
+
type: z.literal(OutputMessageType.Exit)
|
|
10
|
+
}).describe('An exit message. This message should only be used to exit the agent due to out of context or the user asking to exit the conversation');
|
|
11
|
+
|
|
12
|
+
export { ExitSchema };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=exit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output/exit.js","sources":["../../src/structured-output/exit.ts"],"sourcesContent":["import { type ExitMessage, OutputMessageType } from '@botonic/core'\nimport { z } from 'zod'\n\nexport type { ExitMessage }\n\nexport const ExitSchema = z\n .object({\n type: z.literal(OutputMessageType.Exit),\n })\n .describe(\n 'An exit message. This message should only be used to exit the agent due to out of context or the user asking to exit the conversation'\n )\n"],"names":["OutputMessageType","z","ExitSchema"],"mappings":";;;;;AAAmE;AAC5C;AAIhB,MAAME,UAAUA,GAAGD,QACjB,CAAC;IACN,MAAMA,SAAS,CAACD,sBAAsB;AACxC,GACC,QAAQ,CACP,yIACD"}
|
|
@@ -47,11 +47,6 @@ export declare const OutputSchema: z.ZodObject<{
|
|
|
47
47
|
payload: z.ZodString;
|
|
48
48
|
}, z.core.$strip>>;
|
|
49
49
|
}, z.core.$strip>;
|
|
50
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
51
|
-
type: z.ZodLiteral<import("@botonic/core").OutputMessageType.RequestContactInfo>;
|
|
52
|
-
content: z.ZodObject<{
|
|
53
|
-
text: z.ZodString;
|
|
54
|
-
}, z.core.$strip>;
|
|
55
50
|
}, z.core.$strip>]>>;
|
|
56
51
|
}, z.core.$strip>;
|
|
57
52
|
export declare function getOutputSchema(externalOutputMessagesSchemas: z.ZodObject<any>[]): z.ZodObject<{
|
|
@@ -98,11 +93,6 @@ export declare function getOutputSchema(externalOutputMessagesSchemas: z.ZodObje
|
|
|
98
93
|
payload: z.ZodString;
|
|
99
94
|
}, z.core.$strip>>;
|
|
100
95
|
}, z.core.$strip>;
|
|
101
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
102
|
-
type: z.ZodLiteral<import("@botonic/core").OutputMessageType.RequestContactInfo>;
|
|
103
|
-
content: z.ZodObject<{
|
|
104
|
-
text: z.ZodString;
|
|
105
|
-
}, z.core.$strip>;
|
|
106
96
|
}, z.core.$strip>, ...z.ZodObject<any, z.core.$strip>[]]>>;
|
|
107
97
|
}, z.core.$strip>;
|
|
108
98
|
export declare function getOutputInstructions(): string;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BotExecutorSchema } from "./bot-executor.js";
|
|
3
|
+
import { CarouselSchema } from "./carousel.js";
|
|
4
|
+
import { ExitSchema } from "./exit.js";
|
|
5
|
+
import { TextSchema } from "./text.js";
|
|
6
|
+
import { TextWithButtonsSchema } from "./text-with-buttons.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
const baseMessageSchemas = [
|
|
21
|
+
TextSchema,
|
|
22
|
+
TextWithButtonsSchema,
|
|
23
|
+
CarouselSchema,
|
|
24
|
+
ExitSchema,
|
|
25
|
+
BotExecutorSchema
|
|
26
|
+
];
|
|
27
|
+
const OutputSchema = z.object({
|
|
28
|
+
messages: z.array(z.union(baseMessageSchemas))
|
|
29
|
+
}).describe('The messages to be sent to the user');
|
|
30
|
+
function getOutputSchema(externalOutputMessagesSchemas) {
|
|
31
|
+
return z.object({
|
|
32
|
+
messages: z.array(z.union([
|
|
33
|
+
...baseMessageSchemas,
|
|
34
|
+
...externalOutputMessagesSchemas
|
|
35
|
+
]))
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function getOutputInstructions() {
|
|
39
|
+
const example = {
|
|
40
|
+
messages: [
|
|
41
|
+
{
|
|
42
|
+
type: 'text',
|
|
43
|
+
content: {
|
|
44
|
+
text: 'Hello, how can I help you today?'
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
};
|
|
49
|
+
const output = `Return a JSON that follows the output schema provided. Never return multiple output schemas concatenated by a line break.\n<example>\n${JSON.stringify(example)}\n</example>`;
|
|
50
|
+
return `<output>\n${output}\n</output>`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { OutputSchema, getOutputInstructions, getOutputSchema };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output/index.js","sources":["../../src/structured-output/index.ts"],"sourcesContent":["import type { OutputMessage } from '@botonic/core'\nimport { z } from 'zod'\nimport { BotExecutorSchema } from './bot-executor'\nimport { CarouselSchema } from './carousel'\nimport { ExitSchema } from './exit'\nimport { TextSchema } from './text'\nimport { TextWithButtonsSchema } from './text-with-buttons'\n\nexport interface Output {\n messages: OutputMessage[]\n}\n\nconst baseMessageSchemas = [\n TextSchema,\n TextWithButtonsSchema,\n CarouselSchema,\n ExitSchema,\n BotExecutorSchema,\n] as const\nexport const OutputSchema = z\n .object({\n messages: z.array(z.union(baseMessageSchemas)),\n })\n .describe('The messages to be sent to the user')\n\nexport function getOutputSchema(\n externalOutputMessagesSchemas: z.ZodObject<any>[]\n) {\n return z.object({\n messages: z.array(\n z.union([...baseMessageSchemas, ...externalOutputMessagesSchemas])\n ),\n })\n}\n\nexport function getOutputInstructions(): string {\n const example = {\n messages: [\n {\n type: 'text',\n content: {\n text: 'Hello, how can I help you today?',\n },\n },\n ],\n }\n const output = `Return a JSON that follows the output schema provided. Never return multiple output schemas concatenated by a line break.\\n<example>\\n${JSON.stringify(example)}\\n</example>`\n return `<output>\\n${output}\\n</output>`\n}\n"],"names":["z","BotExecutorSchema","CarouselSchema","ExitSchema","TextSchema","TextWithButtonsSchema","baseMessageSchemas","OutputSchema","getOutputSchema","externalOutputMessagesSchemas","getOutputInstructions","example","output","JSON"],"mappings":";;;;;;;;;;;;;AACuB;AAC2B;AACP;AACR;AACA;AACwB;AAM3D,MAAMM,kBAAkBA,GAAG;IACzBF,UAAUA;IACVC,qBAAqBA;IACrBH,cAAcA;IACdC,UAAUA;IACVF,iBAAiBA;CAClB;AACM,MAAMM,YAAYA,GAAGP,QACnB,CAAC;IACN,UAAUA,OAAO,CAACA,OAAO,CAACM,kBAAkBA;AAC9C,GACC,QAAQ,CAAC,uCAAsC;AAE3C,SAASE,eAAeA,CAC7BC,6BAAiD;IAEjD,OAAOT,QAAQ,CAAC;QACd,UAAUA,OAAO,CACfA,OAAO,CAAC;eAAIM,kBAAkBA;eAAKG;SAA8B;IAErE;AACF;AAEO,SAASC,qBAAqBA;IACnC,MAAMC,UAAU;QACd,UAAU;YACR;gBACE,MAAM;gBACN,SAAS;oBACP,MAAM;gBACR;YACF;SACD;IACH;IACA,MAAMC,SAAS,CAAC,sIAAsI,EAAEC,KAAK,SAAS,CAACF,SAAS,YAAY,CAAC;IAC7L,OAAO,CAAC,UAAU,EAAEC,OAAO,WAAW,CAAC;AACzC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OutputMessageType } from "@botonic/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const TextWithButtonsSchema = z.object({
|
|
9
|
+
type: z.literal(OutputMessageType.TextWithButtons),
|
|
10
|
+
content: z.object({
|
|
11
|
+
text: z.string(),
|
|
12
|
+
buttons: z.array(z.object({
|
|
13
|
+
text: z.string(),
|
|
14
|
+
url: z.string().nullable().optional(),
|
|
15
|
+
target: z["enum"]([
|
|
16
|
+
'_blank',
|
|
17
|
+
'_self'
|
|
18
|
+
]).default('_blank').nullable().optional().describe('The target of the button when it has an url. If not provided, it will default to _blank.')
|
|
19
|
+
}))
|
|
20
|
+
})
|
|
21
|
+
}).describe('A text message with buttons to allow the user to use quick replies');
|
|
22
|
+
|
|
23
|
+
export { TextWithButtonsSchema };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=text-with-buttons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output/text-with-buttons.js","sources":["../../src/structured-output/text-with-buttons.ts"],"sourcesContent":["import { OutputMessageType, type TextWithButtonsMessage } from '@botonic/core'\nimport { z } from 'zod'\n\nexport type { TextWithButtonsMessage }\n\nexport const TextWithButtonsSchema = z\n .object({\n type: z.literal(OutputMessageType.TextWithButtons),\n content: z.object({\n text: z.string(),\n buttons: z.array(\n z.object({\n text: z.string(),\n url: z.string().nullable().optional(),\n target: z\n .enum(['_blank', '_self'])\n .default('_blank')\n .nullable()\n .optional()\n .describe(\n 'The target of the button when it has an url. If not provided, it will default to _blank.'\n ),\n })\n ),\n }),\n })\n .describe(\n 'A text message with buttons to allow the user to use quick replies'\n )\n"],"names":["OutputMessageType","z","TextWithButtonsSchema"],"mappings":";;;;;AAA8E;AACvD;AAIhB,MAAME,qBAAqBA,GAAGD,QAC5B,CAAC;IACN,MAAMA,SAAS,CAACD,iCAAiC;IACjD,SAASC,QAAQ,CAAC;QAChB,MAAMA,QAAQ;QACd,SAASA,OAAO,CACdA,QAAQ,CAAC;YACP,MAAMA,QAAQ;YACd,KAAKA,QAAQ,GAAG,QAAQ,GAAG,QAAQ;YACnC,QAAQA,SACD,CAAC;gBAAC;gBAAU;aAAQ,EACxB,OAAO,CAAC,UACR,QAAQ,GACR,QAAQ,GACR,QAAQ,CACP;QAEN;IAEJ;AACF,GACC,QAAQ,CACP,sEACD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OutputMessageType } from "@botonic/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const TextSchema = z.object({
|
|
9
|
+
type: z.literal(OutputMessageType.Text),
|
|
10
|
+
content: z.object({
|
|
11
|
+
text: z.string()
|
|
12
|
+
})
|
|
13
|
+
}).describe('A text message');
|
|
14
|
+
|
|
15
|
+
export { TextSchema };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output/text.js","sources":["../../src/structured-output/text.ts"],"sourcesContent":["import { OutputMessageType, type TextMessage } from '@botonic/core'\nimport { z } from 'zod'\n\nexport type { TextMessage }\n\nexport const TextSchema = z\n .object({\n type: z.literal(OutputMessageType.Text),\n content: z.object({\n text: z.string(),\n }),\n })\n .describe('A text message')\n"],"names":["OutputMessageType","z","TextSchema"],"mappings":";;;;;AAAmE;AAC5C;AAIhB,MAAME,UAAUA,GAAGD,QACjB,CAAC;IACN,MAAMA,SAAS,CAACD,sBAAsB;IACtC,SAASC,QAAQ,CAAC;QAChB,MAAMA,QAAQ;IAChB;AACF,GACC,QAAQ,CAAC,kBAAiB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Tool } from '../types';
|
|
2
|
-
export { createRetrieveKnowledge, RETRIEVE_KNOWLEDGE_TOOL_NAME, } from './retrieve-knowledge';
|
|
1
|
+
import type { Tool } from '../types.js';
|
|
2
|
+
export { createRetrieveKnowledge, RETRIEVE_KNOWLEDGE_TOOL_NAME, } from './retrieve-knowledge.js';
|
|
3
3
|
export declare const mandatoryTools: Tool[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools/index.js","sources":["../../src/tools/index.ts"],"sourcesContent":["import type { Tool } from '../types'\n\nexport {\n createRetrieveKnowledge,\n RETRIEVE_KNOWLEDGE_TOOL_NAME,\n} from './retrieve-knowledge'\n\nexport const mandatoryTools: Tool[] = []\n"],"names":["createRetrieveKnowledge","RETRIEVE_KNOWLEDGE_TOOL_NAME","mandatoryTools"],"mappings":";AAK6B;AAEtB,MAAME,cAAcA,GAAW,EAAE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { Context } from '../types';
|
|
2
|
+
import type { Context } from '../types.js';
|
|
3
3
|
export declare const RETRIEVE_KNOWLEDGE_TOOL_NAME = "retrieve_knowledge";
|
|
4
|
-
export declare const createRetrieveKnowledge: (sourceIds: string[]) => import("@openai/agents").FunctionTool<Context<import("@botonic/core").ResolvedPlugins, any>, z.ZodObject<{
|
|
4
|
+
export declare const createRetrieveKnowledge: (sourceIds: string[]) => import("@openai/agents-core").FunctionTool<Context<import("@botonic/core").ResolvedPlugins, any>, z.ZodObject<{
|
|
5
5
|
query: z.ZodString;
|
|
6
6
|
}, z.core.$strip>, string>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { tool } from "@openai/agents";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { HubtypeApiClient } from "../services/hubtype-api-client.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const RETRIEVE_KNOWLEDGE_TOOL_NAME = 'retrieve_knowledge';
|
|
12
|
+
const createRetrieveKnowledge = (sourceIds)=>tool({
|
|
13
|
+
name: RETRIEVE_KNOWLEDGE_TOOL_NAME,
|
|
14
|
+
description: 'Consult the knowledge base for information before answering. Use this tool to make sure the information you provide is faithful.',
|
|
15
|
+
parameters: z.object({
|
|
16
|
+
query: z.string().describe('The query to search the knowledge base for')
|
|
17
|
+
}),
|
|
18
|
+
execute: async (input, runContext)=>{
|
|
19
|
+
const context = runContext?.context;
|
|
20
|
+
const query = input.query;
|
|
21
|
+
if (!context) {
|
|
22
|
+
throw new Error('Context is required');
|
|
23
|
+
}
|
|
24
|
+
const client = new HubtypeApiClient(context.authToken);
|
|
25
|
+
const chunks = await client.retrieveSimilarChunks(query, sourceIds);
|
|
26
|
+
const chunksIds = chunks.map((chunk)=>chunk.id);
|
|
27
|
+
const chunkTexts = chunks.map((chunk)=>chunk.text);
|
|
28
|
+
context.knowledgeUsed = {
|
|
29
|
+
query,
|
|
30
|
+
sourceIds,
|
|
31
|
+
chunksIds,
|
|
32
|
+
chunkTexts
|
|
33
|
+
};
|
|
34
|
+
return chunkTexts;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
export { RETRIEVE_KNOWLEDGE_TOOL_NAME, createRetrieveKnowledge };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=retrieve-knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools/retrieve-knowledge.js","sources":["../../src/tools/retrieve-knowledge.ts"],"sourcesContent":["import { type RunContext, tool } from '@openai/agents'\nimport { z } from 'zod'\n\nimport { HubtypeApiClient } from '../services/hubtype-api-client'\nimport type { Context } from '../types'\n\nexport const RETRIEVE_KNOWLEDGE_TOOL_NAME = 'retrieve_knowledge'\n\nexport const createRetrieveKnowledge = (sourceIds: string[]) =>\n tool({\n name: RETRIEVE_KNOWLEDGE_TOOL_NAME,\n description:\n 'Consult the knowledge base for information before answering. Use this tool to make sure the information you provide is faithful.',\n parameters: z.object({\n query: z.string().describe('The query to search the knowledge base for'),\n }),\n execute: async (\n input: { query: string },\n runContext?: RunContext<Context>\n ): Promise<string[]> => {\n const context = runContext?.context\n const query = input.query\n if (!context) {\n throw new Error('Context is required')\n }\n const client = new HubtypeApiClient(context.authToken)\n const chunks = await client.retrieveSimilarChunks(query, sourceIds)\n const chunksIds = chunks.map(chunk => chunk.id)\n const chunkTexts = chunks.map(chunk => chunk.text)\n\n context.knowledgeUsed = {\n query,\n sourceIds,\n chunksIds,\n chunkTexts,\n }\n\n return chunkTexts\n },\n })\n"],"names":["tool","z","HubtypeApiClient","RETRIEVE_KNOWLEDGE_TOOL_NAME","createRetrieveKnowledge","sourceIds","input","runContext","context","query","Error","client","chunks","chunksIds","chunk","chunkTexts"],"mappings":";;;;;;;AAAsD;AAC/B;AAE0C;AAG1D,MAAMG,4BAA4BA,GAAG,qBAAoB;AAEzD,MAAMC,uBAAuBA,GAAG,CAACC,YACtCL,IAAIA,CAAC;QACH,MAAMG,4BAA4BA;QAClC,aACE;QACF,YAAYF,QAAQ,CAAC;YACnB,OAAOA,QAAQ,GAAG,QAAQ,CAAC;QAC7B;QACA,SAAS,OACPK,OACAC;YAEA,MAAMC,UAAUD,YAAY;YAC5B,MAAME,QAAQH,MAAM,KAAK;YACzB,IAAI,CAACE,SAAS;gBACZ,MAAM,IAAIE,MAAM;YAClB;YACA,MAAMC,SAAS,IAAIT,gBAAgBA,CAACM,QAAQ,SAAS;YACrD,MAAMI,SAAS,MAAMD,OAAO,qBAAqB,CAACF,OAAOJ;YACzD,MAAMQ,YAAYD,OAAO,GAAG,CAACE,CAAAA,QAASA,MAAM,EAAE;YAC9C,MAAMC,aAAaH,OAAO,GAAG,CAACE,CAAAA,QAASA,MAAM,IAAI;YAEjDN,QAAQ,aAAa,GAAG;gBACtBC;gBACAJ;gBACAQ;gBACAE;YACF;YAEA,OAAOA;QACT;IACF,GAAE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AgenticOutputMessage, AiAgentArgs,
|
|
1
|
+
import type { AgenticOutputMessage, AiAgentArgs, BotContext, GuardrailRule, InferenceResponse, ResolvedPlugins, RunResult } from '@botonic/core';
|
|
2
2
|
import type { Agent, AgentInputItem, AgentOutputType, RunContext as OpenAIRunContext, Tool as OpenAITool } from '@openai/agents';
|
|
3
3
|
import type { ZodType } from 'zod';
|
|
4
|
-
import type { OutputSchema } from './structured-output';
|
|
4
|
+
import type { OutputSchema } from './structured-output/index.js';
|
|
5
5
|
export interface Context<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
6
6
|
authToken: string;
|
|
7
7
|
knowledgeUsed: {
|
|
@@ -50,4 +50,4 @@ export interface ResultRawResponse {
|
|
|
50
50
|
providerData?: Record<string, unknown>;
|
|
51
51
|
}
|
|
52
52
|
export type AgenticInputMessage = AgentInputItem;
|
|
53
|
-
export { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult, };
|
|
53
|
+
export type { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult, };
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import type {\n AgenticOutputMessage,\n AiAgentArgs,\n BotContext,\n GuardrailRule,\n InferenceResponse,\n ResolvedPlugins,\n RunResult,\n} from '@botonic/core'\nimport type {\n Agent,\n AgentInputItem,\n AgentOutputType,\n RunContext as OpenAIRunContext,\n Tool as OpenAITool,\n} from '@openai/agents'\nimport type { ZodType } from 'zod'\n\nimport type { OutputSchema } from './structured-output'\n\nexport interface Context<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n TExtraData = any,\n> {\n authToken: string\n knowledgeUsed: {\n query: string\n sourceIds: string[]\n chunksIds: string[]\n chunkTexts: string[]\n }\n request: BotContext<TPlugins, TExtraData>\n}\n\nexport type RunContext<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n TExtraData = any,\n> = OpenAIRunContext<Context<TPlugins, TExtraData>>\n\nexport interface CustomTool<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n TExtraData = any,\n> {\n name: string\n description: string\n schema: ZodType\n func: (\n input?: any,\n runContext?: RunContext<TPlugins, TExtraData>\n ) => Promise<any>\n}\n\nexport interface Chunk {\n id: string\n text: string\n}\n\nexport type Tool<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n TExtraData = any,\n> = OpenAITool<Context<TPlugins, TExtraData>>\n\nexport type AIAgent<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n TExtraData = any,\n> = Agent<Context<TPlugins, TExtraData>, AgentOutputType<typeof OutputSchema>>\n\nexport interface MemoryOptions {\n maxMessages: number\n includeToolCalls: boolean\n maxFullToolResults: number\n debugMode: boolean\n}\n\nexport interface PluginAiAgentOptions<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n TExtraData = any,\n> {\n authToken?: string\n customTools?: CustomTool<TPlugins, TExtraData>[]\n maxRetries?: number\n timeout?: number\n memory?: Partial<MemoryOptions>\n /** Enable debug logging for AI agent configuration and execution details. */\n enableDebug?: boolean\n /** Key for the local storage to to get messages in local development mode */\n localStorageKey?: string\n}\n\nexport interface ResultRawResponse {\n usage: {\n inputTokens: number\n outputTokens: number\n }\n providerData?: Record<string, unknown>\n}\n\nexport type AgenticInputMessage = AgentInputItem\n\nexport type {\n AgenticOutputMessage,\n AiAgentArgs,\n GuardrailRule,\n InferenceResponse,\n RunResult,\n}\n"],"names":[],"mappings":"AAyGC"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
+
"type": "module",
|
|
2
3
|
"name": "@botonic/plugin-ai-agents",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"main": "./lib/
|
|
5
|
-
"module": "./lib/
|
|
4
|
+
"version": "0.57.0-rslib-esm.1",
|
|
5
|
+
"main": "./lib/index.js",
|
|
6
|
+
"module": "./lib/index.js",
|
|
6
7
|
"description": "Use AI Agents to generate your contents",
|
|
7
8
|
"scripts": {
|
|
8
|
-
"build": "
|
|
9
|
-
"build:watch": "
|
|
9
|
+
"build": "rslib build --no-env",
|
|
10
|
+
"build:watch": "rslib build --watch --no-env",
|
|
10
11
|
"test": "../../node_modules/.bin/jest --coverage",
|
|
11
|
-
"prepublishOnly": "
|
|
12
|
+
"prepublishOnly": "npm run build && npm run test && npm run lint",
|
|
12
13
|
"lint": "biome check --write src/ tests/",
|
|
13
14
|
"lint:check": "biome check src/ tests/",
|
|
14
15
|
"format": "biome format --write src/ tests/"
|
|
15
16
|
},
|
|
16
17
|
"dependencies": {
|
|
17
|
-
"@botonic/core": "
|
|
18
|
+
"@botonic/core": "0.57.0-rslib-esm.1",
|
|
18
19
|
"@openai/agents": "^0.10.1",
|
|
19
20
|
"axios": "^1.18.1",
|
|
20
21
|
"openai": "^6.36.0",
|
|
@@ -45,5 +46,6 @@
|
|
|
45
46
|
"typescript",
|
|
46
47
|
"javascript"
|
|
47
48
|
],
|
|
48
|
-
"author": ""
|
|
49
|
+
"author": "",
|
|
50
|
+
"types": "./lib/index.d.ts"
|
|
49
51
|
}
|
|
@@ -3,7 +3,6 @@ import { z } from 'zod'
|
|
|
3
3
|
import { BotExecutorSchema } from './bot-executor'
|
|
4
4
|
import { CarouselSchema } from './carousel'
|
|
5
5
|
import { ExitSchema } from './exit'
|
|
6
|
-
import { RequestContactInfoSchema } from './request-contact-info'
|
|
7
6
|
import { TextSchema } from './text'
|
|
8
7
|
import { TextWithButtonsSchema } from './text-with-buttons'
|
|
9
8
|
|
|
@@ -17,7 +16,6 @@ const baseMessageSchemas = [
|
|
|
17
16
|
CarouselSchema,
|
|
18
17
|
ExitSchema,
|
|
19
18
|
BotExecutorSchema,
|
|
20
|
-
RequestContactInfoSchema,
|
|
21
19
|
] as const
|
|
22
20
|
export const OutputSchema = z
|
|
23
21
|
.object({
|
package/src/types.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
AgenticOutputMessage,
|
|
3
3
|
AiAgentArgs,
|
|
4
|
-
|
|
4
|
+
BotContext,
|
|
5
5
|
GuardrailRule,
|
|
6
6
|
InferenceResponse,
|
|
7
|
-
|
|
7
|
+
ResolvedPlugins,
|
|
8
8
|
RunResult,
|
|
9
9
|
} from '@botonic/core'
|
|
10
10
|
import type {
|
|
@@ -97,7 +97,7 @@ export interface ResultRawResponse {
|
|
|
97
97
|
|
|
98
98
|
export type AgenticInputMessage = AgentInputItem
|
|
99
99
|
|
|
100
|
-
export {
|
|
100
|
+
export type {
|
|
101
101
|
AgenticOutputMessage,
|
|
102
102
|
AiAgentArgs,
|
|
103
103
|
GuardrailRule,
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseAgent = void 0;
|
|
4
|
-
const guardrails_1 = require("../guardrails");
|
|
5
|
-
const structured_output_1 = require("../structured-output");
|
|
6
|
-
class BaseAgent {
|
|
7
|
-
constructor(options) {
|
|
8
|
-
this.name = options.name;
|
|
9
|
-
this.instructions = options.instructions;
|
|
10
|
-
this.llmConfig = options.llmConfig;
|
|
11
|
-
this.inputGuardrailRules = options.inputGuardrailRules;
|
|
12
|
-
this.outputMessagesSchemas = options.outputMessagesSchemas || [];
|
|
13
|
-
this.guardrailTrackingContext = options.guardrailTrackingContext;
|
|
14
|
-
}
|
|
15
|
-
getAgentModelSettings() {
|
|
16
|
-
const modelSettings = { ...this.llmConfig.modelSettings };
|
|
17
|
-
if (this.llmConfig.modelSettings.reasoning) {
|
|
18
|
-
modelSettings.reasoning = { ...this.llmConfig.modelSettings.reasoning };
|
|
19
|
-
}
|
|
20
|
-
if (this.llmConfig.modelSettings.text) {
|
|
21
|
-
modelSettings.text = { ...this.llmConfig.modelSettings.text };
|
|
22
|
-
}
|
|
23
|
-
return modelSettings;
|
|
24
|
-
}
|
|
25
|
-
async getInputGuardrails() {
|
|
26
|
-
return await (0, guardrails_1.createInputGuardrails)(this.inputGuardrailRules, this.llmConfig, this.guardrailTrackingContext);
|
|
27
|
-
}
|
|
28
|
-
getOutputType() {
|
|
29
|
-
return (0, structured_output_1.getOutputSchema)(this.outputMessagesSchemas);
|
|
30
|
-
}
|
|
31
|
-
addOutputInstructions(instructions) {
|
|
32
|
-
return `${instructions}\n\n${(0, structured_output_1.getOutputInstructions)()}`;
|
|
33
|
-
}
|
|
34
|
-
async getModel() {
|
|
35
|
-
return await this.llmConfig.getModel();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.BaseAgent = BaseAgent;
|
|
39
|
-
//# sourceMappingURL=base-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../../src/agents/base-agent.ts"],"names":[],"mappings":";;;AAQA,8CAAqD;AAGrD,4DAI6B;AAY7B,MAAsB,SAAS;IAQ7B,YAAY,OAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAA;QACtD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAA;QAChE,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAA;IAClE,CAAC;IAES,qBAAqB;QAC7B,MAAM,aAAa,GAAkB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAA;QAExE,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;YAC3C,aAAa,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QACzE,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACtC,aAAa,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;QAC/D,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAES,KAAK,CAAC,kBAAkB;QAChC,OAAO,MAAM,IAAA,kCAAqB,EAChC,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,wBAAwB,CAC9B,CAAA;IACH,CAAC;IAES,aAAa;QACrB,OAAO,IAAA,mCAAe,EAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACpD,CAAC;IAES,qBAAqB,CAAC,YAAoB;QAClD,OAAO,GAAG,YAAY,OAAO,IAAA,yCAAqB,GAAE,EAAE,CAAA;IACxD,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;IACxC,CAAC;CACF;AAlDD,8BAkDC"}
|
package/lib/cjs/agents/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SpecialistAgent = exports.RouterAgent = void 0;
|
|
4
|
-
var router_agent_1 = require("./router-agent");
|
|
5
|
-
Object.defineProperty(exports, "RouterAgent", { enumerable: true, get: function () { return router_agent_1.RouterAgent; } });
|
|
6
|
-
var specialist_agent_1 = require("./specialist-agent");
|
|
7
|
-
Object.defineProperty(exports, "SpecialistAgent", { enumerable: true, get: function () { return specialist_agent_1.SpecialistAgent; } });
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AACpB,uDAAoD;AAA3C,mHAAA,eAAe,OAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { ResolvedPlugins } from '@botonic/core';
|
|
2
|
-
import { type AgentOutputType, type Handoff } from '@openai/agents';
|
|
3
|
-
import type { z } from 'zod';
|
|
4
|
-
import type { GuardrailTrackingContext } from '../guardrails/input';
|
|
5
|
-
import type { LLMConfig } from '../llm-config';
|
|
6
|
-
import type { OutputSchema } from '../structured-output';
|
|
7
|
-
import type { AIAgent, Context, GuardrailRule } from '../types';
|
|
8
|
-
import { BaseAgent } from './base-agent';
|
|
9
|
-
interface RouterAgentOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = unknown> {
|
|
10
|
-
name: string;
|
|
11
|
-
instructions: string;
|
|
12
|
-
llmConfig: LLMConfig;
|
|
13
|
-
handoffs: Handoff<Context<TPlugins, TExtraData>, AgentOutputType<typeof OutputSchema>>[];
|
|
14
|
-
inputGuardrailRules: GuardrailRule[];
|
|
15
|
-
outputMessagesSchemas?: z.ZodObject[];
|
|
16
|
-
guardrailTrackingContext: GuardrailTrackingContext;
|
|
17
|
-
}
|
|
18
|
-
export declare class RouterAgent<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = unknown> extends BaseAgent {
|
|
19
|
-
private handoffs;
|
|
20
|
-
private agent;
|
|
21
|
-
private constructor();
|
|
22
|
-
static create<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = unknown>(options: RouterAgentOptions<TPlugins, TExtraData>): Promise<RouterAgent<TPlugins, TExtraData>>;
|
|
23
|
-
getAgent(): AIAgent<TPlugins, TExtraData>;
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RouterAgent = void 0;
|
|
4
|
-
const agents_1 = require("@openai/agents");
|
|
5
|
-
const extensions_1 = require("@openai/agents-core/extensions");
|
|
6
|
-
const base_agent_1 = require("./base-agent");
|
|
7
|
-
class RouterAgent extends base_agent_1.BaseAgent {
|
|
8
|
-
constructor(options) {
|
|
9
|
-
super(options);
|
|
10
|
-
this.handoffs = options.handoffs;
|
|
11
|
-
}
|
|
12
|
-
static async create(options) {
|
|
13
|
-
const routerAgent = new RouterAgent(options);
|
|
14
|
-
const inputGuardrails = await routerAgent.getInputGuardrails();
|
|
15
|
-
// Agent.create is typed as Agent<UnknownContext>; we run with Context<TPlugins, TExtraData>.
|
|
16
|
-
const agent = agents_1.Agent.create({
|
|
17
|
-
name: routerAgent.name,
|
|
18
|
-
model: await routerAgent.getModel(),
|
|
19
|
-
modelSettings: routerAgent.getAgentModelSettings(),
|
|
20
|
-
instructions: routerAgent.addOutputInstructions(`${extensions_1.RECOMMENDED_PROMPT_PREFIX}${routerAgent.instructions}`),
|
|
21
|
-
handoffs: routerAgent.handoffs,
|
|
22
|
-
outputType: routerAgent.getOutputType(),
|
|
23
|
-
inputGuardrails,
|
|
24
|
-
});
|
|
25
|
-
routerAgent.agent = agent;
|
|
26
|
-
return routerAgent;
|
|
27
|
-
}
|
|
28
|
-
getAgent() {
|
|
29
|
-
return this.agent;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.RouterAgent = RouterAgent;
|
|
33
|
-
//# sourceMappingURL=router-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router-agent.js","sourceRoot":"","sources":["../../../src/agents/router-agent.ts"],"names":[],"mappings":";;;AACA,2CAA0E;AAC1E,+DAA0E;AAM1E,6CAAwC;AAkBxC,MAAa,WAGX,SAAQ,sBAAS;IAOjB,YAAoB,OAAiD;QACnE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAIjB,OAAiD;QAEjD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAuB,OAAO,CAAC,CAAA;QAClE,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAA;QAE9D,6FAA6F;QAC7F,MAAM,KAAK,GAAG,cAAK,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,KAAK,EAAE,MAAM,WAAW,CAAC,QAAQ,EAAE;YACnC,aAAa,EAAE,WAAW,CAAC,qBAAqB,EAAE;YAClD,YAAY,EAAE,WAAW,CAAC,qBAAqB,CAC7C,GAAG,sCAAyB,GAAG,WAAW,CAAC,YAAY,EAAE,CAC1D;YACD,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,UAAU,EAAE,WAAW,CAAC,aAAa,EAAE;YACvC,eAAe;SAChB,CAAkC,CAAA;QAEnC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;QACzB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AA5CD,kCA4CC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"specialist-agent.js","sourceRoot":"","sources":["../../../src/agents/specialist-agent.ts"],"names":[],"mappings":"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"}
|