argustack 0.2.0 → 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 (546) hide show
  1. package/README.md +31 -115
  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.js +4 -4
  67. package/dist/adapters/lmstudio/embedding-provider.js.map +1 -1
  68. package/dist/adapters/lsp/jsonrpc.js +1 -1
  69. package/dist/adapters/lsp/jsonrpc.js.map +1 -1
  70. package/dist/adapters/lsp/typescript-lsp.js +7 -7
  71. package/dist/adapters/lsp/typescript-lsp.js.map +1 -1
  72. package/dist/adapters/neo4j/client.js +2 -2
  73. package/dist/adapters/neo4j/client.js.map +1 -1
  74. package/dist/adapters/neo4j/graph-store.js +3 -3
  75. package/dist/adapters/neo4j/graph-store.js.map +1 -1
  76. package/dist/adapters/neo4j/mapper.js +4 -4
  77. package/dist/adapters/neo4j/mapper.js.map +1 -1
  78. package/dist/adapters/ollama/chat-llm.d.ts +24 -0
  79. package/dist/adapters/ollama/chat-llm.d.ts.map +1 -0
  80. package/dist/adapters/ollama/chat-llm.js +53 -0
  81. package/dist/adapters/ollama/chat-llm.js.map +1 -0
  82. package/dist/adapters/ollama/embedding-provider.d.ts +30 -0
  83. package/dist/adapters/ollama/embedding-provider.d.ts.map +1 -0
  84. package/dist/adapters/ollama/embedding-provider.js +124 -0
  85. package/dist/adapters/ollama/embedding-provider.js.map +1 -0
  86. package/dist/adapters/ollama/http-ollama-control.d.ts +24 -0
  87. package/dist/adapters/ollama/http-ollama-control.d.ts.map +1 -0
  88. package/dist/adapters/ollama/http-ollama-control.js +224 -0
  89. package/dist/adapters/ollama/http-ollama-control.js.map +1 -0
  90. package/dist/adapters/ollama/index.d.ts +6 -0
  91. package/dist/adapters/ollama/index.d.ts.map +1 -0
  92. package/dist/adapters/ollama/index.js +4 -0
  93. package/dist/adapters/ollama/index.js.map +1 -0
  94. package/dist/adapters/platform/index.d.ts +2 -0
  95. package/dist/adapters/platform/index.d.ts.map +1 -0
  96. package/dist/adapters/platform/index.js +2 -0
  97. package/dist/adapters/platform/index.js.map +1 -0
  98. package/dist/adapters/platform/node-platform-probe.d.ts +9 -0
  99. package/dist/adapters/platform/node-platform-probe.d.ts.map +1 -0
  100. package/dist/adapters/platform/node-platform-probe.js +88 -0
  101. package/dist/adapters/platform/node-platform-probe.js.map +1 -0
  102. package/dist/adapters/postgres/code-meta.js +13 -13
  103. package/dist/adapters/postgres/code-meta.js.map +1 -1
  104. package/dist/adapters/postgres/index.d.ts +2 -0
  105. package/dist/adapters/postgres/index.d.ts.map +1 -1
  106. package/dist/adapters/postgres/index.js +2 -0
  107. package/dist/adapters/postgres/index.js.map +1 -1
  108. package/dist/adapters/postgres/migrate-helpers.d.ts +43 -0
  109. package/dist/adapters/postgres/migrate-helpers.d.ts.map +1 -0
  110. package/dist/adapters/postgres/migrate-helpers.js +136 -0
  111. package/dist/adapters/postgres/migrate-helpers.js.map +1 -0
  112. package/dist/adapters/postgres/readiness-probe.d.ts +22 -0
  113. package/dist/adapters/postgres/readiness-probe.d.ts.map +1 -0
  114. package/dist/adapters/postgres/readiness-probe.js +47 -0
  115. package/dist/adapters/postgres/readiness-probe.js.map +1 -0
  116. package/dist/adapters/postgres/schema.d.ts +11 -1
  117. package/dist/adapters/postgres/schema.d.ts.map +1 -1
  118. package/dist/adapters/postgres/schema.js +159 -113
  119. package/dist/adapters/postgres/schema.js.map +1 -1
  120. package/dist/adapters/postgres/storage-commits.d.ts +13 -0
  121. package/dist/adapters/postgres/storage-commits.d.ts.map +1 -0
  122. package/dist/adapters/postgres/storage-commits.js +63 -0
  123. package/dist/adapters/postgres/storage-commits.js.map +1 -0
  124. package/dist/adapters/postgres/storage-dbschema.d.ts +14 -0
  125. package/dist/adapters/postgres/storage-dbschema.d.ts.map +1 -0
  126. package/dist/adapters/postgres/storage-dbschema.js +63 -0
  127. package/dist/adapters/postgres/storage-dbschema.js.map +1 -0
  128. package/dist/adapters/postgres/storage-graph.d.ts +18 -0
  129. package/dist/adapters/postgres/storage-graph.d.ts.map +1 -0
  130. package/dist/adapters/postgres/storage-graph.js +127 -0
  131. package/dist/adapters/postgres/storage-graph.js.map +1 -0
  132. package/dist/adapters/postgres/storage-issues.d.ts +26 -0
  133. package/dist/adapters/postgres/storage-issues.d.ts.map +1 -0
  134. package/dist/adapters/postgres/storage-issues.js +233 -0
  135. package/dist/adapters/postgres/storage-issues.js.map +1 -0
  136. package/dist/adapters/postgres/storage-prs.d.ts +15 -0
  137. package/dist/adapters/postgres/storage-prs.d.ts.map +1 -0
  138. package/dist/adapters/postgres/storage-prs.js +142 -0
  139. package/dist/adapters/postgres/storage-prs.js.map +1 -0
  140. package/dist/adapters/postgres/storage-query.d.ts +26 -0
  141. package/dist/adapters/postgres/storage-query.d.ts.map +1 -0
  142. package/dist/adapters/postgres/storage-query.js +74 -0
  143. package/dist/adapters/postgres/storage-query.js.map +1 -0
  144. package/dist/adapters/postgres/storage-search.d.ts +18 -0
  145. package/dist/adapters/postgres/storage-search.d.ts.map +1 -0
  146. package/dist/adapters/postgres/storage-search.js +90 -0
  147. package/dist/adapters/postgres/storage-search.js.map +1 -0
  148. package/dist/adapters/postgres/storage.d.ts +47 -31
  149. package/dist/adapters/postgres/storage.d.ts.map +1 -1
  150. package/dist/adapters/postgres/storage.js +86 -602
  151. package/dist/adapters/postgres/storage.js.map +1 -1
  152. package/dist/adapters/postgres/workspace-store.d.ts +26 -0
  153. package/dist/adapters/postgres/workspace-store.d.ts.map +1 -0
  154. package/dist/adapters/postgres/workspace-store.js +94 -0
  155. package/dist/adapters/postgres/workspace-store.js.map +1 -0
  156. package/dist/adapters/qdrant/client.js +1 -1
  157. package/dist/adapters/qdrant/client.js.map +1 -1
  158. package/dist/adapters/qdrant/mapper.d.ts.map +1 -1
  159. package/dist/adapters/qdrant/mapper.js +11 -4
  160. package/dist/adapters/qdrant/mapper.js.map +1 -1
  161. package/dist/adapters/qdrant/vector-store.d.ts +1 -0
  162. package/dist/adapters/qdrant/vector-store.d.ts.map +1 -1
  163. package/dist/adapters/qdrant/vector-store.js +40 -10
  164. package/dist/adapters/qdrant/vector-store.js.map +1 -1
  165. package/dist/adapters/tree-sitter/parser.d.ts.map +1 -1
  166. package/dist/adapters/tree-sitter/parser.js +12 -12
  167. package/dist/adapters/tree-sitter/parser.js.map +1 -1
  168. package/dist/adapters/voyage/embedding-provider.js +2 -2
  169. package/dist/adapters/voyage/embedding-provider.js.map +1 -1
  170. package/dist/cli/add/code.d.ts +3 -0
  171. package/dist/cli/add/code.d.ts.map +1 -0
  172. package/dist/cli/add/code.js +97 -0
  173. package/dist/cli/add/code.js.map +1 -0
  174. package/dist/cli/add/csv.d.ts +3 -0
  175. package/dist/cli/add/csv.d.ts.map +1 -0
  176. package/dist/cli/add/csv.js +26 -0
  177. package/dist/cli/add/csv.js.map +1 -0
  178. package/dist/cli/add/db.d.ts +3 -0
  179. package/dist/cli/add/db.d.ts.map +1 -0
  180. package/dist/cli/add/db.js +46 -0
  181. package/dist/cli/add/db.js.map +1 -0
  182. package/dist/cli/add/git.d.ts +3 -0
  183. package/dist/cli/add/git.d.ts.map +1 -0
  184. package/dist/cli/add/git.js +26 -0
  185. package/dist/cli/add/git.js.map +1 -0
  186. package/dist/cli/add/github.d.ts +3 -0
  187. package/dist/cli/add/github.d.ts.map +1 -0
  188. package/dist/cli/add/github.js +32 -0
  189. package/dist/cli/add/github.js.map +1 -0
  190. package/dist/cli/add/index.d.ts +3 -0
  191. package/dist/cli/add/index.d.ts.map +1 -0
  192. package/dist/cli/add/index.js +18 -0
  193. package/dist/cli/add/index.js.map +1 -0
  194. package/dist/cli/add/jira.d.ts +3 -0
  195. package/dist/cli/add/jira.d.ts.map +1 -0
  196. package/dist/cli/add/jira.js +45 -0
  197. package/dist/cli/add/jira.js.map +1 -0
  198. package/dist/cli/add/shared.d.ts +31 -0
  199. package/dist/cli/add/shared.d.ts.map +1 -0
  200. package/dist/cli/add/shared.js +102 -0
  201. package/dist/cli/add/shared.js.map +1 -0
  202. package/dist/cli/board-server.js +1 -1
  203. package/dist/cli/board-server.js.map +1 -1
  204. package/dist/cli/board.d.ts.map +1 -1
  205. package/dist/cli/board.js +11 -12
  206. package/dist/cli/board.js.map +1 -1
  207. package/dist/cli/code.d.ts.map +1 -1
  208. package/dist/cli/code.js +95 -193
  209. package/dist/cli/code.js.map +1 -1
  210. package/dist/cli/embed.d.ts.map +1 -1
  211. package/dist/cli/embed.js +21 -26
  212. package/dist/cli/embed.js.map +1 -1
  213. package/dist/cli/graph.d.ts.map +1 -1
  214. package/dist/cli/graph.js +37 -55
  215. package/dist/cli/graph.js.map +1 -1
  216. package/dist/cli/index.js +28 -25
  217. package/dist/cli/index.js.map +1 -1
  218. package/dist/cli/init/cleanup.d.ts +11 -0
  219. package/dist/cli/init/cleanup.d.ts.map +1 -0
  220. package/dist/cli/init/cleanup.js +39 -0
  221. package/dist/cli/init/cleanup.js.map +1 -0
  222. package/dist/cli/init/generators.js +27 -27
  223. package/dist/cli/init/generators.js.map +1 -1
  224. package/dist/cli/init/index.d.ts +0 -10
  225. package/dist/cli/init/index.d.ts.map +1 -1
  226. package/dist/cli/init/index.js +386 -354
  227. package/dist/cli/init/index.js.map +1 -1
  228. package/dist/cli/init/presenter.d.ts +30 -0
  229. package/dist/cli/init/presenter.d.ts.map +1 -0
  230. package/dist/cli/init/presenter.js +152 -0
  231. package/dist/cli/init/presenter.js.map +1 -0
  232. package/dist/cli/init/prompts.d.ts +28 -0
  233. package/dist/cli/init/prompts.d.ts.map +1 -0
  234. package/dist/cli/init/prompts.js +110 -0
  235. package/dist/cli/init/prompts.js.map +1 -0
  236. package/dist/cli/init/setup-csv.js +2 -2
  237. package/dist/cli/init/setup-csv.js.map +1 -1
  238. package/dist/cli/init/setup-db.d.ts.map +1 -1
  239. package/dist/cli/init/setup-db.js +17 -14
  240. package/dist/cli/init/setup-db.js.map +1 -1
  241. package/dist/cli/init/setup-git.js +16 -16
  242. package/dist/cli/init/setup-git.js.map +1 -1
  243. package/dist/cli/init/setup-github.d.ts.map +1 -1
  244. package/dist/cli/init/setup-github.js +7 -5
  245. package/dist/cli/init/setup-github.js.map +1 -1
  246. package/dist/cli/init/setup-jira.d.ts.map +1 -1
  247. package/dist/cli/init/setup-jira.js +11 -9
  248. package/dist/cli/init/setup-jira.js.map +1 -1
  249. package/dist/cli/init/types.d.ts +4 -0
  250. package/dist/cli/init/types.d.ts.map +1 -1
  251. package/dist/cli/init/types.js +4 -4
  252. package/dist/cli/init/types.js.map +1 -1
  253. package/dist/cli/mcp-install.d.ts +1 -1
  254. package/dist/cli/mcp-install.d.ts.map +1 -1
  255. package/dist/cli/mcp-install.js +10 -24
  256. package/dist/cli/mcp-install.js.map +1 -1
  257. package/dist/cli/migrate-to-hub-impl.d.ts +51 -0
  258. package/dist/cli/migrate-to-hub-impl.d.ts.map +1 -0
  259. package/dist/cli/migrate-to-hub-impl.js +171 -0
  260. package/dist/cli/migrate-to-hub-impl.js.map +1 -0
  261. package/dist/cli/migrate-to-hub.d.ts +3 -0
  262. package/dist/cli/migrate-to-hub.d.ts.map +1 -0
  263. package/dist/cli/migrate-to-hub.js +90 -0
  264. package/dist/cli/migrate-to-hub.js.map +1 -0
  265. package/dist/cli/push.d.ts.map +1 -1
  266. package/dist/cli/push.js +62 -65
  267. package/dist/cli/push.js.map +1 -1
  268. package/dist/cli/sources.d.ts +0 -7
  269. package/dist/cli/sources.d.ts.map +1 -1
  270. package/dist/cli/sources.js +47 -112
  271. package/dist/cli/sources.js.map +1 -1
  272. package/dist/cli/status.d.ts +0 -3
  273. package/dist/cli/status.d.ts.map +1 -1
  274. package/dist/cli/status.js +95 -70
  275. package/dist/cli/status.js.map +1 -1
  276. package/dist/cli/sync.d.ts +0 -10
  277. package/dist/cli/sync.d.ts.map +1 -1
  278. package/dist/cli/sync.js +186 -317
  279. package/dist/cli/sync.js.map +1 -1
  280. package/dist/cli/workspace/add.d.ts +3 -0
  281. package/dist/cli/workspace/add.d.ts.map +1 -0
  282. package/dist/cli/workspace/add.js +38 -0
  283. package/dist/cli/workspace/add.js.map +1 -0
  284. package/dist/cli/workspace/index.d.ts +3 -0
  285. package/dist/cli/workspace/index.d.ts.map +1 -0
  286. package/dist/cli/workspace/index.js +16 -0
  287. package/dist/cli/workspace/index.js.map +1 -0
  288. package/dist/cli/workspace/info.d.ts +3 -0
  289. package/dist/cli/workspace/info.d.ts.map +1 -0
  290. package/dist/cli/workspace/info.js +69 -0
  291. package/dist/cli/workspace/info.js.map +1 -0
  292. package/dist/cli/workspace/list.d.ts +3 -0
  293. package/dist/cli/workspace/list.d.ts.map +1 -0
  294. package/dist/cli/workspace/list.js +36 -0
  295. package/dist/cli/workspace/list.js.map +1 -0
  296. package/dist/cli/workspace/remove.d.ts +3 -0
  297. package/dist/cli/workspace/remove.d.ts.map +1 -0
  298. package/dist/cli/workspace/remove.js +43 -0
  299. package/dist/cli/workspace/remove.js.map +1 -0
  300. package/dist/cli/workspace/shared.d.ts +7 -0
  301. package/dist/cli/workspace/shared.d.ts.map +1 -0
  302. package/dist/cli/workspace/shared.js +17 -0
  303. package/dist/cli/workspace/shared.js.map +1 -0
  304. package/dist/cli/workspace/use.d.ts +3 -0
  305. package/dist/cli/workspace/use.d.ts.map +1 -0
  306. package/dist/cli/workspace/use.js +27 -0
  307. package/dist/cli/workspace/use.js.map +1 -0
  308. package/dist/code-intel/file-discovery.js +3 -3
  309. package/dist/code-intel/file-discovery.js.map +1 -1
  310. package/dist/code-intel/indexer.js +8 -8
  311. package/dist/code-intel/indexer.js.map +1 -1
  312. package/dist/code-intel/lsp-resolver.js +5 -5
  313. package/dist/code-intel/lsp-resolver.js.map +1 -1
  314. package/dist/code-intel/ranker.d.ts +14 -0
  315. package/dist/code-intel/ranker.d.ts.map +1 -1
  316. package/dist/code-intel/ranker.js +54 -0
  317. package/dist/code-intel/ranker.js.map +1 -1
  318. package/dist/code-intel/resolver.js +4 -4
  319. package/dist/code-intel/resolver.js.map +1 -1
  320. package/dist/code-intel/tsconfig-paths.js +2 -2
  321. package/dist/code-intel/tsconfig-paths.js.map +1 -1
  322. package/dist/code-intel/watcher.js +4 -4
  323. package/dist/code-intel/watcher.js.map +1 -1
  324. package/dist/core/board/board-column.value-object.js +1 -1
  325. package/dist/core/board/board-column.value-object.js.map +1 -1
  326. package/dist/core/board/pipeline.value-object.js +1 -1
  327. package/dist/core/board/pipeline.value-object.js.map +1 -1
  328. package/dist/core/board/skill-execution.entity.js +1 -1
  329. package/dist/core/board/skill-execution.entity.js.map +1 -1
  330. package/dist/core/board/task-title.value-object.js +1 -1
  331. package/dist/core/board/task-title.value-object.js.map +1 -1
  332. package/dist/core/ports/chat-llm.d.ts +36 -0
  333. package/dist/core/ports/chat-llm.d.ts.map +1 -0
  334. package/dist/core/ports/chat-llm.js +2 -0
  335. package/dist/core/ports/chat-llm.js.map +1 -0
  336. package/dist/core/ports/code-meta.d.ts +4 -0
  337. package/dist/core/ports/code-meta.d.ts.map +1 -1
  338. package/dist/core/ports/code-vector-store.d.ts +5 -0
  339. package/dist/core/ports/code-vector-store.d.ts.map +1 -1
  340. package/dist/core/ports/docker-control.d.ts +44 -0
  341. package/dist/core/ports/docker-control.d.ts.map +1 -0
  342. package/dist/core/ports/docker-control.js +8 -0
  343. package/dist/core/ports/docker-control.js.map +1 -0
  344. package/dist/core/ports/hub-readiness-probe.d.ts +22 -0
  345. package/dist/core/ports/hub-readiness-probe.d.ts.map +1 -0
  346. package/dist/core/ports/hub-readiness-probe.js +2 -0
  347. package/dist/core/ports/hub-readiness-probe.js.map +1 -0
  348. package/dist/core/ports/index.d.ts +4 -0
  349. package/dist/core/ports/index.d.ts.map +1 -1
  350. package/dist/core/ports/ollama-control.d.ts +61 -0
  351. package/dist/core/ports/ollama-control.d.ts.map +1 -0
  352. package/dist/core/ports/ollama-control.js +7 -0
  353. package/dist/core/ports/ollama-control.js.map +1 -0
  354. package/dist/core/ports/platform-probe.d.ts +47 -0
  355. package/dist/core/ports/platform-probe.d.ts.map +1 -0
  356. package/dist/core/ports/platform-probe.js +8 -0
  357. package/dist/core/ports/platform-probe.js.map +1 -0
  358. package/dist/core/ports/storage.d.ts +62 -29
  359. package/dist/core/ports/storage.d.ts.map +1 -1
  360. package/dist/core/ports/workspace-store.d.ts +52 -0
  361. package/dist/core/ports/workspace-store.d.ts.map +1 -0
  362. package/dist/core/ports/workspace-store.js +2 -0
  363. package/dist/core/ports/workspace-store.js.map +1 -0
  364. package/dist/core/types/index.d.ts +2 -0
  365. package/dist/core/types/index.d.ts.map +1 -1
  366. package/dist/core/types/init.d.ts +29 -0
  367. package/dist/core/types/init.d.ts.map +1 -0
  368. package/dist/core/types/init.js +2 -0
  369. package/dist/core/types/init.js.map +1 -0
  370. package/dist/core/types/workspace.d.ts +78 -0
  371. package/dist/core/types/workspace.d.ts.map +1 -0
  372. package/dist/core/types/workspace.js +2 -0
  373. package/dist/core/types/workspace.js.map +1 -0
  374. package/dist/mcp/helpers.d.ts +121 -30
  375. package/dist/mcp/helpers.d.ts.map +1 -1
  376. package/dist/mcp/helpers.js +240 -264
  377. package/dist/mcp/helpers.js.map +1 -1
  378. package/dist/mcp/server.d.ts.map +1 -1
  379. package/dist/mcp/server.js +43 -5
  380. package/dist/mcp/server.js.map +1 -1
  381. package/dist/mcp/tools/code-graph.d.ts.map +1 -1
  382. package/dist/mcp/tools/code-graph.js +109 -74
  383. package/dist/mcp/tools/code-graph.js.map +1 -1
  384. package/dist/mcp/tools/code-hybrid.d.ts.map +1 -1
  385. package/dist/mcp/tools/code-hybrid.js +75 -51
  386. package/dist/mcp/tools/code-hybrid.js.map +1 -1
  387. package/dist/mcp/tools/code-search.d.ts.map +1 -1
  388. package/dist/mcp/tools/code-search.js +32 -32
  389. package/dist/mcp/tools/code-search.js.map +1 -1
  390. package/dist/mcp/tools/database.d.ts.map +1 -1
  391. package/dist/mcp/tools/database.js +86 -97
  392. package/dist/mcp/tools/database.js.map +1 -1
  393. package/dist/mcp/tools/estimate.d.ts.map +1 -1
  394. package/dist/mcp/tools/estimate.js +106 -82
  395. package/dist/mcp/tools/estimate.js.map +1 -1
  396. package/dist/mcp/tools/graph.d.ts.map +1 -1
  397. package/dist/mcp/tools/graph.js +142 -157
  398. package/dist/mcp/tools/graph.js.map +1 -1
  399. package/dist/mcp/tools/issue.d.ts.map +1 -1
  400. package/dist/mcp/tools/issue.js +172 -172
  401. package/dist/mcp/tools/issue.js.map +1 -1
  402. package/dist/mcp/tools/push.d.ts.map +1 -1
  403. package/dist/mcp/tools/push.js +70 -100
  404. package/dist/mcp/tools/push.js.map +1 -1
  405. package/dist/mcp/tools/query.d.ts.map +1 -1
  406. package/dist/mcp/tools/query.js +187 -246
  407. package/dist/mcp/tools/query.js.map +1 -1
  408. package/dist/mcp/tools/search.d.ts.map +1 -1
  409. package/dist/mcp/tools/search.js +25 -22
  410. package/dist/mcp/tools/search.js.map +1 -1
  411. package/dist/mcp/tools/workspace.d.ts.map +1 -1
  412. package/dist/mcp/tools/workspace.js +120 -73
  413. package/dist/mcp/tools/workspace.js.map +1 -1
  414. package/dist/use-cases/build-graph.d.ts +1 -1
  415. package/dist/use-cases/build-graph.d.ts.map +1 -1
  416. package/dist/use-cases/build-graph.js +63 -50
  417. package/dist/use-cases/build-graph.js.map +1 -1
  418. package/dist/use-cases/code-search.d.ts +29 -5
  419. package/dist/use-cases/code-search.d.ts.map +1 -1
  420. package/dist/use-cases/code-search.js +98 -9
  421. package/dist/use-cases/code-search.js.map +1 -1
  422. package/dist/use-cases/embed.d.ts +1 -1
  423. package/dist/use-cases/embed.d.ts.map +1 -1
  424. package/dist/use-cases/embed.js +5 -5
  425. package/dist/use-cases/embed.js.map +1 -1
  426. package/dist/use-cases/index-code.js +2 -2
  427. package/dist/use-cases/index-code.js.map +1 -1
  428. package/dist/use-cases/init/bootstrap-hub.d.ts +55 -0
  429. package/dist/use-cases/init/bootstrap-hub.d.ts.map +1 -0
  430. package/dist/use-cases/init/bootstrap-hub.js +116 -0
  431. package/dist/use-cases/init/bootstrap-hub.js.map +1 -0
  432. package/dist/use-cases/init/check-dims-conflict.d.ts +33 -0
  433. package/dist/use-cases/init/check-dims-conflict.d.ts.map +1 -0
  434. package/dist/use-cases/init/check-dims-conflict.js +39 -0
  435. package/dist/use-cases/init/check-dims-conflict.js.map +1 -0
  436. package/dist/use-cases/init/check-hub-exists.d.ts +23 -0
  437. package/dist/use-cases/init/check-hub-exists.d.ts.map +1 -0
  438. package/dist/use-cases/init/check-hub-exists.js +39 -0
  439. package/dist/use-cases/init/check-hub-exists.js.map +1 -0
  440. package/dist/use-cases/init/check-ports.d.ts +18 -0
  441. package/dist/use-cases/init/check-ports.d.ts.map +1 -0
  442. package/dist/use-cases/init/check-ports.js +25 -0
  443. package/dist/use-cases/init/check-ports.js.map +1 -0
  444. package/dist/use-cases/init/check-versions.d.ts +37 -0
  445. package/dist/use-cases/init/check-versions.d.ts.map +1 -0
  446. package/dist/use-cases/init/check-versions.js +50 -0
  447. package/dist/use-cases/init/check-versions.js.map +1 -0
  448. package/dist/use-cases/init/clear-stale-active.d.ts +20 -0
  449. package/dist/use-cases/init/clear-stale-active.d.ts.map +1 -0
  450. package/dist/use-cases/init/clear-stale-active.js +26 -0
  451. package/dist/use-cases/init/clear-stale-active.js.map +1 -0
  452. package/dist/use-cases/init/ensure-embedding-model.d.ts +20 -0
  453. package/dist/use-cases/init/ensure-embedding-model.d.ts.map +1 -0
  454. package/dist/use-cases/init/ensure-embedding-model.js +24 -0
  455. package/dist/use-cases/init/ensure-embedding-model.js.map +1 -0
  456. package/dist/use-cases/init/ensure-ollama-running.d.ts +19 -0
  457. package/dist/use-cases/init/ensure-ollama-running.d.ts.map +1 -0
  458. package/dist/use-cases/init/ensure-ollama-running.js +24 -0
  459. package/dist/use-cases/init/ensure-ollama-running.js.map +1 -0
  460. package/dist/use-cases/init/health-check-existing-llm.d.ts +25 -0
  461. package/dist/use-cases/init/health-check-existing-llm.d.ts.map +1 -0
  462. package/dist/use-cases/init/health-check-existing-llm.js +42 -0
  463. package/dist/use-cases/init/health-check-existing-llm.js.map +1 -0
  464. package/dist/use-cases/init/install-ollama.d.ts +27 -0
  465. package/dist/use-cases/init/install-ollama.d.ts.map +1 -0
  466. package/dist/use-cases/init/install-ollama.js +51 -0
  467. package/dist/use-cases/init/install-ollama.js.map +1 -0
  468. package/dist/use-cases/init/probe-llm.d.ts +32 -0
  469. package/dist/use-cases/init/probe-llm.d.ts.map +1 -0
  470. package/dist/use-cases/init/probe-llm.js +42 -0
  471. package/dist/use-cases/init/probe-llm.js.map +1 -0
  472. package/dist/use-cases/init/resolve-hub-ports.d.ts +46 -0
  473. package/dist/use-cases/init/resolve-hub-ports.d.ts.map +1 -0
  474. package/dist/use-cases/init/resolve-hub-ports.js +77 -0
  475. package/dist/use-cases/init/resolve-hub-ports.js.map +1 -0
  476. package/dist/use-cases/init/validate-workspace-name.d.ts +26 -0
  477. package/dist/use-cases/init/validate-workspace-name.d.ts.map +1 -0
  478. package/dist/use-cases/init/validate-workspace-name.js +39 -0
  479. package/dist/use-cases/init/validate-workspace-name.js.map +1 -0
  480. package/dist/use-cases/init/wait-for-docker.d.ts +16 -0
  481. package/dist/use-cases/init/wait-for-docker.d.ts.map +1 -0
  482. package/dist/use-cases/init/wait-for-docker.js +16 -0
  483. package/dist/use-cases/init/wait-for-docker.js.map +1 -0
  484. package/dist/use-cases/init/write-config-env.d.ts +32 -0
  485. package/dist/use-cases/init/write-config-env.d.ts.map +1 -0
  486. package/dist/use-cases/init/write-config-env.js +118 -0
  487. package/dist/use-cases/init/write-config-env.js.map +1 -0
  488. package/dist/use-cases/move-task.js +2 -2
  489. package/dist/use-cases/move-task.js.map +1 -1
  490. package/dist/use-cases/pull-db.d.ts +1 -1
  491. package/dist/use-cases/pull-db.d.ts.map +1 -1
  492. package/dist/use-cases/pull-db.js +3 -3
  493. package/dist/use-cases/pull-db.js.map +1 -1
  494. package/dist/use-cases/pull-git.d.ts +1 -1
  495. package/dist/use-cases/pull-git.d.ts.map +1 -1
  496. package/dist/use-cases/pull-git.js +5 -5
  497. package/dist/use-cases/pull-git.js.map +1 -1
  498. package/dist/use-cases/pull-github.d.ts +1 -1
  499. package/dist/use-cases/pull-github.d.ts.map +1 -1
  500. package/dist/use-cases/pull-github.js +6 -6
  501. package/dist/use-cases/pull-github.js.map +1 -1
  502. package/dist/use-cases/pull.d.ts +1 -1
  503. package/dist/use-cases/pull.d.ts.map +1 -1
  504. package/dist/use-cases/pull.js +6 -6
  505. package/dist/use-cases/pull.js.map +1 -1
  506. package/dist/use-cases/push.d.ts +2 -2
  507. package/dist/use-cases/push.d.ts.map +1 -1
  508. package/dist/use-cases/push.js +8 -8
  509. package/dist/use-cases/push.js.map +1 -1
  510. package/dist/use-cases/register-code-project.d.ts +8 -0
  511. package/dist/use-cases/register-code-project.d.ts.map +1 -1
  512. package/dist/use-cases/register-code-project.js +8 -0
  513. package/dist/use-cases/register-code-project.js.map +1 -1
  514. package/dist/use-cases/watch-code.js +1 -1
  515. package/dist/use-cases/watch-code.js.map +1 -1
  516. package/dist/workspace/active-workspace.d.ts +26 -0
  517. package/dist/workspace/active-workspace.d.ts.map +1 -0
  518. package/dist/workspace/active-workspace.js +69 -0
  519. package/dist/workspace/active-workspace.js.map +1 -0
  520. package/dist/workspace/adf.d.ts.map +1 -1
  521. package/dist/workspace/adf.js +20 -19
  522. package/dist/workspace/adf.js.map +1 -1
  523. package/dist/workspace/config.d.ts +11 -0
  524. package/dist/workspace/config.d.ts.map +1 -1
  525. package/dist/workspace/config.js +76 -22
  526. package/dist/workspace/config.js.map +1 -1
  527. package/dist/workspace/hub-config.d.ts +74 -0
  528. package/dist/workspace/hub-config.d.ts.map +1 -0
  529. package/dist/workspace/hub-config.js +164 -0
  530. package/dist/workspace/hub-config.js.map +1 -0
  531. package/dist/workspace/registry.d.ts +23 -3
  532. package/dist/workspace/registry.d.ts.map +1 -1
  533. package/dist/workspace/registry.js +32 -14
  534. package/dist/workspace/registry.js.map +1 -1
  535. package/dist/workspace/resolver.d.ts +20 -18
  536. package/dist/workspace/resolver.d.ts.map +1 -1
  537. package/dist/workspace/resolver.js +100 -59
  538. package/dist/workspace/resolver.js.map +1 -1
  539. package/package.json +4 -2
  540. package/templates/hub-config.env +65 -0
  541. package/templates/hub-docker-compose.yml +88 -0
  542. package/templates/migrate-to-hub.sql +90 -0
  543. package/dist/cli/workspaces.d.ts +0 -3
  544. package/dist/cli/workspaces.d.ts.map +0 -1
  545. package/dist/cli/workspaces.js +0 -34
  546. package/dist/cli/workspaces.js.map +0 -1
