@cotal-ai/cli 0.11.6 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/commands/backup.d.ts +13 -0
  2. package/dist/commands/backup.d.ts.map +1 -0
  3. package/dist/commands/backup.js +443 -0
  4. package/dist/commands/backup.js.map +1 -0
  5. package/dist/commands/channels.d.ts +10 -0
  6. package/dist/commands/channels.d.ts.map +1 -1
  7. package/dist/commands/channels.js.map +1 -1
  8. package/dist/commands/clean.d.ts +12 -2
  9. package/dist/commands/clean.d.ts.map +1 -1
  10. package/dist/commands/clean.js +174 -28
  11. package/dist/commands/clean.js.map +1 -1
  12. package/dist/commands/down-manifest.d.ts.map +1 -1
  13. package/dist/commands/down-manifest.js +83 -16
  14. package/dist/commands/down-manifest.js.map +1 -1
  15. package/dist/commands/down.d.ts +5 -0
  16. package/dist/commands/down.d.ts.map +1 -1
  17. package/dist/commands/down.js +367 -5
  18. package/dist/commands/down.js.map +1 -1
  19. package/dist/commands/join.d.ts.map +1 -1
  20. package/dist/commands/join.js +46 -1
  21. package/dist/commands/join.js.map +1 -1
  22. package/dist/commands/mint.d.ts.map +1 -1
  23. package/dist/commands/mint.js +19 -5
  24. package/dist/commands/mint.js.map +1 -1
  25. package/dist/commands/spawn.d.ts +4 -0
  26. package/dist/commands/spawn.d.ts.map +1 -1
  27. package/dist/commands/spawn.js +81 -42
  28. package/dist/commands/spawn.js.map +1 -1
  29. package/dist/commands/status.d.ts.map +1 -1
  30. package/dist/commands/status.js +3 -2
  31. package/dist/commands/status.js.map +1 -1
  32. package/dist/commands/up.d.ts +12 -0
  33. package/dist/commands/up.d.ts.map +1 -1
  34. package/dist/commands/up.js +1149 -193
  35. package/dist/commands/up.js.map +1 -1
  36. package/dist/commands/use.d.ts +3 -3
  37. package/dist/commands/use.d.ts.map +1 -1
  38. package/dist/commands/use.js +3 -3
  39. package/dist/commands/use.js.map +1 -1
  40. package/dist/console/app.js +1 -1
  41. package/dist/console/app.js.map +1 -1
  42. package/dist/console/ui/NeedsYou.js +1 -1
  43. package/dist/console/ui/NeedsYou.js.map +1 -1
  44. package/dist/console/ui/Tiles.d.ts +6 -3
  45. package/dist/console/ui/Tiles.d.ts.map +1 -1
  46. package/dist/console/ui/Tiles.js +6 -3
  47. package/dist/console/ui/Tiles.js.map +1 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +21 -5
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/auth-proc.d.ts +21 -0
  52. package/dist/lib/auth-proc.d.ts.map +1 -1
  53. package/dist/lib/auth-proc.js +89 -15
  54. package/dist/lib/auth-proc.js.map +1 -1
  55. package/dist/lib/backup-artifact.d.ts +50 -0
  56. package/dist/lib/backup-artifact.d.ts.map +1 -0
  57. package/dist/lib/backup-artifact.js +290 -0
  58. package/dist/lib/backup-artifact.js.map +1 -0
  59. package/dist/lib/delivery-proc.d.ts +7 -2
  60. package/dist/lib/delivery-proc.d.ts.map +1 -1
  61. package/dist/lib/delivery-proc.js +29 -19
  62. package/dist/lib/delivery-proc.js.map +1 -1
  63. package/dist/lib/endpoint-cut.d.ts +5 -0
  64. package/dist/lib/endpoint-cut.d.ts.map +1 -0
  65. package/dist/lib/endpoint-cut.js +53 -0
  66. package/dist/lib/endpoint-cut.js.map +1 -0
  67. package/dist/lib/isolated-broker.d.ts +70 -0
  68. package/dist/lib/isolated-broker.d.ts.map +1 -0
  69. package/dist/lib/isolated-broker.js +436 -0
  70. package/dist/lib/isolated-broker.js.map +1 -0
  71. package/dist/lib/maintenance-files.d.ts +10 -0
  72. package/dist/lib/maintenance-files.d.ts.map +1 -0
  73. package/dist/lib/maintenance-files.js +60 -0
  74. package/dist/lib/maintenance-files.js.map +1 -0
  75. package/dist/lib/manager-proc.d.ts +4 -0
  76. package/dist/lib/manager-proc.d.ts.map +1 -1
  77. package/dist/lib/manager-proc.js +2 -0
  78. package/dist/lib/manager-proc.js.map +1 -1
  79. package/dist/lib/manifest/ledger.d.ts +4 -2
  80. package/dist/lib/manifest/ledger.d.ts.map +1 -1
  81. package/dist/lib/manifest/ledger.js +8 -10
  82. package/dist/lib/manifest/ledger.js.map +1 -1
  83. package/dist/lib/restore.d.ts +52 -0
  84. package/dist/lib/restore.d.ts.map +1 -0
  85. package/dist/lib/restore.js +801 -0
  86. package/dist/lib/restore.js.map +1 -0
  87. package/dist/view/mesh-view.d.ts +6 -1
  88. package/dist/view/mesh-view.d.ts.map +1 -1
  89. package/dist/view/mesh-view.js +8 -3
  90. package/dist/view/mesh-view.js.map +1 -1
  91. package/package.json +7 -4
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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"}
@@ -2,6 +2,27 @@ import { type AuthPrepared } from "@cotal-ai/core";
2
2
  export { resolveAuthProvider } from "@cotal-ai/core";
