@ggakila/agentx-framework 0.1.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 (228) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/LICENSE +21 -0
  3. package/README.md +335 -0
  4. package/dist/agent/Agent.d.ts +110 -0
  5. package/dist/agent/Agent.d.ts.map +1 -0
  6. package/dist/agent/Agent.js +291 -0
  7. package/dist/agent/Agent.js.map +1 -0
  8. package/dist/agent/index.d.ts +5 -0
  9. package/dist/agent/index.d.ts.map +1 -0
  10. package/dist/agent/index.js +11 -0
  11. package/dist/agent/index.js.map +1 -0
  12. package/dist/cli/CLI.d.ts +74 -0
  13. package/dist/cli/CLI.d.ts.map +1 -0
  14. package/dist/cli/CLI.js +255 -0
  15. package/dist/cli/CLI.js.map +1 -0
  16. package/dist/cli/InteractiveSetup.d.ts +104 -0
  17. package/dist/cli/InteractiveSetup.d.ts.map +1 -0
  18. package/dist/cli/InteractiveSetup.js +2225 -0
  19. package/dist/cli/InteractiveSetup.js.map +1 -0
  20. package/dist/cli/bin.d.ts +7 -0
  21. package/dist/cli/bin.d.ts.map +1 -0
  22. package/dist/cli/bin.js +35 -0
  23. package/dist/cli/bin.js.map +1 -0
  24. package/dist/cli/commands/ProjectCommands.d.ts +23 -0
  25. package/dist/cli/commands/ProjectCommands.d.ts.map +1 -0
  26. package/dist/cli/commands/ProjectCommands.js +504 -0
  27. package/dist/cli/commands/ProjectCommands.js.map +1 -0
  28. package/dist/cli/index.d.ts +7 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +21 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/credential/CredentialManager.d.ts +112 -0
  33. package/dist/credential/CredentialManager.d.ts.map +1 -0
  34. package/dist/credential/CredentialManager.js +343 -0
  35. package/dist/credential/CredentialManager.js.map +1 -0
  36. package/dist/credential/OAuth2Manager.d.ts +206 -0
  37. package/dist/credential/OAuth2Manager.d.ts.map +1 -0
  38. package/dist/credential/OAuth2Manager.js +463 -0
  39. package/dist/credential/OAuth2Manager.js.map +1 -0
  40. package/dist/credential/index.d.ts +6 -0
  41. package/dist/credential/index.d.ts.map +1 -0
  42. package/dist/credential/index.js +16 -0
  43. package/dist/credential/index.js.map +1 -0
  44. package/dist/error/ErrorHandler.d.ts +74 -0
  45. package/dist/error/ErrorHandler.d.ts.map +1 -0
  46. package/dist/error/ErrorHandler.js +279 -0
  47. package/dist/error/ErrorHandler.js.map +1 -0
  48. package/dist/index.d.ts +30 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +100 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/integrations/DatabaseTool.d.ts +149 -0
  53. package/dist/integrations/DatabaseTool.d.ts.map +1 -0
  54. package/dist/integrations/DatabaseTool.js +900 -0
  55. package/dist/integrations/DatabaseTool.js.map +1 -0
  56. package/dist/integrations/EmailTool.d.ts +142 -0
  57. package/dist/integrations/EmailTool.d.ts.map +1 -0
  58. package/dist/integrations/EmailTool.js +259 -0
  59. package/dist/integrations/EmailTool.js.map +1 -0
  60. package/dist/integrations/FileSystemTool.d.ts +153 -0
  61. package/dist/integrations/FileSystemTool.d.ts.map +1 -0
  62. package/dist/integrations/FileSystemTool.js +835 -0
  63. package/dist/integrations/FileSystemTool.js.map +1 -0
  64. package/dist/integrations/GoogleWorkspaceTool.d.ts +125 -0
  65. package/dist/integrations/GoogleWorkspaceTool.d.ts.map +1 -0
  66. package/dist/integrations/GoogleWorkspaceTool.js +765 -0
  67. package/dist/integrations/GoogleWorkspaceTool.js.map +1 -0
  68. package/dist/integrations/HttpTool.d.ts +55 -0
  69. package/dist/integrations/HttpTool.d.ts.map +1 -0
  70. package/dist/integrations/HttpTool.js +209 -0
  71. package/dist/integrations/HttpTool.js.map +1 -0
  72. package/dist/integrations/MessagingTool.d.ts +136 -0
  73. package/dist/integrations/MessagingTool.d.ts.map +1 -0
  74. package/dist/integrations/MessagingTool.js +503 -0
  75. package/dist/integrations/MessagingTool.js.map +1 -0
  76. package/dist/integrations/SchedulerTool.d.ts +147 -0
  77. package/dist/integrations/SchedulerTool.d.ts.map +1 -0
  78. package/dist/integrations/SchedulerTool.js +471 -0
  79. package/dist/integrations/SchedulerTool.js.map +1 -0
  80. package/dist/integrations/WebhookTool.d.ts +97 -0
  81. package/dist/integrations/WebhookTool.d.ts.map +1 -0
  82. package/dist/integrations/WebhookTool.js +351 -0
  83. package/dist/integrations/WebhookTool.js.map +1 -0
  84. package/dist/integrations/index.d.ts +13 -0
  85. package/dist/integrations/index.d.ts.map +1 -0
  86. package/dist/integrations/index.js +60 -0
  87. package/dist/integrations/index.js.map +1 -0
  88. package/dist/llm/LLMProvider.d.ts +83 -0
  89. package/dist/llm/LLMProvider.d.ts.map +1 -0
  90. package/dist/llm/LLMProvider.js +370 -0
  91. package/dist/llm/LLMProvider.js.map +1 -0
  92. package/dist/llm/index.d.ts +5 -0
  93. package/dist/llm/index.d.ts.map +1 -0
  94. package/dist/llm/index.js +14 -0
  95. package/dist/llm/index.js.map +1 -0
  96. package/dist/payment/PaymentProvider.d.ts +157 -0
  97. package/dist/payment/PaymentProvider.d.ts.map +1 -0
  98. package/dist/payment/PaymentProvider.js +525 -0
  99. package/dist/payment/PaymentProvider.js.map +1 -0
  100. package/dist/payment/index.d.ts +5 -0
  101. package/dist/payment/index.d.ts.map +1 -0
  102. package/dist/payment/index.js +16 -0
  103. package/dist/payment/index.js.map +1 -0
  104. package/dist/plugin/PluginManager.d.ts +156 -0
  105. package/dist/plugin/PluginManager.d.ts.map +1 -0
  106. package/dist/plugin/PluginManager.js +288 -0
  107. package/dist/plugin/PluginManager.js.map +1 -0
  108. package/dist/plugin/index.d.ts +5 -0
  109. package/dist/plugin/index.d.ts.map +1 -0
  110. package/dist/plugin/index.js +10 -0
  111. package/dist/plugin/index.js.map +1 -0
  112. package/dist/runtime/AgentXRuntime.d.ts +90 -0
  113. package/dist/runtime/AgentXRuntime.d.ts.map +1 -0
  114. package/dist/runtime/AgentXRuntime.js +469 -0
  115. package/dist/runtime/AgentXRuntime.js.map +1 -0
  116. package/dist/security/SecurityManager.d.ts +245 -0
  117. package/dist/security/SecurityManager.d.ts.map +1 -0
  118. package/dist/security/SecurityManager.js +512 -0
  119. package/dist/security/SecurityManager.js.map +1 -0
  120. package/dist/security/index.d.ts +5 -0
  121. package/dist/security/index.d.ts.map +1 -0
  122. package/dist/security/index.js +14 -0
  123. package/dist/security/index.js.map +1 -0
  124. package/dist/tool/ToolRegistry.d.ts +58 -0
  125. package/dist/tool/ToolRegistry.d.ts.map +1 -0
  126. package/dist/tool/ToolRegistry.js +173 -0
  127. package/dist/tool/ToolRegistry.js.map +1 -0
  128. package/dist/tool/ToolValidator.d.ts +41 -0
  129. package/dist/tool/ToolValidator.d.ts.map +1 -0
  130. package/dist/tool/ToolValidator.js +158 -0
  131. package/dist/tool/ToolValidator.js.map +1 -0
  132. package/dist/tool/index.d.ts +6 -0
  133. package/dist/tool/index.d.ts.map +1 -0
  134. package/dist/tool/index.js +11 -0
  135. package/dist/tool/index.js.map +1 -0
  136. package/dist/transport/BaseTransport.d.ts +66 -0
  137. package/dist/transport/BaseTransport.d.ts.map +1 -0
  138. package/dist/transport/BaseTransport.js +103 -0
  139. package/dist/transport/BaseTransport.js.map +1 -0
  140. package/dist/transport/HttpTransport.d.ts +41 -0
  141. package/dist/transport/HttpTransport.d.ts.map +1 -0
  142. package/dist/transport/HttpTransport.js +160 -0
  143. package/dist/transport/HttpTransport.js.map +1 -0
  144. package/dist/transport/LocalTransport.d.ts +40 -0
  145. package/dist/transport/LocalTransport.d.ts.map +1 -0
  146. package/dist/transport/LocalTransport.js +157 -0
  147. package/dist/transport/LocalTransport.js.map +1 -0
  148. package/dist/transport/QueueTransport.d.ts +63 -0
  149. package/dist/transport/QueueTransport.d.ts.map +1 -0
  150. package/dist/transport/QueueTransport.js +194 -0
  151. package/dist/transport/QueueTransport.js.map +1 -0
  152. package/dist/transport/StdioTransport.d.ts +51 -0
  153. package/dist/transport/StdioTransport.d.ts.map +1 -0
  154. package/dist/transport/StdioTransport.js +216 -0
  155. package/dist/transport/StdioTransport.js.map +1 -0
  156. package/dist/transport/TransportFactory.d.ts +35 -0
  157. package/dist/transport/TransportFactory.d.ts.map +1 -0
  158. package/dist/transport/TransportFactory.js +100 -0
  159. package/dist/transport/TransportFactory.js.map +1 -0
  160. package/dist/transport/index.d.ts +10 -0
  161. package/dist/transport/index.d.ts.map +1 -0
  162. package/dist/transport/index.js +19 -0
  163. package/dist/transport/index.js.map +1 -0
  164. package/dist/types/agent.d.ts +66 -0
  165. package/dist/types/agent.d.ts.map +1 -0
  166. package/dist/types/agent.js +3 -0
  167. package/dist/types/agent.js.map +1 -0
  168. package/dist/types/config.d.ts +60 -0
  169. package/dist/types/config.d.ts.map +1 -0
  170. package/dist/types/config.js +6 -0
  171. package/dist/types/config.js.map +1 -0
  172. package/dist/types/credential.d.ts +38 -0
  173. package/dist/types/credential.d.ts.map +1 -0
  174. package/dist/types/credential.js +3 -0
  175. package/dist/types/credential.js.map +1 -0
  176. package/dist/types/error.d.ts +136 -0
  177. package/dist/types/error.d.ts.map +1 -0
  178. package/dist/types/error.js +223 -0
  179. package/dist/types/error.js.map +1 -0
  180. package/dist/types/index.d.ts +10 -0
  181. package/dist/types/index.d.ts.map +1 -0
  182. package/dist/types/index.js +27 -0
  183. package/dist/types/index.js.map +1 -0
  184. package/dist/types/llm.d.ts +43 -0
  185. package/dist/types/llm.d.ts.map +1 -0
  186. package/dist/types/llm.js +3 -0
  187. package/dist/types/llm.js.map +1 -0
  188. package/dist/types/payment.d.ts +129 -0
  189. package/dist/types/payment.d.ts.map +1 -0
  190. package/dist/types/payment.js +6 -0
  191. package/dist/types/payment.js.map +1 -0
  192. package/dist/types/runtime.d.ts +31 -0
  193. package/dist/types/runtime.d.ts.map +1 -0
  194. package/dist/types/runtime.js +3 -0
  195. package/dist/types/runtime.js.map +1 -0
  196. package/dist/types/tool.d.ts +72 -0
  197. package/dist/types/tool.d.ts.map +1 -0
  198. package/dist/types/tool.js +3 -0
  199. package/dist/types/tool.js.map +1 -0
  200. package/dist/types/transport.d.ts +53 -0
  201. package/dist/types/transport.d.ts.map +1 -0
  202. package/dist/types/transport.js +3 -0
  203. package/dist/types/transport.js.map +1 -0
  204. package/dist/types/workflow.d.ts +72 -0
  205. package/dist/types/workflow.d.ts.map +1 -0
  206. package/dist/types/workflow.js +6 -0
  207. package/dist/types/workflow.js.map +1 -0
  208. package/dist/utils/factory.d.ts +14 -0
  209. package/dist/utils/factory.d.ts.map +1 -0
  210. package/dist/utils/factory.js +146 -0
  211. package/dist/utils/factory.js.map +1 -0
  212. package/dist/workflow/StateManager.d.ts +93 -0
  213. package/dist/workflow/StateManager.d.ts.map +1 -0
  214. package/dist/workflow/StateManager.js +223 -0
  215. package/dist/workflow/StateManager.js.map +1 -0
  216. package/dist/workflow/WorkflowDefinition.d.ts +49 -0
  217. package/dist/workflow/WorkflowDefinition.d.ts.map +1 -0
  218. package/dist/workflow/WorkflowDefinition.js +264 -0
  219. package/dist/workflow/WorkflowDefinition.js.map +1 -0
  220. package/dist/workflow/WorkflowExecutor.d.ts +42 -0
  221. package/dist/workflow/WorkflowExecutor.d.ts.map +1 -0
  222. package/dist/workflow/WorkflowExecutor.js +372 -0
  223. package/dist/workflow/WorkflowExecutor.js.map +1 -0
  224. package/dist/workflow/index.d.ts +7 -0
  225. package/dist/workflow/index.d.ts.map +1 -0
  226. package/dist/workflow/index.js +17 -0
  227. package/dist/workflow/index.js.map +1 -0
  228. package/package.json +122 -0