@@ -0,0 +1,164 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ const HUB_DIR_NAME = '.argustack';
5
+ const CONFIG_ENV_FILE = 'config.env';
6
+ let cached = null;
7
+ /**
8
+ * Resolve the hub root directory (`~/.argustack`). Honours `ARGUSTACK_HUB_DIR`
9
+ * env var so tests can isolate state without touching `$HOME`.
10
+ */
11
+ export function hubDir() {
12
+ return process.env['ARGUSTACK_HUB_DIR'] ?? join(homedir(), HUB_DIR_NAME);
13
+ }
14
+ export function hubConfigPath() {
15
+ return join(hubDir(), CONFIG_ENV_FILE);
16
+ }
17
+ /**
18
+ * Load `~/.argustack/config.env` and merge with `process.env`.
19
+ * Cached after first call — tests that need a fresh load must call
20
+ * {@link resetHubConfigCache}.
21
+ *
22
+ * @throws Error when `config.env` does not exist (hub not initialised).
23
+ */
24
+ export function loadHubConfig() {
25
+ if (cached != null) {
26
+ return cached;
27
+ }
28
+ const path = hubConfigPath();
29
+ if (!existsSync(path)) {
30
+ throw new Error(`Hub config not found at ${path}. Run "argustack init" to bootstrap the hub.`);
31
+ }
32
+ const env = parseEnvFile(readFileSync(path, 'utf-8'));
33
+ const merged = { ...env, ...process.env };
34
+ const rawProvider = merged['CODE_EMBEDDING_PROVIDER']?.toLowerCase();
35
+ const userConfigured = typeof rawProvider === 'string' && rawProvider.length > 0;
36
+ const provider = pickEmbeddingProvider(rawProvider);
37
+ const credentials = {};
38
+ if (merged['JIRA_URL'] !== undefined && merged['JIRA_URL'] !== '') {
39
+ credentials.jiraUrl = merged['JIRA_URL'];
40
+ }
41
+ if (merged['JIRA_EMAIL'] !== undefined && merged['JIRA_EMAIL'] !== '') {
42
+ credentials.jiraEmail = merged['JIRA_EMAIL'];
43
+ }
44
+ if (merged['JIRA_API_TOKEN'] !== undefined && merged['JIRA_API_TOKEN'] !== '') {
45
+ credentials.jiraApiToken = merged['JIRA_API_TOKEN'];
46
+ }
47
+ if (merged['JIRA_PROXY_TOKEN'] !== undefined && merged['JIRA_PROXY_TOKEN'] !== '') {
48
+ credentials.jiraProxyToken = merged['JIRA_PROXY_TOKEN'];
49
+ }
50
+ if (merged['GITHUB_TOKEN'] !== undefined && merged['GITHUB_TOKEN'] !== '') {
51
+ credentials.githubToken = merged['GITHUB_TOKEN'];
52
+ }
53
+ const config = {
54
+ hubDir: hubDir(),
55
+ db: {
56
+ host: merged['DB_HOST'] ?? 'localhost',
57
+ port: Number(merged['DB_PORT'] ?? '15432'),
58
+ user: merged['DB_USER'] ?? 'argustack',
59
+ password: merged['DB_PASSWORD'] ?? 'argustack_hub',
60
+ database: merged['DB_NAME'] ?? 'argustack_hub',
61
+ },
62
+ neo4j: {
63
+ uri: merged['NEO4J_URI'] ?? 'bolt://localhost:15435',
64
+ user: merged['NEO4J_USER'] ?? 'neo4j',
65
+ password: merged['NEO4J_PASSWORD'] ?? 'argustack_local',
66
+ },
67
+ qdrant: {
68
+ url: merged['QDRANT_URL'] ?? 'http://localhost:15436',
69
+ },
70
+ embedding: buildEmbedding(provider, userConfigured, merged),
71
+ chatLlm: buildChatLlm(merged),
72
+ credentials,
73
+ };
74
+ cached = config;
75
+ return config;
76
+ }
77
+ function pickEmbeddingProvider(rawProvider) {
78
+ if (rawProvider === 'voyage') {
79
+ return 'voyage';
80
+ }
81
+ if (rawProvider === 'lmstudio') {
82
+ return 'lmstudio';
83
+ }
84
+ if (rawProvider === 'custom') {
85
+ return 'custom';
86
+ }
87
+ return 'ollama';
88
+ }
89
+ function buildChatLlm(env) {
90
+ const model = env['CHAT_LLM_MODEL'];
91
+ if (model === undefined || model.length === 0) {
92
+ return null;
93
+ }
94
+ const rawProvider = env['CHAT_LLM_PROVIDER']?.toLowerCase();
95
+ const provider = rawProvider === 'lmstudio' || rawProvider === 'custom' ? rawProvider : 'ollama';
96
+ const url = env['CHAT_LLM_URL'];
97
+ return {
98
+ provider,
99
+ model,
100
+ ...(url !== undefined && url.length > 0 ? { url } : {}),
101
+ };
102
+ }
103
+ function buildEmbedding(provider, userConfigured, env) {
104
+ const defaults = {
105
+ ollama: { model: 'nomic-embed-text', dims: 768 },
106
+ lmstudio: { model: 'text-embedding-qwen3-embedding-4b', dims: 1024 },
107
+ voyage: { model: 'voyage-code-3', dims: 1024 },
108
+ custom: { model: 'unknown', dims: 768 },
109
+ };
110
+ const d = defaults[provider];
111
+ const config = {
112
+ provider,
113
+ userConfigured,
114
+ model: env['EMBEDDING_MODEL'] ?? d.model,
115
+ dimensions: Number(env['EMBEDDING_DIMS'] ?? String(d.dims)),
116
+ };
117
+ if (env['LMSTUDIO_URL'] !== undefined && env['LMSTUDIO_URL'] !== '') {
118
+ config.lmstudioUrl = env['LMSTUDIO_URL'];
119
+ }
120
+ if (env['OLLAMA_URL'] !== undefined && env['OLLAMA_URL'] !== '') {
121
+ config.ollamaUrl = env['OLLAMA_URL'];
122
+ }
123
+ if (env['CUSTOM_EMBEDDING_URL'] !== undefined && env['CUSTOM_EMBEDDING_URL'] !== '') {
124
+ config.customUrl = env['CUSTOM_EMBEDDING_URL'];
125
+ }
126
+ if (env['RERANK_MODEL'] !== undefined && env['RERANK_MODEL'] !== '') {
127
+ config.rerankModel = env['RERANK_MODEL'];
128
+ }
129
+ if (env['VOYAGE_API_KEY'] !== undefined && env['VOYAGE_API_KEY'] !== '') {
130
+ config.voyageApiKey = env['VOYAGE_API_KEY'];
131
+ }
132
+ if (env['OPENAI_API_KEY'] !== undefined && env['OPENAI_API_KEY'] !== '') {
133
+ config.openaiApiKey = env['OPENAI_API_KEY'];
134
+ }
135
+ return config;
136
+ }
137
+ /**
138
+ * Reset the cached hub config — for tests that mutate `~/.argustack/config.env`
139
+ * or `ARGUSTACK_HUB_DIR` between cases.
140
+ */
141
+ export function resetHubConfigCache() {
142
+ cached = null;
143
+ }
144
+ function parseEnvFile(content) {
145
+ const out = {};
146
+ for (const rawLine of content.split('\n')) {
147
+ const line = rawLine.trim();
148
+ if (line === '' || line.startsWith('#')) {
149
+ continue;
150
+ }
151
+ const eq = line.indexOf('=');
152
+ if (eq === -1) {
153
+ continue;
154
+ }
155
+ const key = line.slice(0, eq).trim();
156
+ let value = line.slice(eq + 1).trim();
157
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
158
+ value = value.slice(1, -1);
159
+ }
160
+ out[key] = value;
161
+ }
162
+ return out;
163
+ }
164
+ //# sourceMappingURL=hub-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-config.js","sourceRoot":"","sources":["../../src/workspace/hub-config.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,31 @@
1
- import type { SourceType } from '../core/types/index.js';
1
+ import type { SourceType, Workspace } from '../core/types/index.js';
2
+ import type { IWorkspaceStore } from '../core/ports/workspace-store.js';
2
3
  export interface WorkspaceInfo {
3
4
  name: string;
4
5
  path: string;
5
6
  sources: SourceType[];
6
7
  active: boolean;
7
8
  }
