@flutchai/flutch-sdk 0.1.4 → 0.1.6

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 (194) hide show
  1. package/README.md +237 -17
  2. package/dist/index.cjs +6887 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1560 -0
  5. package/dist/index.d.ts +1560 -27
  6. package/dist/index.js +6814 -47
  7. package/dist/index.js.map +1 -1
  8. package/package.json +67 -13
  9. package/dist/api/callback-token.guard.d.ts +0 -17
  10. package/dist/api/callback-token.guard.js +0 -80
  11. package/dist/api/callback-token.guard.js.map +0 -1
  12. package/dist/api/callback.controller.d.ts +0 -7
  13. package/dist/api/callback.controller.js +0 -44
  14. package/dist/api/callback.controller.js.map +0 -1
  15. package/dist/api/graph.controller.d.ts +0 -32
  16. package/dist/api/graph.controller.js +0 -187
  17. package/dist/api/graph.controller.js.map +0 -1
  18. package/dist/api/ui-dispatch.controller.d.ts +0 -34
  19. package/dist/api/ui-dispatch.controller.js +0 -178
  20. package/dist/api/ui-dispatch.controller.js.map +0 -1
  21. package/dist/bootstrap.d.ts +0 -4
  22. package/dist/bootstrap.js +0 -99
  23. package/dist/bootstrap.js.map +0 -1
  24. package/dist/callbacks/callback-acl.service.d.ts +0 -24
  25. package/dist/callbacks/callback-acl.service.js +0 -144
  26. package/dist/callbacks/callback-acl.service.js.map +0 -1
  27. package/dist/callbacks/callback-auditor.service.d.ts +0 -47
  28. package/dist/callbacks/callback-auditor.service.js +0 -286
  29. package/dist/callbacks/callback-auditor.service.js.map +0 -1
  30. package/dist/callbacks/callback-metrics.service.d.ts +0 -34
  31. package/dist/callbacks/callback-metrics.service.js +0 -216
  32. package/dist/callbacks/callback-metrics.service.js.map +0 -1
  33. package/dist/callbacks/callback-patch.service.d.ts +0 -13
  34. package/dist/callbacks/callback-patch.service.js +0 -51
  35. package/dist/callbacks/callback-patch.service.js.map +0 -1
  36. package/dist/callbacks/callback-rate-limiter.d.ts +0 -27
  37. package/dist/callbacks/callback-rate-limiter.js +0 -129
  38. package/dist/callbacks/callback-rate-limiter.js.map +0 -1
  39. package/dist/callbacks/callback-registry.d.ts +0 -7
  40. package/dist/callbacks/callback-registry.js +0 -29
  41. package/dist/callbacks/callback-registry.js.map +0 -1
  42. package/dist/callbacks/callback-store.d.ts +0 -19
  43. package/dist/callbacks/callback-store.js +0 -145
  44. package/dist/callbacks/callback-store.js.map +0 -1
  45. package/dist/callbacks/example.callback.d.ts +0 -2
  46. package/dist/callbacks/example.callback.js +0 -10
  47. package/dist/callbacks/example.callback.js.map +0 -1
  48. package/dist/callbacks/idempotency-manager.d.ts +0 -54
  49. package/dist/callbacks/idempotency-manager.js +0 -230
  50. package/dist/callbacks/idempotency-manager.js.map +0 -1
  51. package/dist/callbacks/index.d.ts +0 -13
  52. package/dist/callbacks/index.js +0 -30
  53. package/dist/callbacks/index.js.map +0 -1
  54. package/dist/callbacks/smart-callback.router.d.ts +0 -52
  55. package/dist/callbacks/smart-callback.router.js +0 -213
  56. package/dist/callbacks/smart-callback.router.js.map +0 -1
  57. package/dist/callbacks/telegram-patch.handler.d.ts +0 -6
  58. package/dist/callbacks/telegram-patch.handler.js +0 -24
  59. package/dist/callbacks/telegram-patch.handler.js.map +0 -1
  60. package/dist/callbacks/universal-callback.service.d.ts +0 -14
  61. package/dist/callbacks/universal-callback.service.js +0 -20
  62. package/dist/callbacks/universal-callback.service.js.map +0 -1
  63. package/dist/callbacks/web-patch.handler.d.ts +0 -6
  64. package/dist/callbacks/web-patch.handler.js +0 -24
  65. package/dist/callbacks/web-patch.handler.js.map +0 -1
  66. package/dist/core/abstract-graph.builder.d.ts +0 -128
  67. package/dist/core/abstract-graph.builder.js +0 -488
  68. package/dist/core/abstract-graph.builder.js.map +0 -1
  69. package/dist/core/builder-registry.service.d.ts +0 -6
  70. package/dist/core/builder-registry.service.js +0 -29
  71. package/dist/core/builder-registry.service.js.map +0 -1
  72. package/dist/core/universal-graph.module.d.ts +0 -10
  73. package/dist/core/universal-graph.module.js +0 -294
  74. package/dist/core/universal-graph.module.js.map +0 -1
  75. package/dist/decorators/callback.decorators.d.ts +0 -21
  76. package/dist/decorators/callback.decorators.js +0 -73
  77. package/dist/decorators/callback.decorators.js.map +0 -1
  78. package/dist/endpoint-registry/endpoint.decorators.d.ts +0 -35
  79. package/dist/endpoint-registry/endpoint.decorators.js +0 -115
  80. package/dist/endpoint-registry/endpoint.decorators.js.map +0 -1
  81. package/dist/endpoint-registry/endpoint.registry.d.ts +0 -44
  82. package/dist/endpoint-registry/endpoint.registry.js +0 -90
  83. package/dist/endpoint-registry/endpoint.registry.js.map +0 -1
  84. package/dist/endpoint-registry/index.d.ts +0 -3
  85. package/dist/endpoint-registry/index.js +0 -20
  86. package/dist/endpoint-registry/index.js.map +0 -1
  87. package/dist/endpoint-registry/ui-endpoints.discovery.d.ts +0 -11
  88. package/dist/endpoint-registry/ui-endpoints.discovery.js +0 -72
  89. package/dist/endpoint-registry/ui-endpoints.discovery.js.map +0 -1
  90. package/dist/engine/api-call-tracer.utils.d.ts +0 -8
  91. package/dist/engine/api-call-tracer.utils.js +0 -184
  92. package/dist/engine/api-call-tracer.utils.js.map +0 -1
  93. package/dist/engine/event-processor.utils.d.ts +0 -49
  94. package/dist/engine/event-processor.utils.js +0 -314
  95. package/dist/engine/event-processor.utils.js.map +0 -1
  96. package/dist/engine/graph-engine.factory.d.ts +0 -12
  97. package/dist/engine/graph-engine.factory.js +0 -43
  98. package/dist/engine/graph-engine.factory.js.map +0 -1
  99. package/dist/engine/langgraph-engine.d.ts +0 -14
  100. package/dist/engine/langgraph-engine.js +0 -261
  101. package/dist/engine/langgraph-engine.js.map +0 -1
  102. package/dist/interfaces/callback.interface.d.ts +0 -46
  103. package/dist/interfaces/callback.interface.js +0 -3
  104. package/dist/interfaces/callback.interface.js.map +0 -1
  105. package/dist/interfaces/graph-registry.interface.d.ts +0 -8
  106. package/dist/interfaces/graph-registry.interface.js +0 -3
  107. package/dist/interfaces/graph-registry.interface.js.map +0 -1
  108. package/dist/interfaces/graph-service.interface.d.ts +0 -43
  109. package/dist/interfaces/graph-service.interface.js +0 -9
  110. package/dist/interfaces/graph-service.interface.js.map +0 -1
  111. package/dist/interfaces/index.d.ts +0 -3
  112. package/dist/interfaces/index.js +0 -20
  113. package/dist/interfaces/index.js.map +0 -1
  114. package/dist/llm/index.d.ts +0 -6
  115. package/dist/llm/index.js +0 -23
  116. package/dist/llm/index.js.map +0 -1
  117. package/dist/llm/llm.initializer.d.ts +0 -14
  118. package/dist/llm/llm.initializer.js +0 -167
  119. package/dist/llm/llm.initializer.js.map +0 -1
  120. package/dist/llm/llm.interface.d.ts +0 -6
  121. package/dist/llm/llm.interface.js +0 -3
  122. package/dist/llm/llm.interface.js.map +0 -1
  123. package/dist/llm/llm.types.d.ts +0 -32
  124. package/dist/llm/llm.types.js +0 -3
  125. package/dist/llm/llm.types.js.map +0 -1
  126. package/dist/llm/model.initializer.d.ts +0 -45
  127. package/dist/llm/model.initializer.js +0 -630
  128. package/dist/llm/model.initializer.js.map +0 -1
  129. package/dist/llm/model.interface.d.ts +0 -38
  130. package/dist/llm/model.interface.js +0 -4
  131. package/dist/llm/model.interface.js.map +0 -1
  132. package/dist/llm/rerankers/voyageai-rerank.d.ts +0 -17
  133. package/dist/llm/rerankers/voyageai-rerank.js +0 -56
  134. package/dist/llm/rerankers/voyageai-rerank.js.map +0 -1
  135. package/dist/retriever/database-factory.d.ts +0 -15
  136. package/dist/retriever/database-factory.js +0 -83
  137. package/dist/retriever/database-factory.js.map +0 -1
  138. package/dist/retriever/index.d.ts +0 -2
  139. package/dist/retriever/index.js +0 -19
  140. package/dist/retriever/index.js.map +0 -1
  141. package/dist/retriever/retriever.client.d.ts +0 -28
  142. package/dist/retriever/retriever.client.js +0 -97
  143. package/dist/retriever/retriever.client.js.map +0 -1
  144. package/dist/retriever/retriever.service.d.ts +0 -25
  145. package/dist/retriever/retriever.service.js +0 -265
  146. package/dist/retriever/retriever.service.js.map +0 -1
  147. package/dist/retriever/types.d.ts +0 -22
  148. package/dist/retriever/types.js +0 -3
  149. package/dist/retriever/types.js.map +0 -1
  150. package/dist/schemas/graph-manifest.schema.d.ts +0 -134
  151. package/dist/schemas/graph-manifest.schema.js +0 -180
  152. package/dist/schemas/graph-manifest.schema.js.map +0 -1
  153. package/dist/schemas/index.d.ts +0 -1
  154. package/dist/schemas/index.js +0 -18
  155. package/dist/schemas/index.js.map +0 -1
  156. package/dist/shared-types/index.d.ts +0 -199
  157. package/dist/shared-types/index.js +0 -58
  158. package/dist/shared-types/index.js.map +0 -1
  159. package/dist/tools/index.d.ts +0 -3
  160. package/dist/tools/index.js +0 -20
  161. package/dist/tools/index.js.map +0 -1
  162. package/dist/tools/mcp-converter.d.ts +0 -15
  163. package/dist/tools/mcp-converter.js +0 -133
  164. package/dist/tools/mcp-converter.js.map +0 -1
  165. package/dist/tools/mcp-tool-filter.d.ts +0 -11
  166. package/dist/tools/mcp-tool-filter.js +0 -123
  167. package/dist/tools/mcp-tool-filter.js.map +0 -1
  168. package/dist/tools/mcp.interfaces.d.ts +0 -19
  169. package/dist/tools/mcp.interfaces.js +0 -3
  170. package/dist/tools/mcp.interfaces.js.map +0 -1
  171. package/dist/types/graph-types.d.ts +0 -82
  172. package/dist/types/graph-types.js +0 -6
  173. package/dist/types/graph-types.js.map +0 -1
  174. package/dist/utils/error.utils.d.ts +0 -18
  175. package/dist/utils/error.utils.js +0 -78
  176. package/dist/utils/error.utils.js.map +0 -1
  177. package/dist/utils/graph-type.utils.d.ts +0 -14
  178. package/dist/utils/graph-type.utils.js +0 -71
  179. package/dist/utils/graph-type.utils.js.map +0 -1
  180. package/dist/utils/index.d.ts +0 -1
  181. package/dist/utils/index.js +0 -18
  182. package/dist/utils/index.js.map +0 -1
  183. package/dist/utils/usage-recorder.d.ts +0 -23
  184. package/dist/utils/usage-recorder.js +0 -29
  185. package/dist/utils/usage-recorder.js.map +0 -1
  186. package/dist/versioning/index.d.ts +0 -2
  187. package/dist/versioning/index.js +0 -19
  188. package/dist/versioning/index.js.map +0 -1
  189. package/dist/versioning/versioned-graph.service.d.ts +0 -16
  190. package/dist/versioning/versioned-graph.service.js +0 -132
  191. package/dist/versioning/versioned-graph.service.js.map +0 -1
  192. package/dist/versioning/versioning.types.d.ts +0 -21
  193. package/dist/versioning/versioning.types.js +0 -3
  194. package/dist/versioning/versioning.types.js.map +0 -1
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ENDPOINT_METADATA_KEY = void 0;
4
- exports.Endpoint = Endpoint;
5
- exports.WithEndpoints = WithEndpoints;
6
- exports.getEndpointMetadata = getEndpointMetadata;
7
- exports.createEndpointDescriptors = createEndpointDescriptors;
8
- exports.findEndpointMethod = findEndpointMethod;
9
- exports.WithUIEndpoints = WithUIEndpoints;
10
- exports.UIEndpoint = UIEndpoint;
11
- exports.getUIEndpointClassMetadata = getUIEndpointClassMetadata;
12
- exports.getUIEndpointMethodsMetadata = getUIEndpointMethodsMetadata;
13
- exports.hasUIEndpoints = hasUIEndpoints;
14
- exports.registerUIEndpointsFromClass = registerUIEndpointsFromClass;
15
- require("reflect-metadata");
16
- exports.ENDPOINT_METADATA_KEY = "graph:endpoints";
17
- function Endpoint(name, options) {
18
- return function (target, propertyKey, descriptor) {
19
- const existingMetadata = Reflect.getMetadata(exports.ENDPOINT_METADATA_KEY, target.constructor) || [];
20
- const metadata = {
21
- name,
22
- method: options.method,
23
- methodName: propertyKey,
24
- schema: options.schema,
25
- };
26
- existingMetadata.push(metadata);
27
- Reflect.defineMetadata(exports.ENDPOINT_METADATA_KEY, existingMetadata, target.constructor);
28
- };
29
- }
30
- function WithEndpoints(target) {
31
- if (!Reflect.hasMetadata(exports.ENDPOINT_METADATA_KEY, target)) {
32
- Reflect.defineMetadata(exports.ENDPOINT_METADATA_KEY, [], target);
33
- }
34
- }
35
- function getEndpointMetadata(constructor) {
36
- return Reflect.getMetadata(exports.ENDPOINT_METADATA_KEY, constructor) || [];
37
- }
38
- function createEndpointDescriptors(instance, metadata) {
39
- return metadata.map(meta => ({
40
- name: meta.name,
41
- method: meta.method,
42
- schema: meta.schema,
43
- handler: async (ctx) => {
44
- const method = instance[meta.methodName];
45
- if (typeof method !== "function") {
46
- throw new Error(`Method ${meta.methodName} not found on instance`);
47
- }
48
- return method.call(instance, ctx);
49
- },
50
- }));
51
- }
52
- function findEndpointMethod(constructor, endpointName) {
53
- const metadata = getEndpointMetadata(constructor);
54
- const endpoint = metadata.find(meta => meta.name === endpointName);
55
- return endpoint === null || endpoint === void 0 ? void 0 : endpoint.methodName;
56
- }
57
- const UI_ENDPOINT_CLASS_METADATA_KEY = Symbol("ui_endpoint_class");
58
- const UI_ENDPOINT_METHOD_METADATA_KEY = Symbol("ui_endpoint_methods");
59
- function WithUIEndpoints(graphType) {
60
- return function (constructor) {
61
- Reflect.defineMetadata(UI_ENDPOINT_CLASS_METADATA_KEY, { graphType }, constructor);
62
- return constructor;
63
- };
64
- }
65
- function UIEndpoint(endpointName, method = "GET") {
66
- return function (target, propertyKey, descriptor) {
67
- const existingMethods = Reflect.getMetadata(UI_ENDPOINT_METHOD_METADATA_KEY, target.constructor) || [];
68
- const methodMetadata = {
69
- endpointName,
70
- method,
71
- methodName: propertyKey,
72
- };
73
- existingMethods.push(methodMetadata);
74
- Reflect.defineMetadata(UI_ENDPOINT_METHOD_METADATA_KEY, existingMethods, target.constructor);
75
- return descriptor;
76
- };
77
- }
78
- function getUIEndpointClassMetadata(constructor) {
79
- return (Reflect.getMetadata(UI_ENDPOINT_CLASS_METADATA_KEY, constructor) || null);
80
- }
81
- function getUIEndpointMethodsMetadata(constructor) {
82
- return (Reflect.getMetadata(UI_ENDPOINT_METHOD_METADATA_KEY, constructor) || []);
83
- }
84
- function hasUIEndpoints(constructor) {
85
- return getUIEndpointClassMetadata(constructor) !== null;
86
- }
87
- function registerUIEndpointsFromClass(endpointRegistry, EndpointClass, instance) {
88
- const classMetadata = getUIEndpointClassMetadata(EndpointClass);
89
- if (!classMetadata) {
90
- return;
91
- }
92
- const methodsMetadata = getUIEndpointMethodsMetadata(EndpointClass);
93
- if (methodsMetadata.length === 0) {
94
- return;
95
- }
96
- console.log("DEBUG: registerUIEndpointsFromClass", {
97
- hasInstance: !!instance,
98
- willCreateNew: !instance,
99
- className: EndpointClass.name,
100
- });
101
- const endpointInstance = instance || new EndpointClass();
102
- const descriptors = methodsMetadata.map(meta => ({
103
- name: meta.endpointName,
104
- method: meta.method,
105
- handler: async (ctx) => {
106
- const method = endpointInstance[meta.methodName];
107
- if (typeof method !== "function") {
108
- throw new Error(`Method ${String(meta.methodName)} not found on instance`);
109
- }
110
- return method.call(endpointInstance, ctx);
111
- },
112
- }));
113
- endpointRegistry.registerMultiple(classMetadata.graphType, descriptors);
114
- }
115
- //# sourceMappingURL=endpoint.decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint.decorators.js","sourceRoot":"","sources":["../../src/endpoint-registry/endpoint.decorators.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { JSONSchema7 } from "json-schema";
2
- export interface RequestContext {
3
- userId: string;
4
- companyId?: string;
5
- method: "GET" | "POST";
6
- payload?: any;
7
- channel: string;
8
- platform?: string;
9
- }
10
- export interface DataEnvelope<T = any> {
11
- schema: string;
12
- data: T;
13
- meta?: {
14
- total?: number;
15
- page?: number;
16
- redirect?: string;
17
- message?: string;
18
- };
19
- }
20
- export type EndpointHandler = (ctx: RequestContext) => Promise<DataEnvelope>;
21
- export interface EndpointDescriptor {
22
- name: string;
23
- method: "GET" | "POST";
24
- handler: EndpointHandler;
25
- schema?: JSONSchema7;
26
- }
27
- export declare class EndpointRegistry {
28
- private readonly logger;
29
- private readonly endpoints;
30
- register(graphType: string, endpoint: EndpointDescriptor): void;
31
- registerMultiple(graphType: string, endpoints: EndpointDescriptor[]): void;
32
- get(graphType: string, endpointName: string): EndpointDescriptor | undefined;
33
- list(graphType: string): string[];
34
- listEndpoints(graphType: string): string[];
35
- listGraphTypes(): string[];
36
- call(graphType: string, endpointName: string, context: RequestContext): Promise<DataEnvelope>;
37
- getStats(): {
38
- totalGraphTypes: number;
39
- totalEndpoints: number;
40
- endpointsByGraph: Record<string, number>;
41
- };
42
- clear(): void;
43
- clearGraph(graphType: string): void;
44
- }
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var EndpointRegistry_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.EndpointRegistry = void 0;
11
- const common_1 = require("@nestjs/common");
12
- let EndpointRegistry = EndpointRegistry_1 = class EndpointRegistry {
13
- constructor() {
14
- this.logger = new common_1.Logger(EndpointRegistry_1.name);
15
- this.endpoints = new Map();
16
- }
17
- register(graphType, endpoint) {
18
- if (!this.endpoints.has(graphType)) {
19
- this.endpoints.set(graphType, new Map());
20
- }
21
- const graphEndpoints = this.endpoints.get(graphType);
22
- graphEndpoints.set(endpoint.name, endpoint);
23
- this.logger.debug(`Registered endpoint "${endpoint.name}" for graph type "${graphType}"`);
24
- }
25
- registerMultiple(graphType, endpoints) {
26
- for (const endpoint of endpoints) {
27
- this.register(graphType, endpoint);
28
- }
29
- }
30
- get(graphType, endpointName) {
31
- const graphEndpoints = this.endpoints.get(graphType);
32
- return graphEndpoints === null || graphEndpoints === void 0 ? void 0 : graphEndpoints.get(endpointName);
33
- }
34
- list(graphType) {
35
- const graphEndpoints = this.endpoints.get(graphType);
36
- if (!graphEndpoints) {
37
- return [];
38
- }
39
- return Array.from(graphEndpoints.keys());
40
- }
41
- listEndpoints(graphType) {
42
- return this.list(graphType);
43
- }
44
- listGraphTypes() {
45
- return Array.from(this.endpoints.keys());
46
- }
47
- async call(graphType, endpointName, context) {
48
- const endpoint = this.get(graphType, endpointName);
49
- if (!endpoint) {
50
- throw new Error(`Endpoint "${endpointName}" not found for graph "${graphType}"`);
51
- }
52
- if (endpoint.method !== context.method) {
53
- throw new Error(`Method mismatch: endpoint expects ${endpoint.method}, got ${context.method}`);
54
- }
55
- this.logger.debug(`Calling endpoint "${endpointName}" for graph "${graphType}" with method ${context.method}`);
56
- try {
57
- return await endpoint.handler(context);
58
- }
59
- catch (error) {
60
- this.logger.error(`Error calling endpoint "${endpointName}" for graph "${graphType}":`, error);
61
- throw error;
62
- }
63
- }
64
- getStats() {
65
- const stats = {
66
- totalGraphTypes: this.endpoints.size,
67
- totalEndpoints: 0,
68
- endpointsByGraph: {},
69
- };
70
- for (const [graphType, endpoints] of this.endpoints) {
71
- const count = endpoints.size;
72
- stats.totalEndpoints += count;
73
- stats.endpointsByGraph[graphType] = count;
74
- }
75
- return stats;
76
- }
77
- clear() {
78
- this.endpoints.clear();
79
- this.logger.debug("Cleared all endpoints from registry");
80
- }
81
- clearGraph(graphType) {
82
- this.endpoints.delete(graphType);
83
- this.logger.debug(`Cleared endpoints for graph type "${graphType}"`);
84
- }
85
- };
86
- exports.EndpointRegistry = EndpointRegistry;
87
- exports.EndpointRegistry = EndpointRegistry = EndpointRegistry_1 = __decorate([
88
- (0, common_1.Injectable)()
89
- ], EndpointRegistry);
90
- //# sourceMappingURL=endpoint.registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint.registry.js","sourceRoot":"","sources":["../../src/endpoint-registry/endpoint.registry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from "./endpoint.registry";
2
- export * from "./endpoint.decorators";
3
- export * from "./ui-endpoints.discovery";
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./endpoint.registry"), exports);
18
- __exportStar(require("./endpoint.decorators"), exports);
19
- __exportStar(require("./ui-endpoints.discovery"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoint-registry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC"}
@@ -1,11 +0,0 @@
1
- import { DiscoveryService, MetadataScanner } from "@nestjs/core";
2
- import { EndpointRegistry } from "./endpoint.registry";
3
- export declare class UIEndpointsDiscoveryService {
4
- private readonly discoveryService;
5
- private readonly metadataScanner;
6
- private readonly endpointRegistry;
7
- private readonly logger;
8
- constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, endpointRegistry: EndpointRegistry);
9
- discoverUIEndpoints(): Promise<void>;
10
- private getUIEndpointMethodsCount;
11
- }
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var UIEndpointsDiscoveryService_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.UIEndpointsDiscoveryService = void 0;
14
- const common_1 = require("@nestjs/common");
15
- const core_1 = require("@nestjs/core");
16
- const endpoint_registry_1 = require("./endpoint.registry");
17
- const endpoint_decorators_1 = require("./endpoint.decorators");
18
- let UIEndpointsDiscoveryService = UIEndpointsDiscoveryService_1 = class UIEndpointsDiscoveryService {
19
- constructor(discoveryService, metadataScanner, endpointRegistry) {
20
- this.discoveryService = discoveryService;
21
- this.metadataScanner = metadataScanner;
22
- this.endpointRegistry = endpointRegistry;
23
- this.logger = new common_1.Logger(UIEndpointsDiscoveryService_1.name);
24
- }
25
- async discoverUIEndpoints() {
26
- this.logger.log("Starting UI endpoints discovery...");
27
- const providers = this.discoveryService.getProviders();
28
- let registeredCount = 0;
29
- let totalEndpoints = 0;
30
- for (const provider of providers) {
31
- try {
32
- const { instance, metatype } = provider;
33
- if (!metatype || !instance) {
34
- continue;
35
- }
36
- if ((0, endpoint_decorators_1.hasUIEndpoints)(metatype)) {
37
- this.logger.debug(`Found UI endpoints class: ${metatype.name}`);
38
- console.log("DEBUG: Discovery found instance", {
39
- className: metatype.name,
40
- hasInstance: !!instance,
41
- instanceType: typeof instance,
42
- });
43
- (0, endpoint_decorators_1.registerUIEndpointsFromClass)(this.endpointRegistry, metatype, instance);
44
- registeredCount++;
45
- const metadata = this.getUIEndpointMethodsCount(metatype);
46
- totalEndpoints += metadata;
47
- this.logger.log(`Registered ${metadata} UI endpoints from ${metatype.name}`);
48
- }
49
- }
50
- catch (error) {
51
- this.logger.warn(`Failed to process provider: ${error.message}`);
52
- }
53
- }
54
- this.logger.log(`UI endpoints discovery completed!`);
55
- this.logger.log(`Stats: ${registeredCount} classes, ${totalEndpoints} endpoints total`);
56
- const stats = this.endpointRegistry.getStats();
57
- this.logger.log(`Registry: ${stats.totalGraphTypes} graph types, ${stats.totalEndpoints} endpoints`);
58
- }
59
- getUIEndpointMethodsCount(metatype) {
60
- const { getUIEndpointMethodsMetadata } = require("./endpoint.decorators");
61
- const methods = getUIEndpointMethodsMetadata(metatype);
62
- return methods.length;
63
- }
64
- };
65
- exports.UIEndpointsDiscoveryService = UIEndpointsDiscoveryService;
66
- exports.UIEndpointsDiscoveryService = UIEndpointsDiscoveryService = UIEndpointsDiscoveryService_1 = __decorate([
67
- (0, common_1.Injectable)(),
68
- __metadata("design:paramtypes", [core_1.DiscoveryService,
69
- core_1.MetadataScanner,
70
- endpoint_registry_1.EndpointRegistry])
71
- ], UIEndpointsDiscoveryService);
72
- //# sourceMappingURL=ui-endpoints.discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-endpoints.discovery.js","sourceRoot":"","sources":["../../src/endpoint-registry/ui-endpoints.discovery.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,2CAAoD;AACpD,uCAAiE;AACjE,2DAAuD;AACvD,+DAG+B;AAQxB,IAAM,2BAA2B,mCAAjC,MAAM,2BAA2B;IAGtC,YACmB,gBAAkC,EAClC,eAAgC,EAChC,gBAAkC;QAFlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QALpC,WAAM,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAMpE,CAAC;IAMJ,KAAK,CAAC,mBAAmB;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAGtD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAEvD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;gBAGxC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC3B,SAAS;gBACX,CAAC;gBAGD,IAAI,IAAA,oCAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE;wBAC7C,SAAS,EAAE,QAAQ,CAAC,IAAI;wBACxB,WAAW,EAAE,CAAC,CAAC,QAAQ;wBACvB,YAAY,EAAE,OAAO,QAAQ;qBAC9B,CAAC,CAAC;oBAGH,IAAA,kDAA4B,EAC1B,IAAI,CAAC,gBAAgB,EACrB,QAAQ,EACR,QAAQ,CACT,CAAC;oBAEF,eAAe,EAAE,CAAC;oBAGlB,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;oBAC1D,cAAc,IAAI,QAAQ,CAAC;oBAE3B,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,cAAc,QAAQ,sBAAsB,QAAQ,CAAC,IAAI,EAAE,CAC5D,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,UAAU,eAAe,aAAa,cAAc,kBAAkB,CACvE,CAAC;QAGF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,aAAa,KAAK,CAAC,eAAe,iBAAiB,KAAK,CAAC,cAAc,YAAY,CACpF,CAAC;IACJ,CAAC;IAKO,yBAAyB,CAAC,QAAa;QAC7C,MAAM,EAAE,4BAA4B,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;CACF,CAAA;AAlFY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAK0B,uBAAgB;QACjB,sBAAe;QACd,oCAAgB;GAN1C,2BAA2B,CAkFvC"}
@@ -1,8 +0,0 @@
1
- export interface TraceApiCallResult<TResult> {
2
- result: TResult;
3
- startedAt: number;
4
- completedAt: number;
5
- durationMs: number;
6
- }
7
- export declare function traceApiCall<TResult>(execute: () => Promise<TResult>): Promise<TraceApiCallResult<TResult>>;
8
- export declare function sanitizeTraceData(value: unknown, depth?: number, seen?: WeakSet<object>): unknown;
@@ -1,184 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.traceApiCall = traceApiCall;
37
- exports.sanitizeTraceData = sanitizeTraceData;
38
- const LangGraph = __importStar(require("@langchain/langgraph"));
39
- const common_1 = require("@nestjs/common");
40
- const logger = new common_1.Logger("ApiCallTracer");
41
- const MAX_STRING_LENGTH = 5000;
42
- const MAX_COLLECTION_LENGTH = 50;
43
- const MAX_DEPTH = 15;
44
- let cachedDispatch;
45
- let dispatchUnavailableLogged = false;
46
- async function traceApiCall(execute) {
47
- const startedAt = Date.now();
48
- dispatchApiTraceEvent("custom_api_call_start");
49
- try {
50
- const result = await execute();
51
- const completedAt = Date.now();
52
- const durationMs = completedAt - startedAt;
53
- dispatchApiTraceEvent("custom_api_call_end", {
54
- result: sanitizeTraceData(result),
55
- startedAt,
56
- completedAt,
57
- durationMs,
58
- });
59
- return { result, startedAt, completedAt, durationMs };
60
- }
61
- catch (error) {
62
- const failedAt = Date.now();
63
- const durationMs = failedAt - startedAt;
64
- dispatchApiTraceEvent("custom_api_call_error", {
65
- error: sanitizeTraceError(error),
66
- startedAt,
67
- failedAt,
68
- durationMs,
69
- });
70
- throw error;
71
- }
72
- }
73
- function dispatchApiTraceEvent(eventName, payload) {
74
- const dispatch = getLangGraphDispatch();
75
- if (!dispatch) {
76
- if (!dispatchUnavailableLogged) {
77
- logger.debug("LangGraph dispatchCustomEvent is not available");
78
- dispatchUnavailableLogged = true;
79
- }
80
- return;
81
- }
82
- try {
83
- dispatch(eventName, payload);
84
- }
85
- catch (error) {
86
- logger.warn("Failed to emit API trace event", {
87
- error: error instanceof Error ? error.message : String(error),
88
- eventName,
89
- });
90
- }
91
- }
92
- function getLangGraphDispatch() {
93
- if (cachedDispatch !== undefined) {
94
- return cachedDispatch;
95
- }
96
- const { dispatchCustomEvent } = LangGraph;
97
- cachedDispatch =
98
- typeof dispatchCustomEvent === "function" ? dispatchCustomEvent : null;
99
- return cachedDispatch;
100
- }
101
- function sanitizeTraceData(value, depth = 0, seen = new WeakSet()) {
102
- if (value === undefined) {
103
- return undefined;
104
- }
105
- if (value === null) {
106
- return null;
107
- }
108
- if (typeof value === "string") {
109
- return value.length > MAX_STRING_LENGTH
110
- ? `${value.slice(0, MAX_STRING_LENGTH)}…`
111
- : value;
112
- }
113
- if (typeof value === "number" || typeof value === "boolean") {
114
- return value;
115
- }
116
- if (typeof value === "bigint") {
117
- return value.toString();
118
- }
119
- if (value instanceof Date) {
120
- return value.toISOString();
121
- }
122
- if (value instanceof Error) {
123
- return sanitizeTraceError(value);
124
- }
125
- if (depth >= MAX_DEPTH) {
126
- return Array.isArray(value) ? "[Array]" : "[Object]";
127
- }
128
- if (typeof value === "object") {
129
- if (seen.has(value)) {
130
- return undefined;
131
- }
132
- seen.add(value);
133
- if (Array.isArray(value)) {
134
- return value
135
- .map(item => sanitizeTraceData(item, depth + 1, seen))
136
- .filter(item => item !== undefined);
137
- }
138
- if (value instanceof Set) {
139
- return Array.from(value)
140
- .map(item => sanitizeTraceData(item, depth + 1, seen))
141
- .filter(item => item !== undefined);
142
- }
143
- if (value instanceof Map) {
144
- const entries = {};
145
- for (const [key, entryValue] of value.entries()) {
146
- const sanitized = sanitizeTraceData(entryValue, depth + 1, seen);
147
- if (sanitized !== undefined) {
148
- entries[String(key)] = sanitized;
149
- }
150
- }
151
- return entries;
152
- }
153
- const result = {};
154
- for (const [key, entryValue] of Object.entries(value)) {
155
- const sanitized = sanitizeTraceData(entryValue, depth + 1, seen);
156
- if (sanitized !== undefined) {
157
- result[key] = sanitized;
158
- }
159
- }
160
- return result;
161
- }
162
- return String(value);
163
- }
164
- function sanitizeTraceError(error) {
165
- if (error instanceof Error) {
166
- return {
167
- name: error.name,
168
- message: error.message,
169
- stack: error.stack ? sanitizeTraceData(error.stack) : undefined,
170
- };
171
- }
172
- if (typeof error === "string") {
173
- return {
174
- message: error.length > MAX_STRING_LENGTH
175
- ? `${error.slice(0, MAX_STRING_LENGTH)}…`
176
- : error,
177
- };
178
- }
179
- return {
180
- message: "Unknown error",
181
- raw: sanitizeTraceData(error),
182
- };
183
- }
184
- //# sourceMappingURL=api-call-tracer.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-call-tracer.utils.js","sourceRoot":"","sources":["../../src/engine/api-call-tracer.utils.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- import { IReasoningChain, IStoredMessageContent, IGraphTraceEvent } from "../shared-types";
2
- export interface LLMCallRecord {
3
- modelId: string;
4
- promptTokens: number;
5
- completionTokens: number;
6
- totalTokens: number;
7
- timestamp: number;
8
- nodeName?: string;
9
- }
10
- export interface StreamAccumulator {
11
- streamedText: string;
12
- reasoningChains: IReasoningChain[];
13
- generation: IStoredMessageContent | null;
14
- llmCalls: LLMCallRecord[];
15
- traceEvents: IGraphTraceEvent[];
16
- traceStartedAt: number | null;
17
- traceCompletedAt: number | null;
18
- }
19
- export declare class EventProcessor {
20
- private readonly logger;
21
- createAccumulator(): StreamAccumulator;
22
- private normalizeContentBlocks;
23
- processEvent(acc: StreamAccumulator, event: any, onPartial?: (chunk: string) => void): void;
24
- getResult(acc: StreamAccumulator): {
25
- content: IStoredMessageContent;
26
- metrics: {
27
- modelCalls: Array<{
28
- nodeName: string;
29
- timestamp: number;
30
- modelId: string;
31
- promptTokens: number;
32
- completionTokens: number;
33
- totalTokens: number;
34
- latencyMs: number;
35
- }>;
36
- apiCalls: any[];
37
- } | null;
38
- trace: {
39
- events: IGraphTraceEvent[];
40
- startedAt: number;
41
- completedAt: number;
42
- durationMs: number;
43
- totalEvents: number;
44
- totalModelCalls: number;
45
- } | null;
46
- };
47
- private captureTraceEvent;
48
- private normalizeTraceEvent;
49
- }