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":"commands.js","sourceRoot":"","sources":["../../src/backend-msb/commands.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,CAAC,IAAmB;QACrB,MAAM,IAAI,GAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,uEAAuE;YACvE,oEAAoE;YACpE,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,GAAsB;QACvC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,GAAsB;QAC7C,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,EAAE,CAAC,IAAY;QACb,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,EAAE;QACA,qEAAqE;QACrE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/backend-msb/commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK1E,qBAAa,kBAAmB,YAAW,eAAe;IACxD,iFAAiF;IACjF,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,WAAW,IAAI,OAAO;IAQtB,iBAAiB,IAAI,MAAM;IAa3B,MAAM,IAAI,cAAc;CAczB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK1E,qBAAa,kBAAmB,YAAW,eAAe;IACxD,iFAAiF;IACjF,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,WAAW,IAAI,OAAO;IAQtB,iBAAiB,IAAI,MAAM;IAa3B,MAAM,IAAI,cAAc;CAUzB"}
@@ -24,17 +24,13 @@ export class MsbBackendProvider {
24
24
  }
25
25
  create() {
26
26
  // create() is a synchronous ServiceLoader-style factory, but
27
- // locating/installing msb is inherently async. The
28
- // backend holds the provisioning promise and awaits it lazily on first
29
- // use; sweepOrphans() piggybacks on that same lazy resolution rather
30
- // than blocking construction.
31
- const backend = new MsbCliBackend(ensureInstalled());
32
- void backend.sweepOrphans().catch(() => {
33
- // Best-effort: a failed sweep must not prevent this backend from
34
- // being usable — the next run's sweep gets another chance, and a
35
- // container that's actually still running is left alone either way.
36
- });
37
- return backend;
27
+ // locating/installing msb is inherently async. The backend holds the
28
+ // provisioning promise and awaits it lazily on first use. The
29
+ // liveness-blind per-backend sweep that used to run here has been
30
+ // replaced by the ledger-based sweep in `core/reaper`, triggered once
31
+ // per process from `Backends.active()`'s resolution gate — see
32
+ // `core/reaper/init.ts`.
33
+ return new MsbCliBackend(ensureInstalled());
38
34
  }
39
35
  }
40
36
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAC7B,iFAAiF;IACxE,IAAI,GAAG,cAAc,CAAC;IACtB,QAAQ,GAAG,EAAE,CAAC;IAEvB,WAAW;QACT,sEAAsE;QACtE,oEAAoE;QACpE,0EAA0E;QAC1E,4BAA4B;QAC5B,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACxF,CAAC;IAED,iBAAiB;QACf,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,oBAAoB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,sCAAsC,CAAC;QACpG,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CACL,oFAAoF;gBACpF,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,sEAAsE,CAAC;IAChF,CAAC;IAED,MAAM;QACJ,6DAA6D;QAC7D,mDAAmD;QACnD,uEAAuE;QACvE,qEAAqE;QACrE,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;QACrD,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACrC,iEAAiE;YACjE,iEAAiE;YACjE,oEAAoE;QACtE,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAC7B,iFAAiF;IACxE,IAAI,GAAG,cAAc,CAAC;IACtB,QAAQ,GAAG,EAAE,CAAC;IAEvB,WAAW;QACT,sEAAsE;QACtE,oEAAoE;QACpE,0EAA0E;QAC1E,4BAA4B;QAC5B,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACxF,CAAC;IAED,iBAAiB;QACf,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,oBAAoB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,sCAAsC,CAAC;QACpG,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CACL,oFAAoF;gBACpF,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,sEAAsE,CAAC;IAChF,CAAC;IAED,MAAM;QACJ,6DAA6D;QAC7D,qEAAqE;QACrE,8DAA8D;QAC9D,kEAAkE;QAClE,sEAAsE;QACtE,+DAA+D;QAC/D,yBAAyB;QACzB,OAAO,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"provisioner.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,WAAW,UAAU,CAAC;AAiSnC,gHAAgH;AAChH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED,iKAAiK;AACjK,wBAAgB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjD;AAED,2GAA2G;AAC3G,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"provisioner.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,WAAW,UAAU,CAAC;AA6QnC,gHAAgH;AAChH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED,iKAAiK;AACjK,wBAAgB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjD;AAED,2GAA2G;AAC3G,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -3,9 +3,9 @@ import * as fsp from "node:fs/promises";
3
3
  import * as http from "node:http";