9
+ /**
10
+ * Append to the legacy `~/.argustack/workspaces.json` registry.
11
+ *
12
+ * Pre-hub Argustack maintained this file as the directory of per-folder
13
+ * workspaces; the hub model derives the canonical list from the
14
+ * `workspaces` table. We keep writing the legacy file during the
15
+ * transition so `argustack migrate-to-hub` can discover legacy roots,
16
+ * but it is best-effort — failures never block init/sync.
17
+ */
8
18
  export declare function registerWorkspace(workspacePath: string, name?: string): void;
9
- export declare function listRegisteredWorkspaces(activeRoot?: string): WorkspaceInfo[];
10
- export declare function pruneDeadWorkspaces(): void;
19
+ /**
20
+ * List legacy per-folder workspaces from `~/.argustack/workspaces.json`.
21
+ * Used ONLY by `argustack migrate-to-hub`. Normal command flow uses
22
+ * {@link listWorkspacesFromHub} instead.
23
+ */
24
+ export declare function listLegacyWorkspaces(): WorkspaceInfo[];
25
+ /**
26
+ * Canonical workspace list — reads from the hub `workspaces` table.
27
+ * Use this for `argustack workspace list` and all user-facing commands.
28
+ */
29
+ export declare function listWorkspacesFromHub(hubStore: IWorkspaceStore): Promise<Workspace[]>;
30
+ export declare function pruneDeadLegacyWorkspaces(): void;
11
31
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/workspace/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAgBzD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAkB5E;AAED,wBAAgB,wBAAwB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CA4B7E;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/workspace/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAaxE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAkB5E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CA4BtD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAE3F;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAMhD"}
@@ -1,19 +1,25 @@
1
1
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import { homedir } from 'node:os';
4
3
  import { readConfig, getEnabledSources } from './config.js';
