@botonic/plugin-ai-agents 0.43.0-alpha.0 → 0.43.0-beta.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.
- package/lib/cjs/agent-builder.d.ts +2 -13
- package/lib/cjs/agent-builder.js +10 -34
- package/lib/cjs/agent-builder.js.map +1 -1
- package/lib/cjs/constants.d.ts +0 -3
- package/lib/cjs/constants.js +1 -6
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/guardrails/input.js.map +1 -1
- package/lib/cjs/hubtype-api-client.d.ts +13 -0
- package/lib/cjs/hubtype-api-client.js +103 -0
- package/lib/cjs/hubtype-api-client.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -0
- package/lib/cjs/index.js +23 -14
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/openai.js +3 -18
- package/lib/cjs/openai.js.map +1 -1
- package/lib/cjs/runner.js +2 -5
- package/lib/cjs/runner.js.map +1 -1
- package/lib/cjs/tools/retrieve-knowledge.d.ts +1 -8
- package/lib/cjs/tools/retrieve-knowledge.js +1 -2
- package/lib/cjs/tools/retrieve-knowledge.js.map +1 -1
- package/lib/cjs/types.d.ts +13 -2
- package/lib/esm/agent-builder.d.ts +2 -13
- package/lib/esm/agent-builder.js +11 -35
- package/lib/esm/agent-builder.js.map +1 -1
- package/lib/esm/constants.d.ts +0 -3
- package/lib/esm/constants.js +0 -5
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/guardrails/input.js.map +1 -1
- package/lib/esm/hubtype-api-client.d.ts +13 -0
- package/lib/esm/hubtype-api-client.js +103 -0
- package/lib/esm/hubtype-api-client.js.map +1 -1
- package/lib/esm/index.d.ts +2 -0
- package/lib/esm/index.js +23 -14
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/openai.js +4 -18
- package/lib/esm/openai.js.map +1 -1
- package/lib/esm/runner.js +2 -5
- package/lib/esm/runner.js.map +1 -1
- package/lib/esm/tools/retrieve-knowledge.d.ts +1 -8
- package/lib/esm/tools/retrieve-knowledge.js +1 -2
- package/lib/esm/tools/retrieve-knowledge.js.map +1 -1
- package/lib/esm/types.d.ts +13 -2
- package/package.json +3 -3
- package/src/agent-builder.ts +22 -64
- package/src/constants.ts +0 -7
- package/src/guardrails/input.ts +1 -1
- package/src/hubtype-api-client.ts +169 -0
- package/src/index.ts +38 -13
- package/src/openai.ts +3 -19
- package/src/runner.ts +6 -15
- package/src/tools/retrieve-knowledge.ts +2 -3
- package/src/types.ts +14 -2
package/lib/esm/agent-builder.js
CHANGED
|
@@ -1,42 +1,25 @@
|
|
|
1
|
-
import { Agent
|
|
2
|
-
import { OPENAI_MODEL, OPENAI_PROVIDER } from './constants';
|
|
1
|
+
import { Agent } from '@openai/agents';
|
|
3
2
|
import { createInputGuardrail } from './guardrails';
|
|
4
3
|
import { OutputSchema } from './structured-output';
|
|
5
4
|
import { mandatoryTools, retrieveKnowledge } from './tools';
|
|
6
5
|
export class AIAgentBuilder {
|
|
7
|
-
constructor(
|
|
8
|
-
this.name =
|
|
9
|
-
this.instructions = this.addExtraInstructions(
|
|
10
|
-
this.tools = this.addHubtypeTools(
|
|
6
|
+
constructor(name, instructions, tools, contactInfo, inputGuardrailRules, sourceIds) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.instructions = this.addExtraInstructions(instructions, contactInfo);
|
|
9
|
+
this.tools = this.addHubtypeTools(tools, sourceIds);
|
|
11
10
|
this.inputGuardrails = [];
|
|
12
|
-
if (
|
|
13
|
-
const inputGuardrail = createInputGuardrail(
|
|
11
|
+
if (inputGuardrailRules.length > 0) {
|
|
12
|
+
const inputGuardrail = createInputGuardrail(inputGuardrailRules);
|
|
14
13
|
this.inputGuardrails.push(inputGuardrail);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
build() {
|
|
18
17
|
const modelSettings = {};
|
|
19
|
-
if (
|
|
20
|
-
// @ts-expect-error - reasoning.effort is valid but we need to update openai and typescript dependencies
|
|
21
|
-
modelSettings.reasoning = { effort: 'none' };
|
|
22
|
-
modelSettings.text = { verbosity: 'medium' };
|
|
23
|
-
}
|
|
24
|
-
if (this.tools.includes(retrieveKnowledge) && OPENAI_PROVIDER === 'azure') {
|
|
18
|
+
if (this.tools.includes(retrieveKnowledge)) {
|
|
25
19
|
modelSettings.toolChoice = retrieveKnowledge.name;
|
|
26
20
|
}
|
|
27
|
-
// When using standard OpenAI API, we need to specify the model
|
|
28
|
-
// Azure OpenAI uses deployment name instead
|
|
29
|
-
const model = OPENAI_PROVIDER === 'openai' ? OPENAI_MODEL : undefined;
|
|
30
|
-
// TODO: Improve type safety - replace AgentOutputType<any> with AgentOutputType<typeof OutputSchema>
|
|
31
|
-
// Currently using explicit type parameters to avoid type inference issues where Agent constructor
|
|
32
|
-
// infers ZodObject instead of AgentOutputType<typeof OutputSchema>. The explicit type parameters
|
|
33
|
-
// ensure compatibility with AIAgent type definition. Future improvements:
|
|
34
|
-
// 1. Update @openai/agents package to properly infer AgentOutputType from outputType parameter
|
|
35
|
-
// 2. Replace AgentOutputType<any> with AgentOutputType<typeof OutputSchema> once type system allows
|
|
36
|
-
// 3. Consider updating AIAgent type definition if @openai/agents types change significantly
|
|
37
21
|
return new Agent({
|
|
38
22
|
name: this.name,
|
|
39
|
-
model,
|
|
40
23
|
instructions: this.instructions,
|
|
41
24
|
tools: this.tools,
|
|
42
25
|
outputType: OutputSchema,
|
|
@@ -45,13 +28,12 @@ export class AIAgentBuilder {
|
|
|
45
28
|
modelSettings,
|
|
46
29
|
});
|
|
47
30
|
}
|
|
48
|
-
addExtraInstructions(initialInstructions, contactInfo
|
|
49
|
-
const instructions = `<instructions>\n${initialInstructions
|
|
31
|
+
addExtraInstructions(initialInstructions, contactInfo) {
|
|
32
|
+
const instructions = `<instructions>\n${initialInstructions}\n</instructions>`;
|
|
50
33
|
const metadataInstructions = this.getMetadataInstructions();
|
|
51
34
|
const contactInfoInstructions = this.getContactInfoInstructions(contactInfo);
|
|
52
|
-
const campaignInstructions = this.getCampaignInstructions(campaignContext);
|
|
53
35
|
const outputInstructions = this.getOutputInstructions();
|
|
54
|
-
return `${instructions}\n\n${metadataInstructions}\n\n${contactInfoInstructions}\n\n${
|
|
36
|
+
return `${instructions}\n\n${metadataInstructions}\n\n${contactInfoInstructions}\n\n${outputInstructions}`;
|
|
55
37
|
}
|
|
56
38
|
getContactInfoInstructions(contactInfo) {
|
|
57
39
|
const structuredContactInfo = Object.entries(contactInfo)
|
|
@@ -63,12 +45,6 @@ export class AIAgentBuilder {
|
|
|
63
45
|
const metadata = `Current Date: ${new Date().toISOString()}`;
|
|
64
46
|
return `<metadata>\n${metadata}\n</metadata>`;
|
|
65
47
|
}
|
|
66
|
-
getCampaignInstructions(campaignContext) {
|
|
67
|
-
if (!campaignContext || !campaignContext.agent_context) {
|
|
68
|
-
return '';
|
|
69
|
-
}
|
|
70
|
-
return `<campaign_context>\n${campaignContext.agent_context}\n</campaign_context>`;
|
|
71
|
-
}
|
|
72
48
|
getOutputInstructions() {
|
|
73
49
|
const example = {
|
|
74
50
|
messages: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/constants.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
export declare const HUBTYPE_API_URL: string;
|
|
2
|
-
export declare const OPENAI_API_KEY: string | undefined;
|
|
3
|
-
export declare const OPENAI_MODEL: string;
|
|
4
|
-
export declare const OPENAI_PROVIDER: 'openai' | 'azure';
|
|
5
2
|
export declare const AZURE_OPENAI_API_KEY: string | undefined;
|
|
6
3
|
export declare const AZURE_OPENAI_API_BASE: string | undefined;
|
|
7
4
|
export declare const AZURE_OPENAI_API_DEPLOYMENT_NAME: string;
|
package/lib/esm/constants.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
export const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
|
|
2
|
-
// OpenAI Provider Configuration
|
|
3
|
-
export const OPENAI_API_KEY = process.env.OPENAI_API_KEY; // pragma: allowlist secret
|
|
4
|
-
export const OPENAI_MODEL = process.env.OPENAI_MODEL || 'gpt-4.1-mini';
|
|
5
|
-
export const OPENAI_PROVIDER = process.env.OPENAI_PROVIDER || 'azure';
|
|
6
|
-
// Azure OpenAI Configuration
|
|
7
2
|
export const AZURE_OPENAI_API_KEY = process.env.AZURE_OPENAI_API_KEY; // pragma: allowlist secret
|
|
8
3
|
export const AZURE_OPENAI_API_BASE = process.env.AZURE_OPENAI_API_BASE;
|
|
9
4
|
export const AZURE_OPENAI_API_DEPLOYMENT_NAME = process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME || 'gpt-41-mini_p1';
|
package/lib/esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAE1D,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAC,2BAA2B;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;AACtE,MAAM,CAAC,MAAM,gCAAgC,GAC3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,gBAAgB,CAAA;AAClE,MAAM,CAAC,MAAM,wBAAwB,GACnC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,oBAAoB,CAAA;AAE9D,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/guardrails/input.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,GAAG,EAAmB,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CACzB,MAAM,CAAC,WAAW,CAChB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACvE,CACF,CAAA;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EACV,8DAA8D;QAChE,UAAU;KACX,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB,CAAA;YAC9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/guardrails/input.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,GAAG,EAAmB,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CACzB,MAAM,CAAC,WAAW,CAChB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACvE,CACF,CAAA;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EACV,8DAA8D;QAChE,UAAU;KACX,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB,CAAA;YAC9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;YACtC,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;aAC5D;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;YAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CACzD,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CACjC,CAAA;YACD,OAAO;gBACL,UAAU,EAAE,mBAAmB;gBAC/B,iBAAiB,EAAE,SAAS;aAC7B,CAAA;QACH,CAAC,CAAA;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { BotContext } from '@botonic/core';
|
|
2
2
|
import { AgenticInputMessage, Chunk } from './types';
|
|
3
|
+
export interface GetMessagesV2Options {
|
|
4
|
+
maxMessages?: number;
|
|
5
|
+
includeToolCalls?: boolean;
|
|
6
|
+
maxFullToolResults?: number;
|
|
7
|
+
debugMode?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface GetMessagesV2Result {
|
|
10
|
+
messages: AgenticInputMessage[];
|
|
11
|
+
conversationId: string | null;
|
|
12
|
+
truncated: boolean;
|
|
13
|
+
}
|
|
3
14
|
export declare class HubtypeApiClient {
|
|
4
15
|
private readonly authToken;
|
|
5
16
|
constructor(authToken: string);
|
|
6
17
|
retrieveSimilarChunks(query: string, sourceIds: string[]): Promise<Chunk[]>;
|
|
7
18
|
getLocalMessages(maxMemoryLength: number): Promise<AgenticInputMessage[]>;
|
|
8
19
|
getMessages(request: BotContext, maxMemoryLength: number): Promise<AgenticInputMessage[]>;
|
|
20
|
+
getMessagesV2(request: BotContext, options?: GetMessagesV2Options): Promise<GetMessagesV2Result>;
|
|
21
|
+
private formatMessageV2;
|
|
9
22
|
private formatMessage;
|
|
10
23
|
}
|
|
@@ -67,6 +67,109 @@ export class HubtypeApiClient {
|
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
+
getMessagesV2(request, options = {}) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const url = `${HUBTYPE_API_URL}/external/v2/ai/agent/message_history/`;
|
|
73
|
+
const headers = {
|
|
74
|
+
'Content-Type': 'application/json',
|
|
75
|
+
Authorization: `Bearer ${this.authToken}`,
|
|
76
|
+
};
|
|
77
|
+
const params = {
|
|
78
|
+
last_message_id: request.input.message_id,
|
|
79
|
+
};
|
|
80
|
+
if (options.maxMessages !== undefined) {
|
|
81
|
+
params.max_messages = options.maxMessages;
|
|
82
|
+
}
|
|
83
|
+
if (options.includeToolCalls !== undefined) {
|
|
84
|
+
params.include_tool_calls = options.includeToolCalls;
|
|
85
|
+
}
|
|
86
|
+
if (options.maxFullToolResults !== undefined) {
|
|
87
|
+
params.max_full_tool_results = options.maxFullToolResults;
|
|
88
|
+
}
|
|
89
|
+
if (options.debugMode !== undefined) {
|
|
90
|
+
params.debug_mode = options.debugMode;
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const response = yield axios.get(url, {
|
|
94
|
+
headers,
|
|
95
|
+
params,
|
|
96
|
+
});
|
|
97
|
+
const { messages, conversation_id, truncated } = response.data;
|
|
98
|
+
const formattedMessages = messages
|
|
99
|
+
.map(message => this.formatMessageV2(message))
|
|
100
|
+
.filter((message) => message !== null);
|
|
101
|
+
return {
|
|
102
|
+
messages: formattedMessages,
|
|
103
|
+
conversationId: conversation_id,
|
|
104
|
+
truncated,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error(error);
|
|
109
|
+
throw new Error('Failed to get messages from Hubtype V2 API');
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
formatMessageV2(message) {
|
|
114
|
+
var _a, _b, _c, _d, _e;
|
|
115
|
+
switch (message.role) {
|
|
116
|
+
case 'user':
|
|
117
|
+
return {
|
|
118
|
+
role: 'user',
|
|
119
|
+
content: (_a = message.content) !== null && _a !== void 0 ? _a : '',
|
|
120
|
+
};
|
|
121
|
+
case 'assistant': {
|
|
122
|
+
const assistantMessage = message;
|
|
123
|
+
// If assistant message has tool_calls, include them for context
|
|
124
|
+
// Using double assertion as the OpenAI API supports this format,
|
|
125
|
+
// but the agents SDK types are more restrictive
|
|
126
|
+
if (assistantMessage.tool_calls &&
|
|
127
|
+
assistantMessage.tool_calls.length > 0) {
|
|
128
|
+
return {
|
|
129
|
+
role: 'assistant',
|
|
130
|
+
content: (_b = assistantMessage.content) !== null && _b !== void 0 ? _b : '',
|
|
131
|
+
tool_calls: assistantMessage.tool_calls.map(tc => ({
|
|
132
|
+
id: tc.id,
|
|
133
|
+
type: tc.type,
|
|
134
|
+
function: {
|
|
135
|
+
name: tc.function.name,
|
|
136
|
+
arguments: tc.function.arguments,
|
|
137
|
+
},
|
|
138
|
+
})),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Regular assistant message without tool_calls
|
|
142
|
+
return {
|
|
143
|
+
role: 'assistant',
|
|
144
|
+
content: [
|
|
145
|
+
{
|
|
146
|
+
type: 'output_text',
|
|
147
|
+
text: (_c = assistantMessage.content) !== null && _c !== void 0 ? _c : '',
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
status: 'completed',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
case 'tool': {
|
|
154
|
+
// Tool messages provide context about previous tool executions
|
|
155
|
+
// Using double assertion as the OpenAI API supports this format,
|
|
156
|
+
// but the agents SDK types are more restrictive
|
|
157
|
+
const toolMessage = message;
|
|
158
|
+
return {
|
|
159
|
+
role: 'tool',
|
|
160
|
+
tool_call_id: toolMessage.tool_call_id,
|
|
161
|
+
content: (_d = toolMessage.content) !== null && _d !== void 0 ? _d : '',
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
case 'system':
|
|
165
|
+
return {
|
|
166
|
+
role: 'system',
|
|
167
|
+
content: (_e = message.content) !== null && _e !== void 0 ? _e : '',
|
|
168
|
+
};
|
|
169
|
+
default:
|
|
170
|
+
throw new Error(`Invalid message role: ${message.role}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
70
173
|
formatMessage(message) {
|
|
71
174
|
if (message.role === 'user') {
|
|
72
175
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hubtype-api-client.js","sourceRoot":"","sources":["../../src/hubtype-api-client.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"hubtype-api-client.js","sourceRoot":"","sources":["../../src/hubtype-api-client.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { AiAgentArgs, BotContext, Plugin, ResolvedPlugins } from '@botonic/core'
|
|
|
2
2
|
import { CustomTool, InferenceResponse, PluginAiAgentOptions } from './types';
|
|
3
3
|
export default class BotonicPluginAiAgents<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> implements Plugin {
|
|
4
4
|
private readonly authToken?;
|
|
5
|
+
private readonly messageHistoryApiVersion;
|
|
6
|
+
private readonly memory;
|
|
5
7
|
toolDefinitions: CustomTool<TPlugins, TExtraData>[];
|
|
6
8
|
constructor(options?: PluginAiAgentOptions<TPlugins, TExtraData>);
|
|
7
9
|
pre(): void;
|
package/lib/esm/index.js
CHANGED
|
@@ -7,16 +7,23 @@ import { setUpOpenAI } from './openai';
|
|
|
7
7
|
import { AIAgentRunner } from './runner';
|
|
8
8
|
export default class BotonicPluginAiAgents {
|
|
9
9
|
constructor(options) {
|
|
10
|
+
var _a, _b;
|
|
10
11
|
this.toolDefinitions = [];
|
|
11
12
|
setUpOpenAI(options === null || options === void 0 ? void 0 : options.maxRetries, options === null || options === void 0 ? void 0 : options.timeout);
|
|
13
|
+
if ((options === null || options === void 0 ? void 0 : options.messageHistoryApiVersion) === 'v1' && (options === null || options === void 0 ? void 0 : options.memory)) {
|
|
14
|
+
throw new Error('Cannot use memory when messageHistoryApiVersion is "v1". ' +
|
|
15
|
+
'Either set messageHistoryApiVersion to "v2" or remove memory.');
|
|
16
|
+
}
|
|
12
17
|
this.authToken = options === null || options === void 0 ? void 0 : options.authToken;
|
|
13
18
|
this.toolDefinitions = (options === null || options === void 0 ? void 0 : options.customTools) || [];
|
|
19
|
+
this.messageHistoryApiVersion = (_a = options === null || options === void 0 ? void 0 : options.messageHistoryApiVersion) !== null && _a !== void 0 ? _a : 'v2';
|
|
20
|
+
this.memory = (_b = options === null || options === void 0 ? void 0 : options.memory) !== null && _b !== void 0 ? _b : {};
|
|
14
21
|
}
|
|
15
22
|
pre() {
|
|
16
23
|
return;
|
|
17
24
|
}
|
|
18
25
|
getInference(request, aiAgentArgs) {
|
|
19
|
-
var _a
|
|
26
|
+
var _a;
|
|
20
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
28
|
try {
|
|
22
29
|
const authToken = isProd ? request.session._access_token : this.authToken;
|
|
@@ -24,15 +31,7 @@ export default class BotonicPluginAiAgents {
|
|
|
24
31
|
throw new Error('Auth token is required');
|
|
25
32
|
}
|
|
26
33
|
const tools = this.buildTools(((_a = aiAgentArgs.activeTools) === null || _a === void 0 ? void 0 : _a.map(tool => tool.name)) || []);
|
|
27
|
-
const agent = new AIAgentBuilder({
|
|
28
|
-
name: aiAgentArgs.name,
|
|
29
|
-
instructions: aiAgentArgs.instructions,
|
|
30
|
-
tools: tools,
|
|
31
|
-
contactInfo: request.session.user.contact_info || {},
|
|
32
|
-
inputGuardrailRules: aiAgentArgs.inputGuardrailRules || [],
|
|
33
|
-
sourceIds: aiAgentArgs.sourceIds || [],
|
|
34
|
-
campaignContext: (_b = request.input.context) === null || _b === void 0 ? void 0 : _b.campaign_v2,
|
|
35
|
-
}).build();
|
|
34
|
+
const agent = new AIAgentBuilder(aiAgentArgs.name, aiAgentArgs.instructions, tools, request.session.user.contact_info || {}, aiAgentArgs.inputGuardrailRules || [], aiAgentArgs.sourceIds || []).build();
|
|
36
35
|
const messages = yield this.getMessages(request, authToken, MAX_MEMORY_LENGTH);
|
|
37
36
|
const context = {
|
|
38
37
|
authToken,
|
|
@@ -63,13 +62,23 @@ export default class BotonicPluginAiAgents {
|
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
64
|
getMessages(request, authToken, memoryLength) {
|
|
65
|
+
var _a, _b, _c, _d;
|
|
66
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
const hubtypeClient = new HubtypeApiClient(authToken);
|
|
68
|
+
if (!isProd) {
|
|
69
|
+
return yield hubtypeClient.getLocalMessages(memoryLength);
|
|
70
|
+
}
|
|
71
|
+
if (this.messageHistoryApiVersion === 'v1') {
|
|
69
72
|
return yield hubtypeClient.getMessages(request, memoryLength);
|
|
70
73
|
}
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
// Default to V2
|
|
75
|
+
const result = yield hubtypeClient.getMessagesV2(request, {
|
|
76
|
+
maxMessages: (_a = this.memory.maxMessages) !== null && _a !== void 0 ? _a : memoryLength,
|
|
77
|
+
includeToolCalls: (_b = this.memory.includeToolCalls) !== null && _b !== void 0 ? _b : true,
|
|
78
|
+
maxFullToolResults: (_c = this.memory.maxFullToolResults) !== null && _c !== void 0 ? _c : 1,
|
|
79
|
+
debugMode: (_d = this.memory.debugMode) !== null && _d !== void 0 ? _d : false,
|
|
80
|
+
});
|
|
81
|
+
return result.messages;
|
|
73
82
|
});
|
|
74
83
|
}
|
|
75
84
|
buildTools(activeToolNames) {
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/openai.js
CHANGED
|
@@ -1,32 +1,18 @@
|
|
|
1
1
|
import { setDefaultOpenAIClient, setOpenAIAPI, setTracingDisabled, } from '@openai/agents';
|
|
2
|
-
import
|
|
3
|
-
import { AZURE_OPENAI_API_BASE, AZURE_OPENAI_API_DEPLOYMENT_NAME, AZURE_OPENAI_API_KEY, AZURE_OPENAI_API_VERSION, isProd,
|
|
2
|
+
import { AzureOpenAI } from 'openai';
|
|
3
|
+
import { AZURE_OPENAI_API_BASE, AZURE_OPENAI_API_DEPLOYMENT_NAME, AZURE_OPENAI_API_KEY, AZURE_OPENAI_API_VERSION, isProd, } from './constants';
|
|
4
4
|
export function setUpOpenAI(maxRetries, timeout) {
|
|
5
|
-
|
|
6
|
-
setAzureOpenAIClient(maxRetries, timeout);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
setOpenAIClient(maxRetries, timeout);
|
|
10
|
-
}
|
|
5
|
+
setAzureOpenAIClient(maxRetries, timeout);
|
|
11
6
|
setOpenAIAPI('chat_completions');
|
|
12
7
|
setTracingDisabled(true);
|
|
13
8
|
}
|
|
14
|
-
function setOpenAIClient(maxRetries, timeout) {
|
|
15
|
-
const client = new OpenAI({
|
|
16
|
-
apiKey: OPENAI_API_KEY,
|
|
17
|
-
timeout: timeout || 16000,
|
|
18
|
-
maxRetries: maxRetries || 2,
|
|
19
|
-
dangerouslyAllowBrowser: !isProd,
|
|
20
|
-
});
|
|
21
|
-
setDefaultOpenAIClient(client);
|
|
22
|
-
}
|
|
23
9
|
function setAzureOpenAIClient(maxRetries, timeout) {
|
|
24
10
|
const client = new AzureOpenAI({
|
|
25
11
|
apiKey: AZURE_OPENAI_API_KEY,
|
|
26
12
|
apiVersion: AZURE_OPENAI_API_VERSION,
|
|
27
13
|
deployment: AZURE_OPENAI_API_DEPLOYMENT_NAME,
|
|
28
14
|
baseURL: AZURE_OPENAI_API_BASE,
|
|
29
|
-
timeout: timeout ||
|
|
15
|
+
timeout: timeout || 8000,
|
|
30
16
|
maxRetries: maxRetries || 2,
|
|
31
17
|
dangerouslyAllowBrowser: !isProd,
|
|
32
18
|
});
|
package/lib/esm/openai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,EACL,qBAAqB,EACrB,gCAAgC,EAChC,oBAAoB,EACpB,wBAAwB,EACxB,MAAM,GACP,MAAM,aAAa,CAAA;AAEpB,MAAM,UAAU,WAAW,CAAC,UAAmB,EAAE,OAAgB;IAC/D,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACzC,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAChC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAmB,EAAE,OAAgB;IACjE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;QAC7B,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,wBAAwB;QACpC,UAAU,EAAE,gCAAgC;QAC5C,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,UAAU,EAAE,UAAU,IAAI,CAAC;QAC3B,uBAAuB,EAAE,CAAC,MAAM;KACjC,CAAC,CAAA;IACF,sBAAsB,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC"}
|
package/lib/esm/runner.js
CHANGED
|
@@ -8,15 +8,12 @@ export class AIAgentRunner {
|
|
|
8
8
|
run(messages, context) {
|
|
9
9
|
var _a;
|
|
10
10
|
return __awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
console.log('Running agent with messages', JSON.stringify(messages, null, 2));
|
|
11
12
|
try {
|
|
12
13
|
const runner = new Runner({
|
|
13
14
|
modelSettings: { temperature: 0 },
|
|
14
15
|
});
|
|
15
|
-
|
|
16
|
-
// doesn't perfectly match our interface, but the properties we access are compatible
|
|
17
|
-
const result = (yield runner.run(this.agent, messages, {
|
|
18
|
-
context,
|
|
19
|
-
}));
|
|
16
|
+
const result = yield runner.run(this.agent, messages, { context });
|
|
20
17
|
const outputMessages = ((_a = result.finalOutput) === null || _a === void 0 ? void 0 : _a.messages) || [];
|
|
21
18
|
const hasExit = outputMessages.length === 0 ||
|
|
22
19
|
outputMessages.some(message => message.type === 'exit');
|
package/lib/esm/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";AACA,OAAO,EACL,+BAA+B,EAC/B,MAAM,EACN,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
1
|
import { Context } from '../types';
|
|
3
|
-
export declare const retrieveKnowledge: import("@openai/agents").FunctionTool<Context<import("@botonic/core").ResolvedPlugins, any>,
|
|
4
|
-
query: z.ZodString;
|
|
5
|
-
}, "strip", z.ZodTypeAny, {
|
|
6
|
-
query: string;
|
|
7
|
-
}, {
|
|
8
|
-
query: string;
|
|
9
|
-
}>, string>;
|
|
2
|
+
export declare const retrieveKnowledge: import("@openai/agents").FunctionTool<Context<import("@botonic/core").ResolvedPlugins, any>, any, any>;
|
|
@@ -8,9 +8,8 @@ export const retrieveKnowledge = tool({
|
|
|
8
8
|
parameters: z.object({
|
|
9
9
|
query: z.string().describe('The query to search the knowledge base for'),
|
|
10
10
|
}),
|
|
11
|
-
execute: (
|
|
11
|
+
execute: ({ query }, runContext) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12
12
|
const context = runContext === null || runContext === void 0 ? void 0 : runContext.context;
|
|
13
|
-
const query = input.query;
|
|
14
13
|
if (!context) {
|
|
15
14
|
throw new Error('Context is required');
|
|
16
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieve-knowledge.js","sourceRoot":"","sources":["../../../src/tools/retrieve-knowledge.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"retrieve-knowledge.js","sourceRoot":"","sources":["../../../src/tools/retrieve-knowledge.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAoB;IACvD,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,kIAAkI;IACpI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACzE,CAAC;IACF,OAAO,EAAE,CACP,EAAE,KAAK,EAAqB,EAC5B,UAAgC,EACb,EAAE;QACrB,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAA;QACnC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACvC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACnE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAElD,OAAO,CAAC,aAAa,GAAG;YACtB,KAAK;YACL,SAAS;YACT,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,UAAU;SACX,CAAA;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;CACF,CAAC,CAAA"}
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgenticOutputMessage, AiAgentArgs, BotContext, GuardrailRule, InferenceResponse, ResolvedPlugins, RunResult } from '@botonic/core';
|
|
2
|
-
import { Agent, AgentInputItem,
|
|
2
|
+
import { Agent, AgentInputItem, RunContext as OpenAIRunContext, Tool as OpenAITool } from '@openai/agents';
|
|
3
3
|
import { ZodSchema } from 'zod';
|
|
4
4
|
import { OutputSchema } from './structured-output';
|
|
5
5
|
export interface Context<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
@@ -26,12 +26,23 @@ export interface Chunk {
|
|
|
26
26
|
}
|
|
27
27
|
export type ContactInfo = Record<string, string>;
|
|
28
28
|
export type Tool<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = OpenAITool<Context<TPlugins, TExtraData>>;
|
|
29
|
-
export type AIAgent<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = Agent<Context<TPlugins, TExtraData>,
|
|
29
|
+
export type AIAgent<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = Agent<Context<TPlugins, TExtraData>, typeof OutputSchema>;
|
|
30
|
+
export type MessageHistoryApiVersion = 'v1' | 'v2';
|
|
31
|
+
export interface MemoryOptions {
|
|
32
|
+
maxMessages?: number;
|
|
33
|
+
includeToolCalls?: boolean;
|
|
34
|
+
maxFullToolResults?: number;
|
|
35
|
+
debugMode?: boolean;
|
|
36
|
+
}
|
|
30
37
|
export interface PluginAiAgentOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
31
38
|
authToken?: string;
|
|
32
39
|
customTools?: CustomTool<TPlugins, TExtraData>[];
|
|
33
40
|
maxRetries?: number;
|
|
34
41
|
timeout?: number;
|
|
42
|
+
/** API version for message history endpoint. Defaults to 'v2'. */
|
|
43
|
+
messageHistoryApiVersion?: MessageHistoryApiVersion;
|
|
44
|
+
/** Options for V2 message history API. Only used when messageHistoryApiVersion is 'v2'. */
|
|
45
|
+
memory?: MemoryOptions;
|
|
35
46
|
}
|
|
36
47
|
export type AgenticInputMessage = AgentInputItem;
|
|
37
48
|
export { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult, };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-ai-agents",
|
|
3
|
-
"version": "0.43.0-
|
|
3
|
+
"version": "0.43.0-beta.0",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use AI Agents to generate your contents",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@botonic/core": "0.
|
|
16
|
+
"@botonic/core": "^0.42.0",
|
|
17
17
|
"@openai/agents": "^0.1.11",
|
|
18
18
|
"axios": "^1.12.2",
|
|
19
19
|
"openai": "^5.23.2",
|
|
@@ -45,4 +45,4 @@
|
|
|
45
45
|
"javascript"
|
|
46
46
|
],
|
|
47
47
|
"author": ""
|
|
48
|
-
}
|
|
48
|
+
}
|