4
4
  import * as https from "node:https";
5
5
  import * as path from "node:path";
6
- import * as os from "node:os";
7
6
  import { createHash } from "node:crypto";
8
7
  import { ProvisionError } from "../core/errors.js";
8
+ import { cacheDir as defaultCacheDir } from "../core/cache-dir.js";
9
9
  import { PlatformInfo } from "./platform.js";
10
10
  export const MSB_VERSION = "0.6.6";
11
11
  const DEFAULT_BASE = `https://github.com/superradcompany/microsandbox/releases/download/v${MSB_VERSION}`;
@@ -13,25 +13,6 @@ const CONNECT_READ_TIMEOUT_MS = 300_000;
13
13
  const STALE_LOCK_AGE_MS = 5 * 60 * 1000;
14
14
  const LOCK_POLL_MS = 200;
15
15
  const LOCK_WAIT_MAX_MS = 30_000;
16
- /**
17
- * `%LOCALAPPDATA%` is the Windows-idiomatic location for a machine-local,
18
- * non-roaming native toolchain cache (as opposed to `%USERPROFILE%`, which a
19
- * roaming-profile setup can sync, or a Unix-style dotfile under the home
20
- * dir). Falls back to `%USERPROFILE%\AppData\Local` if the env var is unset,
21
- * matching what `os.homedir()` resolves to on a normal Windows install when
22
- * `LOCALAPPDATA` isn't populated (rare, but seen on some minimal/CI images).
23
- */
24
- function defaultCacheDir() {
25
- const override = process.env["RIGHTSIZE_CACHE_DIR"];
26
- if (override !== undefined) {
27
- return override;
28
- }
29
- if (process.platform === "win32") {
30
- const localAppData = process.env["LOCALAPPDATA"] ?? path.join(os.homedir(), "AppData", "Local");
31
- return path.join(localAppData, "rightsize");
32
- }
33
- return path.join(os.homedir(), ".cache", "rightsize");
34
- }
35
16
  /**
36
17
  * "Is this a usable, already-provisioned msb binary": on macOS/Linux this
37
18
  * means POSIX-executable (the release asset ships without the exec bit set,
@@ -1 +1 @@
1
- {"version":3,"file":"provisioner.js","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provisioner.js","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * True if `output` (an `msb snapshot inspect <ref>` non-zero exit's stderr)
3
+ * names msb's own "this snapshot does not exist" signal, as opposed to some
4
+ * other probe failure. Observed verbatim against the real msb 0.6.6 binary:
5
+ *
6
+ * ```
7
+ * error: snapshot not found: <path>
8
+ * ```
9
+ *
10
+ * Only this exact framing may resolve `hasCheckpoint` to `false` — every
11
+ * other non-zero exit (a corrupted state db, a permission error, a
12
+ * malformed argument, an msb crash) must propagate as a thrown error
13
+ * instead. `Checkpoints.find` reacts to a `false` probe by best-effort
14
+ * deleting the registry entry as stale, so collapsing an unrelated,
15
+ * possibly transient msb failure into `false` here would silently evict a
16
+ * perfectly valid named checkpoint from the registry — exactly the
17
+ * "best-effort false on probe errors" the SPI's own contract forbids.
18
+ *
19
+ * Deliberately a substring match on the stable prefix rather than the full
20
+ * sentence — the trailing path varies per host, and msb has no structured/
21
+ * typed error for this, the same reasoning `isImageCacheCorruption` and
22
+ * `isMsbStateDbError` apply to their own wordings.
23
+ */
24
+ export declare function isSnapshotNotFoundError(output: string): boolean;
25
+ //# sourceMappingURL=snapshot-not-found.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-not-found.d.ts","sourceRoot":"","sources":["../../src/backend-msb/snapshot-not-found.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/D"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * True if `output` (an `msb snapshot inspect <ref>` non-zero exit's stderr)
3
+ * names msb's own "this snapshot does not exist" signal, as opposed to some
4
+ * other probe failure. Observed verbatim against the real msb 0.6.6 binary:
5
+ *
6
+ * ```
7
+ * error: snapshot not found: <path>
8
+ * ```
9
+ *
10
+ * Only this exact framing may resolve `hasCheckpoint` to `false` — every
11
+ * other non-zero exit (a corrupted state db, a permission error, a
12
+ * malformed argument, an msb crash) must propagate as a thrown error
13
+ * instead. `Checkpoints.find` reacts to a `false` probe by best-effort
14
+ * deleting the registry entry as stale, so collapsing an unrelated,
15
+ * possibly transient msb failure into `false` here would silently evict a
16
+ * perfectly valid named checkpoint from the registry — exactly the
17
+ * "best-effort false on probe errors" the SPI's own contract forbids.
18
+ *
19
+ * Deliberately a substring match on the stable prefix rather than the full
20
+ * sentence — the trailing path varies per host, and msb has no structured/
21
+ * typed error for this, the same reasoning `isImageCacheCorruption` and
22
+ * `isMsbStateDbError` apply to their own wordings.
23
+ */
24
+ export function isSnapshotNotFoundError(output) {
25
+ return output.includes("snapshot not found");
26
+ }
27
+ //# sourceMappingURL=snapshot-not-found.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-not-found.js","sourceRoot":"","sources":["../../src/backend-msb/snapshot-not-found.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC/C,CAAC"}
@@ -29,6 +29,56 @@ export interface FollowHandle {
29
29
  /** Stops delivering further lines. Never flushes a trailing fragment — that only happens on the workload's own natural end. */
30
30
  close(): Promise<void>;
31
31
  }
