karajan-code 3.3.0 → 3.4.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 (747) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@karajan/core/README.md +42 -0
  3. package/node_modules/@karajan/core/package.json +38 -0
  4. package/node_modules/@karajan/core/src/atomic-write.js +43 -0
  5. package/node_modules/@karajan/core/src/cost/index.js +102 -0
  6. package/node_modules/@karajan/core/src/hu-snapshot.js +105 -0
  7. package/node_modules/@karajan/core/src/index.js +18 -0
  8. package/node_modules/@karajan/core/src/paths.js +123 -0
  9. package/node_modules/@karajan/core/src/plan-hu-ops.js +338 -0
  10. package/node_modules/@karajan/core/src/plan-id.js +45 -0
  11. package/node_modules/@karajan/core/src/plan-validation.js +82 -0
  12. package/node_modules/@karajan/core/src/port-check.js +45 -0
  13. package/node_modules/@karajan/core/src/pricing/index.js +64 -0
  14. package/node_modules/@karajan/core/src/pricing/model-pricing.json +28 -0
  15. package/node_modules/@karajan/core/src/process.js +188 -0
  16. package/node_modules/@karajan/core/src/run-registry.js +115 -0
  17. package/node_modules/@karajan/core/src/shared-paths.js +41 -0
  18. package/node_modules/@karajan/core/src/standby-scheduler.js +92 -0
  19. package/node_modules/@karajan/core/src/standby-store.js +168 -0
  20. package/node_modules/@karajan/core/src/vec-store.js +253 -0
  21. package/node_modules/@karajan/core/tests/atomic-write.test.js +30 -0
  22. package/node_modules/@karajan/core/tests/cost/index.test.js +89 -0
  23. package/node_modules/@karajan/core/tests/hu-snapshot.test.js +39 -0
  24. package/node_modules/@karajan/core/tests/paths.test.js +51 -0
  25. package/node_modules/@karajan/core/tests/plan-hu-ops.test.js +68 -0
  26. package/node_modules/@karajan/core/tests/plan-id.test.js +21 -0
  27. package/node_modules/@karajan/core/tests/plan-validation.test.js +39 -0
  28. package/node_modules/@karajan/core/tests/port-check.test.js +47 -0
  29. package/node_modules/@karajan/core/tests/pricing/index.test.js +95 -0
  30. package/node_modules/@karajan/core/tests/process.test.js +22 -0
  31. package/node_modules/@karajan/core/tests/run-registry.test.js +71 -0
  32. package/node_modules/@karajan/core/tests/shared-paths.test.js +30 -0
  33. package/node_modules/@karajan/core/tests/standby.test.js +66 -0
  34. package/node_modules/@karajan/core/tests/vec-store.test.js +98 -0
  35. package/node_modules/@karajan/core/vitest.config.js +12 -0
  36. package/node_modules/@sec-ant/readable-stream/LICENSE +21 -0
  37. package/node_modules/@sec-ant/readable-stream/README.md +230 -0
  38. package/node_modules/@sec-ant/readable-stream/dist/core/asyncIterablePrototype.d.ts +1 -0
  39. package/node_modules/@sec-ant/readable-stream/dist/core/asyncIterator.d.ts +27 -0
  40. package/node_modules/@sec-ant/readable-stream/dist/core/fromAnyIterable.d.ts +6 -0
  41. package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.d.ts +2 -0
  42. package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.js +5 -0
  43. package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.d.ts +2 -0
  44. package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.js +5 -0
  45. package/node_modules/@sec-ant/readable-stream/dist/index/index.d.ts +2 -0
  46. package/node_modules/@sec-ant/readable-stream/dist/index/index.js +8 -0
  47. package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.d.ts +1 -0
  48. package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.js +3 -0
  49. package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.d.ts +1 -0
  50. package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.js +2 -0
  51. package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.d.ts +2 -0
  52. package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.js +4 -0
  53. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.d.ts +1 -0
  54. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js +89 -0
  55. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.d.ts +1 -0
  56. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js +34 -0
  57. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.d.ts +2 -0
  58. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js +6 -0
  59. package/node_modules/@sec-ant/readable-stream/dist/types/async-iterator.d.ts +11 -0
  60. package/node_modules/@sec-ant/readable-stream/package.json +96 -0
  61. package/node_modules/@sindresorhus/merge-streams/index.d.ts +44 -0
  62. package/node_modules/@sindresorhus/merge-streams/index.js +265 -0
  63. package/node_modules/@sindresorhus/merge-streams/license +9 -0
  64. package/node_modules/@sindresorhus/merge-streams/package.json +49 -0
  65. package/node_modules/@sindresorhus/merge-streams/readme.md +53 -0
  66. package/node_modules/base64-js/LICENSE +21 -0
  67. package/node_modules/base64-js/README.md +34 -0
  68. package/node_modules/base64-js/base64js.min.js +1 -0
  69. package/node_modules/base64-js/index.d.ts +3 -0
  70. package/node_modules/base64-js/index.js +150 -0
  71. package/node_modules/base64-js/package.json +47 -0
  72. package/node_modules/better-sqlite3/LICENSE +21 -0
  73. package/node_modules/better-sqlite3/README.md +99 -0
  74. package/node_modules/better-sqlite3/binding.gyp +38 -0
  75. package/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  76. package/node_modules/better-sqlite3/deps/common.gypi +68 -0
  77. package/node_modules/better-sqlite3/deps/copy.js +31 -0
  78. package/node_modules/better-sqlite3/deps/defines.gypi +42 -0
  79. package/node_modules/better-sqlite3/deps/download.sh +123 -0
  80. package/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  81. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +268879 -0
  82. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +14335 -0
  83. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +739 -0
  84. package/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  85. package/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  86. package/node_modules/better-sqlite3/lib/database.js +90 -0
  87. package/node_modules/better-sqlite3/lib/index.js +3 -0
  88. package/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  89. package/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  90. package/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  91. package/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  92. package/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  93. package/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  94. package/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  95. package/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  96. package/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  97. package/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  98. package/node_modules/better-sqlite3/lib/util.js +12 -0
  99. package/node_modules/better-sqlite3/package.json +59 -0
  100. package/node_modules/better-sqlite3/src/addon.cpp +47 -0
  101. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +74 -0
  102. package/node_modules/better-sqlite3/src/objects/backup.cpp +120 -0
  103. package/node_modules/better-sqlite3/src/objects/backup.hpp +36 -0
  104. package/node_modules/better-sqlite3/src/objects/database.cpp +417 -0
  105. package/node_modules/better-sqlite3/src/objects/database.hpp +103 -0
  106. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +113 -0
  107. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +50 -0
  108. package/node_modules/better-sqlite3/src/objects/statement.cpp +383 -0
  109. package/node_modules/better-sqlite3/src/objects/statement.hpp +58 -0
  110. package/node_modules/better-sqlite3/src/util/bind-map.cpp +73 -0
  111. package/node_modules/better-sqlite3/src/util/binder.cpp +193 -0
  112. package/node_modules/better-sqlite3/src/util/constants.cpp +172 -0
  113. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +121 -0
  114. package/node_modules/better-sqlite3/src/util/custom-function.cpp +59 -0
  115. package/node_modules/better-sqlite3/src/util/custom-table.cpp +409 -0
  116. package/node_modules/better-sqlite3/src/util/data-converter.cpp +17 -0
  117. package/node_modules/better-sqlite3/src/util/data.cpp +194 -0
  118. package/node_modules/better-sqlite3/src/util/helpers.cpp +109 -0
  119. package/node_modules/better-sqlite3/src/util/macros.cpp +83 -0
  120. package/node_modules/better-sqlite3/src/util/query-macros.cpp +71 -0
  121. package/node_modules/better-sqlite3/src/util/row-builder.cpp +49 -0
  122. package/node_modules/bindings/LICENSE.md +22 -0
  123. package/node_modules/bindings/README.md +98 -0
  124. package/node_modules/bindings/bindings.js +221 -0
  125. package/node_modules/bindings/package.json +28 -0
  126. package/node_modules/bl/.travis.yml +17 -0
  127. package/node_modules/bl/BufferList.js +396 -0
  128. package/node_modules/bl/LICENSE.md +13 -0
  129. package/node_modules/bl/README.md +247 -0
  130. package/node_modules/bl/bl.js +84 -0
  131. package/node_modules/bl/package.json +37 -0
  132. package/node_modules/bl/test/convert.js +21 -0
  133. package/node_modules/bl/test/indexOf.js +492 -0
  134. package/node_modules/bl/test/isBufferList.js +32 -0
  135. package/node_modules/bl/test/test.js +869 -0
  136. package/node_modules/buffer/AUTHORS.md +70 -0
  137. package/node_modules/buffer/LICENSE +21 -0
  138. package/node_modules/buffer/README.md +410 -0
  139. package/node_modules/buffer/index.d.ts +186 -0
  140. package/node_modules/buffer/index.js +1817 -0
  141. package/node_modules/buffer/package.json +96 -0
  142. package/node_modules/chownr/LICENSE +15 -0
  143. package/node_modules/chownr/README.md +3 -0
  144. package/node_modules/chownr/chownr.js +167 -0
  145. package/node_modules/chownr/package.json +29 -0
  146. package/node_modules/cross-spawn/LICENSE +21 -0
  147. package/node_modules/cross-spawn/README.md +89 -0
  148. package/node_modules/cross-spawn/index.js +39 -0
  149. package/node_modules/cross-spawn/lib/enoent.js +59 -0
  150. package/node_modules/cross-spawn/lib/parse.js +91 -0
  151. package/node_modules/cross-spawn/lib/util/escape.js +47 -0
  152. package/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  153. package/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  154. package/node_modules/cross-spawn/package.json +73 -0
  155. package/node_modules/decompress-response/index.d.ts +22 -0
  156. package/node_modules/decompress-response/index.js +58 -0
  157. package/node_modules/decompress-response/license +9 -0
  158. package/node_modules/decompress-response/package.json +56 -0
  159. package/node_modules/decompress-response/readme.md +48 -0
  160. package/node_modules/deep-extend/CHANGELOG.md +46 -0
  161. package/node_modules/deep-extend/LICENSE +20 -0
  162. package/node_modules/deep-extend/README.md +91 -0
  163. package/node_modules/deep-extend/index.js +1 -0
  164. package/node_modules/deep-extend/lib/deep-extend.js +150 -0
  165. package/node_modules/deep-extend/package.json +62 -0
  166. package/node_modules/detect-libc/LICENSE +201 -0
  167. package/node_modules/detect-libc/README.md +163 -0
  168. package/node_modules/detect-libc/index.d.ts +14 -0
  169. package/node_modules/detect-libc/lib/detect-libc.js +313 -0
  170. package/node_modules/detect-libc/lib/elf.js +39 -0
  171. package/node_modules/detect-libc/lib/filesystem.js +51 -0
  172. package/node_modules/detect-libc/lib/process.js +24 -0
  173. package/node_modules/detect-libc/package.json +44 -0
  174. package/node_modules/end-of-stream/LICENSE +21 -0
  175. package/node_modules/end-of-stream/README.md +54 -0
  176. package/node_modules/end-of-stream/index.js +96 -0
  177. package/node_modules/end-of-stream/package.json +37 -0
  178. package/node_modules/execa/index.d.ts +27 -0
  179. package/node_modules/execa/index.js +28 -0
  180. package/node_modules/execa/lib/arguments/command.js +20 -0
  181. package/node_modules/execa/lib/arguments/cwd.js +39 -0
  182. package/node_modules/execa/lib/arguments/encoding-option.js +50 -0
  183. package/node_modules/execa/lib/arguments/escape.js +88 -0
  184. package/node_modules/execa/lib/arguments/fd-options.js +108 -0
  185. package/node_modules/execa/lib/arguments/file-url.js +25 -0
  186. package/node_modules/execa/lib/arguments/options.js +96 -0
  187. package/node_modules/execa/lib/arguments/shell.js +11 -0
  188. package/node_modules/execa/lib/arguments/specific.js +111 -0
  189. package/node_modules/execa/lib/convert/add.js +15 -0
  190. package/node_modules/execa/lib/convert/concurrent.js +33 -0
  191. package/node_modules/execa/lib/convert/duplex.js +69 -0
  192. package/node_modules/execa/lib/convert/iterable.js +34 -0
  193. package/node_modules/execa/lib/convert/readable.js +113 -0
  194. package/node_modules/execa/lib/convert/shared.js +46 -0
  195. package/node_modules/execa/lib/convert/writable.js +90 -0
  196. package/node_modules/execa/lib/io/contents.js +116 -0
  197. package/node_modules/execa/lib/io/input-sync.js +44 -0
  198. package/node_modules/execa/lib/io/iterate.js +110 -0
  199. package/node_modules/execa/lib/io/max-buffer.js +89 -0
  200. package/node_modules/execa/lib/io/output-async.js +80 -0
  201. package/node_modules/execa/lib/io/output-sync.js +135 -0
  202. package/node_modules/execa/lib/io/pipeline.js +48 -0
  203. package/node_modules/execa/lib/io/strip-newline.js +12 -0
  204. package/node_modules/execa/lib/ipc/array.js +4 -0
  205. package/node_modules/execa/lib/ipc/buffer-messages.js +47 -0
  206. package/node_modules/execa/lib/ipc/forward.js +56 -0
  207. package/node_modules/execa/lib/ipc/get-each.js +89 -0
  208. package/node_modules/execa/lib/ipc/get-one.js +69 -0
  209. package/node_modules/execa/lib/ipc/graceful.js +72 -0
  210. package/node_modules/execa/lib/ipc/incoming.js +79 -0
  211. package/node_modules/execa/lib/ipc/ipc-input.js +44 -0
  212. package/node_modules/execa/lib/ipc/methods.js +49 -0
  213. package/node_modules/execa/lib/ipc/outgoing.js +47 -0
  214. package/node_modules/execa/lib/ipc/reference.js +44 -0
  215. package/node_modules/execa/lib/ipc/send.js +91 -0
  216. package/node_modules/execa/lib/ipc/strict.js +113 -0
  217. package/node_modules/execa/lib/ipc/validation.js +111 -0
  218. package/node_modules/execa/lib/methods/bind.js +23 -0
  219. package/node_modules/execa/lib/methods/command.js +43 -0
  220. package/node_modules/execa/lib/methods/create.js +65 -0
  221. package/node_modules/execa/lib/methods/main-async.js +194 -0
  222. package/node_modules/execa/lib/methods/main-sync.js +163 -0
  223. package/node_modules/execa/lib/methods/node.js +51 -0
  224. package/node_modules/execa/lib/methods/parameters.js +31 -0
  225. package/node_modules/execa/lib/methods/promise.js +15 -0
  226. package/node_modules/execa/lib/methods/script.js +22 -0
  227. package/node_modules/execa/lib/methods/template.js +153 -0
  228. package/node_modules/execa/lib/pipe/abort.js +20 -0
  229. package/node_modules/execa/lib/pipe/pipe-arguments.js +91 -0
  230. package/node_modules/execa/lib/pipe/sequence.js +24 -0
  231. package/node_modules/execa/lib/pipe/setup.js +72 -0
  232. package/node_modules/execa/lib/pipe/streaming.js +51 -0
  233. package/node_modules/execa/lib/pipe/throw.js +58 -0
  234. package/node_modules/execa/lib/resolve/all-async.js +46 -0
  235. package/node_modules/execa/lib/resolve/all-sync.js +33 -0
  236. package/node_modules/execa/lib/resolve/exit-async.js +54 -0
  237. package/node_modules/execa/lib/resolve/exit-sync.js +25 -0
  238. package/node_modules/execa/lib/resolve/stdio.js +47 -0
  239. package/node_modules/execa/lib/resolve/wait-stream.js +96 -0
  240. package/node_modules/execa/lib/resolve/wait-subprocess.js +146 -0
  241. package/node_modules/execa/lib/return/duration.js +8 -0
  242. package/node_modules/execa/lib/return/early-error.js +60 -0
  243. package/node_modules/execa/lib/return/final-error.js +40 -0
  244. package/node_modules/execa/lib/return/message.js +157 -0
  245. package/node_modules/execa/lib/return/reject.js +13 -0
  246. package/node_modules/execa/lib/return/result.js +186 -0
  247. package/node_modules/execa/lib/stdio/direction.js +76 -0
  248. package/node_modules/execa/lib/stdio/duplicate.js +116 -0
  249. package/node_modules/execa/lib/stdio/handle-async.js +52 -0
  250. package/node_modules/execa/lib/stdio/handle-sync.js +57 -0
  251. package/node_modules/execa/lib/stdio/handle.js +214 -0
  252. package/node_modules/execa/lib/stdio/input-option.js +50 -0
  253. package/node_modules/execa/lib/stdio/native.js +106 -0
  254. package/node_modules/execa/lib/stdio/stdio-option.js +60 -0
  255. package/node_modules/execa/lib/stdio/type.js +173 -0
  256. package/node_modules/execa/lib/terminate/cancel.js +20 -0
  257. package/node_modules/execa/lib/terminate/cleanup.js +16 -0
  258. package/node_modules/execa/lib/terminate/graceful.js +71 -0
  259. package/node_modules/execa/lib/terminate/kill.js +93 -0
  260. package/node_modules/execa/lib/terminate/signal.js +70 -0
  261. package/node_modules/execa/lib/terminate/timeout.js +21 -0
  262. package/node_modules/execa/lib/transform/encoding-transform.js +51 -0
  263. package/node_modules/execa/lib/transform/generator.js +107 -0
  264. package/node_modules/execa/lib/transform/normalize.js +111 -0
  265. package/node_modules/execa/lib/transform/object-mode.js +41 -0
  266. package/node_modules/execa/lib/transform/run-async.js +60 -0
  267. package/node_modules/execa/lib/transform/run-sync.js +50 -0
  268. package/node_modules/execa/lib/transform/split.js +110 -0
  269. package/node_modules/execa/lib/transform/validate.js +43 -0
  270. package/node_modules/execa/lib/utils/abort-signal.js +8 -0
  271. package/node_modules/execa/lib/utils/deferred.js +7 -0
  272. package/node_modules/execa/lib/utils/max-listeners.js +14 -0
  273. package/node_modules/execa/lib/utils/standard-stream.js +6 -0
  274. package/node_modules/execa/lib/utils/uint-array.js +69 -0
  275. package/node_modules/execa/lib/verbose/complete.js +24 -0
  276. package/node_modules/execa/lib/verbose/custom.js +26 -0
  277. package/node_modules/execa/lib/verbose/default.js +54 -0
  278. package/node_modules/execa/lib/verbose/error.js +13 -0
  279. package/node_modules/execa/lib/verbose/info.js +39 -0
  280. package/node_modules/execa/lib/verbose/ipc.js +15 -0
  281. package/node_modules/execa/lib/verbose/log.js +54 -0
  282. package/node_modules/execa/lib/verbose/output.js +60 -0
  283. package/node_modules/execa/lib/verbose/start.js +15 -0
  284. package/node_modules/execa/lib/verbose/values.js +33 -0
  285. package/node_modules/execa/license +9 -0
  286. package/node_modules/execa/package.json +105 -0
  287. package/node_modules/execa/readme.md +461 -0
  288. package/node_modules/execa/types/arguments/encoding-option.d.ts +19 -0
  289. package/node_modules/execa/types/arguments/fd-options.d.ts +8 -0
  290. package/node_modules/execa/types/arguments/options.d.ts +400 -0
  291. package/node_modules/execa/types/arguments/specific.d.ts +52 -0
  292. package/node_modules/execa/types/convert.d.ts +58 -0
  293. package/node_modules/execa/types/ipc.d.ts +156 -0
  294. package/node_modules/execa/types/methods/command.d.ts +114 -0
  295. package/node_modules/execa/types/methods/main-async.d.ts +379 -0
  296. package/node_modules/execa/types/methods/main-sync.d.ts +59 -0
  297. package/node_modules/execa/types/methods/node.d.ts +62 -0
  298. package/node_modules/execa/types/methods/script.d.ts +115 -0
  299. package/node_modules/execa/types/methods/template.d.ts +18 -0
  300. package/node_modules/execa/types/pipe.d.ts +58 -0
  301. package/node_modules/execa/types/return/final-error.d.ts +51 -0
  302. package/node_modules/execa/types/return/ignore.d.ts +26 -0
  303. package/node_modules/execa/types/return/result-all.d.ts +30 -0
  304. package/node_modules/execa/types/return/result-ipc.d.ts +27 -0
  305. package/node_modules/execa/types/return/result-stdio.d.ts +17 -0
  306. package/node_modules/execa/types/return/result-stdout.d.ts +50 -0
  307. package/node_modules/execa/types/return/result.d.ts +203 -0
  308. package/node_modules/execa/types/stdio/array.d.ts +16 -0
  309. package/node_modules/execa/types/stdio/direction.d.ts +12 -0
  310. package/node_modules/execa/types/stdio/option.d.ts +40 -0
  311. package/node_modules/execa/types/stdio/type.d.ts +170 -0
  312. package/node_modules/execa/types/subprocess/all.d.ts +17 -0
  313. package/node_modules/execa/types/subprocess/stdio.d.ts +18 -0
  314. package/node_modules/execa/types/subprocess/stdout.d.ts +22 -0
  315. package/node_modules/execa/types/subprocess/subprocess.d.ts +117 -0
  316. package/node_modules/execa/types/transform/normalize.d.ts +57 -0
  317. package/node_modules/execa/types/transform/object-mode.d.ts +21 -0
  318. package/node_modules/execa/types/utils.d.ts +13 -0
  319. package/node_modules/execa/types/verbose.d.ts +98 -0
  320. package/node_modules/expand-template/.travis.yml +6 -0
  321. package/node_modules/expand-template/LICENSE +21 -0
  322. package/node_modules/expand-template/README.md +43 -0
  323. package/node_modules/expand-template/index.js +26 -0
  324. package/node_modules/expand-template/package.json +29 -0
  325. package/node_modules/expand-template/test.js +67 -0
  326. package/node_modules/figures/index.d.ts +279 -0
  327. package/node_modules/figures/index.js +292 -0
  328. package/node_modules/figures/license +9 -0
  329. package/node_modules/figures/package.json +49 -0
  330. package/node_modules/figures/readme.md +337 -0
  331. package/node_modules/file-uri-to-path/.npmignore +1 -0
  332. package/node_modules/file-uri-to-path/.travis.yml +30 -0
  333. package/node_modules/file-uri-to-path/History.md +21 -0
  334. package/node_modules/file-uri-to-path/LICENSE +20 -0
  335. package/node_modules/file-uri-to-path/README.md +74 -0
  336. package/node_modules/file-uri-to-path/index.d.ts +2 -0
  337. package/node_modules/file-uri-to-path/index.js +66 -0
  338. package/node_modules/file-uri-to-path/package.json +32 -0
  339. package/node_modules/file-uri-to-path/test/test.js +24 -0
  340. package/node_modules/file-uri-to-path/test/tests.json +13 -0
  341. package/node_modules/fs-constants/LICENSE +21 -0
  342. package/node_modules/fs-constants/README.md +26 -0
  343. package/node_modules/fs-constants/browser.js +1 -0
  344. package/node_modules/fs-constants/index.js +1 -0
  345. package/node_modules/fs-constants/package.json +19 -0
  346. package/node_modules/get-stream/license +9 -0
  347. package/node_modules/get-stream/package.json +60 -0
  348. package/node_modules/get-stream/readme.md +303 -0
  349. package/node_modules/get-stream/source/array-buffer.js +84 -0
  350. package/node_modules/get-stream/source/array.js +32 -0
  351. package/node_modules/get-stream/source/buffer.js +19 -0
  352. package/node_modules/get-stream/source/contents.js +121 -0
  353. package/node_modules/get-stream/source/exports.js +5 -0
  354. package/node_modules/get-stream/source/index.d.ts +121 -0
  355. package/node_modules/get-stream/source/index.js +13 -0
  356. package/node_modules/get-stream/source/stream.js +65 -0
  357. package/node_modules/get-stream/source/string.js +41 -0
  358. package/node_modules/get-stream/source/utils.js +11 -0
  359. package/node_modules/github-from-package/.travis.yml +4 -0
  360. package/node_modules/github-from-package/LICENSE +18 -0
  361. package/node_modules/github-from-package/example/package.json +8 -0
  362. package/node_modules/github-from-package/example/url.js +3 -0
  363. package/node_modules/github-from-package/index.js +17 -0
  364. package/node_modules/github-from-package/package.json +30 -0
  365. package/node_modules/github-from-package/readme.markdown +53 -0
  366. package/node_modules/github-from-package/test/a.json +8 -0
  367. package/node_modules/github-from-package/test/b.json +5 -0
  368. package/node_modules/github-from-package/test/c.json +5 -0
  369. package/node_modules/github-from-package/test/d.json +7 -0
  370. package/node_modules/github-from-package/test/e.json +5 -0
  371. package/node_modules/github-from-package/test/url.js +19 -0
  372. package/node_modules/human-signals/LICENSE +201 -0
  373. package/node_modules/human-signals/README.md +171 -0
  374. package/node_modules/human-signals/build/src/core.js +273 -0
  375. package/node_modules/human-signals/build/src/main.d.ts +206 -0
  376. package/node_modules/human-signals/build/src/main.js +70 -0
  377. package/node_modules/human-signals/build/src/realtime.js +16 -0
  378. package/node_modules/human-signals/build/src/signals.js +34 -0
  379. package/node_modules/human-signals/package.json +66 -0
  380. package/node_modules/ieee754/LICENSE +11 -0
  381. package/node_modules/ieee754/README.md +51 -0
  382. package/node_modules/ieee754/index.d.ts +10 -0
  383. package/node_modules/ieee754/index.js +85 -0
  384. package/node_modules/ieee754/package.json +52 -0
  385. package/node_modules/inherits/LICENSE +16 -0
  386. package/node_modules/inherits/README.md +42 -0
  387. package/node_modules/inherits/inherits.js +9 -0
  388. package/node_modules/inherits/inherits_browser.js +27 -0
  389. package/node_modules/inherits/package.json +29 -0
  390. package/node_modules/ini/LICENSE +15 -0
  391. package/node_modules/ini/README.md +102 -0
  392. package/node_modules/ini/ini.js +206 -0
  393. package/node_modules/ini/package.json +33 -0
  394. package/node_modules/is-plain-obj/index.d.ts +35 -0
  395. package/node_modules/is-plain-obj/index.js +8 -0
  396. package/node_modules/is-plain-obj/license +9 -0
  397. package/node_modules/is-plain-obj/package.json +41 -0
  398. package/node_modules/is-plain-obj/readme.md +58 -0
  399. package/node_modules/is-stream/index.d.ts +90 -0
  400. package/node_modules/is-stream/index.js +37 -0
  401. package/node_modules/is-stream/license +9 -0
  402. package/node_modules/is-stream/package.json +48 -0
  403. package/node_modules/is-stream/readme.md +57 -0
  404. package/node_modules/is-unicode-supported/index.d.ts +12 -0
  405. package/node_modules/is-unicode-supported/index.js +21 -0
  406. package/node_modules/is-unicode-supported/license +9 -0
  407. package/node_modules/is-unicode-supported/package.json +47 -0
  408. package/node_modules/is-unicode-supported/readme.md +35 -0
  409. package/node_modules/isexe/.npmignore +2 -0
  410. package/node_modules/isexe/LICENSE +15 -0
  411. package/node_modules/isexe/README.md +51 -0
  412. package/node_modules/isexe/index.js +57 -0
  413. package/node_modules/isexe/mode.js +41 -0
  414. package/node_modules/isexe/package.json +31 -0
  415. package/node_modules/isexe/test/basic.js +221 -0
  416. package/node_modules/isexe/windows.js +42 -0
  417. package/node_modules/mimic-response/index.d.ts +17 -0
  418. package/node_modules/mimic-response/index.js +77 -0
  419. package/node_modules/mimic-response/license +9 -0
  420. package/node_modules/mimic-response/package.json +42 -0
  421. package/node_modules/mimic-response/readme.md +78 -0
  422. package/node_modules/minimist/.eslintrc +29 -0
  423. package/node_modules/minimist/.github/FUNDING.yml +12 -0
  424. package/node_modules/minimist/.nycrc +14 -0
  425. package/node_modules/minimist/CHANGELOG.md +298 -0
  426. package/node_modules/minimist/LICENSE +18 -0
  427. package/node_modules/minimist/README.md +121 -0
  428. package/node_modules/minimist/example/parse.js +4 -0
  429. package/node_modules/minimist/index.js +263 -0
  430. package/node_modules/minimist/package.json +75 -0
  431. package/node_modules/minimist/test/all_bool.js +34 -0
  432. package/node_modules/minimist/test/bool.js +177 -0
  433. package/node_modules/minimist/test/dash.js +43 -0
  434. package/node_modules/minimist/test/default_bool.js +37 -0
  435. package/node_modules/minimist/test/dotted.js +24 -0
  436. package/node_modules/minimist/test/kv_short.js +32 -0
  437. package/node_modules/minimist/test/long.js +33 -0
  438. package/node_modules/minimist/test/num.js +38 -0
  439. package/node_modules/minimist/test/parse.js +209 -0
  440. package/node_modules/minimist/test/parse_modified.js +11 -0
  441. package/node_modules/minimist/test/proto.js +64 -0
  442. package/node_modules/minimist/test/short.js +69 -0
  443. package/node_modules/minimist/test/stop_early.js +17 -0
  444. package/node_modules/minimist/test/unknown.js +104 -0
  445. package/node_modules/minimist/test/whitespace.js +10 -0
  446. package/node_modules/mkdirp-classic/LICENSE +21 -0
  447. package/node_modules/mkdirp-classic/README.md +18 -0
  448. package/node_modules/mkdirp-classic/index.js +98 -0
  449. package/node_modules/mkdirp-classic/package.json +18 -0
  450. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  451. package/node_modules/napi-build-utils/LICENSE +21 -0
  452. package/node_modules/napi-build-utils/README.md +52 -0
  453. package/node_modules/napi-build-utils/index.js +214 -0
  454. package/node_modules/napi-build-utils/index.md +0 -0
  455. package/node_modules/napi-build-utils/package.json +42 -0
  456. package/node_modules/node-abi/LICENSE +21 -0
  457. package/node_modules/node-abi/README.md +54 -0
  458. package/node_modules/node-abi/abi_registry.json +446 -0
  459. package/node_modules/node-abi/index.js +179 -0
  460. package/node_modules/node-abi/package.json +45 -0
  461. package/node_modules/npm-run-path/index.d.ts +90 -0
  462. package/node_modules/npm-run-path/index.js +55 -0
  463. package/node_modules/npm-run-path/license +9 -0
  464. package/node_modules/npm-run-path/node_modules/path-key/index.d.ts +31 -0
  465. package/node_modules/npm-run-path/node_modules/path-key/index.js +12 -0
  466. package/node_modules/npm-run-path/node_modules/path-key/license +9 -0
  467. package/node_modules/npm-run-path/node_modules/path-key/package.json +41 -0
  468. package/node_modules/npm-run-path/node_modules/path-key/readme.md +57 -0
  469. package/node_modules/npm-run-path/package.json +52 -0
  470. package/node_modules/npm-run-path/readme.md +104 -0
  471. package/node_modules/once/LICENSE +15 -0
  472. package/node_modules/once/README.md +79 -0
  473. package/node_modules/once/once.js +42 -0
  474. package/node_modules/once/package.json +33 -0
  475. package/node_modules/parse-ms/index.d.ts +30 -0
  476. package/node_modules/parse-ms/index.js +45 -0
  477. package/node_modules/parse-ms/license +9 -0
  478. package/node_modules/parse-ms/package.json +47 -0
  479. package/node_modules/parse-ms/readme.md +46 -0
  480. package/node_modules/path-key/index.d.ts +40 -0
  481. package/node_modules/path-key/index.js +16 -0
  482. package/node_modules/path-key/license +9 -0
  483. package/node_modules/path-key/package.json +39 -0
  484. package/node_modules/path-key/readme.md +61 -0
  485. package/node_modules/prebuild-install/CHANGELOG.md +131 -0
  486. package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  487. package/node_modules/prebuild-install/LICENSE +21 -0
  488. package/node_modules/prebuild-install/README.md +163 -0
  489. package/node_modules/prebuild-install/asset.js +44 -0
  490. package/node_modules/prebuild-install/bin.js +78 -0
  491. package/node_modules/prebuild-install/download.js +142 -0
  492. package/node_modules/prebuild-install/error.js +14 -0
  493. package/node_modules/prebuild-install/help.txt +16 -0
  494. package/node_modules/prebuild-install/index.js +1 -0
  495. package/node_modules/prebuild-install/log.js +33 -0
  496. package/node_modules/prebuild-install/package.json +67 -0
  497. package/node_modules/prebuild-install/proxy.js +35 -0
  498. package/node_modules/prebuild-install/rc.js +64 -0
  499. package/node_modules/prebuild-install/util.js +143 -0
  500. package/node_modules/pretty-ms/index.d.ts +157 -0
  501. package/node_modules/pretty-ms/index.js +149 -0
  502. package/node_modules/pretty-ms/license +9 -0
  503. package/node_modules/pretty-ms/package.json +55 -0
  504. package/node_modules/pretty-ms/readme.md +179 -0
  505. package/node_modules/pump/.github/FUNDING.yml +2 -0
  506. package/node_modules/pump/.travis.yml +5 -0
  507. package/node_modules/pump/LICENSE +21 -0
  508. package/node_modules/pump/README.md +74 -0
  509. package/node_modules/pump/SECURITY.md +5 -0
  510. package/node_modules/pump/empty.js +1 -0
  511. package/node_modules/pump/index.js +86 -0
  512. package/node_modules/pump/package.json +30 -0
  513. package/node_modules/pump/test-browser.js +66 -0
  514. package/node_modules/pump/test-node.js +53 -0
  515. package/node_modules/rc/LICENSE.APACHE2 +15 -0
  516. package/node_modules/rc/LICENSE.BSD +26 -0
  517. package/node_modules/rc/LICENSE.MIT +24 -0
  518. package/node_modules/rc/README.md +227 -0
  519. package/node_modules/rc/browser.js +7 -0
  520. package/node_modules/rc/cli.js +4 -0
  521. package/node_modules/rc/index.js +53 -0
  522. package/node_modules/rc/lib/utils.js +104 -0
  523. package/node_modules/rc/package.json +29 -0
  524. package/node_modules/rc/test/ini.js +16 -0
  525. package/node_modules/rc/test/nested-env-vars.js +50 -0
  526. package/node_modules/rc/test/test.js +59 -0
  527. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  528. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  529. package/node_modules/readable-stream/LICENSE +47 -0
  530. package/node_modules/readable-stream/README.md +106 -0
  531. package/node_modules/readable-stream/errors-browser.js +127 -0
  532. package/node_modules/readable-stream/errors.js +116 -0
  533. package/node_modules/readable-stream/experimentalWarning.js +17 -0
  534. package/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  535. package/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  536. package/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  537. package/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  538. package/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  539. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  540. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  541. package/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  542. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  543. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  544. package/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  545. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  546. package/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  547. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  548. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  549. package/node_modules/readable-stream/package.json +68 -0
  550. package/node_modules/readable-stream/readable-browser.js +9 -0
  551. package/node_modules/readable-stream/readable.js +16 -0
  552. package/node_modules/safe-buffer/LICENSE +21 -0
  553. package/node_modules/safe-buffer/README.md +584 -0
  554. package/node_modules/safe-buffer/index.d.ts +187 -0
  555. package/node_modules/safe-buffer/index.js +65 -0
  556. package/node_modules/safe-buffer/package.json +51 -0
  557. package/node_modules/semver/LICENSE +15 -0
  558. package/node_modules/semver/README.md +665 -0
  559. package/node_modules/semver/bin/semver.js +191 -0
  560. package/node_modules/semver/classes/comparator.js +143 -0
  561. package/node_modules/semver/classes/index.js +7 -0
  562. package/node_modules/semver/classes/range.js +557 -0
  563. package/node_modules/semver/classes/semver.js +333 -0
  564. package/node_modules/semver/functions/clean.js +8 -0
  565. package/node_modules/semver/functions/cmp.js +54 -0
  566. package/node_modules/semver/functions/coerce.js +62 -0
  567. package/node_modules/semver/functions/compare-build.js +9 -0
  568. package/node_modules/semver/functions/compare-loose.js +5 -0
  569. package/node_modules/semver/functions/compare.js +7 -0
  570. package/node_modules/semver/functions/diff.js +60 -0
  571. package/node_modules/semver/functions/eq.js +5 -0
  572. package/node_modules/semver/functions/gt.js +5 -0
  573. package/node_modules/semver/functions/gte.js +5 -0
  574. package/node_modules/semver/functions/inc.js +21 -0
  575. package/node_modules/semver/functions/lt.js +5 -0
  576. package/node_modules/semver/functions/lte.js +5 -0
  577. package/node_modules/semver/functions/major.js +5 -0
  578. package/node_modules/semver/functions/minor.js +5 -0
  579. package/node_modules/semver/functions/neq.js +5 -0
  580. package/node_modules/semver/functions/parse.js +18 -0
  581. package/node_modules/semver/functions/patch.js +5 -0
  582. package/node_modules/semver/functions/prerelease.js +8 -0
  583. package/node_modules/semver/functions/rcompare.js +5 -0
  584. package/node_modules/semver/functions/rsort.js +5 -0
  585. package/node_modules/semver/functions/satisfies.js +12 -0
  586. package/node_modules/semver/functions/sort.js +5 -0
  587. package/node_modules/semver/functions/valid.js +8 -0
  588. package/node_modules/semver/index.js +91 -0
  589. package/node_modules/semver/internal/constants.js +37 -0
  590. package/node_modules/semver/internal/debug.js +11 -0
  591. package/node_modules/semver/internal/identifiers.js +29 -0
  592. package/node_modules/semver/internal/lrucache.js +42 -0
  593. package/node_modules/semver/internal/parse-options.js +17 -0
  594. package/node_modules/semver/internal/re.js +223 -0
  595. package/node_modules/semver/package.json +78 -0
  596. package/node_modules/semver/preload.js +4 -0
  597. package/node_modules/semver/range.bnf +16 -0
  598. package/node_modules/semver/ranges/gtr.js +6 -0
  599. package/node_modules/semver/ranges/intersects.js +9 -0
  600. package/node_modules/semver/ranges/ltr.js +6 -0
  601. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  602. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  603. package/node_modules/semver/ranges/min-version.js +63 -0
  604. package/node_modules/semver/ranges/outside.js +82 -0
  605. package/node_modules/semver/ranges/simplify.js +49 -0
  606. package/node_modules/semver/ranges/subset.js +249 -0
  607. package/node_modules/semver/ranges/to-comparators.js +10 -0
  608. package/node_modules/semver/ranges/valid.js +13 -0
  609. package/node_modules/shebang-command/index.js +19 -0
  610. package/node_modules/shebang-command/license +9 -0
  611. package/node_modules/shebang-command/package.json +34 -0
  612. package/node_modules/shebang-command/readme.md +34 -0
  613. package/node_modules/shebang-regex/index.d.ts +22 -0
  614. package/node_modules/shebang-regex/index.js +2 -0
  615. package/node_modules/shebang-regex/license +9 -0
  616. package/node_modules/shebang-regex/package.json +35 -0
  617. package/node_modules/shebang-regex/readme.md +33 -0
  618. package/node_modules/signal-exit/LICENSE.txt +16 -0
  619. package/node_modules/signal-exit/README.md +74 -0
  620. package/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
  621. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  622. package/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  623. package/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  624. package/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
  625. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  626. package/node_modules/signal-exit/dist/cjs/index.js +279 -0
  627. package/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  628. package/node_modules/signal-exit/dist/cjs/package.json +3 -0
  629. package/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
  630. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  631. package/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  632. package/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  633. package/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
  634. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  635. package/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  636. package/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  637. package/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
  638. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  639. package/node_modules/signal-exit/dist/mjs/index.js +275 -0
  640. package/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  641. package/node_modules/signal-exit/dist/mjs/package.json +3 -0
  642. package/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
  643. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  644. package/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  645. package/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  646. package/node_modules/signal-exit/package.json +106 -0
  647. package/node_modules/simple-concat/.travis.yml +3 -0
  648. package/node_modules/simple-concat/LICENSE +20 -0
  649. package/node_modules/simple-concat/README.md +44 -0
  650. package/node_modules/simple-concat/index.js +15 -0
  651. package/node_modules/simple-concat/package.json +47 -0
  652. package/node_modules/simple-concat/test/basic.js +41 -0
  653. package/node_modules/simple-get/.github/dependabot.yml +15 -0
  654. package/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  655. package/node_modules/simple-get/LICENSE +20 -0
  656. package/node_modules/simple-get/README.md +333 -0
  657. package/node_modules/simple-get/index.js +108 -0
  658. package/node_modules/simple-get/package.json +67 -0
  659. package/node_modules/sqlite-vec/README.md +1 -0
  660. package/node_modules/sqlite-vec/index.cjs +46 -0
  661. package/node_modules/sqlite-vec/index.d.ts +17 -0
  662. package/node_modules/sqlite-vec/index.mjs +47 -0
  663. package/node_modules/sqlite-vec/package.json +1 -0
  664. package/node_modules/sqlite-vec-linux-x64/README.md +1 -0
  665. package/node_modules/sqlite-vec-linux-x64/package.json +1 -0
  666. package/node_modules/sqlite-vec-linux-x64/vec0.so +0 -0
  667. package/node_modules/string_decoder/LICENSE +48 -0
  668. package/node_modules/string_decoder/README.md +47 -0
  669. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  670. package/node_modules/string_decoder/package.json +34 -0
  671. package/node_modules/strip-final-newline/index.d.ts +18 -0
  672. package/node_modules/strip-final-newline/index.js +26 -0
  673. package/node_modules/strip-final-newline/license +9 -0
  674. package/node_modules/strip-final-newline/package.json +49 -0
  675. package/node_modules/strip-final-newline/readme.md +34 -0
  676. package/node_modules/strip-json-comments/index.js +70 -0
  677. package/node_modules/strip-json-comments/license +21 -0
  678. package/node_modules/strip-json-comments/package.json +42 -0
  679. package/node_modules/strip-json-comments/readme.md +64 -0
  680. package/node_modules/tar-fs/.travis.yml +6 -0
  681. package/node_modules/tar-fs/LICENSE +21 -0
  682. package/node_modules/tar-fs/README.md +165 -0
  683. package/node_modules/tar-fs/index.js +363 -0
  684. package/node_modules/tar-fs/package.json +41 -0
  685. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  686. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  687. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  688. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  689. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  690. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  691. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  692. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  693. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  694. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  695. package/node_modules/tar-fs/test/index.js +346 -0
  696. package/node_modules/tar-stream/LICENSE +21 -0
  697. package/node_modules/tar-stream/README.md +168 -0
  698. package/node_modules/tar-stream/extract.js +257 -0
  699. package/node_modules/tar-stream/headers.js +295 -0
  700. package/node_modules/tar-stream/index.js +2 -0
  701. package/node_modules/tar-stream/pack.js +255 -0
  702. package/node_modules/tar-stream/package.json +58 -0
  703. package/node_modules/tar-stream/sandbox.js +11 -0
  704. package/node_modules/tunnel-agent/LICENSE +55 -0
  705. package/node_modules/tunnel-agent/README.md +4 -0
  706. package/node_modules/tunnel-agent/index.js +244 -0
  707. package/node_modules/tunnel-agent/package.json +22 -0
  708. package/node_modules/unicorn-magic/default.d.ts +13 -0
  709. package/node_modules/unicorn-magic/default.js +14 -0
  710. package/node_modules/unicorn-magic/license +9 -0
  711. package/node_modules/unicorn-magic/node.d.ts +125 -0
  712. package/node_modules/unicorn-magic/node.js +49 -0
  713. package/node_modules/unicorn-magic/package.json +62 -0
  714. package/node_modules/unicorn-magic/readme.md +25 -0
  715. package/node_modules/util-deprecate/History.md +16 -0
  716. package/node_modules/util-deprecate/LICENSE +24 -0
  717. package/node_modules/util-deprecate/README.md +53 -0
  718. package/node_modules/util-deprecate/browser.js +67 -0
  719. package/node_modules/util-deprecate/node.js +6 -0
  720. package/node_modules/util-deprecate/package.json +27 -0
  721. package/node_modules/which/CHANGELOG.md +166 -0
  722. package/node_modules/which/LICENSE +15 -0
  723. package/node_modules/which/README.md +54 -0
  724. package/node_modules/which/bin/node-which +52 -0
  725. package/node_modules/which/package.json +43 -0
  726. package/node_modules/which/which.js +125 -0
  727. package/node_modules/wrappy/LICENSE +15 -0
  728. package/node_modules/wrappy/README.md +36 -0
  729. package/node_modules/wrappy/package.json +29 -0
  730. package/node_modules/wrappy/wrappy.js +33 -0
  731. package/node_modules/yoctocolors/base.d.ts +47 -0
  732. package/node_modules/yoctocolors/base.js +94 -0
  733. package/node_modules/yoctocolors/index.d.ts +2 -0
  734. package/node_modules/yoctocolors/index.js +2 -0
  735. package/node_modules/yoctocolors/license +9 -0
  736. package/node_modules/yoctocolors/package.json +69 -0
  737. package/node_modules/yoctocolors/readme.md +138 -0
  738. package/package.json +5 -1
  739. package/src/agents/claude-agent.js +17 -2
  740. package/src/prompts/architect.js +32 -37
  741. package/src/prompts/coder.js +71 -96
  742. package/src/prompts/hu-reviewer.js +23 -29
  743. package/src/prompts/prompt-layout.js +80 -0
  744. package/src/prompts/reviewer.js +34 -39
  745. package/src/roles/agent-role.js +9 -1
  746. package/src/roles/coder-role.js +6 -3
  747. package/src/roles/reviewer-role.js +20 -23
