rightsize 0.1.2 → 0.3.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 (131) hide show
  1. package/README.md +36 -4
  2. package/dist/backend-docker/backend.d.ts +76 -1
  3. package/dist/backend-docker/backend.d.ts.map +1 -1
  4. package/dist/backend-docker/backend.js +156 -13
  5. package/dist/backend-docker/backend.js.map +1 -1
  6. package/dist/backend-docker/cli.d.ts +25 -0
  7. package/dist/backend-docker/cli.d.ts.map +1 -0
  8. package/dist/backend-docker/cli.js +64 -0
  9. package/dist/backend-docker/cli.js.map +1 -0
  10. package/dist/backend-docker/labels.d.ts +27 -5
  11. package/dist/backend-docker/labels.d.ts.map +1 -1
  12. package/dist/backend-docker/labels.js +33 -5
  13. package/dist/backend-docker/labels.js.map +1 -1
  14. package/dist/backend-msb/backend.d.ts +89 -6
  15. package/dist/backend-msb/backend.d.ts.map +1 -1
  16. package/dist/backend-msb/backend.js +179 -14
  17. package/dist/backend-msb/backend.js.map +1 -1
  18. package/dist/backend-msb/commands.d.ts +10 -0
  19. package/dist/backend-msb/commands.d.ts.map +1 -1
  20. package/dist/backend-msb/commands.js +29 -1
  21. package/dist/backend-msb/commands.js.map +1 -1
  22. package/dist/backend-msb/provider.d.ts.map +1 -1
  23. package/dist/backend-msb/provider.js +7 -11
  24. package/dist/backend-msb/provider.js.map +1 -1
  25. package/dist/backend-msb/provisioner.d.ts.map +1 -1
  26. package/dist/backend-msb/provisioner.js +1 -20
  27. package/dist/backend-msb/provisioner.js.map +1 -1
  28. package/dist/backend-msb/snapshot-not-found.d.ts +25 -0
  29. package/dist/backend-msb/snapshot-not-found.d.ts.map +1 -0
  30. package/dist/backend-msb/snapshot-not-found.js +27 -0
  31. package/dist/backend-msb/snapshot-not-found.js.map +1 -0
  32. package/dist/core/backend.d.ts +124 -0
  33. package/dist/core/backend.d.ts.map +1 -1
  34. package/dist/core/backends.d.ts +16 -2
  35. package/dist/core/backends.d.ts.map +1 -1
  36. package/dist/core/backends.js +39 -5
  37. package/dist/core/backends.js.map +1 -1
  38. package/dist/core/cache-dir.d.ts +17 -0
  39. package/dist/core/cache-dir.d.ts.map +1 -0
  40. package/dist/core/cache-dir.js +29 -0
  41. package/dist/core/cache-dir.js.map +1 -0
  42. package/dist/core/checkpoint/api.d.ts +80 -0
  43. package/dist/core/checkpoint/api.d.ts.map +1 -0
  44. package/dist/core/checkpoint/api.js +138 -0
  45. package/dist/core/checkpoint/api.js.map +1 -0
  46. package/dist/core/checkpoint/name.d.ts +12 -0
  47. package/dist/core/checkpoint/name.d.ts.map +1 -0
  48. package/dist/core/checkpoint/name.js +17 -0
  49. package/dist/core/checkpoint/name.js.map +1 -0
  50. package/dist/core/checkpoint/ref.d.ts +12 -0
  51. package/dist/core/checkpoint/ref.d.ts.map +1 -0
  52. package/dist/core/checkpoint/ref.js +16 -0
  53. package/dist/core/checkpoint/ref.js.map +1 -0
  54. package/dist/core/checkpoint/registry.d.ts +107 -0
  55. package/dist/core/checkpoint/registry.d.ts.map +1 -0
  56. package/dist/core/checkpoint/registry.js +180 -0
  57. package/dist/core/checkpoint/registry.js.map +1 -0
  58. package/dist/core/cleanup.d.ts +19 -4
  59. package/dist/core/cleanup.d.ts.map +1 -1
  60. package/dist/core/cleanup.js +14 -27
  61. package/dist/core/cleanup.js.map +1 -1
  62. package/dist/core/diagnostics.d.ts +33 -0
  63. package/dist/core/diagnostics.d.ts.map +1 -0
  64. package/dist/core/diagnostics.js +76 -0
  65. package/dist/core/diagnostics.js.map +1 -0
  66. package/dist/core/errors.d.ts +97 -0
  67. package/dist/core/errors.d.ts.map +1 -1
  68. package/dist/core/errors.js +129 -0
  69. package/dist/core/errors.js.map +1 -1
  70. package/dist/core/generic-container.d.ts +176 -1
  71. package/dist/core/generic-container.d.ts.map +1 -1
  72. package/dist/core/generic-container.js +566 -3
  73. package/dist/core/generic-container.js.map +1 -1
  74. package/dist/core/model.d.ts +39 -0
  75. package/dist/core/model.d.ts.map +1 -1
  76. package/dist/core/network.d.ts.map +1 -1
  77. package/dist/core/network.js +2 -0
  78. package/dist/core/network.js.map +1 -1
  79. package/dist/core/reaper/env.d.ts +14 -0
  80. package/dist/core/reaper/env.d.ts.map +1 -0
  81. package/dist/core/reaper/env.js +22 -0
  82. package/dist/core/reaper/env.js.map +1 -0
  83. package/dist/core/reaper/init.d.ts +39 -0
  84. package/dist/core/reaper/init.d.ts.map +1 -0
  85. package/dist/core/reaper/init.js +140 -0
  86. package/dist/core/reaper/init.js.map +1 -0
  87. package/dist/core/reaper/ledger.d.ts +32 -0
  88. package/dist/core/reaper/ledger.d.ts.map +1 -0
  89. package/dist/core/reaper/ledger.js +160 -0
  90. package/dist/core/reaper/ledger.js.map +1 -0
  91. package/dist/core/reaper/process-liveness.d.ts +39 -0
  92. package/dist/core/reaper/process-liveness.d.ts.map +1 -0
  93. package/dist/core/reaper/process-liveness.js +117 -0
  94. package/dist/core/reaper/process-liveness.js.map +1 -0
  95. package/dist/core/reaper/run-record.d.ts +48 -0
  96. package/dist/core/reaper/run-record.d.ts.map +1 -0
  97. package/dist/core/reaper/run-record.js +58 -0
  98. package/dist/core/reaper/run-record.js.map +1 -0
  99. package/dist/core/reaper/sweep.d.ts +23 -0
  100. package/dist/core/reaper/sweep.d.ts.map +1 -0
  101. package/dist/core/reaper/sweep.js +76 -0
  102. package/dist/core/reaper/sweep.js.map +1 -0
  103. package/dist/core/reaper/watchdog.d.ts +100 -0
  104. package/dist/core/reaper/watchdog.d.ts.map +1 -0
  105. package/dist/core/reaper/watchdog.js +412 -0
  106. package/dist/core/reaper/watchdog.js.map +1 -0
  107. package/dist/core/reuse/env.d.ts +12 -0
  108. package/dist/core/reuse/env.d.ts.map +1 -0
  109. package/dist/core/reuse/env.js +15 -0
  110. package/dist/core/reuse/env.js.map +1 -0
  111. package/dist/core/reuse/hash.d.ts +34 -0
  112. package/dist/core/reuse/hash.d.ts.map +1 -0
  113. package/dist/core/reuse/hash.js +52 -0
  114. package/dist/core/reuse/hash.js.map +1 -0
  115. package/dist/core/reuse/registry.d.ts +50 -0
  116. package/dist/core/reuse/registry.d.ts.map +1 -0
  117. package/dist/core/reuse/registry.js +75 -0
  118. package/dist/core/reuse/registry.js.map +1 -0
  119. package/dist/index.d.ts +8 -4
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +5 -2
  122. package/dist/index.js.map +1 -1
  123. package/dist/modules/keycloak.js +1 -1
  124. package/dist/modules/mysql.d.ts.map +1 -1
  125. package/dist/modules/mysql.js +4 -3
  126. package/dist/modules/mysql.js.map +1 -1
  127. package/package.json +1 -1
  128. package/dist/backend-msb/reaper.d.ts +0 -10
  129. package/dist/backend-msb/reaper.d.ts.map +0 -1
  130. package/dist/backend-msb/reaper.js +0 -73
  131. package/dist/backend-msb/reaper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generic-container.js","sourceRoot":"","sources":["../../src/core/generic-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-container.js","sourceRoot":"","sources":["../../src/core/generic-container.ts"],"names":[],"mappings":"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"}
