@monotykamary/localterm-server 1.16.4 → 1.17.1

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 (47) hide show
  1. package/dist/automation-run-tracker.d.ts +9 -0
  2. package/dist/automation-run-tracker.d.ts.map +1 -0
  3. package/dist/automation-run-tracker.js +38 -0
  4. package/dist/automation-run-tracker.js.map +1 -0
  5. package/dist/automation-scheduler.d.ts +20 -0
  6. package/dist/automation-scheduler.d.ts.map +1 -0
  7. package/dist/automation-scheduler.js +62 -0
  8. package/dist/automation-scheduler.js.map +1 -0
  9. package/dist/automation-store.d.ts +16 -0
  10. package/dist/automation-store.d.ts.map +1 -0
  11. package/dist/automation-store.js +102 -0
  12. package/dist/automation-store.js.map +1 -0
  13. package/dist/constants.d.ts +12 -0
  14. package/dist/constants.d.ts.map +1 -1
  15. package/dist/constants.js +17 -0
  16. package/dist/constants.js.map +1 -1
  17. package/dist/cron-expression.d.ts +13 -0
  18. package/dist/cron-expression.d.ts.map +1 -0
  19. package/dist/cron-expression.js +176 -0
  20. package/dist/cron-expression.js.map +1 -0
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +173 -5
  24. package/dist/index.js.map +1 -1
  25. package/dist/protocol.d.ts +5 -3
  26. package/dist/protocol.d.ts.map +1 -1
  27. package/dist/protocol.js +3 -2
  28. package/dist/protocol.js.map +1 -1
  29. package/dist/schemas.d.ts +153 -0
  30. package/dist/schemas.d.ts.map +1 -1
  31. package/dist/schemas.js +65 -1
  32. package/dist/schemas.js.map +1 -1
  33. package/dist/session.d.ts +4 -0
  34. package/dist/session.d.ts.map +1 -1
  35. package/dist/session.js +45 -0
  36. package/dist/session.js.map +1 -1
  37. package/dist/types.d.ts +15 -1
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/utils/compute-next-automation-run-at.d.ts +3 -0
  40. package/dist/utils/compute-next-automation-run-at.d.ts.map +1 -0
  41. package/dist/utils/compute-next-automation-run-at.js +10 -0
  42. package/dist/utils/compute-next-automation-run-at.js.map +1 -0
  43. package/dist/utils/parse-osc-automation-exit.d.ts +2 -0
  44. package/dist/utils/parse-osc-automation-exit.d.ts.map +1 -0
  45. package/dist/utils/parse-osc-automation-exit.js +37 -0
  46. package/dist/utils/parse-osc-automation-exit.js.map +1 -0
  47. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -1,17 +1,24 @@
1
1
  import fs from "node:fs";
2
+ import os from "node:os";
2
3
  import path from "node:path";
3
4
  import { serve } from "@hono/node-server";
4
5
  import { createNodeWebSocket } from "@hono/node-ws";
5
6
  import { Hono } from "hono";
6
- import { DEFAULT_HOST, DEFAULT_PORT, HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_NOT_FOUND, MAX_CONCURRENT_SESSIONS, OUTPUT_BATCH_FLUSH_BYTES, OUTPUT_BATCH_WINDOW_MS, SERVER_STOP_GRACE_MS, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_HEARTBEAT_INTERVAL_MS, WS_HEARTBEAT_TIMEOUT_MS, WS_OUTBOUND_DRAIN_POLL_MS, WS_OUTBOUND_PAUSE_HIGH_WATER_BYTES, WS_OUTBOUND_RESUME_LOW_WATER_BYTES, WS_READY_STATE_OPEN, } from "./constants.js";
7
+ import open from "open";
8
+ import { AutomationRunTracker } from "./automation-run-tracker.js";
9
+ import { AutomationScheduler } from "./automation-scheduler.js";
10
+ import { AutomationStore } from "./automation-store.js";
11
+ import { DEFAULT_HOST, DEFAULT_PORT, FRIENDLY_HOSTNAME, HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_CREATED, HTTP_STATUS_NOT_FOUND, MAX_AUTOMATIONS, MAX_CONCURRENT_SESSIONS, OUTPUT_BATCH_FLUSH_BYTES, OUTPUT_BATCH_WINDOW_MS, SERVER_STOP_GRACE_MS, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_HEARTBEAT_INTERVAL_MS, WS_HEARTBEAT_TIMEOUT_MS, WS_OUTBOUND_DRAIN_POLL_MS, WS_OUTBOUND_PAUSE_HIGH_WATER_BYTES, WS_OUTBOUND_RESUME_LOW_WATER_BYTES, WS_READY_STATE_OPEN, } from "./constants.js";
7
12
  import { ServerErrorException, serverError } from "./errors.js";
