@just-every/ensemble 0.2.87 → 0.2.88

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 (215) hide show
  1. package/dist/cjs/config/tool_execution.cjs +47 -0
  2. package/dist/cjs/config/tool_execution.d.ts +12 -0
  3. package/dist/cjs/config/tool_execution.d.ts.map +1 -0
  4. package/dist/cjs/config/tool_execution.js.map +1 -0
  5. package/dist/cjs/core/ensemble_embed.cjs +35 -0
  6. package/dist/cjs/core/ensemble_embed.d.ts +3 -0
  7. package/dist/cjs/core/ensemble_embed.d.ts.map +1 -0
  8. package/dist/cjs/core/ensemble_embed.js.map +1 -0
  9. package/dist/cjs/core/ensemble_image.cjs +13 -0
  10. package/dist/cjs/core/ensemble_image.d.ts +3 -0
  11. package/dist/cjs/core/ensemble_image.d.ts.map +1 -0
  12. package/dist/cjs/core/ensemble_image.js.map +1 -0
  13. package/dist/cjs/core/ensemble_listen.cjs +162 -0
  14. package/dist/cjs/core/ensemble_listen.d.ts +5 -0
  15. package/dist/cjs/core/ensemble_listen.d.ts.map +1 -0
  16. package/dist/cjs/core/ensemble_listen.js.map +1 -0
  17. package/dist/cjs/core/ensemble_live.cjs +387 -0
  18. package/dist/cjs/core/ensemble_live.d.ts +14 -0
  19. package/dist/cjs/core/ensemble_live.d.ts.map +1 -0
  20. package/dist/cjs/core/ensemble_live.js.map +1 -0
  21. package/dist/cjs/core/ensemble_request.cjs +409 -0
  22. package/dist/cjs/core/ensemble_request.d.ts +4 -0
  23. package/dist/cjs/core/ensemble_request.d.ts.map +1 -0
  24. package/dist/cjs/core/ensemble_request.js.map +1 -0
  25. package/dist/cjs/core/ensemble_voice.cjs +284 -0
  26. package/dist/cjs/core/ensemble_voice.d.ts +4 -0
  27. package/dist/cjs/core/ensemble_voice.d.ts.map +1 -0
  28. package/dist/cjs/core/ensemble_voice.js.map +1 -0
  29. package/dist/cjs/data/model_data.cjs +1460 -0
  30. package/dist/cjs/data/model_data.d.ts +71 -0
  31. package/dist/cjs/data/model_data.d.ts.map +1 -0
  32. package/dist/cjs/data/model_data.js.map +1 -0
  33. package/dist/cjs/index.cjs +139 -0
  34. package/dist/cjs/index.d.ts +37 -0
  35. package/dist/cjs/index.d.ts.map +1 -0
  36. package/dist/cjs/index.js.map +1 -0
  37. package/dist/cjs/model_providers/base_provider.cjs +46 -0
  38. package/dist/cjs/model_providers/base_provider.d.ts +13 -0
  39. package/dist/cjs/model_providers/base_provider.d.ts.map +1 -0
  40. package/dist/cjs/model_providers/base_provider.js.map +1 -0
  41. package/dist/cjs/model_providers/claude.cjs +782 -0
  42. package/dist/cjs/model_providers/claude.d.ts +12 -0
  43. package/dist/cjs/model_providers/claude.d.ts.map +1 -0
  44. package/dist/cjs/model_providers/claude.js.map +1 -0
  45. package/dist/cjs/model_providers/deepseek.cjs +129 -0
  46. package/dist/cjs/model_providers/deepseek.d.ts +8 -0
  47. package/dist/cjs/model_providers/deepseek.d.ts.map +1 -0
  48. package/dist/cjs/model_providers/deepseek.js.map +1 -0
  49. package/dist/cjs/model_providers/elevenlabs.cjs +140 -0
  50. package/dist/cjs/model_providers/elevenlabs.d.ts +37 -0
  51. package/dist/cjs/model_providers/elevenlabs.d.ts.map +1 -0
  52. package/dist/cjs/model_providers/elevenlabs.js.map +1 -0
  53. package/dist/cjs/model_providers/gemini.cjs +1654 -0
  54. package/dist/cjs/model_providers/gemini.d.ts +22 -0
  55. package/dist/cjs/model_providers/gemini.d.ts.map +1 -0
  56. package/dist/cjs/model_providers/gemini.js.map +1 -0
  57. package/dist/cjs/model_providers/grok.cjs +25 -0
  58. package/dist/cjs/model_providers/grok.d.ts +8 -0
  59. package/dist/cjs/model_providers/grok.d.ts.map +1 -0
  60. package/dist/cjs/model_providers/grok.js.map +1 -0
  61. package/dist/cjs/model_providers/model_provider.cjs +296 -0
  62. package/dist/cjs/model_providers/model_provider.d.ts +10 -0
  63. package/dist/cjs/model_providers/model_provider.d.ts.map +1 -0
  64. package/dist/cjs/model_providers/model_provider.js.map +1 -0
  65. package/dist/cjs/model_providers/openai.cjs +1117 -0
  66. package/dist/cjs/model_providers/openai.d.ts +19 -0
  67. package/dist/cjs/model_providers/openai.d.ts.map +1 -0
  68. package/dist/cjs/model_providers/openai.js.map +1 -0
  69. package/dist/cjs/model_providers/openai_chat.cjs +787 -0
  70. package/dist/cjs/model_providers/openai_chat.d.ts +20 -0
  71. package/dist/cjs/model_providers/openai_chat.d.ts.map +1 -0
  72. package/dist/cjs/model_providers/openai_chat.js.map +1 -0
  73. package/dist/cjs/model_providers/openrouter.cjs +22 -0
  74. package/dist/cjs/model_providers/openrouter.d.ts +6 -0
  75. package/dist/cjs/model_providers/openrouter.d.ts.map +1 -0
  76. package/dist/cjs/model_providers/openrouter.js.map +1 -0
  77. package/dist/cjs/model_providers/test_provider.cjs +236 -0
  78. package/dist/cjs/model_providers/test_provider.d.ts +29 -0
  79. package/dist/cjs/model_providers/test_provider.d.ts.map +1 -0
  80. package/dist/cjs/model_providers/test_provider.js.map +1 -0
  81. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  82. package/dist/cjs/types/api_types.cjs +3 -0
  83. package/dist/cjs/types/api_types.d.ts +249 -0
  84. package/dist/cjs/types/api_types.d.ts.map +1 -0
  85. package/dist/cjs/types/api_types.js.map +1 -0
  86. package/dist/cjs/types/errors.cjs +76 -0
  87. package/dist/cjs/types/errors.d.ts +34 -0
  88. package/dist/cjs/types/errors.d.ts.map +1 -0
  89. package/dist/cjs/types/errors.js.map +1 -0
  90. package/dist/cjs/types/types.cjs +3 -0
  91. package/dist/cjs/types/types.d.ts +638 -0
  92. package/dist/cjs/types/types.d.ts.map +1 -0
  93. package/dist/cjs/types/types.js.map +1 -0
  94. package/dist/cjs/utils/agent.cjs +384 -0
  95. package/dist/cjs/utils/agent.d.ts +48 -0
  96. package/dist/cjs/utils/agent.d.ts.map +1 -0
  97. package/dist/cjs/utils/agent.js.map +1 -0
  98. package/dist/cjs/utils/audio_stream_player.cjs +342 -0
  99. package/dist/cjs/utils/audio_stream_player.d.ts +37 -0
  100. package/dist/cjs/utils/audio_stream_player.d.ts.map +1 -0
  101. package/dist/cjs/utils/audio_stream_player.js.map +1 -0
  102. package/dist/cjs/utils/citation_tracker.cjs +25 -0
  103. package/dist/cjs/utils/citation_tracker.d.ts +12 -0
  104. package/dist/cjs/utils/citation_tracker.d.ts.map +1 -0
  105. package/dist/cjs/utils/citation_tracker.js.map +1 -0
  106. package/dist/cjs/utils/config_manager.cjs +105 -0
  107. package/dist/cjs/utils/config_manager.d.ts +31 -0
  108. package/dist/cjs/utils/config_manager.d.ts.map +1 -0
  109. package/dist/cjs/utils/config_manager.js.map +1 -0
  110. package/dist/cjs/utils/cost_tracker.cjs +226 -0
  111. package/dist/cjs/utils/cost_tracker.d.ts +33 -0
  112. package/dist/cjs/utils/cost_tracker.d.ts.map +1 -0
  113. package/dist/cjs/utils/cost_tracker.js.map +1 -0
  114. package/dist/cjs/utils/create_tool_function.cjs +182 -0
  115. package/dist/cjs/utils/create_tool_function.d.ts +3 -0
  116. package/dist/cjs/utils/create_tool_function.d.ts.map +1 -0
  117. package/dist/cjs/utils/create_tool_function.js.map +1 -0
  118. package/dist/cjs/utils/delta_buffer.cjs +65 -0
  119. package/dist/cjs/utils/delta_buffer.d.ts +14 -0
  120. package/dist/cjs/utils/delta_buffer.d.ts.map +1 -0
  121. package/dist/cjs/utils/delta_buffer.js.map +1 -0
  122. package/dist/cjs/utils/ensemble_result.cjs +167 -0
  123. package/dist/cjs/utils/ensemble_result.d.ts +33 -0
  124. package/dist/cjs/utils/ensemble_result.d.ts.map +1 -0
  125. package/dist/cjs/utils/ensemble_result.js.map +1 -0
  126. package/dist/cjs/utils/event_controller.cjs +59 -0
  127. package/dist/cjs/utils/event_controller.d.ts +13 -0
  128. package/dist/cjs/utils/event_controller.d.ts.map +1 -0
  129. package/dist/cjs/utils/event_controller.js.map +1 -0
  130. package/dist/cjs/utils/external_models.cjs +42 -0
  131. package/dist/cjs/utils/external_models.d.ts +9 -0
  132. package/dist/cjs/utils/external_models.d.ts.map +1 -0
  133. package/dist/cjs/utils/external_models.js.map +1 -0
  134. package/dist/cjs/utils/image_to_text.cjs +58 -0
  135. package/dist/cjs/utils/image_to_text.d.ts +3 -0
  136. package/dist/cjs/utils/image_to_text.d.ts.map +1 -0
  137. package/dist/cjs/utils/image_to_text.js.map +1 -0
  138. package/dist/cjs/utils/image_utils.cjs +168 -0
  139. package/dist/cjs/utils/image_utils.d.ts +18 -0
  140. package/dist/cjs/utils/image_utils.d.ts.map +1 -0
  141. package/dist/cjs/utils/image_utils.js.map +1 -0
  142. package/dist/cjs/utils/image_validation.cjs +31 -0
  143. package/dist/cjs/utils/image_validation.d.ts +3 -0
  144. package/dist/cjs/utils/image_validation.d.ts.map +1 -0
  145. package/dist/cjs/utils/image_validation.js.map +1 -0
  146. package/dist/cjs/utils/llm_logger.cjs +31 -0
  147. package/dist/cjs/utils/llm_logger.d.ts +8 -0
  148. package/dist/cjs/utils/llm_logger.d.ts.map +1 -0
  149. package/dist/cjs/utils/llm_logger.js.map +1 -0
  150. package/dist/cjs/utils/message_history.cjs +560 -0
  151. package/dist/cjs/utils/message_history.d.ts +65 -0
  152. package/dist/cjs/utils/message_history.d.ts.map +1 -0
  153. package/dist/cjs/utils/message_history.js.map +1 -0
  154. package/dist/cjs/utils/model_class_config.cjs +105 -0
  155. package/dist/cjs/utils/model_class_config.d.ts +12 -0
  156. package/dist/cjs/utils/model_class_config.d.ts.map +1 -0
  157. package/dist/cjs/utils/model_class_config.js.map +1 -0
  158. package/dist/cjs/utils/pause_controller.cjs +90 -0
  159. package/dist/cjs/utils/pause_controller.d.ts +14 -0
  160. package/dist/cjs/utils/pause_controller.d.ts.map +1 -0
  161. package/dist/cjs/utils/pause_controller.js.map +1 -0
  162. package/dist/cjs/utils/quota_tracker.cjs +311 -0
  163. package/dist/cjs/utils/quota_tracker.d.ts +22 -0
  164. package/dist/cjs/utils/quota_tracker.d.ts.map +1 -0
  165. package/dist/cjs/utils/quota_tracker.js.map +1 -0
  166. package/dist/cjs/utils/retry_handler.cjs +131 -0
  167. package/dist/cjs/utils/retry_handler.d.ts +15 -0
  168. package/dist/cjs/utils/retry_handler.d.ts.map +1 -0
  169. package/dist/cjs/utils/retry_handler.js.map +1 -0
  170. package/dist/cjs/utils/running_tool_tracker.cjs +133 -0
  171. package/dist/cjs/utils/running_tool_tracker.d.ts +42 -0
  172. package/dist/cjs/utils/running_tool_tracker.d.ts.map +1 -0
  173. package/dist/cjs/utils/running_tool_tracker.js.map +1 -0
  174. package/dist/cjs/utils/sequential_queue.cjs +73 -0
  175. package/dist/cjs/utils/sequential_queue.d.ts +13 -0
  176. package/dist/cjs/utils/sequential_queue.d.ts.map +1 -0
  177. package/dist/cjs/utils/sequential_queue.js.map +1 -0
  178. package/dist/cjs/utils/stream_handler.cjs +73 -0
  179. package/dist/cjs/utils/stream_handler.d.ts +16 -0
  180. package/dist/cjs/utils/stream_handler.d.ts.map +1 -0
  181. package/dist/cjs/utils/stream_handler.js.map +1 -0
  182. package/dist/cjs/utils/summary_utils.cjs +211 -0
  183. package/dist/cjs/utils/summary_utils.d.ts +7 -0
  184. package/dist/cjs/utils/summary_utils.d.ts.map +1 -0
  185. package/dist/cjs/utils/summary_utils.js.map +1 -0
  186. package/dist/cjs/utils/test_utils.cjs +212 -0
  187. package/dist/cjs/utils/test_utils.d.ts +58 -0
  188. package/dist/cjs/utils/test_utils.d.ts.map +1 -0
  189. package/dist/cjs/utils/test_utils.js.map +1 -0
  190. package/dist/cjs/utils/tool_execution_manager.cjs +139 -0
  191. package/dist/cjs/utils/tool_execution_manager.d.ts +7 -0
  192. package/dist/cjs/utils/tool_execution_manager.d.ts.map +1 -0
  193. package/dist/cjs/utils/tool_execution_manager.js.map +1 -0
  194. package/dist/cjs/utils/tool_parameter_utils.cjs +168 -0
  195. package/dist/cjs/utils/tool_parameter_utils.d.ts +5 -0
  196. package/dist/cjs/utils/tool_parameter_utils.d.ts.map +1 -0
  197. package/dist/cjs/utils/tool_parameter_utils.js.map +1 -0
  198. package/dist/cjs/utils/tool_result_processor.cjs +363 -0
  199. package/dist/cjs/utils/tool_result_processor.d.ts +11 -0
  200. package/dist/cjs/utils/tool_result_processor.d.ts.map +1 -0
  201. package/dist/cjs/utils/tool_result_processor.js.map +1 -0
  202. package/dist/cjs/utils/verification.cjs +59 -0
  203. package/dist/cjs/utils/verification.d.ts +7 -0
  204. package/dist/cjs/utils/verification.d.ts.map +1 -0
  205. package/dist/cjs/utils/verification.js.map +1 -0
  206. package/dist/tsconfig.tsbuildinfo +1 -1
  207. package/dist/utils/audio_stream_player.d.ts +2 -0
  208. package/dist/utils/audio_stream_player.d.ts.map +1 -1
  209. package/dist/utils/audio_stream_player.js +83 -1
  210. package/dist/utils/audio_stream_player.js.map +1 -1
  211. package/dist/utils/cost_tracker.d.ts +7 -0
  212. package/dist/utils/cost_tracker.d.ts.map +1 -1
  213. package/dist/utils/cost_tracker.js +29 -0
  214. package/dist/utils/cost_tracker.js.map +1 -1
  215. package/package.json +18 -3