@@ -56,5 +56,44 @@ export interface ContainerSpec {
56
56
  readonly runId: string;
57
57
  /** An explicit memory ceiling in MB, if the module or caller set one via `withMemoryLimit`. */
58
58
  readonly memoryLimitMb: number | undefined;
59
+ /**
60
+ * `true` for a container meant to outlive this process — set by
61
+ * `GenericContainer`'s reuse builder (`.withReuse()`), `false` otherwise.
62
+ * Backends and the reaping ledger consult it to keep a reusable sandbox
63
+ * out of every own-run cleanup path; a container carrying this flag is
64
+ * never appended to the ledger's `.sandboxes` file at all, so a sweep can
65
+ * never reach it.
66
+ */
67
+ readonly keepAlive: boolean;
68
+ /**
69
+ * Set by `GenericContainer.fromCheckpoint()` to the source `Checkpoint`'s
70
+ * `ref`; `undefined` for every ordinary container. Never part of the reuse
71
+ * identity hash — reuse and `fromCheckpoint` is not a supported
72
+ * combination (see `ReuseFromCheckpointError`). docker ignores it (the ref
73
+ * IS an image, so the normal create path already boots from it via
74
+ * `image`); microsandbox boots via `msb run --snapshot <ref>` instead of
75
+ * its normal image boot when this is set.
76
+ */
77
+ readonly checkpointRef: string | undefined;
78
+ }
79
+ /**
80
+ * The result of `GenericContainer.checkpoint()`: a ref to the committed
81
+ * state plus the source container's spec, everything
82
+ * `GenericContainer.fromCheckpoint()` needs to boot an equivalent container.
83
+ * A checkpoint is a FILESYSTEM capture, not a memory snapshot — a restored
84
+ * container's processes start from scratch against the captured filesystem.
85
+ */
86
+ export interface Checkpoint {
87
+ /**
88
+ * The captured state's ref: a committed image tag
89
+ * (`rightsize/checkpoint:<12-hex>`) on docker, a snapshot name
90
+ * (`rz-ckpt-<12-hex>`) on microsandbox — random per checkpoint, never
91
+ * reused.
92
+ */
93
+ readonly ref: string;
94
+ /** The backend that created this checkpoint. Restoring it under a DIFFERENT active backend throws `CheckpointBackendMismatchError` before any backend call. */
95
+ readonly backend: string;
96
+ /** The source container's spec (env, command, exposed ports, memory limit — everything needed to boot an equivalent container from `ref`). */
97
+ readonly spec: ContainerSpec;
59
98
  }