32
+ /**
33
+ * The argv PREFIXES a backend's own CLI uses to stop/remove a sandbox, or
34
+ * remove a network, by NAME — a sandbox/network name is appended by the
35
+ * caller to whichever prefix applies. This is for the reaper watchdog: a
36
+ * detached, out-of-process script spawned to outlive this process's own
37
+ * SIGKILL, which therefore cannot call back into this backend's normal
38
+ * async methods and instead shells out directly. `stop`/`removeNetwork` may
39
+ * be empty arrays where a backend has no separate stop step (docker's
40
+ * `rm -f` does both in one call) or no native network object to remove (msb
41
+ * emulates networks entirely in-guest — there is nothing to tear down).
42
+ */
43
+ export interface ReaperKillCommand {
44
+ /** Argv prefix for this backend's "stop" step; empty if the backend has none (docker's `rm -f` does both in one call). */
45
+ readonly stop: ReadonlyArray<string>;
46
+ /** Argv prefix for this backend's "remove" step. */
47
+ readonly remove: ReadonlyArray<string>;
48
+ /** Argv prefix for removing a network by id/name; empty if the backend has no native network object (msb emulates networks entirely in-guest). */
49
+ readonly removeNetwork: ReadonlyArray<string>;
50
+ }
51
+ /**
52
+ * Capability flags describing what a backend's own execution model can and
53
+ * cannot guarantee — distinct from `supportsNativeNetworks` (a networking
54
+ * detail), this is the seam API-level requirements like
55
+ * `withRequireIsolation()` and `checkpoint()` gate on. A value is set once
56
+ * per backend and never changes at runtime.
57
+ */
58
+ export interface BackendCapabilities {
59
+ /**
60
+ * `true` when each sandbox runs in its own hardware-virtualized microVM
61
+ * with its own kernel (msb); `false` when sandboxes share the host kernel
62
+ * (docker). `withRequireIsolation()` demands `true`.
63
+ */
64
+ readonly hardwareIsolated: boolean;
65
+ /**
66
+ * `true` when the backend can checkpoint/restore a sandbox's state
67
+ * (docker: commit-to-image; msb: disk snapshot via `msb snapshot`).
68
+ * `GenericContainer.checkpoint()` demands `true`.
69
+ */
70
+ readonly checkpoint: boolean;
71
+ /**
72
+ * `true` when a `checkpoint()` call on this backend restarts the
73
+ * sandbox's workload as a side effect of capturing state (msb: the
74
+ * stop/snapshot/reboot cycle boots a fresh microVM) — `false` when the
75
+ * sandbox is undisturbed (docker: commit-to-image never touches the
76
+ * running container). `GenericContainer.checkpoint()` re-runs the
77
+ * container's own wait strategy before returning exactly when this is
78
+ * `true`, so a caller never gets back a false-ready container.
79
+ */
80
+ readonly checkpointRestartsWorkload: boolean;
81
+ }
32
82
  /**
33
83
  * The one interface every container backend implements. Host ports arrive
34
84
  * in `ContainerSpec.ports` already chosen (see `FreePorts`) — a backend
@@ -39,6 +89,8 @@ export interface SandboxBackend {
39
89
  readonly name: string;
40
90
  /** `true` for docker (native bridge networks); `false` for msb, which emulates links over exec-stream tunnels instead. */
