@agentica/core 0.16.8 → 0.16.9

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 (47) hide show
  1. package/lib/context/AgenticaOperation.d.ts +4 -2
  2. package/lib/context/internal/AgenticaOperationComposer.d.ts +0 -9
  3. package/lib/context/internal/AgenticaOperationComposer.js +105 -35
  4. package/lib/context/internal/AgenticaOperationComposer.js.map +1 -1
  5. package/lib/context/internal/AgenticaOperationComposer.spec.d.ts +1 -0
  6. package/lib/context/internal/AgenticaOperationComposer.spec.js +266 -0
  7. package/lib/context/internal/AgenticaOperationComposer.spec.js.map +1 -0
  8. package/lib/functional/assertHttpLlmApplication.js +31 -31
  9. package/lib/functional/assertMcpLlmApplication.d.ts +15 -0
  10. package/lib/functional/assertMcpLlmApplication.js +59 -0
  11. package/lib/functional/assertMcpLlmApplication.js.map +1 -0
  12. package/lib/functional/validateHttpLlmApplication.js +27 -27
  13. package/lib/index.d.ts +1 -0
  14. package/lib/index.js +2 -0
  15. package/lib/index.js.map +1 -1
  16. package/lib/index.mjs +406 -204
  17. package/lib/index.mjs.map +1 -1
  18. package/lib/json/IAgenticaOperationJson.d.ts +1 -1
  19. package/lib/orchestrate/call.js +204 -94
  20. package/lib/orchestrate/call.js.map +1 -1
  21. package/lib/orchestrate/initialize.js +60 -60
  22. package/lib/structures/IAgenticaController.d.ts +9 -2
  23. package/lib/structures/mcp/IMcpLlmApplication.d.ts +15 -0
  24. package/lib/structures/mcp/IMcpLlmApplication.js +3 -0
  25. package/lib/structures/mcp/IMcpLlmApplication.js.map +1 -0
  26. package/lib/structures/mcp/IMcpLlmFunction.d.ts +17 -0
  27. package/lib/structures/mcp/IMcpLlmFunction.js +3 -0
  28. package/lib/structures/mcp/IMcpLlmFunction.js.map +1 -0
  29. package/lib/structures/mcp/IMcpLlmTransportProps.d.ts +11 -0
  30. package/lib/structures/mcp/IMcpLlmTransportProps.js +3 -0
  31. package/lib/structures/mcp/IMcpLlmTransportProps.js.map +1 -0
  32. package/lib/structures/mcp/index.d.ts +3 -0
  33. package/lib/structures/mcp/index.js +20 -0
  34. package/lib/structures/mcp/index.js.map +1 -0
  35. package/package.json +11 -6
  36. package/src/context/AgenticaOperation.ts +9 -2
  37. package/src/context/internal/AgenticaOperationComposer.spec.ts +314 -0
  38. package/src/context/internal/AgenticaOperationComposer.ts +119 -49
  39. package/src/functional/assertMcpLlmApplication.ts +48 -0
  40. package/src/index.ts +6 -2
  41. package/src/json/IAgenticaOperationJson.ts +1 -1
  42. package/src/orchestrate/call.ts +237 -135
  43. package/src/structures/IAgenticaController.ts +12 -2
  44. package/src/structures/mcp/IMcpLlmApplication.ts +17 -0
  45. package/src/structures/mcp/IMcpLlmFunction.ts +19 -0
  46. package/src/structures/mcp/IMcpLlmTransportProps.ts +13 -0
  47. package/src/structures/mcp/index.ts +3 -0
@@ -1,6 +1,7 @@
1
1
  import type { IHttpLlmFunction, ILlmFunction, ILlmSchema } from "@samchon/openapi";
2
2
  import type { IAgenticaOperationJson } from "../json/IAgenticaOperationJson";
3
3
  import type { IAgenticaController } from "../structures/IAgenticaController";
4
+ import type { IMcpLlmFunction } from "../structures/mcp/IMcpLlmFunction";
4
5
  /**
5
6
  * Operation information in the Agentica Agent.
6
7
  *
@@ -16,11 +17,12 @@ import type { IAgenticaController } from "../structures/IAgenticaController";
16
17
  *
17
18
  * @author Samchon
18
19
  */