60
99
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,gIAAgI;AAChI,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2HAA2H;IAC3H,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,gIAAgI;AAChI,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2HAA2H;IAC3H,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+JAA+J;IAC/J,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8IAA8I;IAC9I,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClD,0CAA0C;IAC1C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,OAAQ,YAAW,eAAe;IAC7C,yDAAyD;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO;IAIP,2HAA2H;IAC3H,MAAM,CAAC,UAAU,IAAI,OAAO;IAI5B,qGAAqG;IACrG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQjD;;;;;OAKG;IACH,iBAAiB,IAAI,aAAa,CAAC,WAAW,CAAC;IAe/C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAe9F,oGAAoG;IAC9F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,sFAAsF;IAChF,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7C"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClD,0CAA0C;IAC1C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,OAAQ,YAAW,eAAe;IAC7C,yDAAyD;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO;IAIP,2HAA2H;IAC3H,MAAM,CAAC,UAAU,IAAI,OAAO;IAI5B,qGAAqG;IACrG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQjD;;;;;OAKG;IACH,iBAAiB,IAAI,aAAa,CAAC,WAAW,CAAC;IAe/C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAe9F,oGAAoG;IAC9F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,sFAAsF;IAChF,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7C"}
@@ -1,4 +1,5 @@
1
1
  import { randomBytes } from "node:crypto";
2
+ import { untrackNetwork } from "./reaper/init.js";
2
3
  /**
3
4
  * Alias-based connectivity between containers, on both backends. Docker
4
5
  * implements it with a native bridge network; msb — where each container is
@@ -75,6 +76,7 @@ export class Network {
75
76
  if (this.lastBackend !== undefined) {
76
77
  await this.lastBackend.removeNetwork(this.id);
77
78
  }
79
+ await untrackNetwork(this.id);
78
80
  }
79
81
  /** `= close()`. What `await using net = Network.newNetwork()` calls at scope exit. */
