@botonic/plugin-ai-agents 0.43.0 → 0.44.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 (48) hide show
  1. package/lib/cjs/agent-builder.js +0 -1
  2. package/lib/cjs/agent-builder.js.map +1 -1
  3. package/lib/cjs/guardrails/input.js +4 -6
  4. package/lib/cjs/guardrails/input.js.map +1 -1
  5. package/lib/cjs/hubtype-api-client.js +94 -97
  6. package/lib/cjs/hubtype-api-client.js.map +1 -1
  7. package/lib/cjs/index.js +63 -70
  8. package/lib/cjs/index.js.map +1 -1
  9. package/lib/cjs/openai.js +3 -4
  10. package/lib/cjs/openai.js.map +1 -1
  11. package/lib/cjs/runner.js +39 -41
  12. package/lib/cjs/runner.js.map +1 -1
  13. package/lib/cjs/tools/retrieve-knowledge.js +4 -5
  14. package/lib/cjs/tools/retrieve-knowledge.js.map +1 -1
  15. package/lib/esm/agent-builder.js +19 -16
  16. package/lib/esm/agent-builder.js.map +1 -1
  17. package/lib/esm/constants.js +13 -10
  18. package/lib/esm/constants.js.map +1 -1
  19. package/lib/esm/guardrails/index.js +4 -1
  20. package/lib/esm/guardrails/index.js.map +1 -1
  21. package/lib/esm/guardrails/input.js +11 -9
  22. package/lib/esm/guardrails/input.js.map +1 -1
  23. package/lib/esm/hubtype-api-client.js +102 -101
  24. package/lib/esm/hubtype-api-client.js.map +1 -1
  25. package/lib/esm/index.js +76 -80
  26. package/lib/esm/index.js.map +1 -1
  27. package/lib/esm/openai.js +24 -20
  28. package/lib/esm/openai.js.map +1 -1
  29. package/lib/esm/runner.js +47 -45
  30. package/lib/esm/runner.js.map +1 -1
  31. package/lib/esm/structured-output/carousel.js +15 -12
  32. package/lib/esm/structured-output/carousel.js.map +1 -1
  33. package/lib/esm/structured-output/exit.js +7 -3
  34. package/lib/esm/structured-output/exit.js.map +1 -1
  35. package/lib/esm/structured-output/index.js +10 -7
  36. package/lib/esm/structured-output/index.js.map +1 -1
  37. package/lib/esm/structured-output/text-with-buttons.js +12 -8
  38. package/lib/esm/structured-output/text-with-buttons.js.map +1 -1
  39. package/lib/esm/structured-output/text.js +8 -5
  40. package/lib/esm/structured-output/text.js.map +1 -1
  41. package/lib/esm/tools/index.js +6 -2
  42. package/lib/esm/tools/index.js.map +1 -1
  43. package/lib/esm/tools/retrieve-knowledge.js +14 -12
  44. package/lib/esm/tools/retrieve-knowledge.js.map +1 -1
  45. package/lib/esm/types.js +2 -1
  46. package/package.json +5 -5
  47. package/src/agent-builder.ts +0 -1
  48. package/src/index.ts +1 -2
package/lib/cjs/runner.js CHANGED
@@ -1,60 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AIAgentRunner = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const agents_1 = require("@openai/agents");
6
5
  const tools_1 = require("./tools");
