@botonic/plugin-ai-agents 0.58.0-alpha-new-stack.0 → 0.58.0-alpha.0

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.
Files changed (224) hide show
  1. package/lib/{agents → cjs/agents}/base-agent.d.ts +4 -4
  2. package/lib/cjs/agents/base-agent.js +39 -0
  3. package/lib/cjs/agents/base-agent.js.map +1 -0
  4. package/lib/cjs/agents/index.d.ts +2 -0
  5. package/lib/cjs/agents/index.js +8 -0
  6. package/lib/cjs/agents/index.js.map +1 -0
  7. package/lib/{agents → cjs/agents}/router-agent.d.ts +5 -5
  8. package/lib/cjs/agents/router-agent.js +33 -0
  9. package/lib/cjs/agents/router-agent.js.map +1 -0
  10. package/lib/{agents → cjs/agents}/specialist-agent.d.ts +5 -5
  11. package/lib/{agents → cjs/agents}/specialist-agent.js +45 -65
  12. package/lib/cjs/agents/specialist-agent.js.map +1 -0
  13. package/lib/{bot-config-tools.d.ts → cjs/bot-config-tools.d.ts} +1 -1
  14. package/lib/cjs/bot-config-tools.js +18 -0
  15. package/lib/cjs/bot-config-tools.js.map +1 -0
  16. package/lib/cjs/constants.js +25 -0
  17. package/lib/cjs/constants.js.map +1 -0
  18. package/lib/{debug-logger.d.ts → cjs/debug-logger.d.ts} +1 -1
  19. package/lib/{debug-logger.js → cjs/debug-logger.js} +9 -14
  20. package/lib/cjs/debug-logger.js.map +1 -0
  21. package/lib/cjs/guardrails/index.d.ts +1 -0
  22. package/lib/cjs/guardrails/index.js +5 -0
  23. package/lib/cjs/guardrails/index.js.map +1 -0
  24. package/lib/{guardrails → cjs/guardrails}/input.d.ts +2 -2
  25. package/lib/cjs/guardrails/input.js +96 -0
  26. package/lib/cjs/guardrails/input.js.map +1 -0
  27. package/lib/{index.d.ts → cjs/index.d.ts} +3 -3
  28. package/lib/{index.js → cjs/index.js} +78 -115
  29. package/lib/cjs/index.js.map +1 -0
  30. package/lib/{llm-config.d.ts → cjs/llm-config.d.ts} +1 -1
  31. package/lib/cjs/llm-config.js +121 -0
  32. package/lib/cjs/llm-config.js.map +1 -0
  33. package/lib/{runners → cjs/runners}/base-runner.d.ts +3 -3
  34. package/lib/{runners → cjs/runners}/base-runner.js +72 -85
  35. package/lib/cjs/runners/base-runner.js.map +1 -0
  36. package/lib/cjs/runners/index.d.ts +2 -0
  37. package/lib/cjs/runners/index.js +8 -0
  38. package/lib/cjs/runners/index.js.map +1 -0
  39. package/lib/{runners → cjs/runners}/router-runner.d.ts +2 -2
  40. package/lib/{runners → cjs/runners}/router-runner.js +14 -19
  41. package/lib/cjs/runners/router-runner.js.map +1 -0
  42. package/lib/{runners → cjs/runners}/specialist-runner.d.ts +1 -1
  43. package/lib/cjs/runners/specialist-runner.js +8 -0
  44. package/lib/cjs/runners/specialist-runner.js.map +1 -0
  45. package/lib/{services → cjs/services}/hubtype-api-client.d.ts +2 -2
  46. package/lib/cjs/services/hubtype-api-client.js +176 -0
  47. package/lib/cjs/services/hubtype-api-client.js.map +1 -0
  48. package/lib/{services → cjs/services}/types.d.ts +1 -1
  49. package/lib/cjs/services/types.js +13 -0
  50. package/lib/cjs/services/types.js.map +1 -0
  51. package/lib/cjs/structured-output/bot-executor.js +18 -0
  52. package/lib/cjs/structured-output/bot-executor.js.map +1 -0
  53. package/lib/cjs/structured-output/carousel.js +23 -0
  54. package/lib/cjs/structured-output/carousel.js.map +1 -0
  55. package/lib/cjs/structured-output/do-nothing.js +11 -0
  56. package/lib/cjs/structured-output/do-nothing.js.map +1 -0
  57. package/lib/cjs/structured-output/exit.js +11 -0
  58. package/lib/cjs/structured-output/exit.js.map +1 -0
  59. package/lib/cjs/structured-output/index.js +47 -0
  60. package/lib/cjs/structured-output/index.js.map +1 -0
  61. package/lib/cjs/structured-output/request-contact-info.js +14 -0
  62. package/lib/cjs/structured-output/request-contact-info.js.map +1 -0
  63. package/lib/cjs/structured-output/text-with-buttons.js +24 -0
  64. package/lib/cjs/structured-output/text-with-buttons.js.map +1 -0
  65. package/lib/cjs/structured-output/text.js +14 -0
  66. package/lib/cjs/structured-output/text.js.map +1 -0
  67. package/lib/{tools → cjs/tools}/index.d.ts +2 -2
  68. package/lib/cjs/tools/index.js +8 -0
  69. package/lib/cjs/tools/index.js.map +1 -0
  70. package/lib/{tools → cjs/tools}/retrieve-knowledge.d.ts +2 -2
  71. package/lib/cjs/tools/retrieve-knowledge.js +34 -0
  72. package/lib/cjs/tools/retrieve-knowledge.js.map +1 -0
  73. package/lib/{types.d.ts → cjs/types.d.ts} +1 -1
  74. package/lib/cjs/types.js +3 -0
  75. package/lib/cjs/types.js.map +1 -0
  76. package/lib/esm/agents/base-agent.d.ts +28 -0
  77. package/lib/esm/agents/base-agent.js +39 -0
  78. package/lib/esm/agents/base-agent.js.map +1 -0
  79. package/lib/esm/agents/index.d.ts +2 -0
  80. package/lib/esm/agents/index.js +8 -0
  81. package/lib/esm/agents/index.js.map +1 -0
  82. package/lib/esm/agents/router-agent.d.ts +25 -0
  83. package/lib/esm/agents/router-agent.js +33 -0
  84. package/lib/esm/agents/router-agent.js.map +1 -0
  85. package/lib/esm/agents/specialist-agent.d.ts +39 -0
  86. package/lib/esm/agents/specialist-agent.js +108 -0
  87. package/lib/esm/agents/specialist-agent.js.map +1 -0
  88. package/lib/esm/bot-config-tools.d.ts +7 -0
  89. package/lib/esm/bot-config-tools.js +18 -0
  90. package/lib/esm/bot-config-tools.js.map +1 -0
  91. package/lib/esm/constants.d.ts +21 -0
  92. package/lib/esm/constants.js +25 -0
  93. package/lib/esm/constants.js.map +1 -0
  94. package/lib/esm/debug-logger.d.ts +33 -0
  95. package/lib/esm/debug-logger.js +116 -0
  96. package/lib/esm/debug-logger.js.map +1 -0
  97. package/lib/esm/guardrails/index.d.ts +1 -0
  98. package/lib/esm/guardrails/index.js +5 -0
  99. package/lib/esm/guardrails/index.js.map +1 -0
  100. package/lib/esm/guardrails/input.d.ts +10 -0
  101. package/lib/esm/guardrails/input.js +96 -0
  102. package/lib/esm/guardrails/input.js.map +1 -0
  103. package/lib/esm/index.d.ts +22 -0
  104. package/lib/esm/index.js +223 -0
  105. package/lib/esm/index.js.map +1 -0
  106. package/lib/esm/llm-config.d.ts +30 -0
  107. package/lib/esm/llm-config.js +121 -0
  108. package/lib/esm/llm-config.js.map +1 -0
  109. package/lib/esm/runners/base-runner.d.ts +31 -0
  110. package/lib/esm/runners/base-runner.js +194 -0
  111. package/lib/esm/runners/base-runner.js.map +1 -0
  112. package/lib/esm/runners/index.d.ts +2 -0
  113. package/lib/esm/runners/index.js +8 -0
  114. package/lib/esm/runners/index.js.map +1 -0
  115. package/lib/esm/runners/router-runner.d.ts +8 -0
  116. package/lib/esm/runners/router-runner.js +44 -0
  117. package/lib/esm/runners/router-runner.js.map +1 -0
  118. package/lib/esm/runners/specialist-runner.d.ts +4 -0
  119. package/lib/esm/runners/specialist-runner.js +8 -0
  120. package/lib/esm/runners/specialist-runner.js.map +1 -0
  121. package/lib/esm/services/hubtype-api-client.d.ts +13 -0
  122. package/lib/esm/services/hubtype-api-client.js +176 -0
  123. package/lib/esm/services/hubtype-api-client.js.map +1 -0
  124. package/lib/esm/services/types.d.ts +72 -0
  125. package/lib/esm/services/types.js +13 -0
  126. package/lib/esm/services/types.js.map +1 -0
  127. package/lib/esm/structured-output/bot-executor.d.ts +13 -0
  128. package/lib/esm/structured-output/bot-executor.js +18 -0
  129. package/lib/esm/structured-output/bot-executor.js.map +1 -0
  130. package/lib/esm/structured-output/carousel.d.ts +18 -0
  131. package/lib/esm/structured-output/carousel.js +23 -0
  132. package/lib/esm/structured-output/carousel.js.map +1 -0
  133. package/lib/esm/structured-output/do-nothing.d.ts +6 -0
  134. package/lib/esm/structured-output/do-nothing.js +11 -0
  135. package/lib/esm/structured-output/do-nothing.js.map +1 -0
  136. package/lib/esm/structured-output/exit.d.ts +6 -0
  137. package/lib/esm/structured-output/exit.js +11 -0
  138. package/lib/esm/structured-output/exit.js.map +1 -0
  139. package/lib/esm/structured-output/index.d.ts +112 -0
  140. package/lib/esm/structured-output/index.js +47 -0
  141. package/lib/esm/structured-output/index.js.map +1 -0
  142. package/lib/esm/structured-output/request-contact-info.d.ts +9 -0
  143. package/lib/esm/structured-output/request-contact-info.js +14 -0
  144. package/lib/esm/structured-output/request-contact-info.js.map +1 -0
  145. package/lib/esm/structured-output/text-with-buttons.d.ts +17 -0
  146. package/lib/esm/structured-output/text-with-buttons.js +24 -0
  147. package/lib/esm/structured-output/text-with-buttons.js.map +1 -0
  148. package/lib/esm/structured-output/text.d.ts +9 -0
  149. package/lib/esm/structured-output/text.js +14 -0
  150. package/lib/esm/structured-output/text.js.map +1 -0
  151. package/lib/esm/tools/index.d.ts +3 -0
  152. package/lib/esm/tools/index.js +8 -0
  153. package/lib/esm/tools/index.js.map +1 -0
  154. package/lib/esm/tools/retrieve-knowledge.d.ts +6 -0
  155. package/lib/esm/tools/retrieve-knowledge.js +34 -0
  156. package/lib/esm/tools/retrieve-knowledge.js.map +1 -0
  157. package/lib/esm/types.d.ts +53 -0
  158. package/lib/esm/types.js +3 -0
  159. package/lib/esm/types.js.map +1 -0
  160. package/package.json +9 -11
  161. package/src/index.ts +6 -1
  162. package/lib/agents/base-agent.js +0 -66
  163. package/lib/agents/base-agent.js.map +0 -1
  164. package/lib/agents/index.d.ts +0 -2
  165. package/lib/agents/index.js +0 -9
  166. package/lib/agents/index.js.map +0 -1
  167. package/lib/agents/router-agent.js +0 -50
  168. package/lib/agents/router-agent.js.map +0 -1
  169. package/lib/agents/specialist-agent.js.map +0 -1
  170. package/lib/bot-config-tools.js +0 -20
  171. package/lib/bot-config-tools.js.map +0 -1
  172. package/lib/constants.js +0 -26
  173. package/lib/constants.js.map +0 -1
  174. package/lib/debug-logger.js.map +0 -1
  175. package/lib/guardrails/index.d.ts +0 -1
  176. package/lib/guardrails/index.js +0 -6
  177. package/lib/guardrails/index.js.map +0 -1
  178. package/lib/guardrails/input.js +0 -119
  179. package/lib/guardrails/input.js.map +0 -1
  180. package/lib/index.js.map +0 -1
  181. package/lib/llm-config.js +0 -150
  182. package/lib/llm-config.js.map +0 -1
  183. package/lib/runners/base-runner.js.map +0 -1
  184. package/lib/runners/index.d.ts +0 -2
  185. package/lib/runners/index.js +0 -9
  186. package/lib/runners/index.js.map +0 -1
  187. package/lib/runners/router-runner.js.map +0 -1
  188. package/lib/runners/specialist-runner.js +0 -10
  189. package/lib/runners/specialist-runner.js.map +0 -1
  190. package/lib/services/hubtype-api-client.js +0 -191
  191. package/lib/services/hubtype-api-client.js.map +0 -1
  192. package/lib/services/types.js +0 -13
  193. package/lib/services/types.js.map +0 -1
  194. package/lib/structured-output/bot-executor.js +0 -21
  195. package/lib/structured-output/bot-executor.js.map +0 -1
  196. package/lib/structured-output/carousel.js +0 -26
  197. package/lib/structured-output/carousel.js.map +0 -1
  198. package/lib/structured-output/do-nothing.js +0 -14
  199. package/lib/structured-output/do-nothing.js.map +0 -1
  200. package/lib/structured-output/exit.js +0 -14
  201. package/lib/structured-output/exit.js.map +0 -1
  202. package/lib/structured-output/index.js +0 -63
  203. package/lib/structured-output/index.js.map +0 -1
  204. package/lib/structured-output/request-contact-info.js +0 -17
  205. package/lib/structured-output/request-contact-info.js.map +0 -1
  206. package/lib/structured-output/text-with-buttons.js +0 -25
  207. package/lib/structured-output/text-with-buttons.js.map +0 -1
  208. package/lib/structured-output/text.js +0 -17
  209. package/lib/structured-output/text.js.map +0 -1
  210. package/lib/tools/index.js +0 -8
  211. package/lib/tools/index.js.map +0 -1
  212. package/lib/tools/retrieve-knowledge.js +0 -40
  213. package/lib/tools/retrieve-knowledge.js.map +0 -1
  214. package/lib/types.js +0 -5
  215. package/lib/types.js.map +0 -1
  216. /package/lib/{constants.d.ts → cjs/constants.d.ts} +0 -0
  217. /package/lib/{structured-output → cjs/structured-output}/bot-executor.d.ts +0 -0
  218. /package/lib/{structured-output → cjs/structured-output}/carousel.d.ts +0 -0
  219. /package/lib/{structured-output → cjs/structured-output}/do-nothing.d.ts +0 -0
  220. /package/lib/{structured-output → cjs/structured-output}/exit.d.ts +0 -0
  221. /package/lib/{structured-output → cjs/structured-output}/index.d.ts +0 -0
  222. /package/lib/{structured-output → cjs/structured-output}/request-contact-info.d.ts +0 -0
  223. /package/lib/{structured-output → cjs/structured-output}/text-with-buttons.d.ts +0 -0
  224. /package/lib/{structured-output → cjs/structured-output}/text.d.ts +0 -0
