@intentic/machine 1.326.0 → 1.327.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 (271) hide show
  1. package/README.md +387 -33
  2. package/dist/commands.d.ts.map +1 -1
  3. package/dist/commands.js +2 -0
  4. package/dist/commands.js.map +1 -1
  5. package/dist/daemon-base.d.ts.map +1 -1
  6. package/dist/daemon-base.js +2 -3
  7. package/dist/daemon-base.js.map +1 -1
  8. package/dist/device/audit.d.ts +2 -0
  9. package/dist/device/audit.d.ts.map +1 -1
  10. package/dist/device/audit.js +23 -3
  11. package/dist/device/audit.js.map +1 -1
  12. package/dist/device/commands.d.ts +4 -0
  13. package/dist/device/commands.d.ts.map +1 -1
  14. package/dist/device/commands.js +7 -2
  15. package/dist/device/commands.js.map +1 -1
  16. package/dist/device/connection.d.ts +12 -1
  17. package/dist/device/connection.d.ts.map +1 -1
  18. package/dist/device/connection.js +77 -3
  19. package/dist/device/connection.js.map +1 -1
  20. package/dist/device/grant.d.ts +52 -0
  21. package/dist/device/grant.d.ts.map +1 -1
  22. package/dist/device/loopback-catch.d.ts +1 -1
  23. package/dist/device/loopback-catch.d.ts.map +1 -1
  24. package/dist/device/loopback-catch.js +5 -30
  25. package/dist/device/loopback-catch.js.map +1 -1
  26. package/dist/device/mcp.d.ts.map +1 -1
  27. package/dist/device/mcp.js +190 -30
  28. package/dist/device/mcp.js.map +1 -1
  29. package/dist/device/router.d.ts +52 -0
  30. package/dist/device/router.d.ts.map +1 -1
  31. package/dist/device/router.js +21 -0
  32. package/dist/device/router.js.map +1 -1
  33. package/dist/device/sandbox-rounds/auto-backup.d.ts +3 -1
  34. package/dist/device/sandbox-rounds/auto-backup.d.ts.map +1 -1
  35. package/dist/device/sandbox-rounds/auto-backup.js +14 -5
  36. package/dist/device/sandbox-rounds/auto-backup.js.map +1 -1
  37. package/dist/device/sandbox-rounds/auto-prepare.d.ts +3 -1
  38. package/dist/device/sandbox-rounds/auto-prepare.d.ts.map +1 -1
  39. package/dist/device/sandbox-rounds/auto-prepare.js +3 -3
  40. package/dist/device/sandbox-rounds/auto-prepare.js.map +1 -1
  41. package/dist/device/sandbox-rounds/in-flight.d.ts.map +1 -0
  42. package/dist/device/sandbox-rounds/in-flight.js.map +1 -0
  43. package/dist/device/sandbox-rounds/keeper.d.ts +26 -4
  44. package/dist/device/sandbox-rounds/keeper.d.ts.map +1 -1
  45. package/dist/device/sandbox-rounds/keeper.js +129 -31
  46. package/dist/device/sandbox-rounds/keeper.js.map +1 -1
  47. package/dist/device/sandbox-rounds/probation-watch.d.ts.map +1 -1
  48. package/dist/device/sandbox-rounds/probation-watch.js.map +1 -1
  49. package/dist/device/tools/android-parse.d.ts +69 -0
  50. package/dist/device/tools/android-parse.d.ts.map +1 -0
  51. package/dist/device/tools/android-parse.js +391 -0
  52. package/dist/device/tools/android-parse.js.map +1 -0
  53. package/dist/device/tools/android.d.ts +71 -0
  54. package/dist/device/tools/android.d.ts.map +1 -0
  55. package/dist/device/tools/android.js +534 -0
  56. package/dist/device/tools/android.js.map +1 -0
  57. package/dist/device/tools/apps.d.ts +3 -3
  58. package/dist/device/tools/apps.d.ts.map +1 -1
  59. package/dist/device/tools/apps.js +16 -6
  60. package/dist/device/tools/apps.js.map +1 -1
  61. package/dist/device/tools/describe.d.ts.map +1 -1
  62. package/dist/device/tools/describe.js +10 -5
  63. package/dist/device/tools/describe.js.map +1 -1
  64. package/dist/device/tools/device.d.ts +9 -15
  65. package/dist/device/tools/device.d.ts.map +1 -1
  66. package/dist/device/tools/device.js +34 -58
  67. package/dist/device/tools/device.js.map +1 -1
  68. package/dist/device/tools/elements.d.ts +13 -0
  69. package/dist/device/tools/elements.d.ts.map +1 -0
  70. package/dist/device/tools/elements.js +84 -0
  71. package/dist/device/tools/elements.js.map +1 -0
  72. package/dist/device/tools/ic-binary.d.ts +1 -0
  73. package/dist/device/tools/ic-binary.d.ts.map +1 -1
  74. package/dist/device/tools/ic-binary.js +40 -17
  75. package/dist/device/tools/ic-binary.js.map +1 -1
  76. package/dist/device/tools/sandboxes.d.ts +1 -1
  77. package/dist/device/tools/sandboxes.d.ts.map +1 -1
  78. package/dist/device/tools/sandboxes.js +9 -8
  79. package/dist/device/tools/sandboxes.js.map +1 -1
  80. package/dist/device/tools/shell.js +1 -1
  81. package/dist/device/tools/shell.js.map +1 -1
  82. package/dist/device/tools/view.d.ts +4 -0
  83. package/dist/device/tools/view.d.ts.map +1 -0
  84. package/dist/device/tools/view.js +4 -0
  85. package/dist/device/tools/view.js.map +1 -0
  86. package/dist/environments/children.js +1 -1
  87. package/dist/environments/children.js.map +1 -1
  88. package/dist/environments/commands.js +1 -1
  89. package/dist/environments/commands.js.map +1 -1
  90. package/dist/environments/crossing.d.ts +1 -1
  91. package/dist/environments/crossing.d.ts.map +1 -1
  92. package/dist/environments/machine.js +1 -1
  93. package/dist/environments/machine.js.map +1 -1
  94. package/dist/environments/wsl.d.ts.map +1 -0
  95. package/dist/environments/wsl.js.map +1 -0
  96. package/dist/resident.d.ts.map +1 -1
  97. package/dist/resident.js +14 -8
  98. package/dist/resident.js.map +1 -1
  99. package/dist/status.d.ts.map +1 -1
  100. package/dist/status.js +16 -13
  101. package/dist/status.js.map +1 -1
  102. package/dist/sync/attach-commands.d.ts +39 -0
  103. package/dist/sync/attach-commands.d.ts.map +1 -0
  104. package/dist/sync/attach-commands.js +152 -0
  105. package/dist/sync/attach-commands.js.map +1 -0
  106. package/dist/sync/commands.d.ts +8 -4
  107. package/dist/sync/commands.d.ts.map +1 -1
  108. package/dist/sync/commands.js +137 -79
  109. package/dist/sync/commands.js.map +1 -1
  110. package/dist/sync/config.d.ts +43 -9
  111. package/dist/sync/config.d.ts.map +1 -1
  112. package/dist/sync/config.js +86 -41
  113. package/dist/sync/config.js.map +1 -1
  114. package/dist/sync/endpoint.d.ts +8 -1
  115. package/dist/sync/endpoint.d.ts.map +1 -1
  116. package/dist/sync/endpoint.js +41 -1
  117. package/dist/sync/endpoint.js.map +1 -1
  118. package/dist/sync/environment.d.ts +11 -0
  119. package/dist/sync/environment.d.ts.map +1 -0
  120. package/dist/sync/environment.js +48 -0
  121. package/dist/sync/environment.js.map +1 -0
  122. package/dist/sync/exec.d.ts +1 -0
  123. package/dist/sync/exec.d.ts.map +1 -1
  124. package/dist/sync/exec.js +4 -5
  125. package/dist/sync/exec.js.map +1 -1
  126. package/dist/sync/folders.d.ts +3 -2
  127. package/dist/sync/folders.d.ts.map +1 -1
  128. package/dist/sync/folders.js +55 -2
  129. package/dist/sync/folders.js.map +1 -1
  130. package/dist/sync/forget-command.d.ts +22 -0
  131. package/dist/sync/forget-command.d.ts.map +1 -0
  132. package/dist/sync/forget-command.js +95 -0
  133. package/dist/sync/forget-command.js.map +1 -0
  134. package/dist/sync/git-bridge.d.ts +6 -0
  135. package/dist/sync/git-bridge.d.ts.map +1 -1
  136. package/dist/sync/git-bridge.js +64 -1
  137. package/dist/sync/git-bridge.js.map +1 -1
  138. package/dist/sync/gone-watch.d.ts +18 -0
  139. package/dist/sync/gone-watch.d.ts.map +1 -0
  140. package/dist/sync/gone-watch.js +142 -0
  141. package/dist/sync/gone-watch.js.map +1 -0
  142. package/dist/sync/gone.d.ts +22 -0
  143. package/dist/sync/gone.d.ts.map +1 -0
  144. package/dist/sync/gone.js +60 -0
  145. package/dist/sync/gone.js.map +1 -0
  146. package/dist/sync/local-sandboxes.d.ts +6 -0
  147. package/dist/sync/local-sandboxes.d.ts.map +1 -0
  148. package/dist/sync/local-sandboxes.js +26 -0
  149. package/dist/sync/local-sandboxes.js.map +1 -0
  150. package/dist/sync/mirror.d.ts +7 -0
  151. package/dist/sync/mirror.d.ts.map +1 -1
  152. package/dist/sync/mirror.js +434 -111
  153. package/dist/sync/mirror.js.map +1 -1
  154. package/dist/sync/mutagen.d.ts +50 -18
  155. package/dist/sync/mutagen.d.ts.map +1 -1
  156. package/dist/sync/mutagen.js +294 -80
  157. package/dist/sync/mutagen.js.map +1 -1
  158. package/dist/sync/project/adopt.d.ts +18 -0
  159. package/dist/sync/project/adopt.d.ts.map +1 -0
  160. package/dist/sync/project/adopt.js +86 -0
  161. package/dist/sync/project/adopt.js.map +1 -0
  162. package/dist/sync/{project-commands.d.ts → project/project-commands.d.ts} +4 -1
  163. package/dist/sync/project/project-commands.d.ts.map +1 -0
  164. package/dist/sync/{project-commands.js → project/project-commands.js} +10 -10
  165. package/dist/sync/project/project-commands.js.map +1 -0
  166. package/dist/sync/project/project-delivery.d.ts +23 -0
  167. package/dist/sync/project/project-delivery.d.ts.map +1 -0
  168. package/dist/sync/project/project-delivery.js +315 -0
  169. package/dist/sync/project/project-delivery.js.map +1 -0
  170. package/dist/sync/{project-files.d.ts → project/project-files.d.ts} +1 -1
  171. package/dist/sync/project/project-files.d.ts.map +1 -0
  172. package/dist/sync/{project-files.js → project/project-files.js} +5 -2
  173. package/dist/sync/project/project-files.js.map +1 -0
  174. package/dist/sync/{project-local.d.ts → project/project-local.d.ts} +1 -1
  175. package/dist/sync/project/project-local.d.ts.map +1 -0
  176. package/dist/sync/{project-local.js → project/project-local.js} +1 -1
  177. package/dist/sync/project/project-local.js.map +1 -0
  178. package/dist/sync/{project-remote.d.ts → project/project-remote.d.ts} +1 -1
  179. package/dist/sync/project/project-remote.d.ts.map +1 -0
  180. package/dist/sync/{project-remote.js → project/project-remote.js} +1 -1
  181. package/dist/sync/project/project-remote.js.map +1 -0
  182. package/dist/sync/{project-transfer.d.ts → project/project-transfer.d.ts} +20 -6
  183. package/dist/sync/project/project-transfer.d.ts.map +1 -0
  184. package/dist/sync/{project-transfer.js → project/project-transfer.js} +26 -23
  185. package/dist/sync/project/project-transfer.js.map +1 -0
  186. package/dist/sync/report.d.ts.map +1 -1
  187. package/dist/sync/report.js +13 -7
  188. package/dist/sync/report.js.map +1 -1
  189. package/dist/sync/restore-points.d.ts +15 -11
  190. package/dist/sync/restore-points.d.ts.map +1 -1
  191. package/dist/sync/restore-points.js +25 -24
  192. package/dist/sync/restore-points.js.map +1 -1
  193. package/dist/sync/retire.d.ts +14 -0
  194. package/dist/sync/retire.d.ts.map +1 -0
  195. package/dist/sync/retire.js +66 -0
  196. package/dist/sync/retire.js.map +1 -0
  197. package/dist/sync/siblings.d.ts +27 -0
  198. package/dist/sync/siblings.d.ts.map +1 -0
  199. package/dist/sync/siblings.js +112 -0
  200. package/dist/sync/siblings.js.map +1 -0
  201. package/dist/sync/ssh.d.ts +1 -0
  202. package/dist/sync/ssh.d.ts.map +1 -1
  203. package/dist/sync/ssh.js +37 -23
  204. package/dist/sync/ssh.js.map +1 -1
  205. package/dist/sync/tunnel.d.ts +6 -2
  206. package/dist/sync/tunnel.d.ts.map +1 -1
  207. package/dist/sync/tunnel.js +45 -48
  208. package/dist/sync/tunnel.js.map +1 -1
  209. package/dist/upkeep/doctor.d.ts +5 -0
  210. package/dist/upkeep/doctor.d.ts.map +1 -0
  211. package/dist/upkeep/doctor.js +73 -0
  212. package/dist/upkeep/doctor.js.map +1 -0
  213. package/dist/upkeep/entry.d.ts +26 -0
  214. package/dist/upkeep/entry.d.ts.map +1 -0
  215. package/dist/upkeep/entry.js +2 -0
  216. package/dist/upkeep/entry.js.map +1 -0
  217. package/dist/upkeep/login.d.ts +15 -0
  218. package/dist/upkeep/login.d.ts.map +1 -0
  219. package/dist/upkeep/login.js +128 -0
  220. package/dist/upkeep/login.js.map +1 -0
  221. package/dist/upkeep/manifest.d.ts +3 -0
  222. package/dist/upkeep/manifest.d.ts.map +1 -0
  223. package/dist/upkeep/manifest.js +6 -0
  224. package/dist/upkeep/manifest.js.map +1 -0
  225. package/dist/upkeep/reconcile.d.ts +45 -0
  226. package/dist/upkeep/reconcile.d.ts.map +1 -0
  227. package/dist/upkeep/reconcile.js +159 -0
  228. package/dist/upkeep/reconcile.js.map +1 -0
  229. package/dist/upkeep/retention.d.ts +10 -0
  230. package/dist/upkeep/retention.d.ts.map +1 -0
  231. package/dist/upkeep/retention.js +71 -0
  232. package/dist/upkeep/retention.js.map +1 -0
  233. package/dist/upkeep/retired.d.ts +12 -0
  234. package/dist/upkeep/retired.d.ts.map +1 -0
  235. package/dist/upkeep/retired.js +125 -0
  236. package/dist/upkeep/retired.js.map +1 -0
  237. package/dist/upkeep/second-ic.d.ts +4 -0
  238. package/dist/upkeep/second-ic.d.ts.map +1 -0
  239. package/dist/upkeep/second-ic.js +36 -0
  240. package/dist/upkeep/second-ic.js.map +1 -0
  241. package/dist/upkeep/trash.d.ts +9 -0
  242. package/dist/upkeep/trash.d.ts.map +1 -0
  243. package/dist/upkeep/trash.js +77 -0
  244. package/dist/upkeep/trash.js.map +1 -0
  245. package/dist/watchdog.d.ts +13 -0
  246. package/dist/watchdog.d.ts.map +1 -0
  247. package/dist/watchdog.js +38 -0
  248. package/dist/watchdog.js.map +1 -0
  249. package/package.json +9 -9
  250. package/dist/autostart/legacy-autostart.d.ts +0 -4
  251. package/dist/autostart/legacy-autostart.d.ts.map +0 -1
  252. package/dist/autostart/legacy-autostart.js +0 -33
  253. package/dist/autostart/legacy-autostart.js.map +0 -1
  254. package/dist/device/tools/in-flight.d.ts.map +0 -1
  255. package/dist/device/tools/in-flight.js.map +0 -1
  256. package/dist/sync/project-commands.d.ts.map +0 -1
  257. package/dist/sync/project-commands.js.map +0 -1
  258. package/dist/sync/project-files.d.ts.map +0 -1
  259. package/dist/sync/project-files.js.map +0 -1
  260. package/dist/sync/project-local.d.ts.map +0 -1
  261. package/dist/sync/project-local.js.map +0 -1
  262. package/dist/sync/project-remote.d.ts.map +0 -1
  263. package/dist/sync/project-remote.js.map +0 -1
  264. package/dist/sync/project-transfer.d.ts.map +0 -1
  265. package/dist/sync/project-transfer.js.map +0 -1
  266. package/dist/wsl.d.ts.map +0 -1
  267. package/dist/wsl.js.map +0 -1
  268. /package/dist/device/{tools → sandbox-rounds}/in-flight.d.ts +0 -0
  269. /package/dist/device/{tools → sandbox-rounds}/in-flight.js +0 -0
  270. /package/dist/{wsl.d.ts → environments/wsl.d.ts} +0 -0
  271. /package/dist/{wsl.js → environments/wsl.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/sync/tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/sync/tunnel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type CommandContext } from "@stricli/core";