7
6
  class AIAgentRunner {
8
7
  constructor(agent) {
9
8
  this.agent = agent;
10
9
  }
11
- run(messages, context) {
12
- var _a;
13
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
- try {
15
- const runner = new agents_1.Runner({
16
- modelSettings: { temperature: 0 },
17
- });
18
- // Type assertion to bypass strict type checking - the actual return type from runner.run()
19
- // doesn't perfectly match our interface, but the properties we access are compatible
20
- const result = (yield runner.run(this.agent, messages, {
21
- context,
22
- }));
23
- const outputMessages = ((_a = result.finalOutput) === null || _a === void 0 ? void 0 : _a.messages) || [];
24
- const hasExit = outputMessages.length === 0 ||
25
- outputMessages.some(message => message.type === 'exit');
26
- const toolsExecuted = this.getToolsExecuted(result, context);
10
+ async run(messages, context) {
11
+ try {
12
+ const runner = new agents_1.Runner({
13
+ modelSettings: { temperature: 0 },
14
+ });
15
+ // Type assertion to bypass strict type checking - the actual return type from runner.run()
16
+ // doesn't perfectly match our interface, but the properties we access are compatible
17
+ const result = (await runner.run(this.agent, messages, {
18
+ context,
19
+ }));
20
+ const outputMessages = result.finalOutput?.messages || [];
21
+ const hasExit = outputMessages.length === 0 ||
22
+ outputMessages.some(message => message.type === 'exit');
23
+ const toolsExecuted = this.getToolsExecuted(result, context);
24
+ return {
25
+ messages: hasExit
26
+ ? []
27
+ : outputMessages.filter(message => message.type !== 'exit'),
28
+ toolsExecuted,
29
+ exit: hasExit,
30
+ memoryLength: messages.length,
31
+ error: false,
32
+ inputGuardrailsTriggered: [],
33
+ outputGuardrailsTriggered: [],
34
+ };
35
+ }
36
+ catch (error) {
37
+ if (error instanceof agents_1.InputGuardrailTripwireTriggered) {
27
38
  return {
28
- messages: hasExit
29
- ? []
30
- : outputMessages.filter(message => message.type !== 'exit'),
31
- toolsExecuted,
32
- exit: hasExit,
33
- memoryLength: messages.length,
39
+ messages: [],
40
+ memoryLength: 0,
41
+ toolsExecuted: [],
42
+ exit: true,
34
43
  error: false,
35
- inputGuardrailsTriggered: [],
44
+ inputGuardrailsTriggered: error.result.output.outputInfo,
36
45
  outputGuardrailsTriggered: [],
37
46
  };
38
47
  }
39
- catch (error) {
40
- if (error instanceof agents_1.InputGuardrailTripwireTriggered) {
41
- return {
42
- messages: [],
43
- memoryLength: 0,
44
- toolsExecuted: [],
45
- exit: true,
46
- error: false,
47
- inputGuardrailsTriggered: error.result.output.outputInfo,
48
- outputGuardrailsTriggered: [],
49
- };
50
- }
51
- throw error;
52
- }
53
- });
48
+ throw error;
49
+ }
54
50
  }
55
51
  getToolsExecuted(result, context) {
56
- var _a;
57
- return (((_a = result.newItems) === null || _a === void 0 ? void 0 : _a.filter(item => item instanceof agents_1.RunToolCallItem).map((item) => this.getToolExecutionInfo(item, context)).filter((toolExecution) => toolExecution.toolName !== '')) || []);
52
+ return (result.newItems
53
+ ?.filter(item => item instanceof agents_1.RunToolCallItem)
54
+ .map((item) => this.getToolExecutionInfo(item, context))
55
+ .filter((toolExecution) => toolExecution.toolName !== '') || []);
58
56
  }
59
57
  getToolExecutionInfo(item, context) {
60
58
  if (item.rawItem.type !== 'function_call') {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";;;;AACA,2CAIuB;AAEvB,mCAA2C;AAkB3C,MAAa,aAAa;IAMxB,YAAY,KAAoC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEK,GAAG,CACP,QAA+B,EAC/B,OAAsC;;;YAEtC,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;oBACxB,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;iBAClC,CAAC,CAAA;gBACF,2FAA2F;gBAC3F,qFAAqF;gBACrF,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;oBACrD,OAAO;iBACR,CAAC,CAAwB,CAAA;gBAE1B,MAAM,cAAc,GAAG,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,QAAQ,KAAI,EAAE,CAAA;gBACzD,MAAM,OAAO,GACX,cAAc,CAAC,MAAM,KAAK,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;gBACzD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE5D,OAAO;oBACL,QAAQ,EAAE,OAAO;wBACf,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAE,cAAc,CAAC,MAAM,CACpB,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CACR;oBAChC,aAAa;oBACb,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,QAAQ,CAAC,MAAM;oBAC7B,KAAK,EAAE,KAAK;oBACZ,wBAAwB,EAAE,EAAE;oBAC5B,yBAAyB,EAAE,EAAE;iBAC9B,CAAA;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,KAAK,YAAY,wCAA+B,EAAE;oBACpD,OAAO;wBACL,QAAQ,EAAE,EAAE;wBACZ,YAAY,EAAE,CAAC;wBACf,aAAa,EAAE,EAAE;wBACjB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK;wBACZ,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;wBACxD,yBAAyB,EAAE,EAAE;qBAC9B,CAAA;iBACF;gBACD,MAAM,KAAK,CAAA;aACZ;;KACF;IAEO,gBAAgB,CACtB,MAAM,EACN,OAAsC;;QAEtC,OAAO,CACL,CAAA,MAAA,MAAM,CAAC,QAAQ,0CACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,wBAAe,EAC/C,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE,CAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAuB,EAAE,OAAO,CAAC,EAE5D,MAAM,CACL,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,KAAK,EAAE,CAChE,KAAI,EAAE,CACV,CAAA;IACH,CAAC;IAEO,oBAAoB,CAC1B,IAAqB,EACrB,OAAsC;QAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;YACzC,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,EAAE;aAClB,CAAA;SACF;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEvE,IAAI,QAAQ,KAAK,yBAAiB,CAAC,IAAI,EAAE;YACvC,OAAO;gBACL,QAAQ;gBACR,aAAa;gBACb,uBAAuB,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;gBACxD,sBAAsB,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;aACxD,CAAA;SACF;QAED,OAAO;YACL,QAAQ;YACR,aAAa;SACd,CAAA;IACH,CAAC;IAEO,oBAAoB,CAAC,gBAAwB;QACnD,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;SACpC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,CAAA;SACV;IACH,CAAC;CACF;AA9GD,sCA8GC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.retrieveKnowledge = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const agents_1 = require("@openai/agents");
6
5
  const zod_1 = require("zod");
7
6
  const hubtype_api_client_1 = require("../hubtype-api-client");
@@ -11,15 +10,15 @@ exports.retrieveKnowledge = (0, agents_1.tool)({
11
10
  parameters: zod_1.z.object({
12
11
  query: zod_1.z.string().describe('The query to search the knowledge base for'),
13
12
  }),
14
- execute: (input, runContext) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
15
- const context = runContext === null || runContext === void 0 ? void 0 : runContext.context;
13
+ execute: async (input, runContext) => {
14
+ const context = runContext?.context;
16
15
  const query = input.query;
17
16
  if (!context) {
18
17
  throw new Error('Context is required');
19
18
  }
20
19
  const sourceIds = context.sourceIds;
21
20
  const client = new hubtype_api_client_1.HubtypeApiClient(context.authToken);
22
- const chunks = yield client.retrieveSimilarChunks(query, sourceIds);
21
+ const chunks = await client.retrieveSimilarChunks(query, sourceIds);
23
22
  const chunkTexts = chunks.map(chunk => chunk.text);
24
23
  context.knowledgeUsed = {
25
24
  query,
@@ -28,6 +27,6 @@ exports.retrieveKnowledge = (0, agents_1.tool)({
28
27
  chunkTexts,
29
28
  };
30
29
  return chunkTexts;
31
- }),
30
+ },
32
31
  });
33
32
  //# sourceMappingURL=retrieve-knowledge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retrieve-knowledge.js","sourceRoot":"","sources":["../../../src/tools/retrieve-knowledge.ts"],"names":[],"mappings":";;;;AAAA,2CAAiD;AACjD,6BAAuB;AAEvB,8DAAwD;AAG3C,QAAA,iBAAiB,GAAG,IAAA,aAAI,EAAC;IACpC,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,kIAAkI;IACpI,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACzE,CAAC;IACF,OAAO,EAAE,CACP,KAAwB,EACxB,UAAgC,EACb,EAAE;QACrB,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAA;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACzB,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,qCAAgB,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"}
1
+ {"version":3,"file":"retrieve-knowledge.js","sourceRoot":"","sources":["../../../src/tools/retrieve-knowledge.ts"],"names":[],"mappings":";;;AAAA,2CAAiD;AACjD,6BAAuB;AAEvB,8DAAwD;AAG3C,QAAA,iBAAiB,GAAG,IAAA,aAAI,EAAC;IACpC,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,kIAAkI;IACpI,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACzE,CAAC;IACF,OAAO,EAAE,KAAK,EACZ,KAAwB,EACxB,UAAgC,EACb,EAAE;QACrB,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,CAAA;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACxC,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,qCAAgB,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;CACF,CAAC,CAAA"}
@@ -1,32 +1,34 @@
1
- import { Agent, } from '@openai/agents';
2
- import { OPENAI_MODEL, OPENAI_PROVIDER } from './constants';
3
- import { createInputGuardrail } from './guardrails';
4
- import { OutputSchema } from './structured-output';
5
- import { mandatoryTools, retrieveKnowledge } from './tools';
6
- export class AIAgentBuilder {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AIAgentBuilder = void 0;
4
+ const agents_1 = require("@openai/agents");
5
+ const constants_1 = require("./constants");
6
+ const guardrails_1 = require("./guardrails");
7
+ const structured_output_1 = require("./structured-output");
8
+ const tools_1 = require("./tools");
9
+ class AIAgentBuilder {
7
10
  constructor(options) {
8
11
  this.name = options.name;
9
12
  this.instructions = this.addExtraInstructions(options.instructions, options.contactInfo, options.campaignContext);
10
13
  this.tools = this.addHubtypeTools(options.tools, options.sourceIds);
11
14
  this.inputGuardrails = [];
12
15
  if (options.inputGuardrailRules.length > 0) {
13
- const inputGuardrail = createInputGuardrail(options.inputGuardrailRules);
16
+ const inputGuardrail = (0, guardrails_1.createInputGuardrail)(options.inputGuardrailRules);
14
17
  this.inputGuardrails.push(inputGuardrail);
15
18
  }
16
19
  }
17
20
  build() {
18
21
  const modelSettings = {};
19
- if (OPENAI_PROVIDER === 'openai') {
20
- // @ts-expect-error - reasoning.effort is valid but we need to update openai and typescript dependencies
22
+ if (constants_1.OPENAI_PROVIDER === 'openai') {
21
23
  modelSettings.reasoning = { effort: 'none' };
22
24
  modelSettings.text = { verbosity: 'medium' };
23
25
  }
24
- if (this.tools.includes(retrieveKnowledge) && OPENAI_PROVIDER === 'azure') {
25
- modelSettings.toolChoice = retrieveKnowledge.name;
26
+ if (this.tools.includes(tools_1.retrieveKnowledge) && constants_1.OPENAI_PROVIDER === 'azure') {
27
+ modelSettings.toolChoice = tools_1.retrieveKnowledge.name;
26
28
  }
27
29
  // When using standard OpenAI API, we need to specify the model
28
30
  // Azure OpenAI uses deployment name instead
29
- const model = OPENAI_PROVIDER === 'openai' ? OPENAI_MODEL : undefined;
31
+ const model = constants_1.OPENAI_PROVIDER === 'openai' ? constants_1.OPENAI_MODEL : undefined;
30
32
  // TODO: Improve type safety - replace AgentOutputType<any> with AgentOutputType<typeof OutputSchema>
31
33
  // Currently using explicit type parameters to avoid type inference issues where Agent constructor
32
34
  // infers ZodObject instead of AgentOutputType<typeof OutputSchema>. The explicit type parameters
@@ -34,12 +36,12 @@ export class AIAgentBuilder {
34
36
  // 1. Update @openai/agents package to properly infer AgentOutputType from outputType parameter
35
37
  // 2. Replace AgentOutputType<any> with AgentOutputType<typeof OutputSchema> once type system allows
36
38
  // 3. Consider updating AIAgent type definition if @openai/agents types change significantly
37
- return new Agent({
39
+ return new agents_1.Agent({
38
40
  name: this.name,
39
41
  model,
40
42
  instructions: this.instructions,
41
43
  tools: this.tools,
42
- outputType: OutputSchema,
44
+ outputType: structured_output_1.OutputSchema,
43
45
  inputGuardrails: this.inputGuardrails,
44
46
  outputGuardrails: [],
45
47
  modelSettings,
@@ -91,11 +93,12 @@ export class AIAgentBuilder {
91
93
  return `<output>\n${output}\n</output>`;
92
94
  }
93
95
  addHubtypeTools(tools, sourceIds) {
94
- const hubtypeTools = [...mandatoryTools];
96
+ const hubtypeTools = [...tools_1.mandatoryTools];
95
97
  if (sourceIds.length > 0) {
96
- hubtypeTools.push(retrieveKnowledge);
98
+ hubtypeTools.push(tools_1.retrieveKnowledge);
97
99
  }
98
100
  return [...hubtypeTools, ...tools];
99
101
  }
100
102
  }
103
+ exports.AIAgentBuilder = AIAgentBuilder;
101
104
  //# sourceMappingURL=agent-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAIN,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAgB3D,MAAM,OAAO,cAAc;IASzB,YAAY,OAAoD;QAC9D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAC3C,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,eAAe,CACxB,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACnE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YACxE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;SAC1C;IACH,CAAC;IAED,KAAK;QACH,MAAM,aAAa,GAAkB,EAAmB,CAAA;QACxD,IAAI,eAAe,KAAK,QAAQ,EAAE;YAChC,wGAAwG;YACxG,aAAa,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;YAC5C,aAAa,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;SAC7C;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,eAAe,KAAK,OAAO,EAAE;YACzE,aAAa,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAA;SAClD;QAED,+DAA+D;QAC/D,4CAA4C;QAC5C,MAAM,KAAK,GAAG,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QAErE,qGAAqG;QACrG,kGAAkG;QAClG,iGAAiG;QACjG,0EAA0E;QAC1E,+FAA+F;QAC/F,oGAAoG;QACpG,4FAA4F;QAC5F,OAAO,IAAI,KAAK,CAAsD;YACpE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,YAAY;YACxB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,EAAE;YACpB,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAEO,oBAAoB,CAC1B,mBAA2B,EAC3B,WAA0B,EAC1B,eAA4B;QAE5B,MAAM,YAAY,GAAG,mBAAmB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAA;QACrF,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAC3D,MAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;QAC5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAA;QAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAA;QACvD,OAAO,GAAG,YAAY,OAAO,oBAAoB,OAAO,uBAAuB,OAAO,oBAAoB,OAAO,kBAAkB,EAAE,CAAA;IACvI,CAAC;IAEO,0BAA0B,CAAC,WAA0B;QAC3D,MAAM,qBAAqB,GAAG,WAAW;aACtC,GAAG,CACF,IAAI,CAAC,EAAE,CACL;sBACY,IAAI,CAAC,IAAI;uBACR,IAAI,CAAC,KAAK;sBACX,IAAI,CAAC,IAAI;gBAEf,IAAI,CAAC,WAAW;YACd,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,gBAAgB;YAClD,CAAC,CAAC,EACN;4BACc,CACrB;aACA,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,OAAO,0BAA0B,qBAAqB,wBAAwB,CAAA;IAChF,CAAC;IAEO,uBAAuB;QAC7B,MAAM,QAAQ,GAAG,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;QAC5D,OAAO,eAAe,QAAQ,eAAe,CAAA;IAC/C,CAAC;IAEO,uBAAuB,CAAC,eAA4B;QAC1D,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;YACtD,OAAO,EAAE,CAAA;SACV;QACD,OAAO,uBAAuB,eAAe,CAAC,aAAa,uBAAuB,CAAA;IACpF,CAAC;IAEO,qBAAqB;QAC3B,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,kCAAkC;qBACzC;iBACF;aACF;SACF,CAAA;QACD,MAAM,MAAM,GAAG,yIAAyI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAA;QAC7L,OAAO,aAAa,MAAM,aAAa,CAAA;IACzC,CAAC;IAEO,eAAe,CACrB,KAAmC,EACnC,SAAmB;QAEnB,MAAM,YAAY,GAAW,CAAC,GAAG,cAAc,CAAC,CAAA;QAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;SACrC;QACD,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,CAAA;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":";;;AACA,2CAKuB;AAEvB,2CAA2D;AAC3D,6CAAmD;AACnD,2DAAkD;AAClD,mCAA2D;AAgB3D,MAAa,cAAc;IASzB,YAAY,OAAoD;QAC9D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAC3C,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,eAAe,CACxB,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACnE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YACxE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,KAAK;QACH,MAAM,aAAa,GAAkB,EAAmB,CAAA;QACxD,IAAI,2BAAe,KAAK,QAAQ,EAAE,CAAC;YACjC,aAAa,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;YAC5C,aAAa,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,yBAAiB,CAAC,IAAI,2BAAe,KAAK,OAAO,EAAE,CAAC;YAC1E,aAAa,CAAC,UAAU,GAAG,yBAAiB,CAAC,IAAI,CAAA;QACnD,CAAC;QAED,+DAA+D;QAC/D,4CAA4C;QAC5C,MAAM,KAAK,GAAG,2BAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QAErE,qGAAqG;QACrG,kGAAkG;QAClG,iGAAiG;QACjG,0EAA0E;QAC1E,+FAA+F;QAC/F,oGAAoG;QACpG,4FAA4F;QAC5F,OAAO,IAAI,cAAK,CAAsD;YACpE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,gCAAY;YACxB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,EAAE;YACpB,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAEO,oBAAoB,CAC1B,mBAA2B,EAC3B,WAA0B,EAC1B,eAA4B;QAE5B,MAAM,YAAY,GAAG,mBAAmB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAA;QACrF,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAC3D,MAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;QAC5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAA;QAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAA;QACvD,OAAO,GAAG,YAAY,OAAO,oBAAoB,OAAO,uBAAuB,OAAO,oBAAoB,OAAO,kBAAkB,EAAE,CAAA;IACvI,CAAC;IAEO,0BAA0B,CAAC,WAA0B;QAC3D,MAAM,qBAAqB,GAAG,WAAW;aACtC,GAAG,CACF,IAAI,CAAC,EAAE,CACL;sBACY,IAAI,CAAC,IAAI;uBACR,IAAI,CAAC,KAAK;sBACX,IAAI,CAAC,IAAI;gBAEf,IAAI,CAAC,WAAW;YACd,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,gBAAgB;YAClD,CAAC,CAAC,EACN;4BACc,CACrB;aACA,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,OAAO,0BAA0B,qBAAqB,wBAAwB,CAAA;IAChF,CAAC;IAEO,uBAAuB;QAC7B,MAAM,QAAQ,GAAG,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;QAC5D,OAAO,eAAe,QAAQ,eAAe,CAAA;IAC/C,CAAC;IAEO,uBAAuB,CAAC,eAA4B;QAC1D,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YACvD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,uBAAuB,eAAe,CAAC,aAAa,uBAAuB,CAAA;IACpF,CAAC;IAEO,qBAAqB;QAC3B,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,kCAAkC;qBACzC;iBACF;aACF;SACF,CAAA;QACD,MAAM,MAAM,GAAG,yIAAyI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAA;QAC7L,OAAO,aAAa,MAAM,aAAa,CAAA;IACzC,CAAC;IAEO,eAAe,CACrB,KAAmC,EACnC,SAAmB;QAEnB,MAAM,YAAY,GAAW,CAAC,GAAG,sBAAc,CAAC,CAAA;QAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,yBAAiB,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,CAAA;IACpC,CAAC;CACF;AA/HD,wCA+HC"}
@@ -1,13 +1,16 @@
1
- export const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_MEMORY_LENGTH = exports.isProd = exports.AZURE_OPENAI_API_VERSION = exports.AZURE_OPENAI_API_DEPLOYMENT_NAME = 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';
2
5
  // 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
+ 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';
6
9
  // Azure OpenAI Configuration
7
- export const AZURE_OPENAI_API_KEY = process.env.AZURE_OPENAI_API_KEY; // pragma: allowlist secret
8
- export const AZURE_OPENAI_API_BASE = process.env.AZURE_OPENAI_API_BASE;
9
- export const AZURE_OPENAI_API_DEPLOYMENT_NAME = process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME || 'gpt-41-mini_p1';
10
- export const AZURE_OPENAI_API_VERSION = process.env.AZURE_OPENAI_API_VERSION || '2025-01-01-preview';
11
- export const isProd = process.env.NODE_ENV === 'production';
12
- export const MAX_MEMORY_LENGTH = 25;
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_DEPLOYMENT_NAME = process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME || 'gpt-41-mini_p1';
13
+ exports.AZURE_OPENAI_API_VERSION = process.env.AZURE_OPENAI_API_VERSION || '2025-01-01-preview';
14
+ exports.isProd = process.env.NODE_ENV === 'production';
15
+ exports.MAX_MEMORY_LENGTH = 25;
13
16
  //# sourceMappingURL=constants.js.map
@@ -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,gCAAgC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAC,2BAA2B;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,cAAc,CAAA;AACtE,MAAM,CAAC,MAAM,eAAe,GACzB,OAAO,CAAC,GAAG,CAAC,eAAsC,IAAI,OAAO,CAAA;AAEhE,6BAA6B;AAC7B,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
+ {"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,gCAAgC,GAC3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,gBAAgB,CAAA;AACrD,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"}
@@ -1,2 +1,5 @@
1
- export * from './input';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./input"), exports);
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/guardrails/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/guardrails/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB"}
@@ -1,18 +1,20 @@
1
- import { __awaiter } from "tslib";
2
- import { Agent, run } from '@openai/agents';
3
- import { z } from 'zod';
4
- export function createInputGuardrail(rules) {
5
- const outputType = z.object(Object.fromEntries(rules.map(rule => [rule.name, z.boolean().describe(rule.description)])));
6
- const agent = new Agent({
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
+ function createInputGuardrail(rules) {
7
+ const outputType = zod_1.z.object(Object.fromEntries(rules.map(rule => [rule.name, zod_1.z.boolean().describe(rule.description)])));
8
+ const agent = new agents_1.Agent({
7
9
  name: 'InputGuardrail',
8
10
  instructions: 'Check if the user triggers some of the following guardrails.',
9
11
  outputType,
10
12
  });
11
13
  return {
12
14
  name: 'InputGuardrail',
13
- execute: ({ input, context }) => __awaiter(this, void 0, void 0, function* () {
15
+ execute: async ({ input, context }) => {
14
16
  const lastMessage = input[input.length - 1];
15
- const result = yield run(agent, [lastMessage], { context });
17
+ const result = await (0, agents_1.run)(agent, [lastMessage], { context });
16
18
  const finalOutput = result.finalOutput;
17
19
  if (finalOutput === undefined) {
18
20
  throw new Error('Guardrail agent failed to produce output');
@@ -23,7 +25,7 @@ export function createInputGuardrail(rules) {
23
25
  outputInfo: triggeredGuardrails,
24
26
  tripwireTriggered: triggered,
25
27
  };
26
- }),
28
+ },
27
29
  };
28
30
  }
29
31
  //# sourceMappingURL=input.js.map
@@ -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,WAAsC,CAAA;YACjE,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
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/guardrails/input.ts"],"names":[],"mappings":";;AAKA,oDAiCC;AAtCD,2CAA4E;AAC5E,6BAAuB;AAIvB,SAAgB,oBAAoB,CAAC,KAAsB;IACzD,MAAM,UAAU,GAAG,OAAC,CAAC,MAAM,CACzB,MAAM,CAAC,WAAW,CAChB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACvE,CACF,CAAA;IAED,MAAM,KAAK,GAAG,IAAI,cAAK,CAAC;QACtB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EACV,8DAA8D;QAChE,UAAU;KACX,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,KAAK,EAAE,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,IAAA,YAAG,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAsC,CAAA;YACjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;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;KACF,CAAA;AACH,CAAC"}
@@ -1,116 +1,116 @@
1
- import { __awaiter } from "tslib";
2
- import axios from 'axios';
3
- import { HUBTYPE_API_URL } from './constants';
4
- export class HubtypeApiClient {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HubtypeApiClient = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ const constants_1 = require("./constants");
7
+ class HubtypeApiClient {
5
8
  constructor(authToken) {
6
9
  this.authToken = authToken;
7
10
  }
8
- retrieveSimilarChunks(query, sourceIds) {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- const url = `${HUBTYPE_API_URL}/external/v1/ai/knowledge_base/similar_chunks/`;
11
- const headers = {
12
- 'Content-Type': 'application/json',
13
- Authorization: `Bearer ${this.authToken}`,
14
- };
15
- const params = {
16
- query,
17
- source_ids: sourceIds,
18
- num_chunks: 5,
19
- };
20
- const response = yield axios.post(url, params, { headers });
21
- const chunks = response.data.chunks.map((chunk) => ({
22
- id: chunk.id,
23
- text: chunk.text,
24
- }));
25
- return chunks;
26
- });
11
+ async retrieveSimilarChunks(query, sourceIds) {
12
+ const url = `${constants_1.HUBTYPE_API_URL}/external/v1/ai/knowledge_base/similar_chunks/`;
13
+ const headers = {
14
+ 'Content-Type': 'application/json',
15
+ Authorization: `Bearer ${this.authToken}`,
16
+ };
17
+ const params = {
18
+ query,
19
+ source_ids: sourceIds,
20
+ num_chunks: 5,
21
+ };
22
+ const response = await axios_1.default.post(url, params, { headers });
23
+ const chunks = response.data.chunks.map((chunk) => ({
24
+ id: chunk.id,
25
+ text: chunk.text,
26
+ }));
27
+ return chunks;
27
28
  }
28
- getLocalMessages(maxMemoryLength) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- const localBotonicState = typeof globalThis !== 'undefined' && globalThis.localStorage
31
- ? globalThis.localStorage.getItem('botonicState')
32
- : null;
33
- const botonicState = JSON.parse(localBotonicState || '{}');
34
- const messages = botonicState.messages;
35
- const filteredMessages = messages
36
- .filter(message => message.data.text)
37
- .map(message => ({
38
- role: message.sentBy === 'user' ? 'user' : 'assistant',
39
- content: message.data.text,
40
- }))
41
- .map(message => this.formatMessage(message));
42
- return filteredMessages.slice(-maxMemoryLength);
43
- });
29
+ async getLocalMessages(maxMemoryLength) {
30
+ const localBotonicState = typeof globalThis !== 'undefined' && globalThis.localStorage
31
+ ? globalThis.localStorage.getItem('botonicState')
32
+ : null;
33
+ const botonicState = JSON.parse(localBotonicState || '{}');
34
+ const messages = botonicState.messages;
35
+ const filteredMessages = messages
36
+ .filter(message => message.data.text)
37
+ .map(message => ({
38
+ role: message.sentBy === 'user' ? 'user' : 'assistant',
39
+ content: message.data.text,
40
+ }))
41
+ .map(message => this.formatMessage(message));
42
+ return filteredMessages.slice(-maxMemoryLength);
44
43
  }
45
- getMessages(request, maxMemoryLength) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- const url = `${HUBTYPE_API_URL}/external/v1/ai/agent/message_history/`;
48
- const headers = {
49
- 'Content-Type': 'application/json',
50
- Authorization: `Bearer ${this.authToken}`,
51
- };
52
- const params = {
53
- last_message_id: request.input.message_id,
54
- num_messages: maxMemoryLength,
55
- };
56
- try {
57
- const response = yield axios.get(url, {
58
- headers,
59
- params,
60
- });
61
- const messages = response.data.messages;
62
- return messages.map(message => this.formatMessage(message));
63
- }
64
- catch (error) {
65
- console.error(error);
66
- throw new Error('Failed to get messages from Hubtype');
67
- }
68
- });
44
+ async getMessages(request, maxMemoryLength) {
45
+ const url = `${constants_1.HUBTYPE_API_URL}/external/v1/ai/agent/message_history/`;
46
+ const headers = {
47
+ 'Content-Type': 'application/json',
48
+ Authorization: `Bearer ${this.authToken}`,
49
+ };
50
+ const params = {
51
+ last_message_id: request.input.message_id,
52
+ num_messages: maxMemoryLength,
53
+ };
54
+ try {
55
+ const response = await axios_1.default.get(url, {
56
+ headers,
57
+ params,
58
+ });
59
+ const messages = response.data.messages;
60
+ return messages.map(message => this.formatMessage(message));
61
+ }
62
+ catch (error) {
63
+ console.error(error);
64
+ throw new Error('Failed to get messages from Hubtype');
65
+ }
69
66
  }
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 = Object.assign(Object.assign(Object.assign(Object.assign({ last_message_id: request.input.message_id }, (options.maxMessages !== undefined && {
67
+ async getMessagesV2(request, options = {}) {
68
+ const url = `${constants_1.HUBTYPE_API_URL}/external/v2/ai/agent/message_history/`;
69
+ const headers = {
70
+ 'Content-Type': 'application/json',
71
+ Authorization: `Bearer ${this.authToken}`,
72
+ };
73
+ const params = {
74
+ last_message_id: request.input.message_id,
75
+ ...(options.maxMessages !== undefined && {
78
76
  max_messages: options.maxMessages,
79
- })), (options.includeToolCalls !== undefined && {
77
+ }),
78
+ ...(options.includeToolCalls !== undefined && {
80
79
  include_tool_calls: options.includeToolCalls,
81
- })), (options.maxFullToolResults !== undefined && {
80
+ }),
81
+ ...(options.maxFullToolResults !== undefined && {
82
82
  max_full_tool_results: options.maxFullToolResults,
83
- })), (options.debugMode !== undefined && {
83
+ }),
84
+ ...(options.debugMode !== undefined && {
84
85
  debug_mode: options.debugMode,
85
- }));
86
- try {
87
- const response = yield axios.get(url, {
88
- headers,
89
- params,
90
- });
91
- const { messages, conversation_id, truncated } = response.data;
92
- const formattedMessages = messages
93
- .map(message => this.formatMessageV2(message))
94
- .filter((message) => message !== null);
95
- return {
96
- messages: formattedMessages,
97
- conversationId: conversation_id,
98
- truncated,
99
- };
100
- }
101
- catch (error) {
102
- console.error(error);
103
- throw new Error('Failed to get messages from Hubtype V2 API');
104
- }
105
- });
86
+ }),
87
+ };
88
+ try {
89
+ const response = await axios_1.default.get(url, {
90
+ headers,
91
+ params,
92
+ });
93
+ const { messages, conversation_id, truncated } = response.data;
94
+ const formattedMessages = messages
95
+ .map(message => this.formatMessageV2(message))
96
+ .filter((message) => message !== null);
97
+ return {
98
+ messages: formattedMessages,
99
+ conversationId: conversation_id,
100
+ truncated,
101
+ };
102
+ }
103
+ catch (error) {
104
+ console.error(error);
105
+ throw new Error('Failed to get messages from Hubtype V2 API');
106
+ }
106
107
  }
107
108
  formatMessageV2(message) {
108
- var _a, _b, _c, _d, _e;
109
109
  switch (message.role) {
110
110
  case 'user':
111
111
  return {
112
112
  role: 'user',
113
- content: (_a = message.content) !== null && _a !== void 0 ? _a : '',
113
+ content: message.content ?? '',
114
114
  };
115
115
  case 'assistant': {
116
116
  const assistantMessage = message;
@@ -121,7 +121,7 @@ export class HubtypeApiClient {
121
121
  assistantMessage.tool_calls.length > 0) {
122
122
  return {
123
123
  role: 'assistant',
124
- content: (_b = assistantMessage.content) !== null && _b !== void 0 ? _b : '',
124
+ content: assistantMessage.content ?? '',
125
125
  tool_calls: assistantMessage.tool_calls.map(tc => ({
126
126
  id: tc.id,
127
127
  type: tc.type,
@@ -138,7 +138,7 @@ export class HubtypeApiClient {
138
138
  content: [
139
139
  {
140
140
  type: 'output_text',
141
- text: (_c = assistantMessage.content) !== null && _c !== void 0 ? _c : '',
141
+ text: assistantMessage.content ?? '',
142
142
  },
143
143
  ],
144
144
  status: 'completed',
@@ -152,13 +152,13 @@ export class HubtypeApiClient {
152
152
  return {
153
153
  role: 'tool',
154
154
  tool_call_id: toolMessage.tool_call_id,
155
- content: (_d = toolMessage.content) !== null && _d !== void 0 ? _d : '',
155
+ content: toolMessage.content ?? '',
156
156
  };
157
157
  }
158
158
  case 'system':
159
159
  return {
160
160
  role: 'system',
161
- content: (_e = message.content) !== null && _e !== void 0 ? _e : '',
161
+ content: message.content ?? '',
162
162
  };
163
163
  default:
164
164
  throw new Error(`Invalid message role: ${message.role}`);
@@ -188,4 +188,5 @@ export class HubtypeApiClient {
188
188
  }
189
189
  }
190
190
  }
191
+ exports.HubtypeApiClient = HubtypeApiClient;
191
192
  //# sourceMappingURL=hubtype-api-client.js.map