homegraph 0.9.9

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 (549) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +709 -0
  3. package/dist/bin/codegraph.d.ts +26 -0
  4. package/dist/bin/codegraph.d.ts.map +1 -0
  5. package/dist/bin/codegraph.js +1572 -0
  6. package/dist/bin/codegraph.js.map +1 -0
  7. package/dist/bin/homegraph.d.ts +26 -0
  8. package/dist/bin/homegraph.d.ts.map +1 -0
  9. package/dist/bin/homegraph.js +1572 -0
  10. package/dist/bin/homegraph.js.map +1 -0
  11. package/dist/bin/node-version-check.d.ts +37 -0
  12. package/dist/bin/node-version-check.d.ts.map +1 -0
  13. package/dist/bin/node-version-check.js +79 -0
  14. package/dist/bin/node-version-check.js.map +1 -0
  15. package/dist/bin/uninstall.d.ts +14 -0
  16. package/dist/bin/uninstall.d.ts.map +1 -0
  17. package/dist/bin/uninstall.js +36 -0
  18. package/dist/bin/uninstall.js.map +1 -0
  19. package/dist/context/formatter.d.ts +30 -0
  20. package/dist/context/formatter.d.ts.map +1 -0
  21. package/dist/context/formatter.js +263 -0
  22. package/dist/context/formatter.js.map +1 -0
  23. package/dist/context/index.d.ts +119 -0
  24. package/dist/context/index.d.ts.map +1 -0
  25. package/dist/context/index.js +1289 -0
  26. package/dist/context/index.js.map +1 -0
  27. package/dist/context/markers.d.ts +19 -0
  28. package/dist/context/markers.d.ts.map +1 -0
  29. package/dist/context/markers.js +22 -0
  30. package/dist/context/markers.js.map +1 -0
  31. package/dist/db/index.d.ts +101 -0
  32. package/dist/db/index.d.ts.map +1 -0
  33. package/dist/db/index.js +250 -0
  34. package/dist/db/index.js.map +1 -0
  35. package/dist/db/migrations.d.ts +44 -0
  36. package/dist/db/migrations.d.ts.map +1 -0
  37. package/dist/db/migrations.js +131 -0
  38. package/dist/db/migrations.js.map +1 -0
  39. package/dist/db/queries.d.ts +386 -0
  40. package/dist/db/queries.d.ts.map +1 -0
  41. package/dist/db/queries.js +1562 -0
  42. package/dist/db/queries.js.map +1 -0
  43. package/dist/db/schema.sql +151 -0
  44. package/dist/db/sqlite-adapter.d.ts +53 -0
  45. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  46. package/dist/db/sqlite-adapter.js +117 -0
  47. package/dist/db/sqlite-adapter.js.map +1 -0
  48. package/dist/directory.d.ts +57 -0
  49. package/dist/directory.d.ts.map +1 -0
  50. package/dist/directory.js +253 -0
  51. package/dist/directory.js.map +1 -0
  52. package/dist/errors.d.ts +136 -0
  53. package/dist/errors.d.ts.map +1 -0
  54. package/dist/errors.js +219 -0
  55. package/dist/errors.js.map +1 -0
  56. package/dist/extraction/arkanalyzer-extractor.d.ts +6 -0
  57. package/dist/extraction/arkanalyzer-extractor.d.ts.map +1 -0
  58. package/dist/extraction/arkanalyzer-extractor.js +11 -0
  59. package/dist/extraction/arkanalyzer-extractor.js.map +1 -0
  60. package/dist/extraction/arkanalyzer-project.d.ts +20 -0
  61. package/dist/extraction/arkanalyzer-project.d.ts.map +1 -0
  62. package/dist/extraction/arkanalyzer-project.js +596 -0
  63. package/dist/extraction/arkanalyzer-project.js.map +1 -0
  64. package/dist/extraction/context.d.ts +12 -0
  65. package/dist/extraction/context.d.ts.map +1 -0
  66. package/dist/extraction/context.js +29 -0
  67. package/dist/extraction/context.js.map +1 -0
  68. package/dist/extraction/dfm-extractor.d.ts +31 -0
  69. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  70. package/dist/extraction/dfm-extractor.js +151 -0
  71. package/dist/extraction/dfm-extractor.js.map +1 -0
  72. package/dist/extraction/extraction-version.d.ts +25 -0
  73. package/dist/extraction/extraction-version.d.ts.map +1 -0
  74. package/dist/extraction/extraction-version.js +28 -0
  75. package/dist/extraction/extraction-version.js.map +1 -0
  76. package/dist/extraction/generated-detection.d.ts +30 -0
  77. package/dist/extraction/generated-detection.d.ts.map +1 -0
  78. package/dist/extraction/generated-detection.js +80 -0
  79. package/dist/extraction/generated-detection.js.map +1 -0
  80. package/dist/extraction/grammars.d.ts +108 -0
  81. package/dist/extraction/grammars.d.ts.map +1 -0
  82. package/dist/extraction/grammars.js +465 -0
  83. package/dist/extraction/grammars.js.map +1 -0
  84. package/dist/extraction/index.d.ts +138 -0
  85. package/dist/extraction/index.d.ts.map +1 -0
  86. package/dist/extraction/index.js +1396 -0
  87. package/dist/extraction/index.js.map +1 -0
  88. package/dist/extraction/languages/arkts.d.ts +18 -0
  89. package/dist/extraction/languages/arkts.d.ts.map +1 -0
  90. package/dist/extraction/languages/arkts.js +878 -0
  91. package/dist/extraction/languages/arkts.js.map +1 -0
  92. package/dist/extraction/languages/c-cpp.d.ts +4 -0
  93. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  94. package/dist/extraction/languages/c-cpp.js +173 -0
  95. package/dist/extraction/languages/c-cpp.js.map +1 -0
  96. package/dist/extraction/languages/csharp.d.ts +25 -0
  97. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  98. package/dist/extraction/languages/csharp.js +120 -0
  99. package/dist/extraction/languages/csharp.js.map +1 -0
  100. package/dist/extraction/languages/dart.d.ts +3 -0
  101. package/dist/extraction/languages/dart.d.ts.map +1 -0
  102. package/dist/extraction/languages/dart.js +192 -0
  103. package/dist/extraction/languages/dart.js.map +1 -0
  104. package/dist/extraction/languages/go.d.ts +3 -0
  105. package/dist/extraction/languages/go.d.ts.map +1 -0
  106. package/dist/extraction/languages/go.js +74 -0
  107. package/dist/extraction/languages/go.js.map +1 -0
  108. package/dist/extraction/languages/index.d.ts +10 -0
  109. package/dist/extraction/languages/index.d.ts.map +1 -0
  110. package/dist/extraction/languages/index.js +51 -0
  111. package/dist/extraction/languages/index.js.map +1 -0
  112. package/dist/extraction/languages/java.d.ts +3 -0
  113. package/dist/extraction/languages/java.d.ts.map +1 -0
  114. package/dist/extraction/languages/java.js +74 -0
  115. package/dist/extraction/languages/java.js.map +1 -0
  116. package/dist/extraction/languages/javascript.d.ts +3 -0
  117. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  118. package/dist/extraction/languages/javascript.js +90 -0
  119. package/dist/extraction/languages/javascript.js.map +1 -0
  120. package/dist/extraction/languages/kotlin.d.ts +3 -0
  121. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  122. package/dist/extraction/languages/kotlin.js +285 -0
  123. package/dist/extraction/languages/kotlin.js.map +1 -0
  124. package/dist/extraction/languages/lua.d.ts +3 -0
  125. package/dist/extraction/languages/lua.d.ts.map +1 -0
  126. package/dist/extraction/languages/lua.js +150 -0
  127. package/dist/extraction/languages/lua.js.map +1 -0
  128. package/dist/extraction/languages/luau.d.ts +3 -0
  129. package/dist/extraction/languages/luau.d.ts.map +1 -0
  130. package/dist/extraction/languages/luau.js +37 -0
  131. package/dist/extraction/languages/luau.js.map +1 -0
  132. package/dist/extraction/languages/objc.d.ts +3 -0
  133. package/dist/extraction/languages/objc.d.ts.map +1 -0
  134. package/dist/extraction/languages/objc.js +133 -0
  135. package/dist/extraction/languages/objc.js.map +1 -0
  136. package/dist/extraction/languages/pascal.d.ts +3 -0
  137. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  138. package/dist/extraction/languages/pascal.js +66 -0
  139. package/dist/extraction/languages/pascal.js.map +1 -0
  140. package/dist/extraction/languages/php.d.ts +3 -0
  141. package/dist/extraction/languages/php.d.ts.map +1 -0
  142. package/dist/extraction/languages/php.js +120 -0
  143. package/dist/extraction/languages/php.js.map +1 -0
  144. package/dist/extraction/languages/python.d.ts +3 -0
  145. package/dist/extraction/languages/python.d.ts.map +1 -0
  146. package/dist/extraction/languages/python.js +56 -0
  147. package/dist/extraction/languages/python.js.map +1 -0
  148. package/dist/extraction/languages/ruby.d.ts +3 -0
  149. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  150. package/dist/extraction/languages/ruby.js +149 -0
  151. package/dist/extraction/languages/ruby.js.map +1 -0
  152. package/dist/extraction/languages/rust.d.ts +3 -0
  153. package/dist/extraction/languages/rust.d.ts.map +1 -0
  154. package/dist/extraction/languages/rust.js +113 -0
  155. package/dist/extraction/languages/rust.js.map +1 -0
  156. package/dist/extraction/languages/scala.d.ts +3 -0
  157. package/dist/extraction/languages/scala.d.ts.map +1 -0
  158. package/dist/extraction/languages/scala.js +174 -0
  159. package/dist/extraction/languages/scala.js.map +1 -0
  160. package/dist/extraction/languages/swift.d.ts +3 -0
  161. package/dist/extraction/languages/swift.d.ts.map +1 -0
  162. package/dist/extraction/languages/swift.js +91 -0
  163. package/dist/extraction/languages/swift.js.map +1 -0
  164. package/dist/extraction/languages/typescript.d.ts +3 -0
  165. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  166. package/dist/extraction/languages/typescript.js +129 -0
  167. package/dist/extraction/languages/typescript.js.map +1 -0
  168. package/dist/extraction/liquid-extractor.d.ts +59 -0
  169. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  170. package/dist/extraction/liquid-extractor.js +354 -0
  171. package/dist/extraction/liquid-extractor.js.map +1 -0
  172. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  173. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  174. package/dist/extraction/mybatis-extractor.js +198 -0
  175. package/dist/extraction/mybatis-extractor.js.map +1 -0
  176. package/dist/extraction/parse-worker.d.ts +8 -0
  177. package/dist/extraction/parse-worker.d.ts.map +1 -0
  178. package/dist/extraction/parse-worker.js +94 -0
  179. package/dist/extraction/parse-worker.js.map +1 -0
  180. package/dist/extraction/razor-extractor.d.ts +42 -0
  181. package/dist/extraction/razor-extractor.d.ts.map +1 -0
  182. package/dist/extraction/razor-extractor.js +285 -0
  183. package/dist/extraction/razor-extractor.js.map +1 -0
  184. package/dist/extraction/svelte-extractor.d.ts +56 -0
  185. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  186. package/dist/extraction/svelte-extractor.js +272 -0
  187. package/dist/extraction/svelte-extractor.js.map +1 -0
  188. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  189. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  190. package/dist/extraction/tree-sitter-helpers.js +103 -0
  191. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  192. package/dist/extraction/tree-sitter-types.d.ts +210 -0
  193. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  194. package/dist/extraction/tree-sitter-types.js +10 -0
  195. package/dist/extraction/tree-sitter-types.js.map +1 -0
  196. package/dist/extraction/tree-sitter.d.ts +455 -0
  197. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  198. package/dist/extraction/tree-sitter.js +4089 -0
  199. package/dist/extraction/tree-sitter.js.map +1 -0
  200. package/dist/extraction/vue-extractor.d.ts +51 -0
  201. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  202. package/dist/extraction/vue-extractor.js +251 -0
  203. package/dist/extraction/vue-extractor.js.map +1 -0
  204. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  205. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  206. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  207. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  208. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  209. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  210. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  211. package/dist/extraction/wasm-runtime-flags.js +106 -0
  212. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  213. package/dist/graph/index.d.ts +8 -0
  214. package/dist/graph/index.d.ts.map +1 -0
  215. package/dist/graph/index.js +13 -0
  216. package/dist/graph/index.js.map +1 -0
  217. package/dist/graph/queries.d.ts +106 -0
  218. package/dist/graph/queries.d.ts.map +1 -0
  219. package/dist/graph/queries.js +339 -0
  220. package/dist/graph/queries.js.map +1 -0
  221. package/dist/graph/traversal.d.ts +127 -0
  222. package/dist/graph/traversal.d.ts.map +1 -0
  223. package/dist/graph/traversal.js +531 -0
  224. package/dist/graph/traversal.js.map +1 -0
  225. package/dist/index.d.ts +522 -0
  226. package/dist/index.d.ts.map +1 -0
  227. package/dist/index.js +947 -0
  228. package/dist/index.js.map +1 -0
  229. package/dist/installer/config-writer.d.ts +28 -0
  230. package/dist/installer/config-writer.d.ts.map +1 -0
  231. package/dist/installer/config-writer.js +91 -0
  232. package/dist/installer/config-writer.js.map +1 -0
  233. package/dist/installer/index.d.ts +100 -0
  234. package/dist/installer/index.d.ts.map +1 -0
  235. package/dist/installer/index.js +497 -0
  236. package/dist/installer/index.js.map +1 -0
  237. package/dist/installer/instructions-template.d.ts +18 -0
  238. package/dist/installer/instructions-template.d.ts.map +1 -0
  239. package/dist/installer/instructions-template.js +21 -0
  240. package/dist/installer/instructions-template.js.map +1 -0
  241. package/dist/installer/targets/antigravity.d.ts +57 -0
  242. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  243. package/dist/installer/targets/antigravity.js +308 -0
  244. package/dist/installer/targets/antigravity.js.map +1 -0
  245. package/dist/installer/targets/claude.d.ts +56 -0
  246. package/dist/installer/targets/claude.d.ts.map +1 -0
  247. package/dist/installer/targets/claude.js +388 -0
  248. package/dist/installer/targets/claude.js.map +1 -0
  249. package/dist/installer/targets/codex.d.ts +18 -0
  250. package/dist/installer/targets/codex.d.ts.map +1 -0
  251. package/dist/installer/targets/codex.js +187 -0
  252. package/dist/installer/targets/codex.js.map +1 -0
  253. package/dist/installer/targets/cursor.d.ts +35 -0
  254. package/dist/installer/targets/cursor.d.ts.map +1 -0
  255. package/dist/installer/targets/cursor.js +254 -0
  256. package/dist/installer/targets/cursor.js.map +1 -0
  257. package/dist/installer/targets/gemini.d.ts +26 -0
  258. package/dist/installer/targets/gemini.d.ts.map +1 -0
  259. package/dist/installer/targets/gemini.js +167 -0
  260. package/dist/installer/targets/gemini.js.map +1 -0
  261. package/dist/installer/targets/hermes.d.ts +18 -0
  262. package/dist/installer/targets/hermes.d.ts.map +1 -0
  263. package/dist/installer/targets/hermes.js +359 -0
  264. package/dist/installer/targets/hermes.js.map +1 -0
  265. package/dist/installer/targets/kiro.d.ts +27 -0
  266. package/dist/installer/targets/kiro.d.ts.map +1 -0
  267. package/dist/installer/targets/kiro.js +178 -0
  268. package/dist/installer/targets/kiro.js.map +1 -0
  269. package/dist/installer/targets/opencode.d.ts +30 -0
  270. package/dist/installer/targets/opencode.d.ts.map +1 -0
  271. package/dist/installer/targets/opencode.js +237 -0
  272. package/dist/installer/targets/opencode.js.map +1 -0
  273. package/dist/installer/targets/registry.d.ts +35 -0
  274. package/dist/installer/targets/registry.d.ts.map +1 -0
  275. package/dist/installer/targets/registry.js +91 -0
  276. package/dist/installer/targets/registry.js.map +1 -0
  277. package/dist/installer/targets/shared.d.ts +77 -0
  278. package/dist/installer/targets/shared.d.ts.map +1 -0
  279. package/dist/installer/targets/shared.js +247 -0
  280. package/dist/installer/targets/shared.js.map +1 -0
  281. package/dist/installer/targets/toml.d.ts +52 -0
  282. package/dist/installer/targets/toml.d.ts.map +1 -0
  283. package/dist/installer/targets/toml.js +147 -0
  284. package/dist/installer/targets/toml.js.map +1 -0
  285. package/dist/installer/targets/types.d.ts +101 -0
  286. package/dist/installer/targets/types.d.ts.map +1 -0
  287. package/dist/installer/targets/types.js +16 -0
  288. package/dist/installer/targets/types.js.map +1 -0
  289. package/dist/mcp/daemon-paths.d.ts +46 -0
  290. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  291. package/dist/mcp/daemon-paths.js +125 -0
  292. package/dist/mcp/daemon-paths.js.map +1 -0
  293. package/dist/mcp/daemon.d.ts +220 -0
  294. package/dist/mcp/daemon.d.ts.map +1 -0
  295. package/dist/mcp/daemon.js +616 -0
  296. package/dist/mcp/daemon.js.map +1 -0
  297. package/dist/mcp/engine.d.ts +105 -0
  298. package/dist/mcp/engine.d.ts.map +1 -0
  299. package/dist/mcp/engine.js +270 -0
  300. package/dist/mcp/engine.js.map +1 -0
  301. package/dist/mcp/index.d.ts +112 -0
  302. package/dist/mcp/index.d.ts.map +1 -0
  303. package/dist/mcp/index.js +478 -0
  304. package/dist/mcp/index.js.map +1 -0
  305. package/dist/mcp/ppid-watchdog.d.ts +44 -0
  306. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  307. package/dist/mcp/ppid-watchdog.js +27 -0
  308. package/dist/mcp/ppid-watchdog.js.map +1 -0
  309. package/dist/mcp/proxy.d.ts +81 -0
  310. package/dist/mcp/proxy.d.ts.map +1 -0
  311. package/dist/mcp/proxy.js +584 -0
  312. package/dist/mcp/proxy.js.map +1 -0
  313. package/dist/mcp/server-instructions.d.ts +19 -0
  314. package/dist/mcp/server-instructions.d.ts.map +1 -0
  315. package/dist/mcp/server-instructions.js +74 -0
  316. package/dist/mcp/server-instructions.js.map +1 -0
  317. package/dist/mcp/session.d.ts +77 -0
  318. package/dist/mcp/session.d.ts.map +1 -0
  319. package/dist/mcp/session.js +294 -0
  320. package/dist/mcp/session.js.map +1 -0
  321. package/dist/mcp/tools.d.ts +413 -0
  322. package/dist/mcp/tools.d.ts.map +1 -0
  323. package/dist/mcp/tools.js +3049 -0
  324. package/dist/mcp/tools.js.map +1 -0
  325. package/dist/mcp/transport.d.ts +188 -0
  326. package/dist/mcp/transport.d.ts.map +1 -0
  327. package/dist/mcp/transport.js +343 -0
  328. package/dist/mcp/transport.js.map +1 -0
  329. package/dist/mcp/version.d.ts +19 -0
  330. package/dist/mcp/version.d.ts.map +1 -0
  331. package/dist/mcp/version.js +71 -0
  332. package/dist/mcp/version.js.map +1 -0
  333. package/dist/resolution/callback-synthesizer.d.ts +10 -0
  334. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  335. package/dist/resolution/callback-synthesizer.js +1818 -0
  336. package/dist/resolution/callback-synthesizer.js.map +1 -0
  337. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  338. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  339. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  340. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  341. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  342. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  343. package/dist/resolution/frameworks/csharp.js +241 -0
  344. package/dist/resolution/frameworks/csharp.js.map +1 -0
  345. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  346. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  347. package/dist/resolution/frameworks/drupal.js +367 -0
  348. package/dist/resolution/frameworks/drupal.js.map +1 -0
  349. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  350. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  351. package/dist/resolution/frameworks/expo-modules.js +148 -0
  352. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  353. package/dist/resolution/frameworks/express.d.ts +8 -0
  354. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  355. package/dist/resolution/frameworks/express.js +308 -0
  356. package/dist/resolution/frameworks/express.js.map +1 -0
  357. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  358. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  359. package/dist/resolution/frameworks/fabric.js +354 -0
  360. package/dist/resolution/frameworks/fabric.js.map +1 -0
  361. package/dist/resolution/frameworks/go.d.ts +8 -0
  362. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  363. package/dist/resolution/frameworks/go.js +161 -0
  364. package/dist/resolution/frameworks/go.js.map +1 -0
  365. package/dist/resolution/frameworks/index.d.ts +48 -0
  366. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  367. package/dist/resolution/frameworks/index.js +161 -0
  368. package/dist/resolution/frameworks/index.js.map +1 -0
  369. package/dist/resolution/frameworks/java.d.ts +8 -0
  370. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  371. package/dist/resolution/frameworks/java.js +504 -0
  372. package/dist/resolution/frameworks/java.js.map +1 -0
  373. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  374. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  375. package/dist/resolution/frameworks/laravel.js +257 -0
  376. package/dist/resolution/frameworks/laravel.js.map +1 -0
  377. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  378. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  379. package/dist/resolution/frameworks/nestjs.js +698 -0
  380. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  381. package/dist/resolution/frameworks/play.d.ts +19 -0
  382. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  383. package/dist/resolution/frameworks/play.js +111 -0
  384. package/dist/resolution/frameworks/play.js.map +1 -0
  385. package/dist/resolution/frameworks/python.d.ts +10 -0
  386. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  387. package/dist/resolution/frameworks/python.js +400 -0
  388. package/dist/resolution/frameworks/python.js.map +1 -0
  389. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  390. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  391. package/dist/resolution/frameworks/react-native.js +410 -0
  392. package/dist/resolution/frameworks/react-native.js.map +1 -0
  393. package/dist/resolution/frameworks/react.d.ts +8 -0
  394. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  395. package/dist/resolution/frameworks/react.js +365 -0
  396. package/dist/resolution/frameworks/react.js.map +1 -0
  397. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  398. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  399. package/dist/resolution/frameworks/ruby.js +302 -0
  400. package/dist/resolution/frameworks/ruby.js.map +1 -0
  401. package/dist/resolution/frameworks/rust.d.ts +8 -0
  402. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  403. package/dist/resolution/frameworks/rust.js +304 -0
  404. package/dist/resolution/frameworks/rust.js.map +1 -0
  405. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  406. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  407. package/dist/resolution/frameworks/svelte.js +249 -0
  408. package/dist/resolution/frameworks/svelte.js.map +1 -0
  409. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  410. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  411. package/dist/resolution/frameworks/swift-objc.js +252 -0
  412. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  413. package/dist/resolution/frameworks/swift.d.ts +10 -0
  414. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  415. package/dist/resolution/frameworks/swift.js +400 -0
  416. package/dist/resolution/frameworks/swift.js.map +1 -0
  417. package/dist/resolution/frameworks/vue.d.ts +9 -0
  418. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  419. package/dist/resolution/frameworks/vue.js +306 -0
  420. package/dist/resolution/frameworks/vue.js.map +1 -0
  421. package/dist/resolution/go-module.d.ts +26 -0
  422. package/dist/resolution/go-module.d.ts.map +1 -0
  423. package/dist/resolution/go-module.js +78 -0
  424. package/dist/resolution/go-module.js.map +1 -0
  425. package/dist/resolution/import-resolver.d.ts +68 -0
  426. package/dist/resolution/import-resolver.d.ts.map +1 -0
  427. package/dist/resolution/import-resolver.js +1726 -0
  428. package/dist/resolution/import-resolver.js.map +1 -0
  429. package/dist/resolution/index.d.ts +159 -0
  430. package/dist/resolution/index.d.ts.map +1 -0
  431. package/dist/resolution/index.js +1025 -0
  432. package/dist/resolution/index.js.map +1 -0
  433. package/dist/resolution/lru-cache.d.ts +24 -0
  434. package/dist/resolution/lru-cache.d.ts.map +1 -0
  435. package/dist/resolution/lru-cache.js +62 -0
  436. package/dist/resolution/lru-cache.js.map +1 -0
  437. package/dist/resolution/name-matcher.d.ts +52 -0
  438. package/dist/resolution/name-matcher.d.ts.map +1 -0
  439. package/dist/resolution/name-matcher.js +707 -0
  440. package/dist/resolution/name-matcher.js.map +1 -0
  441. package/dist/resolution/path-aliases.d.ts +68 -0
  442. package/dist/resolution/path-aliases.d.ts.map +1 -0
  443. package/dist/resolution/path-aliases.js +238 -0
  444. package/dist/resolution/path-aliases.js.map +1 -0
  445. package/dist/resolution/strip-comments.d.ts +27 -0
  446. package/dist/resolution/strip-comments.d.ts.map +1 -0
  447. package/dist/resolution/strip-comments.js +441 -0
  448. package/dist/resolution/strip-comments.js.map +1 -0
  449. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  450. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  451. package/dist/resolution/swift-objc-bridge.js +256 -0
  452. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  453. package/dist/resolution/types.d.ts +216 -0
  454. package/dist/resolution/types.d.ts.map +1 -0
  455. package/dist/resolution/types.js +8 -0
  456. package/dist/resolution/types.js.map +1 -0
  457. package/dist/resolution/workspace-packages.d.ts +48 -0
  458. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  459. package/dist/resolution/workspace-packages.js +208 -0
  460. package/dist/resolution/workspace-packages.js.map +1 -0
  461. package/dist/search/query-parser.d.ts +57 -0
  462. package/dist/search/query-parser.d.ts.map +1 -0
  463. package/dist/search/query-parser.js +177 -0
  464. package/dist/search/query-parser.js.map +1 -0
  465. package/dist/search/query-utils.d.ts +71 -0
  466. package/dist/search/query-utils.d.ts.map +1 -0
  467. package/dist/search/query-utils.js +380 -0
  468. package/dist/search/query-utils.js.map +1 -0
  469. package/dist/sync/git-hooks.d.ts +45 -0
  470. package/dist/sync/git-hooks.d.ts.map +1 -0
  471. package/dist/sync/git-hooks.js +225 -0
  472. package/dist/sync/git-hooks.js.map +1 -0
  473. package/dist/sync/index.d.ts +19 -0
  474. package/dist/sync/index.d.ts.map +1 -0
  475. package/dist/sync/index.js +35 -0
  476. package/dist/sync/index.js.map +1 -0
  477. package/dist/sync/watch-policy.d.ts +48 -0
  478. package/dist/sync/watch-policy.d.ts.map +1 -0
  479. package/dist/sync/watch-policy.js +124 -0
  480. package/dist/sync/watch-policy.js.map +1 -0
  481. package/dist/sync/watcher.d.ts +283 -0
  482. package/dist/sync/watcher.d.ts.map +1 -0
  483. package/dist/sync/watcher.js +606 -0
  484. package/dist/sync/watcher.js.map +1 -0
  485. package/dist/sync/worktree.d.ts +54 -0
  486. package/dist/sync/worktree.d.ts.map +1 -0
  487. package/dist/sync/worktree.js +137 -0
  488. package/dist/sync/worktree.js.map +1 -0
  489. package/dist/types.d.ts +377 -0
  490. package/dist/types.d.ts.map +1 -0
  491. package/dist/types.js +80 -0
  492. package/dist/types.js.map +1 -0
  493. package/dist/ui/glyphs.d.ts +42 -0
  494. package/dist/ui/glyphs.d.ts.map +1 -0
  495. package/dist/ui/glyphs.js +78 -0
  496. package/dist/ui/glyphs.js.map +1 -0
  497. package/dist/ui/shimmer-progress.d.ts +11 -0
  498. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  499. package/dist/ui/shimmer-progress.js +90 -0
  500. package/dist/ui/shimmer-progress.js.map +1 -0
  501. package/dist/ui/shimmer-worker.d.ts +2 -0
  502. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  503. package/dist/ui/shimmer-worker.js +118 -0
  504. package/dist/ui/shimmer-worker.js.map +1 -0
  505. package/dist/ui/types.d.ts +17 -0
  506. package/dist/ui/types.d.ts.map +1 -0
  507. package/dist/ui/types.js +3 -0
  508. package/dist/ui/types.js.map +1 -0
  509. package/dist/upgrade/index.d.ts +132 -0
  510. package/dist/upgrade/index.d.ts.map +1 -0
  511. package/dist/upgrade/index.js +462 -0
  512. package/dist/upgrade/index.js.map +1 -0
  513. package/dist/utils.d.ts +205 -0
  514. package/dist/utils.d.ts.map +1 -0
  515. package/dist/utils.js +549 -0
  516. package/dist/utils.js.map +1 -0
  517. package/package.json +57 -0
  518. package/scripts/add-lang/bench.sh +60 -0
  519. package/scripts/add-lang/check-grammar.mjs +75 -0
  520. package/scripts/add-lang/dump-ast.mjs +103 -0
  521. package/scripts/add-lang/verify-extraction.mjs +70 -0
  522. package/scripts/agent-eval/arms-F.sh +21 -0
  523. package/scripts/agent-eval/arms-matrix.sh +37 -0
  524. package/scripts/agent-eval/audit.sh +68 -0
  525. package/scripts/agent-eval/bench-readme.sh +28 -0
  526. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  527. package/scripts/agent-eval/block-read-hook.sh +19 -0
  528. package/scripts/agent-eval/hook-settings.json +15 -0
  529. package/scripts/agent-eval/itrun.sh +120 -0
  530. package/scripts/agent-eval/parse-arms.mjs +116 -0
  531. package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
  532. package/scripts/agent-eval/parse-run.mjs +45 -0
  533. package/scripts/agent-eval/parse-session.mjs +93 -0
  534. package/scripts/agent-eval/probe-context.mjs +21 -0
  535. package/scripts/agent-eval/probe-explore.mjs +40 -0
  536. package/scripts/agent-eval/probe-node.mjs +20 -0
  537. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  538. package/scripts/agent-eval/probe-trace.mjs +20 -0
  539. package/scripts/agent-eval/run-agent.sh +34 -0
  540. package/scripts/agent-eval/run-all.sh +67 -0
  541. package/scripts/agent-eval/run-arms.sh +56 -0
  542. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  543. package/scripts/build-bundle.sh +118 -0
  544. package/scripts/extract-release-notes.mjs +130 -0
  545. package/scripts/local-install.sh +41 -0
  546. package/scripts/npm-sdk.js +75 -0
  547. package/scripts/npm-shim.js +246 -0
  548. package/scripts/pack-npm.sh +119 -0
  549. package/scripts/prepare-release.mjs +270 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Glyph selection for CLI output.