8
13
  import { getGitDiff, getGitDiffSummary } from "./git-diff.js";
9
14
  import { GitDiffWatcher } from "./git-diff-watcher.js";
10
- import { clientToServerMessageSchema } from "./schemas.js";
15
+ import { parseCronExpression } from "./cron-expression.js";
16
+ import { clientToServerMessageSchema, createAutomationInputSchema, updateAutomationInputSchema, } from "./schemas.js";
11
17
  import { Session } from "./session.js";
12
18
  import { createNetworkPolicyMiddleware, isAllowedSourceIp, isLoopbackHost } from "./security.js";
13
19
  import { SessionRegistry } from "./session-registry.js";
14
20
  import { resolveStaticAsset } from "./static-resolver.js";
21
+ import { computeNextAutomationRunAt } from "./utils/compute-next-automation-run-at.js";
15
22
  const getRawBufferedAmount = (raw) => {
16
23
  if (!raw || typeof raw !== "object")
17
24
  return 0;
@@ -85,6 +92,48 @@ export const createServer = async (options = {}) => {
85
92
  app.use("*", createNetworkPolicyMiddleware(host));
86
93
  const { injectWebSocket, upgradeWebSocket, wss } = createNodeWebSocket({ app });
87
94
  wss.options.maxPayload = 256 * 1024;
95
+ const stateDirectory = options.stateDirectory ?? path.join(os.homedir(), ".localterm");
96
+ const automationStore = new AutomationStore(path.join(stateDirectory, "automations.json"));
97
+ const automationRunTracker = new AutomationRunTracker();
98
+ const automationScheduler = new AutomationScheduler(automationStore);
99
+ const clientSockets = new Set();
100
+ const openUrl = options.openUrl ??
101
+ (async (url) => {
102
+ await open(url);
103
+ });
104
+ const toAutomationWithNextRun = (automation, from) => ({
105
+ ...automation,
106
+ nextRunAt: computeNextAutomationRunAt(automation, from),
107
+ });
108
+ const listAutomationsWithNextRun = () => {
109
+ const from = new Date();
110
+ return automationStore.list().map((automation) => toAutomationWithNextRun(automation, from));
111
+ };
112
+ const broadcastAutomations = () => {
113
+ const payload = {
114
+ type: "automations",
115
+ automations: listAutomationsWithNextRun(),
116
+ };
117
+ for (const clientSocket of clientSockets) {
118
+ safeSend(clientSocket, payload);
119
+ }
120
+ };
121
+ const launchAutomationRun = (automation) => {
122
+ const run = automationRunTracker.create(automation);
123
+ automationStore.recordLastRun(automation.id, {
124
+ runId: run.runId,
125
+ at: run.createdAt,
126
+ status: "launched",
127
+ exitCode: null,
128
+ });
129
+ broadcastAutomations();
130
+ const runUrl = `http://${FRIENDLY_HOSTNAME}:${actualPort}/?run=${run.runId}`;
131
+ void openUrl(runUrl).catch((error) => {
132
+ const message = error instanceof Error ? error.message : String(error);
133
+ console.warn(`failed to open a browser tab for automation "${automation.name}": ${message}`);
134
+ });
135
+ return run;
136
+ };
88
137
  const api = new Hono();
89
138
  api.get("/health", (context) => context.json({ ok: true, sessions: registry.size() }));
90
139
  // Same validation as the WS `?cwd=` param: must exist and be a directory.
@@ -112,6 +161,62 @@ export const createServer = async (options = {}) => {
112
161
  return context.json({ error: "invalid_cwd" }, HTTP_STATUS_BAD_REQUEST);
113
162
  return context.json(await getGitDiff(cwd));
114
163
  });
164
+ const readJsonBody = async (context) => {
165
+ try {
166
+ return await context.req.json();
167
+ }
168
+ catch {
169
+ return undefined;
170
+ }
171
+ };
172
+ api.get("/automations", (context) => context.json({ automations: listAutomationsWithNextRun() }));
173
+ api.post("/automations", async (context) => {
174
+ const parsed = createAutomationInputSchema.safeParse(await readJsonBody(context));
175
+ if (!parsed.success)
176
+ return context.json({ error: "invalid_body" }, HTTP_STATUS_BAD_REQUEST);
177
+ if (automationStore.size() >= MAX_AUTOMATIONS) {
178
+ return context.json({ error: "too_many_automations" }, HTTP_STATUS_BAD_REQUEST);
179
+ }
180
+ if (!parseCronExpression(parsed.data.schedule)) {
181
+ return context.json({ error: "invalid_schedule" }, HTTP_STATUS_BAD_REQUEST);
182
+ }
183
+ if (!resolveCwdQuery(parsed.data.cwd)) {
184
+ return context.json({ error: "invalid_cwd" }, HTTP_STATUS_BAD_REQUEST);
185
+ }
186
+ const automation = automationStore.create(parsed.data);
187
+ broadcastAutomations();
188
+ return context.json({ automation: toAutomationWithNextRun(automation, new Date()) }, HTTP_STATUS_CREATED);
189
+ });
190
+ api.patch("/automations/:id", async (context) => {
191
+ const parsed = updateAutomationInputSchema.safeParse(await readJsonBody(context));
192
+ if (!parsed.success)
193
+ return context.json({ error: "invalid_body" }, HTTP_STATUS_BAD_REQUEST);
194
+ if (parsed.data.schedule !== undefined && !parseCronExpression(parsed.data.schedule)) {
195
+ return context.json({ error: "invalid_schedule" }, HTTP_STATUS_BAD_REQUEST);
196
+ }
197
+ if (parsed.data.cwd !== undefined && !resolveCwdQuery(parsed.data.cwd)) {
198
+ return context.json({ error: "invalid_cwd" }, HTTP_STATUS_BAD_REQUEST);
199
+ }
200
+ const automation = automationStore.update(context.req.param("id"), parsed.data);
201
+ if (!automation)
202
+ return context.json({ error: "not_found" }, HTTP_STATUS_NOT_FOUND);
203
+ broadcastAutomations();
204
+ return context.json({ automation: toAutomationWithNextRun(automation, new Date()) });
205
+ });
206
+ api.delete("/automations/:id", (context) => {
207
+ if (!automationStore.remove(context.req.param("id"))) {
208
+ return context.json({ error: "not_found" }, HTTP_STATUS_NOT_FOUND);
209
+ }
210
+ broadcastAutomations();
211
+ return context.json({ ok: true });
212
+ });
213
+ api.post("/automations/:id/run", (context) => {
214
+ const automation = automationStore.get(context.req.param("id"));
215
+ if (!automation)
216
+ return context.json({ error: "not_found" }, HTTP_STATUS_NOT_FOUND);
217
+ const run = launchAutomationRun(automation);
218
+ return context.json({ runId: run.runId });
219
+ });
115
220
  api.notFound((context) => context.json({ error: "not_found" }, HTTP_STATUS_NOT_FOUND));
116
221
  app.route("/api", api);
117
222
  app.get("/ws", upgradeWebSocket((context) => {
@@ -150,6 +255,7 @@ export const createServer = async (options = {}) => {
150
255
  /* invalid or inaccessible path; fall back to default cwd */
151
256
  }
152
257
  }
258
+ const requestedRunId = context.req.query("run");
153
259
  return {
154
260
  onOpen(_event, ws) {
155
261
  activeWs = ws;
@@ -164,9 +270,44 @@ export const createServer = async (options = {}) => {
164
270
  ws.close(WS_CLOSE_CAPACITY_REACHED, "session capacity reached");
165
271
  return;
166
272
  }
167
- const newSession = new Session({ cwd: requestedCwd });
273
+ clientSockets.add(ws);
274
+ // Claims are single-use: a reload of a ?run= tab gets a plain shell
275
+ // in the same cwd instead of re-running the scheduled command.
276
+ const claimedRun = requestedRunId ? automationRunTracker.claim(requestedRunId) : null;
277
+ let sessionCwd = requestedCwd;
278
+ if (claimedRun) {
279
+ try {
280
+ if (fs.statSync(claimedRun.cwd).isDirectory())
281
+ sessionCwd = claimedRun.cwd;
282
+ }
283
+ catch {
284
+ /* automation cwd vanished since creation; fall back to default */
285
+ }
286
+ }
287
+ const newSession = new Session({
288
+ cwd: sessionCwd,
289
+ initialCommand: claimedRun?.command,
290
+ });
168
291
  session = newSession;
169
292
  registry.register(newSession);
293
+ if (claimedRun) {
294
+ automationStore.recordLastRun(claimedRun.automationId, {
295
+ runId: claimedRun.runId,
296
+ at: Date.now(),
297
+ status: "running",
298
+ exitCode: null,
299
+ });
300
+ broadcastAutomations();
301
+ newSession.on("automation-exit", (exitCode) => {
302
+ automationStore.recordLastRun(claimedRun.automationId, {
303
+ runId: claimedRun.runId,
304
+ at: Date.now(),
305
+ status: exitCode === 0 ? "completed" : "failed",
306
+ exitCode,
307
+ });
308
+ broadcastAutomations();
309
+ });
310
+ }
170
311
  // Heartbeat. Without this, half-open sockets (laptop sleep, network
171
312
  // dropout) never surface as a `close` event and the daemon keeps
172
313
  // streaming PTY output into the void. We only enable it if the raw
@@ -273,9 +414,13 @@ export const createServer = async (options = {}) => {
273
414
  /* transient git failure; next dirty signal will retry */
274
415
  }
275
416
  };
276
- gitDiffWatcher.on("git-dirty", () => { void handleGitDirty(); });
417
+ gitDiffWatcher.on("git-dirty", () => {
418
+ void handleGitDirty();
419
+ });
277
420
  gitDiffWatcher.start(newSession.cwd);
278
- newSession.on("git-dirty", () => { void handleGitDirty(); });
421
+ newSession.on("git-dirty", () => {
422
+ void handleGitDirty();
423
+ });
279
424
  newSession.on("cwd", (changedCwd) => {
280
425
  gitDiffWatcher.stop();
281
426
  gitDiffWatcher.start(changedCwd);
@@ -333,6 +478,8 @@ export const createServer = async (options = {}) => {
333
478
  // ~/.localterm/server.log.
334
479
  const pidLabel = session ? ` pid ${session.pid}` : "";
335
480
  console.info(`ws closed${pidLabel}: code=${event.code} reason=${JSON.stringify(event.reason)} wasClean=${event.wasClean}`);
481
+ if (activeWs)
482
+ clientSockets.delete(activeWs);
336
483
  if (!session)
337
484
  return;
338
485
  registry.unregister(session);
@@ -355,6 +502,8 @@ export const createServer = async (options = {}) => {
355
502
  const message = errorValue instanceof Error ? errorValue.message : String(errorValue);
356
503
  const pidLabel = session ? ` pid ${session.pid}` : "";
357
504
  console.error(`ws error${pidLabel}: ${message}`);
505
+ if (activeWs)
506
+ clientSockets.delete(activeWs);
358
507
  if (!session)
359
508
  return;
360
509
  registry.unregister(session);
@@ -406,7 +555,26 @@ export const createServer = async (options = {}) => {
406
555
  throw new ServerErrorException(serverError.listenFailed(host, port, new Error("hono serve() resolved without binding an http server")));
407
556
  }
408
557
  injectWebSocket(httpServer);
558
+ automationScheduler.on("due", (automation) => {
559
+ launchAutomationRun(automation);
560
+ });
561
+ automationScheduler.on("tick", (now) => {
562
+ let didExpireAny = false;
563
+ for (const expiredRun of automationRunTracker.sweepExpired(now.getTime())) {
564
+ const automation = automationStore.get(expiredRun.automationId);
565
+ if (automation?.lastRun?.runId !== expiredRun.runId)
566
+ continue;
567
+ if (automation.lastRun.status !== "launched")
568
+ continue;
569
+ automationStore.recordLastRun(automation.id, { ...automation.lastRun, status: "missed" });
570
+ didExpireAny = true;
571
+ }
572
+ if (didExpireAny)
573
+ broadcastAutomations();
574
+ });
575
+ automationScheduler.start();
409
576
  const stop = async () => {
577
+ automationScheduler.dispose();
410
578
  registry.disposeAll();
411
579
  // Forcibly tear down every WS first. node-pty + ws upgraded sockets
412
580
  // aren't tracked in http.Server's keep-alive set, so target.close() would
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- export { MAX_COLS, MAX_CONCURRENT_SESSIONS, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_READY_STATE_OPEN, } from "./constants.js";
2
- export { clientToServerMessageSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffResponseSchema, gitDiffSummarySchema, healthSchema, serverToClientMessageSchema, } from "./schemas.js";
3
- export type { ClientToServerMessage, GitDiffFile, GitDiffFileStatus, GitDiffResponse, GitDiffSummary, ServerToClientMessage, } from "./types.js";
1
+ export { MAX_AUTOMATION_COMMAND_LENGTH, MAX_AUTOMATION_NAME_LENGTH, MAX_AUTOMATIONS, MAX_COLS, MAX_CONCURRENT_SESSIONS, MAX_CRON_EXPRESSION_LENGTH, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_READY_STATE_OPEN, } from "./constants.js";
2
+ export { cronMatchesDate, nextCronOccurrence, parseCronExpression } from "./cron-expression.js";
3
+ export type { ParsedCronExpression } from "./cron-expression.js";
4
+ export { automationLastRunSchema, automationLastRunStatusSchema, automationSchema, automationsListResponseSchema, automationWithNextRunSchema, clientToServerMessageSchema, createAutomationInputSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffResponseSchema, gitDiffSummarySchema, healthSchema, serverToClientMessageSchema, updateAutomationInputSchema, } from "./schemas.js";
5
+ export type { Automation, AutomationLastRun, AutomationLastRunStatus, AutomationWithNextRun, ClientToServerMessage, CreateAutomationInput, GitDiffFile, GitDiffFileStatus, GitDiffResponse, GitDiffSummary, ServerToClientMessage, UpdateAutomationInput, } from "./types.js";
4
6
  export type { ServerError, ServerErrorCode, ServerErrorKind } from "./errors.js";
5
7
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
package/dist/protocol.js CHANGED
@@ -1,3 +1,4 @@
1
- export { MAX_COLS, MAX_CONCURRENT_SESSIONS, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_READY_STATE_OPEN, } from "./constants.js";
2
- export { clientToServerMessageSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffResponseSchema, gitDiffSummarySchema, healthSchema, serverToClientMessageSchema, } from "./schemas.js";
1
+ export { MAX_AUTOMATION_COMMAND_LENGTH, MAX_AUTOMATION_NAME_LENGTH, MAX_AUTOMATIONS, MAX_COLS, MAX_CONCURRENT_SESSIONS, MAX_CRON_EXPRESSION_LENGTH, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_READY_STATE_OPEN, } from "./constants.js";
2
+ export { cronMatchesDate, nextCronOccurrence, parseCronExpression } from "./cron-expression.js";
3
+ export { automationLastRunSchema, automationLastRunStatusSchema, automationSchema, automationsListResponseSchema, automationWithNextRunSchema, clientToServerMessageSchema, createAutomationInputSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffResponseSchema, gitDiffSummarySchema, healthSchema, serverToClientMessageSchema, updateAutomationInputSchema, } from "./schemas.js";
3
4
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhG,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,cAAc,CAAC"}
package/dist/schemas.d.ts CHANGED
@@ -27,6 +27,134 @@ export declare const gitDiffSummarySchema: z.ZodObject<{
27
27
  deletions: z.ZodNumber;
28
28
  binaries: z.ZodNumber;
29
29
  }, z.core.$strict>;
30
+ export declare const automationLastRunStatusSchema: z.ZodEnum<{
31
+ launched: "launched";
32
+ running: "running";
33
+ completed: "completed";
34
+ failed: "failed";
35
+ missed: "missed";
36
+ }>;
37
+ export declare const automationLastRunSchema: z.ZodObject<{
38
+ runId: z.ZodString;
39
+ at: z.ZodNumber;
40
+ status: z.ZodEnum<{
41
+ launched: "launched";
42
+ running: "running";
43
+ completed: "completed";
44
+ failed: "failed";
45
+ missed: "missed";
46
+ }>;
47
+ exitCode: z.ZodNullable<z.ZodNumber>;
48
+ }, z.core.$strict>;
49
+ export declare const automationSchema: z.ZodObject<{
50
+ id: z.ZodString;
51
+ name: z.ZodString;
52
+ schedule: z.ZodString;
53
+ cwd: z.ZodString;
54
+ command: z.ZodString;
55
+ enabled: z.ZodBoolean;
56
+ createdAt: z.ZodNumber;
57
+ updatedAt: z.ZodNumber;
58
+ lastRun: z.ZodNullable<z.ZodObject<{
59
+ runId: z.ZodString;
60
+ at: z.ZodNumber;
61
+ status: z.ZodEnum<{
62
+ launched: "launched";
63
+ running: "running";
64
+ completed: "completed";
65
+ failed: "failed";
66
+ missed: "missed";
67
+ }>;
68
+ exitCode: z.ZodNullable<z.ZodNumber>;
69
+ }, z.core.$strict>>;
70
+ }, z.core.$strict>;
71
+ export declare const automationWithNextRunSchema: z.ZodObject<{
72
+ nextRunAt: z.ZodNullable<z.ZodNumber>;
73
+ id: z.ZodString;
74
+ name: z.ZodString;
75
+ schedule: z.ZodString;
76
+ cwd: z.ZodString;
77
+ command: z.ZodString;
78
+ enabled: z.ZodBoolean;
79
+ createdAt: z.ZodNumber;
80
+ updatedAt: z.ZodNumber;
81
+ lastRun: z.ZodNullable<z.ZodObject<{
82
+ runId: z.ZodString;
83
+ at: z.ZodNumber;
84
+ status: z.ZodEnum<{
85
+ launched: "launched";
86
+ running: "running";
87
+ completed: "completed";
88
+ failed: "failed";
89
+ missed: "missed";
90
+ }>;
91
+ exitCode: z.ZodNullable<z.ZodNumber>;
92
+ }, z.core.$strict>>;
93
+ }, z.core.$strict>;
94
+ export declare const automationsFileSchema: z.ZodObject<{
95
+ version: z.ZodLiteral<1>;
96
+ automations: z.ZodArray<z.ZodObject<{
97
+ id: z.ZodString;
98
+ name: z.ZodString;
99
+ schedule: z.ZodString;
100
+ cwd: z.ZodString;
101
+ command: z.ZodString;
102
+ enabled: z.ZodBoolean;
103
+ createdAt: z.ZodNumber;
104
+ updatedAt: z.ZodNumber;
105
+ lastRun: z.ZodNullable<z.ZodObject<{
106
+ runId: z.ZodString;
107
+ at: z.ZodNumber;
108
+ status: z.ZodEnum<{
109
+ launched: "launched";
110
+ running: "running";
111
+ completed: "completed";
112
+ failed: "failed";
113
+ missed: "missed";
114
+ }>;
115
+ exitCode: z.ZodNullable<z.ZodNumber>;
116
+ }, z.core.$strict>>;
117
+ }, z.core.$strict>>;
118
+ }, z.core.$strict>;
119
+ export declare const createAutomationInputSchema: z.ZodObject<{
120
+ name: z.ZodString;
121
+ schedule: z.ZodString;
122
+ cwd: z.ZodString;
123
+ command: z.ZodString;
124
+ enabled: z.ZodOptional<z.ZodBoolean>;
125
+ }, z.core.$strict>;
126
+ export declare const updateAutomationInputSchema: z.ZodObject<{
127
+ name: z.ZodOptional<z.ZodString>;
128
+ schedule: z.ZodOptional<z.ZodString>;
129
+ cwd: z.ZodOptional<z.ZodString>;
130
+ command: z.ZodOptional<z.ZodString>;
131
+ enabled: z.ZodOptional<z.ZodBoolean>;
132
+ }, z.core.$strict>;
133
+ export declare const automationsListResponseSchema: z.ZodObject<{
134
+ automations: z.ZodArray<z.ZodObject<{
135
+ nextRunAt: z.ZodNullable<z.ZodNumber>;
136
+ id: z.ZodString;
137
+ name: z.ZodString;
138
+ schedule: z.ZodString;
139
+ cwd: z.ZodString;
140
+ command: z.ZodString;
141
+ enabled: z.ZodBoolean;
142
+ createdAt: z.ZodNumber;
143
+ updatedAt: z.ZodNumber;
144
+ lastRun: z.ZodNullable<z.ZodObject<{
145
+ runId: z.ZodString;
146
+ at: z.ZodNumber;
147
+ status: z.ZodEnum<{
148
+ launched: "launched";
149
+ running: "running";
150
+ completed: "completed";
151
+ failed: "failed";
152
+ missed: "missed";
153
+ }>;
154
+ exitCode: z.ZodNullable<z.ZodNumber>;
155
+ }, z.core.$strict>>;
156
+ }, z.core.$strict>>;
157
+ }, z.core.$strict>;
30
158
  export declare const serverToClientMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
31
159
  type: z.ZodLiteral<"output">;
32
160
  data: z.ZodString;
@@ -61,6 +189,31 @@ export declare const serverToClientMessageSchema: z.ZodDiscriminatedUnion<[z.Zod
61
189
  deletions: z.ZodNumber;
62
190
  binaries: z.ZodNumber;
63
191
  }, z.core.$strict>;
192
+ }, z.core.$strict>, z.ZodObject<{
193
+ type: z.ZodLiteral<"automations">;
194
+ automations: z.ZodArray<z.ZodObject<{
195
+ nextRunAt: z.ZodNullable<z.ZodNumber>;
196
+ id: z.ZodString;
197
+ name: z.ZodString;
198
+ schedule: z.ZodString;
199
+ cwd: z.ZodString;
200
+ command: z.ZodString;
201
+ enabled: z.ZodBoolean;
202
+ createdAt: z.ZodNumber;
203
+ updatedAt: z.ZodNumber;
204
+ lastRun: z.ZodNullable<z.ZodObject<{
205
+ runId: z.ZodString;
206
+ at: z.ZodNumber;
207
+ status: z.ZodEnum<{
208
+ launched: "launched";
209
+ running: "running";
210
+ completed: "completed";
211
+ failed: "failed";
212
+ missed: "missed";
213
+ }>;
214
+ exitCode: z.ZodNullable<z.ZodNumber>;
215
+ }, z.core.$strict>>;
216
+ }, z.core.$strict>>;
64
217
  }, z.core.$strict>], "type">;
65
218
  export declare const gitDiffFileSchema: z.ZodObject<{
66
219
  path: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,YAAY;;;kBAKd,CAAC;AAmBZ,eAAO,MAAM,2BAA2B;;;;;;;;;4BAGtC,CAAC;AAuDH,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;kBAQtB,CAAC;AASZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAStC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;kBAanB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;kBAKvB,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,YAAY;;;kBAKd,CAAC;AAmBZ,eAAO,MAAM,2BAA2B;;;;;;;;;4BAGtC,CAAC;AAuDH,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;kBAQtB,CAAC;AASZ,eAAO,MAAM,6BAA6B;;;;;;EAMxC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;kBAOzB,CAAC;AAcZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;kBAAqC,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;kBAE7B,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;kBAKvB,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;kBAQ7B,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;kBAQ7B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;kBAE/B,CAAC;AASZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAUtC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;kBAanB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;kBAKvB,CAAC"}
package/dist/schemas.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { MAX_COLS, MAX_FOREGROUND_LENGTH, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, } from "./constants.js";
2
+ import { AUTOMATIONS_FILE_VERSION, MAX_AUTOMATION_COMMAND_LENGTH, MAX_AUTOMATION_NAME_LENGTH, MAX_COLS, MAX_CRON_EXPRESSION_LENGTH, MAX_FOREGROUND_LENGTH, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, } from "./constants.js";
3
3
  export const healthSchema = z
4
4
  .object({
5
5
  ok: z.boolean(),
@@ -94,6 +94,69 @@ const gitDiffSummaryMessageSchema = z
94
94
  summary: gitDiffSummarySchema,
95
95
  })
96
96
  .strict();
97
+ export const automationLastRunStatusSchema = z.enum([
98
+ "launched",
99
+ "running",
100
+ "completed",
101
+ "failed",
102
+ "missed",
103
+ ]);
104
+ export const automationLastRunSchema = z
105
+ .object({
106
+ runId: z.string().min(1),
107
+ at: z.number().int().nonnegative(),
108
+ status: automationLastRunStatusSchema,
109
+ exitCode: z.number().int().nullable(),
110
+ })
111
+ .strict();
112
+ const automationShape = {
113
+ id: z.string().min(1),
114
+ name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH),
115
+ schedule: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH),
116
+ cwd: z.string().min(1),
117
+ command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH),
118
+ enabled: z.boolean(),
119
+ createdAt: z.number().int().nonnegative(),
120
+ updatedAt: z.number().int().nonnegative(),
121
+ lastRun: automationLastRunSchema.nullable(),
122
+ };
123
+ export const automationSchema = z.object(automationShape).strict();
124
+ export const automationWithNextRunSchema = z
125
+ .object({ ...automationShape, nextRunAt: z.number().int().nullable() })
126
+ .strict();
127
+ export const automationsFileSchema = z
128
+ .object({
129
+ version: z.literal(AUTOMATIONS_FILE_VERSION),
130
+ automations: z.array(automationSchema),
131
+ })
132
+ .strict();
133
+ export const createAutomationInputSchema = z
134
+ .object({
135
+ name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH),
136
+ schedule: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH),
137
+ cwd: z.string().min(1),
138
+ command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH),
139
+ enabled: z.boolean().optional(),
140
+ })
141
+ .strict();
142
+ export const updateAutomationInputSchema = z
143
+ .object({
144
+ name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH).optional(),
145
+ schedule: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH).optional(),
146
+ cwd: z.string().min(1).optional(),
147
+ command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH).optional(),
148
+ enabled: z.boolean().optional(),
149
+ })
150
+ .strict();
151
+ export const automationsListResponseSchema = z
152
+ .object({ automations: z.array(automationWithNextRunSchema) })
153
+ .strict();
154
+ const automationsMessageSchema = z
155
+ .object({
156
+ type: z.literal("automations"),
157
+ automations: z.array(automationWithNextRunSchema),
158
+ })
159
+ .strict();
97
160
  export const serverToClientMessageSchema = z.discriminatedUnion("type", [
98
161
  outputMessageSchema,
99
162
  exitMessageSchema,
@@ -103,6 +166,7 @@ export const serverToClientMessageSchema = z.discriminatedUnion("type", [
103
166
  foregroundMessageSchema,
104
167
  notificationMessageSchema,
105
168
  gitDiffSummaryMessageSchema,
169
+ automationsMessageSchema,
106
170
  ]);
107
171
  export const gitDiffFileSchema = z
108
172
  .object({