@markusylisiurunen/tau 0.3.2 → 0.3.4

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 (43) hide show
  1. package/README.md +13 -55
  2. package/dist/core/cli.js +2 -2
  3. package/dist/core/cli.js.map +1 -1
  4. package/dist/core/config/index.js.map +1 -1
  5. package/dist/core/config/schema.js +0 -159
  6. package/dist/core/config/schema.js.map +1 -1
  7. package/dist/core/index.js +1 -1
  8. package/dist/core/index.js.map +1 -1
  9. package/dist/core/{async/telegram.js → telegram/adapter.js} +256 -329
  10. package/dist/core/telegram/adapter.js.map +1 -0
  11. package/dist/core/telegram/cli.js +148 -0
  12. package/dist/core/telegram/cli.js.map +1 -0
  13. package/dist/core/telegram/config.js +241 -0
  14. package/dist/core/telegram/config.js.map +1 -0
  15. package/dist/core/telegram/index.js +4 -0
  16. package/dist/core/telegram/index.js.map +1 -0
  17. package/dist/core/telegram/runtime.js +96 -0
  18. package/dist/core/telegram/runtime.js.map +1 -0
  19. package/dist/core/{async → telegram}/session_manager.js +22 -22
  20. package/dist/core/telegram/session_manager.js.map +1 -0
  21. package/dist/core/telegram/workspace.js.map +1 -0
  22. package/dist/core/version.js +1 -1
  23. package/dist/main.js +7 -7
  24. package/dist/main.js.map +1 -1
  25. package/package.json +1 -1
  26. package/dist/core/async/cli.js +0 -557
  27. package/dist/core/async/cli.js.map +0 -1
  28. package/dist/core/async/cron.js +0 -370
  29. package/dist/core/async/cron.js.map +0 -1
  30. package/dist/core/async/daemon_runtime.js +0 -120
  31. package/dist/core/async/daemon_runtime.js.map +0 -1
  32. package/dist/core/async/http_protocol.js +0 -177
  33. package/dist/core/async/http_protocol.js.map +0 -1
  34. package/dist/core/async/http_server.js +0 -278
  35. package/dist/core/async/http_server.js.map +0 -1
  36. package/dist/core/async/index.js +0 -10
  37. package/dist/core/async/index.js.map +0 -1
  38. package/dist/core/async/server_config.js +0 -420
  39. package/dist/core/async/server_config.js.map +0 -1
  40. package/dist/core/async/session_manager.js.map +0 -1
  41. package/dist/core/async/telegram.js.map +0 -1
  42. package/dist/core/async/workspace.js.map +0 -1
  43. /package/dist/core/{async → telegram}/workspace.js +0 -0
