@botonic/plugin-ai-agents 0.46.1 → 2.23.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 (182) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/package.json +23 -41
  3. package/src/index.d.ts +2 -0
  4. package/src/index.js +3 -0
  5. package/src/index.js.map +1 -0
  6. package/{lib/cjs → src/lib}/agent-builder.d.ts +5 -13
  7. package/{lib/cjs → src/lib}/agent-builder.js +31 -26
  8. package/src/lib/agent-builder.js.map +1 -0
  9. package/{lib/cjs → src/lib}/constants.d.ts +1 -3
  10. package/src/lib/constants.js +13 -0
  11. package/src/lib/constants.js.map +1 -0
  12. package/{lib/esm → src/lib}/debug-logger.d.ts +3 -5
  13. package/{lib/esm → src/lib}/debug-logger.js +44 -29
  14. package/src/lib/debug-logger.js.map +1 -0
  15. package/src/lib/guardrails/index.js +2 -0
  16. package/src/lib/guardrails/index.js.map +1 -0
  17. package/src/lib/guardrails/input.d.ts +3 -0
  18. package/src/lib/guardrails/input.js +29 -0
  19. package/src/lib/guardrails/input.js.map +1 -0
  20. package/{lib/cjs/services → src/lib}/hubtype-api-client.d.ts +13 -5
  21. package/src/lib/hubtype-api-client.js +206 -0
  22. package/src/lib/hubtype-api-client.js.map +1 -0
  23. package/{lib/esm → src/lib}/index.d.ts +2 -7
  24. package/src/lib/index.js +111 -0
  25. package/src/lib/index.js.map +1 -0
  26. package/src/lib/openai.d.ts +1 -0
  27. package/src/lib/openai.js +21 -0
  28. package/src/lib/openai.js.map +1 -0
  29. package/src/lib/runner.d.ts +12 -0
  30. package/src/lib/runner.js +96 -0
  31. package/src/lib/runner.js.map +1 -0
  32. package/{lib/esm → src/lib}/structured-output/carousel.d.ts +1 -1
  33. package/src/lib/structured-output/carousel.js +19 -0
  34. package/src/lib/structured-output/carousel.js.map +1 -0
  35. package/{lib/cjs → src/lib}/structured-output/exit.d.ts +1 -1
  36. package/src/lib/structured-output/exit.js +7 -0
  37. package/src/lib/structured-output/exit.js.map +1 -0
  38. package/src/lib/structured-output/index.d.ts +228 -0
  39. package/src/lib/structured-output/index.js +11 -0
  40. package/src/lib/structured-output/index.js.map +1 -0
  41. package/{lib/esm/structured-output/bot-executor.d.ts → src/lib/structured-output/text-with-buttons.d.ts} +13 -13
  42. package/src/lib/structured-output/text-with-buttons.js +14 -0
  43. package/src/lib/structured-output/text-with-buttons.js.map +1 -0
  44. package/{lib/esm → src/lib}/structured-output/text.d.ts +1 -1
  45. package/src/lib/structured-output/text.js +10 -0
  46. package/src/lib/structured-output/text.js.map +1 -0
  47. package/{lib/esm → src/lib}/tools/index.d.ts +1 -1
  48. package/src/lib/tools/index.js +3 -0
  49. package/src/lib/tools/index.js.map +1 -0
  50. package/{lib/cjs → src/lib}/tools/retrieve-knowledge.d.ts +2 -2
  51. package/src/lib/tools/retrieve-knowledge.js +30 -0
  52. package/src/lib/tools/retrieve-knowledge.js.map +1 -0
  53. package/{lib/esm → src/lib}/types.d.ts +11 -21
  54. package/src/lib/types.js +2 -0
  55. package/src/lib/types.js.map +1 -0
  56. package/README.md +0 -156
  57. package/lib/cjs/agent-builder.js.map +0 -1
  58. package/lib/cjs/bot-config-tools.d.ts +0 -7
  59. package/lib/cjs/bot-config-tools.js +0 -19
  60. package/lib/cjs/bot-config-tools.js.map +0 -1
  61. package/lib/cjs/constants.js +0 -17
  62. package/lib/cjs/constants.js.map +0 -1
  63. package/lib/cjs/debug-logger.d.ts +0 -33
  64. package/lib/cjs/debug-logger.js +0 -97
  65. package/lib/cjs/debug-logger.js.map +0 -1
  66. package/lib/cjs/guardrails/index.js +0 -5
  67. package/lib/cjs/guardrails/index.js.map +0 -1
  68. package/lib/cjs/guardrails/input.d.ts +0 -10
  69. package/lib/cjs/guardrails/input.js +0 -77
  70. package/lib/cjs/guardrails/input.js.map +0 -1
  71. package/lib/cjs/index.d.ts +0 -18
  72. package/lib/cjs/index.js +0 -134
  73. package/lib/cjs/index.js.map +0 -1
  74. package/lib/cjs/llm-config.d.ts +0 -15
  75. package/lib/cjs/llm-config.js +0 -66
  76. package/lib/cjs/llm-config.js.map +0 -1
  77. package/lib/cjs/runner.d.ts +0 -18
  78. package/lib/cjs/runner.js +0 -181
  79. package/lib/cjs/runner.js.map +0 -1
  80. package/lib/cjs/services/hubtype-api-client.js +0 -206
  81. package/lib/cjs/services/hubtype-api-client.js.map +0 -1
  82. package/lib/cjs/services/types.d.ts +0 -85
  83. package/lib/cjs/services/types.js +0 -13
  84. package/lib/cjs/services/types.js.map +0 -1
  85. package/lib/cjs/structured-output/bot-executor.d.ts +0 -49
  86. package/lib/cjs/structured-output/bot-executor.js +0 -18
  87. package/lib/cjs/structured-output/bot-executor.js.map +0 -1
  88. package/lib/cjs/structured-output/carousel.d.ts +0 -90
  89. package/lib/cjs/structured-output/carousel.js +0 -22
  90. package/lib/cjs/structured-output/carousel.js.map +0 -1
  91. package/lib/cjs/structured-output/exit.js +0 -11
  92. package/lib/cjs/structured-output/exit.js.map +0 -1
  93. package/lib/cjs/structured-output/index.d.ts +0 -603
  94. package/lib/cjs/structured-output/index.js +0 -28
  95. package/lib/cjs/structured-output/index.js.map +0 -1
  96. package/lib/cjs/structured-output/text-with-buttons.d.ts +0 -56
  97. package/lib/cjs/structured-output/text-with-buttons.js +0 -24
  98. package/lib/cjs/structured-output/text-with-buttons.js.map +0 -1
  99. package/lib/cjs/structured-output/text.d.ts +0 -23
  100. package/lib/cjs/structured-output/text.js +0 -13
  101. package/lib/cjs/structured-output/text.js.map +0 -1
  102. package/lib/cjs/tools/index.d.ts +0 -3
  103. package/lib/cjs/tools/index.js +0 -7
  104. package/lib/cjs/tools/index.js.map +0 -1
  105. package/lib/cjs/tools/retrieve-knowledge.js +0 -32
  106. package/lib/cjs/tools/retrieve-knowledge.js.map +0 -1
  107. package/lib/cjs/types.d.ts +0 -56
  108. package/lib/cjs/types.js +0 -3
  109. package/lib/cjs/types.js.map +0 -1
  110. package/lib/esm/agent-builder.d.ts +0 -37
  111. package/lib/esm/agent-builder.js +0 -106
  112. package/lib/esm/agent-builder.js.map +0 -1
  113. package/lib/esm/bot-config-tools.d.ts +0 -7
  114. package/lib/esm/bot-config-tools.js +0 -19
  115. package/lib/esm/bot-config-tools.js.map +0 -1
  116. package/lib/esm/constants.d.ts +0 -11
  117. package/lib/esm/constants.js +0 -17
  118. package/lib/esm/constants.js.map +0 -1
  119. package/lib/esm/debug-logger.js.map +0 -1
  120. package/lib/esm/guardrails/index.d.ts +0 -1
  121. package/lib/esm/guardrails/index.js +0 -5
  122. package/lib/esm/guardrails/index.js.map +0 -1
  123. package/lib/esm/guardrails/input.d.ts +0 -10
  124. package/lib/esm/guardrails/input.js +0 -77
  125. package/lib/esm/guardrails/input.js.map +0 -1
  126. package/lib/esm/index.js +0 -134
  127. package/lib/esm/index.js.map +0 -1
  128. package/lib/esm/llm-config.d.ts +0 -15
  129. package/lib/esm/llm-config.js +0 -66
  130. package/lib/esm/llm-config.js.map +0 -1
  131. package/lib/esm/runner.d.ts +0 -18
  132. package/lib/esm/runner.js +0 -181
  133. package/lib/esm/runner.js.map +0 -1
  134. package/lib/esm/services/hubtype-api-client.d.ts +0 -14
  135. package/lib/esm/services/hubtype-api-client.js +0 -206
  136. package/lib/esm/services/hubtype-api-client.js.map +0 -1
  137. package/lib/esm/services/types.d.ts +0 -85
  138. package/lib/esm/services/types.js +0 -13
  139. package/lib/esm/services/types.js.map +0 -1
  140. package/lib/esm/structured-output/bot-executor.js +0 -18
  141. package/lib/esm/structured-output/bot-executor.js.map +0 -1
  142. package/lib/esm/structured-output/carousel.js +0 -22
  143. package/lib/esm/structured-output/carousel.js.map +0 -1
  144. package/lib/esm/structured-output/exit.d.ts +0 -10
  145. package/lib/esm/structured-output/exit.js +0 -11
  146. package/lib/esm/structured-output/exit.js.map +0 -1
  147. package/lib/esm/structured-output/index.d.ts +0 -603
  148. package/lib/esm/structured-output/index.js +0 -28
  149. package/lib/esm/structured-output/index.js.map +0 -1
  150. package/lib/esm/structured-output/text-with-buttons.d.ts +0 -56
  151. package/lib/esm/structured-output/text-with-buttons.js +0 -24
  152. package/lib/esm/structured-output/text-with-buttons.js.map +0 -1
  153. package/lib/esm/structured-output/text.js +0 -13
  154. package/lib/esm/structured-output/text.js.map +0 -1
  155. package/lib/esm/tools/index.js +0 -7
  156. package/lib/esm/tools/index.js.map +0 -1
  157. package/lib/esm/tools/retrieve-knowledge.d.ts +0 -9
  158. package/lib/esm/tools/retrieve-knowledge.js +0 -32
  159. package/lib/esm/tools/retrieve-knowledge.js.map +0 -1
  160. package/lib/esm/types.js +0 -3
  161. package/lib/esm/types.js.map +0 -1
  162. package/src/agent-builder.ts +0 -183
  163. package/src/bot-config-tools.ts +0 -21
  164. package/src/constants.ts +0 -21
  165. package/src/debug-logger.ts +0 -166
  166. package/src/guardrails/index.ts +0 -1
  167. package/src/guardrails/input.ts +0 -122
  168. package/src/index.ts +0 -210
  169. package/src/llm-config.ts +0 -96
  170. package/src/runner.ts +0 -287
  171. package/src/services/hubtype-api-client.ts +0 -240
  172. package/src/services/types.ts +0 -106
  173. package/src/structured-output/bot-executor.ts +0 -21
  174. package/src/structured-output/carousel.ts +0 -24
  175. package/src/structured-output/exit.ts +0 -12
  176. package/src/structured-output/index.ts +0 -34
  177. package/src/structured-output/text-with-buttons.ts +0 -29
  178. package/src/structured-output/text.ts +0 -13
  179. package/src/tools/index.ts +0 -5
  180. package/src/tools/retrieve-knowledge.ts +0 -37
  181. package/src/types.ts +0 -110
  182. /package/{lib/cjs → src/lib}/guardrails/index.d.ts +0 -0
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getToolsForBotConfig = getToolsForBotConfig;
4
- const zod_to_json_schema_1 = require("zod-to-json-schema");
5
- /**
6
- * Maps custom AI agent tools to the format expected by bot config (e.g. for flow-builder).
7
- * Converts each tool's Zod schema to JSON Schema so it can be serialized in the config.
8
- */
9
- function getToolsForBotConfig(customTools) {
10
- return customTools.map(tool => ({
11
- name: tool.name,
12
- description: tool.description,
13
- // Cast to avoid TS "Type instantiation is excessively deep" with zodToJsonSchema + ZodSchema
14
- schema: (0, zod_to_json_schema_1.zodToJsonSchema)(tool.schema, {
15
- $refStrategy: 'none',
16
- }),
17
- }));
18
- }
19
- //# sourceMappingURL=bot-config-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot-config-tools.js","sourceRoot":"","sources":["../../src/bot-config-tools.ts"],"names":[],"mappings":";;AASA,oDAWC;AAnBD,2DAAoD;AAIpD;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,WAAyB;IAEzB,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,6FAA6F;QAC7F,MAAM,EAAE,IAAA,oCAAe,EAAC,IAAI,CAAC,MAAe,EAAE;YAC5C,YAAY,EAAE,MAAM;SACrB,CAA6B;KAC/B,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_TIMEOUT_16_SECONDS = exports.MAX_MEMORY_LENGTH = exports.isProd = exports.AZURE_OPENAI_API_VERSION = exports.AZURE_OPENAI_API_BASE = exports.AZURE_OPENAI_API_KEY = exports.OPENAI_PROVIDER = exports.OPENAI_MODEL = exports.OPENAI_API_KEY = exports.HUBTYPE_API_URL = void 0;
4
- exports.HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
5
- // OpenAI Provider Configuration
6
- exports.OPENAI_API_KEY = process.env.OPENAI_API_KEY; // pragma: allowlist secret
7
- exports.OPENAI_MODEL = process.env.OPENAI_MODEL || 'gpt-4.1-mini';
8
- exports.OPENAI_PROVIDER = process.env.OPENAI_PROVIDER || 'azure';
9
- // Azure OpenAI Configuration
10
- exports.AZURE_OPENAI_API_KEY = process.env.AZURE_OPENAI_API_KEY; // pragma: allowlist secret
11
- exports.AZURE_OPENAI_API_BASE = process.env.AZURE_OPENAI_API_BASE;
12
- exports.AZURE_OPENAI_API_VERSION = process.env.AZURE_OPENAI_API_VERSION || '2025-01-01-preview';
13
- exports.isProd = process.env.NODE_ENV === 'production';
14
- exports.MAX_MEMORY_LENGTH = 25;
15
- exports.DEFAULT_TIMEOUT_16_SECONDS = 16000;
16
- exports.DEFAULT_MAX_RETRIES = 2;
17
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAE1D,gCAAgC;AACnB,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAC,2BAA2B;AACvE,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,cAAc,CAAA;AACzD,QAAA,eAAe,GACzB,OAAO,CAAC,GAAG,CAAC,eAAsC,IAAI,OAAO,CAAA;AAEhE,6BAA6B;AAChB,QAAA,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAC,2BAA2B;AACnF,QAAA,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;AACzD,QAAA,wBAAwB,GACnC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,oBAAoB,CAAA;AAEjD,QAAA,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;AAE9C,QAAA,iBAAiB,GAAG,EAAE,CAAA;AAEtB,QAAA,0BAA0B,GAAG,KAAK,CAAA;AAClC,QAAA,mBAAmB,GAAG,CAAC,CAAA"}
@@ -1,33 +0,0 @@
1
- import type { AiAgentArgs, ToolExecution } from '@botonic/core';
2
- import type { ModelSettings } from '@openai/agents';
3
- import type { AgenticInputMessage, MemoryOptions, RunResult } from './types';
4
- export interface DebugLoggerConfig {
5
- messageHistoryApiVersion: string;
6
- maxRetries: number;
7
- timeout: number;
8
- customToolNames: string[];
9
- memory: MemoryOptions;
10
- }
11
- export interface ModelSettingsInfo {
12
- provider: string;
13
- model: string | undefined;
14
- reasoning?: {
15
- effort: string;
16
- };
17
- text?: {
18
- verbosity: string;
19
- };
20
- toolChoice?: string;
21
- hasRetrieveKnowledge: boolean;
22
- }
23
- export interface DebugLogger {
24
- logInitialConfig(config: DebugLoggerConfig): void;
25
- logAgentDebugInfo(aiAgentArgs: AiAgentArgs, toolNames: string[], messages: AgenticInputMessage[]): void;
26
- logModelSettings(settings: ModelSettingsInfo): void;
27
- logRunnerStart(model: string, modelSettings: ModelSettings): void;
28
- logRunResult(runResult: RunResult, startTime: number): void;
29
- logGuardrailTriggered(): void;
30
- logRunnerError(startTime: number, error: unknown): void;
31
- logToolExecution(toolExecution: ToolExecution): void;
32
- }
33
- export declare function createDebugLogger(enableDebug: boolean): DebugLogger;
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDebugLogger = createDebugLogger;
4
- const constants_1 = require("./constants");
5
- const PREFIX = '[BotonicPluginAiAgents]';
6
- class EnabledDebugLogger {
7
- logInitialConfig(config) {
8
- console.log(`${PREFIX} === Plugin Initialization ===`);
9
- console.log(`${PREFIX} Provider: ${constants_1.OPENAI_PROVIDER}`);
10
- console.log(`${PREFIX} Message History API Version: ${config.messageHistoryApiVersion}`);
11
- console.log(`${PREFIX} Max Retries: ${config.maxRetries}`);
12
- console.log(`${PREFIX} Timeout: ${config.timeout}ms`);
13
- console.log(`${PREFIX} Custom Tools Registered: ${config.customToolNames.join(', ') || 'none'}`);
14
- console.log(`${PREFIX} Memory Options:`, {
15
- maxMessages: config.memory.maxMessages ?? constants_1.MAX_MEMORY_LENGTH,
16
- includeToolCalls: config.memory.includeToolCalls ?? true,
17
- maxFullToolResults: config.memory.maxFullToolResults ?? 1,
18
- debugMode: config.memory.debugMode ?? false,
19
- });
20
- console.log(`${PREFIX} === End Plugin Initialization ===`);
21
- }
22
- logAgentDebugInfo(aiAgentArgs, toolNames, messages) {
23
- console.log(`${PREFIX} === AI Agent Debug Info ===`);
24
- console.log(`${PREFIX} Agent Name: ${aiAgentArgs.name}`);
25
- console.log(`${PREFIX} Active Tools: ${JSON.stringify(toolNames)}`);
26
- console.log(`${PREFIX} Source IDs: ${JSON.stringify(aiAgentArgs.sourceIds || [])}`);
27
- console.log(`${PREFIX} Message History Count: ${messages.length}`);
28
- console.log(`${PREFIX} Input Guardrail Rules: ${aiAgentArgs.inputGuardrailRules?.length || 0}`);
29
- console.log(`${PREFIX} Instructions:`);
30
- console.log(aiAgentArgs.instructions);
31
- console.log(`${PREFIX} === End Debug Info ===`);
32
- }
33
- logModelSettings(settings) {
34
- console.log(`${PREFIX} === Agent Model Settings ===`);
35
- console.log(`${PREFIX} Has Retrieve Knowledge Tool: ${settings.hasRetrieveKnowledge}`);
36
- if (settings.reasoning) {
37
- console.log(`${PREFIX} Reasoning Effort: ${settings.reasoning.effort}`);
38
- }
39
- if (settings.text) {
40
- console.log(`${PREFIX} Text Verbosity: ${settings.text.verbosity}`);
41
- }
42
- if (settings.toolChoice) {
43
- console.log(`${PREFIX} Tool Choice: ${settings.toolChoice}`);
44
- }
45
- console.log(`${PREFIX} === End Model Settings ===`);
46
- }
47
- logRunnerStart(model, modelSettings) {
48
- console.log(`${PREFIX} === Runner Execution Start ===`);
49
- console.log(`${PREFIX} Model: ${model}`);
50
- console.log(`${PREFIX} Model Settings: ${JSON.stringify(modelSettings)}`);
51
- }
52
- logRunResult(runResult, startTime) {
53
- const elapsedMs = Date.now() - startTime;
54
- console.log(`${PREFIX} === Runner Execution Complete ===`);
55
- console.log(`${PREFIX} Execution Time: ${elapsedMs}ms`);
56
- console.log(`${PREFIX} Output Messages Count: ${runResult.messages.length}`);
57
- console.log(`${PREFIX} Exit: ${runResult.exit}`);
58
- console.log(`${PREFIX} Error: ${runResult.error}`);
59
- console.log(`${PREFIX} Tools Executed: ${JSON.stringify(runResult.toolsExecuted.map(t => t.toolName))}`);
60
- if (runResult.inputGuardrailsTriggered.length > 0) {
61
- console.log(`${PREFIX} Input Guardrails Triggered: ${runResult.inputGuardrailsTriggered.length}`);
62
- }
63
- if (runResult.outputGuardrailsTriggered.length > 0) {
64
- console.log(`${PREFIX} Output Guardrails Triggered: ${runResult.outputGuardrailsTriggered.length}`);
65
- }
66
- console.log(`${PREFIX} === End Runner Execution ===`);
67
- }
68
- logGuardrailTriggered() {
69
- console.log(`${PREFIX} Input guardrail triggered`);
70
- }
71
- logRunnerError(startTime, error) {
72
- const elapsedMs = Date.now() - startTime;
73
- console.log(`${PREFIX} Runner execution failed after ${elapsedMs}ms`);
74
- console.log(`${PREFIX} Error:`, error);
75
- }
76
- logToolExecution(toolExecution) {
77
- console.log(`${PREFIX} Tool Execution: ${toolExecution.toolName}`);
78
- console.log(`${PREFIX} Tool Arguments: ${JSON.stringify(toolExecution.toolArguments)}`);
79
- console.log(`${PREFIX} Tool Results: ${toolExecution.toolResults}`);
80
- console.log(`${PREFIX} Knowledgebase Sources IDs: ${JSON.stringify(toolExecution.knowledgebaseSourcesIds)}`);
81
- console.log(`${PREFIX} Knowledgebase Chunks IDs: ${JSON.stringify(toolExecution.knowledgebaseChunksIds)}`);
82
- }
83
- }
84
- class DisabledDebugLogger {
85
- logInitialConfig() { }
86
- logAgentDebugInfo() { }
87
- logModelSettings() { }
88
- logRunnerStart(_model, _modelSettings) { }
89
- logRunResult() { }
90
- logGuardrailTriggered() { }
91
- logRunnerError() { }
92
- logToolExecution() { }
93
- }
94
- function createDebugLogger(enableDebug) {
95
- return enableDebug ? new EnabledDebugLogger() : new DisabledDebugLogger();
96
- }
97
- //# sourceMappingURL=debug-logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../src/debug-logger.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./input"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/guardrails/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB"}
@@ -1,10 +0,0 @@
1
- import { type InputGuardrail } from '@openai/agents';
2
- import type { LLMConfig } from '../llm-config';
3
- import type { GuardrailRule } from '../types';
4
- export interface GuardrailTrackingContext {
5
- botId: string;
6
- isTest: boolean;
7
- authToken: string;
8
- inferenceId: string;
9
- }
10
- export declare function createInputGuardrail(rules: GuardrailRule[], llmConfig: LLMConfig, trackingContext: GuardrailTrackingContext): InputGuardrail;
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createInputGuardrail = createInputGuardrail;
4
- const agents_1 = require("@openai/agents");
5
- const zod_1 = require("zod");
6
- const constants_1 = require("../constants");
7
- const hubtype_api_client_1 = require("../services/hubtype-api-client");
8
- const types_1 = require("../services/types");
9
- function createInputGuardrail(rules, llmConfig, trackingContext) {
10
- const outputType = zod_1.z.object(Object.fromEntries(rules.map(rule => [rule.name, zod_1.z.boolean().describe(rule.description)])));
11
- const agent = new agents_1.Agent({
12
- name: 'InputGuardrail',
13
- instructions: 'Check if the user triggers some of the following guardrails.',
14
- outputType,
15
- });
16
- return {
17
- name: 'InputGuardrail',
18
- execute: async ({ input, context }) => {
19
- const lastMessage = input[input.length - 1];
20
- const modelProvider = llmConfig.modelProvider;
21
- const modelSettings = llmConfig.modelSettings;
22
- modelSettings.toolChoice = undefined;
23
- const runner = new agents_1.Runner({
24
- modelSettings,
25
- modelProvider,
26
- tracingDisabled: true,
27
- });
28
- const startTime = Date.now();
29
- const result = await runner.run(agent, [lastMessage], { context });
30
- const endTime = Date.now();
31
- void sendGuardrailLlmRunTracking(result, trackingContext, llmConfig, startTime, endTime);
32
- const finalOutput = result.finalOutput;
33
- if (finalOutput === undefined) {
34
- throw new Error('Guardrail agent failed to produce output');
35
- }
36
- const triggered = Object.values(finalOutput).some(value => value === true);
37
- const triggeredGuardrails = Object.keys(finalOutput).filter(key => finalOutput[key] === true);
38
- return {
39
- outputInfo: triggeredGuardrails,
40
- tripwireTriggered: triggered,
41
- };
42
- },
43
- };
44
- }
45
- async function sendGuardrailLlmRunTracking(result, trackingContext, llmConfig, startTime, endTime) {
46
- if (!constants_1.isProd) {
47
- return;
48
- }
49
- const rawResponses = result.rawResponses ?? [];
50
- if (rawResponses.length === 0) {
51
- return;
52
- }
53
- const totalDuration = endTime - startTime;
54
- const durationPerCall = Math.round(totalDuration / rawResponses.length);
55
- const temperature = llmConfig.modelSettings.temperature ?? 0;
56
- const apiVersion = constants_1.OPENAI_PROVIDER === 'azure' ? constants_1.AZURE_OPENAI_API_VERSION : '';
57
- const llmRuns = rawResponses.map(response => ({
58
- inference_id: trackingContext.inferenceId,
59
- is_test: trackingContext.isTest,
60
- product_name: types_1.TrackProductName.AI_AGENT,
61
- deployment_name: llmConfig.modelName,
62
- model_name: response.providerData?.['model'] ??
63
- llmConfig.modelName,
64
- feature: types_1.TrackFeature.AI_AGENT_GUARDRAIL,
65
- api_version: apiVersion,
66
- num_prompt_tokens: response.usage.inputTokens,
67
- num_completion_tokens: response.usage.outputTokens,
68
- duration_in_milliseconds: durationPerCall,
69
- temperature,
70
- error: null,
71
- }));
72
- const client = new hubtype_api_client_1.HubtypeApiClient(trackingContext.authToken);
73
- await client.trackLlmRuns(trackingContext.botId, {
74
- llm_runs: llmRuns,
75
- });
76
- }
77
- //# sourceMappingURL=input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/guardrails/input.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { AiAgentArgs, BotContext, Plugin, ResolvedPlugins } from '@botonic/core';
2
- import type { CustomTool, InferenceResponse, PluginAiAgentOptions } from './types';
3
- export default class BotonicPluginAiAgents<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> implements Plugin {
4
- private readonly authToken?;
5
- private readonly messageHistoryApiVersion;
6
- private readonly memory;
7
- private readonly logger;
8
- private readonly timeout;
9
- private readonly maxRetries;
10
- toolDefinitions: CustomTool<TPlugins, TExtraData>[];
11
- constructor(options?: PluginAiAgentOptions<TPlugins, TExtraData>);
12
- pre(): void;
13
- getInference(botContext: BotContext<TPlugins, TExtraData>, aiAgentArgs: AiAgentArgs): Promise<InferenceResponse>;
14
- private getMessages;
15
- private buildTools;
16
- }
17
- export * from './bot-config-tools';
18
- export * from './types';
package/lib/cjs/index.js DELETED
@@ -1,134 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const agents_1 = require("@openai/agents");
5
- const uuid_1 = require("uuid");
6
- const agent_builder_1 = require("./agent-builder");
7
- const constants_1 = require("./constants");
8
- const debug_logger_1 = require("./debug-logger");
9
- const llm_config_1 = require("./llm-config");
10
- const runner_1 = require("./runner");
11
- const hubtype_api_client_1 = require("./services/hubtype-api-client");
12
- class BotonicPluginAiAgents {
13
- constructor(options) {
14
- this.toolDefinitions = [];
15
- if (options?.messageHistoryApiVersion === 'v1' && options?.memory) {
16
- throw new Error('Cannot use memory when messageHistoryApiVersion is "v1". ' +
17
- 'Either set messageHistoryApiVersion to "v2" or remove memory.');
18
- }
19
- this.authToken = options?.authToken;
20
- this.toolDefinitions = options?.customTools || [];
21
- this.messageHistoryApiVersion = options?.messageHistoryApiVersion ?? 'v2';
22
- this.memory = options?.memory ?? {};
23
- this.timeout = options?.timeout ?? constants_1.DEFAULT_TIMEOUT_16_SECONDS;
24
- this.maxRetries = options?.maxRetries ?? constants_1.DEFAULT_MAX_RETRIES;
25
- this.logger = (0, debug_logger_1.createDebugLogger)(options?.enableDebug ?? false);
26
- this.logger.logInitialConfig({
27
- messageHistoryApiVersion: this.messageHistoryApiVersion,
28
- maxRetries: options?.maxRetries ?? 2,
29
- timeout: options?.timeout ?? 16000,
30
- customToolNames: this.toolDefinitions.map(t => t.name),
31
- memory: this.memory,
32
- });
33
- }
34
- pre() {
35
- return;
36
- }
37
- async getInference(botContext, aiAgentArgs) {
38
- try {
39
- const authToken = constants_1.isProd
40
- ? botContext.session._access_token
41
- : this.authToken;
42
- if (!authToken) {
43
- throw new Error('Auth token is required');
44
- }
45
- const inferenceId = (0, uuid_1.v7)();
46
- // Create client for OpenAI/Azure OpenAI
47
- const llmConfig = new llm_config_1.LLMConfig(this.maxRetries, this.timeout, aiAgentArgs.model, aiAgentArgs.verbosity);
48
- // Build tools
49
- const tools = this.buildTools(aiAgentArgs.activeTools?.map(tool => tool.name) || []);
50
- // Build agent
51
- const agent = new agent_builder_1.AIAgentBuilder({
52
- name: aiAgentArgs.name,
53
- instructions: aiAgentArgs.instructions,
54
- tools: tools,
55
- contactInfo: botContext.session.user.contact_info || [],
56
- inputGuardrailRules: aiAgentArgs.inputGuardrailRules || [],
57
- sourceIds: aiAgentArgs.sourceIds || [],
58
- outputMessagesSchemas: aiAgentArgs.outputMessagesSchemas || [],
59
- campaignsContext: botContext.input.context?.campaigns_v2,
60
- logger: this.logger,
61
- llmConfig,
62
- guardrailTrackingContext: {
63
- botId: botContext.session.bot.id,
64
- isTest: botContext.session.is_test_integration,
65
- authToken,
66
- inferenceId,
67
- },
68
- }).build();
69
- // Get messages
70
- const messages = await this.getMessages(botContext, authToken, constants_1.MAX_MEMORY_LENGTH);
71
- // Build context
72
- const context = {
73
- authToken,
74
- sourceIds: aiAgentArgs.sourceIds || [],
75
- knowledgeUsed: {
76
- query: '',
77
- sourceIds: [],
78
- chunksIds: [],
79
- chunkTexts: [],
80
- },
81
- request: botContext,
82
- };
83
- // Log agent debug info
84
- this.logger.logAgentDebugInfo(aiAgentArgs, tools.map(t => t.name), messages);
85
- // Run agent
86
- const runner = new runner_1.AIAgentRunner(agent, llmConfig, inferenceId, this.logger);
87
- return await runner.run(messages, context);
88
- }
89
- catch (error) {
90
- console.error('error plugin returns undefined', error);
91
- return {
92
- messages: [],
93
- toolsExecuted: [],
94
- memoryLength: 0,
95
- exit: true,
96
- error: true,
97
- inputGuardrailsTriggered: [],
98
- outputGuardrailsTriggered: [],
99
- };
100
- }
101
- }
102
- async getMessages(botContext, authToken, memoryLength) {
103
- const hubtypeClient = new hubtype_api_client_1.HubtypeApiClient(authToken);
104
- if (!constants_1.isProd) {
105
- return await hubtypeClient.getLocalMessages(memoryLength);
106
- }
107
- if (this.messageHistoryApiVersion === 'v1') {
108
- return await hubtypeClient.getMessages(botContext, memoryLength);
109
- }
110
- // Default to V2
111
- const result = await hubtypeClient.getMessagesV2(botContext, {
112
- maxMessages: this.memory.maxMessages ?? memoryLength,
113
- includeToolCalls: this.memory.includeToolCalls ?? true,
114
- maxFullToolResults: this.memory.maxFullToolResults ?? 1,
115
- debugMode: this.memory.debugMode ?? false,
116
- });
117
- return result.messages;
118
- }
119
- buildTools(activeToolNames) {
120
- const availableTools = this.toolDefinitions.filter(tool => activeToolNames.includes(tool.name));
121
- return availableTools.map(toolDefinition => {
122
- return (0, agents_1.tool)({
123
- name: toolDefinition.name,
124
- description: toolDefinition.description,
125
- parameters: toolDefinition.schema,
126
- execute: toolDefinition.func,
127
- });
128
- });
129
- }
130
- }
131
- exports.default = BotonicPluginAiAgents;
132
- tslib_1.__exportStar(require("./bot-config-tools"), exports);
133
- tslib_1.__exportStar(require("./types"), exports);
134
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { VerbosityLevel } from '@botonic/core';
2
- import { type ModelProvider, type ModelSettings } from '@openai/agents';
3
- export declare class LLMConfig {
4
- private readonly maxRetries;
5
- private readonly timeout;
6
- readonly modelName: string;
7
- readonly modelSettings: ModelSettings;
8
- readonly modelProvider: ModelProvider;
9
- constructor(maxRetries: number, timeout: number, modelName: string, verbosity: VerbosityLevel);
10
- private getModelProvider;
11
- private getClient;
12
- private getOpenAIClient;
13
- private getAzureClient;
14
- private getModelSettings;
15
- }
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LLMConfig = void 0;
4
- const tslib_1 = require("tslib");
5
- const agents_1 = require("@openai/agents");
6
- const openai_1 = tslib_1.__importStar(require("openai"));
7
- const constants_1 = require("./constants");
8
- class LLMConfig {
9
- constructor(maxRetries, timeout, modelName, verbosity) {
10
- this.maxRetries = maxRetries;
11
- this.timeout = timeout;
12
- this.modelName = constants_1.OPENAI_PROVIDER === 'openai' ? constants_1.OPENAI_MODEL : modelName;
13
- this.modelProvider = this.getModelProvider();
14
- this.modelSettings = this.getModelSettings(modelName, verbosity);
15
- }
16
- getModelProvider() {
17
- const client = this.getClient();
18
- return new agents_1.OpenAIProvider({
19
- openAIClient: client,
20
- useResponses: false,
21
- });
22
- }
23
- getClient() {
24
- if (constants_1.OPENAI_PROVIDER === 'openai') {
25
- return this.getOpenAIClient();
26
- }
27
- return this.getAzureClient();
28
- }
29
- getOpenAIClient() {
30
- return new openai_1.default({
31
- apiKey: constants_1.OPENAI_API_KEY,
32
- timeout: this.timeout,
33
- maxRetries: this.maxRetries,
34
- dangerouslyAllowBrowser: !constants_1.isProd,
35
- });
36
- }
37
- getAzureClient() {
38
- return new openai_1.AzureOpenAI({
39
- apiKey: constants_1.AZURE_OPENAI_API_KEY,
40
- apiVersion: constants_1.AZURE_OPENAI_API_VERSION,
41
- deployment: this.modelName,
42
- baseURL: constants_1.AZURE_OPENAI_API_BASE,
43
- timeout: this.timeout,
44
- maxRetries: this.maxRetries,
45
- dangerouslyAllowBrowser: !constants_1.isProd,
46
- });
47
- }
48
- getModelSettings(model, verbosity) {
49
- if (model.includes('gpt-5')) {
50
- return {
51
- reasoning: { effort: 'none' },
52
- temperature: 1,
53
- text: { verbosity },
54
- };
55
- }
56
- if (model.includes('gpt-4')) {
57
- return {
58
- temperature: 0,
59
- text: { verbosity: 'medium' },
60
- };
61
- }
62
- throw new Error(`Unsupported model: ${model}`);
63
- }
64
- }
65
- exports.LLMConfig = LLMConfig;
66
- //# sourceMappingURL=llm-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":";;;;AACA,2CAIuB;AACvB,yDAA4C;AAC5C,2CAQoB;AAEpB,MAAa,SAAS;IAOpB,YACE,UAAkB,EAClB,OAAe,EACf,SAAiB,EACjB,SAAyB;QAEzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,2BAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAClE,CAAC;IAEO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,IAAI,uBAAc,CAAC;YACxB,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAA;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,2BAAe,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,gBAAM,CAAC;YAChB,MAAM,EAAE,0BAAc;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,uBAAuB,EAAE,CAAC,kBAAM;SACjC,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,oBAAW,CAAC;YACrB,MAAM,EAAE,gCAAoB;YAC5B,UAAU,EAAE,oCAAwB;YACpC,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,OAAO,EAAE,iCAAqB;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,uBAAuB,EAAE,CAAC,kBAAM;SACjC,CAAC,CAAA;IACJ,CAAC;IAEO,gBAAgB,CACtB,KAAa,EACb,SAAyB;QAEzB,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC7B,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aAC9B,CAAA;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;IAChD,CAAC;CACF;AA9ED,8BA8EC"}
@@ -1,18 +0,0 @@
1
- import type { ResolvedPlugins } from '@botonic/core';
2
- import type { DebugLogger } from './debug-logger';
3
- import type { LLMConfig } from './llm-config';
4
- import type { AgenticInputMessage, AIAgent, Context, RunResult } from './types';
5
- export declare class AIAgentRunner<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
6
- private agent;
7
- private llmConfig;
8
- private inferenceId;
9
- private logger;
10
- constructor(agent: AIAgent<TPlugins, TExtraData>, openAiClient: LLMConfig, inferenceId: string, logger: DebugLogger);
11
- run(messages: AgenticInputMessage[], context: Context<TPlugins, TExtraData>): Promise<RunResult>;
12
- private sendLlmRunTracking;
13
- private getToolsExecuted;
14
- private getToolResultsByCallId;
15
- private extractToolResult;
16
- private getToolExecutionInfo;
17
- private getSafeToolArguments;
18
- }