3
3
  /** True if the auth service we started for THIS space is still running (pid file + liveness). */
4
4
  export declare function authServiceUp(space: string): boolean;
5
+ /** EXCLUSIVE pidfile claim (#29 HIGH 3 belt): the slot is published ATOMICALLY and
6
+ * PRE-POPULATED, so no reader can ever observe a legitimately-empty claim and no create/write
7
+ * window exists to race. The claimant writes its own pid to a unique temp inode in the same
8
+ * directory, then publishes it with `link(2)` — an atomic no-overwrite operation — as the slot
9
+ * path (the held fd stays the published inode; the caller later replaces the content with the
10
+ * daemon child's pid through it). This is the cheap HOST-LAYER belt only — the broker-visible
11
+ * exclusion is the plane claim inside `openAuthAuthorityPlane` (a second plane refuses there
12
+ * even if it somehow gets spawned; SPEC 13.13). Outcomes:
13
+ * - `{ fd }`: this launcher owns the slot;
14
+ * - `{ livePid }`: a LIVE holder already owns it (the daemon, or a launcher mid-spawn whose
15
+ * daemon the caller's ready() poll adjudicates) — use that one;
16
+ * - `undefined`: yield — garbled content, or still contested after one retry; never steal what
17
+ * cannot be attributed.
18
+ * A slot naming a provably DEAD pid — and an EMPTY slot, which the atomic pre-populated publish
19
+ * makes impossible to produce except by a pre-protocol crash — is removed and the claim retried
20
+ * ONCE, so a crash can never wedge the slot permanently. */
21
+ export declare function claimAuthPidSlot(space: string): {
22
+ fd: number;
23
+ } | {
24
+ livePid: number;
25
+ } | undefined;
5
26
  /** Make the user-auth service available for a space: start the provider's daemon unless it's
6
27
  * already up, then wait on the provider's readiness contract (both planes bound). Returns the
7
28
  * provider-reported runtime endpoints for the mesh registry. THROWS with the reason + the log
@@ -1 +1 @@
1
- {"version":3,"file":"auth-proc.d.ts","sourceRoot":"","sources":["../../src/lib/auth-proc.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkBnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKpD;AAmBD;;;;yDAIyD;AACzD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOnC;AAED;0BAC0B;AAC1B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAYnD"}
1
+ {"version":3,"file":"auth-proc.d.ts","sourceRoot":"","sources":["../../src/lib/auth-proc.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkBnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED;;;;;;;;;;;;;;;6DAe6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA+BhG;AA+BD;;;;yDAIyD;AACzD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOnC;AAED;0BAC0B;AAC1B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAYnD"}
@@ -7,7 +7,8 @@
7
7
  * to the provider's `ready()` contract. No `@cotal-ai/auth` import anywhere in this package.
8
8
  */
9
9
  import { spawn } from "node:child_process";
10
- import { closeSync, existsSync, openSync, readFileSync, rmSync, writeFileSync } from "node:fs";
10
+ import { randomBytes } from "node:crypto";
11
+ import { closeSync, existsSync, ftruncateSync, linkSync, openSync, readFileSync, rmSync, writeSync } from "node:fs";
11
12
  import {} from "@cotal-ai/core";
