argustack 0.1.34 → 0.3.1

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 (672) hide show
  1. package/README.md +31 -98
  2. package/dist/adapters/board/board-sync.js +2 -2
  3. package/dist/adapters/board/board-sync.js.map +1 -1
  4. package/dist/adapters/board/md-parser.js +3 -3
  5. package/dist/adapters/board/md-parser.js.map +1 -1
  6. package/dist/adapters/board/skill-discovery.js +2 -2
  7. package/dist/adapters/board/skill-discovery.js.map +1 -1
  8. package/dist/adapters/board/skill-runner.js +2 -2
  9. package/dist/adapters/board/skill-runner.js.map +1 -1
  10. package/dist/adapters/board/store.d.ts.map +1 -1
  11. package/dist/adapters/board/store.js +11 -11
  12. package/dist/adapters/board/store.js.map +1 -1
  13. package/dist/adapters/csv/mapper.js +11 -11
  14. package/dist/adapters/csv/mapper.js.map +1 -1
  15. package/dist/adapters/csv/parser.d.ts.map +1 -1
  16. package/dist/adapters/csv/parser.js +8 -7
  17. package/dist/adapters/csv/parser.js.map +1 -1
  18. package/dist/adapters/csv/provider.js +4 -4
  19. package/dist/adapters/csv/provider.js.map +1 -1
  20. package/dist/adapters/db/client.js +2 -2
  21. package/dist/adapters/db/client.js.map +1 -1
  22. package/dist/adapters/db/index.js +1 -0
  23. package/dist/adapters/db/index.js.map +1 -1
  24. package/dist/adapters/db/mapper.js +1 -1
  25. package/dist/adapters/db/mapper.js.map +1 -1
  26. package/dist/adapters/db/provider.js +4 -4
  27. package/dist/adapters/db/provider.js.map +1 -1
  28. package/dist/adapters/db/sql-validator.js +2 -2
  29. package/dist/adapters/db/sql-validator.js.map +1 -1
  30. package/dist/adapters/docker/cli-docker-control.d.ts +13 -0
  31. package/dist/adapters/docker/cli-docker-control.d.ts.map +1 -0
  32. package/dist/adapters/docker/cli-docker-control.js +70 -0
  33. package/dist/adapters/docker/cli-docker-control.js.map +1 -0
  34. package/dist/adapters/docker/index.d.ts +2 -0
  35. package/dist/adapters/docker/index.d.ts.map +1 -0
  36. package/dist/adapters/docker/index.js +2 -0
  37. package/dist/adapters/docker/index.js.map +1 -0
  38. package/dist/adapters/git/mapper.js +1 -1
  39. package/dist/adapters/git/mapper.js.map +1 -1
  40. package/dist/adapters/git/provider.js +4 -4
  41. package/dist/adapters/git/provider.js.map +1 -1
  42. package/dist/adapters/github/mapper.js +3 -3
  43. package/dist/adapters/github/mapper.js.map +1 -1
  44. package/dist/adapters/github/provider.d.ts.map +1 -1
  45. package/dist/adapters/github/provider.js +2 -2
  46. package/dist/adapters/github/provider.js.map +1 -1
  47. package/dist/adapters/jira/mapper.js +4 -4
  48. package/dist/adapters/jira/mapper.js.map +1 -1
  49. package/dist/adapters/jira/provider.js +8 -8
  50. package/dist/adapters/jira/provider.js.map +1 -1
  51. package/dist/adapters/jira-proxy/client.js +4 -4
  52. package/dist/adapters/jira-proxy/client.js.map +1 -1
  53. package/dist/adapters/jira-proxy/config-loader.d.ts +9 -0
  54. package/dist/adapters/jira-proxy/config-loader.d.ts.map +1 -1
  55. package/dist/adapters/jira-proxy/config-loader.js +26 -3
  56. package/dist/adapters/jira-proxy/config-loader.js.map +1 -1
  57. package/dist/adapters/jira-proxy/index.d.ts +1 -1
  58. package/dist/adapters/jira-proxy/index.d.ts.map +1 -1
  59. package/dist/adapters/jira-proxy/index.js +1 -1
  60. package/dist/adapters/jira-proxy/index.js.map +1 -1
  61. package/dist/adapters/jira-proxy/mapper.js +2 -2
  62. package/dist/adapters/jira-proxy/mapper.js.map +1 -1
  63. package/dist/adapters/jira-proxy/provider.d.ts.map +1 -1
  64. package/dist/adapters/jira-proxy/provider.js +19 -8
  65. package/dist/adapters/jira-proxy/provider.js.map +1 -1
  66. package/dist/adapters/lmstudio/embedding-provider.d.ts +37 -0
  67. package/dist/adapters/lmstudio/embedding-provider.d.ts.map +1 -0
  68. package/dist/adapters/lmstudio/embedding-provider.js +174 -0
  69. package/dist/adapters/lmstudio/embedding-provider.js.map +1 -0
  70. package/dist/adapters/lmstudio/index.d.ts +3 -0
  71. package/dist/adapters/lmstudio/index.d.ts.map +1 -0
  72. package/dist/adapters/lmstudio/index.js +2 -0
  73. package/dist/adapters/lmstudio/index.js.map +1 -0
  74. package/dist/adapters/lsp/index.d.ts +4 -0
  75. package/dist/adapters/lsp/index.d.ts.map +1 -0
  76. package/dist/adapters/lsp/index.js +3 -0
  77. package/dist/adapters/lsp/index.js.map +1 -0
  78. package/dist/adapters/lsp/jsonrpc.d.ts +12 -0
  79. package/dist/adapters/lsp/jsonrpc.d.ts.map +1 -0
  80. package/dist/adapters/lsp/jsonrpc.js +30 -0
  81. package/dist/adapters/lsp/jsonrpc.js.map +1 -0
  82. package/dist/adapters/lsp/typescript-lsp.d.ts +25 -0
  83. package/dist/adapters/lsp/typescript-lsp.d.ts.map +1 -0
  84. package/dist/adapters/lsp/typescript-lsp.js +131 -0
  85. package/dist/adapters/lsp/typescript-lsp.js.map +1 -0
  86. package/dist/adapters/neo4j/client.d.ts +11 -0
  87. package/dist/adapters/neo4j/client.d.ts.map +1 -0
  88. package/dist/adapters/neo4j/client.js +14 -0
  89. package/dist/adapters/neo4j/client.js.map +1 -0
  90. package/dist/adapters/neo4j/cypher.d.ts +23 -0
  91. package/dist/adapters/neo4j/cypher.d.ts.map +1 -0
  92. package/dist/adapters/neo4j/cypher.js +138 -0
  93. package/dist/adapters/neo4j/cypher.js.map +1 -0
  94. package/dist/adapters/neo4j/graph-store.d.ts +33 -0
  95. package/dist/adapters/neo4j/graph-store.d.ts.map +1 -0
  96. package/dist/adapters/neo4j/graph-store.js +282 -0
  97. package/dist/adapters/neo4j/graph-store.js.map +1 -0
  98. package/dist/adapters/neo4j/index.d.ts +4 -0
  99. package/dist/adapters/neo4j/index.d.ts.map +1 -0
  100. package/dist/adapters/neo4j/index.js +3 -0
  101. package/dist/adapters/neo4j/index.js.map +1 -0
  102. package/dist/adapters/neo4j/mapper.d.ts +5 -0
  103. package/dist/adapters/neo4j/mapper.d.ts.map +1 -0
  104. package/dist/adapters/neo4j/mapper.js +49 -0
  105. package/dist/adapters/neo4j/mapper.js.map +1 -0
  106. package/dist/adapters/ollama/chat-llm.d.ts +24 -0
  107. package/dist/adapters/ollama/chat-llm.d.ts.map +1 -0
  108. package/dist/adapters/ollama/chat-llm.js +53 -0
  109. package/dist/adapters/ollama/chat-llm.js.map +1 -0
  110. package/dist/adapters/ollama/embedding-provider.d.ts +30 -0
  111. package/dist/adapters/ollama/embedding-provider.d.ts.map +1 -0
  112. package/dist/adapters/ollama/embedding-provider.js +124 -0
  113. package/dist/adapters/ollama/embedding-provider.js.map +1 -0
  114. package/dist/adapters/ollama/http-ollama-control.d.ts +24 -0
  115. package/dist/adapters/ollama/http-ollama-control.d.ts.map +1 -0
  116. package/dist/adapters/ollama/http-ollama-control.js +224 -0
  117. package/dist/adapters/ollama/http-ollama-control.js.map +1 -0
  118. package/dist/adapters/ollama/index.d.ts +6 -0
  119. package/dist/adapters/ollama/index.d.ts.map +1 -0
  120. package/dist/adapters/ollama/index.js +4 -0
  121. package/dist/adapters/ollama/index.js.map +1 -0
  122. package/dist/adapters/platform/index.d.ts +2 -0
  123. package/dist/adapters/platform/index.d.ts.map +1 -0
  124. package/dist/adapters/platform/index.js +2 -0
  125. package/dist/adapters/platform/index.js.map +1 -0
  126. package/dist/adapters/platform/node-platform-probe.d.ts +9 -0
  127. package/dist/adapters/platform/node-platform-probe.d.ts.map +1 -0
  128. package/dist/adapters/platform/node-platform-probe.js +88 -0
  129. package/dist/adapters/platform/node-platform-probe.js.map +1 -0
  130. package/dist/adapters/postgres/code-meta.d.ts +21 -0
  131. package/dist/adapters/postgres/code-meta.d.ts.map +1 -0
  132. package/dist/adapters/postgres/code-meta.js +150 -0
  133. package/dist/adapters/postgres/code-meta.js.map +1 -0
  134. package/dist/adapters/postgres/index.d.ts +3 -0
  135. package/dist/adapters/postgres/index.d.ts.map +1 -1
  136. package/dist/adapters/postgres/index.js +3 -0
  137. package/dist/adapters/postgres/index.js.map +1 -1
  138. package/dist/adapters/postgres/migrate-helpers.d.ts +43 -0
  139. package/dist/adapters/postgres/migrate-helpers.d.ts.map +1 -0
  140. package/dist/adapters/postgres/migrate-helpers.js +136 -0
  141. package/dist/adapters/postgres/migrate-helpers.js.map +1 -0
  142. package/dist/adapters/postgres/readiness-probe.d.ts +22 -0
  143. package/dist/adapters/postgres/readiness-probe.d.ts.map +1 -0
  144. package/dist/adapters/postgres/readiness-probe.js +47 -0
  145. package/dist/adapters/postgres/readiness-probe.js.map +1 -0
  146. package/dist/adapters/postgres/schema.d.ts +11 -1
  147. package/dist/adapters/postgres/schema.d.ts.map +1 -1
  148. package/dist/adapters/postgres/schema.js +192 -108
  149. package/dist/adapters/postgres/schema.js.map +1 -1
  150. package/dist/adapters/postgres/storage-commits.d.ts +13 -0
  151. package/dist/adapters/postgres/storage-commits.d.ts.map +1 -0
  152. package/dist/adapters/postgres/storage-commits.js +63 -0
  153. package/dist/adapters/postgres/storage-commits.js.map +1 -0
  154. package/dist/adapters/postgres/storage-dbschema.d.ts +14 -0
  155. package/dist/adapters/postgres/storage-dbschema.d.ts.map +1 -0
  156. package/dist/adapters/postgres/storage-dbschema.js +63 -0
  157. package/dist/adapters/postgres/storage-dbschema.js.map +1 -0
  158. package/dist/adapters/postgres/storage-graph.d.ts +18 -0
  159. package/dist/adapters/postgres/storage-graph.d.ts.map +1 -0
  160. package/dist/adapters/postgres/storage-graph.js +127 -0
  161. package/dist/adapters/postgres/storage-graph.js.map +1 -0
  162. package/dist/adapters/postgres/storage-issues.d.ts +26 -0
  163. package/dist/adapters/postgres/storage-issues.d.ts.map +1 -0
  164. package/dist/adapters/postgres/storage-issues.js +233 -0
  165. package/dist/adapters/postgres/storage-issues.js.map +1 -0
  166. package/dist/adapters/postgres/storage-prs.d.ts +15 -0
  167. package/dist/adapters/postgres/storage-prs.d.ts.map +1 -0
  168. package/dist/adapters/postgres/storage-prs.js +142 -0
  169. package/dist/adapters/postgres/storage-prs.js.map +1 -0
  170. package/dist/adapters/postgres/storage-query.d.ts +26 -0
  171. package/dist/adapters/postgres/storage-query.d.ts.map +1 -0
  172. package/dist/adapters/postgres/storage-query.js +74 -0
  173. package/dist/adapters/postgres/storage-query.js.map +1 -0
  174. package/dist/adapters/postgres/storage-search.d.ts +18 -0
  175. package/dist/adapters/postgres/storage-search.d.ts.map +1 -0
  176. package/dist/adapters/postgres/storage-search.js +90 -0
  177. package/dist/adapters/postgres/storage-search.js.map +1 -0
  178. package/dist/adapters/postgres/storage.d.ts +49 -33
  179. package/dist/adapters/postgres/storage.d.ts.map +1 -1
  180. package/dist/adapters/postgres/storage.js +89 -605
  181. package/dist/adapters/postgres/storage.js.map +1 -1
  182. package/dist/adapters/postgres/workspace-store.d.ts +26 -0
  183. package/dist/adapters/postgres/workspace-store.d.ts.map +1 -0
  184. package/dist/adapters/postgres/workspace-store.js +94 -0
  185. package/dist/adapters/postgres/workspace-store.js.map +1 -0
  186. package/dist/adapters/qdrant/client.d.ts +8 -0
  187. package/dist/adapters/qdrant/client.d.ts.map +1 -0
  188. package/dist/adapters/qdrant/client.js +12 -0
  189. package/dist/adapters/qdrant/client.js.map +1 -0
  190. package/dist/adapters/qdrant/index.d.ts +4 -0
  191. package/dist/adapters/qdrant/index.d.ts.map +1 -0
  192. package/dist/adapters/qdrant/index.js +3 -0
  193. package/dist/adapters/qdrant/index.js.map +1 -0
  194. package/dist/adapters/qdrant/mapper.d.ts +16 -0
  195. package/dist/adapters/qdrant/mapper.d.ts.map +1 -0
  196. package/dist/adapters/qdrant/mapper.js +59 -0
  197. package/dist/adapters/qdrant/mapper.js.map +1 -0
  198. package/dist/adapters/qdrant/vector-store.d.ts +20 -0
  199. package/dist/adapters/qdrant/vector-store.d.ts.map +1 -0
  200. package/dist/adapters/qdrant/vector-store.js +144 -0
  201. package/dist/adapters/qdrant/vector-store.js.map +1 -0
  202. package/dist/adapters/tree-sitter/index.d.ts +4 -0
  203. package/dist/adapters/tree-sitter/index.d.ts.map +1 -0
  204. package/dist/adapters/tree-sitter/index.js +3 -0
  205. package/dist/adapters/tree-sitter/index.js.map +1 -0
  206. package/dist/adapters/tree-sitter/parser.d.ts +15 -0
  207. package/dist/adapters/tree-sitter/parser.d.ts.map +1 -0
  208. package/dist/adapters/tree-sitter/parser.js +186 -0
  209. package/dist/adapters/tree-sitter/parser.js.map +1 -0
  210. package/dist/adapters/tree-sitter/queries.d.ts +14 -0
  211. package/dist/adapters/tree-sitter/queries.d.ts.map +1 -0
  212. package/dist/adapters/tree-sitter/queries.js +14 -0
  213. package/dist/adapters/tree-sitter/queries.js.map +1 -0
  214. package/dist/adapters/voyage/embedding-provider.d.ts +25 -0
  215. package/dist/adapters/voyage/embedding-provider.d.ts.map +1 -0
  216. package/dist/adapters/voyage/embedding-provider.js +105 -0
  217. package/dist/adapters/voyage/embedding-provider.js.map +1 -0
  218. package/dist/adapters/voyage/index.d.ts +3 -0
  219. package/dist/adapters/voyage/index.d.ts.map +1 -0
  220. package/dist/adapters/voyage/index.js +2 -0
  221. package/dist/adapters/voyage/index.js.map +1 -0
  222. package/dist/cli/add/code.d.ts +3 -0
  223. package/dist/cli/add/code.d.ts.map +1 -0
  224. package/dist/cli/add/code.js +97 -0
  225. package/dist/cli/add/code.js.map +1 -0
  226. package/dist/cli/add/csv.d.ts +3 -0
  227. package/dist/cli/add/csv.d.ts.map +1 -0
  228. package/dist/cli/add/csv.js +26 -0
  229. package/dist/cli/add/csv.js.map +1 -0
  230. package/dist/cli/add/db.d.ts +3 -0
  231. package/dist/cli/add/db.d.ts.map +1 -0
  232. package/dist/cli/add/db.js +46 -0
  233. package/dist/cli/add/db.js.map +1 -0
  234. package/dist/cli/add/git.d.ts +3 -0
  235. package/dist/cli/add/git.d.ts.map +1 -0
  236. package/dist/cli/add/git.js +26 -0
  237. package/dist/cli/add/git.js.map +1 -0
  238. package/dist/cli/add/github.d.ts +3 -0
  239. package/dist/cli/add/github.d.ts.map +1 -0
  240. package/dist/cli/add/github.js +32 -0
  241. package/dist/cli/add/github.js.map +1 -0
  242. package/dist/cli/add/index.d.ts +3 -0
  243. package/dist/cli/add/index.d.ts.map +1 -0
  244. package/dist/cli/add/index.js +18 -0
  245. package/dist/cli/add/index.js.map +1 -0
  246. package/dist/cli/add/jira.d.ts +3 -0
  247. package/dist/cli/add/jira.d.ts.map +1 -0
  248. package/dist/cli/add/jira.js +45 -0
  249. package/dist/cli/add/jira.js.map +1 -0
  250. package/dist/cli/add/shared.d.ts +31 -0
  251. package/dist/cli/add/shared.d.ts.map +1 -0
  252. package/dist/cli/add/shared.js +102 -0
  253. package/dist/cli/add/shared.js.map +1 -0
  254. package/dist/cli/board-server.js +1 -1
  255. package/dist/cli/board-server.js.map +1 -1
  256. package/dist/cli/board.d.ts.map +1 -1
  257. package/dist/cli/board.js +11 -12
  258. package/dist/cli/board.js.map +1 -1
  259. package/dist/cli/code.d.ts +3 -0
  260. package/dist/cli/code.d.ts.map +1 -0
  261. package/dist/cli/code.js +467 -0
  262. package/dist/cli/code.js.map +1 -0
  263. package/dist/cli/embed.d.ts.map +1 -1
  264. package/dist/cli/embed.js +21 -26
  265. package/dist/cli/embed.js.map +1 -1
  266. package/dist/cli/graph.d.ts.map +1 -1
  267. package/dist/cli/graph.js +37 -55
  268. package/dist/cli/graph.js.map +1 -1
  269. package/dist/cli/index.js +30 -25
  270. package/dist/cli/index.js.map +1 -1
  271. package/dist/cli/init/cleanup.d.ts +11 -0
  272. package/dist/cli/init/cleanup.d.ts.map +1 -0
  273. package/dist/cli/init/cleanup.js +39 -0
  274. package/dist/cli/init/cleanup.js.map +1 -0
  275. package/dist/cli/init/generators.js +27 -27
  276. package/dist/cli/init/generators.js.map +1 -1
  277. package/dist/cli/init/index.d.ts +0 -10
  278. package/dist/cli/init/index.d.ts.map +1 -1
  279. package/dist/cli/init/index.js +386 -351
  280. package/dist/cli/init/index.js.map +1 -1
  281. package/dist/cli/init/presenter.d.ts +30 -0
  282. package/dist/cli/init/presenter.d.ts.map +1 -0
  283. package/dist/cli/init/presenter.js +152 -0
  284. package/dist/cli/init/presenter.js.map +1 -0
  285. package/dist/cli/init/prompts.d.ts +28 -0
  286. package/dist/cli/init/prompts.d.ts.map +1 -0
  287. package/dist/cli/init/prompts.js +110 -0
  288. package/dist/cli/init/prompts.js.map +1 -0
  289. package/dist/cli/init/setup-csv.js +2 -2
  290. package/dist/cli/init/setup-csv.js.map +1 -1
  291. package/dist/cli/init/setup-db.d.ts.map +1 -1
  292. package/dist/cli/init/setup-db.js +17 -14
  293. package/dist/cli/init/setup-db.js.map +1 -1
  294. package/dist/cli/init/setup-git.js +16 -16
  295. package/dist/cli/init/setup-git.js.map +1 -1
  296. package/dist/cli/init/setup-github.d.ts.map +1 -1
  297. package/dist/cli/init/setup-github.js +7 -5
  298. package/dist/cli/init/setup-github.js.map +1 -1
  299. package/dist/cli/init/setup-jira.d.ts.map +1 -1
  300. package/dist/cli/init/setup-jira.js +11 -9
  301. package/dist/cli/init/setup-jira.js.map +1 -1
  302. package/dist/cli/init/types.d.ts +4 -0
  303. package/dist/cli/init/types.d.ts.map +1 -1
  304. package/dist/cli/init/types.js +4 -4
  305. package/dist/cli/init/types.js.map +1 -1
  306. package/dist/cli/mcp-install.d.ts +1 -1
  307. package/dist/cli/mcp-install.d.ts.map +1 -1
  308. package/dist/cli/mcp-install.js +10 -24
  309. package/dist/cli/mcp-install.js.map +1 -1
  310. package/dist/cli/migrate-to-hub-impl.d.ts +51 -0
  311. package/dist/cli/migrate-to-hub-impl.d.ts.map +1 -0
  312. package/dist/cli/migrate-to-hub-impl.js +171 -0
  313. package/dist/cli/migrate-to-hub-impl.js.map +1 -0
  314. package/dist/cli/migrate-to-hub.d.ts +3 -0
  315. package/dist/cli/migrate-to-hub.d.ts.map +1 -0
  316. package/dist/cli/migrate-to-hub.js +90 -0
  317. package/dist/cli/migrate-to-hub.js.map +1 -0
  318. package/dist/cli/push.d.ts.map +1 -1
  319. package/dist/cli/push.js +62 -65
  320. package/dist/cli/push.js.map +1 -1
  321. package/dist/cli/sources.d.ts +0 -7
  322. package/dist/cli/sources.d.ts.map +1 -1
  323. package/dist/cli/sources.js +47 -112
  324. package/dist/cli/sources.js.map +1 -1
  325. package/dist/cli/status.d.ts +0 -3
  326. package/dist/cli/status.d.ts.map +1 -1
  327. package/dist/cli/status.js +95 -70
  328. package/dist/cli/status.js.map +1 -1
  329. package/dist/cli/sync.d.ts +0 -10
  330. package/dist/cli/sync.d.ts.map +1 -1
  331. package/dist/cli/sync.js +186 -314
  332. package/dist/cli/sync.js.map +1 -1
  333. package/dist/cli/workspace/add.d.ts +3 -0
  334. package/dist/cli/workspace/add.d.ts.map +1 -0
  335. package/dist/cli/workspace/add.js +38 -0
  336. package/dist/cli/workspace/add.js.map +1 -0
  337. package/dist/cli/workspace/index.d.ts +3 -0
  338. package/dist/cli/workspace/index.d.ts.map +1 -0
  339. package/dist/cli/workspace/index.js +16 -0
  340. package/dist/cli/workspace/index.js.map +1 -0
  341. package/dist/cli/workspace/info.d.ts +3 -0
  342. package/dist/cli/workspace/info.d.ts.map +1 -0
  343. package/dist/cli/workspace/info.js +69 -0
  344. package/dist/cli/workspace/info.js.map +1 -0
  345. package/dist/cli/workspace/list.d.ts +3 -0
  346. package/dist/cli/workspace/list.d.ts.map +1 -0
  347. package/dist/cli/workspace/list.js +36 -0
  348. package/dist/cli/workspace/list.js.map +1 -0
  349. package/dist/cli/workspace/remove.d.ts +3 -0
  350. package/dist/cli/workspace/remove.d.ts.map +1 -0
  351. package/dist/cli/workspace/remove.js +43 -0
  352. package/dist/cli/workspace/remove.js.map +1 -0
  353. package/dist/cli/workspace/shared.d.ts +7 -0
  354. package/dist/cli/workspace/shared.d.ts.map +1 -0
  355. package/dist/cli/workspace/shared.js +17 -0
  356. package/dist/cli/workspace/shared.js.map +1 -0
  357. package/dist/cli/workspace/use.d.ts +3 -0
  358. package/dist/cli/workspace/use.d.ts.map +1 -0
  359. package/dist/cli/workspace/use.js +27 -0
  360. package/dist/cli/workspace/use.js.map +1 -0
  361. package/dist/code-intel/chunker.d.ts +15 -0
  362. package/dist/code-intel/chunker.d.ts.map +1 -0
  363. package/dist/code-intel/chunker.js +39 -0
  364. package/dist/code-intel/chunker.js.map +1 -0
  365. package/dist/code-intel/file-discovery.d.ts +19 -0
  366. package/dist/code-intel/file-discovery.d.ts.map +1 -0
  367. package/dist/code-intel/file-discovery.js +80 -0
  368. package/dist/code-intel/file-discovery.js.map +1 -0
  369. package/dist/code-intel/hash.d.ts +2 -0
  370. package/dist/code-intel/hash.d.ts.map +1 -0
  371. package/dist/code-intel/hash.js +5 -0
  372. package/dist/code-intel/hash.js.map +1 -0
  373. package/dist/code-intel/index.d.ts +17 -0
  374. package/dist/code-intel/index.d.ts.map +1 -0
  375. package/dist/code-intel/index.js +11 -0
  376. package/dist/code-intel/index.js.map +1 -0
  377. package/dist/code-intel/indexer.d.ts +43 -0
  378. package/dist/code-intel/indexer.d.ts.map +1 -0
  379. package/dist/code-intel/indexer.js +234 -0
  380. package/dist/code-intel/indexer.js.map +1 -0
  381. package/dist/code-intel/job-lock.d.ts +7 -0
  382. package/dist/code-intel/job-lock.d.ts.map +1 -0
  383. package/dist/code-intel/job-lock.js +18 -0
  384. package/dist/code-intel/job-lock.js.map +1 -0
  385. package/dist/code-intel/layer-detector.d.ts +9 -0
  386. package/dist/code-intel/layer-detector.d.ts.map +1 -0
  387. package/dist/code-intel/layer-detector.js +31 -0
  388. package/dist/code-intel/layer-detector.js.map +1 -0
  389. package/dist/code-intel/lsp-resolver.d.ts +24 -0
  390. package/dist/code-intel/lsp-resolver.d.ts.map +1 -0
  391. package/dist/code-intel/lsp-resolver.js +125 -0
  392. package/dist/code-intel/lsp-resolver.js.map +1 -0
  393. package/dist/code-intel/ranker.d.ts +42 -0
  394. package/dist/code-intel/ranker.d.ts.map +1 -0
  395. package/dist/code-intel/ranker.js +123 -0
  396. package/dist/code-intel/ranker.js.map +1 -0
  397. package/dist/code-intel/resolver.d.ts +14 -0
  398. package/dist/code-intel/resolver.d.ts.map +1 -0
  399. package/dist/code-intel/resolver.js +59 -0
  400. package/dist/code-intel/resolver.js.map +1 -0
  401. package/dist/code-intel/tsconfig-paths.d.ts +11 -0
  402. package/dist/code-intel/tsconfig-paths.d.ts.map +1 -0
  403. package/dist/code-intel/tsconfig-paths.js +67 -0
  404. package/dist/code-intel/tsconfig-paths.js.map +1 -0
  405. package/dist/code-intel/watcher.d.ts +27 -0
  406. package/dist/code-intel/watcher.d.ts.map +1 -0
  407. package/dist/code-intel/watcher.js +93 -0
  408. package/dist/code-intel/watcher.js.map +1 -0
  409. package/dist/core/board/board-column.value-object.js +1 -1
  410. package/dist/core/board/board-column.value-object.js.map +1 -1
  411. package/dist/core/board/pipeline.value-object.js +1 -1
  412. package/dist/core/board/pipeline.value-object.js.map +1 -1
  413. package/dist/core/board/skill-execution.entity.js +1 -1
  414. package/dist/core/board/skill-execution.entity.js.map +1 -1
  415. package/dist/core/board/task-title.value-object.js +1 -1
  416. package/dist/core/board/task-title.value-object.js.map +1 -1
  417. package/dist/core/ports/chat-llm.d.ts +36 -0
  418. package/dist/core/ports/chat-llm.d.ts.map +1 -0
  419. package/dist/core/ports/chat-llm.js +2 -0
  420. package/dist/core/ports/chat-llm.js.map +1 -0
  421. package/dist/core/ports/code-embedding.d.ts +42 -0
  422. package/dist/core/ports/code-embedding.d.ts.map +1 -0
  423. package/dist/core/ports/code-embedding.js +2 -0
  424. package/dist/core/ports/code-embedding.js.map +1 -0
  425. package/dist/core/ports/code-graph.d.ts +56 -0
  426. package/dist/core/ports/code-graph.d.ts.map +1 -0
  427. package/dist/core/ports/code-graph.js +2 -0
  428. package/dist/core/ports/code-graph.js.map +1 -0
  429. package/dist/core/ports/code-meta.d.ts +37 -0
  430. package/dist/core/ports/code-meta.d.ts.map +1 -0
  431. package/dist/core/ports/code-meta.js +2 -0
  432. package/dist/core/ports/code-meta.js.map +1 -0
  433. package/dist/core/ports/code-parser.d.ts +13 -0
  434. package/dist/core/ports/code-parser.d.ts.map +1 -0
  435. package/dist/core/ports/code-parser.js +2 -0
  436. package/dist/core/ports/code-parser.js.map +1 -0
  437. package/dist/core/ports/code-vector-store.d.ts +42 -0
  438. package/dist/core/ports/code-vector-store.d.ts.map +1 -0
  439. package/dist/core/ports/code-vector-store.js +2 -0
  440. package/dist/core/ports/code-vector-store.js.map +1 -0
  441. package/dist/core/ports/docker-control.d.ts +44 -0
  442. package/dist/core/ports/docker-control.d.ts.map +1 -0
  443. package/dist/core/ports/docker-control.js +8 -0
  444. package/dist/core/ports/docker-control.js.map +1 -0
  445. package/dist/core/ports/hub-readiness-probe.d.ts +22 -0
  446. package/dist/core/ports/hub-readiness-probe.d.ts.map +1 -0
  447. package/dist/core/ports/hub-readiness-probe.js +2 -0
  448. package/dist/core/ports/hub-readiness-probe.js.map +1 -0
  449. package/dist/core/ports/index.d.ts +10 -0
  450. package/dist/core/ports/index.d.ts.map +1 -1
  451. package/dist/core/ports/lsp-client.d.ts +22 -0
  452. package/dist/core/ports/lsp-client.d.ts.map +1 -0
  453. package/dist/core/ports/lsp-client.js +2 -0
  454. package/dist/core/ports/lsp-client.js.map +1 -0
  455. package/dist/core/ports/ollama-control.d.ts +61 -0
  456. package/dist/core/ports/ollama-control.d.ts.map +1 -0
  457. package/dist/core/ports/ollama-control.js +7 -0
  458. package/dist/core/ports/ollama-control.js.map +1 -0
  459. package/dist/core/ports/platform-probe.d.ts +47 -0
  460. package/dist/core/ports/platform-probe.d.ts.map +1 -0
  461. package/dist/core/ports/platform-probe.js +8 -0
  462. package/dist/core/ports/platform-probe.js.map +1 -0
  463. package/dist/core/ports/storage.d.ts +62 -29
  464. package/dist/core/ports/storage.d.ts.map +1 -1
  465. package/dist/core/ports/workspace-store.d.ts +52 -0
  466. package/dist/core/ports/workspace-store.d.ts.map +1 -0
  467. package/dist/core/ports/workspace-store.js +2 -0
  468. package/dist/core/ports/workspace-store.js.map +1 -0
  469. package/dist/core/types/code.d.ts +153 -0
  470. package/dist/core/types/code.d.ts.map +1 -0
  471. package/dist/core/types/code.js +2 -0
  472. package/dist/core/types/code.js.map +1 -0
  473. package/dist/core/types/config.d.ts +1 -1
  474. package/dist/core/types/config.d.ts.map +1 -1
  475. package/dist/core/types/config.js +8 -1
  476. package/dist/core/types/config.js.map +1 -1
  477. package/dist/core/types/index.d.ts +3 -0
  478. package/dist/core/types/index.d.ts.map +1 -1
  479. package/dist/core/types/init.d.ts +29 -0
  480. package/dist/core/types/init.d.ts.map +1 -0
  481. package/dist/core/types/init.js +2 -0
  482. package/dist/core/types/init.js.map +1 -0
  483. package/dist/core/types/workspace.d.ts +78 -0
  484. package/dist/core/types/workspace.d.ts.map +1 -0
  485. package/dist/core/types/workspace.js +2 -0
  486. package/dist/core/types/workspace.js.map +1 -0
  487. package/dist/mcp/helpers.d.ts +131 -19
  488. package/dist/mcp/helpers.d.ts.map +1 -1
  489. package/dist/mcp/helpers.js +271 -141
  490. package/dist/mcp/helpers.js.map +1 -1
  491. package/dist/mcp/server.d.ts.map +1 -1
  492. package/dist/mcp/server.js +49 -5
  493. package/dist/mcp/server.js.map +1 -1
  494. package/dist/mcp/tools/code-graph.d.ts +3 -0
  495. package/dist/mcp/tools/code-graph.d.ts.map +1 -0
  496. package/dist/mcp/tools/code-graph.js +330 -0
  497. package/dist/mcp/tools/code-graph.js.map +1 -0
  498. package/dist/mcp/tools/code-hybrid.d.ts +3 -0
  499. package/dist/mcp/tools/code-hybrid.d.ts.map +1 -0
  500. package/dist/mcp/tools/code-hybrid.js +142 -0
  501. package/dist/mcp/tools/code-hybrid.js.map +1 -0
  502. package/dist/mcp/tools/code-search.d.ts +3 -0
  503. package/dist/mcp/tools/code-search.d.ts.map +1 -0
  504. package/dist/mcp/tools/code-search.js +95 -0
  505. package/dist/mcp/tools/code-search.js.map +1 -0
  506. package/dist/mcp/tools/database.d.ts.map +1 -1
  507. package/dist/mcp/tools/database.js +86 -97
  508. package/dist/mcp/tools/database.js.map +1 -1
  509. package/dist/mcp/tools/estimate.d.ts.map +1 -1
  510. package/dist/mcp/tools/estimate.js +106 -82
  511. package/dist/mcp/tools/estimate.js.map +1 -1
  512. package/dist/mcp/tools/graph.d.ts.map +1 -1
  513. package/dist/mcp/tools/graph.js +142 -157
  514. package/dist/mcp/tools/graph.js.map +1 -1
  515. package/dist/mcp/tools/issue.d.ts.map +1 -1
  516. package/dist/mcp/tools/issue.js +172 -172
  517. package/dist/mcp/tools/issue.js.map +1 -1
  518. package/dist/mcp/tools/push.d.ts.map +1 -1
  519. package/dist/mcp/tools/push.js +70 -100
  520. package/dist/mcp/tools/push.js.map +1 -1
  521. package/dist/mcp/tools/query.d.ts.map +1 -1
  522. package/dist/mcp/tools/query.js +187 -246
  523. package/dist/mcp/tools/query.js.map +1 -1
  524. package/dist/mcp/tools/search.d.ts.map +1 -1
  525. package/dist/mcp/tools/search.js +25 -22
  526. package/dist/mcp/tools/search.js.map +1 -1
  527. package/dist/mcp/tools/workspace.d.ts.map +1 -1
  528. package/dist/mcp/tools/workspace.js +120 -73
  529. package/dist/mcp/tools/workspace.js.map +1 -1
  530. package/dist/use-cases/build-graph.d.ts +1 -1
  531. package/dist/use-cases/build-graph.d.ts.map +1 -1
  532. package/dist/use-cases/build-graph.js +63 -50
  533. package/dist/use-cases/build-graph.js.map +1 -1
  534. package/dist/use-cases/code-search.d.ts +60 -0
  535. package/dist/use-cases/code-search.d.ts.map +1 -0
  536. package/dist/use-cases/code-search.js +163 -0
  537. package/dist/use-cases/code-search.js.map +1 -0
  538. package/dist/use-cases/embed.d.ts +1 -1
  539. package/dist/use-cases/embed.d.ts.map +1 -1
  540. package/dist/use-cases/embed.js +5 -5
  541. package/dist/use-cases/embed.js.map +1 -1
  542. package/dist/use-cases/index-code.d.ts +24 -0
  543. package/dist/use-cases/index-code.d.ts.map +1 -0
  544. package/dist/use-cases/index-code.js +43 -0
  545. package/dist/use-cases/index-code.js.map +1 -0
  546. package/dist/use-cases/init/bootstrap-hub.d.ts +55 -0
  547. package/dist/use-cases/init/bootstrap-hub.d.ts.map +1 -0
  548. package/dist/use-cases/init/bootstrap-hub.js +116 -0
  549. package/dist/use-cases/init/bootstrap-hub.js.map +1 -0
  550. package/dist/use-cases/init/check-dims-conflict.d.ts +33 -0
  551. package/dist/use-cases/init/check-dims-conflict.d.ts.map +1 -0
  552. package/dist/use-cases/init/check-dims-conflict.js +39 -0
  553. package/dist/use-cases/init/check-dims-conflict.js.map +1 -0
  554. package/dist/use-cases/init/check-hub-exists.d.ts +23 -0
  555. package/dist/use-cases/init/check-hub-exists.d.ts.map +1 -0
  556. package/dist/use-cases/init/check-hub-exists.js +39 -0
  557. package/dist/use-cases/init/check-hub-exists.js.map +1 -0
  558. package/dist/use-cases/init/check-ports.d.ts +18 -0
  559. package/dist/use-cases/init/check-ports.d.ts.map +1 -0
  560. package/dist/use-cases/init/check-ports.js +25 -0
  561. package/dist/use-cases/init/check-ports.js.map +1 -0
  562. package/dist/use-cases/init/check-versions.d.ts +37 -0
  563. package/dist/use-cases/init/check-versions.d.ts.map +1 -0
  564. package/dist/use-cases/init/check-versions.js +50 -0
  565. package/dist/use-cases/init/check-versions.js.map +1 -0
  566. package/dist/use-cases/init/clear-stale-active.d.ts +20 -0
  567. package/dist/use-cases/init/clear-stale-active.d.ts.map +1 -0
  568. package/dist/use-cases/init/clear-stale-active.js +26 -0
  569. package/dist/use-cases/init/clear-stale-active.js.map +1 -0
  570. package/dist/use-cases/init/ensure-embedding-model.d.ts +20 -0
  571. package/dist/use-cases/init/ensure-embedding-model.d.ts.map +1 -0
  572. package/dist/use-cases/init/ensure-embedding-model.js +24 -0
  573. package/dist/use-cases/init/ensure-embedding-model.js.map +1 -0
  574. package/dist/use-cases/init/ensure-ollama-running.d.ts +19 -0
  575. package/dist/use-cases/init/ensure-ollama-running.d.ts.map +1 -0
  576. package/dist/use-cases/init/ensure-ollama-running.js +24 -0
  577. package/dist/use-cases/init/ensure-ollama-running.js.map +1 -0
  578. package/dist/use-cases/init/health-check-existing-llm.d.ts +25 -0
  579. package/dist/use-cases/init/health-check-existing-llm.d.ts.map +1 -0
  580. package/dist/use-cases/init/health-check-existing-llm.js +42 -0
  581. package/dist/use-cases/init/health-check-existing-llm.js.map +1 -0
  582. package/dist/use-cases/init/install-ollama.d.ts +27 -0
  583. package/dist/use-cases/init/install-ollama.d.ts.map +1 -0
  584. package/dist/use-cases/init/install-ollama.js +51 -0
  585. package/dist/use-cases/init/install-ollama.js.map +1 -0
  586. package/dist/use-cases/init/probe-llm.d.ts +32 -0
  587. package/dist/use-cases/init/probe-llm.d.ts.map +1 -0
  588. package/dist/use-cases/init/probe-llm.js +42 -0
  589. package/dist/use-cases/init/probe-llm.js.map +1 -0
  590. package/dist/use-cases/init/resolve-hub-ports.d.ts +46 -0
  591. package/dist/use-cases/init/resolve-hub-ports.d.ts.map +1 -0
  592. package/dist/use-cases/init/resolve-hub-ports.js +77 -0
  593. package/dist/use-cases/init/resolve-hub-ports.js.map +1 -0
  594. package/dist/use-cases/init/validate-workspace-name.d.ts +26 -0
  595. package/dist/use-cases/init/validate-workspace-name.d.ts.map +1 -0
  596. package/dist/use-cases/init/validate-workspace-name.js +39 -0
  597. package/dist/use-cases/init/validate-workspace-name.js.map +1 -0
  598. package/dist/use-cases/init/wait-for-docker.d.ts +16 -0
  599. package/dist/use-cases/init/wait-for-docker.d.ts.map +1 -0
  600. package/dist/use-cases/init/wait-for-docker.js +16 -0
  601. package/dist/use-cases/init/wait-for-docker.js.map +1 -0
  602. package/dist/use-cases/init/write-config-env.d.ts +32 -0
  603. package/dist/use-cases/init/write-config-env.d.ts.map +1 -0
  604. package/dist/use-cases/init/write-config-env.js +118 -0
  605. package/dist/use-cases/init/write-config-env.js.map +1 -0
  606. package/dist/use-cases/move-task.js +2 -2
  607. package/dist/use-cases/move-task.js.map +1 -1
  608. package/dist/use-cases/pull-db.d.ts +1 -1
  609. package/dist/use-cases/pull-db.d.ts.map +1 -1
  610. package/dist/use-cases/pull-db.js +3 -3
  611. package/dist/use-cases/pull-db.js.map +1 -1
  612. package/dist/use-cases/pull-git.d.ts +1 -1
  613. package/dist/use-cases/pull-git.d.ts.map +1 -1
  614. package/dist/use-cases/pull-git.js +5 -5
  615. package/dist/use-cases/pull-git.js.map +1 -1
  616. package/dist/use-cases/pull-github.d.ts +1 -1
  617. package/dist/use-cases/pull-github.d.ts.map +1 -1
  618. package/dist/use-cases/pull-github.js +6 -6
  619. package/dist/use-cases/pull-github.js.map +1 -1
  620. package/dist/use-cases/pull.d.ts +1 -1
  621. package/dist/use-cases/pull.d.ts.map +1 -1
  622. package/dist/use-cases/pull.js +6 -6
  623. package/dist/use-cases/pull.js.map +1 -1
  624. package/dist/use-cases/push.d.ts +2 -2
  625. package/dist/use-cases/push.d.ts.map +1 -1
  626. package/dist/use-cases/push.js +8 -8
  627. package/dist/use-cases/push.js.map +1 -1
  628. package/dist/use-cases/register-code-project.d.ts +29 -0
  629. package/dist/use-cases/register-code-project.d.ts.map +1 -0
  630. package/dist/use-cases/register-code-project.js +27 -0
  631. package/dist/use-cases/register-code-project.js.map +1 -0
  632. package/dist/use-cases/unregister-code-project.d.ts +11 -0
  633. package/dist/use-cases/unregister-code-project.d.ts.map +1 -0
  634. package/dist/use-cases/unregister-code-project.js +19 -0
  635. package/dist/use-cases/unregister-code-project.js.map +1 -0
  636. package/dist/use-cases/watch-code.d.ts +33 -0
  637. package/dist/use-cases/watch-code.d.ts.map +1 -0
  638. package/dist/use-cases/watch-code.js +52 -0
  639. package/dist/use-cases/watch-code.js.map +1 -0
  640. package/dist/workspace/active-workspace.d.ts +26 -0
  641. package/dist/workspace/active-workspace.d.ts.map +1 -0
  642. package/dist/workspace/active-workspace.js +69 -0
  643. package/dist/workspace/active-workspace.js.map +1 -0
  644. package/dist/workspace/adf.d.ts.map +1 -1
  645. package/dist/workspace/adf.js +20 -19
  646. package/dist/workspace/adf.js.map +1 -1
  647. package/dist/workspace/config.d.ts +11 -0
  648. package/dist/workspace/config.d.ts.map +1 -1
  649. package/dist/workspace/config.js +76 -22
  650. package/dist/workspace/config.js.map +1 -1
  651. package/dist/workspace/hub-config.d.ts +74 -0
  652. package/dist/workspace/hub-config.d.ts.map +1 -0
  653. package/dist/workspace/hub-config.js +164 -0
  654. package/dist/workspace/hub-config.js.map +1 -0
  655. package/dist/workspace/registry.d.ts +23 -3
  656. package/dist/workspace/registry.d.ts.map +1 -1
  657. package/dist/workspace/registry.js +32 -14
  658. package/dist/workspace/registry.js.map +1 -1
  659. package/dist/workspace/resolver.d.ts +20 -18
  660. package/dist/workspace/resolver.d.ts.map +1 -1
  661. package/dist/workspace/resolver.js +100 -59
  662. package/dist/workspace/resolver.js.map +1 -1
  663. package/package.json +13 -4
  664. package/templates/code-docker-compose.yml +51 -0
  665. package/templates/env.example +16 -0
  666. package/templates/hub-config.env +65 -0
  667. package/templates/hub-docker-compose.yml +88 -0
  668. package/templates/migrate-to-hub.sql +90 -0
  669. package/dist/cli/workspaces.d.ts +0 -3
  670. package/dist/cli/workspaces.d.ts.map +0 -1
  671. package/dist/cli/workspaces.js +0 -34
  672. package/dist/cli/workspaces.js.map +0 -1
