mojentic 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +459 -0
  3. package/dist/agents/async-aggregator-agent.d.ts +101 -0
  4. package/dist/agents/async-aggregator-agent.d.ts.map +1 -0
  5. package/dist/agents/async-aggregator-agent.js +160 -0
  6. package/dist/agents/async-aggregator-agent.js.map +1 -0
  7. package/dist/agents/async-dispatcher.d.ts +98 -0
  8. package/dist/agents/async-dispatcher.d.ts.map +1 -0
  9. package/dist/agents/async-dispatcher.js +173 -0
  10. package/dist/agents/async-dispatcher.js.map +1 -0
  11. package/dist/agents/async-llm-agent-with-memory.d.ts +95 -0
  12. package/dist/agents/async-llm-agent-with-memory.d.ts.map +1 -0
  13. package/dist/agents/async-llm-agent-with-memory.js +136 -0
  14. package/dist/agents/async-llm-agent-with-memory.js.map +1 -0
  15. package/dist/agents/async-llm-agent.d.ts +85 -0
  16. package/dist/agents/async-llm-agent.d.ts.map +1 -0
  17. package/dist/agents/async-llm-agent.js +87 -0
  18. package/dist/agents/async-llm-agent.js.map +1 -0
  19. package/dist/agents/base-agent.d.ts +59 -0
  20. package/dist/agents/base-agent.d.ts.map +1 -0
  21. package/dist/agents/base-agent.js +24 -0
  22. package/dist/agents/base-agent.js.map +1 -0
  23. package/dist/agents/base-async-agent.d.ts +42 -0
  24. package/dist/agents/base-async-agent.d.ts.map +1 -0
  25. package/dist/agents/base-async-agent.js +6 -0
  26. package/dist/agents/base-async-agent.js.map +1 -0
  27. package/dist/agents/event.d.ts +26 -0
  28. package/dist/agents/event.d.ts.map +1 -0
  29. package/dist/agents/event.js +13 -0
  30. package/dist/agents/event.js.map +1 -0
  31. package/dist/agents/index.d.ts +14 -0
  32. package/dist/agents/index.d.ts.map +1 -0
  33. package/dist/agents/index.js +30 -0
  34. package/dist/agents/index.js.map +1 -0
  35. package/dist/agents/iterative-problem-solver.d.ts +83 -0
  36. package/dist/agents/iterative-problem-solver.d.ts.map +1 -0
  37. package/dist/agents/iterative-problem-solver.js +120 -0
  38. package/dist/agents/iterative-problem-solver.js.map +1 -0
  39. package/dist/agents/router.d.ts +44 -0
  40. package/dist/agents/router.d.ts.map +1 -0
  41. package/dist/agents/router.js +53 -0
  42. package/dist/agents/router.js.map +1 -0
  43. package/dist/agents/simple-recursive-agent.d.ts +182 -0
  44. package/dist/agents/simple-recursive-agent.d.ts.map +1 -0
  45. package/dist/agents/simple-recursive-agent.js +272 -0
  46. package/dist/agents/simple-recursive-agent.js.map +1 -0
  47. package/dist/context/index.d.ts +5 -0
  48. package/dist/context/index.d.ts.map +1 -0
  49. package/dist/context/index.js +21 -0
  50. package/dist/context/index.js.map +1 -0
  51. package/dist/context/shared-working-memory.d.ts +76 -0
  52. package/dist/context/shared-working-memory.d.ts.map +1 -0
  53. package/dist/context/shared-working-memory.js +121 -0
  54. package/dist/context/shared-working-memory.js.map +1 -0
  55. package/dist/error.d.ts +93 -0
  56. package/dist/error.d.ts.map +1 -0
  57. package/dist/error.js +149 -0
  58. package/dist/error.js.map +1 -0
  59. package/dist/examples/react/decisioning-agent.d.ts +48 -0
  60. package/dist/examples/react/decisioning-agent.d.ts.map +1 -0
  61. package/dist/examples/react/decisioning-agent.js +204 -0
  62. package/dist/examples/react/decisioning-agent.js.map +1 -0
  63. package/dist/examples/react/events.d.ts +77 -0
  64. package/dist/examples/react/events.d.ts.map +1 -0
  65. package/dist/examples/react/events.js +9 -0
  66. package/dist/examples/react/events.js.map +1 -0
  67. package/dist/examples/react/formatters.d.ts +23 -0
  68. package/dist/examples/react/formatters.d.ts.map +1 -0
  69. package/dist/examples/react/formatters.js +68 -0
  70. package/dist/examples/react/formatters.js.map +1 -0
  71. package/dist/examples/react/index.d.ts +12 -0
  72. package/dist/examples/react/index.d.ts.map +1 -0
  73. package/dist/examples/react/index.js +28 -0
  74. package/dist/examples/react/index.js.map +1 -0
  75. package/dist/examples/react/models.d.ts +57 -0
  76. package/dist/examples/react/models.d.ts.map +1 -0
  77. package/dist/examples/react/models.js +19 -0
  78. package/dist/examples/react/models.js.map +1 -0
  79. package/dist/examples/react/output-agent.d.ts +23 -0
  80. package/dist/examples/react/output-agent.d.ts.map +1 -0
  81. package/dist/examples/react/output-agent.js +28 -0
  82. package/dist/examples/react/output-agent.js.map +1 -0
  83. package/dist/examples/react/summarization-agent.d.ts +46 -0
  84. package/dist/examples/react/summarization-agent.d.ts.map +1 -0
  85. package/dist/examples/react/summarization-agent.js +102 -0
  86. package/dist/examples/react/summarization-agent.js.map +1 -0
  87. package/dist/examples/react/thinking-agent.d.ts +47 -0
  88. package/dist/examples/react/thinking-agent.d.ts.map +1 -0
  89. package/dist/examples/react/thinking-agent.js +127 -0
  90. package/dist/examples/react/thinking-agent.js.map +1 -0
  91. package/dist/examples/react/tool-call-agent.d.ts +25 -0
  92. package/dist/examples/react/tool-call-agent.d.ts.map +1 -0
  93. package/dist/examples/react/tool-call-agent.js +83 -0
  94. package/dist/examples/react/tool-call-agent.js.map +1 -0
  95. package/dist/index.d.ts +10 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +28 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/llm/agent.d.ts +68 -0
  100. package/dist/llm/agent.d.ts.map +1 -0
  101. package/dist/llm/agent.js +85 -0
  102. package/dist/llm/agent.js.map +1 -0
  103. package/dist/llm/broker.d.ts +150 -0
  104. package/dist/llm/broker.d.ts.map +1 -0
  105. package/dist/llm/broker.js +355 -0
  106. package/dist/llm/broker.js.map +1 -0
  107. package/dist/llm/chat-session.d.ts +98 -0
  108. package/dist/llm/chat-session.d.ts.map +1 -0
  109. package/dist/llm/chat-session.js +156 -0
  110. package/dist/llm/chat-session.js.map +1 -0
  111. package/dist/llm/gateway.d.ts +28 -0
  112. package/dist/llm/gateway.d.ts.map +1 -0
  113. package/dist/llm/gateway.js +6 -0
  114. package/dist/llm/gateway.js.map +1 -0
  115. package/dist/llm/gateways/index.d.ts +9 -0
  116. package/dist/llm/gateways/index.d.ts.map +1 -0
  117. package/dist/llm/gateways/index.js +25 -0
  118. package/dist/llm/gateways/index.js.map +1 -0
  119. package/dist/llm/gateways/ollama.d.ts +30 -0
  120. package/dist/llm/gateways/ollama.d.ts.map +1 -0
  121. package/dist/llm/gateways/ollama.js +322 -0
  122. package/dist/llm/gateways/ollama.js.map +1 -0
  123. package/dist/llm/gateways/openai-messages-adapter.d.ts +29 -0
  124. package/dist/llm/gateways/openai-messages-adapter.d.ts.map +1 -0
  125. package/dist/llm/gateways/openai-messages-adapter.js +188 -0
  126. package/dist/llm/gateways/openai-messages-adapter.js.map +1 -0
  127. package/dist/llm/gateways/openai-model-registry.d.ts +82 -0
  128. package/dist/llm/gateways/openai-model-registry.d.ts.map +1 -0
  129. package/dist/llm/gateways/openai-model-registry.js +352 -0
  130. package/dist/llm/gateways/openai-model-registry.js.map +1 -0
  131. package/dist/llm/gateways/openai.d.ts +40 -0
  132. package/dist/llm/gateways/openai.d.ts.map +1 -0
  133. package/dist/llm/gateways/openai.js +469 -0
  134. package/dist/llm/gateways/openai.js.map +1 -0
  135. package/dist/llm/gateways/tokenizerGateway.d.ts +61 -0
  136. package/dist/llm/gateways/tokenizerGateway.d.ts.map +1 -0
  137. package/dist/llm/gateways/tokenizerGateway.js +75 -0
  138. package/dist/llm/gateways/tokenizerGateway.js.map +1 -0
  139. package/dist/llm/index.d.ts +11 -0
  140. package/dist/llm/index.d.ts.map +1 -0
  141. package/dist/llm/index.js +27 -0
  142. package/dist/llm/index.js.map +1 -0
  143. package/dist/llm/models.d.ts +95 -0
  144. package/dist/llm/models.d.ts.map +1 -0
  145. package/dist/llm/models.js +50 -0
  146. package/dist/llm/models.js.map +1 -0
  147. package/dist/llm/tools/ask-user.d.ts +39 -0
  148. package/dist/llm/tools/ask-user.d.ts.map +1 -0
  149. package/dist/llm/tools/ask-user.js +111 -0
  150. package/dist/llm/tools/ask-user.js.map +1 -0
  151. package/dist/llm/tools/current-datetime.d.ts +17 -0
  152. package/dist/llm/tools/current-datetime.d.ts.map +1 -0
  153. package/dist/llm/tools/current-datetime.js +76 -0
  154. package/dist/llm/tools/current-datetime.js.map +1 -0
  155. package/dist/llm/tools/date-resolver.d.ts +17 -0
  156. package/dist/llm/tools/date-resolver.d.ts.map +1 -0
  157. package/dist/llm/tools/date-resolver.js +135 -0
  158. package/dist/llm/tools/date-resolver.js.map +1 -0
  159. package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts +13 -0
  160. package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts.map +1 -0
  161. package/dist/llm/tools/ephemeral-task-manager/append-task.js +54 -0
  162. package/dist/llm/tools/ephemeral-task-manager/append-task.js.map +1 -0
  163. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts +13 -0
  164. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts.map +1 -0
  165. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js +37 -0
  166. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js.map +1 -0
  167. package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts +15 -0
  168. package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts.map +1 -0
  169. package/dist/llm/tools/ephemeral-task-manager/complete-task.js +56 -0
  170. package/dist/llm/tools/ephemeral-task-manager/complete-task.js.map +1 -0
  171. package/dist/llm/tools/ephemeral-task-manager/index.d.ts +44 -0
  172. package/dist/llm/tools/ephemeral-task-manager/index.d.ts.map +1 -0
  173. package/dist/llm/tools/ephemeral-task-manager/index.js +73 -0
  174. package/dist/llm/tools/ephemeral-task-manager/index.js.map +1 -0
  175. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts +13 -0
  176. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts.map +1 -0
  177. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js +59 -0
  178. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js.map +1 -0
  179. package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts +14 -0
  180. package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts.map +1 -0
  181. package/dist/llm/tools/ephemeral-task-manager/list-tasks.js +45 -0
  182. package/dist/llm/tools/ephemeral-task-manager/list-tasks.js.map +1 -0
  183. package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts +13 -0
  184. package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts.map +1 -0
  185. package/dist/llm/tools/ephemeral-task-manager/prepend-task.js +54 -0
  186. package/dist/llm/tools/ephemeral-task-manager/prepend-task.js.map +1 -0
  187. package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts +15 -0
  188. package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts.map +1 -0
  189. package/dist/llm/tools/ephemeral-task-manager/start-task.js +56 -0
  190. package/dist/llm/tools/ephemeral-task-manager/start-task.js.map +1 -0
  191. package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts +68 -0
  192. package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts.map +1 -0
  193. package/dist/llm/tools/ephemeral-task-manager/task-list.js +120 -0
  194. package/dist/llm/tools/ephemeral-task-manager/task-list.js.map +1 -0
  195. package/dist/llm/tools/ephemeral-task-manager/task.d.ts +21 -0
  196. package/dist/llm/tools/ephemeral-task-manager/task.d.ts.map +1 -0
  197. package/dist/llm/tools/ephemeral-task-manager/task.js +24 -0
  198. package/dist/llm/tools/ephemeral-task-manager/task.js.map +1 -0
  199. package/dist/llm/tools/file-manager.d.ts +127 -0
  200. package/dist/llm/tools/file-manager.d.ts.map +1 -0
  201. package/dist/llm/tools/file-manager.js +598 -0
  202. package/dist/llm/tools/file-manager.js.map +1 -0
  203. package/dist/llm/tools/index.d.ts +11 -0
  204. package/dist/llm/tools/index.d.ts.map +1 -0
  205. package/dist/llm/tools/index.js +27 -0
  206. package/dist/llm/tools/index.js.map +1 -0
  207. package/dist/llm/tools/tell-user.d.ts +31 -0
  208. package/dist/llm/tools/tell-user.d.ts.map +1 -0
  209. package/dist/llm/tools/tell-user.js +57 -0
  210. package/dist/llm/tools/tell-user.js.map +1 -0
  211. package/dist/llm/tools/tool-wrapper.d.ts +54 -0
  212. package/dist/llm/tools/tool-wrapper.d.ts.map +1 -0
  213. package/dist/llm/tools/tool-wrapper.js +91 -0
  214. package/dist/llm/tools/tool-wrapper.js.map +1 -0
  215. package/dist/llm/tools/tool.d.ts +70 -0
  216. package/dist/llm/tools/tool.d.ts.map +1 -0
  217. package/dist/llm/tools/tool.js +19 -0
  218. package/dist/llm/tools/tool.js.map +1 -0
  219. package/dist/llm/tools/web-search-tool.d.ts +35 -0
  220. package/dist/llm/tools/web-search-tool.d.ts.map +1 -0
  221. package/dist/llm/tools/web-search-tool.js +105 -0
  222. package/dist/llm/tools/web-search-tool.js.map +1 -0
  223. package/dist/llm/utils/image.d.ts +30 -0
  224. package/dist/llm/utils/image.d.ts.map +1 -0
  225. package/dist/llm/utils/image.js +65 -0
  226. package/dist/llm/utils/image.js.map +1 -0
  227. package/dist/tracer/eventStore.d.ts +101 -0
  228. package/dist/tracer/eventStore.d.ts.map +1 -0
  229. package/dist/tracer/eventStore.js +120 -0
  230. package/dist/tracer/eventStore.js.map +1 -0
  231. package/dist/tracer/index.d.ts +8 -0
  232. package/dist/tracer/index.d.ts.map +1 -0
  233. package/dist/tracer/index.js +24 -0
  234. package/dist/tracer/index.js.map +1 -0
  235. package/dist/tracer/nullTracer.d.ts +127 -0
  236. package/dist/tracer/nullTracer.d.ts.map +1 -0
  237. package/dist/tracer/nullTracer.js +148 -0
  238. package/dist/tracer/nullTracer.js.map +1 -0
  239. package/dist/tracer/tracerEvents.d.ts +209 -0
  240. package/dist/tracer/tracerEvents.d.ts.map +1 -0
  241. package/dist/tracer/tracerEvents.js +312 -0
  242. package/dist/tracer/tracerEvents.js.map +1 -0
  243. package/dist/tracer/tracerSystem.d.ts +149 -0
  244. package/dist/tracer/tracerSystem.d.ts.map +1 -0
  245. package/dist/tracer/tracerSystem.js +196 -0
  246. package/dist/tracer/tracerSystem.js.map +1 -0
  247. package/package.json +87 -0
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Router for directing events to appropriate agents
3
+ */
4
+ import { Event } from './event';
5
+ import { BaseAsyncAgent } from './base-async-agent';
6
+ /**
7
+ * Routes events to registered agents based on event type.
8
+ *
9
+ * The Router maintains a mapping of event constructors to agent instances,
10
+ * allowing multiple agents to subscribe to the same event type.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const router = new Router();
15
+ * router.addRoute(QuestionEvent, factCheckerAgent);
16
+ * router.addRoute(QuestionEvent, answerGeneratorAgent);
17
+ *
18
+ * const agents = router.getAgents(questionEvent);
19
+ * ```
20
+ */
21
+ export declare class Router {
22
+ private routes;
23
+ /**
24
+ * Register an agent to handle a specific event type.
25
+ *
26
+ * @param eventType - The event type name to route
27
+ * @param agent - The agent that should handle this event type
28
+ */
29
+ addRoute(eventType: string, agent: BaseAsyncAgent): void;
30
+ /**
31
+ * Get all agents registered to handle an event's type.
32
+ *
33
+ * @param event - The event to route
34
+ * @returns Array of agents that handle this event type
35
+ */
36
+ getAgents(event: Event & {
37
+ type?: string;
38
+ }): BaseAsyncAgent[];
39
+ /**
40
+ * Clear all routes from the router.
41
+ */
42
+ clear(): void;
43
+ }
44
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/agents/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAA4C;IAE1D;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAMxD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,EAAE;IAK7D;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * Router for directing events to appropriate agents
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Router = void 0;
7
+ /**
8
+ * Routes events to registered agents based on event type.
9
+ *
10
+ * The Router maintains a mapping of event constructors to agent instances,
11
+ * allowing multiple agents to subscribe to the same event type.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const router = new Router();
16
+ * router.addRoute(QuestionEvent, factCheckerAgent);
17
+ * router.addRoute(QuestionEvent, answerGeneratorAgent);
18
+ *
19
+ * const agents = router.getAgents(questionEvent);
20
+ * ```
21
+ */
22
+ class Router {
23
+ routes = new Map();
24
+ /**
25
+ * Register an agent to handle a specific event type.
26
+ *
27
+ * @param eventType - The event type name to route
28
+ * @param agent - The agent that should handle this event type
29
+ */
30
+ addRoute(eventType, agent) {
31
+ const agents = this.routes.get(eventType) || [];
32
+ agents.push(agent);
33
+ this.routes.set(eventType, agents);
34
+ }
35
+ /**
36
+ * Get all agents registered to handle an event's type.
37
+ *
38
+ * @param event - The event to route
39
+ * @returns Array of agents that handle this event type
40
+ */
41
+ getAgents(event) {
42
+ const eventType = event.type || event.constructor.name;
43
+ return this.routes.get(eventType) || [];
44
+ }
45
+ /**
46
+ * Clear all routes from the router.
47
+ */
48
+ clear() {
49
+ this.routes.clear();
50
+ }
51
+ }
52
+ exports.Router = Router;
53
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/agents/router.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH;;;;;;;;;;;;;;GAcG;AACH,MAAa,MAAM;IACT,MAAM,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE1D;;;;;OAKG;IACH,QAAQ,CAAC,SAAiB,EAAE,KAAqB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAgC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAhCD,wBAgCC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * A simple declarative agent implementation that leverages events and async patterns.
3
+ * This implementation provides a declarative approach to problem-solving with LLMs.
4
+ */
5
+ import { LlmBroker } from '../llm/broker';
6
+ import { LlmTool } from '../llm/tools/tool';
7
+ /**
8
+ * Represents the state of a problem-solving process.
9
+ */
10
+ export interface GoalState {
11
+ /** The problem or goal to solve */
12
+ goal: string;
13
+ /** Current iteration count */
14
+ iteration: number;
15
+ /** Maximum allowed iterations */
16
+ maxIterations: number;
17
+ /** The solution, if found */
18
+ solution: string | null;
19
+ /** Whether the problem-solving process is complete */
20
+ isComplete: boolean;
21
+ }
22
+ /**
23
+ * Base class for solver events.
24
+ */
25
+ export interface SolverEvent {
26
+ /** Current state of the problem-solving process */
27
+ state: GoalState;
28
+ }
29
+ /**
30
+ * Event triggered when a goal is submitted for solving.
31
+ */
32
+ export interface GoalSubmittedEvent extends SolverEvent {
33
+ type: 'goal-submitted';
34
+ }
35
+ /**
36
+ * Event triggered when an iteration of the problem-solving process is completed.
37
+ */
38
+ export interface IterationCompletedEvent extends SolverEvent {
39
+ type: 'iteration-completed';
40
+ /** The response from the LLM for this iteration */
41
+ response: string;
42
+ }
43
+ /**
44
+ * Event triggered when a goal is successfully achieved.
45
+ */
46
+ export interface GoalAchievedEvent extends SolverEvent {
47
+ type: 'goal-achieved';
48
+ }
49
+ /**
50
+ * Event triggered when a goal cannot be solved.
51
+ */
52
+ export interface GoalFailedEvent extends SolverEvent {
53
+ type: 'goal-failed';
54
+ }
55
+ /**
56
+ * Event triggered when the problem-solving process times out.
57
+ */
58
+ export interface TimeoutEvent extends SolverEvent {
59
+ type: 'timeout';
60
+ }
61
+ /**
62
+ * Union type of all solver events
63
+ */
64
+ export type AnySolverEvent = GoalSubmittedEvent | IterationCompletedEvent | GoalAchievedEvent | GoalFailedEvent | TimeoutEvent;
65
+ /**
66
+ * Event handler function type
67
+ */
68
+ type EventHandler<T extends AnySolverEvent> = (event: T) => void | Promise<void>;
69
+ /**
70
+ * Unsubscribe function returned by subscribe
71
+ */
72
+ type UnsubscribeFn = () => void;
73
+ /**
74
+ * A simple event emitter that allows subscribing to and emitting events.
75
+ */
76
+ export declare class EventEmitter {
77
+ private subscribers;
78
+ /**
79
+ * Subscribe to an event type.
80
+ *
81
+ * @param eventType - The type of event to subscribe to
82
+ * @param callback - The callback function to be called when an event of the specified type is emitted
83
+ * @returns A function that can be called to unsubscribe from the event
84
+ */
85
+ subscribe<T extends AnySolverEvent>(eventType: T['type'], callback: EventHandler<T>): UnsubscribeFn;
86
+ /**
87
+ * Emit an event to all subscribers.
88
+ *
89
+ * @param event - The event to emit to subscribers
90
+ */
91
+ emit(event: AnySolverEvent): void;
92
+ }
93
+ /**
94
+ * An agent that recursively attempts to solve a problem using available tools.
95
+ *
96
+ * This agent uses an event-driven approach to manage the problem-solving process.
97
+ * It will continue attempting to solve the problem until it either succeeds,
98
+ * fails explicitly, or reaches the maximum number of iterations.
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const broker = new LlmBroker('qwen3:32b', new OllamaGateway());
103
+ * const agent = new SimpleRecursiveAgent(broker, [new DateResolverTool()], 5);
104
+ *
105
+ * agent.emitter.subscribe('iteration-completed', (event) => {
106
+ * console.log(`Iteration ${event.state.iteration}: ${event.response}`);
107
+ * });
108
+ *
109
+ * const solution = await agent.solve('What day is next Friday?');
110
+ * console.log(solution);
111
+ * ```
112
+ */
113
+ export declare class SimpleRecursiveAgent {
114
+ /** The event emitter used to manage events */
115
+ readonly emitter: EventEmitter;
116
+ private readonly maxIterations;
117
+ private readonly availableTools;
118
+ private readonly chat;
119
+ /**
120
+ * Initialize the SimpleRecursiveAgent.
121
+ *
122
+ * @param llm - The language model broker to use for generating responses
123
+ * @param availableTools - List of tools that can be used to solve the problem
124
+ * @param maxIterations - The maximum number of iterations to perform (default: 5)
125
+ * @param systemPrompt - Optional custom system prompt
126
+ */
127
+ constructor(llm: LlmBroker, availableTools?: LlmTool[], maxIterations?: number, systemPrompt?: string);
128
+ /**
129
+ * Solve a problem asynchronously.
130
+ *
131
+ * @param problem - The problem to solve
132
+ * @returns The solution to the problem
133
+ * @throws {TimeoutError} If the solution cannot be found within 300 seconds
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const solution = await agent.solve('Calculate the factorial of 5');
138
+ * console.log(solution);
139
+ * ```
140
+ */
141
+ solve(problem: string): Promise<string>;
142
+ /**
143
+ * Race a promise with a timeout.
144
+ *
145
+ * @param promise - The promise to race
146
+ * @param timeoutMs - Timeout in milliseconds
147
+ * @param state - Current goal state for timeout event
148
+ * @returns The result of the promise or throws TimeoutError
149
+ */
150
+ private raceWithTimeout;
151
+ /**
152
+ * Handle a problem submitted event.
153
+ *
154
+ * @param event - The problem submitted event to handle
155
+ */
156
+ private handleProblemSubmitted;
157
+ /**
158
+ * Handle an iteration completed event.
159
+ *
160
+ * @param event - The iteration completed event to handle
161
+ */
162
+ private handleIterationCompleted;
163
+ /**
164
+ * Process a single iteration of the problem-solving process.
165
+ *
166
+ * @param state - The current state of the problem-solving process
167
+ */
168
+ private processIteration;
169
+ /**
170
+ * Generate a response using the ChatSession.
171
+ *
172
+ * @param prompt - The prompt to send to the ChatSession
173
+ * @returns The generated response
174
+ */
175
+ private generate;
176
+ /**
177
+ * Clean up resources when done with the agent.
178
+ */
179
+ dispose(): void;
180
+ }
181
+ export {};
182
+ //# sourceMappingURL=simple-recursive-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-recursive-agent.d.ts","sourceRoot":"","sources":["../../src/agents/simple-recursive-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,IAAI,EAAE,qBAAqB,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAEjB;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF;;GAEG;AACH,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAEhC;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAA0D;IAE7E;;;;;;OAMG;IACH,SAAS,CAAC,CAAC,SAAS,cAAc,EAChC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,aAAa;IAqBhB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAelC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,oBAAoB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IAEnC;;;;;;;OAOG;gBAED,GAAG,EAAE,SAAS,EACd,cAAc,GAAE,OAAO,EAAO,EAC9B,aAAa,GAAE,MAAU,EACzB,YAAY,CAAC,EAAE,MAAM;IAqBvB;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C7C;;;;;;;OAOG;YACW,eAAe;IA0B7B;;;;OAIG;YACW,sBAAsB;IAKpC;;;;OAIG;YACW,wBAAwB;IA8BtC;;;;OAIG;YACW,gBAAgB;IAuB9B;;;;;OAKG;YACW,QAAQ;IAItB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ /**
3
+ * A simple declarative agent implementation that leverages events and async patterns.
4
+ * This implementation provides a declarative approach to problem-solving with LLMs.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SimpleRecursiveAgent = exports.EventEmitter = void 0;
8
+ const chat_session_1 = require("../llm/chat-session");
9
+ const error_1 = require("../error");
10
+ /**
11
+ * A simple event emitter that allows subscribing to and emitting events.
12
+ */
13
+ class EventEmitter {
14
+ subscribers = new Map();
15
+ /**
16
+ * Subscribe to an event type.
17
+ *
18
+ * @param eventType - The type of event to subscribe to
19
+ * @param callback - The callback function to be called when an event of the specified type is emitted
20
+ * @returns A function that can be called to unsubscribe from the event
21
+ */
22
+ subscribe(eventType, callback) {
23
+ if (!this.subscribers.has(eventType)) {
24
+ this.subscribers.set(eventType, []);
25
+ }
26
+ const handlers = this.subscribers.get(eventType);
27
+ if (!handlers) {
28
+ throw new Error(`Failed to get handlers for event type: ${eventType}`);
29
+ }
30
+ handlers.push(callback);
31
+ // Return unsubscribe function
32
+ return () => {
33
+ const index = handlers.indexOf(callback);
34
+ if (index > -1) {
35
+ handlers.splice(index, 1);
36
+ }
37
+ };
38
+ }
39
+ /**
40
+ * Emit an event to all subscribers.
41
+ *
42
+ * @param event - The event to emit to subscribers
43
+ */
44
+ emit(event) {
45
+ const handlers = this.subscribers.get(event.type);
46
+ if (handlers) {
47
+ for (const handler of handlers) {
48
+ const result = handler(event);
49
+ // If the handler returns a promise, schedule it without blocking
50
+ if (result instanceof Promise) {
51
+ // Handle promise rejection to prevent unhandled promise rejections
52
+ result.catch((error) => {
53
+ console.error('Error in event handler:', error);
54
+ });
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ exports.EventEmitter = EventEmitter;
61
+ /**
62
+ * An agent that recursively attempts to solve a problem using available tools.
63
+ *
64
+ * This agent uses an event-driven approach to manage the problem-solving process.
65
+ * It will continue attempting to solve the problem until it either succeeds,
66
+ * fails explicitly, or reaches the maximum number of iterations.
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const broker = new LlmBroker('qwen3:32b', new OllamaGateway());
71
+ * const agent = new SimpleRecursiveAgent(broker, [new DateResolverTool()], 5);
72
+ *
73
+ * agent.emitter.subscribe('iteration-completed', (event) => {
74
+ * console.log(`Iteration ${event.state.iteration}: ${event.response}`);
75
+ * });
76
+ *
77
+ * const solution = await agent.solve('What day is next Friday?');
78
+ * console.log(solution);
79
+ * ```
80
+ */
81
+ class SimpleRecursiveAgent {
82
+ /** The event emitter used to manage events */
83
+ emitter;
84
+ maxIterations;
85
+ availableTools;
86
+ chat;
87
+ /**
88
+ * Initialize the SimpleRecursiveAgent.
89
+ *
90
+ * @param llm - The language model broker to use for generating responses
91
+ * @param availableTools - List of tools that can be used to solve the problem
92
+ * @param maxIterations - The maximum number of iterations to perform (default: 5)
93
+ * @param systemPrompt - Optional custom system prompt
94
+ */
95
+ constructor(llm, availableTools = [], maxIterations = 5, systemPrompt) {
96
+ this.maxIterations = maxIterations;
97
+ this.availableTools = availableTools;
98
+ this.emitter = new EventEmitter();
99
+ // Initialize the chat session
100
+ this.chat = new chat_session_1.ChatSession(llm, {
101
+ systemPrompt: systemPrompt ||
102
+ 'You are a problem-solving assistant that can solve complex problems step by step. ' +
103
+ 'You analyze problems, break them down into smaller parts, and solve them systematically. ' +
104
+ 'If you cannot solve a problem completely in one step, you make progress and identify what to do next.',
105
+ tools: this.availableTools,
106
+ });
107
+ // Set up event handlers
108
+ this.emitter.subscribe('goal-submitted', this.handleProblemSubmitted.bind(this));
109
+ this.emitter.subscribe('iteration-completed', this.handleIterationCompleted.bind(this));
110
+ }
111
+ /**
112
+ * Solve a problem asynchronously.
113
+ *
114
+ * @param problem - The problem to solve
115
+ * @returns The solution to the problem
116
+ * @throws {TimeoutError} If the solution cannot be found within 300 seconds
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * const solution = await agent.solve('Calculate the factorial of 5');
121
+ * console.log(solution);
122
+ * ```
123
+ */
124
+ async solve(problem) {
125
+ // Create a promise that resolves when the solution is ready
126
+ let resolveSolution;
127
+ const solutionPromise = new Promise((resolve) => {
128
+ resolveSolution = resolve;
129
+ });
130
+ // Create the initial problem state
131
+ const state = {
132
+ goal: problem,
133
+ iteration: 0,
134
+ maxIterations: this.maxIterations,
135
+ solution: null,
136
+ isComplete: false,
137
+ };
138
+ // Define handlers for completion events
139
+ const handleSolutionEvent = (event) => {
140
+ if (event.state.solution !== null) {
141
+ resolveSolution(event.state.solution);
142
+ }
143
+ };
144
+ // Subscribe to completion events
145
+ const unsubscribeAchieved = this.emitter.subscribe('goal-achieved', handleSolutionEvent);
146
+ const unsubscribeFailed = this.emitter.subscribe('goal-failed', handleSolutionEvent);
147
+ const unsubscribeTimeout = this.emitter.subscribe('timeout', handleSolutionEvent);
148
+ // Start the solving process
149
+ this.emitter.emit({ type: 'goal-submitted', state });
150
+ // Wait for the solution or timeout
151
+ try {
152
+ const solution = await this.raceWithTimeout(solutionPromise, 300000, state); // 300 seconds = 5 minutes
153
+ return solution;
154
+ }
155
+ finally {
156
+ // Clean up subscriptions
157
+ unsubscribeAchieved();
158
+ unsubscribeFailed();
159
+ unsubscribeTimeout();
160
+ }
161
+ }
162
+ /**
163
+ * Race a promise with a timeout.
164
+ *
165
+ * @param promise - The promise to race
166
+ * @param timeoutMs - Timeout in milliseconds
167
+ * @param state - Current goal state for timeout event
168
+ * @returns The result of the promise or throws TimeoutError
169
+ */
170
+ async raceWithTimeout(promise, timeoutMs, state) {
171
+ let timeoutId;
172
+ const timeoutPromise = new Promise((_, reject) => {
173
+ timeoutId = setTimeout(() => {
174
+ const timeoutMessage = `Timeout: Could not solve the problem within ${timeoutMs / 1000} seconds.`;
175
+ state.solution = timeoutMessage;
176
+ state.isComplete = true;
177
+ this.emitter.emit({ type: 'timeout', state });
178
+ reject(new error_1.TimeoutError(timeoutMessage));
179
+ }, timeoutMs);
180
+ });
181
+ try {
182
+ return await Promise.race([promise, timeoutPromise]);
183
+ }
184
+ finally {
185
+ if (timeoutId !== undefined) {
186
+ clearTimeout(timeoutId);
187
+ }
188
+ }
189
+ }
190
+ /**
191
+ * Handle a problem submitted event.
192
+ *
193
+ * @param event - The problem submitted event to handle
194
+ */
195
+ async handleProblemSubmitted(event) {
196
+ // Start the first iteration
197
+ await this.processIteration(event.state);
198
+ }
199
+ /**
200
+ * Handle an iteration completed event.
201
+ *
202
+ * @param event - The iteration completed event to handle
203
+ */
204
+ async handleIterationCompleted(event) {
205
+ const state = event.state;
206
+ const response = event.response;
207
+ // Check if the task failed or succeeded
208
+ if (response.toLowerCase().includes('fail')) {
209
+ state.solution = `Failed to solve after ${state.iteration} iterations:\n${response}`;
210
+ state.isComplete = true;
211
+ this.emitter.emit({ type: 'goal-failed', state });
212
+ return;
213
+ }
214
+ else if (response.toLowerCase().includes('done')) {
215
+ state.solution = response;
216
+ state.isComplete = true;
217
+ this.emitter.emit({ type: 'goal-achieved', state });
218
+ return;
219
+ }
220
+ // Check if we've reached the maximum number of iterations
221
+ if (state.iteration >= state.maxIterations) {
222
+ state.solution = `Best solution after ${state.maxIterations} iterations:\n${response}`;
223
+ state.isComplete = true;
224
+ this.emitter.emit({ type: 'goal-achieved', state });
225
+ return;
226
+ }
227
+ // If the problem is not solved and we haven't reached maxIterations, continue with next iteration
228
+ // Schedule the next iteration asynchronously to allow all event handlers to complete first
229
+ await Promise.resolve().then(() => this.processIteration(state));
230
+ }
231
+ /**
232
+ * Process a single iteration of the problem-solving process.
233
+ *
234
+ * @param state - The current state of the problem-solving process
235
+ */
236
+ async processIteration(state) {
237
+ // Increment the iteration counter
238
+ state.iteration += 1;
239
+ // Create a prompt for the LLM
240
+ const prompt = `
241
+ Given the user request:
242
+ ${state.goal}
243
+
244
+ Use the tools at your disposal to act on their request.
245
+ You may wish to create a step-by-step plan for more complicated requests.
246
+
247
+ If you cannot provide an answer, say only "FAIL".
248
+ If you have the answer, say only "DONE".
249
+ `;
250
+ // Generate a response using the LLM
251
+ const response = await this.generate(prompt);
252
+ // Emit an event with the response
253
+ this.emitter.emit({ type: 'iteration-completed', state, response });
254
+ }
255
+ /**
256
+ * Generate a response using the ChatSession.
257
+ *
258
+ * @param prompt - The prompt to send to the ChatSession
259
+ * @returns The generated response
260
+ */
261
+ async generate(prompt) {
262
+ return await this.chat.send(prompt);
263
+ }
264
+ /**
265
+ * Clean up resources when done with the agent.
266
+ */
267
+ dispose() {
268
+ this.chat.dispose();
269
+ }
270
+ }
271
+ exports.SimpleRecursiveAgent = SimpleRecursiveAgent;
272
+ //# sourceMappingURL=simple-recursive-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-recursive-agent.js","sourceRoot":"","sources":["../../src/agents/simple-recursive-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Context management for agents
3
+ */
4
+ export * from './shared-working-memory';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Context management for agents
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./shared-working-memory"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0DAAwC"}