package/README.md CHANGED
@@ -23,7 +23,7 @@
23
23
 
24
24
  ---
25
25
 
26
- > **v3.3.0 released** — Cross-provider cache observability (epic KJC-PCS-0056 / Phase 0 closed). Every `kj run` now measures provider-level prompt-cache hits end-to-end across Anthropic, OpenAI/Codex, Gemini, aider and opencode — same `cached_tokens` field flows from agent → BudgetTracker → `summary.md` → `board.db` → HU Board badge `🎯 N%` → telemetry `pipeline_complete`. Real data: Claude cold→hot 47.2% → 94.3% cache_pct (**76.4% cost savings on a single HU**), Gemini 87.9% → 96.8%. Null-safe: badge hides when unmeasured. Drop-in upgrade from v3.2.0. Full notes in [CHANGELOG.md](CHANGELOG.md).
26
+ > **v3.4.0 released** — Cache-friendly prompts (epic KJC-PCS-0057 / Phase 1 closed). Every Karajan prompt is now split into a stable block (identical across iterations and HUs, rendered first so automatic prefix caching hits on it) and a volatile tail; on Claude the stable block ships via `--append-system-prompt` so the CLI's cache breakpoints serve it from cache on every call. Real data: cold-run cache_pct jumps **47.2% → 99.6%** and coder cost drops **76%** ($0.61 → $0.14 per HU). A prefix-stability regression suite freezes the contract in CI. Drop-in upgrade from v3.3.0. Full notes in [CHANGELOG.md](CHANGELOG.md).
27
27
 