41
91
  readonly supportsNativeNetworks: boolean;
92
+ /** This backend's isolation/checkpoint capability flags — see `BackendCapabilities`. */
93
+ readonly capabilities: BackendCapabilities;
42
94
  /** Allocate the backend-native container without starting it. Must not bind ports or run the workload yet. */
43
95
  create(spec: ContainerSpec): Promise<SandboxHandle>;
44
96
  /** Boot the workload. On a bind conflict, throw (or wrap a cause chain ending in) `PortBindConflictError` so `GenericContainer`'s retry loop can classify it. */
@@ -47,6 +99,64 @@ export interface SandboxBackend {
47
99
  stop(handle: SandboxHandle): Promise<void>;
48
100
  /** Best-effort removal of the backend-native resource; callers swallow failures during teardown. */
49
101
  remove(handle: SandboxHandle): Promise<void>;
102
+ /**
103
+ * Captures `handle`'s current state under `ref` —
104
+ * `GenericContainer.checkpoint()`'s backend call, gated on
105
+ * `capabilities.checkpoint` BEFORE this is ever reached, so an
106
+ * unsupported backend never has to implement this for real (it may throw
107
+ * defensively). Docker: commits the running container to image `ref`,
108
+ * undisturbed. Microsandbox: stop the sandbox, `msb snapshot create` a
109
+ * disk snapshot named `ref`, then start the sandbox back up — the
110
+ * workload restarts, which is why `capabilities.checkpointRestartsWorkload`
111
+ * exists. Never called on a backend whose `capabilities.checkpoint` is
112
+ * `false`.
113
+ */
114
+ createCheckpoint(handle: SandboxHandle, ref: string): Promise<void>;
115
+ /**
116
+ * Best-effort removal of a checkpoint identified by `ref` (docker: `rmi`;
117
+ * microsandbox: `msb snapshot rm`) — "not found" is success, the same
118
+ * contract as `removeByName`. SPI-only: there is no public
119
+ * `GenericContainer` method for this, only documented CLI one-liners for
120
+ * end users; it exists so tests can keep shared CI state clean.
121
+ */
122
+ removeCheckpoint(ref: string): Promise<void>;
123
+ /**
124
+ * Probes whether a checkpoint artifact identified by `ref` still exists —
125
+ * docker: image inspect; microsandbox: `msb snapshot inspect <ref>` exit
126
+ * code. `Checkpoints.find`'s only caller: it never probes an entry
127
+ * recorded under a DIFFERENT backend than the one this is called on, so in
128
+ * practice this is only ever invoked on a backend whose
129
+ * `capabilities.checkpoint` is `true`. A backend that never supports
130
+ * checkpoints at all may implement this by throwing
131
+ * `UnsupportedByBackendError`, the same defensive-throw convention
132
+ * `createCheckpoint` documents for that case. A probe FAILURE (the
133
+ * underlying call itself errors) must propagate — only a confirmed
134
+ * "does not exist" may resolve `false`; best-effort `false` on an error is
135
+ * not allowed.
136
+ */
137
+ hasCheckpoint(ref: string): Promise<boolean>;
138
+ /**
139
+ * Best-effort stop+remove of a sandbox identified by NAME rather than a
140
+ * `SandboxHandle` — the reaping ledger only ever stores names (it must be
141
+ * legible to a sweep running in a different process, possibly a
142
+ * different rightsize language implementation entirely, that never held
143
+ * a handle for this sandbox). "Not found" is silently fine: sweeps are
144
+ * idempotent and may race another process's sweep for the same name.
145
+ */
146
+ removeByName(name: string): Promise<void>;
147
+ /**
148
+ * Checks whether a sandbox named `spec.name` is currently running and, if
149
+ * so, returns a handle for it — reuse's adopt path, which never held a
150
+ * handle for a sandbox a possibly-earlier process created. The returned
151
+ * handle's `spec` is `spec` itself, embedded verbatim: this call never
152
+ * re-derives a `ContainerSpec` from backend-native inspection data, it
153
+ * only confirms liveness under the NAME the caller already built a spec
154
+ * for. `undefined` means not running — including "the backend has no
155
+ * record of this name at all."
156
+ */
157
+ findRunning(spec: ContainerSpec): Promise<SandboxHandle | undefined>;
158
+ /** This backend's reaper watchdog kill-command prefixes — see `ReaperKillCommand`'s own doc. */
159
+ reaperKillCommand(): Promise<ReaperKillCommand>;
50
160
  /** Run a one-shot command inside a running container and wait for it to exit. */
51
161
  exec(handle: SandboxHandle, cmd: ReadonlyArray<string>): Promise<ExecResult>;
52
162
  /** Fetch everything logged so far (bounded tail), for a one-shot read. */
@@ -64,6 +174,20 @@ export interface SandboxBackend {
64
174
  removeNetwork(networkId: string): Promise<void>;
65
175
  /** Default no-op: docker relies on native networks. Only an emulating backend overrides it. */
66
176
  installNetworkLinks(handle: SandboxHandle, links: ReadonlyArray<NetworkLink>): Promise<void>;
177
+ /**
178
+ * Copies a host file or directory into the guest at `containerPath` — the
179
+ * TRANSFER step only. `GenericContainer.copyFileToContainer()` owns the
180
+ * running-check, the absolute-path check, and the `mkdir -p` pre-step (via
181
+ * `exec`) before this is ever called; this method does only the copy
182
+ * itself. `cp -r`-style destination naming: copying a directory to an
183
+ * absent destination path produces that path as a copy of the source's
184
+ * CONTENTS, not the source nested one level down — both backends' own
185
+ * copy tools already behave this way. A failure must carry the
186
+ * underlying tool's stderr in a `BackendError`, never a silent success.
187
+ */
188
+ copyToContainer(handle: SandboxHandle, hostPath: string, containerPath: string): Promise<void>;
189
+ /** The reverse direction of `copyToContainer` — see its own doc for the shared contract (transfer only, `cp -r`-style naming, stderr on failure). */
190
+ copyFromContainer(handle: SandboxHandle, containerPath: string, hostPath: string): Promise<void>;
67
191
  /** Best-effort teardown of backend-owned resources (sockets, child processes). */
68
192
  close(): Promise<void>;
69
193
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/core/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC3B,+HAA+H;IAC/H,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0HAA0H;IAC1H,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,8GAA8G;IAC9G,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,iKAAiK;IACjK,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,kEAAkE;IAClE,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,oGAAoG;IACpG,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,iFAAiF;IACjF,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7E,0EAA0E;IAC1E,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3F,yDAAyD;IACzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,mEAAmE;IACnE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,+FAA+F;IAC/F,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7F,kFAAkF;IAClF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2HAA2H;IAC3H,WAAW,IAAI,OAAO,CAAC;IACvB,8GAA8G;IAC9G,iBAAiB,IAAI,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,MAAM,IAAI,cAAc,CAAC;CAC1B"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/core/backend.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,19 @@ export declare function resolve(providers: readonly BackendProvider[], requested
22
22
  * cleanup (see `src/core/cleanup.ts`) the first time a backend is created.
23
23
  */
24
24
  declare function active(): SandboxBackend;
25
- /** Test seam: forces the next `Backends.active()` call to re-resolve. */
25
+ /**
26
+ * Awaits the reaper's one-time-per-process bring-up (run record, sweep,
27
+ * watchdog — see `core/reaper/init.ts`) against whatever `active()` resolves.
28
+ * Colocated with `active()`'s own memoization so the kickoff happens right
29
+ * after resolution succeeds, but kept as a SEPARATE function (rather than
30
+ * folded into `active()` itself) so `active()` stays synchronous — its
31
+ * existing callers, including test code that resolves a backend without
32
+ * ever wanting reaper side effects, are unaffected. `GenericContainer.start()`
33
+ * awaits this before its first `backend.create()` call, for every container
34
+ * that resolves its backend from here (not one pinned via `withBackend()`).
35
+ */
36
+ declare function reaperReady(): Promise<void>;
37
+ /** Test seam: forces the next `Backends.active()` call to re-resolve, and the next `reaperReady()` call to redo the reaper's bring-up. */
26
38
  declare function _resetActiveForTests(): void;
27
39
  /** The library's single entry point for obtaining the active `SandboxBackend`. */
28
40
  export declare const Backends: {
@@ -30,7 +42,9 @@ export declare const Backends: {
30
42
  resolve: typeof resolve;
31
43
  /** The memoized, per-process active backend — resolved from whatever's registered plus `RIGHTSIZE_BACKEND`. */
32
44
  active: typeof active;
33
- /** Test seam: forces the next `active()` call to re-resolve. Never call from library code. */
45
+ /** Awaits the reaper's one-time bring-up against the active backend see the doc above. */
46
+ reaperReady: typeof reaperReady;
47
+ /** Test seam: forces the next `active()`/`reaperReady()` call to re-resolve/redo bring-up. Never call from library code. */
34
48
  _resetActiveForTests: typeof _resetActiveForTests;
35
49
  };
36
50
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAQpE,yHAAyH;AACzH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAE/D;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,eAAe,EAAE,CAE9D;AAMD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CA2B5G;AAKD;;;;GAIG;AACH,iBAAS,MAAM,IAAI,cAAc,CAkDhC;AAED,yEAAyE;AACzE,iBAAS,oBAAoB,IAAI,IAAI,CAGpC;AAED,kFAAkF;AAClF,eAAO,MAAM,QAAQ;IACnB,+EAA+E;;IAE/E,+GAA+G;;IAE/G,8FAA8F;;CAE/F,CAAC"}
1
+ {"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AASpE,yHAAyH;AACzH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAE/D;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,eAAe,EAAE,CAE9D;AAMD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CA2B5G;AAKD;;;;GAIG;AACH,iBAAS,MAAM,IAAI,cAAc,CA4DhC;AAID;;;;;;;;;;GAUG;AACH,iBAAS,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpC;AAED,0IAA0I;AAC1I,iBAAS,oBAAoB,IAAI,IAAI,CAKpC;AAED,kFAAkF;AAClF,eAAO,MAAM,QAAQ;IACnB,+EAA+E;;IAE/E,+GAA+G;;IAE/G,4FAA4F;;IAE5F,4HAA4H;;CAE7H,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ensureReaperInitialized, notifyBackendClosed, _resetReaperForTests } from "./reaper/init.js";
1
2
  // The ServiceLoader analog: an explicit process-global registry. Each
2
3
  // backend subpath (`rightsize/backend-msb`, `rightsize/backend-docker`)
3
4
  // calls registerBackend at import time — the `sideEffects` entry in
@@ -78,8 +79,8 @@ function active() {
78
79
  // This is best-effort and NOT the primary safety net: a process that
79
80
  // dies via SIGKILL, or exits through the synchronous "exit" path
80
81
  // before beforeExit ever fires, is instead covered by the per-
81
- // container cleanupSync registered in cleanup.ts and by the orphan
82
- // reaper each backend runs at construction.
82
+ // container cleanupSync registered in cleanup.ts and by the
83
+ // ledger-based reaper (see reaperReady() below and core/reaper/init.ts).
83
84
  //
84
85
  // "beforeExit" re-fires every time the event loop would otherwise go
85
86
  // idle. close() is async — it awaits HTTP/subprocess calls — so
@@ -95,25 +96,56 @@ function active() {
95
96
  return;
96
97
  }
97
98
  closeStarted = true;
99
+ // Run-record cleanup rule (see reaper/init.ts's notifyBackendClosed
100
+ // doc): once close()'s own-run cleanup has settled — success or
101
+ // failure, since close() is itself best-effort and there is no
102
+ // caller left to report a failure to — this run's ledger files are
103
+ // stale and get deleted. notifyBackendClosed is itself best-effort
104
+ // (never rejects in a way that escapes here).
105
+ const afterClose = () => {
106
+ notifyBackendClosed().catch(() => { });
107
+ };
98
108
  // Best-effort: a backend whose close() rejects — or, as a defensive
99
109
  // fake in a test can do, throws synchronously before ever producing
100
110
  // a Promise to attach .catch() to — must not crash the process on
101
111
  // its way out. There is no caller left to report the failure to.
102
112
  try {
103
- activeBackend?.close().catch(() => { });
113
+ activeBackend?.close().then(afterClose, afterClose);
104
114
  }
105
115
  catch {
106
116
  // Swallowed for the same reason as the .catch() above.
117
+ afterClose();
107
118
  }
108
119
  });
109
120
  }
110
121
  }
111
122
  return activeBackend;
112
123
  }