@@ -0,0 +1,42 @@
1
+ import { AgentDefinition } from "../types/types.cjs";
2
+ export interface RunningTool {
3
+ id: string;
4
+ toolName: string;
5
+ agentName: string;
6
+ args: string;
7
+ startTime: number;
8
+ abortController?: AbortController;
9
+ timedOut?: boolean;
10
+ completed?: boolean;
11
+ failed?: boolean;
12
+ result?: string;
13
+ error?: string;
14
+ }
15
+ export interface ToolCompletionEvent {
16
+ id: string;
17
+ toolName: string;
18
+ agentName: string;
19
+ duration: number;
20
+ timedOut: boolean;
21
+ result?: string;
22
+ error?: string;
23
+ }
24
+ export declare class RunningToolTracker {
25
+ private runningTools;
26
+ private completionHandlers;
27
+ addRunningTool(id: string, toolName: string, agentName: string, args: string): RunningTool;
28
+ markTimedOut(id: string): void;
29
+ completeRunningTool(id: string, result: string, _agent?: AgentDefinition): Promise<void>;
30
+ failRunningTool(id: string, error: string, _agent?: AgentDefinition): Promise<void>;
31
+ getRunningTool(id: string): RunningTool | undefined;
32
+ getAllRunningTools(): RunningTool[];
33
+ getRunningToolsForAgent(agentName: string): RunningTool[];
34
+ abortRunningTool(id: string): void;
35
+ onCompletion(handler: (event: ToolCompletionEvent) => void): void;
36
+ clear(): void;
37
+ isToolRunning(agentName: string, toolName: string): boolean;
38
+ getRunningToolCount(): number;
39
+ waitForTool(id: string, timeout?: number): Promise<ToolCompletionEvent | null>;
40
+ }
41
+ export declare const runningToolTracker: RunningToolTracker;
42
+ //# sourceMappingURL=running_tool_tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"running_tool_tracker.d.ts","sourceRoot":"","sources":["../../../utils/running_tool_tracker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,kBAAkB,CAAgD;IAK1E,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAkB1F,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUxB,mBAAmB,CACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;IA+BV,eAAe,CACjB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;IA+BhB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAOnD,kBAAkB,IAAI,WAAW,EAAE;IAOnC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAOzD,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUlC,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAOjE,KAAK,IAAI,IAAI;IAcb,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAO3D,mBAAmB,IAAI,MAAM;IAOvB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CAmCvF;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"running_tool_tracker.js","sourceRoot":"","sources":["../../../utils/running_tool_tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sequentialQueue = exports.SequentialQueue = void 0;
4
+ exports.runSequential = runSequential;
5
+ class SequentialQueue {
6
+ queues = new Map();
7
+ processing = new Map();
8
+ async runSequential(agentId, fn) {
9
+ return new Promise((resolve, reject) => {
10
+ if (!this.queues.has(agentId)) {
11
+ this.queues.set(agentId, []);
12
+ this.processing.set(agentId, false);
13
+ }
14
+ const queue = this.queues.get(agentId);
15
+ queue.push({
16
+ execute: fn,
17
+ resolve,
18
+ reject,
19
+ });
20
+ if (!this.processing.get(agentId)) {
21
+ this.processQueue(agentId);
22
+ }
23
+ });
24
+ }
25
+ async processQueue(agentId) {
26
+ const queue = this.queues.get(agentId);
27
+ if (!queue || queue.length === 0) {
28
+ this.processing.set(agentId, false);
29
+ return;
30
+ }
31
+ this.processing.set(agentId, true);
32
+ while (queue.length > 0) {
33
+ const item = queue.shift();
34
+ try {
35
+ const result = await item.execute();
36
+ item.resolve(result);
37
+ }
38
+ catch (error) {
39
+ item.reject(error);
40
+ }
41
+ }
42
+ this.processing.set(agentId, false);
43
+ }
44
+ getQueueSize(agentId) {
45
+ const queue = this.queues.get(agentId);
46
+ return queue ? queue.length : 0;
47
+ }
48
+ isProcessing(agentId) {
49
+ return this.processing.get(agentId) || false;
50
+ }
51
+ clearQueue(agentId) {
52
+ const queue = this.queues.get(agentId);
53
+ if (queue) {
54
+ queue.forEach(item => {
55
+ item.reject(new Error('Queue cleared'));
56
+ });
57
+ queue.length = 0;
58
+ }
59
+ }
60
+ clearAll() {
61
+ this.queues.forEach((queue, agentId) => {
62
+ this.clearQueue(agentId);
63
+ });
64
+ this.queues.clear();
65
+ this.processing.clear();
66
+ }
67
+ }
68
+ exports.SequentialQueue = SequentialQueue;
69
+ exports.sequentialQueue = new SequentialQueue();
70
+ async function runSequential(agentId, fn) {
71
+ return exports.sequentialQueue.runSequential(agentId, fn);
72
+ }
73
+ //# sourceMappingURL=sequential_queue.js.map
@@ -0,0 +1,13 @@
1
+ export declare class SequentialQueue {
2
+ private queues;
3
+ private processing;
4
+ runSequential<T>(agentId: string, fn: () => Promise<T>): Promise<T>;
5
+ private processQueue;
6
+ getQueueSize(agentId: string): number;
7
+ isProcessing(agentId: string): boolean;
8
+ clearQueue(agentId: string): void;
9
+ clearAll(): void;
10
+ }
11
+ export declare const sequentialQueue: SequentialQueue;
12
+ export declare function runSequential<T>(agentId: string, fn: () => Promise<T>): Promise<T>;
13
+ //# sourceMappingURL=sequential_queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential_queue.d.ts","sourceRoot":"","sources":["../../../utils/sequential_queue.ts"],"names":[],"mappings":"AAaA,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,UAAU,CAAmC;IAK/C,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YA2B3D,YAAY;IA0B1B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQrC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOtC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAcjC,QAAQ,IAAI,IAAI;CAOnB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAKrD,wBAAsB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAExF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential_queue.js","sourceRoot":"","sources":["../../../utils/sequential_queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamHandler = void 0;
4
+ exports.createStreamHandler = createStreamHandler;
5
+ exports.createMessageDeltaTransformer = createMessageDeltaTransformer;
6
+ exports.createMessageCompleteTransformer = createMessageCompleteTransformer;
7
+ const pause_controller_js_1 = require("./pause_controller.cjs");
8
+ class StreamHandler {
9
+ options;
10
+ constructor(options = {}) {
11
+ this.options = options;
12
+ }
13
+ async *handleStream(stream, transformer) {
14
+ const { pauseCheckInterval = 100, abortSignal, providerName = 'Unknown', modelName = 'Unknown' } = this.options;
15
+ try {
16
+ for await (const chunk of stream) {
17
+ if ((0, pause_controller_js_1.isPaused)()) {
18
+ console.log(`[${providerName}] System paused during stream for model ${modelName}. Waiting...`);
19
+ await (0, pause_controller_js_1.waitWhilePaused)(pauseCheckInterval, abortSignal);
20
+ console.log(`[${providerName}] System resumed, continuing stream for model ${modelName}`);
21
+ }
22
+ const events = transformer(chunk);
23
+ if (events) {
24
+ if (Array.isArray(events)) {
25
+ for (const event of events) {
26
+ yield event;
27
+ }
28
+ }
29
+ else {
30
+ yield events;
31
+ }
32
+ }
33
+ }
34
+ }
35
+ catch (error) {
36
+ yield {
37
+ type: 'error',
38
+ error: error.message || 'Unknown streaming error',
39
+ code: error.code,
40
+ details: error.details,
41
+ recoverable: error.recoverable,
42
+ timestamp: new Date().toISOString(),
43
+ };
44
+ }
45
+ }
46
+ }
47
+ exports.StreamHandler = StreamHandler;
48
+ function createStreamHandler(options = {}) {
49
+ return new StreamHandler(options);
50
+ }
51
+ function createMessageDeltaTransformer(messageId) {
52
+ let order = 0;
53
+ return function transformMessageDelta(content) {
54
+ return {
55
+ type: 'message_delta',
56
+ content,
57
+ message_id: messageId,
58
+ order: order++,
59
+ timestamp: new Date().toISOString(),
60
+ };
61
+ };
62
+ }
63
+ function createMessageCompleteTransformer(messageId) {
64
+ return function transformMessageComplete(content) {
65
+ return {
66
+ type: 'message_complete',
67
+ content,
68
+ message_id: messageId,
69
+ timestamp: new Date().toISOString(),
70
+ };
71
+ };
72
+ }
73
+ //# sourceMappingURL=stream_handler.js.map
@@ -0,0 +1,16 @@
1
+ import { ProviderStreamEvent } from "../types/types.cjs";
2
+ export interface StreamHandlerOptions {
3
+ pauseCheckInterval?: number;
4
+ abortSignal?: AbortSignal;
5
+ providerName?: string;
6
+ modelName?: string;
7
+ }
8
+ export declare class StreamHandler<TEvent> {
9
+ private options;
10
+ constructor(options?: StreamHandlerOptions);
11
+ handleStream(stream: AsyncIterable<TEvent>, transformer: (chunk: TEvent) => ProviderStreamEvent | ProviderStreamEvent[] | null): AsyncGenerator<ProviderStreamEvent>;
12
+ }
13
+ export declare function createStreamHandler<TEvent>(options?: StreamHandlerOptions): StreamHandler<TEvent>;
14
+ export declare function createMessageDeltaTransformer(messageId: string): (content: string) => ProviderStreamEvent;
15
+ export declare function createMessageCompleteTransformer(messageId: string): (content: string) => ProviderStreamEvent;
16
+ //# sourceMappingURL=stream_handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream_handler.d.ts","sourceRoot":"","sources":["../../../utils/stream_handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IAEjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,qBAAa,aAAa,CAAC,MAAM;IACjB,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,oBAAyB;IAK/C,YAAY,CACf,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,IAAI,GACnF,cAAc,CAAC,mBAAmB,CAAC;CAoCzC;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAAC,MAAM,CAAC,CAErG;AAKD,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,IAGrB,SAAS,MAAM,KAAG,mBAAmB,CAS9E;AAKD,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,IACrB,SAAS,MAAM,KAAG,mBAAmB,CAQjF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream_handler.js","sourceRoot":"","sources":["../../../utils/stream_handler.ts"],"names":[],"mappings":";;;AAuEA,kDAEC;AAKD,sEAYC;AAKD,4EASC;AAnGD,+DAAkE;AAgBlE,MAAa,aAAa;IACF;IAApB,YAAoB,UAAgC,EAAE;QAAlC,YAAO,GAAP,OAAO,CAA2B;IAAG,CAAC;IAK1D,KAAK,CAAC,CAAC,YAAY,CACf,MAA6B,EAC7B,WAAkF;QAElF,MAAM,EAAE,kBAAkB,GAAG,GAAG,EAAE,WAAW,EAAE,YAAY,GAAG,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhH,IAAI,CAAC;YACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAE/B,IAAI,IAAA,8BAAQ,GAAE,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,2CAA2C,SAAS,cAAc,CAAC,CAAC;oBAChG,MAAM,IAAA,qCAAe,EAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,iDAAiD,SAAS,EAAE,CAAC,CAAC;gBAC9F,CAAC;gBAGD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACzB,MAAM,KAAK,CAAC;wBAChB,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,MAAM,CAAC;oBACjB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAElB,MAAM;gBACF,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,yBAAyB;gBACjD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACf,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ;AA7CD,sCA6CC;AAKD,SAAgB,mBAAmB,CAAS,UAAgC,EAAE;IAC1E,OAAO,IAAI,aAAa,CAAS,OAAO,CAAC,CAAC;AAC9C,CAAC;AAKD,SAAgB,6BAA6B,CAAC,SAAiB;IAC3D,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,SAAS,qBAAqB,CAAC,OAAe;QACjD,OAAO;YACH,IAAI,EAAE,eAAe;YACrB,OAAO;YACP,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,KAAK,EAAE;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAKD,SAAgB,gCAAgC,CAAC,SAAiB;IAC9D,OAAO,SAAS,wBAAwB,CAAC,OAAe;QACpD,OAAO;YACH,IAAI,EAAE,kBAAkB;YACxB,OAAO;YACP,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSummary = createSummary;
7
+ exports.read_source = read_source;
8
+ exports.write_source = write_source;
9
+ exports.getSummaryTools = getSummaryTools;
10
+ exports.hasExpansionTools = hasExpansionTools;
11
+ const promises_1 = __importDefault(require("fs/promises"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const crypto_1 = __importDefault(require("crypto"));
14
+ const create_tool_function_js_1 = require("./create_tool_function.cjs");
15
+ const SUMMARIZE_AT_CHARS = 5000;
16
+ const SUMMARIZE_TRUNCATE_CHARS = 200000;
17
+ const HASH_MAP_FILENAME = 'summary_hash_map.json';
18
+ async function ensureDir(dir) {
19
+ try {
20
+ await promises_1.default.mkdir(dir, { recursive: true });
21
+ }
22
+ catch (error) {
23
+ if (error.code !== 'EEXIST') {
24
+ throw error;
25
+ }
26
+ }
27
+ }
28
+ async function loadHashMap(file_path) {
29
+ try {
30
+ const data = await promises_1.default.readFile(file_path, 'utf-8');
31
+ return JSON.parse(data);
32
+ }
33
+ catch (error) {
34
+ if (error.code === 'ENOENT') {
35
+ return {};
36
+ }
37
+ console.error(`Error loading summary hash map from ${file_path}:`, error);
38
+ return {};
39
+ }
40
+ }
41
+ async function saveHashMap(file_path, map) {
42
+ try {
43
+ const data = JSON.stringify(map, null, 2);
44
+ await promises_1.default.writeFile(file_path, data, 'utf-8');
45
+ }
46
+ catch (error) {
47
+ console.error(`Error saving summary hash map to ${file_path}:`, error);
48
+ }
49
+ }
50
+ function truncate(text, length = SUMMARIZE_TRUNCATE_CHARS, separator = '\n\n...[truncated for summary]...\n\n') {
51
+ text = text.trim();
52
+ if (text.length <= length) {
53
+ return text;
54
+ }
55
+ return text.substring(0, length * 0.3) + separator + text.substring(text.length - length * 0.7 + separator.length);
56
+ }
57
+ async function createSummary(document, context, summaryFn, includeExpansionReferences = false, summariesDir) {
58
+ if (document.length <= SUMMARIZE_AT_CHARS) {
59
+ return document;
60
+ }
61
+ const finalSummariesDir = summariesDir || './summaries';
62
+ await ensureDir(finalSummariesDir);
63
+ const hashMapPath = path_1.default.join(finalSummariesDir, HASH_MAP_FILENAME);
64
+ const documentHash = crypto_1.default.createHash('sha256').update(document).digest('hex');
65
+ const hashMap = await loadHashMap(hashMapPath);
66
+ if (hashMap[documentHash]) {
67
+ const summaryId = hashMap[documentHash];
68
+ const summaryFilePath = path_1.default.join(finalSummariesDir, `summary-${summaryId}.txt`);
69
+ const originalFilePath = path_1.default.join(finalSummariesDir, `original-${summaryId}.txt`);
70
+ try {
71
+ const [existingSummary, originalDoc] = await Promise.all([
72
+ promises_1.default.readFile(summaryFilePath, 'utf-8'),
73
+ promises_1.default.readFile(originalFilePath, 'utf-8'),
74
+ ]);
75
+ const originalLines = originalDoc.split('\n').length;
76
+ const summaryLines = existingSummary.split('\n').length;
77
+ const originalChars = originalDoc.length;
78
+ const summaryChars = existingSummary.length;
79
+ const metadata = includeExpansionReferences
80
+ ? `\n\nSummarized large output to avoid excessive tokens (${originalLines} -> ${summaryLines} lines, ${originalChars} -> ${summaryChars} chars) [Write to file with write_source(${summaryId}, file_path) or read with read_source(${summaryId}, line_start, line_end)]`
81
+ : `\n\nSummarized large output to avoid excessive tokens (${originalLines} -> ${summaryLines} lines, ${originalChars} -> ${summaryChars} chars)`;
82
+ console.log(`Retrieved summary from cache for hash: ${documentHash.substring(0, 8)}...`);
83
+ return existingSummary.trim() + metadata;
84
+ }
85
+ catch (error) {
86
+ console.error(`Error reading cached summary files for ID ${summaryId}:`, error);
87
+ delete hashMap[documentHash];
88
+ await saveHashMap(hashMapPath, hashMap);
89
+ }
90
+ }
91
+ const originalDocumentForSave = document;
92
+ const originalLines = originalDocumentForSave.split('\n').length;
93
+ document = truncate(document);
94
+ const summary = await summaryFn(document, context);
95
+ const trimmedSummary = summary.trim();
96
+ const summaryLines = trimmedSummary.split('\n').length;
97
+ const newSummaryId = crypto_1.default.randomUUID();
98
+ const summaryFilePath = path_1.default.join(finalSummariesDir, `summary-${newSummaryId}.txt`);
99
+ const originalFilePath = path_1.default.join(finalSummariesDir, `original-${newSummaryId}.txt`);
100
+ try {
101
+ await Promise.all([
102
+ promises_1.default.writeFile(summaryFilePath, trimmedSummary, 'utf-8'),
103
+ promises_1.default.writeFile(originalFilePath, originalDocumentForSave, 'utf-8'),
104
+ ]);
105
+ hashMap[documentHash] = newSummaryId;
106
+ await saveHashMap(hashMapPath, hashMap);
107
+ console.log(`Saved new summary with ID: ${newSummaryId} for hash: ${documentHash.substring(0, 8)}...`);
108
+ }
109
+ catch (error) {
110
+ console.error(`Error saving new summary files for ID ${newSummaryId}:`, error);
111
+ return trimmedSummary;
112
+ }
113
+ const originalChars = originalDocumentForSave.length;
114
+ const summaryChars = trimmedSummary.length;
115
+ const metadata = includeExpansionReferences
116
+ ? `\n\nSummarized large output to avoid excessive tokens (${originalLines} -> ${summaryLines} lines, ${originalChars} -> ${summaryChars} chars) [Write to file with write_source(${newSummaryId}, file_path) or read with read_source(${newSummaryId}, line_start, line_end)]`
117
+ : `\n\nSummarized large output to avoid excessive tokens (${originalLines} -> ${summaryLines} lines, ${originalChars} -> ${summaryChars} chars)`;
118
+ return trimmedSummary + metadata;
119
+ }
120
+ async function read_source(summary_id, line_start, line_end, summariesDir) {
121
+ const finalSummariesDir = summariesDir || './summaries';
122
+ const originalFilePath = path_1.default.join(finalSummariesDir, `original-${summary_id}.txt`);
123
+ try {
124
+ let content = await promises_1.default.readFile(originalFilePath, 'utf-8');
125
+ if (line_start !== undefined && line_end !== undefined) {
126
+ const lines = content.split('\n');
127
+ const start = Math.max(0, line_start);
128
+ const end = Math.min(lines.length, line_end + 1);
129
+ if (start >= end || start >= lines.length) {
130
+ return `Error: Invalid line range requested (${line_start}-${line_end}) for document with ${lines.length} lines.`;
131
+ }
132
+ content = lines.slice(start, end).join('\n');
133
+ }
134
+ return content;
135
+ }
136
+ catch (error) {
137
+ if (error.code === 'ENOENT') {
138
+ return `Error: Original document for summary ID '${summary_id}' not found at ${originalFilePath}.`;
139
+ }
140
+ console.error(`Error reading original summary source for ID ${summary_id}:`, error);
141
+ return `Error: Could not retrieve original document for summary ID '${summary_id}'.`;
142
+ }
143
+ }
144
+ async function write_source(summary_id, file_path, summariesDir) {
145
+ const finalSummariesDir = summariesDir || './summaries';
146
+ const originalFilePath = path_1.default.join(finalSummariesDir, `original-${summary_id}.txt`);
147
+ try {
148
+ const content = await promises_1.default.readFile(originalFilePath, 'utf-8');
149
+ if (!file_path) {
150
+ return 'Error: file_path is required.';
151
+ }
152
+ try {
153
+ const directory = path_1.default.dirname(file_path);
154
+ await promises_1.default.mkdir(directory, { recursive: true });
155
+ await promises_1.default.writeFile(file_path, content, 'utf-8');
156
+ console.log(`Summary written to file: ${file_path}`);
157
+ return `Successfully wrote ${content.length} chars to file: ${file_path}\n\nStart of content:\n\n${content.substring(0, 400)}...`;
158
+ }
159
+ catch (writeError) {
160
+ console.error(`Error writing summary to file ${file_path}:`, writeError);
161
+ return `Error: Could not write summary to file ${file_path}.`;
162
+ }
163
+ }
164
+ catch (error) {
165
+ if (error.code === 'ENOENT') {
166
+ return `Error: Original document for summary ID '${summary_id}' not found at ${originalFilePath}.`;
167
+ }
168
+ console.error(`Error reading original summary source for ID ${summary_id}:`, error);
169
+ return `Error: Could not retrieve original document for summary ID '${summary_id}'.`;
170
+ }
171
+ }
172
+ function getSummaryTools(summariesDir) {
173
+ const readSourceWrapper = async (summary_id, line_start, line_end) => {
174
+ return read_source(summary_id, line_start, line_end, summariesDir);
175
+ };
176
+ const writeSourceWrapper = async (summary_id, file_path) => {
177
+ return write_source(summary_id, file_path, summariesDir);
178
+ };
179
+ return [
180
+ (0, create_tool_function_js_1.createToolFunction)(readSourceWrapper, 'Read the original (not summarized) document content. If possible, limit lines to limit tokens returned. Results will be truncated to 1000 characters - for larger files, use write_source.', {
181
+ summary_id: {
182
+ type: 'string',
183
+ description: 'The unique ID of the summary.',
184
+ },
185
+ line_start: {
186
+ type: 'number',
187
+ description: 'Starting line to retrieve (0-based). Optional.',
188
+ optional: true,
189
+ },
190
+ line_end: {
191
+ type: 'number',
192
+ description: 'Ending line to retrieve (0-based). Optional.',
193
+ optional: true,
194
+ },
195
+ }),
196
+ (0, create_tool_function_js_1.createToolFunction)(writeSourceWrapper, 'Write the original (not summarized) document to a file.', {
197
+ summary_id: {
198
+ type: 'string',
199
+ description: 'The unique ID of the summary.',
200
+ },
201
+ file_path: {
202
+ type: 'string',
203
+ description: 'Relative or absolute path to write the document to.',
204
+ },
205
+ }),
206
+ ];
207
+ }
208
+ function hasExpansionTools(toolNames) {
209
+ return toolNames.includes('write_source') && toolNames.includes('read_source');
210
+ }
211
+ //# sourceMappingURL=summary_utils.js.map
@@ -0,0 +1,7 @@
1
+ import { ToolFunction } from "../types/types.cjs";
2
+ export declare function createSummary(document: string, context: string, summaryFn: (document: string, context: string) => Promise<string>, includeExpansionReferences?: boolean, summariesDir?: string): Promise<string>;
3
+ export declare function read_source(summary_id: string, line_start?: number, line_end?: number, summariesDir?: string): Promise<string>;
4
+ export declare function write_source(summary_id: string, file_path: string, summariesDir?: string): Promise<string>;
5
+ export declare function getSummaryTools(summariesDir?: string): ToolFunction[];
6
+ export declare function hasExpansionTools(toolNames: string[]): boolean;
7
+ //# sourceMappingURL=summary_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary_utils.d.ts","sourceRoot":"","sources":["../../../utils/summary_utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAuEjD,wBAAsB,aAAa,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACjE,0BAA0B,GAAE,OAAe,EAC3C,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CAwFjB;AAYD,wBAAsB,WAAW,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAUD,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BhH;AASD,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAyCrE;AAQD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAE9D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary_utils.js","sourceRoot":"","sources":["../../../utils/summary_utils.ts"],"names":[],"mappings":";;;;;AA6EA,sCA8FC;AAYD,kCAgCC;AAUD,oCA6BC;AASD,0CAyCC;AAQD,8CAEC;AAvTD,2DAA6B;AAC7B,gDAAwB;AACxB,oDAA4B;AAE5B,uEAA+D;AAE/D,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAGxC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAKlD,KAAK,UAAU,SAAS,CAAC,GAAW;IAChC,IAAI,CAAC;QACD,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB;IACxC,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAE1B,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,uCAAuC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;QAE1E,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,GAAmB;IAC7D,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;IAE3E,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CACb,IAAY,EACZ,SAAiB,wBAAwB,EACzC,YAAoB,uCAAuC;IAE3D,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACvH,CAAC;AAcM,KAAK,UAAU,aAAa,CAC/B,QAAgB,EAChB,OAAe,EACf,SAAiE,EACjE,6BAAsC,KAAK,EAC3C,YAAqB;IAErB,IAAI,QAAQ,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAGD,MAAM,iBAAiB,GAAG,YAAY,IAAI,aAAa,CAAC;IACxD,MAAM,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAGnC,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,SAAS,MAAM,CAAC,CAAC;QACjF,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,SAAS,MAAM,CAAC,CAAC;QAEnF,IAAI,CAAC;YAED,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrD,kBAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;gBACrC,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;aACzC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACrD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACxD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;YACzC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;YAE5C,MAAM,QAAQ,GAAG,0BAA0B;gBACvC,CAAC,CAAC,0DAA0D,aAAa,OAAO,YAAY,WAAW,aAAa,OAAO,YAAY,4CAA4C,SAAS,yCAAyC,SAAS,0BAA0B;gBACxQ,CAAC,CAAC,0DAA0D,aAAa,OAAO,YAAY,WAAW,aAAa,OAAO,YAAY,SAAS,CAAC;YAErJ,OAAO,CAAC,GAAG,CAAC,0CAA0C,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACzF,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YAEhF,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7B,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAID,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IACzC,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAGjE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAG9B,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAGvD,MAAM,YAAY,GAAG,gBAAM,CAAC,UAAU,EAAE,CAAC;IACzC,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,YAAY,MAAM,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,YAAY,MAAM,CAAC,CAAC;IAEtF,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,kBAAE,CAAC,SAAS,CAAC,eAAe,EAAE,cAAc,EAAE,OAAO,CAAC;YACtD,kBAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,OAAO,CAAC;SACnE,CAAC,CAAC;QAGH,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;QACrC,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,8BAA8B,YAAY,cAAc,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QAE/E,OAAO,cAAc,CAAC;IAC1B,CAAC;IAGD,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACrD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC;IAE3C,MAAM,QAAQ,GAAG,0BAA0B;QACvC,CAAC,CAAC,0DAA0D,aAAa,OAAO,YAAY,WAAW,aAAa,OAAO,YAAY,4CAA4C,YAAY,yCAAyC,YAAY,0BAA0B;QAC9Q,CAAC,CAAC,0DAA0D,aAAa,OAAO,YAAY,WAAW,aAAa,OAAO,YAAY,SAAS,CAAC;IAErJ,OAAO,cAAc,GAAG,QAAQ,CAAC;AACrC,CAAC;AAYM,KAAK,UAAU,WAAW,CAC7B,UAAkB,EAClB,UAAmB,EACnB,QAAiB,EACjB,YAAqB;IAErB,MAAM,iBAAiB,GAAG,YAAY,IAAI,aAAa,CAAC;IACxD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,UAAU,MAAM,CAAC,CAAC;IAEpF,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;YAEjD,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxC,OAAO,wCAAwC,UAAU,IAAI,QAAQ,uBAAuB,KAAK,CAAC,MAAM,SAAS,CAAC;YACtH,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,4CAA4C,UAAU,kBAAkB,gBAAgB,GAAG,CAAC;QACvG,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,gDAAgD,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QACpF,OAAO,+DAA+D,UAAU,IAAI,CAAC;IACzF,CAAC;AACL,CAAC;AAUM,KAAK,UAAU,YAAY,CAAC,UAAkB,EAAE,SAAiB,EAAE,YAAqB;IAC3F,MAAM,iBAAiB,GAAG,YAAY,IAAI,aAAa,CAAC;IACxD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,UAAU,MAAM,CAAC,CAAC;IAEpF,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,+BAA+B,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC;YAED,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAG/C,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;YACrD,OAAO,sBAAsB,OAAO,CAAC,MAAM,mBAAmB,SAAS,4BAA4B,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;QACtI,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,iCAAiC,SAAS,GAAG,EAAE,UAAU,CAAC,CAAC;YACzE,OAAO,0CAA0C,SAAS,GAAG,CAAC;QAClE,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,4CAA4C,UAAU,kBAAkB,gBAAgB,GAAG,CAAC;QACvG,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,gDAAgD,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QACpF,OAAO,+DAA+D,UAAU,IAAI,CAAC;IACzF,CAAC;AACL,CAAC;AASD,SAAgB,eAAe,CAAC,YAAqB;IACjD,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAAkB,EAAE,UAAmB,EAAE,QAAiB,EAAE,EAAE;QAC3F,OAAO,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,UAAkB,EAAE,SAAiB,EAAE,EAAE;QACvE,OAAO,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO;QACH,IAAA,4CAAkB,EACd,iBAAiB,EACjB,4LAA4L,EAC5L;YACI,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC/C;YACD,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gDAAgD;gBAC7D,QAAQ,EAAE,IAAI;aACjB;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;gBAC3D,QAAQ,EAAE,IAAI;aACjB;SACJ,CACJ;QACD,IAAA,4CAAkB,EAAC,kBAAkB,EAAE,yDAAyD,EAAE;YAC9F,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC/C;YACD,SAAS,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;aACrE;SACJ,CAAC;KACL,CAAC;AACN,CAAC;AAQD,SAAgB,iBAAiB,CAAC,SAAmB;IACjD,OAAO,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACnF,CAAC"}