@ugm/desiagent 0.1.21

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 (202) hide show
  1. package/README.md +251 -0
  2. package/dist/__tests__/test-utils.d.ts +24 -0
  3. package/dist/__tests__/test-utils.d.ts.map +1 -0
  4. package/dist/__tests__/test-utils.js +32 -0
  5. package/dist/__tests__/test-utils.js.map +1 -0
  6. package/dist/core/execution/agents.d.ts +60 -0
  7. package/dist/core/execution/agents.d.ts.map +1 -0
  8. package/dist/core/execution/agents.js +249 -0
  9. package/dist/core/execution/agents.js.map +1 -0
  10. package/dist/core/execution/artifacts.d.ts +27 -0
  11. package/dist/core/execution/artifacts.d.ts.map +1 -0
  12. package/dist/core/execution/artifacts.js +93 -0
  13. package/dist/core/execution/artifacts.js.map +1 -0
  14. package/dist/core/execution/costs.d.ts +160 -0
  15. package/dist/core/execution/costs.d.ts.map +1 -0
  16. package/dist/core/execution/costs.js +196 -0
  17. package/dist/core/execution/costs.js.map +1 -0
  18. package/dist/core/execution/dagExecutor.d.ts +112 -0
  19. package/dist/core/execution/dagExecutor.d.ts.map +1 -0
  20. package/dist/core/execution/dagExecutor.js +647 -0
  21. package/dist/core/execution/dagExecutor.js.map +1 -0
  22. package/dist/core/execution/dags.d.ts +167 -0
  23. package/dist/core/execution/dags.d.ts.map +1 -0
  24. package/dist/core/execution/dags.js +713 -0
  25. package/dist/core/execution/dags.js.map +1 -0
  26. package/dist/core/execution/executions.d.ts +158 -0
  27. package/dist/core/execution/executions.d.ts.map +1 -0
  28. package/dist/core/execution/executions.js +258 -0
  29. package/dist/core/execution/executions.js.map +1 -0
  30. package/dist/core/execution/goals.d.ts +62 -0
  31. package/dist/core/execution/goals.d.ts.map +1 -0
  32. package/dist/core/execution/goals.js +245 -0
  33. package/dist/core/execution/goals.js.map +1 -0
  34. package/dist/core/execution/runs.d.ts +65 -0
  35. package/dist/core/execution/runs.d.ts.map +1 -0
  36. package/dist/core/execution/runs.js +219 -0
  37. package/dist/core/execution/runs.js.map +1 -0
  38. package/dist/core/execution/tools.d.ts +24 -0
  39. package/dist/core/execution/tools.d.ts.map +1 -0
  40. package/dist/core/execution/tools.js +33 -0
  41. package/dist/core/execution/tools.js.map +1 -0
  42. package/dist/core/orchestration/index.d.ts +7 -0
  43. package/dist/core/orchestration/index.d.ts.map +1 -0
  44. package/dist/core/orchestration/index.js +7 -0
  45. package/dist/core/orchestration/index.js.map +1 -0
  46. package/dist/core/orchestration/orchestrator.d.ts +39 -0
  47. package/dist/core/orchestration/orchestrator.d.ts.map +1 -0
  48. package/dist/core/orchestration/orchestrator.js +141 -0
  49. package/dist/core/orchestration/orchestrator.js.map +1 -0
  50. package/dist/core/orchestration/planner.d.ts +63 -0
  51. package/dist/core/orchestration/planner.d.ts.map +1 -0
  52. package/dist/core/orchestration/planner.js +99 -0
  53. package/dist/core/orchestration/planner.js.map +1 -0
  54. package/dist/core/providers/factory.d.ts +25 -0
  55. package/dist/core/providers/factory.d.ts.map +1 -0
  56. package/dist/core/providers/factory.js +86 -0
  57. package/dist/core/providers/factory.js.map +1 -0
  58. package/dist/core/providers/index.d.ts +11 -0
  59. package/dist/core/providers/index.d.ts.map +1 -0
  60. package/dist/core/providers/index.js +10 -0
  61. package/dist/core/providers/index.js.map +1 -0
  62. package/dist/core/providers/ollama.d.ts +36 -0
  63. package/dist/core/providers/ollama.d.ts.map +1 -0
  64. package/dist/core/providers/ollama.js +123 -0
  65. package/dist/core/providers/ollama.js.map +1 -0
  66. package/dist/core/providers/openai.d.ts +33 -0
  67. package/dist/core/providers/openai.d.ts.map +1 -0
  68. package/dist/core/providers/openai.js +114 -0
  69. package/dist/core/providers/openai.js.map +1 -0
  70. package/dist/core/providers/openrouter.d.ts +38 -0
  71. package/dist/core/providers/openrouter.d.ts.map +1 -0
  72. package/dist/core/providers/openrouter.js +269 -0
  73. package/dist/core/providers/openrouter.js.map +1 -0
  74. package/dist/core/providers/types.d.ts +101 -0
  75. package/dist/core/providers/types.d.ts.map +1 -0
  76. package/dist/core/providers/types.js +7 -0
  77. package/dist/core/providers/types.js.map +1 -0
  78. package/dist/core/tools/base.d.ts +56 -0
  79. package/dist/core/tools/base.d.ts.map +1 -0
  80. package/dist/core/tools/base.js +60 -0
  81. package/dist/core/tools/base.js.map +1 -0
  82. package/dist/core/tools/bash.d.ts +50 -0
  83. package/dist/core/tools/bash.d.ts.map +1 -0
  84. package/dist/core/tools/bash.js +179 -0
  85. package/dist/core/tools/bash.js.map +1 -0
  86. package/dist/core/tools/edit.d.ts +39 -0
  87. package/dist/core/tools/edit.d.ts.map +1 -0
  88. package/dist/core/tools/edit.js +67 -0
  89. package/dist/core/tools/edit.js.map +1 -0
  90. package/dist/core/tools/executor.d.ts +33 -0
  91. package/dist/core/tools/executor.d.ts.map +1 -0
  92. package/dist/core/tools/executor.js +105 -0
  93. package/dist/core/tools/executor.js.map +1 -0
  94. package/dist/core/tools/fetchPage.d.ts +46 -0
  95. package/dist/core/tools/fetchPage.d.ts.map +1 -0
  96. package/dist/core/tools/fetchPage.js +87 -0
  97. package/dist/core/tools/fetchPage.js.map +1 -0
  98. package/dist/core/tools/fetchURLs.d.ts +39 -0
  99. package/dist/core/tools/fetchURLs.d.ts.map +1 -0
  100. package/dist/core/tools/fetchURLs.js +67 -0
  101. package/dist/core/tools/fetchURLs.js.map +1 -0
  102. package/dist/core/tools/glob.d.ts +36 -0
  103. package/dist/core/tools/glob.d.ts.map +1 -0
  104. package/dist/core/tools/glob.js +78 -0
  105. package/dist/core/tools/glob.js.map +1 -0
  106. package/dist/core/tools/grep.d.ts +51 -0
  107. package/dist/core/tools/grep.d.ts.map +1 -0
  108. package/dist/core/tools/grep.js +152 -0
  109. package/dist/core/tools/grep.js.map +1 -0
  110. package/dist/core/tools/index.d.ts +22 -0
  111. package/dist/core/tools/index.d.ts.map +1 -0
  112. package/dist/core/tools/index.js +22 -0
  113. package/dist/core/tools/index.js.map +1 -0
  114. package/dist/core/tools/llmExecute.d.ts +153 -0
  115. package/dist/core/tools/llmExecute.d.ts.map +1 -0
  116. package/dist/core/tools/llmExecute.js +105 -0
  117. package/dist/core/tools/llmExecute.js.map +1 -0
  118. package/dist/core/tools/readEmail.d.ts +68 -0
  119. package/dist/core/tools/readEmail.d.ts.map +1 -0
  120. package/dist/core/tools/readEmail.js +182 -0
  121. package/dist/core/tools/readEmail.js.map +1 -0
  122. package/dist/core/tools/readFile.d.ts +42 -0
  123. package/dist/core/tools/readFile.d.ts.map +1 -0
  124. package/dist/core/tools/readFile.js +79 -0
  125. package/dist/core/tools/readFile.js.map +1 -0
  126. package/dist/core/tools/registry.d.ts +53 -0
  127. package/dist/core/tools/registry.d.ts.map +1 -0
  128. package/dist/core/tools/registry.js +112 -0
  129. package/dist/core/tools/registry.js.map +1 -0
  130. package/dist/core/tools/sendEmail.d.ts +83 -0
  131. package/dist/core/tools/sendEmail.d.ts.map +1 -0
  132. package/dist/core/tools/sendEmail.js +132 -0
  133. package/dist/core/tools/sendEmail.js.map +1 -0
  134. package/dist/core/tools/sendWebhook.d.ts +48 -0
  135. package/dist/core/tools/sendWebhook.d.ts.map +1 -0
  136. package/dist/core/tools/sendWebhook.js +61 -0
  137. package/dist/core/tools/sendWebhook.js.map +1 -0
  138. package/dist/core/tools/webSearch.d.ts +34 -0
  139. package/dist/core/tools/webSearch.d.ts.map +1 -0
  140. package/dist/core/tools/webSearch.js +104 -0
  141. package/dist/core/tools/webSearch.js.map +1 -0
  142. package/dist/core/tools/writeFile.d.ts +49 -0
  143. package/dist/core/tools/writeFile.d.ts.map +1 -0
  144. package/dist/core/tools/writeFile.js +120 -0
  145. package/dist/core/tools/writeFile.js.map +1 -0
  146. package/dist/db/client.d.ts +22 -0
  147. package/dist/db/client.d.ts.map +1 -0
  148. package/dist/db/client.js +178 -0
  149. package/dist/db/client.js.map +1 -0
  150. package/dist/db/schema.d.ts +1846 -0
  151. package/dist/db/schema.d.ts.map +1 -0
  152. package/dist/db/schema.js +175 -0
  153. package/dist/db/schema.js.map +1 -0
  154. package/dist/errors/index.d.ts +80 -0
  155. package/dist/errors/index.d.ts.map +1 -0
  156. package/dist/errors/index.js +135 -0
  157. package/dist/errors/index.js.map +1 -0
  158. package/dist/index.d.ts +52 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +172 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/services/initDB.d.ts +17 -0
  163. package/dist/services/initDB.d.ts.map +1 -0
  164. package/dist/services/initDB.js +212 -0
  165. package/dist/services/initDB.js.map +1 -0
  166. package/dist/types/agent.d.ts +354 -0
  167. package/dist/types/agent.d.ts.map +1 -0
  168. package/dist/types/agent.js +63 -0
  169. package/dist/types/agent.js.map +1 -0
  170. package/dist/types/client.d.ts +309 -0
  171. package/dist/types/client.d.ts.map +1 -0
  172. package/dist/types/client.js +2 -0
  173. package/dist/types/client.js.map +1 -0
  174. package/dist/types/config.d.ts +96 -0
  175. package/dist/types/config.d.ts.map +1 -0
  176. package/dist/types/config.js +33 -0
  177. package/dist/types/config.js.map +1 -0
  178. package/dist/types/dag.d.ts +253 -0
  179. package/dist/types/dag.d.ts.map +1 -0
  180. package/dist/types/dag.js +46 -0
  181. package/dist/types/dag.js.map +1 -0
  182. package/dist/types/execution.d.ts +171 -0
  183. package/dist/types/execution.d.ts.map +1 -0
  184. package/dist/types/execution.js +41 -0
  185. package/dist/types/execution.js.map +1 -0
  186. package/dist/types/index.d.ts +12 -0
  187. package/dist/types/index.d.ts.map +1 -0
  188. package/dist/types/index.js +11 -0
  189. package/dist/types/index.js.map +1 -0
  190. package/dist/util/cron-validator.d.ts +16 -0
  191. package/dist/util/cron-validator.d.ts.map +1 -0
  192. package/dist/util/cron-validator.js +31 -0
  193. package/dist/util/cron-validator.js.map +1 -0
  194. package/dist/util/dag-utils.d.ts +54 -0
  195. package/dist/util/dag-utils.d.ts.map +1 -0
  196. package/dist/util/dag-utils.js +167 -0
  197. package/dist/util/dag-utils.js.map +1 -0
  198. package/dist/util/logger.d.ts +21 -0
  199. package/dist/util/logger.d.ts.map +1 -0
  200. package/dist/util/logger.js +87 -0
  201. package/dist/util/logger.js.map +1 -0
  202. package/package.json +82 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag-utils.d.ts","sourceRoot":"","sources":["../../src/util/dag-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA2D1D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,MAAM,CAG7D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,IAAI,CAmB9E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAYvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAwBnE"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Utility functions for DAG operations