28
28
  You describe what you want to build. Karajan orchestrates multiple AI agents to plan it, implement it, test it, review it with SonarQube, and iterate. No babysitting required.
29
29
 
@@ -0,0 +1,42 @@
1
+ # @karajan/core
2
+
3
+ Shared modules for the Karajan Code CLI and `@karajan/hu-board`. Private
4
+ workspace package — not published to npm.
5
+
6
+ ## Scope
7
+
8
+ `@karajan/core` is the extraction destination for code that both the CLI
9
+ package (`karajan-code`) and the HU Board package (`@karajan/hu-board`)
10
+ need. Today it ships the atomic JSON writer; subsequent commits of
11
+ KJC-TSK-0511 will land the shared paths, port-check, run-registry,
12
+ process runner, plan validation, vector store, and plan/HU ops modules
13
+ here.
14
+
15
+ ## Exports
16
+
17
+ | Subpath | Module |
18
+ | --- | --- |
19
+ | `@karajan/core/atomic-write` | `writeJsonAtomic`, `writeJsonAtomicSync` |
20
+ | `@karajan/core/shared-paths` | `SHARED_DIR_NAME`, `getSharedRoot`, `getSharedPlansDir`, `getSharedHuStoriesDir`, `isSharedPath` |
21
+ | `@karajan/core/port-check` | `isPortAvailable`, `findAvailablePort` |
22
+ | `@karajan/core/paths` | `resolveHome`, `getKarajanHome`, `getSessionRoot`, `getSonarComposePath`, `getOllamaComposePath`, `getWebperfDir`, `getRunsDir`, `getPromptsDir`, `__resetKjHomeWarningForTests` |
23
+ | `@karajan/core/run-registry` | `runsDir`, `registerRun`, `unregisterRun`, `listActiveRuns` |
24
+ | `@karajan/core/vec-store` | `dbPath`, `openVecStore`, `insertChunk`, `searchSimilar`, `searchBM25`, `projectSlug`, `deleteChunksBySource`, `findChunkByHash`, `getEmbeddingsByIds`, `getLastIndexedCommit`, `setLastIndexedCommit`, `countChunks` |
25
+ | `@karajan/core/plan-id` | `generatePlanId`, `generateHuId`, `normaliseAlias` |
26
+ | `@karajan/core/plan-hu-ops` | `addHu`, `removeHu`, `updateHu`, `updateHuStatus`, `setHuOutcome`, `setPlanOutcome`, `autoCertifyPendingHus`, `assertPlanRunnable`, `computePlanOutcome`, `certifyAllHus`, `reorderHus` |
27
+ | `@karajan/core/plan-validation` | `validateBlockedByChange` |
28
+ | `@karajan/core/process` | `runCommand` (execa wrapper with output streaming, silence/total timeouts, ENOENT enrichment) |
29
+ | `@karajan/core/hu-snapshot` | `snapshotRefForHu`, `createHuSnapshot`, `hasHuSnapshot`, `restoreHuSnapshot`, `removeHuSnapshot` |
30
+ | `@karajan/core/standby-store` | `persistStandby`, `loadStandby`, `listPendingStandby`, `markStandbyDone`, `acquireStandbyLock`, `buildStandbyState`, `standbyDir`, `standbyDoneDir` |
31
+ | `@karajan/core/standby-scheduler` | `scheduleResume`, `cancelScheduled`, `reconcileAll`, `acquireStandbyLock`, `markStandbyDone`, `_resetScheduledForTests` |
32
+
33
+ The root export (`@karajan/core`) re-exports everything via the barrel
34
+ in `src/index.js`, but prefer the subpath form so the bundler can
35
+ tree-shake unused modules.
36
+
37
+ ## Status
38
+
39
+ KJC-TSK-0511 PR8 — `standby-store` + `standby-scheduler` extracted.
40
+ With this PR `@karajan/hu-board` no longer reaches into `../../../src`
41
+ from any static **or dynamic** import. PR9 will re-add
42
+ `packages/hu-board` to the root `workspaces` array.
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@karajan/core",
3
+ "version": "0.1.0",
4
+ "description": "Shared modules for Karajan Code CLI and @karajan/hu-board (atomic-write, paths, RAG store, plan ops, process runner).",
5
+ "type": "module",
6
+ "private": true,
7
+ "engines": {
8
+ "node": ">=22.22.1"
9
+ },
10
+ "exports": {
11
+ "./atomic-write": "./src/atomic-write.js",
12
+ "./shared-paths": "./src/shared-paths.js",
13
+ "./port-check": "./src/port-check.js",
14
+ "./paths": "./src/paths.js",
15
+ "./run-registry": "./src/run-registry.js",
16
+ "./vec-store": "./src/vec-store.js",
17
+ "./plan-id": "./src/plan-id.js",
18
+ "./plan-hu-ops": "./src/plan-hu-ops.js",
19
+ "./plan-validation": "./src/plan-validation.js",
20
+ "./process": "./src/process.js",
21
+ "./hu-snapshot": "./src/hu-snapshot.js",
22
+ "./standby-store": "./src/standby-store.js",
23
+ "./standby-scheduler": "./src/standby-scheduler.js",
24
+ "./pricing": "./src/pricing/index.js",
25
+ "./cost": "./src/cost/index.js"
26
+ },
27
+ "scripts": {
28
+ "test": "vitest run"
29
+ },
30
+ "dependencies": {
31
+ "better-sqlite3": "^12.10.0",
32
+ "execa": "^9.6.0",
33
+ "sqlite-vec": "^0.1.9"
34
+ },
35
+ "devDependencies": {
36
+ "vitest": "^4.0.0"
37
+ }
38
+ }
@@ -0,0 +1,43 @@
1
+ // Atomic JSON writes for persistent state (resilience audit, Phase 2).
2
+ //
3
+ // A plain `writeFile(path, JSON.stringify(...))` truncates the live file
4
+ // before the new content lands. If the process is killed mid-write
5
+ // (SIGKILL, crash, power loss) the file is left truncated and the only
6
+ // good copy is already gone — the plan / session / standby JSON
7
+ // silently corrupts.
8
+ //
9
+ // write-temp + rename fixes it: `rename` is atomic on the same
10
+ // filesystem, so a reader sees either the old file or the complete new
11
+ // one, never a half-written one. The temp file sits next to the target
12
+ // (same dir → same FS) and is uniquely named so concurrent writers do
13
+ // not clobber each other's temp. A crash before the rename leaves an
14
+ // orphan `.tmp` but never a corrupt target.
15
+
16
+ import { writeFileSync, renameSync } from "node:fs";
17
+ import { writeFile, rename } from "node:fs/promises";
18
+
19
+ function tempPath(target) {
20
+ return `${target}.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2, 8)}.tmp`;
21
+ }
22
+
23
+ /**
24
+ * Atomically write `obj` as pretty JSON to `target` (synchronous).
25
+ * @param {string} target - destination path; its directory must exist
26
+ * @param {unknown} obj
27
+ */
28
+ export function writeJsonAtomicSync(target, obj) {
29
+ const tmp = tempPath(target);
30
+ writeFileSync(tmp, JSON.stringify(obj, null, 2), "utf-8");
31
+ renameSync(tmp, target);
32
+ }
33
+
34
+ /**
35
+ * Atomically write `obj` as pretty JSON to `target` (async).
36
+ * @param {string} target - destination path; its directory must exist
37
+ * @param {unknown} obj
38
+ */
39
+ export async function writeJsonAtomic(target, obj) {
40
+ const tmp = tempPath(target);
41
+ await writeFile(tmp, JSON.stringify(obj, null, 2), "utf-8");
42
+ await rename(tmp, target);
43
+ }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Cost aggregator (Cost B — KJC-TSK-0513).
3
+ *
4
+ * Turns a list of token-usage events emitted by the orchestrator into
5
+ * a USD breakdown for a single run / HU. The pipeline calls this once
6
+ * when a HU finishes; the result is what Cost C will persist in
7
+ * board.db and Cost E will expose as `/api/projects/:id/cost`.
8
+ *
9
+ * Inputs are deliberately permissive: any extra field on an event is
10
+ * ignored. We only require `role`, `model`, `tokensIn`, `tokensOut`.
11
+ *
12
+ * Unknown models do NOT throw. Their token counts accumulate into
13
+ * `unknownModelTokens` and the function returns a flag so the caller
14
+ * can surface it in the UI (orange badge instead of `$X.XXXX`).
15
+ */
16
+
17
+ import { getModelPricing } from "../pricing/index.js";
18
+
19
+ const DEFAULT_ROUND_DECIMALS = 4;
20
+
21
+ function round(n, decimals = DEFAULT_ROUND_DECIMALS) {
22
+ const f = 10 ** decimals;
23
+ return Math.round(n * f) / f;
24
+ }
25
+
26
+ function priceTokens(pricing, tokensIn, tokensOut) {
27
+ const inUsd = (tokensIn / 1_000_000) * pricing.inputPerMTok;
28
+ const outUsd = (tokensOut / 1_000_000) * pricing.outputPerMTok;
29
+ return inUsd + outUsd;
30
+ }
31
+
32
+ /**
33
+ * Aggregate cost of a run.
34
+ *
35
+ * @param {object} args
36
+ * @param {Array<{role:string, model:string, tokensIn:number, tokensOut:number}>} args.events
37
+ * @param {(level:"warn"|"info", msg:string, ctx?:object)=>void} [args.logger]
38
+ * Optional structured logger. When a model is unknown we call
39
+ * logger("warn", ...) so the user sees it once per run.
40
+ * @returns {{
41
+ * totalUsd:number,
42
+ * byRole:Record<string,number>,
43
+ * byModel:Record<string,number>,
44
+ * unknownModelTokens:{ tokensIn:number, tokensOut:number, models:string[] },
45
+ * hasUnknown:boolean,
46
+ * currency:string
47
+ * }}
48
+ */
49
+ export function aggregateRunCost({ events, logger } = {}) {
50
+ const safeEvents = Array.isArray(events) ? events : [];
51
+ const byRole = {};
52
+ const byModel = {};
53
+ const unknownModels = new Set();
54
+ let totalUsd = 0;
55
+ let unknownIn = 0;
56
+ let unknownOut = 0;
57
+
58
+ for (const ev of safeEvents) {
59
+ if (!ev || typeof ev !== "object") continue;
60
+ const role = typeof ev.role === "string" && ev.role.length > 0 ? ev.role : "unknown";
61
+ const model = typeof ev.model === "string" ? ev.model : "";
62
+ const tokensIn = Number.isFinite(ev.tokensIn) ? ev.tokensIn : 0;
63
+ const tokensOut = Number.isFinite(ev.tokensOut) ? ev.tokensOut : 0;
64
+ if (tokensIn === 0 && tokensOut === 0) continue;
65
+
66
+ const pricing = getModelPricing(model);
67
+ if (!pricing) {
68
+ unknownIn += tokensIn;
69
+ unknownOut += tokensOut;
70
+ if (model.length > 0) unknownModels.add(model);
71
+ if (typeof logger === "function") {
72
+ logger("warn", "cost-aggregator: unknown model pricing", { model, role, tokensIn, tokensOut });
73
+ }
74
+ continue;
75
+ }
76
+
77
+ const cost = priceTokens(pricing, tokensIn, tokensOut);
78
+ totalUsd += cost;
79
+ byRole[role] = (byRole[role] || 0) + cost;
80
+ byModel[model] = (byModel[model] || 0) + cost;
81
+ }
82
+
83
+ const roundedByRole = Object.fromEntries(
84
+ Object.entries(byRole).map(([k, v]) => [k, round(v)])
85
+ );
86
+ const roundedByModel = Object.fromEntries(
87
+ Object.entries(byModel).map(([k, v]) => [k, round(v)])
88
+ );
89
+
90
+ return {
91
+ totalUsd: round(totalUsd),
92
+ byRole: roundedByRole,
93
+ byModel: roundedByModel,
94
+ unknownModelTokens: {
95
+ tokensIn: unknownIn,
96
+ tokensOut: unknownOut,
97
+ models: Array.from(unknownModels).sort(),
98
+ },
99
+ hasUnknown: unknownIn > 0 || unknownOut > 0,
100
+ currency: "USD",
101
+ };
102
+ }
@@ -0,0 +1,105 @@
1
+ // KJC-TSK-0408: snapshots de ficheros por HU para soportar Undo.
2
+ //
3
+ // Antes de ejecutar una HU, guardamos un ref git apuntando al HEAD
4
+ // actual (`refs/kj-snapshots/<huId>`). Si el usuario hace Undo después,
5
+ // hacemos `git reset --hard <ref>` para volver al estado pre-run.
6
+ //
7
+ // Por qué refs en lugar de stash/tarball:
8
+ // - Refs son objetos git nativos. No mueven blobs (todos compartidos
9
+ // con HEAD), así que crear el snapshot es O(1).
10
+ // - El snapshot persiste a través de checkouts y rebases.
11
+ // - Si el ref ya apunta al SHA correcto, restore es no-op.
12
+ //
13
+ // El runner es inyectable para que los tests no necesiten un repo git real.
14
+
15
+ import { runCommand } from "./process.js";
16
+
17
+ const REF_PREFIX = "refs/kj-snapshots/";
18
+
19
+ /**
20
+ * Sanitiza un huId para uso como nombre de ref. Git rechaza:
21
+ * - `..`, `:`, `~`, `^`, `?`, `*`, `[`, `\`, espacios, control chars
22
+ * - segmentos que empiecen por `.` o terminen en `.lock`
23
+ * Reemplazamos cualquier no [a-zA-Z0-9_-] por `_`.
24
+ */
25
+ export function snapshotRefForHu(huId) {
26
+ if (!huId) throw new Error("huId requerido");
27
+ const safe = String(huId).replaceAll(/[^a-zA-Z0-9_-]/g, "_").slice(0, 80);
28
+ return REF_PREFIX + safe;
29
+ }
30
+
31
+ async function defaultRunner(args, opts = {}) {
32
+ return runCommand("git", args, opts);
33
+ }
34
+
35
+ /**
36
+ * Crea (o actualiza) el ref del snapshot apuntando al HEAD actual.
37
+ *
38
+ * @param {object} args
39
+ * @param {string} args.projectDir
40
+ * @param {string} args.huId
41
+ * @param {Function} [args.runner] - sustituye git CLI en tests
42
+ * @returns {Promise<{ ok: boolean, ref?: string, sha?: string, error?: string }>}
43
+ */
44
+ export async function createHuSnapshot({ projectDir, huId, runner }) {
45
+ const run = runner || defaultRunner;
46
+ const ref = snapshotRefForHu(huId);
47
+ const head = await run(["rev-parse", "HEAD"], { cwd: projectDir });
48
+ if (head.exitCode !== 0) {
49
+ return { ok: false, error: `rev-parse HEAD failed: ${(head.stderr || "").trim()}` };
50
+ }
51
+ const sha = (head.stdout || "").trim();
52
+ if (!sha) return { ok: false, error: "HEAD vacío" };
53
+ const update = await run(["update-ref", ref, sha], { cwd: projectDir });
54
+ if (update.exitCode !== 0) {
55
+ return { ok: false, error: `update-ref falló: ${(update.stderr || "").trim()}` };
56
+ }
57
+ return { ok: true, ref, sha };
58
+ }
59
+
60
+ /**
61
+ * @param {object} args
62
+ * @param {string} args.projectDir
63
+ * @param {string} args.huId
64
+ * @param {Function} [args.runner]
65
+ * @returns {Promise<{ ok: boolean, sha?: string }>}
66
+ */
67
+ export async function hasHuSnapshot({ projectDir, huId, runner }) {
68
+ const run = runner || defaultRunner;
69
+ const ref = snapshotRefForHu(huId);
70
+ const r = await run(["rev-parse", "--verify", "--quiet", ref], { cwd: projectDir });
71
+ if (r.exitCode !== 0) return { ok: false };
72
+ return { ok: true, sha: (r.stdout || "").trim() };
73
+ }
74
+
75
+ /**
76
+ * Restaura el workspace al snapshot. DESTRUCTIVO: hace `git reset --hard`,
77
+ * lo que descarta cambios no committeados. Caller debe avisar al usuario.
78
+ *
79
+ * @returns {Promise<{ ok: boolean, sha?: string, error?: string }>}
80
+ */
81
+ export async function restoreHuSnapshot({ projectDir, huId, runner }) {
82
+ const run = runner || defaultRunner;
83
+ const ref = snapshotRefForHu(huId);
84
+ const has = await hasHuSnapshot({ projectDir, huId, runner: run });
85
+ if (!has.ok) return { ok: false, error: `snapshot no encontrado para HU ${huId}` };
86
+ const r = await run(["reset", "--hard", ref], { cwd: projectDir });
87
+ if (r.exitCode !== 0) {
88
+ return { ok: false, error: `reset --hard falló: ${(r.stderr || "").trim()}` };
89
+ }
90
+ return { ok: true, sha: has.sha };
91
+ }
92
+
93
+ /**
94
+ * Borra el ref del snapshot. Idempotente: si no existe, devuelve ok:true.
95
+ */
96
+ export async function removeHuSnapshot({ projectDir, huId, runner }) {
97
+ const run = runner || defaultRunner;
98
+ const ref = snapshotRefForHu(huId);
99
+ const r = await run(["update-ref", "-d", ref], { cwd: projectDir });
100
+ // git update-ref -d devuelve 0 incluso si el ref no existía.
101
+ if (r.exitCode !== 0) {
102
+ return { ok: false, error: `update-ref -d falló: ${(r.stderr || "").trim()}` };
103
+ }
104
+ return { ok: true };
105
+ }
@@ -0,0 +1,18 @@
1
+ // Barrel export for @karajan/core. Subpath imports
2
+ // (e.g. `@karajan/core/atomic-write`) are the preferred shape — this
3
+ // barrel only exists so a single `import { writeJsonAtomic } from
4
+ // "@karajan/core"` keeps working for callers that want the whole API.
5
+
6
+ export * from "./atomic-write.js";
7
+ export * from "./shared-paths.js";
8
+ export * from "./port-check.js";
9
+ export * from "./paths.js";
10
+ export * from "./run-registry.js";
11
+ export * from "./vec-store.js";
12
+ export * from "./plan-id.js";
13
+ export * from "./plan-hu-ops.js";
14
+ export * from "./plan-validation.js";
15
+ export * from "./process.js";
16
+ export * from "./hu-snapshot.js";
17
+ export * from "./standby-store.js";
18
+ export * from "./standby-scheduler.js";
@@ -0,0 +1,123 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+
5
+ // Per-process vitest root. We memoise the *root* (not the suffixed
6
+ // `.karajan` / `.kj` path) so callers with different legacy defaults
7
+ // — plan-store wants `.kj`, db.js wants `.karajan` — can share one
8
+ // random tmp prefix per test run without colliding.
9
+ let _vitestRoot = null;
10
+ function vitestRoot() {
11
+ if (_vitestRoot) return _vitestRoot;
12
+ _vitestRoot = path.join(
13
+ os.tmpdir(),
14
+ `karajan-vitest-${process.pid}-${Math.random().toString(36).slice(2, 10)}`
15
+ );
16
+ // KJC-BUG-0075: clean up on clean exit so /tmp doesn't accumulate one
17
+ // dir per fork × run. `process.on('exit')` runs synchronously and only
18
+ // for graceful exits — SIGKILL leaks survive but are caught by the
19
+ // global-setup mtime purge at the start of the next run.
20
+ process.on("exit", () => {
21
+ try {
22
+ fs.rmSync(_vitestRoot, { recursive: true, force: true });
23
+ } catch {
24
+ // best-effort: never crash a test process on cleanup failure
25
+ }
26
+ });
27
+ return _vitestRoot;
28
+ }
29
+
30
+ function vitestTmpHome(defaultSegment) {
31
+ return path.join(vitestRoot(), defaultSegment);
32
+ }
33
+
34
+ // One-shot warning so users with KJ_HOME set in their shell rcfile do
35
+ // not get spammed once per `kj` invocation. Reset across processes,
36
+ // which is the granularity that matters for a humans-reading-stderr
37
+ // audience.
38
+ let _kjHomeWarned = false;
39
+ function emitKjHomeDeprecationWarning() {
40
+ if (_kjHomeWarned) return;
41
+ _kjHomeWarned = true;
42
+ // eslint-disable-next-line no-console
43
+ console.warn(
44
+ "\x1b[33m[warn]\x1b[0m KJ_HOME is deprecated, rename to KARAJAN_HOME (KJ_HOME will be removed in a future release)"
45
+ );
46
+ }
47
+
48
+ /**
49
+ * Unified resolver for Karajan's HOME-level storage root. Used by every
50
+ * helper that previously rolled its own `getKjHome()` with subtly
51
+ * different defaults and VITEST handling.
52
+ *
53
+ * Precedence (highest first):
54
+ * 1. KARAJAN_HOME env var — explicit, no warning
55
+ * 2. KJ_HOME env var — explicit, prints deprecation warning once
56
+ * 3. VITEST tmp dir — auto-isolation under `os.tmpdir()/karajan-vitest-<pid>-<rand>/<defaultSegment>`
57
+ * 4. `~/<defaultSegment>` — production default
58
+ *
59
+ * Callers pass `defaultSegment` so we can preserve `.kj` for legacy
60
+ * paths (plan-store, standby-store) and `.karajan` for the canonical
61
+ * root, until PR 3 unifies the defaults too.
62
+ *
63
+ * @param {object} [options]
64
+ * @param {string} [options.defaultSegment=".karajan"] HOME subdir name
65
+ * @returns {string} absolute path
66
+ */
67
+ export function resolveHome({ defaultSegment = ".karajan" } = {}) {
68
+ if (process.env.KARAJAN_HOME) {
69
+ return path.resolve(process.env.KARAJAN_HOME);
70
+ }
71
+ if (process.env.KJ_HOME) {
72
+ emitKjHomeDeprecationWarning();
73
+ return path.resolve(process.env.KJ_HOME);
74
+ }
75
+ if (process.env.VITEST) {
76
+ return vitestTmpHome(defaultSegment);
77
+ }
78
+ return path.join(os.homedir(), defaultSegment);
79
+ }
80
+
81
+ /**
82
+ * Canonical Karajan home (`~/.karajan` by default). Every helper that
83
+ * used to roll its own `getKjHome()` now goes through this one — see
84
+ * KJC-PCS-0047 PR 3 for the consolidation.
85
+ */
86
+ export function getKarajanHome() {
87
+ return resolveHome({ defaultSegment: ".karajan" });
88
+ }
89
+
90
+ // Test-only export. Tests that depend on observing the deprecation
91
+ // warning being emitted exactly once need to reset the latch between
92
+ // cases.
93
+ export function __resetKjHomeWarningForTests() {
94
+ _kjHomeWarned = false;
95
+ }
96
+
97
+ export function getSessionRoot() {
98
+ return path.join(getKarajanHome(), "sessions");
99
+ }
100
+
101
+ export function getSonarComposePath() {
102
+ return path.join(getKarajanHome(), "docker-compose.sonar.yml");
103
+ }
104
+
105
+ /** Ollama RAG embedder compose: `<karajan-home>/docker-compose.ollama.yml` — KJC-TSK-0435. */
106
+ export function getOllamaComposePath() {
107
+ return path.join(getKarajanHome(), "docker-compose.ollama.yml");
108
+ }
109
+
110
+ /** Webperf cache: `<karajan-home>/webperf/` — KJC-TSK-0420. */
111
+ export function getWebperfDir() {
112
+ return path.join(getKarajanHome(), "webperf");
113
+ }
114
+
115
+ /** Run-registry: `<karajan-home>/runs/` — KJC-TSK-0420. */
116
+ export function getRunsDir() {
117
+ return path.join(getKarajanHome(), "runs");
118
+ }
119
+
120
+ /** Board prompt bridge: `<karajan-home>/prompts/` — KJC-TSK-0420. */
121
+ export function getPromptsDir() {
122
+ return path.join(getKarajanHome(), "prompts");
123
+ }