19
- export type AgenticaOperation<Model extends ILlmSchema.Model> = AgenticaOperation.Class<Model> | AgenticaOperation.Http<Model>;
20
+ export type AgenticaOperation<Model extends ILlmSchema.Model> = AgenticaOperation.Class<Model> | AgenticaOperation.Http<Model> | AgenticaOperation.Mcp;
20
21
  export declare namespace AgenticaOperation {
21
22
  export type Class<Model extends ILlmSchema.Model> = Base<"class", IAgenticaController.IClass<Model>, ILlmFunction<Model>>;
22
23
  export type Http<Model extends ILlmSchema.Model> = Base<"http", IAgenticaController.IHttp<Model>, IHttpLlmFunction<Model>>;
23
- interface Base<Protocol extends "http" | "class", Controller extends object, Function extends object> {
24
+ export type Mcp = Base<"mcp", IAgenticaController.IMcp, IMcpLlmFunction>;
25
+ interface Base<Protocol extends "http" | "class" | "mcp", Controller extends object, Function extends object> {
24
26
  /**
25
27
  * Protocol discriminator.
26
28
  */
@@ -1,12 +1,3 @@
1
- import type { ILlmSchema } from "@samchon/openapi";
2
- import type { IAgenticaConfig } from "../../structures/IAgenticaConfig";
3
- import type { IAgenticaController } from "../../structures/IAgenticaController";
4
- import type { IMicroAgenticaConfig } from "../../structures/IMicroAgenticaConfig";
5
- import type { AgenticaOperationCollection } from "../AgenticaOperationCollection";
6
- export declare function compose<Model extends ILlmSchema.Model>(props: {
7
- controllers: IAgenticaController<Model>[];
8
- config?: IAgenticaConfig<Model> | IMicroAgenticaConfig<Model> | undefined;
9
- }): AgenticaOperationCollection<Model>;
10
1
  export declare const AgenticaOperationComposer: {
11
2
  compose: typeof compose;
12
3
  };
@@ -2,44 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AgenticaOperationComposer = void 0;
4
4
  exports.compose = compose;
5
+ exports.getOperations = getOperations;
6
+ exports.toHttpOperations = toHttpOperations;
7
+ exports.toClassOperations = toClassOperations;
8
+ exports.toMcpOperations = toMcpOperations;
9
+ exports.divide = divide;
5
10
  const __map_take_1 = require("../../utils/__map_take");
11
+ /**
12
+ * Compose the agentica operation collection.
13
+ *
14
+ * Compose the {@link AgenticaOperationCollection} from the given
15
+ * controllers and config.
16
+ *
17
+ * @internal
18
+ */
6
19
  function compose(props) {
7
20
  var _a;
8
- const unique = props.controllers.length === 1
9
- || (() => {
10
- const names = props.controllers
11
- .map(controller => controller.application.functions.map(func => func.name))
12
- .flat();
13
- return new Set(names).size === names.length;
14
- })();
15
- const naming = (func, ci) => unique ? func : `_${ci}_${func}`;
16
- const array = props.controllers
17
- .map((controller, ci) => controller.protocol === "http"
18
- ? controller.application.functions.map(func => ({
19
- protocol: "http",
20
- controller,
21
- function: func,
22
- name: naming(func.name, ci),
23
- toJSON: () => ({
24
- protocol: "http",
25
- controller: controller.name,
26
- function: func.name,
27
- name: naming(func.name, ci),
28
- }),
29
- }))
30
- : controller.application.functions.map(func => ({
31
- protocol: "class",
32
- controller,
33
- function: func,
34
- name: naming(func.name, ci),
35
- toJSON: () => ({
36
- protocol: "class",
37
- controller: controller.name,
38
- function: func.name,
39
- name: naming(func.name, ci),
40
- }),
41
- })))
42
- .flat();
21
+ const unique = (props.controllers.length === 1 || (() => {
22
+ const names = props.controllers.map(controllers => controllers.application.functions.map(func => func.name)).flat();
23
+ return new Set(names).size === names.length;
24
+ })());
25
+ const array = getOperations({
26
+ controllers: props.controllers,
27
+ naming: (func, controllerIndex) => unique ? func : `_${controllerIndex}_${func}`,
28
+ });
43
29
  const capacity = (_a = props.config) === null || _a === void 0 ? void 0 : _a.capacity;
44
30
  const divided = capacity !== undefined && array.length > capacity
45
31
  ? divide({
@@ -60,7 +46,91 @@ function compose(props) {
60
46
  group,
61
47
  };
62
48
  }
49
+ /**
50
+ * @internal
51
+ */
52
+ function getOperations(props) {
53
+ return props.controllers.flatMap((controller, idx) => {
54
+ switch (controller.protocol) {
55
+ case "http": {
56
+ return toHttpOperations({ controller, index: idx, naming: props.naming });
57
+ }
58
+ case "class": {
59
+ return toClassOperations({ controller, index: idx, naming: props.naming });
60
+ }
61
+ case "mcp": {
62
+ return toMcpOperations({ controller, index: idx, naming: props.naming });
63
+ }
64
+ default:
65
+ controller;
66
+ throw new Error(`Unsupported protocol: ${controller.protocol}`);
67
+ }
68
+ });
69
+ }
70
+ /**
71
+ * @internal
72
+ */
73
+ function toHttpOperations(props) {
74
+ return props.controller.application.functions.map(func => ({
75
+ protocol: "http",
76
+ controller: props.controller,
77
+ function: func,
78
+ name: props.naming(func.name, props.index),
79
+ toJSON: () => ({
80
+ protocol: "http",
81
+ controller: props.controller.name,
82
+ function: func.name,
83
+ name: props.naming(func.name, props.index),
84
+ }),
85
+ }));
86
+ }
87
+ /**
88
+ * @internal
89
+ */
90
+ function toClassOperations(props) {
91
+ return props.controller.application.functions.map(func => ({
92
+ protocol: "class",
93
+ controller: props.controller,
94
+ function: func,
95
+ name: props.naming(func.name, props.index),
96
+ toJSON: () => ({
97
+ protocol: "class",
98
+ controller: props.controller.name,
99
+ function: func.name,
100
+ name: props.naming(func.name, props.index),
101
+ }),
102
+ }));
103
+ }
104
+ /**
105
+ * @internal
106
+ */
107
+ function toMcpOperations(props) {
108
+ return props.controller.application.functions.map(func => ({
109
+ protocol: "mcp",
110
+ controller: props.controller,
111
+ function: func,
112
+ name: props.naming(func.name, props.index),
113
+ toJSON: () => ({
114
+ protocol: "mcp",
115
+ controller: props.controller.name,
116
+ function: func.name,
117
+ name: props.naming(func.name, props.index),
118
+ }),
119
+ }));
120
+ }
121
+ /**
122
+ * @internal
123
+ */
63
124
  function divide(props) {
125
+ if (props.capacity <= 0) {
126
+ throw new Error("Capacity must be a positive integer");
127
+ }
128
+ if (Number.isNaN(props.capacity)) {
129
+ throw new TypeError("Capacity must be a positive integer");
130
+ }
131
+ if (props.capacity === Infinity) {
132
+ throw new Error("Capacity must be a positive integer");
133
+ }
64
134
  const size = Math.ceil(props.array.length / props.capacity);
65
135
  const capacity = Math.ceil(props.array.length / size);
66
136
  const replica = props.array.slice();
@@ -1 +1 @@
1
- {"version":3,"file":"AgenticaOperationComposer.js","sourceRoot":"","sources":["../../../src/context/internal/AgenticaOperationComposer.ts"],"names":[],"mappings":";;;AAUA,0BA6EC;AA/ED,uDAAoD;AAEpD,SAAgB,OAAO,CAAiC,KAGvD;;IACC,MAAM,MAAM,GACN,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;WAC3B,CAAC,GAAG,EAAE;YACP,MAAM,KAAK,GAAa,KAAK,CAAC,WAAW;iBACtC,GAAG,CAAC,UAAU,CAAC,EAAE,CAChB,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CACxD;iBACA,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAC1C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAEnC,MAAM,KAAK,GAA+B,KAAK,CAAC,WAAW;SACxD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CACtB,UAAU,CAAC,QAAQ,KAAK,MAAM;QAC5B,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAClC,IAAI,CAAC,EAAE,CACH,CAAC;YACC,QAAQ,EAAE,MAAM;YAChB,UAAU;YACV,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACb,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;aAC5B,CAAC;SACH,CAAyC,CAC/C;QACH,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAClC,IAAI,CAAC,EAAE,CACH,CAAC;YACC,QAAQ,EAAE,OAAO;YACjB,UAAU;YACV,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACb,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;aAC5B,CAAC;SACH,CAA0C,CAChD,CACN;SACA,IAAI,EAAE,CAAC;IAEV,MAAM,QAAQ,GAAuB,MAAC,KAAK,CAAC,MAAiC,0CAAE,QAAQ,CAAC;IACxF,MAAM,OAAO,GACP,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ;QACjD,CAAC,CAAC,MAAM,CAAC;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAElB,MAAM,IAAI,GAA0C,IAAI,GAAG,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAuD,IAAI,GAAG,EAAE,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAA,uBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAC1D,IAAI,CAAC,IAAI,EACT,IAAI,CACL,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAI,KAGlB;IACC,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzE,CAAC;AAEY,QAAA,yBAAyB,GAAG;IACvC,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"AgenticaOperationComposer.js","sourceRoot":"","sources":["../../../src/context/internal/AgenticaOperationComposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AgenticaOperationComposer_1 = require("./AgenticaOperationComposer");
4
+ // test helper functions
5
+ function createMockHttpFunction(name, method, path) {
6
+ return {
7
+ name,
8
+ method,
9
+ path,
10
+ validate: () => ({ success: true, data: {} }),
11
+ operation: () => ({}),
12
+ route: () => ({
13
+ method,
14
+ path,
15
+ emendedPath: path,
16
+ accessor: [name],
17
+ body: null,
18
+ query: null,
19
+ parameters: [],
20
+ headers: null,
21
+ success: null,
22
+ exceptions: {},
23
+ comment: () => "OK",
24
+ operation: () => ({}),
25
+ }),
26
+ parameters: {},
27
+ output: {},
28
+ };
29
+ }
30
+ function createMockHttpController(name, functions) {
31
+ return {
32
+ name,
33
+ protocol: "http",
34
+ connection: { host: "https://example.com" },
35
+ application: {
36
+ model: "chatgpt",
37
+ options: {},
38
+ functions,
39
+ errors: [],
40
+ },
41
+ };
42
+ }
43
+ function createMockClassController(name, functions) {
44
+ return {
45
+ name,
46
+ protocol: "class",
47
+ application: {
48
+ model: "chatgpt",
49
+ options: {},
50
+ functions,
51
+ },
52
+ execute: {},
53
+ };
54
+ }
55
+ function createMockMcpController(name, functions) {
56
+ return {
57
+ name,
58
+ protocol: "mcp",
59
+ application: {
60
+ transport: {
61
+ type: "sse",
62
+ url: new URL("https://example.com"),
63
+ },
64
+ functions,
65
+ },
66
+ };
67
+ }
68
+ describe("a AgenticaOperationComposer", () => {
69
+ describe("compose", () => {
70
+ it("should compose operations from controllers", () => {
71
+ // Mock controllers
72
+ const mockHttpController = createMockHttpController("httpController", [
73
+ createMockHttpFunction("function1", "get", "/api/function1"),
74
+ createMockHttpFunction("function2", "post", "/api/function2"),
75
+ ]);
76
+ const mockClassController = createMockClassController("classController", [
77
+ {
78
+ name: "function3",
79
+ validate: () => ({ success: true, data: {} }),
80
+ parameters: {},
81
+ output: {},
82
+ },
83
+ ]);
84
+ const mockMcpController = createMockMcpController("mcpController", [
85
+ {
86
+ name: "function4",
87
+ parameters: {},
88
+ },
89
+ ]);
90
+ const controllers = [mockHttpController, mockClassController, mockMcpController];
91
+ const result = (0, AgenticaOperationComposer_1.compose)({ controllers });
92
+ expect(result.array).toHaveLength(4);
93
+ expect(result.flat).toBeInstanceOf(Map);
94
+ expect(result.group).toBeInstanceOf(Map);
95
+ expect(result.divided).toBeUndefined();
96
+ });
97
+ it("should divide operations when capacity is provided", () => {
98
+ // Mock controllers
99
+ const mockController = createMockHttpController("httpController", [
100
+ createMockHttpFunction("function1", "get", "/api/function1"),
101
+ createMockHttpFunction("function2", "post", "/api/function2"),
102
+ createMockHttpFunction("function3", "put", "/api/function3"),
103
+ createMockHttpFunction("function4", "delete", "/api/function4"),
104
+ createMockHttpFunction("function5", "patch", "/api/function5"),
105
+ ]);
106
+ const config = {
107
+ capacity: 2,
108
+ };
109
+ const result = (0, AgenticaOperationComposer_1.compose)({ controllers: [mockController], config });
110
+ expect(result.array).toHaveLength(5);
111
+ expect(result.divided).toBeDefined();
112
+ expect(result.divided).toHaveLength(3); // 5 items with capacity 2 should be divided into 3 groups
113
+ });
114
+ });
115
+ describe("getOperations", () => {
116
+ it("should get operations from http controllers", () => {
117
+ var _a, _b, _c;
118
+ const mockController = createMockHttpController("httpController", [
119
+ createMockHttpFunction("function1", "get", "/api/function1"),
120
+ createMockHttpFunction("function2", "post", "/api/function2"),
121
+ ]);
122
+ const result = (0, AgenticaOperationComposer_1.getOperations)({ controllers: [mockController], naming: (func, idx) => `_${idx}_${func}` });
123
+ expect(result).toHaveLength(2);
124
+ expect((_a = result[0]) === null || _a === void 0 ? void 0 : _a.protocol).toBe("http");
125
+ expect((_b = result[0]) === null || _b === void 0 ? void 0 : _b.name).toBe("_0_function1");
126
+ expect((_c = result[1]) === null || _c === void 0 ? void 0 : _c.name).toBe("_0_function2");
127
+ });
128
+ it("should get operations from class controllers", () => {
129
+ var _a, _b;
130
+ const mockController = createMockClassController("classController", [
131
+ {
132
+ name: "function1",
133
+ validate: () => ({ success: true, data: {} }),
134
+ parameters: {},
135
+ output: {},
136
+ },
137
+ ]);
138
+ const result = (0, AgenticaOperationComposer_1.getOperations)({ controllers: [mockController], naming: (func, idx) => `_${idx}_${func}` });
139
+ expect(result).toHaveLength(1);
140
+ expect((_a = result[0]) === null || _a === void 0 ? void 0 : _a.protocol).toBe("class");
141
+ expect((_b = result[0]) === null || _b === void 0 ? void 0 : _b.name).toBe("_0_function1");
142
+ });
143
+ it("should get operations from mcp controllers", () => {
144
+ var _a, _b;
145
+ const mockController = createMockMcpController("mcpController", [
146
+ {
147
+ name: "function1",
148
+ parameters: {},
149
+ },
150
+ ]);
151
+ const result = (0, AgenticaOperationComposer_1.getOperations)({ controllers: [mockController], naming: (func, idx) => `_${idx}_${func}` });
152
+ expect(result).toHaveLength(1);
153
+ expect((_a = result[0]) === null || _a === void 0 ? void 0 : _a.protocol).toBe("mcp");
154
+ expect((_b = result[0]) === null || _b === void 0 ? void 0 : _b.name).toBe("_0_function1");
155
+ });
156
+ it("should throw error for unsupported protocol", () => {
157
+ const mockController = {
158
+ name: "unsupportedController",
159
+ protocol: "unsupported",
160
+ connection: { host: "https://example.com" },
161
+ application: {},
162
+ };
163
+ expect(() => (0, AgenticaOperationComposer_1.getOperations)({ controllers: [mockController], naming: (func, idx) => `_${idx}_${func}` })).toThrow("Unsupported protocol: unsupported");
164
+ });
165
+ });
166
+ describe("toHttpOperations", () => {
167
+ it("should convert http controller to operations", () => {
168
+ var _a, _b, _c;
169
+ const mockController = createMockHttpController("httpController", [
170
+ createMockHttpFunction("function1", "get", "/api/function1"),
171
+ createMockHttpFunction("function2", "post", "/api/function2"),
172
+ ]);
173
+ const result = (0, AgenticaOperationComposer_1.toHttpOperations)({ controller: mockController, index: 0, naming: (func, idx) => `_${idx}_${func}` });
174
+ expect(result).toHaveLength(2);
175
+ expect((_a = result[0]) === null || _a === void 0 ? void 0 : _a.protocol).toBe("http");
176
+ expect((_b = result[0]) === null || _b === void 0 ? void 0 : _b.name).toBe("_0_function1");
177
+ expect((_c = result[1]) === null || _c === void 0 ? void 0 : _c.name).toBe("_0_function2");
178
+ });
179
+ });
180
+ describe("toClassOperations", () => {
181
+ it("should convert class controller to operations", () => {
182
+ var _a, _b;
183
+ const mockController = createMockClassController("classController", [
184
+ {
185
+ name: "function1",
186
+ validate: () => ({ success: true, data: {} }),
187
+ parameters: {},
188
+ output: {},
189
+ },
190
+ ]);
191
+ const result = (0, AgenticaOperationComposer_1.toClassOperations)({ controller: mockController, index: 0, naming: (func, idx) => `_${idx}_${func}` });
192
+ expect(result).toHaveLength(1);
193
+ expect((_a = result[0]) === null || _a === void 0 ? void 0 : _a.protocol).toBe("class");
194
+ expect((_b = result[0]) === null || _b === void 0 ? void 0 : _b.name).toBe("_0_function1");
195
+ });
196
+ });
197
+ describe("toMcpOperations", () => {
198
+ it("should convert mcp controller to operations", () => {
199
+ var _a, _b;
200
+ const mockController = createMockMcpController("mcpController", [
201
+ {
202
+ name: "function1",
203
+ parameters: {},
204
+ },
205
+ ]);
206
+ const result = (0, AgenticaOperationComposer_1.toMcpOperations)({ controller: mockController, index: 0, naming: (func, idx) => `_${idx}_${func}` });
207
+ expect(result).toHaveLength(1);
208
+ expect((_a = result[0]) === null || _a === void 0 ? void 0 : _a.protocol).toBe("mcp");
209
+ expect((_b = result[0]) === null || _b === void 0 ? void 0 : _b.name).toBe("_0_function1");
210
+ });
211
+ });
212
+ describe("divide with invalid capacity", () => {
213
+ it("should throw error when capacity is 0", () => {
214
+ const array = [1, 2, 3, 4, 5];
215
+ const capacity = 0;
216
+ expect(() => (0, AgenticaOperationComposer_1.divide)({ array, capacity })).toThrow("Capacity must be a positive integer");
217
+ });
218
+ it("should throw error when capacity is negative", () => {
219
+ const array = [1, 2, 3, 4, 5];
220
+ const capacity = -3;
221
+ expect(() => (0, AgenticaOperationComposer_1.divide)({ array, capacity })).toThrow("Capacity must be a positive integer");
222
+ });
223
+ it("should throw error when capacity is decimal", () => {
224
+ const array = [1, 2, 3, 4, 5];
225
+ const capacity = 2.5;
226
+ const result = (0, AgenticaOperationComposer_1.divide)({ array, capacity });
227
+ expect(result).toEqual([[1, 2, 3], [4, 5]]);
228
+ });
229
+ it("should throw error when capacity is Infinity", () => {
230
+ const array = [1, 2, 3, 4, 5];
231
+ const capacity = Infinity;
232
+ expect(() => (0, AgenticaOperationComposer_1.divide)({ array, capacity })).toThrow("Capacity must be a positive integer");
233
+ });
234
+ it("should throw error when capacity is NaN", () => {
235
+ const array = [1, 2, 3, 4, 5];
236
+ const capacity = Number.NaN;
237
+ expect(() => (0, AgenticaOperationComposer_1.divide)({ array, capacity })).toThrow("Capacity must be a positive integer");
238
+ });
239
+ });
240
+ describe("divide", () => {
241
+ it("should divide array into chunks based on capacity", () => {
242
+ const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
243
+ const capacity = 3;
244
+ const result = (0, AgenticaOperationComposer_1.divide)({ array, capacity });
245
+ expect(result).toHaveLength(4); // 10 items with capacity 3 should be divided into 4 groups
246
+ expect(result[0]).toEqual([1, 2, 3]);
247
+ expect(result[1]).toEqual([4, 5, 6]);
248
+ expect(result[2]).toEqual([7, 8, 9]);
249
+ expect(result[3]).toEqual([10]);
250
+ });
251
+ it("should handle empty array", () => {
252
+ const array = [];
253
+ const capacity = 3;
254
+ const result = (0, AgenticaOperationComposer_1.divide)({ array, capacity });
255
+ expect(result).toHaveLength(0);
256
+ });
257
+ it("should handle array smaller than capacity", () => {
258
+ const array = [1, 2];
259
+ const capacity = 3;
260
+ const result = (0, AgenticaOperationComposer_1.divide)({ array, capacity });
261
+ expect(result).toHaveLength(1);
262
+ expect(result[0]).toEqual([1, 2]);
263
+ });
264
+ });
265
+ });
266
+ //# sourceMappingURL=AgenticaOperationComposer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgenticaOperationComposer.spec.js","sourceRoot":"","sources":["../../../src/context/internal/AgenticaOperationComposer.spec.ts"],"names":[],"mappings":"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"}