@@ -0,0 +1,467 @@
1
+ import { resolve, join } from 'node:path';
2
+ import { mkdirSync, writeFileSync, existsSync, readFileSync, unlinkSync, openSync } from 'node:fs';
3
+ import { spawn } from 'node:child_process';
4
+ import chalk from 'chalk';
5
+ import ora from 'ora';
6
+ import { hubDir, loadHubConfig } from '../workspace/hub-config.js';
7
+ import { openHubStore, resolveWorkspaceFlag } from './add/shared.js';
8
+ import { PostgresStorage } from '../adapters/postgres/index.js';
9
+ import { Neo4jCodeGraphStore } from '../adapters/neo4j/index.js';
10
+ import { QdrantCodeVectorStore } from '../adapters/qdrant/index.js';
11
+ import { TreeSitterParser } from '../adapters/tree-sitter/index.js';
12
+ import { TypeScriptLspClient } from '../adapters/lsp/index.js';
13
+ import { VoyageCodeEmbeddingProvider } from '../adapters/voyage/index.js';
14
+ import { LmStudioCodeEmbeddingProvider } from '../adapters/lmstudio/index.js';
15
+ import { OllamaCodeEmbeddingProvider } from '../adapters/ollama/index.js';
16
+ import { RegisterCodeProjectUseCase } from '../use-cases/register-code-project.js';
17
+ import { UnregisterCodeProjectUseCase } from '../use-cases/unregister-code-project.js';
18
+ import { IndexCodeUseCase } from '../use-cases/index-code.js';
19
+ import { WatchCodeUseCase } from '../use-cases/watch-code.js';
20
+ const WATCHERS_DIR = () => join(hubDir(), 'watchers');
21
+ function watcherPaths(projectId) {
22
+ return {
23
+ pidFile: join(WATCHERS_DIR(), `${projectId}.pid`),
24
+ logFile: join(WATCHERS_DIR(), `${projectId}.log`),
25
+ };
26
+ }
27
+ function readWatcherPid(projectId) {
28
+ const { pidFile } = watcherPaths(projectId);
29
+ if (!existsSync(pidFile)) {
30
+ return null;
31
+ }
32
+ const pid = parseInt(readFileSync(pidFile, 'utf8').trim(), 10);
33
+ if (Number.isNaN(pid) || pid === 0) {
34
+ return null;
35
+ }
36
+ try {
37
+ process.kill(pid, 0);
38
+ return pid;
39
+ }
40
+ catch {
41
+ try {
42
+ unlinkSync(pidFile);
43
+ }
44
+ catch { /* ignore */ }
45
+ return null;
46
+ }
47
+ }
48
+ function getStatusColor(status) {
49
+ if (status === 'completed') {
50
+ return chalk.green;
51
+ }
52
+ if (status === 'failed') {
53
+ return chalk.red;
54
+ }
55
+ return chalk.yellow;
56
+ }
57
+ function buildAdapters() {
58
+ const hub = loadHubConfig();
59
+ if (hub.embedding.provider === 'voyage' && (hub.embedding.voyageApiKey === undefined || hub.embedding.voyageApiKey === '')) {
60
+ throw new Error('CODE_EMBEDDING_PROVIDER=voyage requires VOYAGE_API_KEY in ~/.argustack/config.env');
61
+ }
62
+ const storage = new PostgresStorage(hub.db);
63
+ const graph = new Neo4jCodeGraphStore(hub.neo4j);
64
+ const vec = new QdrantCodeVectorStore({ url: hub.qdrant.url });
65
+ let embedding;
66
+ if (hub.embedding.provider === 'voyage' && hub.embedding.voyageApiKey !== undefined && hub.embedding.voyageApiKey !== '') {
67
+ embedding = new VoyageCodeEmbeddingProvider({ apiKey: hub.embedding.voyageApiKey });
68
+ }
69
+ else if (hub.embedding.provider === 'ollama' || hub.embedding.provider === 'custom') {
70
+ const url = hub.embedding.provider === 'custom'
71
+ ? hub.embedding.customUrl
72
+ : hub.embedding.ollamaUrl;
73
+ embedding = new OllamaCodeEmbeddingProvider({
74
+ model: hub.embedding.model,
75
+ dimensions: hub.embedding.dimensions,
76
+ ...(url !== undefined && url !== '' ? { url } : {}),
77
+ });
78
+ }
79
+ else {
80
+ const lmsOpts = {
81
+ model: hub.embedding.model,
82
+ dimensions: hub.embedding.dimensions,
83
+ };
84
+ if (hub.embedding.lmstudioUrl !== undefined && hub.embedding.lmstudioUrl !== '') {
85
+ lmsOpts.url = hub.embedding.lmstudioUrl;
86
+ }
87
+ if (hub.embedding.rerankModel !== undefined && hub.embedding.rerankModel !== '') {
88
+ lmsOpts.rerankModel = hub.embedding.rerankModel;
89
+ }
90
+ embedding = new LmStudioCodeEmbeddingProvider(lmsOpts);
91
+ }
92
+ return { storage, graph, vec, embedding };
93
+ }
94
+ async function closeAdapters(adapters) {
95
+ await adapters.graph.close();
96
+ await adapters.vec.close();
97
+ await adapters.storage.close();
98
+ }
99
+ export function registerCodeCommands(program) {
100
+ const code = program
101
+ .command('code')
102
+ .description('Local code intelligence — graph + semantic search of your codebase');
103
+ code
104
+ .command('init')
105
+ .description('[deprecated] Use `argustack init` — it now bootstraps the full hub including code-intel')
106
+ .action(() => {
107
+ console.log(chalk.yellow(' `argustack code init` is deprecated.'));
108
+ console.log(chalk.dim(' Use `argustack init` — it bootstraps the full hub (pg + neo4j + qdrant) and offers code-intel setup.'));
109
+ });
110
+ code
111
+ .command('register')
112
+ .description('Register a code project for indexing (workspaces.id === code_projects.id)')
113
+ .option('--workspace <name>', 'Target workspace (defaults to active)')
114
+ .option('--root <path>', 'Project root (default: CWD)')
115
+ .option('--language <lang>', 'Primary language (typescript|tsx|javascript|jsx)', 'typescript')
116
+ .action(async (options) => {
117
+ const { store, close: closeStore } = await openHubStore();
118
+ const workspaceId = await resolveWorkspaceFlag(store, options.workspace);
119
+ const workspace = await store.getById(workspaceId);
120
+ await closeStore();
121
+ if (workspace == null) {
122
+ throw new Error(`Workspace "${workspaceId}" not found.`);
123
+ }
124
+ const root = resolve(options.root ?? process.cwd());
125
+ const project = {
126
+ id: workspaceId,
127
+ name: workspace.name,
128
+ root,
129
+ language: options.language,
130
+ };
131
+ const adapters = buildAdapters();
132
+ try {
133
+ await adapters.storage.initialize();
134
+ await adapters.graph.initialize();
135
+ await adapters.vec.initialize();
136
+ const useCase = new RegisterCodeProjectUseCase(adapters.storage, adapters.graph, adapters.vec, adapters.embedding);
137
+ await useCase.execute(project);
138
+ console.log(chalk.green(`\n Registered '${project.name}' at ${project.root}`));
139
+ console.log(chalk.dim(` projectId: ${project.id}\n`));
140
+ }
141
+ finally {
142
+ await closeAdapters(adapters);
143
+ }
144
+ });
145
+ code
146
+ .command('unregister')
147
+ .description('Remove a code project and its indexed data')
148
+ .option('--workspace <name>', 'Target workspace (defaults to active)')
149
+ .action(async (options) => {
150
+ const { store, close: closeStore } = await openHubStore();
151
+ const projectId = await resolveWorkspaceFlag(store, options.workspace);
152
+ await closeStore();
153
+ const adapters = buildAdapters();
154
+ try {
155
+ const useCase = new UnregisterCodeProjectUseCase(adapters.storage, adapters.graph, adapters.vec);
156
+ await useCase.execute(projectId);
157
+ console.log(chalk.yellow(` Unregistered project (id: ${projectId})`));
158
+ }
159
+ finally {
160
+ await closeAdapters(adapters);
161
+ }
162
+ });
163
+ code
164
+ .command('index')
165
+ .description('Index code (incremental by hash; --full forces full reindex; --status shows last job)')
166
+ .option('--project <id>', 'Project id (default: auto-detect from CWD)')
167
+ .option('--full', 'Full reindex, ignore hashes')
168
+ .option('--status', 'Print latest index job + stats and exit (no indexing)')
169
+ .option('--lsp', 'Use typescript-language-server for cross-file call resolution (slower, more accurate)')
170
+ .action(async (options) => {
171
+ const adapters = buildAdapters();
172
+ const spinner = ora('Resolving project...').start();
173
+ let lspClient = null;
174
+ try {
175
+ const project = options.project !== undefined && options.project !== ''
176
+ ? await adapters.storage.getProjectById(options.project)
177
+ : await adapters.storage.getProjectByRoot(process.cwd());
178
+ if (project == null) {
179
+ spinner.fail('Project not registered. Run `argustack code register --name <name>`.');
180
+ process.exitCode = 1;
181
+ return;
182
+ }
183
+ if (options.status === true) {
184
+ spinner.stop();
185
+ const job = await adapters.storage.getLatestJob(project.id);
186
+ console.log('');
187
+ console.log(` ${chalk.bold(project.name)} ${chalk.dim(`(${project.id})`)}`);
188
+ console.log(chalk.dim(` root: ${project.root}`));
189
+ if (job == null) {
190
+ console.log(chalk.yellow(' No index jobs recorded yet. Run `argustack code index`.'));
191
+ console.log('');
192
+ return;
193
+ }
194
+ const statusColor = getStatusColor(job.status);
195
+ console.log(` last job: ${statusColor(job.status)} (${job.type}) #${String(job.id)}`);
196
+ console.log(chalk.dim(` started: ${job.startedAt}`));
197
+ if (job.completedAt !== undefined && job.completedAt !== '') {
198
+ console.log(chalk.dim(` completed: ${job.completedAt}`));
199
+ }
200
+ if (job.stats != null) {
201
+ console.log(chalk.dim(` stats: files=${String(job.stats.filesIndexed)} symbols=${String(job.stats.symbolsCreated)} chunks=${String(job.stats.chunksCreated)} edges=${String(job.stats.edgesCreated)} duration=${String(job.stats.durationMs)}ms`));
202
+ }
203
+ if (job.error !== undefined && job.error !== '') {
204
+ console.log(chalk.red(` error: ${job.error}`));
205
+ }
206
+ console.log('');
207
+ return;
208
+ }
209
+ spinner.text = `Indexing '${project.name}'...`;
210
+ const parser = new TreeSitterParser({ projectRoot: project.root });
211
+ if (options.lsp === true) {
212
+ const client = new TypeScriptLspClient();
213
+ try {
214
+ await client.start(project.root);
215
+ lspClient = client;
216
+ console.log(chalk.dim(' LSP enabled (typescript-language-server)'));
217
+ }
218
+ catch (err) {
219
+ console.warn(chalk.yellow(` LSP unavailable, falling back to heuristic resolver: ${err instanceof Error ? err.message : String(err)}`));
220
+ }
221
+ }
222
+ const useCase = new IndexCodeUseCase(parser, adapters.graph, adapters.vec, adapters.embedding, adapters.storage, lspClient);
223
+ const execInput = {
224
+ project,
225
+ onProgress: (event) => {
226
+ if (event.type === 'started') {
227
+ spinner.text = `Discovering files...`;
228
+ }
229
+ else if (event.type === 'fileIndexed') {
230
+ spinner.text = `Indexing ${event.relPath} (${String(event.index)}/${String(event.total)})`;
231
+ }
232
+ else if (event.type === 'fileSkipped') {
233
+ spinner.text = `Skipping ${event.relPath} (unchanged)`;
234
+ }
235
+ else {
236
+ spinner.text = `Finalizing...`;
237
+ }
238
+ },
239
+ };
240
+ if (options.full !== undefined) {
241
+ execInput.full = options.full;
242
+ }
243
+ const stats = await useCase.execute(execInput);
244
+ spinner.succeed(`Indexed ${String(stats.filesIndexed)} files / ${String(stats.symbolsCreated)} symbols / ${String(stats.chunksCreated)} chunks in ${String(stats.durationMs)}ms`);
245
+ console.log(chalk.dim(` edges: ${String(stats.edgesCreated)} | tokens: ~${String(stats.embeddingTokens)}`));
246
+ }
247
+ catch (err) {
248
+ spinner.fail('Index failed');
249
+ console.error(chalk.red(` ${err instanceof Error ? err.message : String(err)}`));
250
+ if (err instanceof Error && err.stack !== undefined && err.stack !== '') {
251
+ console.error(chalk.dim(err.stack));
252
+ }
253
+ process.exitCode = 1;
254
+ }
255
+ finally {
256
+ if (lspClient != null) {
257
+ try {
258
+ await lspClient.stop();
259
+ }
260
+ catch { /* ignore lsp stop errors */ }
261
+ }
262
+ await closeAdapters(adapters);
263
+ }
264
+ });
265
+ code
266
+ .command('list')
267
+ .description('List registered code projects')
268
+ .action(async () => {
269
+ const adapters = buildAdapters();
270
+ try {
271
+ const projects = await adapters.storage.listProjects();
272
+ if (projects.length === 0) {
273
+ console.log(chalk.dim('\n No code projects registered. Run `argustack code register --name <name>`.\n'));
274
+ return;
275
+ }
276
+ console.log('');
277
+ for (const p of projects) {
278
+ const lastIndexed = p.lastIndexedAt !== undefined && p.lastIndexedAt !== ''
279
+ ? new Date(p.lastIndexedAt).toLocaleString()
280
+ : chalk.dim('never');
281
+ console.log(` ${chalk.green('●')} ${chalk.bold(p.name)} ${chalk.dim(`(${p.id})`)}`);
282
+ console.log(chalk.dim(` ${p.root}`));
283
+ console.log(chalk.dim(` language: ${p.language} | last indexed: ${lastIndexed}`));
284
+ }
285
+ console.log('');
286
+ }
287
+ finally {
288
+ await closeAdapters(adapters);
289
+ }
290
+ });
291
+ code
292
+ .command('status')
293
+ .description('Show status of code intelligence stores and projects')
294
+ .action(async () => {
295
+ const adapters = buildAdapters();
296
+ try {
297
+ const projects = await adapters.storage.listProjects();
298
+ console.log('');
299
+ console.log(chalk.bold(' Containers:'));
300
+ console.log(` Neo4j: ${process.env['NEO4J_URI'] ?? 'not set'}`);
301
+ console.log(` Qdrant: ${process.env['QDRANT_URL'] ?? 'not set'}`);
302
+ console.log(` Postgres: ${process.env['DB_HOST'] ?? 'localhost'}:${process.env['DB_PORT'] ?? '5434'}`);
303
+ console.log('');
304
+ console.log(chalk.bold(` Projects (${String(projects.length)}):`));
305
+ for (const p of projects) {
306
+ const job = await adapters.storage.getLatestJob(p.id);
307
+ const jobInfo = job != null
308
+ ? `${job.status} (${job.type})`
309
+ : chalk.dim('no jobs');
310
+ const watcherPid = readWatcherPid(p.id);
311
+ const watcherInfo = watcherPid != null && watcherPid !== 0
312
+ ? chalk.cyan(` ⟳ watching (pid ${String(watcherPid)})`)
313
+ : '';
314
+ console.log(` ${chalk.green('●')} ${p.name} — ${jobInfo}${watcherInfo}`);
315
+ }
316
+ console.log('');
317
+ }
318
+ finally {
319
+ await closeAdapters(adapters);
320
+ }
321
+ });
322
+ code
323
+ .command('stats')
324
+ .description('Show stats for a code project')
325
+ .option('--workspace <name>', 'Target workspace (defaults to active)')
326
+ .action(async (options) => {
327
+ const { store, close: closeStore } = await openHubStore();
328
+ const id = await resolveWorkspaceFlag(store, options.workspace);
329
+ await closeStore();
330
+ const adapters = buildAdapters();
331
+ try {
332
+ const project = await adapters.storage.getProjectById(id);
333
+ if (project == null) {
334
+ console.log(chalk.red(`\n Project '${id}' not found.\n`));
335
+ process.exitCode = 1;
336
+ return;
337
+ }
338
+ const vecStats = await adapters.vec.getCollectionStats(project.id);
339
+ const lastJob = await adapters.storage.getLatestJob(project.id);
340
+ console.log('');
341
+ console.log(` ${chalk.bold(project.name)} ${chalk.dim(`(${project.id})`)}`);
342
+ console.log(` root: ${project.root}`);
343
+ console.log(` vectors: ${String(vecStats.pointCount)} (dim ${String(vecStats.vectorDim)})`);
344
+ if (lastJob != null) {
345
+ console.log(` last job: ${lastJob.status} ${lastJob.type} @ ${lastJob.startedAt}`);
346
+ if (lastJob.stats != null) {
347
+ console.log(chalk.dim(` files=${String(lastJob.stats.filesIndexed)} symbols=${String(lastJob.stats.symbolsCreated)} chunks=${String(lastJob.stats.chunksCreated)} tokens=${String(lastJob.stats.embeddingTokens)}`));
348
+ }
349
+ }
350
+ console.log('');
351
+ }
352
+ finally {
353
+ await closeAdapters(adapters);
354
+ }
355
+ });
356
+ code
357
+ .command('watch')
358
+ .description('Watch project for real-time indexing (chokidar + debounce)')
359
+ .option('--project <id>', 'Project id (default: auto-detect from CWD)')
360
+ .option('--daemon', 'Run in background, write PID file')
361
+ .option('--stop', 'Stop running daemon for this project')
362
+ .action(async (options) => {
363
+ mkdirSync(WATCHERS_DIR(), { recursive: true });
364
+ const adapters = buildAdapters();
365
+ try {
366
+ const project = options.project !== undefined && options.project !== ''
367
+ ? await adapters.storage.getProjectById(options.project)
368
+ : await adapters.storage.getProjectByRoot(process.cwd());
369
+ if (project == null) {
370
+ console.log(chalk.red('\n Project not registered. Run `argustack code register --name <name>`.\n'));
371
+ process.exitCode = 1;
372
+ return;
373
+ }
374
+ if (options.stop === true) {
375
+ const pid = readWatcherPid(project.id);
376
+ if (pid == null || pid === 0) {
377
+ console.log(chalk.yellow(` No running watcher for '${project.id}'.`));
378
+ return;
379
+ }
380
+ try {
381
+ process.kill(pid, 'SIGTERM');
382
+ const { pidFile } = watcherPaths(project.id);
383
+ try {
384
+ unlinkSync(pidFile);
385
+ }
386
+ catch { /* ignore */ }
387
+ console.log(chalk.green(` Stopped watcher (pid ${String(pid)}) for '${project.id}'.`));
388
+ }
389
+ catch (err) {
390
+ console.error(chalk.red(` Failed to stop: ${err instanceof Error ? err.message : String(err)}`));
391
+ }
392
+ return;
393
+ }
394
+ const existingPid = readWatcherPid(project.id);
395
+ if (existingPid != null && existingPid !== 0) {
396
+ console.log(chalk.yellow(` Watcher already running (pid ${String(existingPid)}) for '${project.id}'.`));
397
+ console.log(chalk.dim(` Use --stop to stop it, or check ${watcherPaths(project.id).logFile}`));
398
+ return;
399
+ }
400
+ if (options.daemon === true) {
401
+ const { pidFile, logFile } = watcherPaths(project.id);
402
+ const logFd = openSync(logFile, 'a');
403
+ const child = spawn(process.execPath, [process.argv[1] ?? '', 'code', 'watch', '--project', project.id], {
404
+ detached: true,
405
+ stdio: ['ignore', logFd, logFd],
406
+ env: process.env,
407
+ });
408
+ child.unref();
409
+ if (child.pid != null && child.pid !== 0) {
410
+ writeFileSync(pidFile, String(child.pid));
411
+ console.log(chalk.green(` Watcher started in background for '${project.id}'`));
412
+ console.log(chalk.dim(` pid: ${String(child.pid)}`));
413
+ console.log(chalk.dim(` log: ${logFile}`));
414
+ console.log(chalk.dim(` stop: argustack code watch --project ${project.id} --stop`));
415
+ }
416
+ else {
417
+ console.error(chalk.red(' Failed to spawn daemon.'));
418
+ process.exitCode = 1;
419
+ }
420
+ return;
421
+ }
422
+ const useCase = new WatchCodeUseCase(new TreeSitterParser({ projectRoot: project.root }), adapters.graph, adapters.vec, adapters.embedding, adapters.storage);
423
+ const controller = new AbortController();
424
+ const cleanup = (sig) => {
425
+ console.log(chalk.dim(`\n ${sig} received, stopping watcher...`));
426
+ controller.abort();
427
+ };
428
+ process.on('SIGINT', cleanup);
429
+ process.on('SIGTERM', cleanup);
430
+ const { pidFile } = watcherPaths(project.id);
431
+ writeFileSync(pidFile, String(process.pid));
432
+ console.log(chalk.green(` Watching '${project.name}' at ${project.root}`));
433
+ console.log(chalk.dim(' Save any TS file — change should propagate in ~2 sec. Ctrl+C to stop.\n'));
434
+ try {
435
+ await useCase.start({
436
+ project,
437
+ signal: controller.signal,
438
+ onEvent: (event) => {
439
+ const ts = new Date().toLocaleTimeString();
440
+ if (event.type === 'ready') {
441
+ console.log(chalk.dim(` [${ts}] ready`));
442
+ }
443
+ else if (event.type === 'fileIndexed') {
444
+ console.log(chalk.green(` [${ts}] indexed: ${event.path}`));
445
+ }
446
+ else if (event.type === 'fileRemoved') {
447
+ console.log(chalk.yellow(` [${ts}] removed: ${event.path}`));
448
+ }
449
+ else {
450
+ console.error(chalk.red(` [${ts}] error: ${event.error.message}`));
451
+ }
452
+ },
453
+ });
454
+ }
455
+ finally {
456
+ try {
457
+ unlinkSync(pidFile);
458
+ }
459
+ catch { /* ignore */ }
460
+ }
461
+ }
462
+ finally {
463
+ await closeAdapters(adapters);
464
+ }
465
+ });
466
+ }
467
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/cli/code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/cli/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8C3D"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/cli/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC3D"}
package/dist/cli/embed.js CHANGED
@@ -1,51 +1,46 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import dotenv from 'dotenv';
4
- import { requireWorkspace } from '../workspace/resolver.js';
5
3
  import { PostgresStorage } from '../adapters/postgres/index.js';