113
- /** Test seam: forces the next `Backends.active()` call to re-resolve. */
124
+ let reaperReadyPromise;
125
+ /**
126
+ * Awaits the reaper's one-time-per-process bring-up (run record, sweep,
127
+ * watchdog — see `core/reaper/init.ts`) against whatever `active()` resolves.
128
+ * Colocated with `active()`'s own memoization so the kickoff happens right
129
+ * after resolution succeeds, but kept as a SEPARATE function (rather than
130
+ * folded into `active()` itself) so `active()` stays synchronous — its
131
+ * existing callers, including test code that resolves a backend without
132
+ * ever wanting reaper side effects, are unaffected. `GenericContainer.start()`
133
+ * awaits this before its first `backend.create()` call, for every container
134
+ * that resolves its backend from here (not one pinned via `withBackend()`).
135
+ */
136
+ function reaperReady() {
137
+ const backend = active();
138
+ if (reaperReadyPromise === undefined) {
139
+ reaperReadyPromise = ensureReaperInitialized(backend);
140
+ }
141
+ return reaperReadyPromise;
142
+ }
143
+ /** Test seam: forces the next `Backends.active()` call to re-resolve, and the next `reaperReady()` call to redo the reaper's bring-up. */
114
144
  function _resetActiveForTests() {
115
145
  activeBackend = undefined;
116
146
  exitHookInstalled = false;
147
+ reaperReadyPromise = undefined;
148
+ _resetReaperForTests();
117
149
  }
