@hasna/snapshots 0.1.0 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,cAAc,EAAE,aAAa,EAA2C,MAAM,aAAa,CAAC;AAG7H,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAuBrF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,cAAc,EAAE,aAAa,EAA2C,MAAM,aAAa,CAAC;AAG7H,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwBrF"}
@@ -1,9 +1,9 @@
1
- import { existsSync, readdirSync, statSync } from "node:fs";
2
- import { join } from "node:path";
1
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
2
+ import { basename, join } from "node:path";
3
3
  import { hostname, platform, release, userInfo } from "node:os";
4
- import { commandExists, defaultDataDir, nowIso, redactJson, redactText, runCommand, runJsonCommand, sha256, slugPart } from "../util.js";
4
+ import { commandExists, defaultDataDir, nowIso, redactJson, redactText, runCommand, runJsonCommand, runTmux, sha256, slugPart } from "../util.js";
5
5
  export async function captureAll(options = {}) {
6
- const include = new Set(options.include ?? ["machine", "tmux", "projects", "processes", "sessions", "browser", "desktop"]);
6
+ const include = new Set(options.include ?? ["machine", "tmux", "projects", "processes", "sessions", "browser", "desktop", "apps"]);
7
7
  const now = options.now ?? nowIso();
8
8
  const result = { resources: [], diagnostics: [] };
9
9
  const append = (capture) => {
@@ -24,6 +24,8 @@ export async function captureAll(options = {}) {
24
24
  append(captureBrowser(now));
25
25
  if (include.has("desktop"))
26
26
  append(captureDesktop(now));
27
+ if (include.has("apps"))
28
+ append(captureApps(now));
27
29
  for (const diagnostic of result.diagnostics) {
28
30
  result.resources.push(diagnosticResource(diagnostic, now));
29
31
  }
@@ -55,7 +57,7 @@ function captureTmux(now) {
55
57
  if (!commandExists("tmux")) {
56
58
  return diagnostic("tmux", "info", "tmux command not found; tmux resources were not captured.");
57
59
  }
58
- const sessions = runCommand("tmux", ["list-sessions", "-F", "#{session_id}\t#{session_name}\t#{session_created}\t#{session_windows}\t#{session_attached}"]);
60
+ const sessions = runTmux(["list-sessions", "-F", "#{session_id}\t#{session_name}\t#{session_created}\t#{session_windows}\t#{session_attached}"]);
59
61
  if (!sessions.ok) {
60
62
  return diagnostic("tmux", "info", "tmux server is not running or cannot be queried.", sessions.stderr.trim());
61
63
  }
@@ -78,28 +80,75 @@ function captureTmux(now) {
78
80
  observedAt: now
79
81
  });
80
82
  }
81
- const panes = runCommand("tmux", [
83
+ const windows = runTmux([
84
+ "list-windows",
85
+ "-a",
86
+ "-F",
87
+ "#{session_name}\t#{window_index}\t#{window_name}\t#{window_active}\t#{window_layout}\t#{window_panes}"
88
+ ]);
89
+ if (windows.ok) {
90
+ for (const line of windows.stdout.trim().split("\n").filter(Boolean)) {
91
+ const [sessionName, windowIndex, windowName, windowActive, windowLayout, windowPanes] = line.split("\t");
92
+ resources.push({
93
+ id: `tmux-window:${slugPart(sessionName)}:${windowIndex}`,
94
+ kind: "tmux-window",
95
+ name: `${sessionName}:${windowIndex}:${windowName}`,
96
+ source: "tmux",
97
+ parentId: `tmux-session:${slugPart(sessionName)}`,
98
+ attributes: {
99
+ session: sessionName,
100
+ index: Number(windowIndex),
101
+ name: windowName,
102
+ active: windowActive === "1",
103
+ layout: windowLayout,
104
+ pane_count: Number(windowPanes)
105
+ },
106
+ observedAt: now
107
+ });
108
+ }
109
+ }
110
+ const panes = runTmux([
82
111
  "list-panes",
83
112
  "-a",
84
113
  "-F",
85
- "#{session_name}\t#{window_index}\t#{window_name}\t#{pane_id}\t#{pane_current_path}\t#{pane_current_command}\t#{pane_active}"
114
+ "#{session_name}\t#{window_index}\t#{window_name}\t#{pane_index}\t#{pane_id}\t#{pane_current_path}\t#{pane_current_command}\t#{pane_active}\t#{pane_start_command}"
86
115
  ]);
87
116
  if (panes.ok) {
88
117
  for (const line of panes.stdout.trim().split("\n").filter(Boolean)) {
89
- const [sessionName, windowIndex, windowName, paneId, panePath, paneCommand, paneActive] = line.split("\t");
118
+ const [sessionName, windowIndex, windowName, paneIndex, paneId, panePath, paneCommand, paneActive, paneStartCommand = ""] = line.split("\t");
90
119
  const sessionResourceId = `tmux-session:${slugPart(sessionName)}`;
91
120
  const windowResourceId = `tmux-window:${slugPart(sessionName)}:${windowIndex}`;
92
- if (!resources.some((resource) => resource.id === windowResourceId)) {
121
+ const startCommand = redactText(paneStartCommand);
122
+ const windowResource = resources.find((resource) => resource.id === windowResourceId);
123
+ if (windowResource) {
124
+ if (paneActive === "1" || typeof windowResource.attributes.current_path !== "string") {
125
+ windowResource.attributes.current_path = panePath;
126
+ windowResource.attributes.start_command = startCommand;
127
+ windowResource.attributes.restartable = isRestartableCommand(startCommand);
128
+ }
129
+ }
130
+ else {
93
131
  resources.push({
94
132
  id: windowResourceId,
95
133
  kind: "tmux-window",
96
134
  name: `${sessionName}:${windowIndex}:${windowName}`,
97
135
  source: "tmux",
98
136
  parentId: sessionResourceId,
99
- attributes: { session: sessionName, index: Number(windowIndex), name: windowName },
137
+ attributes: {
138
+ session: sessionName,
139
+ index: Number(windowIndex),
140
+ name: windowName,
141
+ current_path: panePath,
142
+ start_command: startCommand,
143
+ restartable: isRestartableCommand(startCommand),
144
+ active: false,
145
+ layout: null,
146
+ pane_count: null
147
+ },
100
148
  observedAt: now
101
149
  });
102
150
  }
151
+ const paneTail = runTmux(["capture-pane", "-p", "-t", paneId, "-S", "-100"], 2_000);
103
152
  resources.push({
104
153
  id: `tmux-pane:${slugPart(sessionName)}:${paneId.replace("%", "")}`,
105
154
  kind: "tmux-pane",
@@ -109,8 +158,11 @@ function captureTmux(now) {
109
158
  attributes: {
110
159
  session: sessionName,
111
160
  window_index: Number(windowIndex),
161
+ pane_index: Number(paneIndex),
112
162
  current_path: panePath,
113
163
  current_command: paneCommand,
164
+ start_command: redactText(paneStartCommand),
165
+ content_tail: paneTail.ok ? redactText(paneTail.stdout).slice(-16_000) : "",
114
166
  active: paneActive === "1"
115
167
  },
116
168
  observedAt: now
@@ -147,11 +199,18 @@ function captureProcesses(now) {
147
199
  if (!ps.ok)
148
200
  return diagnostic("processes", "warning", "ps command failed.", ps.stderr.trim());
149
201
  const resources = [];
150
- for (const line of ps.stdout.split("\n").map((entry) => entry.trim()).filter(Boolean).slice(0, 250)) {
202
+ let observedProcessCount = 0;
203
+ for (const line of ps.stdout.split("\n").map((entry) => entry.trim()).filter(Boolean)) {
151
204
  const match = line.match(/^(\d+)\s+(\d+)\s+(\S+)\s*(.*)$/);
152
205
  if (!match)
153
206
  continue;
154
207
  const [, pid, ppid, command, args] = match;
208
+ const argsText = redactText(args ?? "");
209
+ const restartInfo = parseRestartableCommand(args ?? "");
210
+ const hasSnapshotMarker = (args ?? "").includes("HASNA_SNAPSHOTS_");
211
+ if (!restartInfo && !hasSnapshotMarker && observedProcessCount >= 250)
212
+ continue;
213
+ observedProcessCount += 1;
155
214
  resources.push({
156
215
  id: `process:${pid}`,
157
216
  kind: "process",
@@ -161,7 +220,10 @@ function captureProcesses(now) {
161
220
  pid: Number(pid),
162
221
  ppid: Number(ppid),
163
222
  command,
164
- args: redactText(args ?? "")
223
+ args: argsText,
224
+ restartable: Boolean(restartInfo),
225
+ process_id: restartInfo?.id ?? null,
226
+ restart_command: restartInfo?.command ?? null
165
227
  },
166
228
  observedAt: now
167
229
  });
@@ -231,6 +293,112 @@ function captureDesktop(now) {
231
293
  }));
232
294
  return { resources, diagnostics: [] };
233
295
  }
296
+ function captureApps(now) {
297
+ if (platform() === "darwin")
298
+ return captureMacApps(now);
299
+ if (platform() === "linux")
300
+ return captureLinuxApps(now);
301
+ return diagnostic("apps", "info", `Native app capture is not implemented for ${platform()}.`);
302
+ }
303
+ function captureMacApps(now) {
304
+ const script = 'tell application "System Events" to get name of every application process whose background only is false';
305
+ const result = runCommand("osascript", ["-e", script], 5_000);
306
+ if (!result.ok) {
307
+ const fallback = captureMacAppsFromProcesses(now);
308
+ if (fallback.resources.length) {
309
+ return {
310
+ resources: fallback.resources,
311
+ diagnostics: [{
312
+ source: "apps",
313
+ level: "warning",
314
+ message: "System Events unavailable; captured macOS apps from process paths.",
315
+ detail: result.stderr.trim()
316
+ }]
317
+ };
318
+ }
319
+ return diagnostic("apps", "warning", "Unable to query macOS application processes.", result.stderr.trim());
320
+ }
321
+ const names = result.stdout.split(",").map((name) => name.trim()).filter(Boolean);
322
+ const resources = names.map((name) => ({
323
+ id: `app:${slugPart(name)}`,
324
+ kind: "app",
325
+ name,
326
+ source: "macos-apps",
327
+ attributes: {
328
+ name,
329
+ platform: "darwin",
330
+ restore_supported: true,
331
+ restore_command: ["open", "-a", name]
332
+ },
333
+ observedAt: now
334
+ }));
335
+ return { resources, diagnostics: [] };
336
+ }
337
+ function captureMacAppsFromProcesses(now) {
338
+ const ps = runCommand("ps", ["-axo", "pid=,args="], 5_000);
339
+ if (!ps.ok)
340
+ return { resources: [], diagnostics: [] };
341
+ const seen = new Set();
342
+ const resources = [];
343
+ for (const line of ps.stdout.split("\n").map((entry) => entry.trim()).filter(Boolean)) {
344
+ const match = line.match(/(\/(?:Applications|System\/Applications|System\/Library|Library\/Apple\/System\/Library)[^\n]*?\.app)\/Contents\/MacOS\//);
345
+ if (!match)
346
+ continue;
347
+ const appPath = match[1];
348
+ if (seen.has(appPath))
349
+ continue;
350
+ seen.add(appPath);
351
+ const name = basename(appPath, ".app");
352
+ resources.push({
353
+ id: `app:${slugPart(name)}`,
354
+ kind: "app",
355
+ name,
356
+ source: "macos-processes",
357
+ attributes: {
358
+ name,
359
+ app_path: appPath,
360
+ platform: "darwin",
361
+ restore_supported: true,
362
+ restore_command: ["open", "-a", name]
363
+ },
364
+ observedAt: now
365
+ });
366
+ }
367
+ return { resources, diagnostics: [] };
368
+ }
369
+ function captureLinuxApps(now) {
370
+ if (!commandExists("wmctrl")) {
371
+ return diagnostic("apps", "info", "Linux app capture requires wmctrl; no visible app resources captured.");
372
+ }
373
+ const result = runCommand("wmctrl", ["-lx"], 5_000);
374
+ if (!result.ok)
375
+ return diagnostic("apps", "warning", "Unable to query Linux desktop windows with wmctrl.", result.stderr.trim());
376
+ const seen = new Set();
377
+ const resources = [];
378
+ for (const line of result.stdout.split("\n").map((entry) => entry.trim()).filter(Boolean)) {
379
+ const parts = line.split(/\s+/);
380
+ const windowClass = parts[2];
381
+ if (!windowClass || seen.has(windowClass))
382
+ continue;
383
+ seen.add(windowClass);
384
+ const name = windowClass.split(".").at(-1) ?? windowClass;
385
+ resources.push({
386
+ id: `app:${slugPart(windowClass)}`,
387
+ kind: "app",
388
+ name,
389
+ source: "linux-wmctrl",
390
+ attributes: {
391
+ name,
392
+ window_class: windowClass,
393
+ platform: "linux",
394
+ restore_supported: false,
395
+ restore_command: null
396
+ },
397
+ observedAt: now
398
+ });
399
+ }
400
+ return { resources, diagnostics: [] };
401
+ }
234
402
  function diagnostic(source, level, message, detail) {
235
403
  return { resources: [], diagnostics: [{ source, level, message, detail }] };
236
404
  }
@@ -264,4 +432,42 @@ function safeStat(path) {
264
432
  return undefined;
265
433
  }
266
434
  }
435
+ function isRestartableCommand(command) {
436
+ if (command.includes("HASNA_SNAPSHOTS_RESTARTABLE=1"))
437
+ return true;
438
+ return /\b(codex|claude|codewith|coders)\b/.test(command) && /\b(--resume|resume)\b/.test(command);
439
+ }
440
+ function parseRestartableCommand(args) {
441
+ if (!args.includes("HASNA_SNAPSHOTS_RESTARTABLE=1"))
442
+ return undefined;
443
+ const idMatch = args.match(/HASNA_SNAPSHOTS_PROCESS_ID=([A-Za-z0-9_.:-]+)/);
444
+ const commandB64Match = args.match(/HASNA_SNAPSHOTS_RESTART_COMMAND_B64=([A-Za-z0-9+/=_-]+)/);
445
+ const commandFileMatch = args.match(/HASNA_SNAPSHOTS_RESTART_COMMAND_FILE=([^\s;]+)/);
446
+ return {
447
+ id: idMatch?.[1] ?? sha256(args).slice(0, 12),
448
+ command: commandB64Match
449
+ ? redactText(decodeRestartCommand(commandB64Match[1]))
450
+ : commandFileMatch
451
+ ? readRestartCommandFile(commandFileMatch[1])
452
+ : undefined
453
+ };
454
+ }
455
+ function decodeRestartCommand(encoded) {
456
+ try {
457
+ const normalized = encoded.replaceAll("-", "+").replaceAll("_", "/");
458
+ return Buffer.from(normalized, "base64").toString("utf8");
459
+ }
460
+ catch {
461
+ return encoded;
462
+ }
463
+ }
464
+ function readRestartCommandFile(path) {
465
+ try {
466
+ const content = readFileSync(path, "utf8");
467
+ return redactText(content.trim()).slice(0, 16_000);
468
+ }
469
+ catch {
470
+ return undefined;
471
+ }
472
+ }
267
473
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -175,7 +175,7 @@ function printHelp(unknown) {
175
175
  ok: !unknown,
176
176
  error: unknown ? `Unknown command: ${unknown}` : undefined,
177
177
  usage: [
178
- "snapshots capture [--name name] [--include machine,tmux,projects,processes,sessions,browser,desktop]",
178
+ "snapshots capture [--name name] [--include machine,tmux,projects,processes,sessions,browser,desktop,apps]",
179
179
  "snapshots list [--limit n]",
180
180
  "snapshots show <snapshot-id>",
181
181
  "snapshots resources [--limit n]",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAKpF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAO7E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,GAAE,aAAa,EAAO,GAAG,aAAa,CAoB7G;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAG5D"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAKpF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAO7E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,GAAE,aAAa,EAAO,GAAG,aAAa,CA4B7G;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAG5D"}
package/dist/policy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { nowIso } from "./util.js";
2
- const SAFE_DEFAULT_RESTORE_KINDS = new Set(["project", "tmux-session"]);
2
+ const SAFE_DEFAULT_RESTORE_KINDS = new Set(["project", "tmux-session", "tmux-window", "tmux-pane"]);
3
3
  export function selectorCandidates(resource) {
4
4
  return [
5
5
  resource.id,
@@ -23,6 +23,14 @@ export function resolvePolicy(resource, policies = []) {
23
23
  updatedAt: nowIso()
24
24
  };
25
25
  }
26
+ if (resource.kind === "process" && resource.attributes.restartable === true) {
27
+ return {
28
+ selector: resource.id,
29
+ mode: "restore",
30
+ reason: "Process has explicit HASNA_SNAPSHOTS_RESTARTABLE marker.",
31
+ updatedAt: nowIso()
32
+ };
33
+ }
26
34
  return {
27
35
  selector: "*",
28
36
  mode: "observe",
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AAExE,MAAM,UAAU,kBAAkB,CAAC,QAAgC;IACjE,OAAO;QACL,QAAQ,CAAC,EAAE;QACX,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACvB,UAAU,QAAQ,CAAC,MAAM,EAAE;QAC3B,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgC,EAAE,WAA4B,EAAE;IAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChF,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,QAAQ,QAAQ,CAAC,IAAI,EAAE;YACjC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,4DAA4D;YACpE,SAAS,EAAE,MAAM,EAAE;SACpB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,2DAA2D;QACnE,SAAS,EAAE,MAAM,EAAE;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/E,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,yCAAyC,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEpG,MAAM,UAAU,kBAAkB,CAAC,QAAgC;IACjE,OAAO;QACL,QAAQ,CAAC,EAAE;QACX,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACvB,UAAU,QAAQ,CAAC,MAAM,EAAE;QAC3B,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgC,EAAE,WAA4B,EAAE;IAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChF,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,QAAQ,QAAQ,CAAC,IAAI,EAAE;YACjC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,4DAA4D;YACpE,SAAS,EAAE,MAAM,EAAE;SACpB,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,0DAA0D;YAClE,SAAS,EAAE,MAAM,EAAE;SACpB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,2DAA2D;QACnE,SAAS,EAAE,MAAM,EAAE;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/E,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,yCAAyC,CAAC,CAAC;AACzF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../src/restore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EAEvB,WAAW,EACX,aAAa,EACb,cAAc,EACd,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,sBAAsB,EAAE,EACnC,QAAQ,GAAE,aAAa,EAAO,EAC9B,OAAO,GAAE,uBAA4B,GACpC,WAAW,CAqCb;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,uBAA4B,GAAG,WAAW,CAuBxG"}
1
+ {"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../src/restore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EAEvB,WAAW,EACX,aAAa,EACb,cAAc,EACd,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,sBAAsB,EAAE,EACnC,QAAQ,GAAE,aAAa,EAAO,EAC9B,OAAO,GAAE,uBAA4B,GACpC,WAAW,CA+Cb;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,uBAA4B,GAAG,WAAW,CAuBxG"}
package/dist/restore.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { existsSync, mkdirSync } from "node:fs";
2
- import { spawnSync } from "node:child_process";
3
- import { commandExists, nowIso, sha256, stableJson } from "./util.js";
2
+ import { spawn, spawnSync } from "node:child_process";
3
+ import { commandExists, nowIso, runTmux, sha256, stableJson, tmuxCommand } from "./util.js";
4
4
  import { resolvePolicy } from "./policy.js";
5
5
  export function createRestorePlan(snapshot, resources, policies = [], options = {}) {
6
6
  const operations = [];
@@ -18,7 +18,21 @@ export function createRestorePlan(snapshot, resources, policies = [], options =
18
18
  operations.push(planProject(resource));
19
19
  }
20
20
  else if (resource.kind === "tmux-session") {
21
- operations.push(planTmuxSession(resource));
21
+ operations.push(planTmuxSession(resource, resources));
22
+ }
23
+ else if (resource.kind === "tmux-window") {
24
+ operations.push(planTmuxWindow(resource));
25
+ operations.push(...planTmuxWindowState(resource));
26
+ }
27
+ else if (resource.kind === "tmux-pane") {
28
+ operations.push(planTmuxPane(resource, resources));
29
+ operations.push(...planTmuxPaneState(resource));
30
+ }
31
+ else if (resource.kind === "process") {
32
+ operations.push(planProcess(resource));
33
+ }
34
+ else if (resource.kind === "app") {
35
+ operations.push(planApp(resource, policy));
22
36
  }
23
37
  else {
24
38
  operations.push(operation(resource, "unsupported", "No restore adapter for this resource kind.", "skipped"));
@@ -29,7 +43,7 @@ export function createRestorePlan(snapshot, resources, policies = [], options =
29
43
  snapshotId: snapshot.id,
30
44
  createdAt: nowIso(),
31
45
  apply: Boolean(options.apply),
32
- operations,
46
+ operations: sortOperations(operations),
33
47
  summary: summarizeOperations(operations)
34
48
  };
35
49
  if (options.apply) {
@@ -47,11 +61,11 @@ export function executeRestorePlan(plan, options = {}) {
47
61
  return {
48
62
  ...plan,
49
63
  apply: true,
50
- operations,
64
+ operations: sortOperations(operations),
51
65
  summary: summarizeOperations(operations)
52
66
  };
53
67
  }
54
- const operations = plan.operations.map((op) => executeOperation(op));
68
+ const operations = sortOperations(plan.operations).map((op) => executeOperation(op));
55
69
  return {
56
70
  ...plan,
57
71
  apply: true,
@@ -73,7 +87,7 @@ function planProject(resource) {
73
87
  path
74
88
  ]);
75
89
  }
76
- function planTmuxSession(resource) {
90
+ function planTmuxSession(resource, resources) {
77
91
  const name = resource.name;
78
92
  if (!/^[A-Za-z0-9_.:-]+$/.test(name)) {
79
93
  return operation(resource, "tmux.create-session", `Unsafe tmux session name: ${name}`, "blocked");
@@ -81,24 +95,136 @@ function planTmuxSession(resource) {
81
95
  if (!commandExists("tmux")) {
82
96
  return operation(resource, "tmux.create-session", "tmux is not installed or not on PATH.", "blocked");
83
97
  }
84
- const hasSession = spawnSync("tmux", ["has-session", "-t", name], {
85
- stdio: "ignore",
86
- timeout: 2_000
87
- }).status === 0;
98
+ const hasSession = runTmux(["has-session", "-t", name], 2_000).status === 0;
88
99
  if (hasSession) {
89
100
  return operation(resource, "tmux.exists", `tmux session already exists: ${name}`, "noop");
90
101
  }
91
- const cwd = typeof resource.attributes.cwd === "string" ? resource.attributes.cwd : process.cwd();
102
+ const firstWindow = resources
103
+ .filter((candidate) => candidate.kind === "tmux-window" && candidate.parentId === resource.id)
104
+ .sort((a, b) => Number(a.attributes.index ?? 0) - Number(b.attributes.index ?? 0))[0];
105
+ const cwd = typeof firstWindow?.attributes.current_path === "string"
106
+ ? firstWindow.attributes.current_path
107
+ : typeof resource.attributes.cwd === "string"
108
+ ? resource.attributes.cwd
109
+ : process.cwd();
110
+ const command = tmuxCommand(["new-session", "-d", "-s", name, "-c", cwd]);
111
+ if (firstWindow && typeof firstWindow.attributes.name === "string") {
112
+ command.push("-n", firstWindow.attributes.name);
113
+ }
114
+ const startCommand = typeof firstWindow?.attributes.start_command === "string" ? firstWindow.attributes.start_command : "";
115
+ if (firstWindow?.attributes.restartable === true && startCommand) {
116
+ command.push(startCommand);
117
+ }
92
118
  return operation(resource, "tmux.create-session", `Create detached tmux session: ${name}`, "planned", undefined, [
93
- "tmux",
94
- "new-session",
95
- "-d",
96
- "-s",
97
- name,
98
- "-c",
99
- cwd
119
+ ...command
100
120
  ]);
101
121
  }
122
+ function planTmuxWindow(resource) {
123
+ const session = typeof resource.attributes.session === "string" ? resource.attributes.session : undefined;
124
+ const name = typeof resource.attributes.name === "string" ? resource.attributes.name : resource.name.split(":").slice(2).join(":");
125
+ if (!session || !name)
126
+ return operation(resource, "tmux.create-window", "Window is missing session/name metadata.", "blocked");
127
+ if (!commandExists("tmux"))
128
+ return operation(resource, "tmux.create-window", "tmux is not installed or not on PATH.", "blocked");
129
+ if (tmuxWindowExists(session, name)) {
130
+ return operation(resource, "tmux.window-exists", `tmux window already exists: ${session}:${name}`, "noop");
131
+ }
132
+ const cwd = typeof resource.attributes.current_path === "string" ? resource.attributes.current_path : process.cwd();
133
+ const command = tmuxCommand(["new-window", "-d", "-t", session, "-n", name, "-c", cwd]);
134
+ const startCommand = typeof resource.attributes.start_command === "string" ? resource.attributes.start_command : "";
135
+ if (resource.attributes.restartable === true && startCommand) {
136
+ command.push(startCommand);
137
+ }
138
+ return operation(resource, "tmux.create-window", `Create tmux window: ${session}:${name}`, "planned", undefined, command);
139
+ }
140
+ function planTmuxPane(resource, resources) {
141
+ const session = typeof resource.attributes.session === "string" ? resource.attributes.session : undefined;
142
+ const windowIndex = Number(resource.attributes.window_index);
143
+ const paneIndex = Number(resource.attributes.pane_index);
144
+ if (!session || !Number.isFinite(windowIndex) || !Number.isFinite(paneIndex)) {
145
+ return operation(resource, "tmux.create-pane", "Pane is missing session/window/pane metadata.", "blocked");
146
+ }
147
+ if (paneIndex === firstPaneIndexForWindow(resource, resources)) {
148
+ return operation(resource, "tmux.initial-pane", "Initial pane is created with the tmux window.", "noop");
149
+ }
150
+ if (!commandExists("tmux"))
151
+ return operation(resource, "tmux.create-pane", "tmux is not installed or not on PATH.", "blocked");
152
+ if (tmuxPaneExists(session, windowIndex, paneIndex)) {
153
+ return operation(resource, "tmux.pane-exists", `tmux pane index already exists: ${session}:${windowIndex}.${paneIndex}`, "noop");
154
+ }
155
+ const cwd = typeof resource.attributes.current_path === "string" ? resource.attributes.current_path : process.cwd();
156
+ const command = tmuxCommand(["split-window", "-d", "-t", `${session}:${windowIndex}`, "-c", cwd]);
157
+ const startCommand = typeof resource.attributes.start_command === "string" ? resource.attributes.start_command : "";
158
+ if (resource.attributes.restartable === true && startCommand) {
159
+ command.push(startCommand);
160
+ }
161
+ return operation(resource, "tmux.create-pane", `Create tmux pane: ${session}:${windowIndex}.${paneIndex}`, "planned", undefined, command);
162
+ }
163
+ function planTmuxWindowState(resource) {
164
+ const session = typeof resource.attributes.session === "string" ? resource.attributes.session : undefined;
165
+ const windowIndex = Number(resource.attributes.index);
166
+ if (!session || !Number.isFinite(windowIndex) || !commandExists("tmux"))
167
+ return [];
168
+ const operations = [];
169
+ const layout = typeof resource.attributes.layout === "string" ? resource.attributes.layout : undefined;
170
+ if (layout && Number(resource.attributes.pane_count ?? 0) > 1) {
171
+ operations.push(operation(resource, "tmux.select-layout", `Restore tmux layout: ${session}:${windowIndex}`, "planned", undefined, tmuxCommand(["select-layout", "-t", `${session}:${windowIndex}`, layout])));
172
+ }
173
+ if (resource.attributes.active === true) {
174
+ operations.push(operation(resource, "tmux.select-window", `Restore active tmux window: ${session}:${windowIndex}`, "planned", undefined, tmuxCommand(["select-window", "-t", `${session}:${windowIndex}`])));
175
+ }
176
+ return operations;
177
+ }
178
+ function planTmuxPaneState(resource) {
179
+ const session = typeof resource.attributes.session === "string" ? resource.attributes.session : undefined;
180
+ const windowIndex = Number(resource.attributes.window_index);
181
+ const paneIndex = Number(resource.attributes.pane_index);
182
+ if (!session || !Number.isFinite(windowIndex) || !Number.isFinite(paneIndex) || !commandExists("tmux"))
183
+ return [];
184
+ if (resource.attributes.active !== true)
185
+ return [];
186
+ return [
187
+ operation(resource, "tmux.select-pane", `Restore active tmux pane: ${session}:${windowIndex}.${paneIndex}`, "planned", undefined, tmuxCommand(["select-pane", "-t", `${session}:${windowIndex}.${paneIndex}`]))
188
+ ];
189
+ }
190
+ function planProcess(resource) {
191
+ if (resource.attributes.restartable !== true) {
192
+ return operation(resource, "process.observe", "Process lacks explicit restartable marker.", "skipped");
193
+ }
194
+ const processId = typeof resource.attributes.process_id === "string" ? resource.attributes.process_id : undefined;
195
+ const restartCommand = typeof resource.attributes.restart_command === "string" ? resource.attributes.restart_command : undefined;
196
+ if (!restartCommand) {
197
+ return operation(resource, "process.restart", "Restartable process is missing restart_command.", "blocked", "Captured processes require HASNA_SNAPSHOTS_RESTART_COMMAND_B64 or HASNA_SNAPSHOTS_RESTART_COMMAND_FILE for replay.");
198
+ }
199
+ if (processId && processMarkerRunning(processId)) {
200
+ return operation(resource, "process.exists", `Restartable process already running: ${processId}`, "noop");
201
+ }
202
+ return operation(resource, "process.restart", `Restart marked process: ${processId ?? resource.name}`, "planned", undefined, [
203
+ "sh",
204
+ "-lc",
205
+ restartCommand
206
+ ]);
207
+ }
208
+ function planApp(resource, policy) {
209
+ const name = typeof resource.attributes.name === "string" ? resource.attributes.name : resource.name;
210
+ if (!name)
211
+ return operation(resource, "app.open", "App resource has no name.", "blocked");
212
+ if (policy.selector !== resource.id) {
213
+ return operation(resource, "app.observe", "App restore requires a per-app restore policy.", "skipped", policy.reason);
214
+ }
215
+ const restoreCommand = Array.isArray(resource.attributes.restore_command)
216
+ ? resource.attributes.restore_command.filter((part) => typeof part === "string")
217
+ : undefined;
218
+ if (macAppRunning(name))
219
+ return operation(resource, "app.exists", `App already running: ${name}`, "noop");
220
+ if (restoreCommand?.length) {
221
+ return operation(resource, "app.open", `Open app: ${name}`, "planned", undefined, restoreCommand);
222
+ }
223
+ if (process.platform === "darwin") {
224
+ return operation(resource, "app.open", `Open macOS app: ${name}`, "planned", undefined, ["open", "-a", name]);
225
+ }
226
+ return operation(resource, "app.open", "App restore requires an explicit restore_command on this platform.", "skipped");
227
+ }
102
228
  function executeOperation(op) {
103
229
  if (op.status !== "planned")
104
230
  return op;
@@ -125,6 +251,50 @@ function executeOperation(op) {
125
251
  reason: result.stderr?.trim() || result.error?.message || `Command exited with ${result.status}`
126
252
  };
127
253
  }
254
+ if (op.kind === "tmux.create-window" && op.command) {
255
+ const session = String(op.resource?.attributes.session ?? "");
256
+ const name = String(op.resource?.attributes.name ?? "");
257
+ if (session && name && tmuxWindowExists(session, name))
258
+ return { ...op, status: "noop", reason: "Window already exists at execution time." };
259
+ const [command, ...args] = op.command;
260
+ const result = spawnSync(command, args, { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"], timeout: 5_000 });
261
+ if (result.status === 0)
262
+ return { ...op, status: "applied" };
263
+ return { ...op, status: "failed", reason: result.stderr?.trim() || result.error?.message || `Command exited with ${result.status}` };
264
+ }
265
+ if (op.kind === "tmux.create-pane" && op.command) {
266
+ const session = String(op.resource?.attributes.session ?? "");
267
+ const windowIndex = Number(op.resource?.attributes.window_index);
268
+ const paneIndex = Number(op.resource?.attributes.pane_index);
269
+ if (session && Number.isFinite(windowIndex) && Number.isFinite(paneIndex) && tmuxPaneExists(session, windowIndex, paneIndex)) {
270
+ return { ...op, status: "noop", reason: "Pane already exists at execution time." };
271
+ }
272
+ const [command, ...args] = op.command;
273
+ const result = spawnSync(command, args, { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"], timeout: 5_000 });
274
+ if (result.status === 0)
275
+ return { ...op, status: "applied" };
276
+ return { ...op, status: "failed", reason: result.stderr?.trim() || result.error?.message || `Command exited with ${result.status}` };
277
+ }
278
+ if ((op.kind === "tmux.select-layout" || op.kind === "tmux.select-pane" || op.kind === "tmux.select-window") && op.command) {
279
+ const [command, ...args] = op.command;
280
+ const result = spawnSync(command, args, { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"], timeout: 5_000 });
281
+ if (result.status === 0)
282
+ return { ...op, status: "applied" };
283
+ return { ...op, status: "failed", reason: result.stderr?.trim() || result.error?.message || `Command exited with ${result.status}` };
284
+ }
285
+ if (op.kind === "process.restart" && op.command) {
286
+ const [command, ...args] = op.command;
287
+ const child = spawn(command, args, { detached: true, stdio: "ignore" });
288
+ child.unref();
289
+ return { ...op, status: "applied" };
290
+ }
291
+ if (op.kind === "app.open" && op.command) {
292
+ const [command, ...args] = op.command;
293
+ const result = spawnSync(command, args, { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"], timeout: 10_000 });
294
+ if (result.status === 0)
295
+ return { ...op, status: "applied" };
296
+ return { ...op, status: "failed", reason: result.stderr?.trim() || result.error?.message || `Command exited with ${result.status}` };
297
+ }
128
298
  return { ...op, status: "blocked", reason: "No executor for operation kind." };
129
299
  }
130
300
  function operation(resource, kind, summary, status, reason, command) {
@@ -154,4 +324,82 @@ function summarizeOperations(operations) {
154
324
  }
155
325
  return summary;
156
326
  }
327
+ function sortOperations(operations) {
328
+ const priority = {
329
+ "project.mkdir": 10,
330
+ "tmux.create-session": 20,
331
+ "tmux.create-window": 30,
332
+ "tmux.create-pane": 35,
333
+ "tmux.select-layout": 36,
334
+ "tmux.select-pane": 37,
335
+ "tmux.select-window": 38,
336
+ "process.restart": 40,
337
+ "app.open": 50
338
+ };
339
+ return [...operations].sort((a, b) => (priority[a.kind] ?? 100) - (priority[b.kind] ?? 100) || a.id.localeCompare(b.id));
340
+ }
341
+ function tmuxWindowExists(session, name) {
342
+ const result = runTmux(["list-windows", "-t", session, "-F", "#{window_name}"], 2_000);
343
+ return result.status === 0 && result.stdout.split("\n").map((line) => line.trim()).includes(name);
344
+ }
345
+ function firstPaneIndexForWindow(resource, resources) {
346
+ const session = resource.attributes.session;
347
+ const windowIndex = resource.attributes.window_index;
348
+ const indexes = resources
349
+ .filter((candidate) => candidate.kind === "tmux-pane"
350
+ && candidate.attributes.session === session
351
+ && candidate.attributes.window_index === windowIndex)
352
+ .map((candidate) => Number(candidate.attributes.pane_index))
353
+ .filter(Number.isFinite);
354
+ return indexes.length ? Math.min(...indexes) : 0;
355
+ }
356
+ function tmuxPaneExists(session, windowIndex, paneIndex) {
357
+ const result = runTmux(["list-panes", "-t", `${session}:${windowIndex}`, "-F", "#{pane_index}"], 2_000);
358
+ if (result.status !== 0)
359
+ return false;
360
+ return result.stdout.split("\n").map((line) => Number(line.trim())).includes(paneIndex);
361
+ }
362
+ function processMarkerRunning(processId) {
363
+ const result = spawnSync("ps", ["-axo", "pid=,args="], {
364
+ encoding: "utf8",
365
+ stdio: ["ignore", "pipe", "pipe"],
366
+ timeout: 2_000
367
+ });
368
+ if (result.status !== 0)
369
+ return false;
370
+ return result.stdout.split("\n").some((line) => {
371
+ const trimmed = line.trim();
372
+ if (!trimmed)
373
+ return false;
374
+ const match = trimmed.match(/^(\d+)\s+(.*)$/);
375
+ if (!match)
376
+ return false;
377
+ const [, pid, args] = match;
378
+ return Number(pid) !== process.pid
379
+ && args.includes("HASNA_SNAPSHOTS_RESTARTABLE=1")
380
+ && args.includes(`HASNA_SNAPSHOTS_PROCESS_ID=${processId}`);
381
+ });
382
+ }
383
+ function macAppRunning(name) {
384
+ if (process.platform !== "darwin")
385
+ return false;
386
+ const result = spawnSync("osascript", ["-e", `tell application "System Events" to exists application process "${escapeAppleScript(name)}"`], {
387
+ encoding: "utf8",
388
+ stdio: ["ignore", "pipe", "pipe"],
389
+ timeout: 5_000
390
+ });
391
+ if (result.status === 0)
392
+ return result.stdout.trim() === "true";
393
+ const ps = spawnSync("ps", ["-axo", "args="], {
394
+ encoding: "utf8",
395
+ stdio: ["ignore", "pipe", "pipe"],
396
+ timeout: 2_000
397
+ });
398
+ if (ps.status !== 0)
399
+ return false;
400
+ return ps.stdout.split("\n").some((line) => line.includes(`/${name}.app/Contents/MacOS/`));
401
+ }
402
+ function escapeAppleScript(value) {
403
+ return value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
404
+ }
157
405
  //# sourceMappingURL=restore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restore.js","sourceRoot":"","sources":["../src/restore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../src/restore.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -58,7 +58,7 @@ WantedBy=default.target
58
58
  `;
59
59
  }
60
60
  function launchdPlist(command, intervalSeconds) {
61
- const [program, ...args] = command.split(/\s+/);
61
+ const [program, ...args] = splitCommand(command);
62
62
  const array = [program, ...args].map((arg) => ` <string>${escapeXml(arg)}</string>`).join("\n");
63
63
  return `<?xml version="1.0" encoding="UTF-8"?>
64
64
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -74,10 +74,57 @@ ${array}
74
74
  <integer>${intervalSeconds}</integer>
75
75
  <key>RunAtLoad</key>
76
76
  <true/>
77
+ <key>KeepAlive</key>
78
+ <dict>
79
+ <key>Crashed</key>
80
+ <true/>
81
+ </dict>
77
82
  </dict>
78
83
  </plist>
79
84
  `;
80
85
  }
86
+ function splitCommand(command) {
87
+ const parts = [];
88
+ let current = "";
89
+ let quote;
90
+ let escaped = false;
91
+ for (const char of command) {
92
+ if (escaped) {
93
+ current += char;
94
+ escaped = false;
95
+ continue;
96
+ }
97
+ if (char === "\\" && quote !== "'") {
98
+ escaped = true;
99
+ continue;
100
+ }
101
+ if ((char === "'" || char === "\"") && !quote) {
102
+ quote = char;
103
+ continue;
104
+ }
105
+ if (quote === char) {
106
+ quote = undefined;
107
+ continue;
108
+ }
109
+ if (!quote && /\s/.test(char)) {
110
+ if (current) {
111
+ parts.push(current);
112
+ current = "";
113
+ }
114
+ continue;
115
+ }
116
+ current += char;
117
+ }
118
+ if (escaped)
119
+ current += "\\";
120
+ if (quote)
121
+ throw new Error(`Unclosed quote in service command: ${command}`);
122
+ if (current)
123
+ parts.push(current);
124
+ if (!parts.length)
125
+ throw new Error("Service command cannot be empty.");
126
+ return parts;
127
+ }
81
128
  function escapeXml(value) {
82
129
  return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;");
83
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
3
3
  export interface JsonObject {
4
4
  [key: string]: JsonValue;
5
5
  }
6
- export type ResourceKind = "machine" | "project" | "tmux-session" | "tmux-window" | "tmux-pane" | "process" | "service" | "session" | "browser-state" | "desktop-window" | "diagnostic";
6
+ export type ResourceKind = "machine" | "project" | "tmux-session" | "tmux-window" | "tmux-pane" | "process" | "app" | "service" | "session" | "browser-state" | "desktop-window" | "diagnostic";
7
7
  export interface SnapshotResource {
8
8
  id: string;
9
9
  kind: ResourceKind;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -17,6 +17,9 @@ export interface CommandResult {
17
17
  error?: string;
18
18
  }
19
19
  export declare function runCommand(command: string, args?: string[], timeoutMs?: number): CommandResult;
20
+ export declare function tmuxCommand(args?: string[]): string[];
21
+ export declare function tmuxArgs(args?: string[]): string[];
22
+ export declare function runTmux(args?: string[], timeoutMs?: number): CommandResult;
20
23
  export declare function runJsonCommand(command: string, args?: string[], timeoutMs?: number): JsonValue | undefined;
21
24
  export declare function redactText(input: string): string;
22
25
  export declare function redactJson(value: JsonValue): JsonValue;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEnD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAYpD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMjE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,SAAS,SAAQ,GAAG,aAAa,CAajG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,SAAS,SAAQ,GAAG,SAAS,GAAG,SAAS,CAI7G;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAmBtD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI,MAAM,CAEnE"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEnD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAYpD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMjE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,SAAS,SAAQ,GAAG,aAAa,CAajG;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAEzD;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAMtD;AAED,wBAAgB,OAAO,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,SAAS,SAAQ,GAAG,aAAa,CAE7E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,SAAS,SAAQ,GAAG,SAAS,GAAG,SAAS,CAI7G;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAmBtD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI,MAAM,CAEnE"}
package/dist/util.js CHANGED
@@ -67,6 +67,21 @@ export function runCommand(command, args = [], timeoutMs = 5_000) {
67
67
  error: result.error?.message
68
68
  };
69
69
  }
70
+ export function tmuxCommand(args = []) {
71
+ return ["tmux", ...tmuxArgs(args)];
72
+ }
73
+ export function tmuxArgs(args = []) {
74
+ const socketPath = process.env.HASNA_SNAPSHOTS_TMUX_SOCKET_PATH;
75
+ if (socketPath)
76
+ return ["-S", socketPath, ...args];
77
+ const socketName = process.env.HASNA_SNAPSHOTS_TMUX_SOCKET;
78
+ if (socketName)
79
+ return ["-L", socketName, ...args];
80
+ return args;
81
+ }
82
+ export function runTmux(args = [], timeoutMs = 5_000) {
83
+ return runCommand("tmux", tmuxArgs(args), timeoutMs);
84
+ }
70
85
  export function runJsonCommand(command, args = [], timeoutMs = 5_000) {
71
86
  const result = runCommand(command, args, timeoutMs);
72
87
  if (!result.ok)
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,cAAc,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC3E,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAUD,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,SAAS,GAAG,KAAK;IAChF,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE;IAC7C,OAAO,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAiB,EAAE;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAChE,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC3D,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAiB,EAAE,EAAE,SAAS,GAAG,KAAK;IAC5D,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,SAAS,GAAG,KAAK;IACpF,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,OAAO,CAAC,0EAA0E,EAAE,cAAc,CAAC;SACnG,OAAO,CAAC,kCAAkC,EAAE,cAAc,CAAC;SAC3D,OAAO,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAwB;IACjD,OAAO,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/snapshots",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Runtime snapshot and restore layer for Hasna local open-source developer environments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,8 +43,8 @@
43
43
  "LICENSE"
44
44
  ],
45
45
  "scripts": {
46
- "build": "bunx tsc -p tsconfig.json",
47
- "typecheck": "bunx tsc --noEmit",
46
+ "build": "bun x tsc -p tsconfig.json",
47
+ "typecheck": "bun x tsc --noEmit",
48
48
  "test": "bun test",
49
49
  "verify:release": "bun run typecheck && bun test && bun run build",
50
50
  "prepublishOnly": "bun run verify:release",