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,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenizerGateway = void 0;
4
+ const tiktoken_1 = require("tiktoken");
5
+ /**
6
+ * Gateway for tokenizing and detokenizing text using tiktoken.
7
+ *
8
+ * This gateway provides encoding and decoding functionality for text,
9
+ * which is useful for:
10
+ * - Counting tokens to manage context windows
11
+ * - Understanding token usage for cost estimation
12
+ * - Debugging token-related issues
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const tokenizer = new TokenizerGateway();
17
+ * const tokens = tokenizer.encode("Hello, world!");
18
+ * const text = tokenizer.decode(tokens);
19
+ * ```
20
+ */
21
+ class TokenizerGateway {
22
+ tokenizer;
23
+ /**
24
+ * Creates a new TokenizerGateway instance.
25
+ *
26
+ * @param model - The encoding model to use. Defaults to "cl100k_base" which is used by GPT-4 and GPT-3.5-turbo.
27
+ * Other options include "p50k_base" (GPT-3), "r50k_base" (older models), etc.
28
+ */
29
+ constructor(model = 'cl100k_base') {
30
+ this.tokenizer = (0, tiktoken_1.get_encoding)(model);
31
+ }
32
+ /**
33
+ * Encodes text into tokens.
34
+ *
35
+ * @param text - The text to encode
36
+ * @returns An array of token IDs
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const tokenizer = new TokenizerGateway();
41
+ * const tokens = tokenizer.encode("Hello, world!");
42
+ * console.log(`Token count: ${tokens.length}`);
43
+ * ```
44
+ */
45
+ encode(text) {
46
+ return Array.from(this.tokenizer.encode(text));
47
+ }
48
+ /**
49
+ * Decodes tokens back into text.
50
+ *
51
+ * @param tokens - The array of token IDs to decode
52
+ * @returns The decoded text
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const tokenizer = new TokenizerGateway();
57
+ * const tokens = [9906, 11, 1917, 0];
58
+ * const text = tokenizer.decode(tokens);
59
+ * console.log(text); // "Hello, world!"
60
+ * ```
61
+ */
62
+ decode(tokens) {
63
+ const decoder = new TextDecoder();
64
+ return decoder.decode(this.tokenizer.decode(new Uint32Array(tokens)));
65
+ }
66
+ /**
67
+ * Frees the tokenizer resources.
68
+ * Call this when you're done using the tokenizer to prevent memory leaks.
69
+ */
70
+ free() {
71
+ this.tokenizer.free();
72
+ }
73
+ }
74
+ exports.TokenizerGateway = TokenizerGateway;
75
+ //# sourceMappingURL=tokenizerGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizerGateway.js","sourceRoot":"","sources":["../../../src/llm/gateways/tokenizerGateway.ts"],"names":[],"mappings":";;;AAAA,uCAAkD;AAElD;;;;;;;;;;;;;;;GAeG;AACH,MAAa,gBAAgB;IACnB,SAAS,CAAW;IAE5B;;;;;OAKG;IACH,YAAY,QAAgB,aAAa;QACvC,IAAI,CAAC,SAAS,GAAG,IAAA,uBAAY,EAAC,KAA2D,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAY;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,MAAgB;QACrB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CACF;AAxDD,4CAwDC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * LLM module exports
3
+ */
4
+ export * from './models';
5
+ export * from './gateway';
6
+ export * from './broker';
7
+ export * from './chat-session';
8
+ export * from './tools';
9
+ export * from './gateways';
10
+ export * from './agent';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /**
3
+ * LLM module exports
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("./models"), exports);
21
+ __exportStar(require("./gateway"), exports);
22
+ __exportStar(require("./broker"), exports);
23
+ __exportStar(require("./chat-session"), exports);
24
+ __exportStar(require("./tools"), exports);
25
+ __exportStar(require("./gateways"), exports);
26
+ __exportStar(require("./agent"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,4CAA0B;AAC1B,2CAAyB;AACzB,iDAA+B;AAC/B,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Core data models for LLM interactions
3
+ */
4
+ /**
5
+ * Role of a message in a conversation
6
+ */
7
+ export declare enum MessageRole {
8
+ System = "system",
9
+ User = "user",
10
+ Assistant = "assistant",
11
+ Tool = "tool"
12
+ }
13
+ /**
14
+ * Content item in a message (text or image)
15
+ */
16
+ export interface ContentItem {
17
+ type: 'text' | 'image_url';
18
+ text?: string;
19
+ image_url?: {
20
+ url: string;
21
+ };
22
+ }
23
+ /**
24
+ * Tool call request from the LLM
25
+ */
26
+ export interface ToolCall {
27
+ id: string;
28
+ type: 'function';
29
+ function: {
30
+ name: string;
31
+ arguments: string;
32
+ };
33
+ }
34
+ /**
35
+ * Message in a conversation with an LLM
36
+ */
37
+ export interface LlmMessage {
38
+ role: MessageRole;
39
+ content: string | ContentItem[];
40
+ name?: string;
41
+ tool_calls?: ToolCall[];
42
+ tool_call_id?: string;
43
+ }
44
+ /**
45
+ * Helper functions for creating messages
46
+ */
47
+ export declare class Message {
48
+ static system(content: string): LlmMessage;
49
+ static user(content: string): LlmMessage;
50
+ static assistant(content: string, toolCalls?: ToolCall[]): LlmMessage;
51
+ static tool(content: string, toolCallId: string, name: string): LlmMessage;
52
+ }
53
+ /**
54
+ * Configuration for LLM completion requests
55
+ */
56
+ export interface CompletionConfig {
57
+ temperature?: number;
58
+ maxTokens?: number;
59
+ numPredict?: number;
60
+ topP?: number;
61
+ topK?: number;
62
+ numCtx?: number;
63
+ frequencyPenalty?: number;
64
+ presencePenalty?: number;
65
+ stop?: string[];
66
+ stream?: boolean;
67
+ responseFormat?: {
68
+ type: 'json_object' | 'text';
69
+ schema?: Record<string, unknown>;
70
+ };
71
+ }
72
+ /**
73
+ * Response from an LLM gateway
74
+ */
75
+ export interface GatewayResponse {
76
+ content: string;
77
+ toolCalls?: ToolCall[];
78
+ finishReason?: 'stop' | 'length' | 'tool_calls' | 'content_filter';
79
+ usage?: {
80
+ promptTokens: number;
81
+ completionTokens: number;
82
+ totalTokens: number;
83
+ };
84
+ model?: string;
85
+ }
86
+ /**
87
+ * Stream chunk from an LLM gateway
88
+ */
89
+ export interface StreamChunk {
90
+ content?: string;
91
+ toolCalls?: ToolCall[];
92
+ finishReason?: 'stop' | 'length' | 'tool_calls' | 'content_filter';
93
+ done: boolean;
94
+ }
95
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/llm/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAO1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAOxC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,UAAU;IAQrE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;CAQ3E;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACnE,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACnE,IAAI,EAAE,OAAO,CAAC;CACf"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Core data models for LLM interactions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Message = exports.MessageRole = void 0;
7
+ /**
8
+ * Role of a message in a conversation
9
+ */
10
+ var MessageRole;
11
+ (function (MessageRole) {
12
+ MessageRole["System"] = "system";
13
+ MessageRole["User"] = "user";
14
+ MessageRole["Assistant"] = "assistant";
15
+ MessageRole["Tool"] = "tool";
16
+ })(MessageRole || (exports.MessageRole = MessageRole = {}));
17
+ /**
18
+ * Helper functions for creating messages
19
+ */
20
+ class Message {
21
+ static system(content) {
22
+ return {
23
+ role: MessageRole.System,
24
+ content,
25
+ };
26
+ }
27
+ static user(content) {
28
+ return {
29
+ role: MessageRole.User,
30
+ content,
31
+ };
32
+ }
33
+ static assistant(content, toolCalls) {
34
+ return {
35
+ role: MessageRole.Assistant,
36
+ content,
37
+ tool_calls: toolCalls,
38
+ };
39
+ }
40
+ static tool(content, toolCallId, name) {
41
+ return {
42
+ role: MessageRole.Tool,
43
+ content,
44
+ tool_call_id: toolCallId,
45
+ name,
46
+ };
47
+ }
48
+ }
49
+ exports.Message = Message;
50
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/llm/models.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;GAEG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,4BAAa,CAAA;AACf,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAoCD;;GAEG;AACH,MAAa,OAAO;IAClB,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,MAAM;YACxB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACzB,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,SAAsB;QACtD,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,SAAS;YAC3B,OAAO;YACP,UAAU,EAAE,SAAS;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,UAAkB,EAAE,IAAY;QAC3D,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO;YACP,YAAY,EAAE,UAAU;YACxB,IAAI;SACL,CAAC;IACJ,CAAC;CACF;AA/BD,0BA+BC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Ask user tool - prompts user for input when the LLM needs help
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from './tool';
5
+ import { Result } from '../../error';
6
+ /**
7
+ * Tool that prompts the user for input when the LLM needs help or information.
8
+ *
9
+ * This tool allows the LLM to ask questions or request assistance from the user
10
+ * during problem-solving. It displays a message and waits for user input via stdin.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const tool = new AskUserTool();
15
+ * const result = await tool.run({
16
+ * user_request: "What is your preferred programming language?"
17
+ * });
18
+ * // Displays:
19
+ * //
20
+ * //
21
+ * //
22
+ * // I NEED YOUR HELP!
23
+ * // What is your preferred programming language?
24
+ * // Your response:
25
+ * // (waits for user input)
26
+ * ```
27
+ */
28
+ export declare class AskUserTool extends BaseTool {
29
+ run(args: ToolArgs): Promise<Result<ToolResult, Error>>;
30
+ descriptor(): ToolDescriptor;
31
+ /**
32
+ * Prompt the user for input via readline.
33
+ *
34
+ * @param prompt - The prompt text to display
35
+ * @returns Promise resolving to the user's input
36
+ */
37
+ private promptUser;
38
+ }
39
+ //# sourceMappingURL=ask-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../../src/llm/tools/ask-user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EAAM,MAAM,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACjC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAU7D,UAAU,IAAI,cAAc;IAsB5B;;;;;OAKG;YACW,UAAU;CAazB"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /**
3
+ * Ask user tool - prompts user for input when the LLM needs help
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AskUserTool = void 0;
40
+ const tool_1 = require("./tool");
41
+ const error_1 = require("../../error");
42
+ const readline = __importStar(require("readline"));
43
+ /**
44
+ * Tool that prompts the user for input when the LLM needs help or information.
45
+ *
46
+ * This tool allows the LLM to ask questions or request assistance from the user
47
+ * during problem-solving. It displays a message and waits for user input via stdin.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const tool = new AskUserTool();
52
+ * const result = await tool.run({
53
+ * user_request: "What is your preferred programming language?"
54
+ * });
55
+ * // Displays:
56
+ * //
57
+ * //
58
+ * //
59
+ * // I NEED YOUR HELP!
60
+ * // What is your preferred programming language?
61
+ * // Your response:
62
+ * // (waits for user input)
63
+ * ```
64
+ */
65
+ class AskUserTool extends tool_1.BaseTool {
66
+ async run(args) {
67
+ const userRequest = args.user_request || '';
68
+ console.log(`\n\n\nI NEED YOUR HELP!\n${userRequest}`);
69
+ const response = await this.promptUser('Your response: ');
70
+ return (0, error_1.Ok)(response);
71
+ }
72
+ descriptor() {
73
+ return {
74
+ type: 'function',
75
+ function: {
76
+ name: 'ask_user',
77
+ description: 'If you do not know how to proceed, ask the user a question, or ask them for help or to do something for you.',
78
+ parameters: {
79
+ type: 'object',
80
+ properties: {
81
+ user_request: {
82
+ type: 'string',
83
+ description: 'The question you need the user to answer, or the task you need the user to do for you.',
84
+ },
85
+ },
86
+ required: ['user_request'],
87
+ },
88
+ },
89
+ };
90
+ }
91
+ /**
92
+ * Prompt the user for input via readline.
93
+ *
94
+ * @param prompt - The prompt text to display
95
+ * @returns Promise resolving to the user's input
96
+ */
97
+ async promptUser(prompt) {
98
+ const rl = readline.createInterface({
99
+ input: process.stdin,
100
+ output: process.stdout,
101
+ });
102
+ return new Promise((resolve) => {
103
+ rl.question(prompt, (answer) => {
104
+ rl.close();
105
+ resolve(answer);
106
+ });
107
+ });
108
+ }
109
+ }
110
+ exports.AskUserTool = AskUserTool;
111
+ //# sourceMappingURL=ask-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../../src/llm/tools/ask-user.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iCAAwE;AACxE,uCAAyC;AACzC,mDAAqC;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,WAAY,SAAQ,eAAQ;IACvC,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,MAAM,WAAW,GAAI,IAAI,CAAC,YAAuB,IAAI,EAAE,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAE1D,OAAO,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,UAAU;gBAChB,WAAW,EACT,8GAA8G;gBAChH,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,YAAY,EAAE;4BACZ,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,wFAAwF;yBAC3F;qBACF;oBACD,QAAQ,EAAE,CAAC,cAAc,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAC,MAAc;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApDD,kCAoDC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Current datetime tool - returns the current date and time
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from './tool';
5
+ import { Result } from '../../error';
6
+ /**
7
+ * Tool that returns the current date and time
8
+ */
9
+ export declare class CurrentDatetimeTool extends BaseTool {
10
+ run(args: ToolArgs): Promise<Result<ToolResult, Error>>;
11
+ descriptor(): ToolDescriptor;
12
+ /**
13
+ * Format a date using Python strftime-style format codes
14
+ */
15
+ private formatDateTime;
16
+ }
17
+ //# sourceMappingURL=current-datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-datetime.d.ts","sourceRoot":"","sources":["../../../src/llm/tools/current-datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EAAM,MAAM,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IACzC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAgB7D,UAAU,IAAI,cAAc;IAsB5B;;OAEG;IACH,OAAO,CAAC,cAAc;CA+BvB"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /**
3
+ * Current datetime tool - returns the current date and time
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CurrentDatetimeTool = void 0;
7
+ const tool_1 = require("./tool");
8
+ const error_1 = require("../../error");
9
+ /**
10
+ * Tool that returns the current date and time
11
+ */
12
+ class CurrentDatetimeTool extends tool_1.BaseTool {
13
+ async run(args) {
14
+ const formatString = args.format_string || '%Y-%m-%d %H:%M:%S';
15
+ const now = new Date();
16
+ // Convert Python strftime format to JavaScript Date format
17
+ const formattedTime = this.formatDateTime(now, formatString);
18
+ const timestamp = Math.floor(now.getTime() / 1000);
19
+ const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
20
+ return (0, error_1.Ok)({
21
+ current_datetime: formattedTime,
22
+ timestamp: timestamp,
23
+ timezone: timezone,
24
+ });
25
+ }
26
+ descriptor() {
27
+ return {
28
+ type: 'function',
29
+ function: {
30
+ name: 'get_current_datetime',
31
+ description: 'Get the current date and time. Useful when you need to know the current time or date.',
32
+ parameters: {
33
+ type: 'object',
34
+ properties: {
35
+ format_string: {
36
+ type: 'string',
37
+ description: "Format string for the datetime (e.g., '%Y-%m-%d %H:%M:%S', '%A, %B %d, %Y'). Default is ISO format.",
38
+ },
39
+ },
40
+ required: [],
41
+ },
42
+ },
43
+ };
44
+ }
45
+ /**
46
+ * Format a date using Python strftime-style format codes
47
+ */
48
+ formatDateTime(date, format) {
49
+ const pad = (n, width = 2) => String(n).padStart(width, '0');
50
+ const replacements = {
51
+ '%Y': String(date.getFullYear()),
52
+ '%y': String(date.getFullYear()).slice(-2),
53
+ '%m': pad(date.getMonth() + 1),
54
+ '%d': pad(date.getDate()),
55
+ '%H': pad(date.getHours()),
56
+ '%I': pad(date.getHours() % 12 || 12),
57
+ '%M': pad(date.getMinutes()),
58
+ '%S': pad(date.getSeconds()),
59
+ '%p': date.getHours() >= 12 ? 'PM' : 'AM',
60
+ '%A': date.toLocaleDateString('en-US', { weekday: 'long' }),
61
+ '%a': date.toLocaleDateString('en-US', { weekday: 'short' }),
62
+ '%B': date.toLocaleDateString('en-US', { month: 'long' }),
63
+ '%b': date.toLocaleDateString('en-US', { month: 'short' }),
64
+ '%w': String(date.getDay()),
65
+ '%j': String(Math.floor((date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000)),
66
+ };
67
+ let result = format;
68
+ for (const [code, value] of Object.entries(replacements)) {
69
+ // eslint-disable-next-line security/detect-non-literal-regexp -- Format codes are from controlled set
70
+ result = result.replace(new RegExp(code, 'g'), value);
71
+ }
72
+ return result;
73
+ }
74
+ }
75
+ exports.CurrentDatetimeTool = CurrentDatetimeTool;
76
+ //# sourceMappingURL=current-datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-datetime.js","sourceRoot":"","sources":["../../../src/llm/tools/current-datetime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Date resolver tool - resolves relative date references like "next Friday"
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from './tool';
5
+ import { Result } from '../../error';
6
+ /**
7
+ * Tool that resolves relative date references
8
+ */
9
+ export declare class DateResolverTool extends BaseTool {
10
+ run(args: ToolArgs): Promise<Result<ToolResult, Error>>;
11
+ descriptor(): ToolDescriptor;
12
+ private resolveDate;
13
+ private getWeekdayNumber;
14
+ private getNextWeekday;
15
+ private getLastWeekday;
16
+ }
17
+ //# sourceMappingURL=date-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-resolver.d.ts","sourceRoot":"","sources":["../../../src/llm/tools/date-resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EAAM,MAAM,EAAa,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IACtC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IA0B7D,UAAU,IAAI,cAAc;IAqB5B,OAAO,CAAC,WAAW;IA+DnB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;CAYvB"}