6
4
  import { OpenAIEmbeddingProvider } from '../adapters/openai/index.js';
7
5
  import { EmbedUseCase } from '../use-cases/embed.js';
6
+ import { loadHubConfig } from '../workspace/hub-config.js';
7
+ import { openHubStore, resolveWorkspaceFlag } from './add/shared.js';
8
8
  export function registerEmbedCommand(program) {
9
9
  program
10
10
  .command('embed')
11
- .description('Generate vector embeddings for issues (requires OPENAI_API_KEY)')
11
+ .description('Generate OpenAI embeddings for issues in a workspace')
12
+ .option('--workspace <name>', 'Target workspace (defaults to active)')
12
13
  .option('--batch-size <n>', 'Texts per API call (default: 100)', '100')
13
14
  .action(async (options) => {
15
+ const hub = loadHubConfig();
16
+ if (hub.embedding.openaiApiKey === undefined || hub.embedding.openaiApiKey === '') {
17
+ console.log(chalk.red('\n Missing OPENAI_API_KEY in ~/.argustack/config.env'));
18
+ process.exit(1);
19
+ }
20
+ const { store, close } = await openHubStore();
21
+ const storage = new PostgresStorage(hub.db);
14
22
  try {
15
- const workspaceRoot = requireWorkspace();
16
- dotenv.config({ path: `${workspaceRoot}/.env` });
17
- const apiKey = process.env['OPENAI_API_KEY'];
18
- if (!apiKey) {
19
- console.log(chalk.red('\n Missing OPENAI_API_KEY in .env'));
20
- console.log(chalk.dim(' Add: OPENAI_API_KEY=sk-...'));
21
- process.exit(1);
22
- }
23
- const storage = new PostgresStorage({
24
- host: process.env['DB_HOST'] ?? 'localhost',
25
- port: parseInt(process.env['DB_PORT'] ?? '5434', 10),
26
- user: process.env['DB_USER'] ?? 'argustack',
27
- password: process.env['DB_PASSWORD'] ?? 'argustack_local',
28
- database: process.env['DB_NAME'] ?? 'argustack',
29
- });
30
- const embeddingProvider = new OpenAIEmbeddingProvider({ apiKey });
23
+ const workspaceId = await resolveWorkspaceFlag(store, options.workspace);
24
+ const embeddingProvider = new OpenAIEmbeddingProvider({ apiKey: hub.embedding.openaiApiKey });
31
25
  const useCase = new EmbedUseCase(embeddingProvider, storage);
32
26
  const spinner = ora('Generating embeddings...').start();
33
27
  try {
34
- const result = await useCase.execute({
28
+ const result = await useCase.execute(workspaceId, {
35
29
  batchSize: parseInt(options.batchSize ?? '100', 10),
36
30
  onProgress: (msg) => { spinner.text = msg; },
37
31
  });
38
32
  spinner.succeed('Embedding complete!');
39
33
  console.log(chalk.green(` ${String(result.embeddedCount)} issues embedded, ${String(result.skippedCount)} skipped`));
40
- console.log('');
41
34
  }
42
- finally {
43
- await storage.close();
35
+ catch (err) {
36
+ spinner.fail('Embedding failed');
37
+ console.error(chalk.red(` ${err instanceof Error ? err.message : String(err)}`));
38
+ process.exit(1);
44
39
  }
45
40
  }
46
- catch (err) {
47
- console.error(chalk.red(`\n Error: ${err instanceof Error ? err.message : String(err)}`));
48
- process.exit(1);
41
+ finally {
42
+ await storage.close();
43
+ await close();
49
44
  }
50
45
  });
51
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/cli/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/cli/embed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOrE,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,EAAE,KAAK,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACzE,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;YAC9F,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;oBAChD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,EAAE,CAAC;oBACnD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC7C,CAAC,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;YACxH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkG3D"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE3D"}