3
+ *
4
+ * On Windows, console output is interpreted via the active output
5
+ * codepage. PowerShell 5.1 and cmd.exe default to OEM codepages
6
+ * (CP437, CP936, ...), so UTF-8 bytes written to the console render
7
+ * as mojibake (see #168). The shimmer worker is hit hardest because
8
+ * it uses `fs.writeSync(1, ...)` (raw bytes, no TTY-aware encoding
9
+ * conversion) to keep animation smooth while the main thread is
10
+ * blocked in SQLite. To stay readable everywhere, we fall back to
11
+ * ASCII glyphs whenever the terminal is not known to handle UTF-8.
12
+ *
13
+ * Detection is intentionally simple:
14
+ * - `HOMEGRAPH_ASCII=1` -> ASCII (escape hatch for any terminal)
15
+ * - `HOMEGRAPH_UNICODE=1` -> Unicode (opt-in on Windows)
16
+ * - Windows -> ASCII by default
17
+ * - Linux kernel console (`TERM=linux`) -> ASCII
18
+ * - Everything else -> Unicode
19
+ */
20
+ export declare function supportsUnicode(): boolean;
21
+ export interface Glyphs {
22
+ ok: string;
23
+ err: string;
24
+ info: string;
25
+ warn: string;
26
+ spinner: string[];
27
+ barFilled: string;
28
+ barEmpty: string;
29
+ rail: string;
30
+ phaseDone: string;
31
+ dash: string;
32
+ hLine: string;
33
+ treeBranch: string;
34
+ treeLast: string;
35
+ treePipe: string;
36
+ }
37
+ export declare const UNICODE_GLYPHS: Glyphs;
38
+ export declare const ASCII_GLYPHS: Glyphs;
39
+ export declare function getGlyphs(): Glyphs;
40
+ /** Reset the cached glyph set. Test-only; production code should call `getGlyphs()`. */
41
+ export declare function _resetGlyphsCache(): void;
42
+ //# sourceMappingURL=glyphs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/ui/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,MAe5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAe1B,CAAC;AAIF,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * Glyph selection for CLI output.
4
+ *
5
+ * On Windows, console output is interpreted via the active output
6
+ * codepage. PowerShell 5.1 and cmd.exe default to OEM codepages
7
+ * (CP437, CP936, ...), so UTF-8 bytes written to the console render
8
+ * as mojibake (see #168). The shimmer worker is hit hardest because
9
+ * it uses `fs.writeSync(1, ...)` (raw bytes, no TTY-aware encoding
10
+ * conversion) to keep animation smooth while the main thread is
11
+ * blocked in SQLite. To stay readable everywhere, we fall back to
12
+ * ASCII glyphs whenever the terminal is not known to handle UTF-8.
13
+ *
14
+ * Detection is intentionally simple:
15
+ * - `HOMEGRAPH_ASCII=1` -> ASCII (escape hatch for any terminal)
16
+ * - `HOMEGRAPH_UNICODE=1` -> Unicode (opt-in on Windows)
17
+ * - Windows -> ASCII by default
18
+ * - Linux kernel console (`TERM=linux`) -> ASCII
19
+ * - Everything else -> Unicode
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ASCII_GLYPHS = exports.UNICODE_GLYPHS = void 0;
23
+ exports.supportsUnicode = supportsUnicode;
24
+ exports.getGlyphs = getGlyphs;
25
+ exports._resetGlyphsCache = _resetGlyphsCache;
26
+ function supportsUnicode() {
27
+ if (process.env.HOMEGRAPH_ASCII === '1')
28
+ return false;
29
+ if (process.env.HOMEGRAPH_UNICODE === '1')
30
+ return true;
31
+ if (process.platform === 'win32')
32
+ return false;
33
+ return process.env.TERM !== 'linux';
34
+ }
35
+ exports.UNICODE_GLYPHS = {
36
+ ok: '✓',
37
+ err: '✗',
38
+ info: 'ℹ',
39
+ warn: '⚠',
40
+ spinner: ['·', '✢', '✳', '✶', '✻', '✽'],
41
+ barFilled: '█',
42
+ barEmpty: '░',
43
+ rail: '│',
44
+ phaseDone: '◆',
45
+ dash: '—',
46
+ hLine: '─',
47
+ treeBranch: '├── ',
48
+ treeLast: '└── ',
49
+ treePipe: '│ ',
50
+ };
51
+ exports.ASCII_GLYPHS = {
52
+ ok: '[OK]',
53
+ err: '[ERR]',
54
+ info: '[i]',
55
+ warn: '[!]',
56
+ spinner: ['.', '*', '+', 'x', 'o', 'O'],
57
+ barFilled: '#',
58
+ barEmpty: '-',
59
+ rail: '|',
60
+ phaseDone: '*',
61
+ dash: '-',
62
+ hLine: '-',
63
+ treeBranch: '|-- ',
64
+ treeLast: '`-- ',
65
+ treePipe: '| ',
66
+ };
67
+ let cached = null;
68
+ function getGlyphs() {
69
+ if (cached === null) {
70
+ cached = supportsUnicode() ? exports.UNICODE_GLYPHS : exports.ASCII_GLYPHS;
71
+ }
72
+ return cached;
73
+ }
74
+ /** Reset the cached glyph set. Test-only; production code should call `getGlyphs()`. */
75
+ function _resetGlyphsCache() {
76
+ cached = null;
77
+ }
78
+ //# sourceMappingURL=glyphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/ui/glyphs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,0CAKC;AAuDD,8BAKC;AAGD,8CAEC;AAtED,SAAgB,eAAe;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AACtC,CAAC;AAmBY,QAAA,cAAc,GAAW;IACpC,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACvC,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEW,QAAA,YAAY,GAAW;IAClC,EAAE,EAAE,MAAM;IACV,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACvC,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAgB,SAAS;IACvB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC,oBAAY,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,SAAgB,iBAAiB;IAC/B,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface IndexProgress {
2
+ phase: string;
3
+ current: number;
4
+ total: number;
5
+ }
6
+ export interface ShimmerProgress {
7
+ onProgress: (progress: IndexProgress) => void;
8
+ stop: () => Promise<void>;
9
+ }
10
+ export declare function createShimmerProgress(): ShimmerProgress;
11
+ //# sourceMappingURL=shimmer-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer-progress.d.ts","sourceRoot":"","sources":["../../src/ui/shimmer-progress.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAmDvD"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createShimmerProgress = createShimmerProgress;
37
+ const worker_threads_1 = require("worker_threads");
38
+ const path = __importStar(require("path"));
39
+ const PHASE_NAMES = {
40
+ scanning: 'Scanning files',
41
+ parsing: 'Parsing code',
42
+ storing: 'Storing data',
43
+ resolving: 'Resolving refs',
44
+ };
45
+ function createShimmerProgress() {
46
+ let lastPhase = '';
47
+ const workerPath = path.join(__dirname, 'shimmer-worker.js');
48
+ const worker = new worker_threads_1.Worker(workerPath, {
49
+ workerData: { startTime: Date.now() },
50
+ });
51
+ return {
52
+ onProgress(progress) {
53
+ const phaseName = PHASE_NAMES[progress.phase] || progress.phase;
54
+ if (progress.phase !== lastPhase && lastPhase) {
55
+ worker.postMessage({ type: 'finish-phase' });
56
+ }
57
+ lastPhase = progress.phase;
58
+ let percent = -1;
59
+ let count = 0;
60
+ if (progress.total > 0) {
61
+ percent = Math.round((progress.current / progress.total) * 100);
62
+ }
63
+ else if (progress.current > 0) {
64
+ count = progress.current;
65
+ }
66
+ worker.postMessage({
67
+ type: 'update',
68
+ phase: progress.phase,
69
+ phaseName,
70
+ percent,
71
+ count,
72
+ });
73
+ },
74
+ stop() {
75
+ return new Promise((resolve) => {
76
+ const timeout = setTimeout(() => {
77
+ worker.terminate().then(() => resolve());
78
+ }, 2000);
79
+ worker.on('message', (msg) => {
80
+ if (msg.type === 'stopped') {
81
+ clearTimeout(timeout);
82
+ worker.terminate().then(() => resolve());
83
+ }
84
+ });
85
+ worker.postMessage({ type: 'stop' });
86
+ });
87
+ },
88
+ };
89
+ }
90
+ //# sourceMappingURL=shimmer-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer-progress.js","sourceRoot":"","sources":["../../src/ui/shimmer-progress.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,sDAmDC;AAxED,mDAAwC;AACxC,2CAA6B;AAE7B,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;CAC5B,CAAC;AAaF,SAAgB,qBAAqB;IACnC,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,EAAE;QACpC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;KACtC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,CAAC,QAAuB;YAChC,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAEhE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC9C,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;YAE3B,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;YACjB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC3B,CAAC;YAED,MAAM,CAAC,WAAW,CAAC;gBACjB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,SAAS;gBACT,OAAO;gBACP,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,IAAI;YACF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3C,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAqB,EAAE,EAAE;oBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC3B,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shimmer-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer-worker.d.ts","sourceRoot":"","sources":["../../src/ui/shimmer-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_threads_1 = require("worker_threads");
4
+ const fs_1 = require("fs");
5
+ const glyphs_1 = require("./glyphs");
6
+ // Write directly to fd 1 (stdout) instead of writeStdout().
7
+ // In Node.js worker threads, process.stdout is proxied through the main
8
+ // thread's event loop — so if the main thread is blocked (e.g. SQLite),
9
+ // stdout writes from the worker queue up and the animation freezes.
10
+ // fs.writeSync(1, ...) is a direct kernel syscall that bypasses this.
11
+ //
12
+ // Side effect: bypasses Node's TTY-aware encoding conversion on Windows,
13
+ // so UTF-8 bytes hit the console raw and mojibake on OEM codepages.
14
+ // `getGlyphs()` returns ASCII fallbacks on Windows to avoid this (#168).
15
+ function writeStdout(s) {
16
+ (0, fs_1.writeSync)(1, s);
17
+ }
18
+ const G = (0, glyphs_1.getGlyphs)();
19
+ const SPINNER_GLYPHS = G.spinner;
20
+ const ANIM_INTERVAL = 150;
21
+ const FRAMES_PER_GLYPH = 3;
22
+ const RST = '\x1b[0m';
23
+ const DM = '\x1b[2m';
24
+ const GRN = '\x1b[32m';
25
+ const BOLD = '\x1b[1m';
26
+ const startTime = worker_threads_1.workerData.startTime;
27
+ function animFrame() {
28
+ return Math.floor((Date.now() - startTime) / ANIM_INTERVAL);
29
+ }
30
+ function lerp(a, b, t) {
31
+ return Math.round(a + (b - a) * t);
32
+ }
33
+ function shimmerColor(frame) {
34
+ const t = (Math.sin(frame * 2 * Math.PI / 13) + 1) / 2;
35
+ const r = lerp(160, 251, t);
36
+ const g = lerp(100, 191, t);
37
+ const b = lerp(9, 36, t);
38
+ return `\x1b[38;2;${r};${g};${b}m${BOLD}`;
39
+ }
40
+ function formatNumber(n) {
41
+ return n.toLocaleString();
42
+ }
43
+ function renderBar(frame, filled, empty) {
44
+ if (filled === 0)
45
+ return `${DM}${G.barEmpty.repeat(empty)}${RST}`;
46
+ const cycleFrames = 24;
47
+ const shimmerPos = ((frame % cycleFrames) / cycleFrames) * (filled + 6) - 3;
48
+ const shimmerWidth = 3;
49
+ let bar = '';
50
+ for (let i = 0; i < filled; i++) {
51
+ const dist = Math.abs(i - shimmerPos);
52
+ const t = Math.max(0, 1 - dist / shimmerWidth);
53
+ const r = lerp(160, 251, t);
54
+ const g = lerp(100, 191, t);
55
+ const b = lerp(9, 36, t);
56
+ bar += `\x1b[38;2;${r};${g};${b}m${BOLD}${G.barFilled}`;
57
+ }
58
+ bar += `${RST}${DM}${G.barEmpty.repeat(empty)}${RST}`;
59
+ return bar;
60
+ }
61
+ // Mutable state
62
+ let currentMessage = '';
63
+ let currentPercent = -1;
64
+ let currentCount = 0;
65
+ function render() {
66
+ if (!currentMessage)
67
+ return;
68
+ const frame = animFrame();
69
+ const glyphIdx = Math.floor(frame / FRAMES_PER_GLYPH) % SPINNER_GLYPHS.length;
70
+ const glyph = SPINNER_GLYPHS[glyphIdx] ?? SPINNER_GLYPHS[0] ?? '.';
71
+ const color = shimmerColor(frame);
72
+ let line;
73
+ if (currentPercent >= 0) {
74
+ const barWidth = 25;
75
+ const filled = Math.round(barWidth * currentPercent / 100);
76
+ const empty = barWidth - filled;
77
+ line = `${DM}${G.rail}${RST} ${color}${glyph}${RST} ${currentMessage} ${renderBar(frame, filled, empty)} ${currentPercent}%`;
78
+ }
79
+ else if (currentCount > 0) {
80
+ line = `${DM}${G.rail}${RST} ${color}${glyph}${RST} ${currentMessage}... ${formatNumber(currentCount)} found`;
81
+ }
82
+ else {
83
+ line = `${DM}${G.rail}${RST} ${color}${glyph}${RST} ${currentMessage}...`;
84
+ }
85
+ writeStdout(`\r\x1b[K${line}`);
86
+ }
87
+ function finishPhase() {
88
+ if (!currentMessage)
89
+ return;
90
+ writeStdout(`\r\x1b[K`);
91
+ let detail = '';
92
+ if (currentPercent >= 0)
93
+ detail = ` ${G.dash} done`;
94
+ else if (currentCount > 0)
95
+ detail = ` ${G.dash} ${formatNumber(currentCount)} found`;
96
+ writeStdout(`${DM}${G.rail}${RST} ${GRN}${G.phaseDone}${RST} ${currentMessage}${detail}\n`);
97
+ currentMessage = '';
98
+ currentPercent = -1;
99
+ currentCount = 0;
100
+ }
101
+ // Render loop — independent of main thread
102
+ const tickInterval = setInterval(render, 50);
103
+ worker_threads_1.parentPort.on('message', (msg) => {
104
+ if (msg.type === 'update') {
105
+ currentMessage = msg.phaseName;
106
+ currentPercent = msg.percent;
107
+ currentCount = msg.count;
108
+ }
109
+ else if (msg.type === 'finish-phase') {
110
+ finishPhase();
111
+ }
112
+ else if (msg.type === 'stop') {
113
+ clearInterval(tickInterval);
114
+ finishPhase();
115
+ worker_threads_1.parentPort.postMessage({ type: 'stopped' });
116
+ }
117
+ });
118
+ //# sourceMappingURL=shimmer-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer-worker.js","sourceRoot":"","sources":["../../src/ui/shimmer-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** Messages from main thread to worker */
2
+ export type ShimmerWorkerMessage = {
3
+ type: 'update';
4
+ phase: string;
5
+ phaseName: string;
6
+ percent: number;
7
+ count: number;
8
+ } | {
9
+ type: 'finish-phase';
10
+ } | {
11
+ type: 'stop';
12
+ };
13
+ /** Messages from worker to main thread */
14
+ export type ShimmerMainMessage = {
15
+ type: 'stopped';
16
+ };
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,0CAA0C;AAC1C,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * `homegraph upgrade`
3
+ *
4
+ * Self-update for the CLI, whatever way it was installed:
5
+ *
6
+ * - **bundle** — the self-contained runtime+app installed by `install.sh`
7
+ * (Linux/macOS) or `install.ps1` (Windows). Upgrading re-runs the SAME
8
+ * canonical installer script (single source of truth) so the download /
9
+ * version-resolution / PATH logic never drifts between first-install and
10
+ * upgrade.
11
+ * - **npm** — installed via `npm i -g homegraph`. Upgrading
12
+ * shells out to npm.
13
+ * - **npx** — ephemeral; nothing to upgrade (next `npx` fetches latest).
14
+ * - **source** — a git checkout running its own `dist/`; `git pull` + rebuild.
15
+ *
16
+ * Detection is structural (see `detectInstallMethod`): a bundle carries a
17
+ * vendored `node` binary and a `bin/homegraph` launcher next to its `lib/`, so
18
+ * we can recognize it from the running file's path without a marker file.
19
+ *
20
+ * Windows wrinkle: a running `node.exe` is locked and can't be deleted, so the
21
+ * bundle's `current\` dir can't be overwritten in place by the process doing
22
+ * the upgrade. We therefore spawn a DETACHED helper that waits for this
23
+ * process to exit (releasing the lock), then runs `install.ps1`. This is the
24
+ * conventional Windows self-update dance (rustup/nvm-windows do the same).
25
+ */
26
+ export declare const REPO = "homegraph/homegraph";
27
+ export declare const NPM_PACKAGE = "homegraph";
28
+ export declare const INSTALL_SH_URL = "https://raw.githubusercontent.com/homegraph/homegraph/main/install.sh";
29
+ export type InstallMethod = {
30
+ kind: 'bundle';
31
+ os: 'unix' | 'windows';
32
+ bundleRoot: string;
33
+ installDir: string | null;
34
+ } | {
35
+ kind: 'npm';
36
+ scope: 'global' | 'local';
37
+ } | {
38
+ kind: 'npx';
39
+ } | {
40
+ kind: 'source';
41
+ root: string;
42
+ } | {
43
+ kind: 'unknown';
44
+ reason: string;
45
+ };
46
+ export interface DetectInput {
47
+ /** `__filename` of the running CLI module — `<…>/dist/bin/homegraph.js`. */
48
+ filename: string;
49
+ platform: NodeJS.Platform;
50
+ cwd: string;
51
+ /** Injectable existence probe (defaults to fs.existsSync) — for tests. */
52
+ exists?: (p: string) => boolean;
53
+ }
54
+ /**
55
+ * Where the bundle installer keeps its install root, derived from the bundle
56
+ * dir so an upgrade reuses a custom `HOMEGRAPH_INSTALL_DIR`. Returns null when
57
+ * the layout isn't the one the installer creates (then the installer falls
58
+ * back to its own default).
59
+ *
60
+ * unix: <installDir>/versions/<vX.Y.Z> (bundleRoot) → <installDir>
61
+ * windows: <installDir>\current (bundleRoot) → <installDir>
62
+ */
63
+ export declare function deriveInstallDir(bundleRoot: string, os: 'unix' | 'windows', exists: (p: string) => boolean): string | null;
64
+ export declare function detectInstallMethod(input: DetectInput): InstallMethod;
65
+ export interface Semver {
66
+ major: number;
67
+ minor: number;
68
+ patch: number;
69
+ pre: string | null;
70
+ }
71
+ export declare function parseSemver(version: string): Semver | null;
72
+ /** Returns >0 if a>b, <0 if a<b, 0 if equal. Throws on unparseable input. */
73
+ export declare function compareVersions(a: string, b: string): number;
74
+ export declare function isUpdateAvailable(current: string, latest: string): boolean;
75
+ /** `0.9.9` / `v0.9.9` → `v0.9.9` (release tags are v-prefixed). */
76
+ export declare function normalizeVersion(v: string): string;
77
+ /** Strip a leading `v`: `v0.9.9` → `0.9.9`. */
78
+ export declare function stripV(v: string): string;
79
+ /**
80
+ * Parse the release tag out of the `Location` header GitHub returns for
81
+ * `/releases/latest` → `…/releases/tag/v0.9.9`. Pure so it's unit-tested.
82
+ */
83
+ export declare function parseLatestTagFromLocation(location: string | undefined): string | null;
84
+ /**
85
+ * Resolve the latest release tag (e.g. `v0.9.9`).
86
+ *
87
+ * Primary: read the redirect `Location` from `github.com/<repo>/releases/latest`
88
+ * — same trick install.sh uses, because the unauthenticated GitHub API is
89
+ * rate-limited to 60 req/h/IP and 403s on shared/cloud hosts (issue #325). The
90
+ * redirect has no such limit. Fall back to the API only if the redirect can't
91
+ * be read.
92
+ */
93
+ export declare function resolveLatestVersion(repo?: string, timeoutMs?: number): Promise<string>;
94
+ export interface UpgradeOptions {
95
+ /** Pin a specific version (positional arg or HOMEGRAPH_VERSION). */
96
+ version?: string;
97
+ /** Report current vs latest, don't change anything. */
98
+ check?: boolean;
99
+ /** Reinstall even if already on the resolved version. */
100
+ force?: boolean;
101
+ }
102
+ /** Injectable side-effects so the orchestrator stays unit-testable. */
103
+ export interface UpgradeDeps {
104
+ currentVersion: string;
105
+ method: InstallMethod;
106
+ resolveLatest: (pin?: string) => Promise<string>;
107
+ /** Run a command inheriting stdio; returns its exit code (-1 = spawn failed). */
108
+ run: (cmd: string, args: string[], env?: NodeJS.ProcessEnv) => number;
109
+ hasCommand: (cmd: string) => boolean;
110
+ log: (msg: string) => void;
111
+ warn: (msg: string) => void;
112
+ error: (msg: string) => void;
113
+ platform: NodeJS.Platform;
114
+ }
115
+ /** The honest, additive re-index reminder shown after a successful upgrade. */
116
+ export declare function reindexAdvisory(): string;
117
+ /**
118
+ * Returns the process exit code (0 = success / nothing to do, 1 = failure).
119
+ */
120
+ export declare function runUpgrade(opts: UpgradeOptions, deps: UpgradeDeps): Promise<number>;
121
+ /** Build the in-place Windows upgrade script (exported for unit-testing). */
122
+ export declare function buildWindowsUpgradeScript(bundleRoot: string, version: string, arch: string): string;
123
+ /**
124
+ * True if `cmd` resolves to an executable on PATH. A pure-Node PATH scan — NOT
125
+ * a spawned `command -v`/`which`: `command` is a shell builtin (no standalone
126
+ * binary on Debian, though macOS ships one), and `which` isn't guaranteed
127
+ * present on minimal images, so spawning either is unreliable. Scanning PATH
128
+ * ourselves behaves identically on every platform.
129
+ */
130
+ export declare function hasCommand(cmd: string): boolean;
131
+ export declare function defaultRun(cmd: string, args: string[], env?: NodeJS.ProcessEnv): number;
132
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upgrade/index.ts"],"names":[],"mappings":"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"}