@@ -1,370 +0,0 @@
1
- const SECONDS_PER_MINUTE = 60;
2
- const MILLISECONDS_PER_SECOND = 1000;
3
- const MILLISECONDS_PER_MINUTE = SECONDS_PER_MINUTE * MILLISECONDS_PER_SECOND;
4
- const DEFAULT_RUN_HISTORY_LIMIT = 200;
5
- export class AsyncCronSchedulerError extends Error {
6
- code;
7
- constructor(code, message) {
8
- super(message);
9
- this.name = "AsyncCronSchedulerError";
10
- this.code = code;
11
- }
12
- }
13
- function parsePositiveInteger(value, fieldName) {
14
- if (!/^\d+$/.test(value)) {
15
- throw new Error(`invalid ${fieldName}: expected a positive integer, got '${value}'`);
16
- }
17
- const parsed = Number.parseInt(value, 10);
18
- if (!Number.isSafeInteger(parsed) || parsed <= 0) {
19
- throw new Error(`invalid ${fieldName}: expected a positive integer, got '${value}'`);
20
- }
21
- return parsed;
22
- }
23
- function parseInteger(value, fieldName) {
24
- if (!/^\d+$/.test(value)) {
25
- throw new Error(`invalid ${fieldName}: expected an integer, got '${value}'`);
26
- }
27
- const parsed = Number.parseInt(value, 10);
28
- if (!Number.isSafeInteger(parsed)) {
29
- throw new Error(`invalid ${fieldName}: expected an integer, got '${value}'`);
30
- }
31
- return parsed;
32
- }
33
- function normalizeDayOfWeek(value) {
34
- return value === 7 ? 0 : value;
35
- }
36
- function validateBounds(value, min, max, fieldName) {
37
- if (value < min || value > max) {
38
- throw new Error(`invalid ${fieldName}: value '${value}' is out of range (${min}-${max})`);
39
- }
40
- return value;
41
- }
42
- function parseCronField(rawField, options) {
43
- const field = rawField.trim();
44
- if (!field) {
45
- throw new Error(`invalid ${options.fieldName}: field cannot be empty`);
46
- }
47
- const values = new Set();
48
- const segments = field.split(",");
49
- for (const rawSegment of segments) {
50
- const segment = rawSegment.trim();
51
- if (!segment) {
52
- throw new Error(`invalid ${options.fieldName}: empty list segment`);
53
- }
54
- const slashParts = segment.split("/");
55
- if (slashParts.length > 2) {
56
- throw new Error(`invalid ${options.fieldName}: too many '/' in '${segment}'`);
57
- }
58
- const base = slashParts[0];
59
- const step = slashParts.length === 2
60
- ? parsePositiveInteger(slashParts[1], `${options.fieldName} step in segment '${segment}'`)
61
- : 1;
62
- let start;
63
- let end;
64
- if (base === "*") {
65
- start = options.min;
66
- end = options.max;
67
- }
68
- else if (base.includes("-")) {
69
- const rangeParts = base.split("-");
70
- if (rangeParts.length !== 2) {
71
- throw new Error(`invalid ${options.fieldName}: invalid range '${base}'`);
72
- }
73
- const parsedStart = validateBounds(parseInteger(rangeParts[0], `${options.fieldName} range start`), options.min, options.max, options.fieldName);
74
- const parsedEnd = validateBounds(parseInteger(rangeParts[1], `${options.fieldName} range end`), options.min, options.max, options.fieldName);
75
- if (parsedStart > parsedEnd) {
76
- throw new Error(`invalid ${options.fieldName}: range start must be <= range end in '${base}'`);
77
- }
78
- start = parsedStart;
79
- end = parsedEnd;
80
- }
81
- else {
82
- const parsedValue = validateBounds(parseInteger(base, options.fieldName), options.min, options.max, options.fieldName);
83
- start = parsedValue;
84
- end = parsedValue;
85
- }
86
- for (let value = start; value <= end; value += step) {
87
- const normalized = options.normalize ? options.normalize(value) : value;
88
- values.add(normalized);
89
- }
90
- }
91
- if (values.size === 0) {
92
- throw new Error(`invalid ${options.fieldName}: no values were selected`);
93
- }
94
- return {
95
- values,
96
- isWildcard: field.startsWith("*"),
97
- };
98
- }
99
- export function parseCronSchedule(expression) {
100
- const trimmed = expression.trim();
101
- if (!trimmed) {
102
- throw new Error("cron expression cannot be empty");
103
- }
104
- const parts = trimmed.split(/\s+/);
105
- if (parts.length !== 5) {
106
- throw new Error("cron expression must have five fields: minute hour day-of-month month day-of-week");
107
- }
108
- return {
109
- expression: trimmed,
110
- minute: parseCronField(parts[0], {
111
- fieldName: "minute",
112
- min: 0,
113
- max: 59,
114
- }),
115
- hour: parseCronField(parts[1], {
116
- fieldName: "hour",
117
- min: 0,
118
- max: 23,
119
- }),
120
- dayOfMonth: parseCronField(parts[2], {
121
- fieldName: "day-of-month",
122
- min: 1,
123
- max: 31,
124
- }),
125
- month: parseCronField(parts[3], {
126
- fieldName: "month",
127
- min: 1,
128
- max: 12,
129
- }),
130
- dayOfWeek: parseCronField(parts[4], {
131
- fieldName: "day-of-week",
132
- min: 0,
133
- max: 7,
134
- normalize: normalizeDayOfWeek,
135
- }),
136
- };
137
- }
138
- function resolveDayMatch(schedule, date) {
139
- const domMatches = schedule.dayOfMonth.values.has(date.getDate());
140
- const dowMatches = schedule.dayOfWeek.values.has(date.getDay());
141
- if (schedule.dayOfMonth.isWildcard || schedule.dayOfWeek.isWildcard) {
142
- return domMatches && dowMatches;
143
- }
144
- return domMatches || dowMatches;
145
- }
146
- export function matchesCronSchedule(schedule, date) {
147
- if (!schedule.minute.values.has(date.getMinutes())) {
148
- return false;
149
- }
150
- if (!schedule.hour.values.has(date.getHours())) {
151
- return false;
152
- }
153
- if (!schedule.month.values.has(date.getMonth() + 1)) {
154
- return false;
155
- }
156
- return resolveDayMatch(schedule, date);
157
- }
158
- function minuteBucket(now) {
159
- return Math.floor(now.getTime() / MILLISECONDS_PER_MINUTE);
160
- }
161
- function readErrorCode(error) {
162
- if (typeof error !== "object" || error === null) {
163
- return undefined;
164
- }
165
- const record = error;
166
- return typeof record.code === "string" ? record.code : undefined;
167
- }
168
- class AsyncCronSchedulerImpl {
169
- jobs;
170
- jobsById;
171
- sessionManager;
172
- additionalSystemMessage;
173
- pollIntervalMs;
174
- maxRunHistory;
175
- now;
176
- onLog;
177
- runHistory = [];
178
- timer;
179
- lastCheckedMinute;
180
- runSequence = 0;
181
- closed = false;
182
- constructor(options) {
183
- this.jobs = Object.entries(options.jobs).map(([id, config]) => ({
184
- id,
185
- config,
186
- schedule: parseCronSchedule(config.schedule),
187
- }));
188
- this.jobsById = new Map(this.jobs.map((job) => [job.id, job]));
189
- this.sessionManager = options.sessionManager;
190
- this.additionalSystemMessage = options.additionalSystemMessage?.trim() || undefined;
191
- this.pollIntervalMs = options.pollIntervalMs ?? MILLISECONDS_PER_SECOND;
192
- this.maxRunHistory = options.maxRunHistory ?? DEFAULT_RUN_HISTORY_LIMIT;
193
- this.now = options.now ?? (() => new Date());
194
- this.onLog = options.onLog;
195
- if (!Number.isInteger(this.pollIntervalMs) || this.pollIntervalMs <= 0) {
196
- throw new Error("cron scheduler pollIntervalMs must be a positive integer");
197
- }
198
- if (!Number.isInteger(this.maxRunHistory) || this.maxRunHistory <= 0) {
199
- throw new Error("cron scheduler maxRunHistory must be a positive integer");
200
- }
201
- this.tick();
202
- this.timer = setInterval(() => {
203
- this.tick();
204
- }, this.pollIntervalMs);
205
- this.timer.unref?.();
206
- this.log("info", "cron scheduler started", { jobCount: this.jobs.length });
207
- }
208
- listJobs() {
209
- return this.jobs.map((job) => ({
210
- id: job.id,
211
- projectId: job.config.projectId,
212
- schedule: job.config.schedule,
213
- prompt: job.config.prompt,
214
- }));
215
- }
216
- listRuns(options) {
217
- const jobId = options?.jobId?.trim();
218
- const limit = options?.limit;
219
- const filtered = [...this.runHistory]
220
- .reverse()
221
- .filter((run) => (jobId ? run.jobId === jobId : true));
222
- if (limit === undefined) {
223
- return filtered.map((run) => ({ ...run }));
224
- }
225
- if (!Number.isInteger(limit) || limit <= 0) {
226
- return [];
227
- }
228
- return filtered.slice(0, limit).map((run) => ({ ...run }));
229
- }
230
- async triggerJobNow(jobId) {
231
- const normalizedJobId = jobId.trim();
232
- const job = this.jobsById.get(normalizedJobId);
233
- if (!job) {
234
- throw new AsyncCronSchedulerError("not_found", `cron job '${normalizedJobId}' not found`);
235
- }
236
- this.log("info", "cron job triggered", {
237
- jobId: job.id,
238
- projectId: job.config.projectId,
239
- schedule: job.config.schedule,
240
- trigger: "manual",
241
- });
242
- return await this.runJob(job, { trigger: "manual" });
243
- }
244
- async close() {
245
- if (this.closed) {
246
- return;
247
- }
248
- this.closed = true;
249
- if (this.timer) {
250
- clearInterval(this.timer);
251
- this.timer = undefined;
252
- }
253
- this.log("info", "cron scheduler stopped");
254
- }
255
- tick() {
256
- if (this.closed || this.jobs.length === 0) {
257
- return;
258
- }
259
- const currentMinute = minuteBucket(this.now());
260
- if (this.lastCheckedMinute === undefined) {
261
- this.lastCheckedMinute = currentMinute - 1;
262
- }
263
- if (currentMinute < this.lastCheckedMinute) {
264
- this.log("warn", "system clock moved backwards, resetting cron cursor", {
265
- currentMinute,
266
- previousMinute: this.lastCheckedMinute,
267
- });
268
- this.lastCheckedMinute = currentMinute - 1;
269
- }
270
- for (let minute = (this.lastCheckedMinute ?? currentMinute) + 1; minute <= currentMinute; minute += 1) {
271
- const slotDate = new Date(minute * MILLISECONDS_PER_MINUTE);
272
- for (const job of this.jobs) {
273
- if (!matchesCronSchedule(job.schedule, slotDate)) {
274
- continue;
275
- }
276
- this.log("info", "cron job triggered", {
277
- jobId: job.id,
278
- projectId: job.config.projectId,
279
- schedule: job.config.schedule,
280
- trigger: "scheduled",
281
- scheduledFor: slotDate.toISOString(),
282
- });
283
- void this.runJob(job, {
284
- trigger: "scheduled",
285
- scheduledFor: slotDate.toISOString(),
286
- });
287
- }
288
- }
289
- this.lastCheckedMinute = currentMinute;
290
- }
291
- async runJob(job, trigger) {
292
- const triggeredAt = this.now().toISOString();
293
- const runId = `${triggeredAt}:${this.runSequence}`;
294
- this.runSequence += 1;
295
- try {
296
- const session = await this.sessionManager.createSession({
297
- projectId: job.config.projectId,
298
- prompt: job.config.prompt,
299
- ...(this.additionalSystemMessage
300
- ? { additionalSystemMessage: this.additionalSystemMessage }
301
- : {}),
302
- });
303
- const run = {
304
- id: runId,
305
- jobId: job.id,
306
- projectId: job.config.projectId,
307
- schedule: job.config.schedule,
308
- trigger: trigger.trigger,
309
- triggeredAt,
310
- ...(trigger.trigger === "scheduled" ? { scheduledFor: trigger.scheduledFor } : {}),
311
- status: "session-created",
312
- sessionId: session.id,
313
- sessionState: session.state,
314
- };
315
- this.pushRun(run);
316
- this.log("info", "cron job session created", {
317
- jobId: job.id,
318
- sessionId: session.id,
319
- projectId: job.config.projectId,
320
- state: session.state,
321
- trigger: trigger.trigger,
322
- });
323
- return { ...run };
324
- }
325
- catch (error) {
326
- const cause = error instanceof Error ? error.message : String(error);
327
- const code = readErrorCode(error);
328
- const run = {
329
- id: runId,
330
- jobId: job.id,
331
- projectId: job.config.projectId,
332
- schedule: job.config.schedule,
333
- trigger: trigger.trigger,
334
- triggeredAt,
335
- ...(trigger.trigger === "scheduled" ? { scheduledFor: trigger.scheduledFor } : {}),
336
- status: "failed",
337
- error: cause,
338
- ...(code ? { errorCode: code } : {}),
339
- };
340
- this.pushRun(run);
341
- this.log("error", "cron job failed to create session", {
342
- jobId: job.id,
343
- projectId: job.config.projectId,
344
- trigger: trigger.trigger,
345
- ...(code ? { code } : {}),
346
- cause,
347
- });
348
- return { ...run };
349
- }
350
- }
351
- pushRun(run) {
352
- this.runHistory.push(run);
353
- if (this.runHistory.length <= this.maxRunHistory) {
354
- return;
355
- }
356
- this.runHistory.splice(0, this.runHistory.length - this.maxRunHistory);
357
- }
358
- log(level, message, data) {
359
- this.onLog?.({
360
- timestamp: this.now().toISOString(),
361
- level,
362
- message,
363
- ...(data === undefined ? {} : { data }),
364
- });
365
- }
366
- }
367
- export function startAsyncCronScheduler(options) {
368
- return new AsyncCronSchedulerImpl(options);
369
- }
370
- //# sourceMappingURL=cron.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../src/core/async/cron.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;AAC7E,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAiFtC,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,IAAI,CAAc;IAElB,YAAY,IAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAQD,SAAS,oBAAoB,CAAC,KAAa,EAAE,SAAiB;IAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,uCAAuC,KAAK,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,uCAAuC,KAAK,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,SAAiB;IACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,+BAA+B,KAAK,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,+BAA+B,KAAK,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,SAAiB;IAChF,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,YAAY,KAAK,sBAAsB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,QAAgB,EAChB,OAA+F;IAE/F,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,SAAS,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,SAAS,sBAAsB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,SAAS,sBAAsB,OAAO,GAAG,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,IAAI,GACR,UAAU,CAAC,MAAM,KAAK,CAAC;YACrB,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,GAAG,OAAO,CAAC,SAAS,qBAAqB,OAAO,GAAG,CAAC;YAC3F,CAAC,CAAC,CAAC,CAAC;QAER,IAAI,KAAa,CAAC;QAClB,IAAI,GAAW,CAAC;QAEhB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;YACpB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,SAAS,oBAAoB,IAAI,GAAG,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,WAAW,GAAG,cAAc,CAChC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,GAAG,OAAO,CAAC,SAAS,cAAc,CAAC,EAChE,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,SAAS,CAClB,CAAC;YACF,MAAM,SAAS,GAAG,cAAc,CAC9B,YAAY,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,GAAG,OAAO,CAAC,SAAS,YAAY,CAAC,EAC9D,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,WAAW,OAAO,CAAC,SAAS,0CAA0C,IAAI,GAAG,CAC9E,CAAC;YACJ,CAAC;YAED,KAAK,GAAG,WAAW,CAAC;YACpB,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,cAAc,CAChC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,EACrC,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,SAAS,CAClB,CAAC;YACF,KAAK,GAAG,WAAW,CAAC;YACpB,GAAG,GAAG,WAAW,CAAC;QACpB,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,SAAS,2BAA2B,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,MAAM;QACN,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE;YAChC,SAAS,EAAE,QAAQ;YACnB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;SACR,CAAC;QACF,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE;YAC9B,SAAS,EAAE,MAAM;YACjB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;SACR,CAAC;QACF,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE;YACpC,SAAS,EAAE,cAAc;YACzB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;SACR,CAAC;QACF,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE;YAC/B,SAAS,EAAE,OAAO;YAClB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;SACR,CAAC;QACF,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE;YACnC,SAAS,EAAE,aAAa;YACxB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,kBAAkB;SAC9B,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAA4B,EAAE,IAAU;IAC/D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhE,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QACpE,OAAO,UAAU,IAAI,UAAU,CAAC;IAClC,CAAC;IAED,OAAO,UAAU,IAAI,UAAU,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA4B,EAAE,IAAU;IAC1E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,GAAS;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,uBAAuB,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,KAA2B,CAAC;IAC3C,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAWD,MAAM,sBAAsB;IACT,IAAI,CAAoB;IACxB,QAAQ,CAA+B;IACvC,cAAc,CAA6C;IAC3D,uBAAuB,CAAU;IACjC,cAAc,CAAS;IACvB,aAAa,CAAS;IACtB,GAAG,CAAa;IAChB,KAAK,CAAsC;IAC3C,UAAU,GAAyB,EAAE,CAAC;IAC/C,KAAK,CAAkB;IACvB,iBAAiB,CAAU;IAC3B,WAAW,GAAG,CAAC,CAAC;IAChB,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,OAAkC;QAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,EAAE;YACF,MAAM;YACN,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC7C,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QACpF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,uBAAuB,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,yBAAyB,CAAC;QACxE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAExB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAErB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;YAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;SAC1B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,OAAkC;QACzC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;aAClC,OAAO,EAAE;aACT,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,uBAAuB,CAAC,WAAW,EAAE,aAAa,eAAe,aAAa,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE;YACrC,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;YAC7B,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC7C,CAAC;IAEO,IAAI;QACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,GAAG,aAAa,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qDAAqD,EAAE;gBACtE,aAAa;gBACb,cAAc,EAAE,IAAI,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,aAAa,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,KACE,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,aAAa,CAAC,GAAG,CAAC,EAC1D,MAAM,IAAI,aAAa,EACvB,MAAM,IAAI,CAAC,EACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,CAAC;YAE5D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACjD,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE;oBACrC,KAAK,EAAE,GAAG,CAAC,EAAE;oBACb,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;oBAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;oBAC7B,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE;iBACrC,CAAC,CAAC;gBAEH,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;oBACpB,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE;iBACrC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,MAAM,CAClB,GAAoB,EACpB,OAA6B;QAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;gBACtD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;gBAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;gBACzB,GAAG,CAAC,IAAI,CAAC,uBAAuB;oBAC9B,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE;oBAC3D,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YAEH,MAAM,GAAG,GAAuB;gBAC9B,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;gBAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;gBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW;gBACX,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,YAAY,EAAE,OAAO,CAAC,KAAK;aAC5B,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE;gBAC3C,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;gBAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,GAAG,GAAuB;gBAC9B,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;gBAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;gBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW;gBACX,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,KAAK;gBACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,EAAE;gBACrD,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;gBAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,KAAK;aACN,CAAC,CAAC;YAEH,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,GAAuB;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACzE,CAAC;IAEO,GAAG,CAAC,KAAwB,EAAE,OAAe,EAAE,IAAc;QACnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,OAAO;YACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAkC;IACxE,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,120 +0,0 @@
1
- import { startAsyncCronScheduler } from "./cron.js";
2
- import { startAsyncHttpServer } from "./http_server.js";
3
- import { startAsyncTelegramAdapter } from "./telegram.js";
4
- export class AsyncDaemonRuntimeError extends Error {
5
- constructor(message) {
6
- super(message);
7
- this.name = "AsyncDaemonRuntimeError";
8
- }
9
- }
10
- const defaultDeps = {
11
- startCronScheduler: startAsyncCronScheduler,
12
- startHttpServer: startAsyncHttpServer,
13
- startTelegramAdapter: startAsyncTelegramAdapter,
14
- };
15
- async function closeRuntimeResources(resources) {
16
- await Promise.allSettled([
17
- ...(resources.httpServer ? [resources.httpServer.close()] : []),
18
- ...(resources.telegramAdapters ?? []).map((adapter) => adapter.close()),
19
- ...(resources.cronScheduler ? [resources.cronScheduler.close()] : []),
20
- ...(resources.sessionManager ? [resources.sessionManager.close()] : []),
21
- ]);
22
- }
23
- class AsyncDaemonRuntime {
24
- baseUrl;
25
- resources;
26
- closePromise;
27
- constructor(resources) {
28
- this.resources = resources;
29
- this.baseUrl = resources.httpServer.baseUrl;
30
- }
31
- async close() {
32
- if (this.closePromise) {
33
- await this.closePromise;
34
- return;
35
- }
36
- this.closePromise = closeRuntimeResources(this.resources);
37
- await this.closePromise;
38
- }
39
- }
40
- export async function startAsyncDaemonRuntime(options) {
41
- const deps = {
42
- ...defaultDeps,
43
- ...options.deps,
44
- };
45
- const telegramConfigs = options.daemonConfig.telegram
46
- ? Object.entries(options.daemonConfig.telegram)
47
- : [];
48
- let cronScheduler;
49
- let httpServer;
50
- const telegramAdapters = [];
51
- try {
52
- if (options.daemonConfig.cronJobs !== undefined) {
53
- cronScheduler = deps.startCronScheduler({
54
- jobs: options.daemonConfig.cronJobs,
55
- sessionManager: options.sessionManager,
56
- additionalSystemMessage: options.daemonConfig.cron?.systemMessage,
57
- onLog: (entry) => {
58
- options.onLog?.(`[cron:${entry.level}] ${entry.message}`);
59
- },
60
- });
61
- options.onLog?.("tau async cron scheduler enabled");
62
- }
63
- httpServer = await deps.startHttpServer({
64
- host: options.daemonConfig.host,
65
- port: options.daemonConfig.port,
66
- authToken: options.authToken,
67
- sessionManager: options.sessionManager,
68
- ...(cronScheduler ? { cronScheduler } : {}),
69
- });
70
- for (const [botId, telegramConfig] of telegramConfigs) {
71
- if (!telegramConfig.botToken) {
72
- throw new AsyncDaemonRuntimeError(`telegram bot '${botId}' is missing required botToken`);
73
- }
74
- const allowedProjectIds = telegramConfig.allowedProjectIds ?? Object.keys(options.daemonConfig.projects);
75
- const scopedProjects = {};
76
- for (const projectId of allowedProjectIds) {
77
- const project = options.daemonConfig.projects[projectId];
78
- if (project) {
79
- scopedProjects[projectId] = project;
80
- }
81
- }
82
- const telegramAdapter = await deps.startTelegramAdapter({
83
- botId,
84
- botToken: telegramConfig.botToken,
85
- projects: scopedProjects,
86
- defaultProjectId: telegramConfig.defaultProjectId,
87
- systemMessage: telegramConfig.systemMessage,
88
- allowedUserIds: telegramConfig.allowedUserIds,
89
- allowedChatIds: telegramConfig.allowedChatIds,
90
- pollIntervalMs: telegramConfig.pollIntervalMs,
91
- requestTimeoutSeconds: telegramConfig.requestTimeoutSeconds,
92
- speechToTextProvider: options.speechToTextProvider,
93
- geminiApiKey: options.geminiApiKey,
94
- mistralApiKey: options.mistralApiKey,
95
- sessionManager: options.sessionManager,
96
- onLog: (entry) => {
97
- options.onLog?.(`[telegram:${botId}:${entry.level}] ${entry.message}`);
98
- },
99
- });
100
- telegramAdapters.push(telegramAdapter);
101
- options.onLog?.(`tau async telegram adapter enabled (${botId})`);
102
- }
103
- }
104
- catch (error) {
105
- await closeRuntimeResources({
106
- httpServer,
107
- telegramAdapters,
108
- cronScheduler,
109
- sessionManager: options.sessionManager,
110
- });
111
- throw new AsyncDaemonRuntimeError(`failed to start async adapters: ${error instanceof Error ? error.message : String(error)}`);
112
- }
113
- return new AsyncDaemonRuntime({
114
- httpServer,
115
- telegramAdapters,
116
- cronScheduler,
117
- sessionManager: options.sessionManager,
118
- });
119
- }
120
- //# sourceMappingURL=daemon_runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon_runtime.js","sourceRoot":"","sources":["../../../src/core/async/daemon_runtime.ts"],"names":[],"mappings":"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"}