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,135 @@
1
+ "use strict";
2
+ /**
3
+ * Date resolver tool - resolves relative date references like "next Friday"
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DateResolverTool = void 0;
7
+ const tool_1 = require("./tool");
8
+ const error_1 = require("../../error");
9
+ /**
10
+ * Tool that resolves relative date references
11
+ */
12
+ class DateResolverTool extends tool_1.BaseTool {
13
+ async run(args) {
14
+ try {
15
+ const dateStr = args.date_string;
16
+ if (!dateStr) {
17
+ return (0, error_1.Ok)({ error: 'date_string is required' });
18
+ }
19
+ const resolvedDate = this.resolveDate(dateStr);
20
+ return (0, error_1.Ok)({
21
+ original: dateStr,
22
+ resolved: resolvedDate.toISOString().split('T')[0],
23
+ day_of_week: resolvedDate.toLocaleDateString('en-US', { weekday: 'long' }),
24
+ formatted: resolvedDate.toLocaleDateString('en-US', {
25
+ year: 'numeric',
26
+ month: 'long',
27
+ day: 'numeric',
28
+ }),
29
+ });
30
+ }
31
+ catch (error) {
32
+ throw new error_1.ToolError(`Failed to resolve date: ${error instanceof Error ? error.message : String(error)}`, 'DateResolverTool');
33
+ }
34
+ }
35
+ descriptor() {
36
+ return {
37
+ type: 'function',
38
+ function: {
39
+ name: 'resolve_date',
40
+ description: 'Resolves relative date references like "next Friday", "tomorrow", "in 2 weeks" to actual dates',
41
+ parameters: {
42
+ type: 'object',
43
+ properties: {
44
+ date_string: {
45
+ type: 'string',
46
+ description: 'The relative date string to resolve (e.g., "next Friday", "tomorrow")',
47
+ },
48
+ },
49
+ required: ['date_string'],
50
+ },
51
+ },
52
+ };
53
+ }
54
+ resolveDate(dateStr) {
55
+ const now = new Date();
56
+ const lower = dateStr.toLowerCase();
57
+ // Handle "today"
58
+ if (lower === 'today') {
59
+ return now;
60
+ }
61
+ // Handle "tomorrow"
62
+ if (lower === 'tomorrow') {
63
+ const tomorrow = new Date(now);
64
+ tomorrow.setDate(tomorrow.getDate() + 1);
65
+ return tomorrow;
66
+ }
67
+ // Handle "yesterday"
68
+ if (lower === 'yesterday') {
69
+ const yesterday = new Date(now);
70
+ yesterday.setDate(yesterday.getDate() - 1);
71
+ return yesterday;
72
+ }
73
+ // Handle "next <weekday>"
74
+ const nextMatch = lower.match(/^next\s+(\w+)$/);
75
+ if (nextMatch) {
76
+ const targetDay = this.getWeekdayNumber(nextMatch[1]);
77
+ if (targetDay !== -1) {
78
+ return this.getNextWeekday(now, targetDay);
79
+ }
80
+ }
81
+ // Handle "last <weekday>"
82
+ const lastMatch = lower.match(/^last\s+(\w+)$/);
83
+ if (lastMatch) {
84
+ const targetDay = this.getWeekdayNumber(lastMatch[1]);
85
+ if (targetDay !== -1) {
86
+ return this.getLastWeekday(now, targetDay);
87
+ }
88
+ }
89
+ // Handle "in X days/weeks/months"
90
+ const inMatch = lower.match(/^in\s+(\d+)\s+(day|week|month)s?$/);
91
+ if (inMatch) {
92
+ const amount = parseInt(inMatch[1], 10);
93
+ const unit = inMatch[2];
94
+ const result = new Date(now);
95
+ if (unit === 'day') {
96
+ result.setDate(result.getDate() + amount);
97
+ }
98
+ else if (unit === 'week') {
99
+ result.setDate(result.getDate() + amount * 7);
100
+ }
101
+ else if (unit === 'month') {
102
+ result.setMonth(result.getMonth() + amount);
103
+ }
104
+ return result;
105
+ }
106
+ // If we can't parse it, return the current date
107
+ return now;
108
+ }
109
+ getWeekdayNumber(weekday) {
110
+ const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
111
+ return days.indexOf(weekday.toLowerCase());
112
+ }
113
+ getNextWeekday(from, targetDay) {
114
+ const result = new Date(from);
115
+ const currentDay = result.getDay();
116
+ let daysToAdd = targetDay - currentDay;
117
+ if (daysToAdd <= 0) {
118
+ daysToAdd += 7;
119
+ }
120
+ result.setDate(result.getDate() + daysToAdd);
121
+ return result;
122
+ }
123
+ getLastWeekday(from, targetDay) {
124
+ const result = new Date(from);
125
+ const currentDay = result.getDay();
126
+ let daysToSubtract = currentDay - targetDay;
127
+ if (daysToSubtract <= 0) {
128
+ daysToSubtract += 7;
129
+ }
130
+ result.setDate(result.getDate() - daysToSubtract);
131
+ return result;
132
+ }
133
+ }
134
+ exports.DateResolverTool = DateResolverTool;
135
+ //# sourceMappingURL=date-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-resolver.js","sourceRoot":"","sources":["../../../src/llm/tools/date-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tool for appending a new task to the end of the ephemeral task manager list
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from '../tool';
5
+ import { Result } from '../../../error';
6
+ import { TaskList } from './task-list';
7
+ export declare class AppendTaskTool extends BaseTool {
8
+ private taskList;
9
+ constructor(taskList: TaskList);
10
+ run(args: ToolArgs): Promise<Result<ToolResult, Error>>;
11
+ descriptor(): ToolDescriptor;
12
+ }
13
+ //# sourceMappingURL=append-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"append-task.d.ts","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/append-task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAM,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,cAAe,SAAQ,QAAQ;IAC9B,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAIhC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAmB7D,UAAU,IAAI,cAAc;CAoB7B"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Tool for appending a new task to the end of the ephemeral task manager list
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AppendTaskTool = void 0;
7
+ const tool_1 = require("../tool");
8
+ const error_1 = require("../../../error");
9
+ class AppendTaskTool extends tool_1.BaseTool {
10
+ taskList;
11
+ constructor(taskList) {
12
+ super();
13
+ this.taskList = taskList;
14
+ }
15
+ async run(args) {
16
+ try {
17
+ const description = args.description || '';
18
+ const task = this.taskList.appendTask(description);
19
+ return (0, error_1.Ok)({
20
+ id: task.id,
21
+ description: task.description,
22
+ status: task.status,
23
+ summary: `Task '${task.id}' appended successfully`,
24
+ });
25
+ }
26
+ catch (error) {
27
+ return (0, error_1.Ok)({
28
+ error: error instanceof Error ? error.message : String(error),
29
+ summary: `Failed to append task: ${error instanceof Error ? error.message : String(error)}`,
30
+ });
31
+ }
32
+ }
33
+ descriptor() {
34
+ return {
35
+ type: 'function',
36
+ function: {
37
+ name: 'append_task',
38
+ description: "Append a new task to the end of the task list with a description. The task will start with 'pending' status.",
39
+ parameters: {
40
+ type: 'object',
41
+ properties: {
42
+ description: {
43
+ type: 'string',
44
+ description: 'The description of the task',
45
+ },
46
+ },
47
+ required: ['description'],
48
+ },
49
+ },
50
+ };
51
+ }
52
+ }
53
+ exports.AppendTaskTool = AppendTaskTool;
54
+ //# sourceMappingURL=append-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"append-task.js","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/append-task.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kCAAyE;AACzE,0CAA4C;AAG5C,MAAa,cAAe,SAAQ,eAAQ;IACtB;IAApB,YAAoB,QAAkB;QACpC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAU;IAEtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,IAAI,CAAC;YACH,MAAM,WAAW,GAAI,IAAI,CAAC,WAAsB,IAAI,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEnD,OAAO,IAAA,UAAE,EAAC;gBACR,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,yBAAyB;aACnD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAA,UAAE,EAAC;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC5F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;gBACnB,WAAW,EACT,8GAA8G;gBAChH,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6BAA6B;yBAC3C;qBACF;oBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;iBAC1B;aACF;SACF,CAAC;IACJ,CAAC;CACF;AA5CD,wCA4CC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tool for clearing all tasks from the ephemeral task manager
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from '../tool';
5
+ import { Result } from '../../../error';
6
+ import { TaskList } from './task-list';
7
+ export declare class ClearTasksTool extends BaseTool {
8
+ private taskList;
9
+ constructor(taskList: TaskList);
10
+ run(_args: ToolArgs): Promise<Result<ToolResult, Error>>;
11
+ descriptor(): ToolDescriptor;
12
+ }
13
+ //# sourceMappingURL=clear-tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-tasks.d.ts","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/clear-tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAM,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,cAAe,SAAQ,QAAQ;IAC9B,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAIhC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAS9D,UAAU,IAAI,cAAc;CAa7B"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Tool for clearing all tasks from the ephemeral task manager
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ClearTasksTool = void 0;
7
+ const tool_1 = require("../tool");
8
+ const error_1 = require("../../../error");
9
+ class ClearTasksTool extends tool_1.BaseTool {
10
+ taskList;
11
+ constructor(taskList) {
12
+ super();
13
+ this.taskList = taskList;
14
+ }
15
+ async run(_args) {
16
+ const count = this.taskList.clearTasks();
17
+ return (0, error_1.Ok)({
18
+ count,
19
+ summary: `Cleared ${count} tasks from the list`,
20
+ });
21
+ }
22
+ descriptor() {
23
+ return {
24
+ type: 'function',
25
+ function: {
26
+ name: 'clear_tasks',
27
+ description: 'Remove all tasks from the task list.',
28
+ parameters: {
29
+ type: 'object',
30
+ properties: {},
31
+ },
32
+ },
33
+ };
34
+ }
35
+ }
36
+ exports.ClearTasksTool = ClearTasksTool;
37
+ //# sourceMappingURL=clear-tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-tasks.js","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/clear-tasks.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kCAAyE;AACzE,0CAA4C;AAG5C,MAAa,cAAe,SAAQ,eAAQ;IACtB;IAApB,YAAoB,QAAkB;QACpC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAU;IAEtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAe;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEzC,OAAO,IAAA,UAAE,EAAC;YACR,KAAK;YACL,OAAO,EAAE,WAAW,KAAK,sBAAsB;SAChD,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,sCAAsC;gBACnD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF,CAAC;IACJ,CAAC;CACF;AA3BD,wCA2BC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Tool for completing a task in the ephemeral task manager
3
+ *
4
+ * This tool changes a task's status from InProgress to Completed
5
+ */
6
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from '../tool';
7
+ import { Result } from '../../../error';
8
+ import { TaskList } from './task-list';
9
+ export declare class CompleteTaskTool extends BaseTool {
10
+ private taskList;
11
+ constructor(taskList: TaskList);
12
+ run(args: ToolArgs): Promise<Result<ToolResult, Error>>;
13
+ descriptor(): ToolDescriptor;
14
+ }
15
+ //# sourceMappingURL=complete-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete-task.d.ts","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/complete-task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAM,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,gBAAiB,SAAQ,QAAQ;IAChC,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAIhC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAmB7D,UAAU,IAAI,cAAc;CAmB7B"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * Tool for completing a task in the ephemeral task manager
4
+ *
5
+ * This tool changes a task's status from InProgress to Completed
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CompleteTaskTool = void 0;
9
+ const tool_1 = require("../tool");
10
+ const error_1 = require("../../../error");
11
+ class CompleteTaskTool extends tool_1.BaseTool {
12
+ taskList;
13
+ constructor(taskList) {
14
+ super();
15
+ this.taskList = taskList;
16
+ }
17
+ async run(args) {
18
+ try {
19
+ const taskId = Number(args.id) || 0;
20
+ const task = this.taskList.completeTask(taskId);
21
+ return (0, error_1.Ok)({
22
+ id: task.id,
23
+ description: task.description,
24
+ status: task.status,
25
+ summary: `Task '${taskId}' completed successfully`,
26
+ });
27
+ }
28
+ catch (error) {
29
+ return (0, error_1.Ok)({
30
+ error: error instanceof Error ? error.message : String(error),
31
+ summary: `Failed to complete task: ${error instanceof Error ? error.message : String(error)}`,
32
+ });
33
+ }
34
+ }
35
+ descriptor() {
36
+ return {
37
+ type: 'function',
38
+ function: {
39
+ name: 'complete_task',
40
+ description: 'Complete a task by changing its status from IN_PROGRESS to COMPLETED.',
41
+ parameters: {
42
+ type: 'object',
43
+ properties: {
44
+ id: {
45
+ type: 'integer',
46
+ description: 'The ID of the task to complete',
47
+ },
48
+ },
49
+ required: ['id'],
50
+ },
51
+ },
52
+ };
53
+ }
54
+ }
55
+ exports.CompleteTaskTool = CompleteTaskTool;
56
+ //# sourceMappingURL=complete-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete-task.js","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/complete-task.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,kCAAyE;AACzE,0CAA4C;AAG5C,MAAa,gBAAiB,SAAQ,eAAQ;IACxB;IAApB,YAAoB,QAAkB;QACpC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAU;IAEtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEhD,OAAO,IAAA,UAAE,EAAC;gBACR,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,SAAS,MAAM,0BAA0B;aACnD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAA,UAAE,EAAC;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC9F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,uEAAuE;gBACpF,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,gCAAgC;yBAC9C;qBACF;oBACD,QAAQ,EAAE,CAAC,IAAI,CAAC;iBACjB;aACF;SACF,CAAC;IACJ,CAAC;CACF;AA3CD,4CA2CC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Ephemeral Task Manager tools for managing a list of tasks
3
+ *
4
+ * This module provides tools for appending, prepending, inserting, starting,
5
+ * completing, and listing tasks. Tasks follow a state machine that transitions
6
+ * from Pending through InProgress to Completed.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { TaskList, allTools } from './ephemeral-task-manager';
11
+ * import { LlmBroker } from '../broker';
12
+ *
13
+ * const taskList = new TaskList();
14
+ * const tools = allTools(taskList);
15
+ *
16
+ * const broker = new LlmBroker('qwen3:32b', gateway);
17
+ * const response = await broker.generate([message], tools);
18
+ * ```
19
+ */
20
+ export { Task, TaskStatus, createTask } from './task';
21
+ export { TaskList } from './task-list';
22
+ export { AppendTaskTool } from './append-task';
23
+ export { PrependTaskTool } from './prepend-task';
24
+ export { InsertTaskAfterTool } from './insert-task-after';
25
+ export { StartTaskTool } from './start-task';
26
+ export { CompleteTaskTool } from './complete-task';
27
+ export { ListTasksTool } from './list-tasks';
28
+ export { ClearTasksTool } from './clear-tasks';
29
+ import { TaskList } from './task-list';
30
+ import { LlmTool } from '../tool';
31
+ /**
32
+ * Creates all task manager tools with a shared task list
33
+ *
34
+ * @param taskList - The shared task list to use across all tools
35
+ * @returns Array of all task management tools
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const taskList = new TaskList();
40
+ * const tools = allTools(taskList);
41
+ * ```
42
+ */
43
+ export declare function allTools(taskList: TaskList): LlmTool[];
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASlC;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAAE,CAUtD"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /**
3
+ * Ephemeral Task Manager tools for managing a list of tasks
4
+ *
5
+ * This module provides tools for appending, prepending, inserting, starting,
6
+ * completing, and listing tasks. Tasks follow a state machine that transitions
7
+ * from Pending through InProgress to Completed.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { TaskList, allTools } from './ephemeral-task-manager';
12
+ * import { LlmBroker } from '../broker';
13
+ *
14
+ * const taskList = new TaskList();
15
+ * const tools = allTools(taskList);
16
+ *
17
+ * const broker = new LlmBroker('qwen3:32b', gateway);
18
+ * const response = await broker.generate([message], tools);
19
+ * ```
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ClearTasksTool = exports.ListTasksTool = exports.CompleteTaskTool = exports.StartTaskTool = exports.InsertTaskAfterTool = exports.PrependTaskTool = exports.AppendTaskTool = exports.TaskList = exports.createTask = exports.TaskStatus = void 0;
23
+ exports.allTools = allTools;
24
+ var task_1 = require("./task");
25
+ Object.defineProperty(exports, "TaskStatus", { enumerable: true, get: function () { return task_1.TaskStatus; } });
26
+ Object.defineProperty(exports, "createTask", { enumerable: true, get: function () { return task_1.createTask; } });
27
+ var task_list_1 = require("./task-list");
28
+ Object.defineProperty(exports, "TaskList", { enumerable: true, get: function () { return task_list_1.TaskList; } });
29
+ var append_task_1 = require("./append-task");
30
+ Object.defineProperty(exports, "AppendTaskTool", { enumerable: true, get: function () { return append_task_1.AppendTaskTool; } });
31
+ var prepend_task_1 = require("./prepend-task");
32
+ Object.defineProperty(exports, "PrependTaskTool", { enumerable: true, get: function () { return prepend_task_1.PrependTaskTool; } });
33
+ var insert_task_after_1 = require("./insert-task-after");
34
+ Object.defineProperty(exports, "InsertTaskAfterTool", { enumerable: true, get: function () { return insert_task_after_1.InsertTaskAfterTool; } });
35
+ var start_task_1 = require("./start-task");
36
+ Object.defineProperty(exports, "StartTaskTool", { enumerable: true, get: function () { return start_task_1.StartTaskTool; } });
37
+ var complete_task_1 = require("./complete-task");
38
+ Object.defineProperty(exports, "CompleteTaskTool", { enumerable: true, get: function () { return complete_task_1.CompleteTaskTool; } });
39
+ var list_tasks_1 = require("./list-tasks");
40
+ Object.defineProperty(exports, "ListTasksTool", { enumerable: true, get: function () { return list_tasks_1.ListTasksTool; } });
41
+ var clear_tasks_1 = require("./clear-tasks");
42
+ Object.defineProperty(exports, "ClearTasksTool", { enumerable: true, get: function () { return clear_tasks_1.ClearTasksTool; } });
43
+ const append_task_2 = require("./append-task");
44
+ const prepend_task_2 = require("./prepend-task");
45
+ const insert_task_after_2 = require("./insert-task-after");
46
+ const start_task_2 = require("./start-task");
47
+ const complete_task_2 = require("./complete-task");
48
+ const list_tasks_2 = require("./list-tasks");
49
+ const clear_tasks_2 = require("./clear-tasks");
50
+ /**
51
+ * Creates all task manager tools with a shared task list
52
+ *
53
+ * @param taskList - The shared task list to use across all tools
54
+ * @returns Array of all task management tools
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const taskList = new TaskList();
59
+ * const tools = allTools(taskList);
60
+ * ```
61
+ */
62
+ function allTools(taskList) {
63
+ return [
64
+ new append_task_2.AppendTaskTool(taskList),
65
+ new prepend_task_2.PrependTaskTool(taskList),
66
+ new insert_task_after_2.InsertTaskAfterTool(taskList),
67
+ new start_task_2.StartTaskTool(taskList),
68
+ new complete_task_2.CompleteTaskTool(taskList),
69
+ new list_tasks_2.ListTasksTool(taskList),
70
+ new clear_tasks_2.ClearTasksTool(taskList),
71
+ ];
72
+ }
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAkCH,4BAUC;AA1CD,+BAAsD;AAAvC,kGAAA,UAAU,OAAA;AAAE,kGAAA,UAAU,OAAA;AACrC,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AACxB,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AACtB,iDAAmD;AAA1C,iHAAA,gBAAgB,OAAA;AACzB,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AACtB,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AAIvB,+CAA+C;AAC/C,iDAAiD;AACjD,2DAA0D;AAC1D,6CAA6C;AAC7C,mDAAmD;AACnD,6CAA6C;AAC7C,+CAA+C;AAE/C;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ,CAAC,QAAkB;IACzC,OAAO;QACL,IAAI,4BAAc,CAAC,QAAQ,CAAC;QAC5B,IAAI,8BAAe,CAAC,QAAQ,CAAC;QAC7B,IAAI,uCAAmB,CAAC,QAAQ,CAAC;QACjC,IAAI,0BAAa,CAAC,QAAQ,CAAC;QAC3B,IAAI,gCAAgB,CAAC,QAAQ,CAAC;QAC9B,IAAI,0BAAa,CAAC,QAAQ,CAAC;QAC3B,IAAI,4BAAc,CAAC,QAAQ,CAAC;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tool for inserting a new task after an existing task in the ephemeral task manager list
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from '../tool';
5
+ import { Result } from '../../../error';
6
+ import { TaskList } from './task-list';
7
+ export declare class InsertTaskAfterTool extends BaseTool {
8
+ private taskList;
9
+ constructor(taskList: TaskList);
10
+ run(args: ToolArgs): Promise<Result<ToolResult, Error>>;
11
+ descriptor(): ToolDescriptor;
12
+ }
13
+ //# sourceMappingURL=insert-task-after.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-task-after.d.ts","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/insert-task-after.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAM,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,mBAAoB,SAAQ,QAAQ;IACnC,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAIhC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAqB7D,UAAU,IAAI,cAAc;CAwB7B"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Tool for inserting a new task after an existing task in the ephemeral task manager list
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.InsertTaskAfterTool = void 0;
7
+ const tool_1 = require("../tool");
8
+ const error_1 = require("../../../error");
9
+ class InsertTaskAfterTool extends tool_1.BaseTool {
10
+ taskList;
11
+ constructor(taskList) {
12
+ super();
13
+ this.taskList = taskList;
14
+ }
15
+ async run(args) {
16
+ try {
17
+ const existingTaskId = Number(args.existing_task_id) || 0;
18
+ const description = args.description || '';
19
+ const task = this.taskList.insertTaskAfter(existingTaskId, description);
20
+ return (0, error_1.Ok)({
21
+ id: task.id,
22
+ description: task.description,
23
+ status: task.status,
24
+ summary: `Task '${task.id}' inserted after task '${existingTaskId}' successfully`,
25
+ });
26
+ }
27
+ catch (error) {
28
+ return (0, error_1.Ok)({
29
+ error: error instanceof Error ? error.message : String(error),
30
+ summary: `Failed to insert task: ${error instanceof Error ? error.message : String(error)}`,
31
+ });
32
+ }
33
+ }
34
+ descriptor() {
35
+ return {
36
+ type: 'function',
37
+ function: {
38
+ name: 'insert_task_after',
39
+ description: "Insert a new task after an existing task in the task list. The task will start with 'pending' status.",
40
+ parameters: {
41
+ type: 'object',
42
+ properties: {
43
+ existing_task_id: {
44
+ type: 'integer',
45
+ description: 'The ID of the existing task after which to insert the new task',
46
+ },
47
+ description: {
48
+ type: 'string',
49
+ description: 'The description of the new task',
50
+ },
51
+ },
52
+ required: ['existing_task_id', 'description'],
53
+ },
54
+ },
55
+ };
56
+ }
57
+ }
58
+ exports.InsertTaskAfterTool = InsertTaskAfterTool;
59
+ //# sourceMappingURL=insert-task-after.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-task-after.js","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/insert-task-after.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kCAAyE;AACzE,0CAA4C;AAG5C,MAAa,mBAAoB,SAAQ,eAAQ;IAC3B;IAApB,YAAoB,QAAkB;QACpC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAU;IAEtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAI,IAAI,CAAC,WAAsB,IAAI,EAAE,CAAC;YAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAExE,OAAO,IAAA,UAAE,EAAC;gBACR,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,0BAA0B,cAAc,gBAAgB;aAClF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAA,UAAE,EAAC;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC5F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EACT,uGAAuG;gBACzG,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,gBAAgB,EAAE;4BAChB,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,gEAAgE;yBAC9E;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iCAAiC;yBAC/C;qBACF;oBACD,QAAQ,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAlDD,kDAkDC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Tool for listing all tasks in the ephemeral task manager
3
+ */
4
+ import { BaseTool, ToolArgs, ToolDescriptor, ToolResult } from '../tool';
5
+ import { Result } from '../../../error';
6
+ import { TaskList } from './task-list';
7
+ export declare class ListTasksTool extends BaseTool {
8
+ private taskList;
9
+ constructor(taskList: TaskList);
10
+ run(_args: ToolArgs): Promise<Result<ToolResult, Error>>;
11
+ descriptor(): ToolDescriptor;
12
+ private formatTasks;
13
+ }
14
+ //# sourceMappingURL=list-tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tasks.d.ts","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/list-tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAM,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,aAAc,SAAQ,QAAQ;IAC7B,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAIhC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAW9D,UAAU,IAAI,cAAc;IAc5B,OAAO,CAAC,WAAW;CAOpB"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Tool for listing all tasks in the ephemeral task manager
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ListTasksTool = void 0;
7
+ const tool_1 = require("../tool");
8
+ const error_1 = require("../../../error");
9
+ class ListTasksTool extends tool_1.BaseTool {
10
+ taskList;
11
+ constructor(taskList) {
12
+ super();
13
+ this.taskList = taskList;
14
+ }
15
+ async run(_args) {
16
+ const tasks = this.taskList.listTasks();
17
+ const taskListStr = this.formatTasks(tasks);
18
+ return (0, error_1.Ok)({
19
+ count: tasks.length,
20
+ tasks: taskListStr,
21
+ summary: `Found ${tasks.length} tasks\n\n${taskListStr}`,
22
+ });
23
+ }
24
+ descriptor() {
25
+ return {
26
+ type: 'function',
27
+ function: {
28
+ name: 'list_tasks',
29
+ description: 'List all tasks in the task list.',
30
+ parameters: {
31
+ type: 'object',
32
+ properties: {},
33
+ },
34
+ },
35
+ };
36
+ }
37
+ formatTasks(tasks) {
38
+ if (tasks.length === 0) {
39
+ return 'No tasks found.';
40
+ }
41
+ return tasks.map((task) => `${task.id}. ${task.description} (${task.status})`).join('\n');
42
+ }
43
+ }
44
+ exports.ListTasksTool = ListTasksTool;
45
+ //# sourceMappingURL=list-tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tasks.js","sourceRoot":"","sources":["../../../../src/llm/tools/ephemeral-task-manager/list-tasks.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kCAAyE;AACzE,0CAA4C;AAI5C,MAAa,aAAc,SAAQ,eAAQ;IACrB;IAApB,YAAoB,QAAkB;QACpC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAU;IAEtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAe;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5C,OAAO,IAAA,UAAE,EAAC;YACR,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,SAAS,KAAK,CAAC,MAAM,aAAa,WAAW,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,kCAAkC;gBAC/C,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5F,CAAC;CACF;AArCD,sCAqCC"}