5
- function registryDir() {
6
- return join(homedir(), '.argustack');
7
- }
4
+ import { hubDir } from './hub-config.js';
8
5
  function registryFile() {
9
- return join(registryDir(), 'workspaces.json');
6
+ return join(hubDir(), 'workspaces.json');
10
7
  }
8
+ /**
9
+ * Append to the legacy `~/.argustack/workspaces.json` registry.
10
+ *
11
+ * Pre-hub Argustack maintained this file as the directory of per-folder
12
+ * workspaces; the hub model derives the canonical list from the
13
+ * `workspaces` table. We keep writing the legacy file during the
14
+ * transition so `argustack migrate-to-hub` can discover legacy roots,
15
+ * but it is best-effort — failures never block init/sync.
16
+ */
11
17
  export function registerWorkspace(workspacePath, name) {
12
18
  try {
13
19
  const entries = readRegistry();
14
20
  const existing = entries.find((e) => e.path === workspacePath);
15
- if (existing) {
16
- if (name && existing.name !== name) {
21
+ if (existing != null) {
22
+ if (name !== undefined && name !== '' && existing.name !== name) {
17
23
  existing.name = name;
18
24
  writeRegistry(entries);
19
25
  }
@@ -27,7 +33,12 @@ export function registerWorkspace(workspacePath, name) {
27
33
  /* registry is best-effort — don't fail init/sync */
28
34
  }
29
35
  }
30
- export function listRegisteredWorkspaces(activeRoot) {
36
+ /**
37
+ * List legacy per-folder workspaces from `~/.argustack/workspaces.json`.
38
+ * Used ONLY by `argustack migrate-to-hub`. Normal command flow uses
39
+ * {@link listWorkspacesFromHub} instead.
40
+ */
41
+ export function listLegacyWorkspaces() {
31
42
  const entries = readRegistry();
32
43
  const live = [];
33
44
  const workspaces = [];
@@ -37,13 +48,13 @@ export function listRegisteredWorkspaces(activeRoot) {
37
48
  }
38
49
  live.push(entry);
39
50
  const config = readConfig(entry.path);
40
- const sources = config ? getEnabledSources(config) : [];
51
+ const sources = config != null ? getEnabledSources(config) : [];
41
52
  const displayName = config?.name ?? entry.name;
42
53
  workspaces.push({
43
54
  name: displayName,
44
55
  path: entry.path,
45
56
  sources,
46
- active: entry.path === activeRoot,
57
+ active: false,
47
58
  });
48
59
  }
49
60
  if (live.length !== entries.length) {
@@ -51,7 +62,14 @@ export function listRegisteredWorkspaces(activeRoot) {
51
62
  }
52
63
  return workspaces;
53
64
  }
54
- export function pruneDeadWorkspaces() {
65
+ /**
66
+ * Canonical workspace list — reads from the hub `workspaces` table.
67
+ * Use this for `argustack workspace list` and all user-facing commands.
68
+ */
69
+ export async function listWorkspacesFromHub(hubStore) {
70
+ return hubStore.list();
71
+ }
72
+ export function pruneDeadLegacyWorkspaces() {
55
73
  const entries = readRegistry();
56
74
  const live = entries.filter((e) => existsSync(join(e.path, '.argustack')));
57
75
  if (live.length !== entries.length) {
@@ -72,9 +90,9 @@ function readRegistry() {
72
90
  }
73
91
  }
74
92
  function writeRegistry(entries) {
75
- if (!existsSync(registryDir())) {
76
- mkdirSync(registryDir(), { recursive: true });
93
+ if (!existsSync(hubDir())) {
94
+ mkdirSync(hubDir(), { recursive: true });
77
95
  }
78
- writeFileSync(registryFile(), JSON.stringify(entries, null, 2) + '\n');
96
+ writeFileSync(registryFile(), `${JSON.stringify(entries, null, 2)}\n`);
79
97
  }
80
98
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/workspace/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/workspace/registry.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,29 @@
1
+ import type { IWorkspaceStore } from '../core/ports/workspace-store.js';
1
2
  /**
2
- * Find workspace root by walking up from startDir looking for .argustack/
3
- * Returns the directory that contains .argustack/ (the workspace root), or null.
3
+ * Resolve which workspace a command should operate on.
4
4
  *
5
5
  * Resolution order:
6
- * 1. Explicit startDir argument
7
- * 2. ARGUSTACK_WORKSPACE env var (set by `argustack mcp install`)
8
- * 3. Walk up from process.cwd()
9
- */
10
- export declare function findWorkspaceRoot(startDir?: string): string | null;
11
- /**
12
- * Try to find a workspace from the global registry (~/.argustack/workspaces.json).
13
- * - If exactly one workspace registered return it
14
- * - If multiple match cwd (exact or child directory)
15
- * - If no match → return null
6
+ * 1. `explicit` argument (e.g. `--workspace <name>` flag value).
7
+ * 2. `ARGUSTACK_WORKSPACE_ID` env var.
8
+ * 3. `~/.argustack/active-workspace.json#activeWorkspaceId`.
9
+ * 4. Legacy `<cwd>/../.../.argustack/config.json#workspaceId` walking up.
10
+ * 5. If exactly one workspace exists in the hub — auto-pick it.
11
+ * 6. Otherwise: throw with the available list.
12
+ *
13
+ * The returned id is guaranteed to be a non-empty string and to exist in
14
+ * the hub `workspaces` table at the moment of resolution.
16
15
  */
17
- export declare function findWorkspaceFromRegistry(cwd: string): string | null;
16
+ export declare function requireWorkspaceId(explicit: string | undefined, hubStore: IWorkspaceStore): Promise<string>;
18
17
  /**
19
- * Require workspace throws user-friendly error if not found.
20
- * Includes available workspace names from registry in the error message.
18
+ * Walk up from `startDir` looking for `.argustack/config.json#workspaceId`.
19
+ * Pre-hub workspaces stored the id there; we keep reading it during the
20
+ * transition so old per-folder workflows resolve to the hub-side row.
21
21
  */
22
- export declare function requireWorkspace(startDir?: string): string;
22
+ export declare function findLegacyWorkspaceId(startDir: string): string | null;
23
23
  /**
24
- * Check if a directory is already a workspace.
24
+ * Walk up from `startDir` looking for a legacy `.argustack/` directory.
25
+ * Used by `argustack migrate-to-hub` to find source workspaces, NOT by
26
+ * normal command resolution.
25
27
  */
26
- export declare function isWorkspace(dir: string): boolean;
28
+ export declare function findLegacyWorkspaceRoot(startDir?: string): string | null;
27
29
  //# sourceMappingURL=resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/workspace/resolver.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBlE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/workspace/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAWxE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAoDjB;AAuBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBrE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYxE"}
@@ -1,83 +1,124 @@
1
- import { existsSync } from 'node:fs';
1
+ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join, dirname, resolve } from 'node:path';
3
- import { listRegisteredWorkspaces } from './registry.js';
3
+ import { getActiveWorkspaceId } from './active-workspace.js';
4
4
  const WORKSPACE_MARKER = '.argustack';
5
+ const LEGACY_CONFIG = 'config.json';
5
6
  /**
6
- * Find workspace root by walking up from startDir looking for .argustack/
7
- * Returns the directory that contains .argustack/ (the workspace root), or null.
7
+ * Resolve which workspace a command should operate on.
8
8
  *
9
9
  * Resolution order:
10
- * 1. Explicit startDir argument
11
- * 2. ARGUSTACK_WORKSPACE env var (set by `argustack mcp install`)
12
- * 3. Walk up from process.cwd()
10
+ * 1. `explicit` argument (e.g. `--workspace <name>` flag value).
11
+ * 2. `ARGUSTACK_WORKSPACE_ID` env var.
12
+ * 3. `~/.argustack/active-workspace.json#activeWorkspaceId`.
13
+ * 4. Legacy `<cwd>/../.../.argustack/config.json#workspaceId` walking up.
14
+ * 5. If exactly one workspace exists in the hub — auto-pick it.
15
+ * 6. Otherwise: throw with the available list.
16
+ *
17
+ * The returned id is guaranteed to be a non-empty string and to exist in
18
+ * the hub `workspaces` table at the moment of resolution.
13
19
  */
14
- export function findWorkspaceRoot(startDir) {
15
- const envWorkspace = process.env['ARGUSTACK_WORKSPACE'];
16
- const from = startDir ?? envWorkspace ?? process.cwd();
17
- let dir = resolve(from);
18
- while (true) {
19
- const marker = join(dir, WORKSPACE_MARKER);
20
- if (existsSync(marker) && existsSync(join(dir, WORKSPACE_MARKER, 'config.json'))) {
21
- return dir;
20
+ export async function requireWorkspaceId(explicit, hubStore) {
21
+ const fromExplicit = await resolveExplicit(explicit, hubStore);
22
+ if (fromExplicit !== null && fromExplicit !== '') {
23
+ return fromExplicit;
24
+ }
25
+ const envId = process.env['ARGUSTACK_WORKSPACE_ID'];
26
+ if (envId !== undefined && envId.trim().length > 0) {
27
+ const found = await hubStore.getById(envId.trim());
28
+ if (found != null) {
29
+ return found.id;
22
30
  }
23
- const parent = dirname(dir);
24
- if (parent === dir) {
25
- break;
31
+ throw new Error(`ARGUSTACK_WORKSPACE_ID="${envId}" not found in hub. Run "argustack workspace list" to see registered workspaces.`);
32
+ }
33
+ const activeId = getActiveWorkspaceId();
34
+ if (activeId !== null && activeId !== '') {
35
+ const found = await hubStore.getById(activeId);
36
+ if (found != null) {
37
+ return found.id;
26
38
  }
27
- dir = parent;
28
39
  }
29
- return findWorkspaceFromRegistry(resolve(from));
40
+ const legacyId = findLegacyWorkspaceId(process.cwd());
41
+ if (legacyId !== null && legacyId !== '') {
42
+ const found = await hubStore.getById(legacyId);
43
+ if (found != null) {
44
+ return found.id;
45
+ }
46
+ }
47
+ const all = await hubStore.list();
48
+ if (all.length === 1) {
49
+ const onlyEntry = all[0];
50
+ if (onlyEntry != null) {
51
+ return onlyEntry.id;
52
+ }
53
+ }
54
+ if (all.length === 0) {
55
+ throw new Error('No workspaces registered. Run "argustack workspace add <name>" to create one.');
56
+ }
57
+ const names = all.map((w) => w.name).join(', ');
58
+ throw new Error(`No active workspace. Pass --workspace <name>, or run "argustack workspace use <name>". ` +
59
+ `Available: ${names}.`);
30
60
  }
31
- /**
32
- * Try to find a workspace from the global registry (~/.argustack/workspaces.json).
33
- * - If exactly one workspace registered → return it
34
- * - If multiple → match cwd (exact or child directory)
35
- * - If no match → return null
36
- */
37
- export function findWorkspaceFromRegistry(cwd) {
38
- const workspaces = listRegisteredWorkspaces();
39
- if (workspaces.length === 0) {
61
+ async function resolveExplicit(explicit, hubStore) {
62
+ if (explicit === undefined || explicit.trim().length === 0) {
40
63
  return null;
41
64
  }
42
- if (workspaces.length === 1) {
43
- const first = workspaces[0];
44
- return first ? first.path : null;
65
+ const trimmed = explicit.trim();
66
+ const byId = await hubStore.getById(trimmed);
67
+ if (byId != null) {
68
+ return byId.id;
45
69
  }
46
- const resolvedCwd = resolve(cwd);
47
- const matches = workspaces.filter((w) => {
48
- const resolvedPath = resolve(w.path);
49
- return resolvedCwd === resolvedPath || resolvedCwd.startsWith(resolvedPath + '/');
50
- });
51
- if (matches.length === 0) {
52
- return null;
70
+ const byName = await hubStore.getByName(trimmed);
71
+ if (byName != null) {
72
+ return byName.id;
53
73
  }
54
- matches.sort((a, b) => b.path.length - a.path.length);
55
- const deepest = matches[0];
56
- return deepest ? deepest.path : null;
74
+ throw new Error(`Workspace "${trimmed}" not found. Run "argustack workspace list" to see registered workspaces.`);
57
75
  }
58
76
  /**
59
- * Require workspace throws user-friendly error if not found.
60
- * Includes available workspace names from registry in the error message.
77
+ * Walk up from `startDir` looking for `.argustack/config.json#workspaceId`.
78
+ * Pre-hub workspaces stored the id there; we keep reading it during the
79
+ * transition so old per-folder workflows resolve to the hub-side row.
61
80
  */
62
- export function requireWorkspace(startDir) {
63
- const root = findWorkspaceRoot(startDir);
64
- if (!root) {
65
- const workspaces = listRegisteredWorkspaces();
66
- if (workspaces.length > 0) {
67
- const names = workspaces.map((w) => w.name).join(', ');
68
- throw new Error('Not inside an Argustack workspace.\n' +
69
- `Available workspaces: ${names}\n` +
70
- 'Use "argustack sync" from inside a workspace directory.');
81
+ export function findLegacyWorkspaceId(startDir) {
82
+ let dir = resolve(startDir);
83
+ while (true) {
84
+ const cfg = join(dir, WORKSPACE_MARKER, LEGACY_CONFIG);
85
+ if (existsSync(cfg)) {
86
+ try {
87
+ const parsed = JSON.parse(readFileSync(cfg, 'utf-8'));
88
+ if (typeof parsed.workspaceId === 'string' && parsed.workspaceId.length > 0) {
89
+ return parsed.workspaceId;
90
+ }
91
+ if (typeof parsed.name === 'string' && parsed.name.length > 0) {
92
+ return parsed.name;
93
+ }
94
+ }
95
+ catch {
96
+ /* malformed legacy config — skip */
97
+ }
71
98
  }
72
- throw new Error('Not inside an Argustack workspace.\n' +
73
- 'Run "argustack init" to create one.');
99
+ const parent = dirname(dir);
100
+ if (parent === dir) {
101
+ return null;
102
+ }
103
+ dir = parent;
74
104
  }
75
- return root;
76
105
  }
77
106
  /**
78
- * Check if a directory is already a workspace.
107
+ * Walk up from `startDir` looking for a legacy `.argustack/` directory.
108
+ * Used by `argustack migrate-to-hub` to find source workspaces, NOT by
109
+ * normal command resolution.
79
110
  */
80
- export function isWorkspace(dir) {
81
- return existsSync(join(resolve(dir), WORKSPACE_MARKER));
111
+ export function findLegacyWorkspaceRoot(startDir) {
112
+ let dir = resolve(startDir ?? process.cwd());
113
+ while (true) {
114
+ if (existsSync(join(dir, WORKSPACE_MARKER, LEGACY_CONFIG))) {
115
+ return dir;
116
+ }
117
+ const parent = dirname(dir);
118
+ if (parent === dir) {
119
+ return null;
120
+ }
121
+ dir = parent;
122
+ }
82
123
  }
83
124
  //# sourceMappingURL=resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workspace/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workspace/resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "argustack",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Project analysis platform — Jira + Git + DB",
5
5
  "type": "module",
6
6
  "bin": {
@@ -17,7 +17,9 @@
17
17
  "start": "node dist/cli/index.js",
18
18
  "lint": "eslint src/ tests/",
19
19
  "lint:fix": "eslint src/ tests/ --fix",
20
- "typecheck": "tsc --noEmit",
20
+ "typecheck": "tsc -p tsconfig.test.json --noEmit",
21
+ "typecheck:src": "tsc --noEmit",
22
+ "type-check": "npm run typecheck",
21
23
  "test": "vitest run",
22
24
  "test:watch": "vitest",
23
25
  "test:coverage": "vitest run --coverage",