118
150
  /** The library's single entry point for obtaining the active `SandboxBackend`. */
119
151
  export const Backends = {
@@ -121,7 +153,9 @@ export const Backends = {
121
153
  resolve,
122
154
  /** The memoized, per-process active backend — resolved from whatever's registered plus `RIGHTSIZE_BACKEND`. */
123
155
  active,
124
- /** Test seam: forces the next `active()` call to re-resolve. Never call from library code. */
156
+ /** Awaits the reaper's one-time bring-up against the active backend see the doc above. */
157
+ reaperReady,
158
+ /** Test seam: forces the next `active()`/`reaperReady()` call to re-resolve/redo bring-up. Never call from library code. */
125
159
  _resetActiveForTests,
126
160
  };
127
161
  //# sourceMappingURL=backends.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backends.js","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backends.js","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The one rightsize runtime cache directory, shared by every part of the
3
+ * library that needs a place on disk: the msb toolchain provisioner
4
+ * (`<cacheDir>/msb/<version>/...`), the reaping ledger (`<cacheDir>/runs/...`),
5
+ * and the watchdog scripts (`<cacheDir>/reaper/...`). Lives in core rather
6
+ * than the msb provisioner because the ledger needs it even in a
7
+ * docker-only process, which never touches `backend-msb` at all.
8
+ *
9
+ * `%LOCALAPPDATA%` is the Windows-idiomatic location for a machine-local,
10
+ * non-roaming native toolchain cache (as opposed to `%USERPROFILE%`, which a
11
+ * roaming-profile setup can sync, or a Unix-style dotfile under the home
12
+ * dir). Falls back to `%USERPROFILE%\AppData\Local` if the env var is unset,
13
+ * matching what `os.homedir()` resolves to on a normal Windows install when
14
+ * `LOCALAPPDATA` isn't populated (rare, but seen on some minimal/CI images).
15
+ */
16
+ export declare function cacheDir(): string;
17
+ //# sourceMappingURL=cache-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-dir.d.ts","sourceRoot":"","sources":["../../src/core/cache-dir.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAUjC"}
@@ -0,0 +1,29 @@
1
+ import * as path from "node:path";
2
+ import * as os from "node:os";
3
+ /**
4
+ * The one rightsize runtime cache directory, shared by every part of the
5
+ * library that needs a place on disk: the msb toolchain provisioner
6
+ * (`<cacheDir>/msb/<version>/...`), the reaping ledger (`<cacheDir>/runs/...`),
7
+ * and the watchdog scripts (`<cacheDir>/reaper/...`). Lives in core rather
8
+ * than the msb provisioner because the ledger needs it even in a
9
+ * docker-only process, which never touches `backend-msb` at all.
10
+ *
11
+ * `%LOCALAPPDATA%` is the Windows-idiomatic location for a machine-local,
12
+ * non-roaming native toolchain cache (as opposed to `%USERPROFILE%`, which a
13
+ * roaming-profile setup can sync, or a Unix-style dotfile under the home
14
+ * dir). Falls back to `%USERPROFILE%\AppData\Local` if the env var is unset,
15
+ * matching what `os.homedir()` resolves to on a normal Windows install when
16
+ * `LOCALAPPDATA` isn't populated (rare, but seen on some minimal/CI images).
17
+ */
18
+ export function cacheDir() {
19
+ const override = process.env["RIGHTSIZE_CACHE_DIR"];
20
+ if (override !== undefined) {
21
+ return override;
22
+ }
23
+ if (process.platform === "win32") {
24
+ const localAppData = process.env["LOCALAPPDATA"] ?? path.join(os.homedir(), "AppData", "Local");
25
+ return path.join(localAppData, "rightsize");
26
+ }
27
+ return path.join(os.homedir(), ".cache", "rightsize");
28
+ }
29
+ //# sourceMappingURL=cache-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-dir.js","sourceRoot":"","sources":["../../src/core/cache-dir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC"}