2
+ import { type UpkeepItem } from "./reconcile.js";
3
+ export declare const itemLine: (item: UpkeepItem) => string;
4
+ export declare const doctor: import("@stricli/core").Command<CommandContext>;
5
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/upkeep/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGlE,OAAO,EAA0B,KAAK,UAAU,EAAsB,MAAM,gBAAgB,CAAC;AA+B7F,eAAO,MAAM,QAAQ,SAAU,UAAU,KAAG,MAO3C,CAAC;AAMF,eAAO,MAAM,MAAM,iDAyCjB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { buildCommand } from "@stricli/core";
2
+ import { readResident } from "../supervision.js";
3
+ import { MANIFEST } from "./manifest.js";
4
+ import { runUpkeep, summaryLine } from "./reconcile.js";
5
+ const VERB = {
6
+ retire: "retire",
7
+ trash: "move to the trash",
8
+ prune: "delete",
9
+ rotate: "set aside",
10
+ repair: "write again",
11
+ report: "report",
12
+ };
13
+ const DONE = {
14
+ retire: "retired",
15
+ trash: "moved to the trash",
16
+ prune: "deleted",
17
+ rotate: "set aside",
18
+ repair: "written again",
19
+ report: "reported",
20
+ };
21
+ export const itemLine = (item) => {
22
+ const said = {
23
+ fixed: `${DONE[item.action]}: ${item.what}`,
24
+ "would-fix": `would ${VERB[item.action]}: ${item.what}`,
25
+ skipped: `left: ${item.what} — ${item.why ?? ""}`,
26
+ };
27
+ return ` ${said[item.outcome]}`;
28
+ };
29
+ const reasonLines = (items) => MANIFEST.filter((entry) => items.some((item) => item.id === entry.id)).map((entry) => ` ${entry.id}: ${entry.reason}`);
30
+ export const doctor = buildCommand({
31
+ docs: { brief: "Check this environment for what older releases left and stores past their bounds; --fix puts it right" },
32
+ parameters: {
33
+ flags: {
34
+ fix: { kind: "boolean", brief: "Do what the check finds, as the agent's own pass every six hours would", default: false },
35
+ json: { kind: "boolean", brief: "Print one JSON object: the counts, and every line found", default: false },
36
+ },
37
+ },
38
+ async func(flags) {
39
+ const out = (message) => void this.process.stdout.write(`${message}\n`);
40
+ const resident = await readResident();
41
+ const run = await runUpkeep({ fix: flags.fix, resident: false, supervisor: resident?.supervisor, log: flags.json ? () => undefined : out });
42
+ if ("busy" in run) {
43
+ const why = `the agent's own upkeep pass is running (pid ${run.busy}); try again in a minute.`;
44
+ if (flags.json) {
45
+ out(JSON.stringify({ ok: false, error: why }));
46
+ }
47
+ else {
48
+ out(why);
49
+ }
50
+ process.exitCode = 1;
51
+ return;
52
+ }
53
+ if (flags.json) {
54
+ out(JSON.stringify({ ok: true, fix: flags.fix, ...run.report, items: run.items }));
55
+ return;
56
+ }
57
+ for (const item of run.items) {
58
+ out(itemLine(item));
59
+ }
60
+ const reasons = reasonLines(run.items);
61
+ if (reasons.length > 0) {
62
+ out("Why:");
63
+ for (const line of reasons) {
64
+ out(line);
65
+ }
66
+ }
67
+ out(summaryLine(run.report, flags.fix));
68
+ if (!flags.fix && run.items.some((item) => item.outcome === "would-fix")) {
69
+ out("Run `intentic-machine doctor --fix` to do it now; the agent does it by itself within six hours.");
70
+ }
71
+ },
72
+ });
73
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/upkeep/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Log } from "@intentic/local-agent";
2
+ export type UpkeepAction = "retire" | "trash" | "prune" | "rotate" | "repair" | "report";
3
+ export interface UpkeepContext {
4
+ readonly log: Log;
5
+ readonly now: number;
6
+ readonly home: string;
7
+ readonly base: string;
8
+ readonly platform: NodeJS.Platform;
9
+ readonly supervisor: string | undefined;
10
+ readonly resident: boolean;
11
+ }
12
+ export interface Finding {
13
+ readonly what: string;
14
+ readonly act?: () => Promise<void>;
15
+ readonly why?: string;
16
+ }
17
+ export interface UpkeepEntry {
18
+ readonly id: string;
19
+ readonly kind: string;
20
+ readonly action: UpkeepAction;
21
+ readonly reason: string;
22
+ readonly once?: boolean;
23
+ readonly formerMarker?: string;
24
+ readonly find: (context: UpkeepContext) => Promise<readonly Finding[]>;
25
+ }
26
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/upkeep/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAejD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAIzF,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAGnC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B;AAID,MAAM,WAAW,OAAO;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAExB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CAC1E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/upkeep/entry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { type EntryInspection } from "@intentic/local-agent";
2
+ import type { Finding, UpkeepEntry } from "./entry.js";
3
+ export declare const loginEntryFinding: (inspection: EntryInspection, repair: () => Promise<void>) => Finding | undefined;
4
+ export declare const runValueData: (output: string, name: string) => string | undefined;
5
+ export interface MutagenRunReading {
6
+ readonly pairings: number | Error;
7
+ readonly value: string | undefined;
8
+ readonly own: string;
9
+ readonly ownInUse: boolean;
10
+ }
11
+ export declare const mutagenRunDecision: (reading: MutagenRunReading) => "retire" | "repair" | {
12
+ readonly why: string;
13
+ } | undefined;
14
+ export declare const LOGIN_ENTRIES: readonly UpkeepEntry[];
15
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/upkeep/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM9F,OAAO,KAAK,EAAE,OAAO,EAAiB,WAAW,EAAE,MAAM,YAAY,CAAC;AA2BtE,eAAO,MAAM,iBAAiB,eAAgB,eAAe,UAAU,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,GAAG,SAQtG,CAAC;AAmCF,eAAO,MAAM,YAAY,WAAY,MAAM,QAAQ,MAAM,KAAG,MAAM,GAAG,SAQpE,CAAC;AAQF,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAElC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B;AAGD,eAAO,MAAM,kBAAkB,YAAa,iBAAiB,KAAG,QAAQ,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAahH,CAAC;AA2DF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAAkD,CAAC"}
@@ -0,0 +1,128 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { autostart, clearWindowsRunValue } from "@intentic/local-agent";
5
+ import { MACHINE_AUTOSTART } from "../autostart/autostart.js";
6
+ import { agentPath } from "../release.js";
7
+ import { machineLauncher } from "../supervision.js";
8
+ import { readState } from "../sync/config.js";
9
+ import { MUTAGEN_RUN_VALUE, ownMutagenPath, registerMutagenAutostart } from "../sync/mutagen.js";
10
+ const ENTRY_SUPERVISORS = new Set(["task", "run-key", "systemd", "launchd", "xdg"]);
11
+ const entryName = (inspection) => {
12
+ switch (inspection.kind) {
13
+ case "task":
14
+ return `the "${MACHINE_AUTOSTART.windowsRunValue}" logon task${inspection.drift === undefined ? "" : ` (differs in ${inspection.drift.join(", ")})`}`;
15
+ case "run-key":
16
+ return `the "${MACHINE_AUTOSTART.windowsRunValue}" Run value`;
17
+ case "systemd":
18
+ return `${MACHINE_AUTOSTART.id}.service`;
19
+ case "launchd":
20
+ return `the ${MACHINE_AUTOSTART.launchAgent?.label ?? MACHINE_AUTOSTART.id} LaunchAgent`;
21
+ default:
22
+ return `${MACHINE_AUTOSTART.id}.desktop`;
23
+ }
24
+ };
25
+ export const loginEntryFinding = (inspection, repair) => {
26
+ if (inspection.state === "stale" || inspection.state === "missing") {
27
+ return { what: entryName(inspection), act: repair };
28
+ }
29
+ if (inspection.state === "unknown") {
30
+ return { what: entryName(inspection), why: "it could not be read, so it is left as it is" };
31
+ }
32
+ return undefined;
33
+ };
34
+ const samePath = (a, b, platform) => platform === "win32" ? a.replaceAll("/", "\\").toLowerCase() === b.replaceAll("/", "\\").toLowerCase() : a === b;
35
+ const ownLoginEntry = {
36
+ id: "login-entry",
37
+ kind: "login-entry",
38
+ action: "repair",
39
+ reason: "this agent's own login entry, written again where it differs from what this build writes (a logon task's action and settings included)",
40
+ find: async (context) => {
41
+ if (context.supervisor === undefined || !ENTRY_SUPERVISORS.has(context.supervisor)) {
42
+ return [];
43
+ }
44
+ const launcher = machineLauncher();
45
+ if (!context.resident && !samePath(launcher[0], agentPath, context.platform)) {
46
+ return [{ what: "this agent's login entry", why: `only the installed agent (${agentPath}) checks it, not ${launcher[0]}` }];
47
+ }
48
+ const entry = autostart(MACHINE_AUTOSTART, launcher, context.log);
49
+ const found = loginEntryFinding(await entry.inspect(), async () => void (await entry.register({ repair: true })));
50
+ return found === undefined ? [] : [found];
51
+ },
52
+ };
53
+ const WINDOWS_RUN_KEY = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run";
54
+ export const runValueData = (output, name) => {
55
+ for (const line of output.split(/\r?\n/)) {
56
+ const match = /^\s*(\S.*?)\s+REG_\w+\s+(.*)$/.exec(line);
57
+ if (match?.[1] === name) {
58
+ return match[2]?.trim();
59
+ }
60
+ }
61
+ return undefined;
62
+ };
63
+ const readRunValue = (name) => {
64
+ const reg = join(process.env["SystemRoot"] ?? "C:\\Windows", "System32", "reg.exe");
65
+ const result = spawnSync(reg, ["query", WINDOWS_RUN_KEY, "/v", name], { encoding: "utf8", windowsHide: true, timeout: 30_000 });
66
+ return result.status === 0 ? runValueData(result.stdout, name) : undefined;
67
+ };
68
+ export const mutagenRunDecision = (reading) => {
69
+ if (reading.pairings instanceof Error) {
70
+ return reading.value === undefined
71
+ ? undefined
72
+ : { why: `sync.json does not read (${reading.pairings.message}), so whether a pairing needs it is not known` };
73
+ }
74
+ if (reading.pairings === 0) {
75
+ return reading.value === undefined ? undefined : "retire";
76
+ }
77
+ if (!reading.ownInUse) {
78
+ return undefined;
79
+ }
80
+ return reading.value?.toLowerCase().includes(reading.own.toLowerCase()) === true ? undefined : "repair";
81
+ };
82
+ const mutagenReading = async () => {
83
+ const own = ownMutagenPath();
84
+ return {
85
+ pairings: await readState().then((state) => state.pairings.length, (error) => (error instanceof Error ? error : new Error(String(error)))),
86
+ value: readRunValue(MUTAGEN_RUN_VALUE),
87
+ own,
88
+ ownInUse: existsSync(own),
89
+ };
90
+ };
91
+ const mutagenFinding = async (context, wanted) => {
92
+ if (context.platform !== "win32") {
93
+ return [];
94
+ }
95
+ const reading = await mutagenReading();
96
+ const decision = mutagenRunDecision(reading);
97
+ const what = `the "${MUTAGEN_RUN_VALUE}" Run value`;
98
+ if (decision === undefined || (typeof decision === "string" && decision !== wanted)) {
99
+ return [];
100
+ }
101
+ if (typeof decision === "object") {
102
+ return wanted === "retire" ? [{ what, why: decision.why }] : [];
103
+ }
104
+ return [
105
+ {
106
+ what,
107
+ act: decision === "retire"
108
+ ? async () => await Promise.resolve(clearWindowsRunValue(MUTAGEN_RUN_VALUE))
109
+ : async () => await Promise.resolve(registerMutagenAutostart(reading.own, machineLauncher(), context.log)),
110
+ },
111
+ ];
112
+ };
113
+ const mutagenRetire = {
114
+ id: "mutagen-autostart-unused",
115
+ kind: "login-entry",
116
+ action: "retire",
117
+ reason: "the Run value that starts this agent's Mutagen daemon at sign-in, once no pairing here needs Mutagen",
118
+ find: async (context) => await mutagenFinding(context, "retire"),
119
+ };
120
+ const mutagenRepair = {
121
+ id: "mutagen-autostart",
122
+ kind: "login-entry",
123
+ action: "repair",
124
+ reason: "the Run value that starts this agent's Mutagen daemon at sign-in, while a pairing here needs it",
125
+ find: async (context) => await mutagenFinding(context, "repair"),
126
+ };
127
+ export const LOGIN_ENTRIES = [ownLoginEntry, mutagenRetire, mutagenRepair];
128
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/upkeep/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { UpkeepEntry } from "./entry.js";
2
+ export declare const MANIFEST: readonly UpkeepEntry[];
3
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/upkeep/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAc9C,eAAO,MAAM,QAAQ,EAAE,SAAS,WAAW,EAAuF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { LOGIN_ENTRIES } from "./login.js";
2
+ import { RETENTION_ENTRIES } from "./retention.js";
3
+ import { RETIRED_ENTRIES } from "./retired.js";
4
+ import { SECOND_IC_ENTRIES } from "./second-ic.js";
5
+ export const MANIFEST = [...RETIRED_ENTRIES, ...LOGIN_ENTRIES, ...RETENTION_ENTRIES, ...SECOND_IC_ENTRIES];
6
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/upkeep/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAUnD,MAAM,CAAC,MAAM,QAAQ,GAA2B,CAAC,GAAG,eAAe,EAAE,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type Log } from "@intentic/local-agent";
2
+ import { type DeviceUpkeep } from "@intentic/sandbox-contract";
3
+ import { type Rounds } from "../device/sandbox-rounds/ic-rounds.js";
4
+ import type { UpkeepAction, UpkeepContext, UpkeepEntry } from "./entry.js";
5
+ export declare const UPKEEP_FIRST_MS = 60000;
6
+ export declare const UPKEEP_EVERY_MS: number;
7
+ export declare const upkeepPathOf: (base: string) => string;
8
+ export type UpkeepOutcome = "fixed" | "would-fix" | "skipped";
9
+ export interface UpkeepItem {
10
+ readonly id: string;
11
+ readonly kind: string;
12
+ readonly action: UpkeepAction;
13
+ readonly what: string;
14
+ readonly outcome: UpkeepOutcome;
15
+ readonly why?: string;
16
+ }
17
+ export interface UpkeepReport extends DeviceUpkeep {
18
+ readonly version: string;
19
+ }
20
+ export declare const reportOf: (items: readonly UpkeepItem[], at: number, version: string) => UpkeepReport;
21
+ export declare const summaryLine: (report: UpkeepReport, fix: boolean) => string;
22
+ export declare const reconcile: (entries: readonly UpkeepEntry[], context: UpkeepContext, { fix }: {
23
+ readonly fix: boolean;
24
+ }) => Promise<UpkeepItem[]>;
25
+ export interface UpkeepRun {
26
+ readonly report: UpkeepReport;
27
+ readonly items: readonly UpkeepItem[];
28
+ }
29
+ export interface UpkeepOptions {
30
+ readonly fix: boolean;
31
+ readonly resident: boolean;
32
+ readonly supervisor: string | undefined;
33
+ readonly log: Log;
34
+ readonly entries?: readonly UpkeepEntry[];
35
+ readonly home?: string;
36
+ readonly base?: string;
37
+ readonly now?: number;
38
+ readonly platform?: NodeJS.Platform;
39
+ }
40
+ export declare const runUpkeep: (options: UpkeepOptions) => Promise<UpkeepRun | {
41
+ readonly busy: number;
42
+ }>;
43
+ export declare const readUpkeepSummary: (base?: string) => Promise<DeviceUpkeep | undefined>;
44
+ export declare const startUpkeep: (log: Log, supervisor: string | undefined) => Rounds;
45
+ //# sourceMappingURL=reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/upkeep/reconcile.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,GAAG,EAAkB,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,KAAK,YAAY,EAA4C,MAAM,4BAA4B,CAAC;AAEzG,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,uCAAuC,CAAC;AAEjF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAU3E,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,eAAO,MAAM,eAAe,QAAkB,CAAC;AAE/C,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAmC,CAAC;AAMhF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAWD,eAAO,MAAM,QAAQ,UAAW,SAAS,UAAU,EAAE,MAAM,MAAM,WAAW,MAAM,KAAG,YAMnF,CAAC;AASH,eAAO,MAAM,WAAW,WAAY,YAAY,OAAO,OAAO,KAAG,MAchE,CAAC;AA8BF,eAAO,MAAM,SAAS,YACT,SAAS,WAAW,EAAE,WACtB,aAAa,WACb;IAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CAAE,KACnC,OAAO,CAAC,UAAU,EAAE,CAyCtB,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CACvC;AAID,eAAO,MAAM,SAAS,YAAmB,aAAa,KAAG,OAAO,CAAC,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA6BrG,CAAC;AAIF,eAAO,MAAM,iBAAiB,UAAgB,MAAM,KAAa,OAAO,CAAC,YAAY,GAAG,SAAS,CAehG,CAAC;AAGF,eAAO,MAAM,WAAW,QAAS,GAAG,cAAc,MAAM,GAAG,SAAS,KAAG,MAUlE,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { errorMessage } from "@intentic/base/errors";
4
+ import { writeFileAtomic } from "@intentic/base/fs";
5
+ import { claimPidFile, homeDir, releasePidFile } from "@intentic/local-agent";
6
+ import { DeviceUpkeepSchema, UPKEEP_SKIPPED_SHOWN } from "@intentic/sandbox-contract";
7
+ import { baseDir } from "../config.js";
8
+ import { startRounds } from "../device/sandbox-rounds/ic-rounds.js";
9
+ import { MACHINE_VERSION } from "../version.js";
10
+ import { MANIFEST } from "./manifest.js";
11
+ export const UPKEEP_FIRST_MS = 60_000;
12
+ export const UPKEEP_EVERY_MS = 6 * 60 * 60_000;
13
+ export const upkeepPathOf = (base) => join(base, "upkeep.json");
14
+ const markerOf = (base, entry) => join(base, "upkeep", entry.id);
15
+ const lockOf = (base) => join(base, "upkeep.pid");
16
+ const count = (items) => {
17
+ const counts = {};
18
+ for (const item of items) {
19
+ counts[item.kind] = (counts[item.kind] ?? 0) + 1;
20
+ }
21
+ return counts;
22
+ };
23
+ export const reportOf = (items, at, version) => ({
24
+ at,
25
+ version,
26
+ found: count(items),
27
+ fixed: count(items.filter((item) => item.outcome === "fixed")),
28
+ skipped: items.filter((item) => item.outcome === "skipped").map(({ kind, what, why }) => ({ kind, what, why: why ?? "" })),
29
+ });
30
+ const total = (counts) => Object.values(counts).reduce((sum, n) => sum + n, 0);
31
+ const byKind = (counts) => Object.entries(counts)
32
+ .map(([kind, n]) => `${kind} ${n}`)
33
+ .join(", ");
34
+ export const summaryLine = (report, fix) => {
35
+ const found = total(report.found);
36
+ if (found === 0) {
37
+ return "upkeep: nothing left over from older releases, and every store within its bounds.";
38
+ }
39
+ const done = fix ? `fixed ${total(report.fixed)}` : `would fix ${found - report.skipped.length}`;
40
+ const skipped = report.skipped.length === 0
41
+ ? ""
42
+ : `, skipped ${report.skipped.length}: ${report.skipped
43
+ .slice(0, 3)
44
+ .map((item) => `${item.what} (${item.why})`)
45
+ .join("; ")}${report.skipped.length > 3 ? `; and ${report.skipped.length - 3} more` : ""}`;
46
+ return `upkeep: found ${found} (${byKind(report.found)}), ${done}${skipped}`;
47
+ };
48
+ const done = async (entry, context, fix) => {
49
+ const marker = markerOf(context.base, entry);
50
+ if ((await readFile(marker, "utf8").catch(() => undefined)) !== undefined) {
51
+ return true;
52
+ }
53
+ const former = entry.formerMarker === undefined ? undefined : join(context.base, entry.formerMarker);
54
+ if (former === undefined || (await readFile(former, "utf8").catch(() => undefined)) === undefined) {
55
+ return false;
56
+ }
57
+ if (fix) {
58
+ await markDone(entry, context);
59
+ await rm(former, { force: true });
60
+ }
61
+ return true;
62
+ };
63
+ const markDone = async (entry, context) => {
64
+ await mkdir(join(context.base, "upkeep"), { recursive: true, mode: 0o700 });
65
+ await writeFile(markerOf(context.base, entry), `${new Date(context.now).toISOString()} ${MACHINE_VERSION}\n`, { mode: 0o600 });
66
+ };
67
+ export const reconcile = async (entries, context, { fix }) => {
68
+ const items = [];
69
+ for (const entry of entries) {
70
+ const line = { id: entry.id, kind: entry.kind, action: entry.action };
71
+ if (entry.once === true && (await done(entry, context, fix))) {
72
+ continue;
73
+ }
74
+ let found;
75
+ try {
76
+ found = await entry.find(context);
77
+ }
78
+ catch (error) {
79
+ items.push({ ...line, what: entry.id, outcome: "skipped", why: `could not look: ${errorMessage(error)}` });
80
+ continue;
81
+ }
82
+ let left = false;
83
+ for (const finding of found) {
84
+ if (finding.act === undefined) {
85
+ items.push({ ...line, what: finding.what, outcome: "skipped", why: finding.why ?? "left as it is" });
86
+ left = true;
87
+ }
88
+ else if (!fix) {
89
+ items.push({ ...line, what: finding.what, outcome: "would-fix" });
90
+ left = true;
91
+ }
92
+ else {
93
+ try {
94
+ await finding.act();
95
+ items.push({ ...line, what: finding.what, outcome: "fixed" });
96
+ }
97
+ catch (error) {
98
+ items.push({ ...line, what: finding.what, outcome: "skipped", why: errorMessage(error) });
99
+ left = true;
100
+ }
101
+ }
102
+ }
103
+ if (fix && entry.once === true && !left) {
104
+ await markDone(entry, context);
105
+ }
106
+ }
107
+ return items;
108
+ };
109
+ export const runUpkeep = async (options) => {
110
+ const base = options.base ?? baseDir;
111
+ const context = {
112
+ log: options.log,
113
+ now: options.now ?? Date.now(),
114
+ home: options.home ?? homeDir(),
115
+ base,
116
+ platform: options.platform ?? process.platform,
117
+ supervisor: options.supervisor,
118
+ resident: options.resident,
119
+ };
120
+ if (options.fix) {
121
+ const claim = await claimPidFile(lockOf(base), base, { pid: process.pid, build: MACHINE_VERSION });
122
+ if (!claim.claimed) {
123
+ return { busy: claim.holder.pid };
124
+ }
125
+ }
126
+ try {
127
+ const items = await reconcile(options.entries ?? MANIFEST, context, { fix: options.fix });
128
+ const report = reportOf(items, context.now, MACHINE_VERSION);
129
+ if (options.fix) {
130
+ await writeFileAtomic(upkeepPathOf(base), `${JSON.stringify(report, undefined, 2)}\n`, 0o600);
131
+ }
132
+ return { report, items };
133
+ }
134
+ finally {
135
+ if (options.fix) {
136
+ await releasePidFile(lockOf(base), process.pid);
137
+ }
138
+ }
139
+ };
140
+ export const readUpkeepSummary = async (base = baseDir) => {
141
+ const text = await readFile(upkeepPathOf(base), "utf8").catch(() => undefined);
142
+ if (text === undefined) {
143
+ return undefined;
144
+ }
145
+ let raw;
146
+ try {
147
+ raw = JSON.parse(text);
148
+ }
149
+ catch {
150
+ return undefined;
151
+ }
152
+ const parsed = DeviceUpkeepSchema.safeParse(raw);
153
+ return parsed.success ? { ...parsed.data, skipped: parsed.data.skipped.slice(0, UPKEEP_SKIPPED_SHOWN) } : undefined;
154
+ };
155
+ export const startUpkeep = (log, supervisor) => startRounds("upkeep", log, UPKEEP_FIRST_MS, () => UPKEEP_EVERY_MS, async () => {
156
+ const run = await runUpkeep({ fix: true, resident: true, supervisor, log });
157
+ log("busy" in run ? `upkeep: skipped this pass, a \`doctor --fix\` is running (pid ${run.busy}).` : summaryLine(run.report, true));
158
+ });
159
+ //# sourceMappingURL=reconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/upkeep/reconcile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { UpkeepEntry } from "./entry.js";
2
+ export declare const TRASH_KEEP_MS: number;
3
+ export declare const expiredTrash: (names: readonly string[], now: number) => {
4
+ readonly expired: readonly string[];
5
+ readonly undated: readonly string[];
6
+ };
7
+ export declare const PART_KEEP_MS: number;
8
+ export declare const isShimPart: (name: string) => boolean;
9
+ export declare const RETENTION_ENTRIES: readonly UpkeepEntry[];
10
+ //# sourceMappingURL=retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/upkeep/retention.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAQvD,eAAO,MAAM,aAAa,QAAwB,CAAC;AAInD,eAAO,MAAM,YAAY,UAAW,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAS9I,CAAC;AAwCF,eAAO,MAAM,YAAY,QAAmB,CAAC;AAC7C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,OAA4C,CAAC;AA4BvF,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAAyC,CAAC"}