@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,177 +0,0 @@
1
- import { z } from "zod";
2
- import { formatZodError } from "../utils/zod.js";
3
- const DEFAULT_MAX_JSON_BODY_BYTES = 1_000_000;
4
- export class AsyncHttpRequestParseError extends Error {
5
- statusCode;
6
- constructor(message, statusCode = 400) {
7
- super(message);
8
- this.name = "AsyncHttpRequestParseError";
9
- this.statusCode = statusCode;
10
- }
11
- }
12
- export class AsyncHttpBodyTooLargeError extends Error {
13
- maxBytes;
14
- constructor(maxBytes) {
15
- super(`request body exceeds ${maxBytes} bytes`);
16
- this.name = "AsyncHttpBodyTooLargeError";
17
- this.maxBytes = maxBytes;
18
- }
19
- }
20
- export class AsyncHttpBodyParseError extends Error {
21
- constructor() {
22
- super("request body is not valid json");
23
- this.name = "AsyncHttpBodyParseError";
24
- }
25
- }
26
- export async function readJsonBody(request, options) {
27
- const maxBytes = options?.maxBytes ?? DEFAULT_MAX_JSON_BODY_BYTES;
28
- let body = "";
29
- let bytes = 0;
30
- request.setEncoding("utf8");
31
- for await (const chunk of request) {
32
- const textChunk = typeof chunk === "string" ? chunk : String(chunk);
33
- bytes += Buffer.byteLength(textChunk);
34
- if (bytes > maxBytes) {
35
- throw new AsyncHttpBodyTooLargeError(maxBytes);
36
- }
37
- body += textChunk;
38
- }
39
- if (!body.trim()) {
40
- return {};
41
- }
42
- try {
43
- return JSON.parse(body);
44
- }
45
- catch {
46
- throw new AsyncHttpBodyParseError();
47
- }
48
- }
49
- export function sendJson(response, statusCode, payload) {
50
- response.statusCode = statusCode;
51
- response.setHeader("content-type", "application/json; charset=utf-8");
52
- response.end(`${JSON.stringify(payload)}\n`);
53
- }
54
- export function sendError(response, statusCode, error) {
55
- sendJson(response, statusCode, { error });
56
- }
57
- export function sendOk(response, statusCode, data) {
58
- sendJson(response, statusCode, { ok: true, data });
59
- }
60
- function decodePathSegment(segment, errorMessage) {
61
- try {
62
- const decoded = decodeURIComponent(segment);
63
- if (!decoded) {
64
- throw new Error("empty");
65
- }
66
- return decoded;
67
- }
68
- catch {
69
- throw new AsyncHttpRequestParseError(errorMessage);
70
- }
71
- }
72
- function decodeSessionRoute(route) {
73
- return (segment) => ({
74
- route,
75
- sessionId: decodePathSegment(segment, "invalid session id"),
76
- });
77
- }
78
- const dynamicRoutes = [
79
- [/^\/v1\/sessions\/([^/]+)$/, "GET", decodeSessionRoute("get-session")],
80
- [/^\/v1\/sessions\/([^/]+)\/logs$/, "GET", decodeSessionRoute("get-session-logs")],
81
- [/^\/v1\/sessions\/([^/]+)\/messages$/, "POST", decodeSessionRoute("send-message")],
82
- [/^\/v1\/sessions\/([^/]+)\/interrupt$/, "POST", decodeSessionRoute("interrupt-session")],
83
- [
84
- /^\/v1\/cron\/jobs\/([^/]+)\/run$/,
85
- "POST",
86
- (segment) => ({
87
- route: "trigger-cron-job",
88
- jobId: decodePathSegment(segment, "invalid cron job id"),
89
- }),
90
- ],
91
- ];
92
- export function decodeAsyncHttpRoute(method, pathname) {
93
- if (pathname === "/healthz") {
94
- return { route: "healthz" };
95
- }
96
- if (pathname === "/v1/sessions") {
97
- return method === "POST"
98
- ? { route: "create-session" }
99
- : method === "GET"
100
- ? { route: "list-sessions" }
101
- : "method-not-allowed";
102
- }
103
- if (pathname === "/v1/cron/jobs") {
104
- return method === "GET" ? { route: "list-cron-jobs" } : "method-not-allowed";
105
- }
106
- if (pathname === "/v1/cron/runs") {
107
- return method === "GET" ? { route: "list-cron-runs" } : "method-not-allowed";
108
- }
109
- for (const [pattern, expectedMethod, decode] of dynamicRoutes) {
110
- const segment = pattern.exec(pathname)?.[1];
111
- if (segment !== undefined) {
112
- return method === expectedMethod ? decode(segment) : "method-not-allowed";
113
- }
114
- }
115
- return "not-found";
116
- }
117
- const trimmedNonEmptyStringSchema = z
118
- .string()
119
- .transform((value) => value.trim())
120
- .pipe(z.string().min(1));
121
- const createSessionBodySchema = z
122
- .object({
123
- projectId: trimmedNonEmptyStringSchema,
124
- prompt: trimmedNonEmptyStringSchema.optional(),
125
- })
126
- .strict();
127
- const sendMessageBodySchema = z
128
- .object({
129
- text: trimmedNonEmptyStringSchema,
130
- mode: z.enum(["submit", "steer"]).optional(),
131
- additionalSystemMessage: trimmedNonEmptyStringSchema.optional(),
132
- })
133
- .strict();
134
- const cronRunsQueryInputSchema = z
135
- .object({
136
- jobId: z.array(z.string()).max(1).optional(),
137
- limit: z.array(z.string()).max(1).optional(),
138
- })
139
- .strict();
140
- const positiveIntegerSchema = z
141
- .string()
142
- .regex(/^\d+$/)
143
- .transform((value) => Number.parseInt(value, 10))
144
- .pipe(z.number().int().safe().positive());
145
- function parseSchemaOrThrow(schema, raw, context) {
146
- const parsed = schema.safeParse(raw);
147
- if (!parsed.success) {
148
- throw new AsyncHttpRequestParseError(`${context}: ${formatZodError(parsed.error)}`);
149
- }
150
- return parsed.data;
151
- }
152
- export function parseCreateSessionBody(raw) {
153
- return parseSchemaOrThrow(createSessionBodySchema, raw, "invalid create-session body");
154
- }
155
- export function parseSendMessageBody(raw) {
156
- return parseSchemaOrThrow(sendMessageBodySchema, raw, "invalid send-message body");
157
- }
158
- export function parseCronRunsQuery(searchParams) {
159
- const query = {};
160
- for (const [key, value] of searchParams) {
161
- const values = query[key];
162
- if (values) {
163
- values.push(value);
164
- }
165
- else {
166
- query[key] = [value];
167
- }
168
- }
169
- const parsed = parseSchemaOrThrow(cronRunsQueryInputSchema, query, "invalid cron-runs query");
170
- const parseOptional = (value, schema, key) => value
171
- ? parseSchemaOrThrow(schema, value[0], `invalid cron-runs query parameter ${key}`)
172
- : undefined;
173
- const jobId = parseOptional(parsed.jobId, trimmedNonEmptyStringSchema, "jobId");
174
- const limit = parseOptional(parsed.limit, positiveIntegerSchema, "limit");
175
- return { ...(jobId === undefined ? {} : { jobId }), ...(limit === undefined ? {} : { limit }) };
176
- }
177
- //# sourceMappingURL=http_protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http_protocol.js","sourceRoot":"","sources":["../../../src/core/async/http_protocol.ts"],"names":[],"mappings":"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"}
@@ -1,278 +0,0 @@
1
- import { timingSafeEqual } from "node:crypto";
2
- import { createServer } from "node:http";
3
- import { assertNever } from "../utils/never.js";
4
- import { AsyncCronSchedulerError, } from "./cron.js";
5
- import { AsyncHttpBodyParseError, AsyncHttpBodyTooLargeError, AsyncHttpRequestParseError, decodeAsyncHttpRoute, parseCreateSessionBody, parseCronRunsQuery, parseSendMessageBody, readJsonBody, sendError, sendOk, } from "./http_protocol.js";
6
- import { AsyncSessionManagerError, } from "./session_manager.js";
7
- function isAuthorized(request, authToken) {
8
- const header = request.headers.authorization;
9
- if (typeof header !== "string") {
10
- return false;
11
- }
12
- const expected = Buffer.from(`Bearer ${authToken}`);
13
- const received = Buffer.from(header);
14
- if (expected.length !== received.length) {
15
- return false;
16
- }
17
- return timingSafeEqual(expected, received);
18
- }
19
- function mapSessionErrorStatus(error) {
20
- switch (error.code) {
21
- case "not_found":
22
- return 404;
23
- case "busy":
24
- return 409;
25
- case "invalid_project":
26
- case "invalid_state":
27
- case "not_ready":
28
- case "max_sessions":
29
- return 400;
30
- }
31
- }
32
- async function readRequestBody(request, response) {
33
- try {
34
- return await readJsonBody(request);
35
- }
36
- catch (error) {
37
- if (error instanceof AsyncHttpBodyParseError) {
38
- sendError(response, 400, "invalid request body");
39
- return undefined;
40
- }
41
- if (error instanceof AsyncHttpBodyTooLargeError) {
42
- sendError(response, 413, "request body too large");
43
- return undefined;
44
- }
45
- throw error;
46
- }
47
- }
48
- function handleManagerError(response, error, fallbackMessage) {
49
- if (error instanceof AsyncSessionManagerError) {
50
- sendError(response, mapSessionErrorStatus(error), error.message);
51
- return;
52
- }
53
- sendError(response, 500, fallbackMessage);
54
- }
55
- function serializeSession(session) {
56
- return { ...session };
57
- }
58
- function serializeCronRun(run) {
59
- return { ...run };
60
- }
61
- export async function startAsyncHttpServer(options) {
62
- const server = createServer((request, response) => {
63
- void (async () => {
64
- try {
65
- if (typeof request.method !== "string") {
66
- sendError(response, 400, "invalid request method");
67
- return;
68
- }
69
- if (typeof request.url !== "string") {
70
- sendError(response, 400, "invalid request url");
71
- return;
72
- }
73
- const method = request.method;
74
- const url = new URL(request.url, `http://${options.host}:${options.port}`);
75
- if (url.pathname.startsWith("/v1/") && !isAuthorized(request, options.authToken)) {
76
- response.setHeader("www-authenticate", 'Bearer realm="tau-async"');
77
- sendError(response, 401, "unauthorized");
78
- return;
79
- }
80
- let route;
81
- try {
82
- route = decodeAsyncHttpRoute(method, url.pathname);
83
- }
84
- catch (error) {
85
- if (error instanceof AsyncHttpRequestParseError) {
86
- sendError(response, error.statusCode, error.message);
87
- return;
88
- }
89
- throw error;
90
- }
91
- if (route === "not-found") {
92
- sendError(response, 404, "not found");
93
- return;
94
- }
95
- if (route === "method-not-allowed") {
96
- sendError(response, 405, "method not allowed");
97
- return;
98
- }
99
- switch (route.route) {
100
- case "healthz": {
101
- sendOk(response, 200, { status: "ok" });
102
- return;
103
- }
104
- case "create-session": {
105
- try {
106
- const rawBody = await readRequestBody(request, response);
107
- if (rawBody === undefined) {
108
- return;
109
- }
110
- const parsed = parseCreateSessionBody(rawBody);
111
- const session = await options.sessionManager.createSession(parsed);
112
- sendOk(response, 201, { session: serializeSession(session) });
113
- }
114
- catch (error) {
115
- if (error instanceof AsyncHttpRequestParseError) {
116
- sendError(response, error.statusCode, error.message);
117
- return;
118
- }
119
- handleManagerError(response, error, "failed to create session");
120
- }
121
- return;
122
- }
123
- case "list-sessions": {
124
- const sessions = options.sessionManager.listSessions().map(serializeSession);
125
- sendOk(response, 200, { sessions });
126
- return;
127
- }
128
- case "get-session": {
129
- const session = options.sessionManager.getSession(route.sessionId);
130
- if (!session) {
131
- sendError(response, 404, "session not found");
132
- return;
133
- }
134
- sendOk(response, 200, { session: serializeSession(session) });
135
- return;
136
- }
137
- case "get-session-logs": {
138
- const logs = options.sessionManager.getLogs(route.sessionId);
139
- if (!logs) {
140
- sendError(response, 404, "session not found");
141
- return;
142
- }
143
- sendOk(response, 200, { logs });
144
- return;
145
- }
146
- case "send-message": {
147
- try {
148
- const rawBody = await readRequestBody(request, response);
149
- if (rawBody === undefined) {
150
- return;
151
- }
152
- const parsed = parseSendMessageBody(rawBody);
153
- const sendOptions = parsed.mode !== undefined || parsed.additionalSystemMessage !== undefined
154
- ? {
155
- ...(parsed.mode === undefined ? {} : { mode: parsed.mode }),
156
- ...(parsed.additionalSystemMessage === undefined
157
- ? {}
158
- : { additionalSystemMessage: parsed.additionalSystemMessage }),
159
- }
160
- : undefined;
161
- const session = await options.sessionManager.sendMessage(route.sessionId, parsed.text, sendOptions);
162
- sendOk(response, 200, { session: serializeSession(session) });
163
- }
164
- catch (error) {
165
- if (error instanceof AsyncHttpRequestParseError) {
166
- sendError(response, error.statusCode, error.message);
167
- return;
168
- }
169
- handleManagerError(response, error, "failed to send message");
170
- }
171
- return;
172
- }
173
- case "interrupt-session": {
174
- try {
175
- const interrupted = await options.sessionManager.interruptSession(route.sessionId);
176
- sendOk(response, 200, {
177
- session: serializeSession(interrupted.session),
178
- interrupted: interrupted.interrupted,
179
- isTurnRunning: interrupted.isTurnRunning,
180
- });
181
- }
182
- catch (error) {
183
- handleManagerError(response, error, "failed to interrupt session");
184
- }
185
- return;
186
- }
187
- case "list-cron-jobs": {
188
- const cronScheduler = options.cronScheduler;
189
- if (!cronScheduler) {
190
- sendError(response, 404, "cron scheduler not enabled");
191
- return;
192
- }
193
- sendOk(response, 200, { jobs: cronScheduler.listJobs() });
194
- return;
195
- }
196
- case "list-cron-runs": {
197
- const cronScheduler = options.cronScheduler;
198
- if (!cronScheduler) {
199
- sendError(response, 404, "cron scheduler not enabled");
200
- return;
201
- }
202
- try {
203
- const query = parseCronRunsQuery(url.searchParams);
204
- const runs = cronScheduler.listRuns(query).map(serializeCronRun);
205
- sendOk(response, 200, { runs });
206
- }
207
- catch (error) {
208
- if (error instanceof AsyncHttpRequestParseError) {
209
- sendError(response, error.statusCode, error.message);
210
- return;
211
- }
212
- throw error;
213
- }
214
- return;
215
- }
216
- case "trigger-cron-job": {
217
- const cronScheduler = options.cronScheduler;
218
- if (!cronScheduler) {
219
- sendError(response, 404, "cron scheduler not enabled");
220
- return;
221
- }
222
- try {
223
- const run = await cronScheduler.triggerJobNow(route.jobId);
224
- sendOk(response, 200, { run: serializeCronRun(run) });
225
- }
226
- catch (error) {
227
- if (error instanceof AsyncCronSchedulerError && error.code === "not_found") {
228
- sendError(response, 404, "cron job not found");
229
- return;
230
- }
231
- sendError(response, 500, "failed to trigger cron job");
232
- }
233
- return;
234
- }
235
- default:
236
- assertNever(route);
237
- }
238
- }
239
- catch {
240
- if (!response.headersSent) {
241
- sendError(response, 500, "internal server error");
242
- return;
243
- }
244
- if (!response.writableEnded) {
245
- response.end();
246
- }
247
- }
248
- })();
249
- });
250
- await new Promise((resolvePromise, rejectPromise) => {
251
- server.once("error", rejectPromise);
252
- server.listen(options.port, options.host, () => {
253
- server.off("error", rejectPromise);
254
- resolvePromise();
255
- });
256
- });
257
- const address = server.address();
258
- if (!address || typeof address === "string") {
259
- throw new Error("failed to resolve async server address");
260
- }
261
- const host = address.address;
262
- const port = address.port;
263
- return {
264
- host,
265
- port,
266
- baseUrl: `http://${host}:${port}`,
267
- close: () => new Promise((resolvePromise, rejectPromise) => {
268
- server.close((error) => {
269
- if (error) {
270
- rejectPromise(error);
271
- return;
272
- }
273
- resolvePromise();
274
- });
275
- }),
276
- };
277
- }
278
- //# sourceMappingURL=http_server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http_server.js","sourceRoot":"","sources":["../../../src/core/async/http_server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAGL,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,SAAS,EACT,MAAM,GACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAiB9B,SAAS,YAAY,CAAC,OAAwB,EAAE,SAAiB;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA+B;IAC5D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc;YACjB,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAwB,EACxB,QAAwB;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;YAC7C,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;YAChD,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAwB,EACxB,KAAc,EACd,eAAuB;IAEvB,IAAI,KAAK,YAAY,wBAAwB,EAAE,CAAC;QAC9C,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA2B;IACnD,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAuB;IAC/C,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA+B;IAE/B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QAChD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACvC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACpC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;oBAChD,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE3E,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjF,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;oBACnE,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,IAAI,KAA8C,CAAC;gBACnD,IAAI,CAAC;oBACH,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;wBAChD,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;wBACrD,OAAO;oBACT,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC1B,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;oBACtC,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACnC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBAED,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;oBACpB,KAAK,SAAS,CAAC,CAAC,CAAC;wBACf,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxC,OAAO;oBACT,CAAC;oBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;wBACtB,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;4BACzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gCAC1B,OAAO;4BACT,CAAC;4BAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;4BAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BACnE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChE,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;gCAChD,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gCACrD,OAAO;4BACT,CAAC;4BAED,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;wBAClE,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,KAAK,eAAe,CAAC,CAAC,CAAC;wBACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAC7E,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACpC,OAAO;oBACT,CAAC;oBAED,KAAK,aAAa,CAAC,CAAC,CAAC;wBACnB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBACnE,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;4BAC9C,OAAO;wBACT,CAAC;wBACD,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC9D,OAAO;oBACT,CAAC;oBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;wBACxB,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;4BACV,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;4BAC9C,OAAO;wBACT,CAAC;wBACD,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChC,OAAO;oBACT,CAAC;oBAED,KAAK,cAAc,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;4BACzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gCAC1B,OAAO;4BACT,CAAC;4BAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;4BAC7C,MAAM,WAAW,GACf,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,uBAAuB,KAAK,SAAS;gCACvE,CAAC,CAAC;oCACE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;oCAC3D,GAAG,CAAC,MAAM,CAAC,uBAAuB,KAAK,SAAS;wCAC9C,CAAC,CAAC,EAAE;wCACJ,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,EAAE,CAAC;iCACjE;gCACH,CAAC,CAAC,SAAS,CAAC;4BAChB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,CACtD,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,IAAI,EACX,WAAW,CACZ,CAAC;4BACF,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChE,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;gCAChD,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gCACrD,OAAO;4BACT,CAAC;4BAED,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC;wBAChE,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC;4BACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;4BACnF,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE;gCACpB,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC;gCAC9C,WAAW,EAAE,WAAW,CAAC,WAAW;gCACpC,aAAa,EAAE,WAAW,CAAC,aAAa;6BACzC,CAAC,CAAC;wBACL,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;wBACrE,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;wBACtB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;wBAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;4BACvD,OAAO;wBACT,CAAC;wBAED,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBAC1D,OAAO;oBACT,CAAC;oBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;wBACtB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;wBAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;4BACvD,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC;4BACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BACnD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;4BACjE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClC,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;gCAChD,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gCACrD,OAAO;4BACT,CAAC;4BAED,MAAM,KAAK,CAAC;wBACd,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;wBACxB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;wBAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;4BACvD,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC;4BACH,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BAC3D,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACxD,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,uBAAuB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gCAC3E,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;gCAC/C,OAAO;4BACT,CAAC;4BAED,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;wBACzD,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED;wBACE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC1B,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;oBAClD,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACxD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACnC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE;QACjC,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;YAClD,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,KAAK,EAAE,CAAC;oBACV,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACL,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- export { AsyncCliError, printAsyncHelp, runAsyncCommand } from "./cli.js";
2
- export { AsyncCronSchedulerError, matchesCronSchedule, parseCronSchedule, startAsyncCronScheduler, } from "./cron.js";
3
- export { AsyncDaemonRuntimeError, startAsyncDaemonRuntime } from "./daemon_runtime.js";
4
- export { AsyncHttpRequestParseError, decodeAsyncHttpRoute, parseCreateSessionBody, parseCronRunsQuery, parseSendMessageBody, readJsonBody, sendError, sendJson, sendOk, } from "./http_protocol.js";
5
- export { startAsyncHttpServer } from "./http_server.js";
6
- export { AsyncDaemonConfigError, loadAsyncDaemonConfig } from "./server_config.js";
7
- export { AsyncSessionManagerError, createAsyncSessionManager, createScopedAsyncSessionManager, } from "./session_manager.js";
8
- export { startAsyncTelegramAdapter } from "./telegram.js";
9
- export { cleanupWorkspacePath, cleanupWorkspaceRootsOnStartup, prepareWorkspace, resolveWorkspacePath, } from "./workspace.js";
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/async/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAe1E,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAgBnF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAS1D,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC"}