3
+ */
4
+ /**
5
+ * Extracts and parses JSON content from a markdown code block.
6
+ * @param response - The markdown string containing a JSON code block
7
+ * @returns The parsed JSON object
8
+ * @throws Error if no JSON code block is found or parsing fails
9
+ */
10
+ export function extractJsonCodeBlock(response) {
11
+ const jsonMatch = response.match(/```json\s*([\s\S]*?)\s*```/);
12
+ if (!jsonMatch || !jsonMatch[1]) {
13
+ throw new Error('No JSON code block found in response');
14
+ }
15
+ return JSON.parse(jsonMatch[1].trim());
16
+ }
17
+ /**
18
+ * Extracts and parses JSON content from a markdown code block with detailed diagnostics.
19
+ * Provides specific error locations and context for large JSON objects.
20
+ * @param response - The markdown string containing a JSON code block
21
+ * @returns The parsed JSON object
22
+ * @throws Error with detailed diagnostics if extraction or parsing fails
23
+ */
24
+ export function extractCodeBlock(response) {
25
+ const jsonMatch = response.match(/```json\s*([\s\S]*?)\s*```/);
26
+ if (!jsonMatch || !jsonMatch[1]) {
27
+ const anyMatch = response.match(/```\s*([\s\S]*?)\s*```/);
28
+ if (!anyMatch || !anyMatch[1]) {
29
+ throw new Error('No JSON code block found in response');
30
+ }
31
+ }
32
+ const jsonContent = (jsonMatch?.[1] || response).trim();
33
+ try {
34
+ return JSON.parse(jsonContent);
35
+ }
36
+ catch (parseError) {
37
+ const error = parseError;
38
+ const errorMessage = error.message;
39
+ const positionMatch = errorMessage.match(/position (\d+)/);
40
+ const position = positionMatch ? parseInt(positionMatch[1], 10) : null;
41
+ let lineNumber = 1;
42
+ let columnNumber = 1;
43
+ let currentPos = 0;
44
+ if (position !== null) {
45
+ const lines = jsonContent.split('\n');
46
+ for (let i = 0; i < lines.length; i++) {
47
+ const lineLength = lines[i].length + 1;
48
+ if (currentPos + lineLength > position) {
49
+ lineNumber = i + 1;
50
+ columnNumber = position - currentPos + 1;
51
+ break;
52
+ }
53
+ currentPos += lineLength;
54
+ }
55
+ }
56
+ const lines = jsonContent.split('\n');
57
+ const contextStart = Math.max(0, lineNumber - 3);
58
+ const contextEnd = Math.min(lines.length, lineNumber + 2);
59
+ const context = lines
60
+ .slice(contextStart, contextEnd)
61
+ .map((line, idx) => {
62
+ const actualLineNum = contextStart + idx + 1;
63
+ const marker = actualLineNum === lineNumber ? '>>> ' : ' ';
64
+ return `${marker}${String(actualLineNum).padStart(4, ' ')}: ${line}`;
65
+ })
66
+ .join('\n');
67
+ const diagnosticMessage = [
68
+ `JSON Parse Error: ${errorMessage}`,
69
+ `Location: Line ${lineNumber}, Column ${columnNumber}`,
70
+ `Content Preview (lines ${contextStart + 1}-${contextEnd}):`,
71
+ context,
72
+ `Total size: ${jsonContent.length} characters, ${lines.length} lines`,
73
+ ].join('\n');
74
+ throw new Error(diagnosticMessage);
75
+ }
76
+ }
77
+ /**
78
+ * Truncates a string to a specified length.
79
+ * @param str - The string to truncate
80
+ * @param numChars - Maximum number of characters (default: 2000)
81
+ * @returns The truncated string
82
+ */
83
+ export function truncate(str, numChars = 2000) {
84
+ if (str.length <= numChars)
85
+ return str;
86
+ return str.slice(0, numChars);
87
+ }
88
+ /**
89
+ * Truncates goal text for logging purposes.
90
+ * @param goalText - The goal text to truncate
91
+ * @returns Truncated text with ellipsis if needed
92
+ */
93
+ export function truncateForLog(goalText) {
94
+ return goalText.length > 50 ? `${goalText.slice(0, 50)}...` : goalText;
95
+ }
96
+ /**
97
+ * Parses a date string or relative date expression.
98
+ * @param dateStr - Date string (ISO format or relative like "7d", "2w", "1m")
99
+ * @param defaultDate - Default date to use if dateStr is undefined
100
+ * @returns Parsed Date object
101
+ */
102
+ export function parseDate(dateStr, defaultDate) {
103
+ if (!dateStr)
104
+ return defaultDate;
105
+ const relativeMatch = dateStr.match(/^(\d+)([dwm])$/);
106
+ if (relativeMatch) {
107
+ const amount = parseInt(relativeMatch[1], 10);
108
+ const unit = relativeMatch[2];
109
+ const now = new Date();
110
+ switch (unit) {
111
+ case 'd':
112
+ return new Date(now.getTime() - amount * 24 * 60 * 60 * 1000);
113
+ case 'w':
114
+ return new Date(now.getTime() - amount * 7 * 24 * 60 * 60 * 1000);
115
+ case 'm':
116
+ return new Date(now.getFullYear(), now.getMonth() - amount, now.getDate());
117
+ }
118
+ }
119
+ return new Date(dateStr);
120
+ }
121
+ /**
122
+ * Formats a date according to the specified grouping.
123
+ * @param date - The date to format
124
+ * @param groupBy - Grouping type ('day', 'week', 'month')
125
+ * @returns Formatted date string
126
+ */
127
+ export function formatDateByGroup(date, groupBy) {
128
+ switch (groupBy) {
129
+ case 'week': {
130
+ const d = new Date(date);
131
+ d.setDate(d.getDate() - d.getDay());
132
+ return d.toISOString().split('T')[0];
133
+ }
134
+ case 'month':
135
+ return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
136
+ default:
137
+ return date.toISOString().split('T')[0];
138
+ }
139
+ }
140
+ /**
141
+ * Renumbers sub_tasks IDs to sequential "001", "002", etc. format
142
+ * and updates all dependency references accordingly.
143
+ * @param data - The decomposer job containing sub_tasks
144
+ * @returns The same decomposer job with renumbered task IDs
145
+ */
146
+ export function renumberSubTasks(data) {
147
+ const idOrder = [];
148
+ const seen = new Set();
149
+ for (const task of data.sub_tasks) {
150
+ if (!seen.has(task.id)) {
151
+ seen.add(task.id);
152
+ idOrder.push(task.id);
153
+ }
154
+ }
155
+ const mapping = {};
156
+ idOrder.forEach((oldId, index) => {
157
+ mapping[oldId] = String(index + 1).padStart(3, '0');
158
+ });
159
+ for (const task of data.sub_tasks) {
160
+ task.dependencies = task.dependencies.map((dep) => {
161
+ return Object.prototype.hasOwnProperty.call(mapping, dep) ? mapping[dep] : dep;
162
+ });
163
+ task.id = mapping[task.id];
164
+ }
165
+ return data;
166
+ }
167
+ //# sourceMappingURL=dag-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag-utils.js","sourceRoot":"","sources":["../../src/util/dag-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAExD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,UAAyB,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QAEnC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvE,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,IAAI,UAAU,GAAG,UAAU,GAAG,QAAQ,EAAE,CAAC;oBACvC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnB,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBACD,UAAU,IAAI,UAAU,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,KAAK;aAClB,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC;aAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACjB,MAAM,aAAa,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9D,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QACvE,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,iBAAiB,GAAG;YACxB,qBAAqB,YAAY,EAAE;YACnC,kBAAkB,UAAU,YAAY,YAAY,EAAE;YACtD,0BAA0B,YAAY,GAAG,CAAC,IAAI,UAAU,IAAI;YAC5D,OAAO;YACP,eAAe,WAAW,CAAC,MAAM,gBAAgB,KAAK,CAAC,MAAM,QAAQ;SACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,QAAQ,GAAG,IAAI;IACnD,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,GAAG,CAAC;IACvC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAA2B,EAAE,WAAiB;IACtE,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG;gBACN,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAChE,KAAK,GAAG;gBACN,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YACpE,KAAK,GAAG;gBACN,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,OAAiC;IAC7E,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACjF;YACE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Logger } from 'pino';
2
+ import type { LogLevel } from '../types/config.js';
3
+ /**
4
+ * Initialize the global logger with the specified level
5
+ */
6
+ export declare function initializeLogger(level?: LogLevel): Logger;
7
+ /**
8
+ * Get the global logger instance
9
+ */
10
+ export declare function getLogger(): Logger;
11
+ /**
12
+ * Convenience function for logging
13
+ */
14
+ export declare const log: {
15
+ debug: (msg: string, data?: any) => void;
16
+ info: (msg: string, data?: any) => void;
17
+ warn: (msg: string, data?: any) => void;
18
+ error: (msg: string, data?: any) => void;
19
+ };
20
+ export default getLogger;
21
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAInD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA+CnD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,QAAiB,GAAG,MAAM,CAuBjE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAED;;GAEG;AACH,eAAO,MAAM,GAAG;iBACD,MAAM,SAAS,GAAG;gBACnB,MAAM,SAAS,GAAG;gBAClB,MAAM,SAAS,GAAG;iBACjB,MAAM,SAAS,GAAG;CAChC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,87 @@
1
+ import pino from 'pino';
2
+ import { join } from 'path';
3
+ import { mkdirSync, existsSync } from 'fs';
4
+ import { homedir } from 'os';
5
+ let logger = null;
6
+ function getLogDest() {
7
+ const dest = process.env.LOG_DEST?.toLowerCase();
8
+ if (dest === 'file' || dest === 'both') {
9
+ return dest;
10
+ }
11
+ return 'console';
12
+ }
13
+ function getLogDir() {
14
+ return process.env.LOG_DIR || join(homedir(), '.desiAgent', 'logs');
15
+ }
16
+ function ensureLogDir(dir) {
17
+ if (!existsSync(dir)) {
18
+ mkdirSync(dir, { recursive: true });
19
+ }
20
+ }
21
+ function createFileTransport(logDir) {
22
+ return {
23
+ target: 'pino-roll',
24
+ options: {
25
+ file: join(logDir, 'app'),
26
+ frequency: 'daily',
27
+ mkdir: true,
28
+ extension: '.log',
29
+ },
30
+ };
31
+ }
32
+ function createConsoleTransport() {
33
+ return {
34
+ target: 'pino-pretty',
35
+ options: {
36
+ colorize: true,
37
+ translateTime: 'SYS:standard',
38
+ ignore: 'pid,hostname',
39
+ },
40
+ };
41
+ }
42
+ /**
43
+ * Initialize the global logger with the specified level
44
+ */
45
+ export function initializeLogger(level = 'info') {
46
+ const logDest = getLogDest();
47
+ const logDir = getLogDir();
48
+ const options = { level };
49
+ if (logDest === 'console') {
50
+ options.transport = createConsoleTransport();
51
+ }
52
+ else if (logDest === 'file') {
53
+ ensureLogDir(logDir);
54
+ options.transport = createFileTransport(logDir);
55
+ }
56
+ else if (logDest === 'both') {
57
+ ensureLogDir(logDir);
58
+ options.transport = {
59
+ targets: [
60
+ createConsoleTransport(),
61
+ createFileTransport(logDir),
62
+ ],
63
+ };
64
+ }
65
+ logger = pino(options);
66
+ return logger;
67
+ }
68
+ /**
69
+ * Get the global logger instance
70
+ */
71
+ export function getLogger() {
72
+ if (!logger) {
73
+ logger = initializeLogger('info');
74
+ }
75
+ return logger;
76
+ }
77
+ /**
78
+ * Convenience function for logging
79
+ */
80
+ export const log = {
81
+ debug: (msg, data) => getLogger().debug(data, msg),
82
+ info: (msg, data) => getLogger().info(data, msg),
83
+ warn: (msg, data) => getLogger().warn(data, msg),
84
+ error: (msg, data) => getLogger().error(data, msg),
85
+ };
86
+ export default getLogger;
87
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "@ugm/desiagent",
3
+ "version": "0.1.21",
4
+ "description": "A library-first async agent system for building autonomous workflows",
5
+ "homepage": "https://github.com/ugmurthy/desiAgent",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "type": "module",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "dev": "bun run --hot src/index.ts",
23
+ "test": "vitest",
24
+ "test:ui": "vitest --ui",
25
+ "test:coverage": "vitest --coverage",
26
+ "test:watch": "vitest --watch",
27
+ "type-check": "tsc --noEmit",
28
+ "lint": "eslint src --ext .ts",
29
+ "clean": "rm -rf dist",
30
+ "db:generate": "drizzle-kit generate:sqlite --schema=src/db/schema.ts --out=src/db/migrations",
31
+ "db:push": "drizzle-kit push:sqlite --schema=src/db/schema.ts --config=drizzle.config.ts",
32
+ "db:studio": "drizzle-kit studio --schema=src/db/schema.ts --config=drizzle.config.ts",
33
+ "prepublishOnly": "npm run build"
34
+ },
35
+ "keywords": [
36
+ "agent",
37
+ "async",
38
+ "workflow",
39
+ "automation",
40
+ "llm",
41
+ "bun"
42
+ ],
43
+ "author": "U G Murthy <ugmurthy@gmail.com>",
44
+ "license": "MIT",
45
+ "engines": {
46
+ "bun": ">=1.3.5"
47
+ },
48
+ "dependencies": {
49
+ "cheerio": "^1.1.2",
50
+ "cron-parser": "^5.4.0",
51
+ "cronstrue": "^3.9.0",
52
+ "drizzle-orm": "^0.45.1",
53
+ "glob": "^13.0.0",
54
+ "imapflow": "^1.2.7",
55
+ "lodash": "^4.17.21",
56
+ "mailparser": "^3.9.1",
57
+ "nanoid": "^5.0.4",
58
+ "node-cron": "^3.0.3",
59
+ "nodemailer": "^7.0.12",
60
+ "ollama": "^0.5.0",
61
+ "openai": "^4.24.1",
62
+ "pdf-parse": "^2.4.5",
63
+ "pino": "^8.17.2",
64
+ "pino-pretty": "^13.1.3",
65
+ "pino-roll": "^4.0.0",
66
+ "zod": "^3.22.4",
67
+ "zod-to-json-schema": "^3.25.1"
68
+ },
69
+ "devDependencies": {
70
+ "@types/bun": "^latest",
71
+ "@types/lodash": "^4.14.202",
72
+ "@types/mailparser": "^3.4.6",
73
+ "@types/node": "^20.10.6",
74
+ "@types/nodemailer": "^7.0.5",
75
+ "@vitest/coverage-v8": "^1.1.0",
76
+ "@vitest/ui": "^1.1.0",
77
+ "drizzle-kit": "^0.31.8",
78
+ "tsx": "^4.7.0",
79
+ "typescript": "^5.3.3",
80
+ "vitest": "^1.1.0"
81
+ }
82
+ }