@@ -0,0 +1,471 @@
1
+ "use strict";
2
+ /**
3
+ * Scheduler Integration Tool
4
+ * Provides cron-based scheduling and polling capabilities
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SchedulerTool = exports.SchedulerManager = exports.CronParser = exports.schedulerToolSpec = void 0;
8
+ const uuid_1 = require("uuid");
9
+ const events_1 = require("events");
10
+ /**
11
+ * Scheduler Tool Specification
12
+ */
13
+ exports.schedulerToolSpec = {
14
+ name: 'scheduler',
15
+ version: '1.0.0',
16
+ description: 'Schedule tasks using cron expressions or intervals',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ action: {
21
+ type: 'string',
22
+ enum: ['create', 'delete', 'enable', 'disable', 'list', 'next'],
23
+ description: 'Scheduler action',
24
+ },
25
+ type: {
26
+ type: 'string',
27
+ enum: ['cron', 'interval'],
28
+ description: 'Schedule type',
29
+ },
30
+ name: { type: 'string', description: 'Schedule name' },
31
+ cron: { type: 'string', description: 'Cron expression' },
32
+ interval: { type: 'number', description: 'Interval in milliseconds' },
33
+ timezone: { type: 'string', description: 'Timezone for cron' },
34
+ data: { type: 'object', description: 'Data to pass to scheduled task' },
35
+ scheduleId: { type: 'string', description: 'Schedule ID (for delete/enable/disable)' },
36
+ },
37
+ required: ['action'],
38
+ },
39
+ outputSchema: {
40
+ type: 'object',
41
+ properties: {
42
+ success: { type: 'boolean' },
43
+ scheduleId: { type: 'string' },
44
+ schedules: { type: 'array' },
45
+ nextRun: { type: 'string' },
46
+ },
47
+ },
48
+ };
49
+ /**
50
+ * Cron Parser - Simple implementation
51
+ */
52
+ class CronParser {
53
+ /**
54
+ * Parse cron expression and get next run time
55
+ * Supports: minute hour day month weekday
56
+ */
57
+ static getNextRun(cron, from = new Date()) {
58
+ const parts = cron.trim().split(/\s+/);
59
+ if (parts.length !== 5) {
60
+ throw new Error('Invalid cron expression. Expected: minute hour day month weekday');
61
+ }
62
+ const [minute, hour, day, month, weekday] = parts;
63
+ const next = new Date(from);
64
+ next.setSeconds(0);
65
+ next.setMilliseconds(0);
66
+ // Simple implementation - find next matching time
67
+ for (let i = 0; i < 366 * 24 * 60; i++) {
68
+ next.setMinutes(next.getMinutes() + 1);
69
+ if (this.matches(next.getMinutes(), minute) &&
70
+ this.matches(next.getHours(), hour) &&
71
+ this.matches(next.getDate(), day) &&
72
+ this.matches(next.getMonth() + 1, month) &&
73
+ this.matches(next.getDay(), weekday)) {
74
+ return next;
75
+ }
76
+ }
77
+ throw new Error('Could not find next run time');
78
+ }
79
+ /**
80
+ * Check if value matches cron field
81
+ */
82
+ static matches(value, field) {
83
+ if (field === '*')
84
+ return true;
85
+ // Handle lists (1,2,3)
86
+ if (field.includes(',')) {
87
+ return field.split(',').some(f => this.matches(value, f.trim()));
88
+ }
89
+ // Handle ranges (1-5)
90
+ if (field.includes('-')) {
91
+ const [start, end] = field.split('-').map(Number);
92
+ return value >= start && value <= end;
93
+ }
94
+ // Handle steps (*/5)
95
+ if (field.includes('/')) {
96
+ const [base, step] = field.split('/');
97
+ const stepNum = parseInt(step, 10);
98
+ if (base === '*') {
99
+ return value % stepNum === 0;
100
+ }
101
+ const baseNum = parseInt(base, 10);
102
+ return value >= baseNum && (value - baseNum) % stepNum === 0;
103
+ }
104
+ // Direct match
105
+ return value === parseInt(field, 10);
106
+ }
107
+ /**
108
+ * Validate cron expression
109
+ */
110
+ static validate(cron) {
111
+ try {
112
+ this.getNextRun(cron);
113
+ return { valid: true };
114
+ }
115
+ catch (error) {
116
+ return { valid: false, error: error.message };
117
+ }
118
+ }
119
+ }
120
+ exports.CronParser = CronParser;
121
+ /**
122
+ * Scheduler Manager
123
+ */
124
+ class SchedulerManager extends events_1.EventEmitter {
125
+ schedules = new Map();
126
+ pollers = new Map();
127
+ timers = new Map();
128
+ logger;
129
+ running = false;
130
+ constructor(logger) {
131
+ super();
132
+ this.logger = logger;
133
+ }
134
+ /**
135
+ * Start the scheduler
136
+ */
137
+ start() {
138
+ if (this.running)
139
+ return;
140
+ this.running = true;
141
+ // Start all enabled schedules
142
+ for (const schedule of this.schedules.values()) {
143
+ if (schedule.enabled) {
144
+ this.startSchedule(schedule);
145
+ }
146
+ }
147
+ // Start all enabled pollers
148
+ for (const poller of this.pollers.values()) {
149
+ if (poller.enabled) {
150
+ this.startPoller(poller);
151
+ }
152
+ }
153
+ this.logger.info('Scheduler started');
154
+ }
155
+ /**
156
+ * Stop the scheduler
157
+ */
158
+ stop() {
159
+ if (!this.running)
160
+ return;
161
+ this.running = false;
162
+ // Clear all timers (both setTimeout and setInterval)
163
+ for (const timer of this.timers.values()) {
164
+ clearTimeout(timer);
165
+ clearInterval(timer);
166
+ }
167
+ this.timers.clear();
168
+ this.logger.info('Scheduler stopped');
169
+ }
170
+ /**
171
+ * Create a cron schedule
172
+ */
173
+ createSchedule(config) {
174
+ const id = (0, uuid_1.v4)();
175
+ const nextRun = CronParser.getNextRun(config.cron);
176
+ const schedule = {
177
+ ...config,
178
+ id,
179
+ nextRun,
180
+ };
181
+ this.schedules.set(id, schedule);
182
+ this.logger.info(`Schedule created: ${config.name}`, { scheduleId: id, cron: config.cron });
183
+ if (this.running && config.enabled) {
184
+ this.startSchedule(schedule);
185
+ }
186
+ return id;
187
+ }
188
+ /**
189
+ * Create a polling schedule
190
+ */
191
+ createPoller(config) {
192
+ const id = (0, uuid_1.v4)();
193
+ const poller = {
194
+ ...config,
195
+ id,
196
+ };
197
+ this.pollers.set(id, poller);
198
+ this.logger.info(`Poller created: ${config.name}`, { pollerId: id, interval: config.interval });
199
+ if (this.running && config.enabled) {
200
+ this.startPoller(poller);
201
+ }
202
+ return id;
203
+ }
204
+ /**
205
+ * Delete a schedule or poller
206
+ */
207
+ delete(id) {
208
+ // Stop timer if running
209
+ const timer = this.timers.get(id);
210
+ if (timer) {
211
+ clearTimeout(timer);
212
+ this.timers.delete(id);
213
+ }
214
+ const deletedSchedule = this.schedules.delete(id);
215
+ const deletedPoller = this.pollers.delete(id);
216
+ if (deletedSchedule || deletedPoller) {
217
+ this.logger.info(`Schedule/Poller deleted`, { id });
218
+ return true;
219
+ }
220
+ return false;
221
+ }
222
+ /**
223
+ * Enable a schedule or poller
224
+ */
225
+ enable(id) {
226
+ const schedule = this.schedules.get(id);
227
+ if (schedule) {
228
+ schedule.enabled = true;
229
+ if (this.running) {
230
+ this.startSchedule(schedule);
231
+ }
232
+ return true;
233
+ }
234
+ const poller = this.pollers.get(id);
235
+ if (poller) {
236
+ poller.enabled = true;
237
+ if (this.running) {
238
+ this.startPoller(poller);
239
+ }
240
+ return true;
241
+ }
242
+ return false;
243
+ }
244
+ /**
245
+ * Disable a schedule or poller
246
+ */
247
+ disable(id) {
248
+ const timer = this.timers.get(id);
249
+ if (timer) {
250
+ clearTimeout(timer);
251
+ this.timers.delete(id);
252
+ }
253
+ const schedule = this.schedules.get(id);
254
+ if (schedule) {
255
+ schedule.enabled = false;
256
+ return true;
257
+ }
258
+ const poller = this.pollers.get(id);
259
+ if (poller) {
260
+ poller.enabled = false;
261
+ return true;
262
+ }
263
+ return false;
264
+ }
265
+ /**
266
+ * List all schedules and pollers
267
+ */
268
+ list() {
269
+ return {
270
+ schedules: Array.from(this.schedules.values()),
271
+ pollers: Array.from(this.pollers.values()),
272
+ };
273
+ }
274
+ /**
275
+ * Get next run time for a schedule
276
+ */
277
+ getNextRun(id) {
278
+ const schedule = this.schedules.get(id);
279
+ return schedule?.nextRun || null;
280
+ }
281
+ /**
282
+ * Start a cron schedule
283
+ */
284
+ startSchedule(schedule) {
285
+ if (!schedule.nextRun) {
286
+ schedule.nextRun = CronParser.getNextRun(schedule.cron);
287
+ }
288
+ const delay = schedule.nextRun.getTime() - Date.now();
289
+ if (delay <= 0) {
290
+ // Already past, calculate next
291
+ schedule.nextRun = CronParser.getNextRun(schedule.cron);
292
+ this.startSchedule(schedule);
293
+ return;
294
+ }
295
+ const timer = setTimeout(() => {
296
+ this.executeSchedule(schedule);
297
+ }, delay);
298
+ this.timers.set(schedule.id, timer);
299
+ }
300
+ /**
301
+ * Execute a schedule
302
+ */
303
+ executeSchedule(schedule) {
304
+ schedule.lastRun = new Date();
305
+ const event = {
306
+ scheduleId: schedule.id,
307
+ name: schedule.name,
308
+ timestamp: schedule.lastRun,
309
+ data: schedule.data,
310
+ };
311
+ this.emit('schedule', event);
312
+ this.emit(`schedule:${schedule.id}`, event);
313
+ this.logger.debug(`Schedule executed: ${schedule.name}`, { scheduleId: schedule.id });
314
+ // Schedule next run
315
+ if (schedule.enabled && this.running) {
316
+ schedule.nextRun = CronParser.getNextRun(schedule.cron);
317
+ this.startSchedule(schedule);
318
+ }
319
+ }
320
+ /**
321
+ * Start a poller
322
+ */
323
+ startPoller(poller) {
324
+ const timer = setInterval(() => {
325
+ this.executePoller(poller);
326
+ }, poller.interval);
327
+ this.timers.set(poller.id, timer);
328
+ }
329
+ /**
330
+ * Execute a poller
331
+ */
332
+ executePoller(poller) {
333
+ poller.lastPoll = new Date();
334
+ const event = {
335
+ scheduleId: poller.id,
336
+ name: poller.name,
337
+ timestamp: poller.lastPoll,
338
+ data: poller.data,
339
+ };
340
+ this.emit('poll', event);
341
+ this.emit(`poll:${poller.id}`, event);
342
+ this.logger.debug(`Poller executed: ${poller.name}`, { pollerId: poller.id });
343
+ }
344
+ }
345
+ exports.SchedulerManager = SchedulerManager;
346
+ /**
347
+ * Scheduler Tool Implementation
348
+ */
349
+ class SchedulerTool {
350
+ manager;
351
+ logger;
352
+ constructor(logger) {
353
+ this.logger = logger;
354
+ this.manager = new SchedulerManager(logger);
355
+ }
356
+ /**
357
+ * Get the scheduler manager
358
+ */
359
+ getManager() {
360
+ return this.manager;
361
+ }
362
+ /**
363
+ * Execute scheduler action
364
+ */
365
+ async execute(input) {
366
+ try {
367
+ switch (input.action) {
368
+ case 'create': {
369
+ if (input.type === 'cron') {
370
+ if (!input.cron || !input.name) {
371
+ return { success: false, error: 'Name and cron expression required' };
372
+ }
373
+ const validation = CronParser.validate(input.cron);
374
+ if (!validation.valid) {
375
+ return { success: false, error: `Invalid cron: ${validation.error}` };
376
+ }
377
+ const id = this.manager.createSchedule({
378
+ name: input.name,
379
+ cron: input.cron,
380
+ timezone: input.timezone,
381
+ enabled: true,
382
+ data: input.data,
383
+ });
384
+ return {
385
+ success: true,
386
+ data: {
387
+ scheduleId: id,
388
+ nextRun: this.manager.getNextRun(id)?.toISOString(),
389
+ },
390
+ };
391
+ }
392
+ else if (input.type === 'interval') {
393
+ if (!input.interval || !input.name) {
394
+ return { success: false, error: 'Name and interval required' };
395
+ }
396
+ const id = this.manager.createPoller({
397
+ name: input.name,
398
+ interval: input.interval,
399
+ enabled: true,
400
+ data: input.data,
401
+ });
402
+ return {
403
+ success: true,
404
+ data: { scheduleId: id },
405
+ };
406
+ }
407
+ return { success: false, error: 'Type must be cron or interval' };
408
+ }
409
+ case 'delete': {
410
+ if (!input.scheduleId) {
411
+ return { success: false, error: 'Schedule ID required' };
412
+ }
413
+ const deleted = this.manager.delete(input.scheduleId);
414
+ return {
415
+ success: deleted,
416
+ error: deleted ? undefined : 'Schedule not found',
417
+ };
418
+ }
419
+ case 'enable': {
420
+ if (!input.scheduleId) {
421
+ return { success: false, error: 'Schedule ID required' };
422
+ }
423
+ const enabled = this.manager.enable(input.scheduleId);
424
+ return {
425
+ success: enabled,
426
+ error: enabled ? undefined : 'Schedule not found',
427
+ };
428
+ }
429
+ case 'disable': {
430
+ if (!input.scheduleId) {
431
+ return { success: false, error: 'Schedule ID required' };
432
+ }
433
+ const disabled = this.manager.disable(input.scheduleId);
434
+ return {
435
+ success: disabled,
436
+ error: disabled ? undefined : 'Schedule not found',
437
+ };
438
+ }
439
+ case 'list': {
440
+ const list = this.manager.list();
441
+ return {
442
+ success: true,
443
+ data: list,
444
+ };
445
+ }
446
+ case 'next': {
447
+ if (!input.scheduleId) {
448
+ return { success: false, error: 'Schedule ID required' };
449
+ }
450
+ const nextRun = this.manager.getNextRun(input.scheduleId);
451
+ return {
452
+ success: !!nextRun,
453
+ data: { nextRun: nextRun?.toISOString() },
454
+ error: nextRun ? undefined : 'Schedule not found',
455
+ };
456
+ }
457
+ default:
458
+ return { success: false, error: `Unknown action: ${input.action}` };
459
+ }
460
+ }
461
+ catch (error) {
462
+ this.logger.error('Scheduler error', error);
463
+ return {
464
+ success: false,
465
+ error: error.message,
466
+ };
467
+ }
468
+ }
469
+ }
470
+ exports.SchedulerTool = SchedulerTool;
471
+ //# sourceMappingURL=SchedulerTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchedulerTool.js","sourceRoot":"","sources":["../../src/integrations/SchedulerTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Webhook Integration Tool
3
+ * Provides webhook trigger and receiver capabilities
4
+ */
5
+ import { ToolSpec, ToolResult, Logger } from '../types/tool';
6
+ import { EventEmitter } from 'events';
7
+ export interface WebhookConfig {
8
+ id: string;
9
+ path: string;
10
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'ANY';
11
+ secret?: string;
12
+ headers?: Record<string, string>;
13
+ responseCode?: number;
14
+ responseBody?: unknown;
15
+ }
16
+ export interface WebhookEvent {
17
+ id: string;
18
+ webhookId: string;
19
+ timestamp: Date;
20
+ method: string;
21
+ path: string;
22
+ headers: Record<string, string>;
23
+ query: Record<string, string>;
24
+ body: unknown;
25
+ ip: string;
26
+ }
27
+ export interface WebhookSendInput {
28
+ url: string;
29
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
30
+ headers?: Record<string, string>;
31
+ body?: unknown;
32
+ secret?: string;
33
+ signatureHeader?: string;
34
+ }
35
+ /**
36
+ * Webhook Tool Specification
37
+ */
38
+ export declare const webhookToolSpec: ToolSpec;
39
+ /**
40
+ * Webhook Manager
41
+ */
42
+ export declare class WebhookManager extends EventEmitter {
43
+ private webhooks;
44
+ private server;
45
+ private logger;
46
+ private port;
47
+ private host;
48
+ constructor(logger: Logger, port?: number, host?: string);
49
+ /**
50
+ * Start webhook server
51
+ */
52
+ start(): Promise<void>;
53
+ /**
54
+ * Stop webhook server
55
+ */
56
+ stop(): Promise<void>;
57
+ /**
58
+ * Register a webhook endpoint
59
+ */
60
+ registerWebhook(config: Omit<WebhookConfig, 'id'>): string;
61
+ /**
62
+ * Unregister a webhook
63
+ */
64
+ unregisterWebhook(id: string): boolean;
65
+ /**
66
+ * List registered webhooks
67
+ */
68
+ listWebhooks(): WebhookConfig[];
69
+ /**
70
+ * Get webhook by path
71
+ */
72
+ private getWebhookByPath;
73
+ /**
74
+ * Handle incoming webhook request
75
+ */
76
+ private handleRequest;
77
+ /**
78
+ * Parse request body
79
+ */
80
+ private parseBody;
81
+ /**
82
+ * Verify webhook signature
83
+ */
84
+ private verifySignature;
85
+ }
86
+ /**
87
+ * Webhook Sender Tool
88
+ */
89
+ export declare class WebhookSender {
90
+ private logger;
91
+ constructor(logger: Logger);
92
+ /**
93
+ * Send a webhook
94
+ */
95
+ send(input: WebhookSendInput): Promise<ToolResult>;
96
+ }
97
+ //# sourceMappingURL=WebhookTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebhookTool.d.ts","sourceRoot":"","sources":["../../src/integrations/WebhookTool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QA6B7B,CAAC;AAEF;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;gBAET,MAAM,EAAE,MAAM,EAAE,IAAI,SAAO,EAAE,IAAI,SAAY;IAOzD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,MAAM;IAQ1D;;OAEG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQtC;;OAEG;IACH,YAAY,IAAI,aAAa,EAAE;IAI/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;YACW,aAAa;IA8E3B;;OAEG;IACH,OAAO,CAAC,SAAS;IA6BjB;;OAEG;IACH,OAAO,CAAC,eAAe;CAgBxB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAoEzD"}