12
13
  import { selfArgv } from "./self-exec.js";
13
14
  import { cotalPath } from "./paths.js";
@@ -33,21 +34,94 @@ export function authServiceUp(space) {
33
34
  const pid = Number(readFileSync(p, "utf8").trim());
34
35
  return Number.isFinite(pid) && alive(pid);
35
36
  }
36
- /** Start the provider's daemon command detached (pid + log space-scoped), stopped by `cotal down`. */
37
+ /** EXCLUSIVE pidfile claim (#29 HIGH 3 belt): the slot is published ATOMICALLY and
38
+ * PRE-POPULATED, so no reader can ever observe a legitimately-empty claim and no create/write
39
+ * window exists to race. The claimant writes its own pid to a unique temp inode in the same
40
+ * directory, then publishes it with `link(2)` — an atomic no-overwrite operation — as the slot
41
+ * path (the held fd stays the published inode; the caller later replaces the content with the
42
+ * daemon child's pid through it). This is the cheap HOST-LAYER belt only — the broker-visible
43
+ * exclusion is the plane claim inside `openAuthAuthorityPlane` (a second plane refuses there
44
+ * even if it somehow gets spawned; SPEC 13.13). Outcomes:
45
+ * - `{ fd }`: this launcher owns the slot;
46
+ * - `{ livePid }`: a LIVE holder already owns it (the daemon, or a launcher mid-spawn whose
47
+ * daemon the caller's ready() poll adjudicates) — use that one;
48
+ * - `undefined`: yield — garbled content, or still contested after one retry; never steal what
49
+ * cannot be attributed.
50
+ * A slot naming a provably DEAD pid — and an EMPTY slot, which the atomic pre-populated publish
51
+ * makes impossible to produce except by a pre-protocol crash — is removed and the claim retried
52
+ * ONCE, so a crash can never wedge the slot permanently. */
53
+ export function claimAuthPidSlot(space) {
54
+ const target = PID_PATH(space);
55
+ for (let attempt = 0; attempt < 2; attempt++) {
56
+ const temp = `${target}.claim.${process.pid}.${randomBytes(4).toString("hex")}`;
57
+ let fd;
58
+ try {
59
+ fd = openSync(temp, "wx");
60
+ writeSync(fd, String(process.pid), 0);
61
+ linkSync(temp, target); // the atomic no-overwrite publish: EEXIST = the slot is held
62
+ rmSync(temp); // the published name and the held fd both keep the inode alive
63
+ return { fd };
64
+ }
65
+ catch {
66
+ if (fd !== undefined)
67
+ closeSync(fd);
68
+ try {
69
+ rmSync(temp);
70
+ }
71
+ catch { /* never created, or already gone */ }
72
+ let raw;
73
+ try {
74
+ raw = readFileSync(target, "utf8");
75
+ }
76
+ catch {
77
+ continue; // vanished between publish-refusal and read - retry the claim once
78
+ }
79
+ const trimmed = raw.trim();
80
+ const pid = trimmed === "" ? Number.NaN : Number(trimmed);
81
+ if (Number.isFinite(pid) && pid > 0 && alive(pid))
82
+ return { livePid: pid };
83
+ if ((trimmed === "" || (Number.isFinite(pid) && pid > 0)) && attempt === 0) {
84
+ try {
85
+ rmSync(target);
86
+ }
87
+ catch { /* a sibling removed it first */ }
88
+ continue; // a dead holder, or an empty pre-protocol slot: reclaim ONCE
89
+ }
90
+ return undefined; // garbled content (or still contested after the retry): never steal
91
+ }
92
+ }
93
+ return undefined;
94
+ }
95
+ /** Start the provider's daemon command detached (pid + log space-scoped), stopped by `cotal down`.
96
+ * The pid slot is claimed exclusively FIRST ({@link claimAuthPidSlot}); a held or contested slot
97
+ * yields to the existing daemon (the caller's ready() poll adjudicates liveness). */
37
98
  function startAuthServiceDetached(space, server, command) {
38
- const fd = openSync(LOG_PATH(space), "a");
39
- const [node, ...self] = selfArgv();
40
- // Internal child re-exec (the `up` that reached here already seeded); the auth service does not
41
- // launch agents, so it skips the connector seed on boot (a direct `cotal auth-service` still seeds).
42
- const child = spawn(node, [...self, command, "--space", space, "--server", server], {
43
- detached: true,
44
- stdio: ["ignore", fd, fd],
45
- env: { ...process.env, COTAL_SKIP_CONNECTOR_SEED: "1" },
46
- });
47
- closeSync(fd);
48
- child.unref();
49
- writeFileSync(PID_PATH(space), String(child.pid));
50
- return child.pid ?? 0;
99
+ const slot = claimAuthPidSlot(space);
100
+ if (slot === undefined)
101
+ return 0;
102
+ if ("livePid" in slot)
103
+ return slot.livePid;
104
+ try {
105
+ const fd = openSync(LOG_PATH(space), "a");
106
+ const [node, ...self] = selfArgv();
107
+ // Internal child re-exec (the `up` that reached here already seeded); the auth service does not
108
+ // launch agents, so it skips the connector seed on boot (a direct `cotal auth-service` still seeds).
109
+ const child = spawn(node, [...self, command, "--space", space, "--server", server], {
110
+ detached: true,
111
+ stdio: ["ignore", fd, fd],
112
+ env: { ...process.env, COTAL_SKIP_CONNECTOR_SEED: "1" },
113
+ });
114
+ closeSync(fd);
115
+ child.unref();
116
+ // Replace the launcher pid with the daemon child's pid through the exclusively-created fd,
117
+ // never a re-open (truncate first: the fd position sits past the launcher pid).
118
+ ftruncateSync(slot.fd, 0);
119
+ writeSync(slot.fd, String(child.pid), 0);
120
+ return child.pid ?? 0;
121
+ }
122
+ finally {
123
+ closeSync(slot.fd);
124
+ }
51
125
  }