@@ -1,71 +1,61 @@
1
- import { AiAgentType } from "@botonic/core";
2
- import { handoff, setTracingDisabled, tool as agents_tool } from "@openai/agents";
3
- import { v7 } from "uuid";
4
- import { RouterAgent, SpecialistAgent } from "./agents/index.js";
5
- import { DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT_16_SECONDS, MAX_MEMORY_LENGTH, isProd } from "./constants.js";
6
- import { createDebugLogger } from "./debug-logger.js";
7
- import { LLMConfig } from "./llm-config.js";
8
- import { RouterRunner, SpecialistRunner } from "./runners/index.js";
9
- import { HubtypeApiClient } from "./services/hubtype-api-client.js";
10
-
11
- export * from "./bot-config-tools.js";
12
- export * from "./types.js";
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
- function _define_property(obj, key, value) {
23
- if (key in obj) {
24
- Object.defineProperty(obj, key, {
25
- value: value,
26
- enumerable: true,
27
- configurable: true,
28
- writable: true
29
- });
30
- } else obj[key] = value;
31
- return obj;
32
- }
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@botonic/core");
5
+ const agents_1 = require("@openai/agents");
6
+ const uuid_1 = require("uuid");
7
+ const agents_2 = require("./agents");
8
+ const constants_1 = require("./constants");
9
+ const debug_logger_1 = require("./debug-logger");
10
+ const llm_config_1 = require("./llm-config");
11
+ const runners_1 = require("./runners");
12
+ const hubtype_api_client_1 = require("./services/hubtype-api-client");
42
13
  class BotonicPluginAiAgents {
14
+ constructor(options) {
15
+ this.toolDefinitions = [];
16
+ this.authToken = options?.authToken;
17
+ this.toolDefinitions = options?.customTools || [];
18
+ this.memory = this.getMemoryOptions(options?.memory);
19
+ this.timeout = options?.timeout ?? constants_1.DEFAULT_TIMEOUT_16_SECONDS;
20
+ this.maxRetries = options?.maxRetries ?? constants_1.DEFAULT_MAX_RETRIES;
21
+ this.logger = (0, debug_logger_1.createDebugLogger)(options?.enableDebug ?? false);
22
+ this.localStorageKey = options?.localStorageKey ?? 'botonicState';
23
+ (0, agents_1.setTracingDisabled)(true);
24
+ this.logger.logInitialConfig({
25
+ messageHistoryApiVersion: 'v2',
26
+ maxRetries: options?.maxRetries ?? constants_1.DEFAULT_MAX_RETRIES,
27
+ timeout: options?.timeout ?? constants_1.DEFAULT_TIMEOUT_16_SECONDS,
28
+ customToolNames: this.toolDefinitions.map(t => t.name),
29
+ memory: this.memory,
30
+ });
31
+ }
43
32
  getMemoryOptions(memory) {
44
33
  return {
45
- maxMessages: memory?.maxMessages ?? MAX_MEMORY_LENGTH,
34
+ maxMessages: memory?.maxMessages ?? constants_1.MAX_MEMORY_LENGTH,
46
35
  includeToolCalls: memory?.includeToolCalls ?? true,
47
36
  maxFullToolResults: memory?.maxFullToolResults ?? 1,
48
- debugMode: memory?.debugMode ?? false
37
+ debugMode: memory?.debugMode ?? false,
49
38
  };
50
39
  }
51
40
  pre() {
52
41
  return;
53
42
  }
54
43
  async getInference(botContext, aiAgentArgs) {
55
- const authToken = isProd ? botContext.session._access_token : this.authToken;
44
+ const authToken = constants_1.isProd ? botContext.session._access_token : this.authToken;
56
45
  if (!authToken) {
57
46
  throw new Error('Auth token is required');
58
47
  }
59
- const inferenceId = v7();
48
+ const inferenceId = (0, uuid_1.v7)();
60
49
  try {
61
- if (aiAgentArgs.type === AiAgentType.Specialist) {
50
+ if (aiAgentArgs.type === core_1.AiAgentType.Specialist) {
62
51
  return await this.executeSpecialistAIAgent(botContext, aiAgentArgs, authToken, inferenceId);
63
52
  }
64
- if (aiAgentArgs.type === AiAgentType.Router) {
53
+ if (aiAgentArgs.type === core_1.AiAgentType.Router) {
65
54
  return await this.executeRouterAIAgent(botContext, aiAgentArgs, authToken, inferenceId);
66
55
  }
67
56
  throw new Error('Invalid agent type');
68
- } catch (error) {
57
+ }
58
+ catch (error) {
69
59
  console.error('error plugin returns undefined', error);
70
60
  return {
71
61
  messages: [],
@@ -79,18 +69,18 @@ class BotonicPluginAiAgents {
79
69
  startingAgentName: '',
80
70
  lastAgentName: '',
81
71
  availableSpecialists: [],
82
- isTransferredToSpecialist: false
72
+ isTransferredToSpecialist: false,
83
73
  };
84
74
  }
85
75
  }
86
76
  async executeSpecialistAIAgent(botContext, aiAgentArgs, authToken, inferenceId) {
87
- const llmConfig = new LLMConfig({
77
+ const llmConfig = new llm_config_1.LLMConfig({
88
78
  maxRetries: this.maxRetries,
89
79
  timeout: this.timeout,
90
80
  modelName: aiAgentArgs.model,
91
81
  verbosity: aiAgentArgs.verbosity,
92
82
  botContext,
93
- reasoningEffort: aiAgentArgs.reasoningEffort
83
+ reasoningEffort: aiAgentArgs.reasoningEffort,
94
84
  });
95
85
  // Get LLM config, tools and agent
96
86
  const { tools, agent } = await this.getSpecialistAgentAndTools(botContext, aiAgentArgs, aiAgentArgs.outputMessagesSchemas || [], authToken, inferenceId, llmConfig);
@@ -103,27 +93,27 @@ class BotonicPluginAiAgents {
103
93
  query: '',
104
94
  sourceIds: [],
105
95
  chunksIds: [],
106
- chunkTexts: []
96
+ chunkTexts: [],
107
97
  },
108
- request: botContext
98
+ request: botContext,
109
99
  };
110
100
  // Log agent debug info
111
- this.logger.logAgentDebugInfo(aiAgentArgs, tools.map((t)=>t.name), messages);
101
+ this.logger.logAgentDebugInfo(aiAgentArgs, tools.map(t => t.name), messages);
112
102
  // Run agent
113
- const runner = new SpecialistRunner(agent, llmConfig, inferenceId, this.logger);
103
+ const runner = new runners_1.SpecialistRunner(agent, llmConfig, inferenceId, this.logger);
114
104
  return await runner.run(messages, context);
115
105
  }
116
106
  async executeRouterAIAgent(botContext, aiAgentArgs, authToken, inferenceId) {
117
107
  const { specialists, name, instructions } = aiAgentArgs;
118
- const llmConfig = new LLMConfig({
108
+ const llmConfig = new llm_config_1.LLMConfig({
119
109
  maxRetries: this.maxRetries,
120
110
  timeout: this.timeout,
121
111
  modelName: aiAgentArgs.model,
122
112
  verbosity: aiAgentArgs.verbosity,
123
113
  botContext,
124
- reasoningEffort: aiAgentArgs.reasoningEffort
114
+ reasoningEffort: aiAgentArgs.reasoningEffort,
125
115
  });
126
- const specialistsAgents = await Promise.all(specialists.map(async (specialistData)=>{
116
+ const specialistsAgents = await Promise.all(specialists.map(async (specialistData) => {
127
117
  // If the forceToolNameOverride is set, we force this override for all specialists
128
118
  const forceToolNameOverride = aiAgentArgs.forceToolNameOverride;
129
119
  const reasoningEffort = aiAgentArgs.reasoningEffort;
@@ -133,15 +123,15 @@ class BotonicPluginAiAgents {
133
123
  ...specialistData,
134
124
  forceToolNameOverride,
135
125
  reasoningEffort,
136
- disableForceRetrieveKnowledge
126
+ disableForceRetrieveKnowledge,
137
127
  };
138
128
  const { agent } = await this.getSpecialistAgentAndTools(botContext, aiAgentSpecialistArgs, aiAgentArgs.outputMessagesSchemas || [], authToken, inferenceId, llmConfig);
139
- return handoff(agent, {
129
+ return (0, agents_1.handoff)(agent, {
140
130
  toolNameOverride: specialistData.name,
141
- toolDescriptionOverride: specialistData.description
131
+ toolDescriptionOverride: specialistData.description,
142
132
  });
143
133
  }));
144
- const router = await RouterAgent.create({
134
+ const router = await agents_2.RouterAgent.create({
145
135
  name,
146
136
  instructions,
147
137
  llmConfig,
@@ -152,8 +142,8 @@ class BotonicPluginAiAgents {
152
142
  botId: botContext.session.bot.id,
153
143
  isTest: botContext.session.is_test_integration,
154
144
  authToken,
155
- inferenceId
156
- }
145
+ inferenceId,
146
+ },
157
147
  });
158
148
  // Get messages
159
149
  const messages = await this.getMessages(botContext, authToken, aiAgentArgs.previousHubtypeMessages || []);
@@ -164,21 +154,24 @@ class BotonicPluginAiAgents {
164
154
  query: '',
165
155
  sourceIds: [],
166
156
  chunksIds: [],
167
- chunkTexts: []
157
+ chunkTexts: [],
168
158
  },
169
- request: botContext
159
+ request: botContext,
170
160
  };
171
161
  // Run agent
172
162
  const routerAgent = router.getAgent();
173
- const runner = new RouterRunner(routerAgent, llmConfig, inferenceId, this.logger);
163
+ const runner = new runners_1.RouterRunner(routerAgent, llmConfig, inferenceId, this.logger);
174
164
  return await runner.run(messages, context);
175
165
  }
176
166
  async getSpecialistAgentAndTools(botContext, aiAgentArgs, outputMessagesSchemas, authToken, inferenceId, llmConfig) {
177
167
  // Build tools
178
168
  const tools = this.buildTools(aiAgentArgs);
179
169
  // Build agent
180
- const sourceIds = aiAgentArgs.type === AiAgentType.Specialist ? aiAgentArgs.sourceIds : [];
181
- const specialist = await SpecialistAgent.create({
170
+ const sourceIds = aiAgentArgs.type === core_1.AiAgentType.Specialist ? aiAgentArgs.sourceIds : [];
171
+ const campaignsContext = botContext.input.context && 'campaigns_v2' in botContext.input.context
172
+ ? botContext.input.context?.campaigns_v2
173
+ : [];
174
+ const specialist = await agents_2.SpecialistAgent.create({
182
175
  name: aiAgentArgs.name,
183
176
  instructions: aiAgentArgs.instructions,
184
177
  tools: tools,
@@ -186,75 +179,45 @@ class BotonicPluginAiAgents {
186
179
  inputGuardrailRules: aiAgentArgs.inputGuardrailRules || [],
187
180
  sourceIds,
188
181
  outputMessagesSchemas: outputMessagesSchemas || [],
189
- campaignsContext: botContext.input.context?.campaigns_v2,
182
+ campaignsContext: campaignsContext,
190
183
  logger: this.logger,
191
184
  llmConfig,
192
185
  guardrailTrackingContext: {
193
186
  botId: botContext.session.bot.id,
194
187
  isTest: botContext.session.is_test_integration,
195
188
  authToken,
196
- inferenceId
189
+ inferenceId,
197
190
  },
198
191
  forceToolNameOverride: aiAgentArgs.forceToolNameOverride,
199
- disableForceRetrieveKnowledge: aiAgentArgs.disableForceRetrieveKnowledge
192
+ disableForceRetrieveKnowledge: aiAgentArgs.disableForceRetrieveKnowledge,
200
193
  });
201
194
  const specialistAgent = specialist.getAgent();
202
- return {
203
- agent: specialistAgent,
204
- tools
205
- };
195
+ return { agent: specialistAgent, tools };
206
196
  }
207
197
  async getMessages(botContext, authToken, previousHubtypeMessages) {
208
- const hubtypeClient = new HubtypeApiClient(authToken);
209
- if (!isProd) {
210
- return await hubtypeClient.getLocalMessages(MAX_MEMORY_LENGTH, previousHubtypeMessages, this.localStorageKey);
198
+ const hubtypeClient = new hubtype_api_client_1.HubtypeApiClient(authToken);
199
+ if (!constants_1.isProd) {
200
+ return await hubtypeClient.getLocalMessages(constants_1.MAX_MEMORY_LENGTH, previousHubtypeMessages, this.localStorageKey);
211
201
  }
212
202
  // Default to V2
213
203
  const result = await hubtypeClient.getMessagesV2(botContext, this.memory, previousHubtypeMessages);
214
204
  return result.messages;
215
205
  }
216
206
  buildTools(aiAgentArgs) {
217
- const activeTools = aiAgentArgs.type === AiAgentType.Router ? [] : aiAgentArgs.activeTools;
218
- const activeToolNames = activeTools.map((tool)=>tool.name);
219
- const availableTools = this.toolDefinitions.filter((tool)=>activeToolNames.includes(tool.name));
220
- return availableTools.map((toolDefinition)=>{
221
- return agents_tool({
207
+ const activeTools = aiAgentArgs.type === core_1.AiAgentType.Router ? [] : aiAgentArgs.activeTools;
208
+ const activeToolNames = activeTools.map(tool => tool.name);
209
+ const availableTools = this.toolDefinitions.filter(tool => activeToolNames.includes(tool.name));
210
+ return availableTools.map(toolDefinition => {
211
+ return (0, agents_1.tool)({
222
212
  name: toolDefinition.name,
223
213
  description: toolDefinition.description,
224
214
  parameters: toolDefinition.schema,
225
- execute: toolDefinition.func
215
+ execute: toolDefinition.func,
226
216
  });
227
217
  });
228
218
  }
229
- constructor(options){
230
- _define_property(this, "authToken", void 0);
231
- _define_property(this, "memory", void 0);
232
- _define_property(this, "logger", void 0);
233
- _define_property(this, "timeout", void 0);
234
- _define_property(this, "maxRetries", void 0);
235
- _define_property(this, "toolDefinitions", []);
236
- _define_property(this, "localStorageKey", void 0);
237
- this.authToken = options?.authToken;
238
- this.toolDefinitions = options?.customTools || [];
239
- this.memory = this.getMemoryOptions(options?.memory);
240
- this.timeout = options?.timeout ?? DEFAULT_TIMEOUT_16_SECONDS;
241
- this.maxRetries = options?.maxRetries ?? DEFAULT_MAX_RETRIES;
242
- this.logger = createDebugLogger(options?.enableDebug ?? false);
243
- this.localStorageKey = options?.localStorageKey ?? 'botonicState';
244
- setTracingDisabled(true);
245
- this.logger.logInitialConfig({
246
- messageHistoryApiVersion: 'v2',
247
- maxRetries: options?.maxRetries ?? DEFAULT_MAX_RETRIES,
248
- timeout: options?.timeout ?? DEFAULT_TIMEOUT_16_SECONDS,
249
- customToolNames: this.toolDefinitions.map((t)=>t.name),
250
- memory: this.memory
251
- });
252
- }
253
219
  }
254
-
255
-
256
-
257
-
258
- export default BotonicPluginAiAgents;
259
-
220
+ exports.default = BotonicPluginAiAgents;
221
+ tslib_1.__exportStar(require("./bot-config-tools"), exports);
222
+ tslib_1.__exportStar(require("./types"), exports);
260
223
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type BotContext, type ReasoningEffort, VerbosityLevel } from '@botonic/core';
2
2
  import { type Model, type ModelProvider, type ModelSettings } from '@openai/agents';
3
- import { type LLMProviderType } from './constants.js';
3
+ import { type LLMProviderType } from './constants';
4
4
  export interface LLMConfigParams {
5
5
  maxRetries: number;
6
6
  timeout: number;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMConfig = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@botonic/core");
6
+ const agents_1 = require("@openai/agents");
7
+ const openai_1 = tslib_1.__importStar(require("openai"));
8
+ const constants_1 = require("./constants");
9
+ class LLMConfig {
10
+ constructor({ maxRetries, timeout, modelName, verbosity, botContext, reasoningEffort, }) {
11
+ this.maxRetries = maxRetries;
12
+ this.timeout = timeout;
13
+ this.botContext = botContext;
14
+ this.modelName =
15
+ constants_1.LLM_PROVIDER === constants_1.LLM_PROVIDERS.OPENAI ? constants_1.LLM_OPENAI_MODEL : modelName;
16
+ this.modelProvider = this.getModelProvider();
17
+ this.modelSettings = this.getModelSettings(modelName, verbosity, reasoningEffort);
18
+ }
19
+ async getModel() {
20
+ return await this.modelProvider.getModel(this.modelName);
21
+ }
22
+ getModelProvider() {
23
+ const client = this.getClient();
24
+ return new agents_1.OpenAIProvider({
25
+ openAIClient: client,
26
+ useResponses: false,
27
+ });
28
+ }
29
+ getProviderName() {
30
+ if (this.botContext.settings.LITELLM_API_URL ||
31
+ constants_1.LLM_PROVIDER === constants_1.LLM_PROVIDERS.LITELLM) {
32
+ return constants_1.LLM_PROVIDERS.LITELLM;
33
+ }
34
+ return constants_1.LLM_PROVIDER;
35
+ }
36
+ getClient() {
37
+ if (this.getProviderName() === constants_1.LLM_PROVIDERS.LITELLM) {
38
+ const litellmUrl = this.botContext.settings.LITELLM_API_URL || constants_1.LLM_API_URL || '';
39
+ return this.getLiteLLMClient(litellmUrl);
40
+ }
41
+ if (constants_1.LLM_PROVIDER === constants_1.LLM_PROVIDERS.OPENAI) {
42
+ return this.getOpenAIClient();
43
+ }
44
+ return this.getAzureOpenAiClient();
45
+ }
46
+ buildLiteLLMTags() {
47
+ const botId = this.botContext.session.bot.id;
48
+ const orgId = this.botContext.session.organization_id;
49
+ const parts = [];
50
+ if (botId) {
51
+ parts.push(`${constants_1.LITELLM_TAG_KEYS.BOT_ID}:${botId}`);
52
+ }
53
+ if (orgId) {
54
+ parts.push(`${constants_1.LITELLM_TAG_KEYS.ORG_ID}:${orgId}`);
55
+ }
56
+ return parts.length > 0
57
+ ? { 'x-litellm-tags': parts.join(constants_1.LITELLM_TAG_KEYS.SEPARATOR) }
58
+ : undefined;
59
+ }
60
+ getLiteLLMClient(litellmUrl) {
61
+ return new openai_1.default({
62
+ apiKey: this.botContext.secrets.LITELLM_API_KEY || constants_1.LLM_API_KEY,
63
+ baseURL: litellmUrl,
64
+ timeout: this.timeout,
65
+ maxRetries: this.maxRetries,
66
+ dangerouslyAllowBrowser: !constants_1.isProd,
67
+ defaultHeaders: this.buildLiteLLMTags(),
68
+ });
69
+ }
70
+ getOpenAIClient() {
71
+ return new openai_1.default({
72
+ apiKey: this.botContext.secrets.AZURE_OPENAI_API_KEY || constants_1.LLM_API_KEY,
73
+ timeout: this.timeout,
74
+ maxRetries: this.maxRetries,
75
+ dangerouslyAllowBrowser: !constants_1.isProd,
76
+ });
77
+ }
78
+ getAzureOpenAiClient() {
79
+ const baseURL = `${this.botContext.settings.AZURE_OPENAI_API_BASE || constants_1.LLM_API_URL}openai/`;
80
+ return new openai_1.AzureOpenAI({
81
+ apiKey: this.botContext.secrets.AZURE_OPENAI_API_KEY || constants_1.LLM_API_KEY,
82
+ apiVersion: this.botContext.settings.AZURE_OPENAI_API_VERSION ||
83
+ constants_1.LLM_AZURE_API_VERSION,
84
+ deployment: this.modelName,
85
+ baseURL,
86
+ timeout: this.timeout,
87
+ maxRetries: this.maxRetries,
88
+ dangerouslyAllowBrowser: !constants_1.isProd,
89
+ });
90
+ }
91
+ getModelSettings(model, verbosity, reasoningEffort) {
92
+ if (model.includes('gpt-4')) {
93
+ return {
94
+ temperature: 0,
95
+ text: { verbosity: core_1.VerbosityLevel.Medium },
96
+ };
97
+ }
98
+ if (reasoningEffort) {
99
+ return {
100
+ reasoning: { effort: reasoningEffort },
101
+ temperature: 1,
102
+ text: { verbosity },
103
+ };
104
+ }
105
+ return {
106
+ temperature: 1,
107
+ text: { verbosity },
108
+ };
109
+ }
110
+ getApiVersion() {
111
+ if (this.getProviderName() === constants_1.LLM_PROVIDERS.LITELLM) {
112
+ return undefined;
113
+ }
114
+ if (constants_1.LLM_PROVIDER !== constants_1.LLM_PROVIDERS.AZURE) {
115
+ return 'NOT_API_VERSION_FOR_OPENAI_PROVIDER';
116
+ }
117
+ return (this.botContext.settings.AZURE_OPENAI_API_VERSION || constants_1.LLM_AZURE_API_VERSION);
118
+ }
119
+ }
120
+ exports.LLMConfig = LLMConfig;
121
+ //# sourceMappingURL=llm-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type OutputMessage, type ResolvedPlugins, type ToolExecution } from '@botonic/core';
2
- import type { DebugLogger } from '../debug-logger.js';
3
- import type { LLMConfig } from '../llm-config.js';
4
- import type { AgenticInputMessage, AIAgent, Context, ResultRawResponse, RunResult } from '../types.js';
2
+ import type { DebugLogger } from '../debug-logger';
3
+ import type { LLMConfig } from '../llm-config';
4
+ import type { AgenticInputMessage, AIAgent, Context, ResultRawResponse, RunResult } from '../types';
5
5
  export interface RunnerResult {
6
6
  finalOutput?: {
7
7
  messages?: OutputMessage[];