@cortexkit/opencode-magic-context 0.49.15 → 0.49.17

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 (235) hide show
  1. package/dist/auto-search-worker.js +76 -63
  2. package/dist/chunk-embedding-write-worker.js +12 -10
  3. package/dist/{compaction-marker-candidates-v5c6997n.js → compaction-marker-candidates-n4krhat4.js} +2 -2
  4. package/dist/compaction-marker-candidates-worker.js +2 -2
  5. package/dist/config/schema/magic-context.d.ts +343 -343
  6. package/dist/config/schema/magic-context.d.ts.map +1 -1
  7. package/dist/{conflict-warning-hook-mgq17yr3.js → conflict-warning-hook-4pmz879v.js} +6 -6
  8. package/dist/{context-0m46day0.js → context-yhetp0kn.js} +297 -141
  9. package/dist/embedding-backfill-fmz50tsy.js +24 -0
  10. package/dist/embedding-worker-process.js +1 -1
  11. package/dist/embedding-worker.js +5 -5
  12. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +1 -1
  13. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  14. package/dist/features/magic-context/git-commits/indexer.d.ts.map +1 -1
  15. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  16. package/dist/features/magic-context/memory/project-identity-cache.d.ts +2 -0
  17. package/dist/features/magic-context/memory/project-identity-cache.d.ts.map +1 -1
  18. package/dist/features/magic-context/message-fts-rowid-map.d.ts +2 -2
  19. package/dist/features/magic-context/message-fts-rowid-map.d.ts.map +1 -1
  20. package/dist/features/magic-context/message-fts-session-filter.d.ts +2 -0
  21. package/dist/features/magic-context/message-fts-session-filter.d.ts.map +1 -1
  22. package/dist/features/magic-context/message-index-async.d.ts +1 -1
  23. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  24. package/dist/features/magic-context/message-index.d.ts +5 -0
  25. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  26. package/dist/features/magic-context/message-time-backfill.d.ts +2 -2
  27. package/dist/features/magic-context/message-time-backfill.d.ts.map +1 -1
  28. package/dist/features/magic-context/search.d.ts +6 -1
  29. package/dist/features/magic-context/search.d.ts.map +1 -1
  30. package/dist/features/magic-context/storage-db.d.ts +2 -1
  31. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  32. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  33. package/dist/features/magic-context/storage-meta-shared.d.ts +2 -2
  34. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
  35. package/dist/features/magic-context/storage-session-tables.d.ts +9 -1
  36. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  38. package/dist/hooks/magic-context/auto-search-deadline.d.ts +2 -1
  39. package/dist/hooks/magic-context/auto-search-deadline.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/auto-search-hint.d.ts +3 -0
  41. package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
  42. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  43. package/dist/hooks/magic-context/auto-search-worker-client.d.ts +10 -2
  44. package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
  45. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +4 -2
  46. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  48. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
  50. package/dist/hooks/magic-context/historian-host-runner.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/historian-prompt-fit.d.ts +2 -1
  52. package/dist/hooks/magic-context/historian-prompt-fit.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  54. package/dist/hooks/magic-context/lkg-recovery-fence.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +26 -0
  56. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -1
  57. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  58. package/dist/hooks/magic-context/recomp-orchestrator.d.ts +3 -3
  59. package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
  60. package/dist/hooks/magic-context/system-prompt-diagnostics.d.ts +8 -0
  61. package/dist/hooks/magic-context/system-prompt-diagnostics.d.ts.map +1 -0
  62. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  63. package/dist/hooks/magic-context/tag-messages.d.ts +6 -1
  64. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  65. package/dist/hooks/magic-context/todo-view.d.ts +2 -2
  66. package/dist/hooks/magic-context/tool-drop-target.d.ts +3 -2
  67. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  68. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  69. package/dist/hooks/magic-context/transform-stage-logger.d.ts +3 -0
  70. package/dist/hooks/magic-context/transform-stage-logger.d.ts.map +1 -1
  71. package/dist/hooks/magic-context/transform.d.ts +1 -0
  72. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  73. package/dist/{index-3kdm78zp.js → index-24fezq97.js} +4 -4
  74. package/dist/{index-a8bvhwqs.js → index-2vxtcb95.js} +32 -3
  75. package/dist/{index-f71thw8j.js → index-4s3t0nd0.js} +1 -1
  76. package/dist/{index-ts1hjk1h.js → index-4yt7dtf4.js} +453 -227
  77. package/dist/{index-mc1cqza6.js → index-5a1ex6x8.js} +5 -5
  78. package/dist/{index-fkx2qnvw.js → index-6x57ar45.js} +2 -2
  79. package/dist/{index-dyvbsvga.js → index-a6mc0v4d.js} +25 -11
  80. package/dist/{index-snp5wbge.js → index-a7c4r5re.js} +160 -749
  81. package/dist/{index-42vcjcwe.js → index-aabzay3h.js} +180 -103
  82. package/dist/{index-3kx0kg0f.js → index-b5vqckbw.js} +14 -8
  83. package/dist/{v2/server-wafzvyhg.js → index-beht37jy.js} +8 -0
  84. package/dist/{index-e20m7284.js → index-bjcnntmz.js} +3 -3
  85. package/dist/{index-hqkczed7.js → index-c5pytzne.js} +22 -2
  86. package/dist/{index-thvnpfsv.js → index-cwzfcbtq.js} +967 -88
  87. package/dist/{index-yxycg7fs.js → index-fb2qxs2y.js} +26 -18
  88. package/dist/{index-mht7bq0z.js → index-hqhm3wke.js} +32 -8
  89. package/dist/{index-e4dsjj1p.js → index-jn12fvvh.js} +1 -1
  90. package/dist/index-kaqs6h31.js +58 -0
  91. package/dist/{index-n6m03s3n.js → index-ke416mdc.js} +1 -1
  92. package/dist/index-kmdj7dsq.js +96 -0
  93. package/dist/{index-1d289pq2.js → index-kq82mtg0.js} +2 -2
  94. package/dist/{index-n78avt2p.js → index-n37sebck.js} +1 -1
  95. package/dist/{index-1vc7jrkg.js → index-nkpmm9q8.js} +3 -3
  96. package/dist/{index-944w16m0.js → index-p7m7j0cp.js} +25 -17
  97. package/dist/{index-wk0n1cgt.js → index-qn7xstt2.js} +2 -2
  98. package/dist/{index-saews2s3.js → index-rr2bb45z.js} +1 -1
  99. package/dist/{index-mmfa86mt.js → index-s734jcsr.js} +169 -149
  100. package/dist/{index-dgs16axy.js → index-s74zqahq.js} +1 -1
  101. package/dist/{index-bxdg2nbt.js → index-v8awdgvd.js} +4 -4
  102. package/dist/{index-xn6q9pg6.js → index-vrzjhftj.js} +36 -76
  103. package/dist/{index-1sarmj9z.js → index-wgypt3cs.js} +6 -6
  104. package/dist/{index-y1qysm3q.js → index-ze7mvk54.js} +11 -8
  105. package/dist/index.js +47 -45
  106. package/dist/message-fts-rowid-map-17s0dfn4.js +25 -0
  107. package/dist/{message-index-bounded-vtgpq6b4.js → message-index-bounded-1633vc7f.js} +17 -17
  108. package/dist/{message-index-a6gztaqx.js → message-index-dprebmtt.js} +15 -15
  109. package/dist/{message-time-backfill-qjge9044.js → message-time-backfill-73mmm76q.js} +5 -5
  110. package/dist/migration-worker.js +9 -7
  111. package/dist/plugin/dream-timer.d.ts +11 -0
  112. package/dist/plugin/dream-timer.d.ts.map +1 -1
  113. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  114. package/dist/{project-embedding-registry-x45bv3qr.js → project-embedding-registry-z74mhqkf.js} +12 -10
  115. package/dist/raw-ordinal-warmup-worker.js +40 -10
  116. package/dist/{read-session-chunk-3ae3nfdn.js → read-session-chunk-4zp09ejb.js} +9 -9
  117. package/dist/{read-session-raw-m56hc7v2.js → read-session-raw-rsc8c7qy.js} +2 -2
  118. package/dist/{recomp-orchestrator-nwzcfhx4.js → recomp-orchestrator-z3ecszx6.js} +26 -26
  119. package/dist/{search-deajrd90.js → search-6mee3vty.js} +23 -22
  120. package/dist/search-archive-znyy44ve.js +25 -0
  121. package/dist/{send-session-notification-24r4esbh.js → send-session-notification-6ve0e8p4.js} +5 -5
  122. package/dist/shared/historian-cache.d.ts +8 -0
  123. package/dist/shared/historian-cache.d.ts.map +1 -0
  124. package/dist/shared/model-suggestion-retry.d.ts +4 -0
  125. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  126. package/dist/shared/resolve-fallbacks.d.ts +3 -3
  127. package/dist/shared/rpc-discovery-cleanup.d.ts +3 -0
  128. package/dist/shared/rpc-discovery-cleanup.d.ts.map +1 -0
  129. package/dist/shared/rpc-server.d.ts +2 -0
  130. package/dist/shared/rpc-server.d.ts.map +1 -1
  131. package/dist/shared/search-text.d.ts +8 -0
  132. package/dist/shared/search-text.d.ts.map +1 -0
  133. package/dist/shared/sqlite.d.ts +4 -2
  134. package/dist/shared/sqlite.d.ts.map +1 -1
  135. package/dist/shared/storage-file-mutex.d.ts.map +1 -1
  136. package/dist/shared/subagent-runner.d.ts +2 -0
  137. package/dist/shared/subagent-runner.d.ts.map +1 -1
  138. package/dist/shared/system-directive.d.ts +2 -0
  139. package/dist/shared/system-directive.d.ts.map +1 -1
  140. package/dist/{sqlite-4pqyynrs.js → sqlite-zf72c52d.js} +1 -1
  141. package/dist/{storage-memory-j3v3hc83.js → storage-memory-y3qmy00r.js} +2 -2
  142. package/dist/{storage-tags-s5bg1ahx.js → storage-tags-8qns3012.js} +8 -4
  143. package/dist/tools/ctx-expand/search-archive.d.ts +5 -1
  144. package/dist/tools/ctx-expand/search-archive.d.ts.map +1 -1
  145. package/dist/{transform-postprocess-phase-ne3z1zmt.js → transform-postprocess-phase-3ydzxa62.js} +26 -26
  146. package/dist/v2/auto-search-worker.js +76 -63
  147. package/dist/v2/chunk-embedding-write-worker.js +12 -10
  148. package/dist/v2/{compaction-marker-candidates-1vqwr3s5.js → compaction-marker-candidates-ebx3388k.js} +2 -2
  149. package/dist/v2/compaction-marker-candidates-worker.js +2 -2
  150. package/dist/v2/{context-4qczzck7.js → context-jn3zpeqh.js} +909 -454
  151. package/dist/v2/embedding-backfill-7c7yr69y.js +23 -0
  152. package/dist/v2/embedding-worker-process.js +1 -1
  153. package/dist/v2/embedding-worker.js +5 -5
  154. package/dist/v2/fold/native-replay.d.ts +11 -2
  155. package/dist/v2/fold/native-replay.d.ts.map +1 -1
  156. package/dist/v2/fold/policy.d.ts.map +1 -1
  157. package/dist/v2/fold/restore.d.ts.map +1 -1
  158. package/dist/v2/hooks/context.d.ts.map +1 -1
  159. package/dist/v2/hooks/hidden-child.d.ts +8 -0
  160. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  161. package/dist/v2/hooks/types.d.ts +17 -0
  162. package/dist/v2/hooks/types.d.ts.map +1 -1
  163. package/dist/v2/message-fts-rowid-map-wfx67gfd.js +24 -0
  164. package/dist/v2/{message-index-bounded-rxxznd34.js → message-index-bounded-hpejqyd8.js} +17 -17
  165. package/dist/v2/{message-index-f947qtbz.js → message-index-pxehjpzx.js} +15 -15
  166. package/dist/v2/{message-time-backfill-bsteyc4d.js → message-time-backfill-04t0km1z.js} +5 -5
  167. package/dist/v2/migration-worker.js +9 -7
  168. package/dist/v2/{project-embedding-registry-0msp56p8.js → project-embedding-registry-gnkj56xp.js} +12 -10
  169. package/dist/v2/raw-ordinal-warmup-worker.js +40 -10
  170. package/dist/v2/{read-session-chunk-rq9nx1nn.js → read-session-chunk-zdppn4bj.js} +9 -9
  171. package/dist/v2/{read-session-raw-b3tf6ra1.js → read-session-raw-yaegtjzh.js} +2 -2
  172. package/dist/v2/{recomp-orchestrator-5zhxtwha.js → recomp-orchestrator-cmqnfpp3.js} +26 -26
  173. package/dist/v2/{search-n8wqxb1j.js → search-66842dya.js} +23 -22
  174. package/dist/v2/search-archive-gfh11vs0.js +24 -0
  175. package/dist/v2/{send-session-notification-8ghn9tnv.js → send-session-notification-3pxn658x.js} +5 -5
  176. package/dist/v2/{server-yrvqaswb.js → server-1wy7b9de.js} +25 -11
  177. package/dist/v2/{server-th4y11y7.js → server-271qxsf5.js} +6 -6
  178. package/dist/v2/{server-e298hswg.js → server-3rhpvy84.js} +967 -88
  179. package/dist/v2/{server-qhfvvfxj.js → server-46neh5fa.js} +14 -8
  180. package/dist/v2/{server-rrqpvwqd.js → server-6tmj0s7j.js} +2 -2
  181. package/dist/v2/{server-hek6z3w6.js → server-8by8qfec.js} +11 -8
  182. package/dist/v2/{server-vbe4se57.js → server-a9xqj88f.js} +1 -1
  183. package/dist/{index-wafzvyhg.js → v2/server-beht37jy.js} +8 -0
  184. package/dist/v2/{server-05xjtq6c.js → server-d04vrx0j.js} +1 -1
  185. package/dist/v2/server-ec4ca92p.js +96 -0
  186. package/dist/v2/{server-dd0tz6cn.js → server-fw7wrk01.js} +160 -750
  187. package/dist/v2/{server-zs8d0s3b.js → server-g3qma5c0.js} +1 -1
  188. package/dist/v2/{server-k2bzedxk.js → server-gpvay0xz.js} +2 -2
  189. package/dist/v2/{server-kmbarfmn.js → server-gtfhttbr.js} +26 -18
  190. package/dist/v2/{server-g10mdym6.js → server-h1v0pyxb.js} +3 -3
  191. package/dist/v2/{server-4gn3z5an.js → server-hy3d3vsx.js} +1 -1
  192. package/dist/v2/server-kaqs6h31.js +58 -0
  193. package/dist/v2/{server-ehyava47.js → server-kh7dpa1a.js} +25 -17
  194. package/dist/v2/{server-6cdy4rc0.js → server-my7k4eds.js} +4 -4
  195. package/dist/v2/{server-d8tj10db.js → server-n1prf1g6.js} +1 -1
  196. package/dist/v2/{server-n78avt2p.js → server-n37sebck.js} +1 -1
  197. package/dist/v2/{server-zc3e54vy.js → server-nj659894.js} +6 -6
  198. package/dist/v2/{server-gvkm8xaj.js → server-rmygf5pn.js} +32 -3
  199. package/dist/v2/{server-0ppsweh6.js → server-tgnbmwah.js} +22 -2
  200. package/dist/v2/{server-cfbr1s2x.js → server-vsw8tmm6.js} +36 -76
  201. package/dist/v2/{server-prg55b7k.js → server-xj136kt8.js} +23 -3
  202. package/dist/v2/{server-atbc19ab.js → server-zyzawhdw.js} +32 -8
  203. package/dist/v2/{server-ef89gdsx.js → server-zzkj2fch.js} +4 -4
  204. package/dist/v2/server.js +5 -5
  205. package/dist/v2/{sqlite-4pqyynrs.js → sqlite-zf72c52d.js} +1 -1
  206. package/dist/v2/{storage-memory-j3v3hc83.js → storage-memory-y3qmy00r.js} +2 -2
  207. package/dist/v2/{storage-tags-hcc2adpf.js → storage-tags-1h8k6ra9.js} +8 -4
  208. package/dist/v2/store-reader.d.ts +2 -0
  209. package/dist/v2/store-reader.d.ts.map +1 -1
  210. package/dist/v2/{wrapup-orchestrator-65pwye0d.js → wrapup-orchestrator-xs8redz9.js} +26 -26
  211. package/dist/wrapup-orchestrator-j7d7ry5b.js +48 -0
  212. package/package.json +1 -1
  213. package/src/config/latch-permanence-guard.test.ts +4 -0
  214. package/src/config/schema/magic-context.ts +14 -6
  215. package/src/shared/historian-cache.test.ts +69 -0
  216. package/src/shared/historian-cache.ts +55 -0
  217. package/src/shared/model-resolution.test.ts +22 -0
  218. package/src/shared/model-suggestion-retry.ts +11 -3
  219. package/src/shared/resolve-fallbacks.test.ts +2 -3
  220. package/src/shared/resolve-fallbacks.ts +3 -3
  221. package/src/shared/rpc-discovery-cleanup.test.ts +57 -0
  222. package/src/shared/rpc-discovery-cleanup.ts +57 -0
  223. package/src/shared/rpc-server.ts +36 -13
  224. package/src/shared/search-text.test.ts +47 -0
  225. package/src/shared/search-text.ts +63 -0
  226. package/src/shared/sqlite.test.ts +56 -0
  227. package/src/shared/sqlite.ts +51 -2
  228. package/src/shared/storage-file-mutex-review.test.ts +22 -2
  229. package/src/shared/storage-file-mutex.ts +11 -1
  230. package/src/shared/subagent-runner.ts +2 -0
  231. package/src/shared/system-directive.ts +19 -1
  232. package/src/shared/tag-transcript.ts +12 -4
  233. package/dist/embedding-backfill-5e1t5wha.js +0 -22
  234. package/dist/v2/embedding-backfill-jmaf8zrr.js +0 -21
  235. package/dist/wrapup-orchestrator-28xzsj5q.js +0 -48