52
126
  /** Make the user-auth service available for a space: start the provider's daemon unless it's
53
127
  * already up, then wait on the provider's readiness contract (both planes bound). Returns the
@@ -1 +1 @@
1
- {"version":3,"file":"auth-proc.js","sourceRoot":"","sources":["../../src/lib/auth-proc.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/F,OAAO,EAAqB,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/F,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE/F,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,wCAAwC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,sGAAsG;AACtG,SAAS,wBAAwB,CAAC,KAAa,EAAE,MAAc,EAAE,OAAe;IAC9E,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC;IACnC,gGAAgG;IAChG,qGAAqG;IACrG,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;QAClF,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;QACzB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,yBAAyB,EAAE,GAAG,EAAE;KACxD,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;;yDAIyD;AACzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAKvC;IACC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjH,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED;0BAC0B;AAC1B,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"auth-proc.js","sourceRoot":"","sources":["../../src/lib/auth-proc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { type BackupStreamState, type PersistentConsumerCheckpoint, type SpaceBackupSelection } from "@cotal-ai/core";
2
+ import type { MaintenanceAuthMode, StoreIdentity } from "@cotal-ai/workspace";
3
+ import type { AuthorityFingerprint } from "./maintenance-files.js";
4
+ export declare const BACKUP_MANIFEST_FORMAT: "cotal-space-backup/v1";
5
+ export interface BackupFileRecord {
6
+ path: string;
7
+ size: number;
8
+ sha256: string;
9
+ kind: "snapshot" | "checkpoints";
10
+ stream?: string;
11
+ }
12
+ export interface BackupStreamRecord {
13
+ stream: string;
14
+ snapshot: string;
15
+ config: Record<string, unknown>;
16
+ state: BackupStreamState;
17
+ }
18
+ export interface BackupManifest {
19
+ format: typeof BACKUP_MANIFEST_FORMAT;
20
+ createdAt: string;
21
+ space: string;
22
+ selection: SpaceBackupSelection;
23
+ mode: MaintenanceAuthMode;
24
+ source: StoreIdentity;
25
+ authority?: AuthorityFingerprint;
26
+ streams: BackupStreamRecord[];
27
+ checkpoints: string;
28
+ files: BackupFileRecord[];
29
+ }
30
+ export interface ArtifactWriter {
31
+ directory: string;
32
+ identity: {
33
+ dev: bigint;
34
+ ino: bigint;
35
+ };
36
+ writeFile(name: string, kind: BackupFileRecord["kind"], source: AsyncIterable<Uint8Array> | Uint8Array | string, stream?: string): Promise<BackupFileRecord>;
37
+ publish(manifest: Omit<BackupManifest, "format" | "createdAt" | "files">, files: BackupFileRecord[]): BackupManifest;
38
+ cleanup(): void;
39
+ }
40
+ export declare function createArtifactWriter(destination: string): ArtifactWriter;
41
+ export interface StagedArtifact {
42
+ manifest: BackupManifest;
43
+ directory: string;
44
+ cleanup(): void;
45
+ }
46
+ /** Validate exact names and pin verified bytes into a private attempt directory before any mutation. */
47
+ export declare function stageArtifact(artifactPath: string, parent: string): StagedArtifact;
48
+ export declare function readStagedCheckpoints(staged: StagedArtifact): PersistentConsumerCheckpoint[];
49
+ export declare function snapshotFileName(stream: string): string;
50
+ //# sourceMappingURL=backup-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-artifact.d.ts","sourceRoot":"","sources":["../../src/lib/backup-artifact.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,eAAO,MAAM,sBAAsB,EAAG,uBAAgC,CAAC;AAKvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,sBAAsB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,oBAAoB,CAAC;IAChC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7J,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;IACrH,OAAO,IAAI,IAAI,CAAC;CACjB;AAqCD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAwFxE;AAkED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAkDlF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,4BAA4B,EAAE,CAI5F;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,290 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { closeSync, constants, fstatSync, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, realpathSync, readSync, readdirSync, renameSync, rmSync, statSync, writeFileSync, writeSync, } from "node:fs";
3
+ import { dirname, isAbsolute, join, resolve } from "node:path";
4
+ import { hardenPrivate, } from "@cotal-ai/core";
5
+ export const BACKUP_MANIFEST_FORMAT = "cotal-space-backup/v1";
6
+ const MAX_MANIFEST_BYTES = 1024 * 1024;
7
+ const MAX_CHECKPOINT_BYTES = 16 * 1024 * 1024;
8
+ const COPY_BUFFER_BYTES = 1024 * 1024;
9
+ function fsyncDirectory(path) {
10
+ let fd;
11
+ try {
12
+ fd = openSync(path, constants.O_RDONLY);
13
+ fsyncSync(fd);
14
+ }
15
+ catch (error) {
16
+ if (process.platform !== "win32")
17
+ throw error;
18
+ }
19
+ finally {
20
+ if (fd !== undefined)
21
+ closeSync(fd);
22
+ }
23
+ }
24
+ function safeFileName(name) {
25
+ if (!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,200}$/.test(name) || name === "manifest.json")
26
+ throw new Error(`invalid backup artifact file name ${JSON.stringify(name)}`);
27
+ }
28
+ function writeAll(fd, chunk) {
29
+ let offset = 0;
30
+ while (offset < chunk.byteLength) {
31
+ const written = writeSync(fd, chunk, offset, chunk.byteLength - offset);
32
+ if (written <= 0)
33
+ throw new Error("backup artifact write made no progress");
34
+ offset += written;
35
+ }
36
+ }
37
+ function sameDirectoryIdentity(path, identity) {
38
+ try {
39
+ const stat = lstatSync(path, { bigint: true });
40
+ return stat.isDirectory() && !stat.isSymbolicLink() && stat.dev === identity.dev && stat.ino === identity.ino;
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ export function createArtifactWriter(destination) {
47
+ const directory = resolve(destination);
48
+ try {
49
+ mkdirSync(directory, { mode: 0o700 });
50
+ }
51
+ catch (error) {
52
+ if (error.code === "EEXIST")
53
+ throw new Error(`backup destination already exists: ${directory}`);
54
+ throw error;
55
+ }
56
+ let identity;
57
+ try {
58
+ // The artifact holds whole-stream snapshots (chat, DMs) — the most sensitive bytes we write.
59
+ // `hardenPrivate` reasserts 0700 on POSIX and sets the win32 ACL, where the create mode above is
60
+ // a no-op; the dir grant is inheritable, so every file written below is born private too.
61
+ hardenPrivate(directory, "dir");
62
+ fsyncDirectory(dirname(directory));
63
+ const stat = lstatSync(directory, { bigint: true });
64
+ identity = { dev: stat.dev, ino: stat.ino };
65
+ }
66
+ catch (error) {
67
+ // The directory was exclusively created by this call and nothing has been written into it:
68
+ // a failed post-create step must not leak it and block a same-destination retry.
69
+ try {
70
+ const current = lstatSync(directory, { bigint: true });
71
+ if (current.isDirectory() && !current.isSymbolicLink())
72
+ rmSync(directory, { recursive: true });
73
+ }
74
+ catch { /* already absent */ }
75
+ throw error;
76
+ }
77
+ let published = false;
78
+ return {
79
+ directory,
80
+ identity,
81
+ async writeFile(name, kind, source, stream) {
82
+ if (published)
83
+ throw new Error("backup manifest is already published");
84
+ safeFileName(name);
85
+ const path = join(directory, name);
86
+ const fd = openSync(path, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
87
+ const hash = createHash("sha256");
88
+ let size = 0;
89
+ try {
90
+ const write = (chunk) => {
91
+ writeAll(fd, chunk);
92
+ hash.update(chunk);
93
+ size += chunk.byteLength;
94
+ };
95
+ if (typeof source === "string")
96
+ write(Buffer.from(source));
97
+ else if (source instanceof Uint8Array)
98
+ write(source);
99
+ else
100
+ for await (const chunk of source)
101
+ write(chunk);
102
+ fsyncSync(fd);
103
+ if (fstatSync(fd).size !== size)
104
+ throw new Error(`backup artifact size mismatch after writing ${name}`);
105
+ }
106
+ finally {
107
+ closeSync(fd);
108
+ }
109
+ return { path: name, size, sha256: hash.digest("hex"), kind, ...(stream ? { stream } : {}) };
110
+ },
111
+ publish(input, files) {
112
+ if (published)
113
+ throw new Error("backup manifest is already published");
114
+ const manifest = {
115
+ format: BACKUP_MANIFEST_FORMAT,
116
+ createdAt: new Date().toISOString(),
117
+ ...input,
118
+ files: [...files].sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0),
119
+ };
120
+ // The manifest is the completion marker, so it must appear ATOMICALLY: durable bytes first
121
+ // at a temp name, then one rename. A crash can never leave a truncated manifest.json.
122
+ const path = join(directory, "manifest.json");
123
+ const tmp = join(directory, `manifest.json.${process.pid}.${randomUUID()}.tmp`);
124
+ const fd = openSync(tmp, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
125
+ try {
126
+ writeFileSync(fd, `${JSON.stringify(manifest, null, 2)}\n`);
127
+ fsyncSync(fd);
128
+ closeSync(fd);
129
+ }
130
+ catch (error) {
131
+ try {
132
+ closeSync(fd);
133
+ }
134
+ catch { /* already closed */ }
135
+ try {
136
+ rmSync(tmp);
137
+ }
138
+ catch { /* best effort for the exclusively-created temp */ }
139
+ throw error;
140
+ }
141
+ renameSync(tmp, path);
142
+ fsyncDirectory(directory);
143
+ published = true;
144
+ return manifest;
145
+ },
146
+ cleanup() {
147
+ if (published || !sameDirectoryIdentity(directory, identity))
148
+ return;
149
+ rmSync(directory, { recursive: true });
150
+ fsyncDirectory(dirname(directory));
151
+ },
152
+ };
153
+ }
154
+ function parseManifest(path) {
155
+ const stat = lstatSync(path);
156
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.size > MAX_MANIFEST_BYTES)
157
+ throw new Error(`backup manifest is not a bounded regular file: ${path}`);
158
+ const value = JSON.parse(readFileSync(path, "utf8"));
159
+ if (value.format !== BACKUP_MANIFEST_FORMAT)
160
+ throw new Error(`unsupported backup format ${JSON.stringify(value.format)}`);
161
+ if (!value.space || !["full", "registry"].includes(value.selection) || !["auth", "open", "user"].includes(value.mode))
162
+ throw new Error("backup manifest has invalid space, selection, or mode");
163
+ if (!Array.isArray(value.files) || !Array.isArray(value.streams) || typeof value.checkpoints !== "string")
164
+ throw new Error("backup manifest has invalid inventory");
165
+ safeFileName(value.checkpoints);
166
+ for (const stream of value.streams) {
167
+ if (!stream || typeof stream !== "object" || typeof stream.stream !== "string" || typeof stream.snapshot !== "string")
168
+ throw new Error("backup manifest has an invalid stream record");
169
+ safeFileName(stream.snapshot);
170
+ }
171
+ const keys = Object.keys(value).sort().join(",");
172
+ const expectedKeys = ["authority", "checkpoints", "createdAt", "files", "format", "mode", "selection", "source", "space", "streams"]
173
+ .filter((key) => key !== "authority" || value.authority !== undefined).sort().join(",");
174
+ if (keys !== expectedKeys || !Number.isFinite(Date.parse(value.createdAt)))
175
+ throw new Error("backup manifest has unknown fields or an invalid timestamp");
176
+ if (!value.source || typeof value.source.path !== "string" || !isAbsolute(value.source.path) ||
177
+ !/^\d+$/.test(value.source.dev) || !/^\d+$/.test(value.source.ino) ||
178
+ !/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value.source.generation))
179
+ throw new Error("backup manifest has an invalid source identity");
180
+ return value;
181
+ }
182
+ function copyPinnedFile(source, destination, expected) {
183
+ const pathStat = lstatSync(source);
184
+ if (!pathStat.isFile() || pathStat.isSymbolicLink())
185
+ throw new Error(`backup input is not a real file: ${source}`);
186
+ const noFollow = process.platform === "win32" ? 0 : constants.O_NOFOLLOW;
187
+ const sourceFd = openSync(source, constants.O_RDONLY | noFollow);
188
+ let destinationFd;
189
+ const hash = createHash("sha256");
190
+ let size = 0;
191
+ try {
192
+ const before = fstatSync(sourceFd, { bigint: true });
193
+ if (!before.isFile())
194
+ throw new Error(`backup input is not a regular file: ${source}`);
195
+ destinationFd = openSync(destination, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
196
+ const buffer = Buffer.allocUnsafe(COPY_BUFFER_BYTES);
197
+ for (;;) {
198
+ const count = readSync(sourceFd, buffer, 0, buffer.length, null);
199
+ if (count === 0)
200
+ break;
201
+ const chunk = buffer.subarray(0, count);
202
+ writeAll(destinationFd, chunk);
203
+ hash.update(chunk);
204
+ size += count;
205
+ if (size > expected.size)
206
+ throw new Error(`backup input grew while staging: ${source}`);
207
+ }
208
+ const after = fstatSync(sourceFd, { bigint: true });
209
+ if (before.dev !== after.dev || before.ino !== after.ino || before.size !== after.size || before.mtimeNs !== after.mtimeNs)
210
+ throw new Error(`backup input changed while staging: ${source}`);
211
+ if (size !== expected.size || hash.digest("hex") !== expected.sha256)
212
+ throw new Error(`backup input size or SHA-256 mismatch: ${source}`);
213
+ fsyncSync(destinationFd);
214
+ if (fstatSync(destinationFd).size !== size)
215
+ throw new Error(`staged backup size mismatch after writing ${destination}`);
216
+ }
217
+ finally {
218
+ if (destinationFd !== undefined)
219
+ closeSync(destinationFd);
220
+ closeSync(sourceFd);
221
+ }
222
+ }
223
+ /** Validate exact names and pin verified bytes into a private attempt directory before any mutation. */
224
+ export function stageArtifact(artifactPath, parent) {
225
+ const artifact = resolve(artifactPath);
226
+ const artifactStat = lstatSync(artifact);
227
+ if (!artifactStat.isDirectory() || artifactStat.isSymbolicLink())
228
+ throw new Error(`backup artifact is not a real directory: ${artifact}`);
229
+ const manifest = parseManifest(join(artifact, "manifest.json"));
230
+ const expected = new Set(["manifest.json", ...manifest.files.map((file) => file.path)]);
231
+ const actual = readdirSync(artifact);
232
+ if (new Set(actual).size !== actual.length || actual.some((name) => !expected.has(name)) || actual.length !== expected.size)
233
+ throw new Error("backup artifact contains extra, duplicate, or missing files");
234
+ if (new Set(manifest.files.map((file) => file.path)).size !== manifest.files.length)
235
+ throw new Error("backup artifact file inventory contains duplicate paths");
236
+ for (const file of manifest.files) {
237
+ safeFileName(file.path);
238
+ if (!Number.isSafeInteger(file.size) || file.size < 0 || !/^[0-9a-f]{64}$/.test(file.sha256) ||
239
+ !["snapshot", "checkpoints"].includes(file.kind) ||
240
+ (file.kind === "snapshot") !== (typeof file.stream === "string"))
241
+ throw new Error(`backup file metadata is invalid: ${file.path}`);
242
+ if (file.kind === "checkpoints" && file.size > MAX_CHECKPOINT_BYTES)
243
+ throw new Error(`backup checkpoints exceed ${MAX_CHECKPOINT_BYTES} bytes`);
244
+ }
245
+ const checkpointFiles = manifest.files.filter((file) => file.kind === "checkpoints");
246
+ if (checkpointFiles.length !== 1 || checkpointFiles[0].path !== manifest.checkpoints)
247
+ throw new Error("backup manifest must name exactly one checkpoints file");
248
+ const snapshotFiles = new Map(manifest.files.filter((file) => file.kind === "snapshot").map((file) => [file.path, file.stream]));
249
+ if (snapshotFiles.size !== manifest.streams.length || manifest.streams.some((stream) => snapshotFiles.get(stream.snapshot) !== stream.stream))
250
+ throw new Error("backup stream records do not match snapshot file metadata");
251
+ const parentPath = realpathSync.native(resolve(parent));
252
+ const parentStat = lstatSync(parentPath, { bigint: true });
253
+ if (!parentStat.isDirectory() || parentStat.isSymbolicLink())
254
+ throw new Error(`restore staging parent is not a real directory: ${parentPath}`);
255
+ const parentIdentity = { dev: parentStat.dev, ino: parentStat.ino };
256
+ const directory = join(parentPath, `.cotal-restore-stage-${randomUUID()}`);
257
+ mkdirSync(directory, { mode: 0o700 });
258
+ hardenPrivate(directory, "dir"); // staged snapshots are the same secret bytes — private on win32 too
259
+ const identityStat = lstatSync(directory, { bigint: true });
260
+ const identity = { dev: identityStat.dev, ino: identityStat.ino };
261
+ try {
262
+ for (const file of manifest.files)
263
+ copyPinnedFile(join(artifact, file.path), join(directory, file.path), file);
264
+ writeFileSync(join(directory, "manifest.json"), `${JSON.stringify(manifest, null, 2)}\n`, { flag: "wx", mode: 0o600 });
265
+ fsyncDirectory(directory);
266
+ }
267
+ catch (error) {
268
+ if (sameDirectoryIdentity(parentPath, parentIdentity) && sameDirectoryIdentity(directory, identity))
269
+ rmSync(directory, { recursive: true });
270
+ throw error;
271
+ }
272
+ return {
273
+ manifest,
274
+ directory,
275
+ cleanup() {
276
+ if (sameDirectoryIdentity(parentPath, parentIdentity) && sameDirectoryIdentity(directory, identity))
277
+ rmSync(directory, { recursive: true });
278
+ },
279
+ };
280
+ }
281
+ export function readStagedCheckpoints(staged) {
282
+ const value = JSON.parse(readFileSync(join(staged.directory, staged.manifest.checkpoints), "utf8"));
283
+ if (!Array.isArray(value))
284
+ throw new Error("backup checkpoints must be an array");
285
+ return value;
286
+ }
287
+ export function snapshotFileName(stream) {
288
+ return `stream-${createHash("sha256").update(stream).digest("hex").slice(0, 24)}.snap`;
289
+ }
290
+ //# sourceMappingURL=backup-artifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-artifact.js","sourceRoot":"","sources":["../../src/lib/backup-artifact.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ type Opts = {
4
4
  spawn?: string[];
5
5
  runtime?: string;
6
6
  launch?: string;
7
+ resumeAttempt?: string;
8
+ resumeCommitToken?: string;
7
9
  };
8
10
  /** True if the delivery daemon we started for this folder is still running (pid file + liveness). */
9
11
  export declare function deliveryUp(): boolean;
@@ -23,8 +25,11 @@ export declare function startDeliveryDetached(o?: Opts): number;
23
25
  export declare function ensureDelivery(o?: Opts): Promise<{
24
26
  running: boolean;
25
27
  }>;
26
- /** Stop the detached delivery daemon if we started one, and drop its creds file. */
27
- export declare function stopDelivery(): void;
28
+ /** Stop the detached delivery daemon if we started one, and drop its creds from the store. The pid
29
+ * kill runs even if the creds delete fails (finally) — a delete error must never leave the daemon
30
+ * alive to outlive the teardown and reattach to a restarted broker; the error still propagates
31
+ * after the kill so the caller can surface it. */
32
+ export declare function stopDelivery(): Promise<void>;
28
33
  /** Bring up the control plane in the correct cutover order: OLD-manager preflight → delivery daemon
29
34
  * (auth only, fails closed on a live old manager) → manager (lifecycle, writes the delivery-aware
30
35
  * marker). The manager no longer depends on the daemon (it hosts no Plane-3), so the daemon is started