80
82
  async [Symbol.asyncDispose]() {
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** `RIGHTSIZE_REAPER`'s three modes: both layers, sweep only, or fully disabled. */
2
+ export type ReaperMode = "on" | "sweep" | "off";
3
+ /**
4
+ * Parses `RIGHTSIZE_REAPER`. Unset or unrecognized values both mean `"on"` —
5
+ * the same "unknown values are treated as the safe default" convention the
6
+ * rest of this library's env vars follow, rather than failing a whole
7
+ * process over a typo'd opt-out.
8
+ */
9
+ export declare function reaperMode(env: Record<string, string | undefined>): ReaperMode;
10
+ /** `sweep` and `on` both run the init-time sweep; only `off` turns it off. */
11
+ export declare function sweepEnabled(mode: ReaperMode): boolean;
12
+ /** Only `on` (the default) spawns the per-run watchdog process. */
13
+ export declare function watchdogEnabled(mode: ReaperMode): boolean;
14
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/core/reaper/env.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,UAAU,CAM9E;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEtD;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEzD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Parses `RIGHTSIZE_REAPER`. Unset or unrecognized values both mean `"on"` —
3
+ * the same "unknown values are treated as the safe default" convention the
4
+ * rest of this library's env vars follow, rather than failing a whole
5
+ * process over a typo'd opt-out.
6
+ */
7
+ export function reaperMode(env) {
8
+ const raw = env["RIGHTSIZE_REAPER"];
9
+ if (raw === "sweep" || raw === "off") {
10
+ return raw;
11
+ }
12
+ return "on";
13
+ }
14
+ /** `sweep` and `on` both run the init-time sweep; only `off` turns it off. */
15
+ export function sweepEnabled(mode) {
16
+ return mode !== "off";
17
+ }
18
+ /** Only `on` (the default) spawns the per-run watchdog process. */
19
+ export function watchdogEnabled(mode) {
20
+ return mode === "on";
21
+ }
22
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/core/reaper/env.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAuC;IAChE,MAAM,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,KAAK,KAAK,CAAC;AACxB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC9C,OAAO,IAAI,KAAK,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { SandboxBackend } from "../backend.js";
2
+ import { type WatchdogHandle } from "./watchdog.js";
3
+ /**
4
+ * Runs the full reaper bring-up exactly once per process: writes this run's
5
+ * record, sweeps every OTHER dead run whose backend matches, and (unless
6
+ * disabled) spawns the watchdog. Best-effort end to end — any failure here
7
+ * is swallowed so a broken cache dir or a sweep hiccup never prevents the
8
+ * backend from being usable; `active` simply never gets set, and every
9
+ * ledger call for the rest of this process's life is a no-op.
10
+ */
11
+ export declare function ensureReaperInitialized(backend: SandboxBackend): Promise<void>;
12
+ /** Appends a sandbox name to this process's ledger — a no-op unless the reaper has actually initialized (or is disabled). */
13
+ export declare function trackSandbox(name: string): Promise<void>;
14
+ /** Removes a sandbox name from this process's ledger, pruning the run's ledger files if nothing is left tracked. */
15
+ export declare function untrackSandbox(name: string): Promise<void>;
16
+ /** Appends a network id to this process's ledger. */
17
+ export declare function trackNetwork(networkId: string): Promise<void>;
18
+ /** Removes a network id from this process's ledger, pruning the run's ledger files if nothing is left tracked. */
19
+ export declare function untrackNetwork(networkId: string): Promise<void>;
20
+ /**
21
+ * The run-record cleanup rule's other trigger (see `ledger.ts`'s
22
+ * `pruneIfEmpty` for the first one): called once, after the active
23
+ * backend's own `close()` has finished its own-run cleanup (`Backends`'
24
+ * `beforeExit` hook awaits `close()`, then calls this). `close()` already
25
+ * removed every sandbox this run still had running (via its own run-id-
26
+ * label/`startedNames` scan), so whatever `.sandboxes`/`.networks` still
27
+ * list at this point is stale — deleted unconditionally rather than only
28
+ * when empty, since a later container start recreates the files from
29
+ * scratch anyway. No-op if the reaper never initialized (or already ran
30
+ * this) for this process.
31
+ */
32
+ export declare function notifyBackendClosed(): Promise<void>;
33
+ /** Test seam: whether the reaper has actually initialized in this process. Never call from library code. */
34
+ export declare function _isActiveForTests(): boolean;
35
+ /** Test seam: the held watchdog handle, if one was spawned — so a test can close its pipe rather than leaking a blocked child process. Never call from library code. */
36
+ export declare function _heldWatchdogForTests(): WatchdogHandle | undefined;
37
+ /** Test seam: forces the next `ensureReaperInitialized` call to redo the full bring-up. Never call from library code. */
38
+ export declare function _resetReaperForTests(): void;
39
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/core/reaper/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAapD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AA8EnE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED,6HAA6H;AAC7H,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D;AAED,oHAAoH;AACpH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED,qDAAqD;AACrD,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnE;AAED,kHAAkH;AAClH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOzD;AAED,4GAA4G;AAC5G,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wKAAwK;AACxK,wBAAgB,qBAAqB,IAAI,cAAc,GAAG,SAAS,CAElE;AAED,yHAAyH;AACzH,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C"}
@@ -0,0 +1,140 @@
1
+ import { cacheDir } from "../cache-dir.js";
2
+ import { RunId } from "../run-id.js";
3
+ import { writeRunRecord, appendSandboxName, removeSandboxName, appendNetworkId, removeNetworkId, deleteRunRecordFiles, } from "./ledger.js";
4
+ import { recordPath, sandboxesPath, networksPath } from "./run-record.js";
5
+ import { realProcessTimeSource, THIS_PROCESS_STARTED_ISO } from "./process-liveness.js";
6
+ import { sweepOnce } from "./sweep.js";
7
+ import { reaperMode, sweepEnabled, watchdogEnabled } from "./env.js";
8
+ import { spawnWatchdog } from "./watchdog.js";
9
+ let active;
10
+ let initPromise;
11
+ let heldWatchdog;
12
+ function backendKindOf(backend) {
13
+ // The only two backends this library ships. A third backend module would
14
+ // need a third LedgerBackendKind value and an update here.
15
+ return backend.name === "microsandbox" ? "msb" : "docker";
16
+ }
17
+ async function doInit(backend) {
18
+ const mode = reaperMode(process.env);
19
+ if (!sweepEnabled(mode)) {
20
+ // "off": no run record, no ledger tracking, no sweep, no watchdog —
21
+ // this process's containers are simply never listed anywhere for a
22
+ // later sweep to find.
23
+ return;
24
+ }
25
+ const dir = cacheDir();
26
+ const runId = RunId.value;
27
+ const backendKind = backendKindOf(backend);
28
+ const killCommand = await backend.reaperKillCommand();
29
+ // msb's `remove` prefix is always `[msbPath, "rm"]` (see
30
+ // MsbCliBackend.reaperKillCommand) — reusing it here avoids a second SPI
31
+ // method whose only job would be exposing the same path.
32
+ const msbPath = backendKind === "msb" ? killCommand.remove[0] : undefined;
33
+ const record = msbPath === undefined
34
+ ? { pid: process.pid, startedIso: THIS_PROCESS_STARTED_ISO, backend: backendKind }
35
+ : { pid: process.pid, startedIso: THIS_PROCESS_STARTED_ISO, backend: backendKind, msbPath };
36
+ // Written BEFORE this process's first sandbox is created — the caller
37
+ // (Backends.reaperReady(), awaited by GenericContainer.start() before its
38
+ // first backend.create()) guarantees that ordering.
39
+ await writeRunRecord(dir, runId, record);
40
+ active = { cacheDir: dir, runId };
41
+ await sweepOnce({
42
+ cacheDir: dir,
43
+ thisRunId: runId,
44
+ backendKind,
45
+ removeByName: (name) => backend.removeByName(name),
46
+ removeNetwork: (networkId) => backend.removeNetwork(networkId),
47
+ timeSource: realProcessTimeSource,
48
+ });
49
+ if (watchdogEnabled(mode)) {
50
+ heldWatchdog = await spawnWatchdog({
51
+ cacheDir: dir,
52
+ sandboxesPath: sandboxesPath(dir, runId),
53
+ networksPath: networksPath(dir, runId),
54
+ recordPath: recordPath(dir, runId),
55
+ killCommand,
56
+ // The Windows script polls for this pid instead of blocking on
57
+ // stdin EOF; see watchdog.ts's windowsScriptContent doc.
58
+ ownerPid: process.pid,
59
+ });
60
+ }
61
+ }
62
+ /**
63
+ * Runs the full reaper bring-up exactly once per process: writes this run's
64
+ * record, sweeps every OTHER dead run whose backend matches, and (unless
65
+ * disabled) spawns the watchdog. Best-effort end to end — any failure here
66
+ * is swallowed so a broken cache dir or a sweep hiccup never prevents the
67
+ * backend from being usable; `active` simply never gets set, and every
68
+ * ledger call for the rest of this process's life is a no-op.
69
+ */
70
+ export function ensureReaperInitialized(backend) {
71
+ if (initPromise === undefined) {
72
+ initPromise = doInit(backend).catch(() => {
73
+ // Swallowed — see the doc above.
74
+ });
75
+ }
76
+ return initPromise;
77
+ }
78
+ /** Appends a sandbox name to this process's ledger — a no-op unless the reaper has actually initialized (or is disabled). */
79
+ export async function trackSandbox(name) {
80
+ if (active === undefined) {
81
+ return;
82
+ }
83
+ await appendSandboxName(active.cacheDir, active.runId, name);
84
+ }
85
+ /** Removes a sandbox name from this process's ledger, pruning the run's ledger files if nothing is left tracked. */
86
+ export async function untrackSandbox(name) {
87
+ if (active === undefined) {
88
+ return;
89
+ }
90
+ await removeSandboxName(active.cacheDir, active.runId, name);
91
+ }
92
+ /** Appends a network id to this process's ledger. */
93
+ export async function trackNetwork(networkId) {
94
+ if (active === undefined) {
95
+ return;
96
+ }
97
+ await appendNetworkId(active.cacheDir, active.runId, networkId);
98
+ }
99
+ /** Removes a network id from this process's ledger, pruning the run's ledger files if nothing is left tracked. */
100
+ export async function untrackNetwork(networkId) {
101
+ if (active === undefined) {
102
+ return;
103
+ }
104
+ await removeNetworkId(active.cacheDir, active.runId, networkId);
105
+ }
106
+ /**
107
+ * The run-record cleanup rule's other trigger (see `ledger.ts`'s
108
+ * `pruneIfEmpty` for the first one): called once, after the active
109
+ * backend's own `close()` has finished its own-run cleanup (`Backends`'
110
+ * `beforeExit` hook awaits `close()`, then calls this). `close()` already
111
+ * removed every sandbox this run still had running (via its own run-id-
112
+ * label/`startedNames` scan), so whatever `.sandboxes`/`.networks` still
113
+ * list at this point is stale — deleted unconditionally rather than only
114
+ * when empty, since a later container start recreates the files from
115
+ * scratch anyway. No-op if the reaper never initialized (or already ran
116
+ * this) for this process.
117
+ */
118
+ export async function notifyBackendClosed() {
119
+ if (active === undefined) {
120
+ return;
121
+ }
122
+ const { cacheDir, runId } = active;
123
+ active = undefined;
124
+ await deleteRunRecordFiles(cacheDir, runId);
125
+ }
126
+ /** Test seam: whether the reaper has actually initialized in this process. Never call from library code. */
127
+ export function _isActiveForTests() {
128
+ return active !== undefined;
129
+ }
130
+ /** Test seam: the held watchdog handle, if one was spawned — so a test can close its pipe rather than leaking a blocked child process. Never call from library code. */
131
+ export function _heldWatchdogForTests() {
132
+ return heldWatchdog;
133
+ }
134
+ /** Test seam: forces the next `ensureReaperInitialized` call to redo the full bring-up. Never call from library code. */
135
+ export function _resetReaperForTests() {
136
+ active = undefined;
137
+ initPromise = undefined;
138
+ heldWatchdog = undefined;
139
+ }
140
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/core/reaper/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { parseRunRecord, type RunRecord } from "./run-record.js";
2
+ /** Best-effort delete of all three of a run's ledger files. Never throws — a file already gone is not an error. */
3
+ export declare function deleteRunRecordFiles(cacheDir: string, runId: string): Promise<void>;
4
+ /** Atomically writes `runs/<run-id>.json` (tmp file + rename) — called once, before this run's first sandbox is created. */
5
+ export declare function writeRunRecord(cacheDir: string, runId: string, record: RunRecord): Promise<void>;
6
+ /** Appends a sandbox name to `runs/<run-id>.sandboxes` — called BEFORE the backend's `create()` call. */
7
+ export declare function appendSandboxName(cacheDir: string, runId: string, name: string): Promise<void>;
8
+ /** Removes a sandbox name from `runs/<run-id>.sandboxes` — called AFTER a successful stop/remove; prunes the run's ledger files if this was the last thing tracked. */
9
+ export declare function removeSandboxName(cacheDir: string, runId: string, name: string): Promise<void>;
10
+ /** Appends a network id to `runs/<run-id>.networks` — same protocol as `appendSandboxName`. */
11
+ export declare function appendNetworkId(cacheDir: string, runId: string, networkId: string): Promise<void>;
12
+ /** Removes a network id from `runs/<run-id>.networks` — same protocol as `removeSandboxName`. */
13
+ export declare function removeNetworkId(cacheDir: string, runId: string, networkId: string): Promise<void>;
14
+ /**
15
+ * Reads every sandbox name currently tracked for a run. Serialized behind the
16
+ * same lock as the writers: writeLines truncates before it writes, so an
17
+ * unserialized read racing a rewrite could observe a torn (empty) file. The
18
+ * cross-process readers (a sweep judging a DEAD run, the watchdog after its
19
+ * owner died) need no lock — their run's writer no longer exists.
20
+ */
21
+ export declare function readSandboxNames(cacheDir: string, runId: string): Promise<string[]>;
22
+ /** Reads every network id currently tracked for a run — used by the sweep to know what to reap. */
23
+ export declare function readNetworkIds(cacheDir: string, runId: string): Promise<string[]>;
24
+ /** Every other run's `<run-id>.json` filename (without extension) currently under `runs/` — the sweep's iteration set. Missing `runs/` directory yields an empty list. */
25
+ export declare function listRunIds(cacheDir: string): Promise<string[]>;
26
+ /** Reads and parses one run's record, plus the file's mtime (used to age an unparseable record). `undefined` body means the file vanished (a concurrent sweep or the run's own clean shutdown already removed it). */
27
+ export declare function readRunRecordRaw(cacheDir: string, runId: string): Promise<{
28
+ text: string;
29
+ mtimeMs: number;
30
+ } | undefined>;
31
+ export { parseRunRecord };
32
+ //# sourceMappingURL=ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../../src/core/reaper/ledger.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,cAAc,EAEd,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAqDzB,mHAAmH;AACnH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzF;AA4BD,4HAA4H;AAC5H,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAStG;AAED,yGAAyG;AACzG,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpG;AAED,uKAAuK;AACvK,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG;AAED,+FAA+F;AAC/F,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvG;AAED,iGAAiG;AACjG,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvG;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEzF;AAED,mGAAmG;AACnG,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEvF;AAED,0KAA0K;AAC1K,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED,sNAAsN;AACtN,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAQxD;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,160 @@
1
+ import * as fsp from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { recordPath, runsDir, sandboxesPath, networksPath, parseRunRecord, serializeRunRecord, } from "./run-record.js";
4
+ /**
5
+ * Every write this module makes is guarded by a single process-wide chain —
6
+ * this process only ever owns its own ledger files, so one chain (not one
7
+ * per file) is enough to make append/remove/prune read-modify-write safe
8
+ * against concurrent callers within THIS process. Cross-process safety is a
9
+ * non-goal by design: the feature spec only requires "atomic enough for
10
+ * single-process use," since two different processes never share a run id.
11
+ */
12
+ let chain = Promise.resolve();
13
+ function withLock(fn) {
14
+ const result = chain.then(fn, fn);
15
+ chain = result.then(() => undefined, () => undefined);
16
+ return result;
17
+ }
18
+ async function readLines(filePath) {
19
+ let text;
20
+ try {
21
+ text = await fsp.readFile(filePath, "utf8");
22
+ }
23
+ catch {
24
+ return [];
25
+ }
26
+ return text.split("\n").filter((line) => line.length > 0);
27
+ }
28
+ // A plain truncating write is safe here ONLY because every reader of a live
29
+ // run's file goes through the same lock as its writers (see readSandboxNames/
30
+ // readNetworkIds below); the sole lock-free readers — the watchdog process and
31
+ // another process's sweep — read a run's files strictly after its owning
32
+ // process is dead, when no writer can exist. A tmp+rename swap is deliberately
33
+ // NOT used: on Windows, renaming over a file a reader has open fails EPERM,
34
+ // which would turn a benign read race into a lost ledger update.
35
+ async function writeLines(filePath, lines) {
36
+ if (lines.length === 0) {
37
+ await fsp.unlink(filePath).catch(() => { });
38
+ return;
39
+ }
40
+ await fsp.writeFile(filePath, lines.join("\n") + "\n");
41
+ }
42
+ function removeFirstOccurrence(lines, value) {
43
+ const idx = lines.indexOf(value);
44
+ if (idx === -1) {
45
+ return [...lines];
46
+ }
47
+ return [...lines.slice(0, idx), ...lines.slice(idx + 1)];
48
+ }
49
+ /** Best-effort delete of all three of a run's ledger files. Never throws — a file already gone is not an error. */
50
+ export async function deleteRunRecordFiles(cacheDir, runId) {
51
+ await Promise.all([recordPath(cacheDir, runId), sandboxesPath(cacheDir, runId), networksPath(cacheDir, runId)].map((p) => fsp.unlink(p).catch(() => { })));
52
+ }
53
+ async function isEmptyOrMissing(filePath) {
54
+ try {
55
+ const text = await fsp.readFile(filePath, "utf8");
56
+ return text.trim().length === 0;
57
+ }
58
+ catch {
59
+ return true;
60
+ }
61
+ }
62
+ /**
63
+ * The run-record cleanup rule: once BOTH `.sandboxes` and `.networks` are
64
+ * empty (or missing), this run has nothing left in flight, so its ledger
65
+ * files are deleted — a later container start recreates them from scratch.
66
+ * Called after every removal, never after an append (an append can only
67
+ * grow a file, never trigger this).
68
+ */
69
+ async function pruneIfEmpty(cacheDir, runId) {
70
+ const [sandboxesEmpty, networksEmpty] = await Promise.all([
71
+ isEmptyOrMissing(sandboxesPath(cacheDir, runId)),
72
+ isEmptyOrMissing(networksPath(cacheDir, runId)),
73
+ ]);
74
+ if (sandboxesEmpty && networksEmpty) {
75
+ await deleteRunRecordFiles(cacheDir, runId);
76
+ }
77
+ }
78
+ /** Atomically writes `runs/<run-id>.json` (tmp file + rename) — called once, before this run's first sandbox is created. */
79
+ export async function writeRunRecord(cacheDir, runId, record) {
80
+ return withLock(async () => {
81
+ const dir = runsDir(cacheDir);
82
+ await fsp.mkdir(dir, { recursive: true });
83
+ const target = recordPath(cacheDir, runId);
84
+ const tmp = path.join(dir, `.${runId}.json.tmp-${process.pid}-${Date.now()}`);
85
+ await fsp.writeFile(tmp, serializeRunRecord(record));
86
+ await fsp.rename(tmp, target);
87
+ });
88
+ }
89
+ /** Appends a sandbox name to `runs/<run-id>.sandboxes` — called BEFORE the backend's `create()` call. */
90
+ export async function appendSandboxName(cacheDir, runId, name) {
91
+ return withLock(async () => {
92
+ const filePath = sandboxesPath(cacheDir, runId);
93
+ await fsp.mkdir(path.dirname(filePath), { recursive: true });
94
+ await fsp.appendFile(filePath, name + "\n");
95
+ });
96
+ }
97
+ /** Removes a sandbox name from `runs/<run-id>.sandboxes` — called AFTER a successful stop/remove; prunes the run's ledger files if this was the last thing tracked. */
98
+ export async function removeSandboxName(cacheDir, runId, name) {
99
+ return withLock(async () => {
100
+ const filePath = sandboxesPath(cacheDir, runId);
101
+ const lines = removeFirstOccurrence(await readLines(filePath), name);
102
+ await writeLines(filePath, lines);
103
+ await pruneIfEmpty(cacheDir, runId);
104
+ });
105
+ }
106
+ /** Appends a network id to `runs/<run-id>.networks` — same protocol as `appendSandboxName`. */
107
+ export async function appendNetworkId(cacheDir, runId, networkId) {
108
+ return withLock(async () => {
109
+ const filePath = networksPath(cacheDir, runId);
110
+ await fsp.mkdir(path.dirname(filePath), { recursive: true });
111
+ await fsp.appendFile(filePath, networkId + "\n");
112
+ });
113
+ }
114
+ /** Removes a network id from `runs/<run-id>.networks` — same protocol as `removeSandboxName`. */
115
+ export async function removeNetworkId(cacheDir, runId, networkId) {
116
+ return withLock(async () => {
117
+ const filePath = networksPath(cacheDir, runId);
118
+ const lines = removeFirstOccurrence(await readLines(filePath), networkId);
119
+ await writeLines(filePath, lines);
120
+ await pruneIfEmpty(cacheDir, runId);
121
+ });
122
+ }
123
+ /**
124
+ * Reads every sandbox name currently tracked for a run. Serialized behind the
125
+ * same lock as the writers: writeLines truncates before it writes, so an
126
+ * unserialized read racing a rewrite could observe a torn (empty) file. The
127
+ * cross-process readers (a sweep judging a DEAD run, the watchdog after its
128
+ * owner died) need no lock — their run's writer no longer exists.
129
+ */
130
+ export async function readSandboxNames(cacheDir, runId) {
131
+ return withLock(() => readLines(sandboxesPath(cacheDir, runId)));
132
+ }
133
+ /** Reads every network id currently tracked for a run — used by the sweep to know what to reap. */
134
+ export async function readNetworkIds(cacheDir, runId) {
135
+ return withLock(() => readLines(networksPath(cacheDir, runId)));
136
+ }
137
+ /** Every other run's `<run-id>.json` filename (without extension) currently under `runs/` — the sweep's iteration set. Missing `runs/` directory yields an empty list. */
138
+ export async function listRunIds(cacheDir) {
139
+ let entries;
140
+ try {
141
+ entries = await fsp.readdir(runsDir(cacheDir));
142
+ }
143
+ catch {
144
+ return [];
145
+ }
146
+ return entries.filter((name) => name.endsWith(".json")).map((name) => name.slice(0, -".json".length));
147
+ }
148
+ /** Reads and parses one run's record, plus the file's mtime (used to age an unparseable record). `undefined` body means the file vanished (a concurrent sweep or the run's own clean shutdown already removed it). */
149
+ export async function readRunRecordRaw(cacheDir, runId) {
150
+ const filePath = recordPath(cacheDir, runId);
151
+ try {
152
+ const [text, stat] = await Promise.all([fsp.readFile(filePath, "utf8"), fsp.stat(filePath)]);
153
+ return { text, mtimeMs: stat.mtimeMs };
154
+ }
155
+ catch {
156
+ return undefined;
157
+ }
158
+ }
159
+ export { parseRunRecord };
160
+ //# sourceMappingURL=ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../src/core/reaper/ledger.ts"],"names":[],"mappings":"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"}