@@ -6,7 +6,7 @@ import {
6
6
  } from "./index-j75v2476.js";
7
7
  import {
8
8
  inRootAsyncContext2
9
- } from "./index-wafzvyhg.js";
9
+ } from "./index-beht37jy.js";
10
10
  import {
11
11
  projectDirectoryKey
12
12
  } from "./index-knvkbfvh.js";
@@ -23,7 +23,7 @@ import path3 from "node:path";
23
23
 
24
24
  // src/features/magic-context/memory/project-identity-cache.ts
25
25
  import { createHash } from "node:crypto";
26
- import { readFileSync } from "node:fs";
26
+ import { promises as fs, readFileSync } from "node:fs";
27
27
  import path from "node:path";
28
28
  function cachePath(directory, storageDir = getMagicContextStorageDir()) {
29
29
  const hash = createHash("sha256").update(projectDirectoryKey(directory)).digest("hex");
@@ -43,6 +43,35 @@ function readRememberedGitIdentity(directory, storageDir) {
43
43
  } catch {}
44
44
  return;
45
45
  }
46
+ async function pruneMissingProjectIdentities(storageDir = getMagicContextStorageDir()) {
47
+ const directory = path.join(storageDir, "project-identities");
48
+ let removed = 0;
49
+ let entries;
50
+ try {
51
+ entries = await fs.readdir(directory);
52
+ } catch {
53
+ return 0;
54
+ }
55
+ for (const entry of entries) {
56
+ if (!/^[0-9a-f]{64}\.json$/.test(entry))
57
+ continue;
58
+ const file = path.join(directory, entry);
59
+ try {
60
+ const record = JSON.parse(await fs.readFile(file, "utf8"));
61
+ if (typeof record.directory !== "string" || !path.isAbsolute(record.directory) || cachePath(record.directory, storageDir) !== file || !/^git:[0-9a-f]{7,64}$/.test(record.identity))
62
+ continue;
63
+ try {
64
+ await fs.stat(record.directory);
65
+ } catch (error) {
66
+ if (error.code !== "ENOENT")
67
+ continue;
68
+ await fs.unlink(file);
69
+ removed++;
70
+ }
71
+ } catch {}
72
+ }
73
+ return removed;
74
+ }
46
75
 
47
76
  // src/features/magic-context/memory/unborn-head.ts
48
77
  import { readFileSync as readFileSync2, realpathSync, statSync } from "node:fs";
@@ -710,4 +739,4 @@ function setBootQuietPeriodForTests(startAtMs) {
710
739
  bootQuietUntilMs = startAtMs === null ? 0 : startAtMs + BOOT_QUIET_MS;
711
740
  }
712
741
 
713
- export { setHomeProjectPermission, shouldSkipHomeProjectMemory, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, isUserHomeDirectory, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, isUsableProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, setBootQuietPeriodForTests };
742
+ export { pruneMissingProjectIdentities, setHomeProjectPermission, shouldSkipHomeProjectMemory, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, isUserHomeDirectory, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, isUsableProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, setBootQuietPeriodForTests };
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  inRootAsyncContext2,
9
9
  getSqliteDatabasePath2
10
- } from "./index-wafzvyhg.js";
10
+ } from "./index-beht37jy.js";
11
11
 
12
12
  // src/features/magic-context/compaction-marker-candidates.ts
13
13
  import { existsSync, realpathSync } from "node:fs";