@untangle-code/cli 0.0.0-stage → 0.1.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 (571) hide show
  1. package/LICENSE +661 -0
  2. package/NOTICE +90 -0
  3. package/README.md +451 -2
  4. package/THIRD_PARTY_LICENSES.md +152 -0
  5. package/dist/cli/args.d.ts +48 -0
  6. package/dist/cli/args.d.ts.map +1 -0
  7. package/dist/cli/args.js +167 -0
  8. package/dist/cli/args.js.map +1 -0
  9. package/dist/cli/command.d.ts +69 -0
  10. package/dist/cli/command.d.ts.map +1 -0
  11. package/dist/cli/command.js +82 -0
  12. package/dist/cli/command.js.map +1 -0
  13. package/dist/cli/deadline.d.ts +33 -0
  14. package/dist/cli/deadline.d.ts.map +1 -0
  15. package/dist/cli/deadline.js +49 -0
  16. package/dist/cli/deadline.js.map +1 -0
  17. package/dist/cli/embedder-deadline.d.ts +72 -0
  18. package/dist/cli/embedder-deadline.d.ts.map +1 -0
  19. package/dist/cli/embedder-deadline.js +117 -0
  20. package/dist/cli/embedder-deadline.js.map +1 -0
  21. package/dist/cli/exit.d.ts +71 -0
  22. package/dist/cli/exit.d.ts.map +1 -0
  23. package/dist/cli/exit.js +81 -0
  24. package/dist/cli/exit.js.map +1 -0
  25. package/dist/cli/graphs.d.ts +65 -0
  26. package/dist/cli/graphs.d.ts.map +1 -0
  27. package/dist/cli/graphs.js +108 -0
  28. package/dist/cli/graphs.js.map +1 -0
  29. package/dist/cli/index-freshness.d.ts +13 -0
  30. package/dist/cli/index-freshness.d.ts.map +1 -0
  31. package/dist/cli/index-freshness.js +226 -0
  32. package/dist/cli/index-freshness.js.map +1 -0
  33. package/dist/cli/index-refresh.d.ts +10 -0
  34. package/dist/cli/index-refresh.d.ts.map +1 -0
  35. package/dist/cli/index-refresh.js +76 -0
  36. package/dist/cli/index-refresh.js.map +1 -0
  37. package/dist/cli/index-state.d.ts +184 -0
  38. package/dist/cli/index-state.d.ts.map +1 -0
  39. package/dist/cli/index-state.js +852 -0
  40. package/dist/cli/index-state.js.map +1 -0
  41. package/dist/cli/io.d.ts +29 -0
  42. package/dist/cli/io.d.ts.map +1 -0
  43. package/dist/cli/io.js +42 -0
  44. package/dist/cli/io.js.map +1 -0
  45. package/dist/cli/language-support.d.ts +77 -0
  46. package/dist/cli/language-support.d.ts.map +1 -0
  47. package/dist/cli/language-support.js +152 -0
  48. package/dist/cli/language-support.js.map +1 -0
  49. package/dist/cli/renewing-lease.d.ts +26 -0
  50. package/dist/cli/renewing-lease.d.ts.map +1 -0
  51. package/dist/cli/renewing-lease.js +102 -0
  52. package/dist/cli/renewing-lease.js.map +1 -0
  53. package/dist/cli/search-graph-enrichment.d.ts +16 -0
  54. package/dist/cli/search-graph-enrichment.d.ts.map +1 -0
  55. package/dist/cli/search-graph-enrichment.js +428 -0
  56. package/dist/cli/search-graph-enrichment.js.map +1 -0
  57. package/dist/cli/system.d.ts +34 -0
  58. package/dist/cli/system.d.ts.map +1 -0
  59. package/dist/cli/system.js +89 -0
  60. package/dist/cli/system.js.map +1 -0
  61. package/dist/cli/vector-store-policy.d.ts +116 -0
  62. package/dist/cli/vector-store-policy.d.ts.map +1 -0
  63. package/dist/cli/vector-store-policy.js +160 -0
  64. package/dist/cli/vector-store-policy.js.map +1 -0
  65. package/dist/cli/version.d.ts +3 -0
  66. package/dist/cli/version.d.ts.map +1 -0
  67. package/dist/cli/version.js +3 -0
  68. package/dist/cli/version.js.map +1 -0
  69. package/dist/cli/workspace.d.ts +105 -0
  70. package/dist/cli/workspace.d.ts.map +1 -0
  71. package/dist/cli/workspace.js +215 -0
  72. package/dist/cli/workspace.js.map +1 -0
  73. package/dist/commands/complexity.d.ts +72 -0
  74. package/dist/commands/complexity.d.ts.map +1 -0
  75. package/dist/commands/complexity.js +580 -0
  76. package/dist/commands/complexity.js.map +1 -0
  77. package/dist/commands/doctor.d.ts +66 -0
  78. package/dist/commands/doctor.d.ts.map +1 -0
  79. package/dist/commands/doctor.js +764 -0
  80. package/dist/commands/doctor.js.map +1 -0
  81. package/dist/commands/doctor.languages.d.ts +37 -0
  82. package/dist/commands/doctor.languages.d.ts.map +1 -0
  83. package/dist/commands/doctor.languages.js +143 -0
  84. package/dist/commands/doctor.languages.js.map +1 -0
  85. package/dist/commands/doctor.storage.d.ts +17 -0
  86. package/dist/commands/doctor.storage.d.ts.map +1 -0
  87. package/dist/commands/doctor.storage.js +91 -0
  88. package/dist/commands/doctor.storage.js.map +1 -0
  89. package/dist/commands/extensions/add.d.ts +10 -0
  90. package/dist/commands/extensions/add.d.ts.map +1 -0
  91. package/dist/commands/extensions/add.js +213 -0
  92. package/dist/commands/extensions/add.js.map +1 -0
  93. package/dist/commands/extensions/configure.d.ts +5 -0
  94. package/dist/commands/extensions/configure.d.ts.map +1 -0
  95. package/dist/commands/extensions/configure.js +58 -0
  96. package/dist/commands/extensions/configure.js.map +1 -0
  97. package/dist/commands/extensions/container.d.ts +15 -0
  98. package/dist/commands/extensions/container.d.ts.map +1 -0
  99. package/dist/commands/extensions/container.js +135 -0
  100. package/dist/commands/extensions/container.js.map +1 -0
  101. package/dist/commands/extensions/context.d.ts +37 -0
  102. package/dist/commands/extensions/context.d.ts.map +1 -0
  103. package/dist/commands/extensions/context.js +72 -0
  104. package/dist/commands/extensions/context.js.map +1 -0
  105. package/dist/commands/extensions/enable.d.ts +6 -0
  106. package/dist/commands/extensions/enable.d.ts.map +1 -0
  107. package/dist/commands/extensions/enable.js +180 -0
  108. package/dist/commands/extensions/enable.js.map +1 -0
  109. package/dist/commands/extensions/environment.d.ts +74 -0
  110. package/dist/commands/extensions/environment.d.ts.map +1 -0
  111. package/dist/commands/extensions/environment.js +168 -0
  112. package/dist/commands/extensions/environment.js.map +1 -0
  113. package/dist/commands/extensions/feature-scan.d.ts +48 -0
  114. package/dist/commands/extensions/feature-scan.d.ts.map +1 -0
  115. package/dist/commands/extensions/feature-scan.js +156 -0
  116. package/dist/commands/extensions/feature-scan.js.map +1 -0
  117. package/dist/commands/extensions/invoke.d.ts +60 -0
  118. package/dist/commands/extensions/invoke.d.ts.map +1 -0
  119. package/dist/commands/extensions/invoke.js +275 -0
  120. package/dist/commands/extensions/invoke.js.map +1 -0
  121. package/dist/commands/extensions/list.d.ts +5 -0
  122. package/dist/commands/extensions/list.d.ts.map +1 -0
  123. package/dist/commands/extensions/list.js +125 -0
  124. package/dist/commands/extensions/list.js.map +1 -0
  125. package/dist/commands/extensions/logs.d.ts +5 -0
  126. package/dist/commands/extensions/logs.d.ts.map +1 -0
  127. package/dist/commands/extensions/logs.js +74 -0
  128. package/dist/commands/extensions/logs.js.map +1 -0
  129. package/dist/commands/extensions/provision.d.ts +36 -0
  130. package/dist/commands/extensions/provision.d.ts.map +1 -0
  131. package/dist/commands/extensions/provision.js +137 -0
  132. package/dist/commands/extensions/provision.js.map +1 -0
  133. package/dist/commands/extensions/remove.d.ts +5 -0
  134. package/dist/commands/extensions/remove.d.ts.map +1 -0
  135. package/dist/commands/extensions/remove.js +77 -0
  136. package/dist/commands/extensions/remove.js.map +1 -0
  137. package/dist/commands/extensions/render.d.ts +16 -0
  138. package/dist/commands/extensions/render.d.ts.map +1 -0
  139. package/dist/commands/extensions/render.js +25 -0
  140. package/dist/commands/extensions/render.js.map +1 -0
  141. package/dist/commands/extensions/run.d.ts +30 -0
  142. package/dist/commands/extensions/run.d.ts.map +1 -0
  143. package/dist/commands/extensions/run.js +292 -0
  144. package/dist/commands/extensions/run.js.map +1 -0
  145. package/dist/commands/extensions/secret-store.d.ts +15 -0
  146. package/dist/commands/extensions/secret-store.d.ts.map +1 -0
  147. package/dist/commands/extensions/secret-store.js +164 -0
  148. package/dist/commands/extensions/secret-store.js.map +1 -0
  149. package/dist/commands/extensions/setup.d.ts +17 -0
  150. package/dist/commands/extensions/setup.d.ts.map +1 -0
  151. package/dist/commands/extensions/setup.js +94 -0
  152. package/dist/commands/extensions/setup.js.map +1 -0
  153. package/dist/commands/extensions/source.d.ts +47 -0
  154. package/dist/commands/extensions/source.d.ts.map +1 -0
  155. package/dist/commands/extensions/source.js +142 -0
  156. package/dist/commands/extensions/source.js.map +1 -0
  157. package/dist/commands/extensions/state.d.ts +62 -0
  158. package/dist/commands/extensions/state.d.ts.map +1 -0
  159. package/dist/commands/extensions/state.js +177 -0
  160. package/dist/commands/extensions/state.js.map +1 -0
  161. package/dist/commands/extensions/status.d.ts +9 -0
  162. package/dist/commands/extensions/status.d.ts.map +1 -0
  163. package/dist/commands/extensions/status.js +239 -0
  164. package/dist/commands/extensions/status.js.map +1 -0
  165. package/dist/commands/extensions.d.ts +3 -0
  166. package/dist/commands/extensions.d.ts.map +1 -0
  167. package/dist/commands/extensions.js +223 -0
  168. package/dist/commands/extensions.js.map +1 -0
  169. package/dist/commands/flow/index.d.ts +3 -0
  170. package/dist/commands/flow/index.d.ts.map +1 -0
  171. package/dist/commands/flow/index.js +295 -0
  172. package/dist/commands/flow/index.js.map +1 -0
  173. package/dist/commands/flow/limits.d.ts +12 -0
  174. package/dist/commands/flow/limits.d.ts.map +1 -0
  175. package/dist/commands/flow/limits.js +13 -0
  176. package/dist/commands/flow/limits.js.map +1 -0
  177. package/dist/commands/flow/output.d.ts +8 -0
  178. package/dist/commands/flow/output.d.ts.map +1 -0
  179. package/dist/commands/flow/output.js +11 -0
  180. package/dist/commands/flow/output.js.map +1 -0
  181. package/dist/commands/flow/render.d.ts +51 -0
  182. package/dist/commands/flow/render.d.ts.map +1 -0
  183. package/dist/commands/flow/render.js +220 -0
  184. package/dist/commands/flow/render.js.map +1 -0
  185. package/dist/commands/flow/select.d.ts +31 -0
  186. package/dist/commands/flow/select.d.ts.map +1 -0
  187. package/dist/commands/flow/select.js +62 -0
  188. package/dist/commands/flow/select.js.map +1 -0
  189. package/dist/commands/graph/boundaries-input.d.ts +26 -0
  190. package/dist/commands/graph/boundaries-input.d.ts.map +1 -0
  191. package/dist/commands/graph/boundaries-input.js +54 -0
  192. package/dist/commands/graph/boundaries-input.js.map +1 -0
  193. package/dist/commands/graph/boundaries.d.ts +4 -0
  194. package/dist/commands/graph/boundaries.d.ts.map +1 -0
  195. package/dist/commands/graph/boundaries.js +141 -0
  196. package/dist/commands/graph/boundaries.js.map +1 -0
  197. package/dist/commands/graph/bounds.d.ts +16 -0
  198. package/dist/commands/graph/bounds.d.ts.map +1 -0
  199. package/dist/commands/graph/bounds.js +22 -0
  200. package/dist/commands/graph/bounds.js.map +1 -0
  201. package/dist/commands/graph/category-clusters.d.ts +20 -0
  202. package/dist/commands/graph/category-clusters.d.ts.map +1 -0
  203. package/dist/commands/graph/category-clusters.js +158 -0
  204. package/dist/commands/graph/category-clusters.js.map +1 -0
  205. package/dist/commands/graph/feature-3d.d.ts +22 -0
  206. package/dist/commands/graph/feature-3d.d.ts.map +1 -0
  207. package/dist/commands/graph/feature-3d.js +114 -0
  208. package/dist/commands/graph/feature-3d.js.map +1 -0
  209. package/dist/commands/graph/feature-clusters.d.ts +17 -0
  210. package/dist/commands/graph/feature-clusters.d.ts.map +1 -0
  211. package/dist/commands/graph/feature-clusters.js +94 -0
  212. package/dist/commands/graph/feature-clusters.js.map +1 -0
  213. package/dist/commands/graph/feature-html.d.ts +26 -0
  214. package/dist/commands/graph/feature-html.d.ts.map +1 -0
  215. package/dist/commands/graph/feature-html.js +314 -0
  216. package/dist/commands/graph/feature-html.js.map +1 -0
  217. package/dist/commands/graph/feature-map.d.ts +31 -0
  218. package/dist/commands/graph/feature-map.d.ts.map +1 -0
  219. package/dist/commands/graph/feature-map.js +217 -0
  220. package/dist/commands/graph/feature-map.js.map +1 -0
  221. package/dist/commands/graph/feature-model.d.ts +55 -0
  222. package/dist/commands/graph/feature-model.d.ts.map +1 -0
  223. package/dist/commands/graph/feature-model.js +167 -0
  224. package/dist/commands/graph/feature-model.js.map +1 -0
  225. package/dist/commands/graph/feature-untangle-motion.d.ts +33 -0
  226. package/dist/commands/graph/feature-untangle-motion.d.ts.map +1 -0
  227. package/dist/commands/graph/feature-untangle-motion.js +155 -0
  228. package/dist/commands/graph/feature-untangle-motion.js.map +1 -0
  229. package/dist/commands/graph/index.d.ts +3 -0
  230. package/dist/commands/graph/index.d.ts.map +1 -0
  231. package/dist/commands/graph/index.js +414 -0
  232. package/dist/commands/graph/index.js.map +1 -0
  233. package/dist/commands/graph/render.d.ts +63 -0
  234. package/dist/commands/graph/render.d.ts.map +1 -0
  235. package/dist/commands/graph/render.js +352 -0
  236. package/dist/commands/graph/render.js.map +1 -0
  237. package/dist/commands/graph/select.d.ts +34 -0
  238. package/dist/commands/graph/select.d.ts.map +1 -0
  239. package/dist/commands/graph/select.js +55 -0
  240. package/dist/commands/graph/select.js.map +1 -0
  241. package/dist/commands/index/index.d.ts +6 -0
  242. package/dist/commands/index/index.d.ts.map +1 -0
  243. package/dist/commands/index/index.js +461 -0
  244. package/dist/commands/index/index.js.map +1 -0
  245. package/dist/commands/index/render.d.ts +53 -0
  246. package/dist/commands/index/render.d.ts.map +1 -0
  247. package/dist/commands/index/render.js +205 -0
  248. package/dist/commands/index/render.js.map +1 -0
  249. package/dist/commands/index/target.d.ts +34 -0
  250. package/dist/commands/index/target.d.ts.map +1 -0
  251. package/dist/commands/index/target.js +97 -0
  252. package/dist/commands/index/target.js.map +1 -0
  253. package/dist/commands/index-watch.d.ts +30 -0
  254. package/dist/commands/index-watch.d.ts.map +1 -0
  255. package/dist/commands/index-watch.js +138 -0
  256. package/dist/commands/index-watch.js.map +1 -0
  257. package/dist/commands/init/command.d.ts +25 -0
  258. package/dist/commands/init/command.d.ts.map +1 -0
  259. package/dist/commands/init/command.js +198 -0
  260. package/dist/commands/init/command.js.map +1 -0
  261. package/dist/commands/init/config-draft.d.ts +48 -0
  262. package/dist/commands/init/config-draft.d.ts.map +1 -0
  263. package/dist/commands/init/config-draft.js +201 -0
  264. package/dist/commands/init/config-draft.js.map +1 -0
  265. package/dist/commands/init/diff.d.ts +33 -0
  266. package/dist/commands/init/diff.d.ts.map +1 -0
  267. package/dist/commands/init/diff.js +109 -0
  268. package/dist/commands/init/diff.js.map +1 -0
  269. package/dist/commands/init/http-probe.d.ts +26 -0
  270. package/dist/commands/init/http-probe.d.ts.map +1 -0
  271. package/dist/commands/init/http-probe.js +144 -0
  272. package/dist/commands/init/http-probe.js.map +1 -0
  273. package/dist/commands/init/ignore-rules.d.ts +70 -0
  274. package/dist/commands/init/ignore-rules.d.ts.map +1 -0
  275. package/dist/commands/init/ignore-rules.js +146 -0
  276. package/dist/commands/init/ignore-rules.js.map +1 -0
  277. package/dist/commands/init/index.d.ts +33 -0
  278. package/dist/commands/init/index.d.ts.map +1 -0
  279. package/dist/commands/init/index.js +32 -0
  280. package/dist/commands/init/index.js.map +1 -0
  281. package/dist/commands/init/integrations-apply.d.ts +50 -0
  282. package/dist/commands/init/integrations-apply.d.ts.map +1 -0
  283. package/dist/commands/init/integrations-apply.js +452 -0
  284. package/dist/commands/init/integrations-apply.js.map +1 -0
  285. package/dist/commands/init/integrations-plan.d.ts +68 -0
  286. package/dist/commands/init/integrations-plan.d.ts.map +1 -0
  287. package/dist/commands/init/integrations-plan.js +515 -0
  288. package/dist/commands/init/integrations-plan.js.map +1 -0
  289. package/dist/commands/init/integrations.d.ts +5 -0
  290. package/dist/commands/init/integrations.d.ts.map +1 -0
  291. package/dist/commands/init/integrations.js +4 -0
  292. package/dist/commands/init/integrations.js.map +1 -0
  293. package/dist/commands/init/languages.d.ts +55 -0
  294. package/dist/commands/init/languages.d.ts.map +1 -0
  295. package/dist/commands/init/languages.js +245 -0
  296. package/dist/commands/init/languages.js.map +1 -0
  297. package/dist/commands/init/product-context.d.ts +63 -0
  298. package/dist/commands/init/product-context.d.ts.map +1 -0
  299. package/dist/commands/init/product-context.js +390 -0
  300. package/dist/commands/init/product-context.js.map +1 -0
  301. package/dist/commands/init/render.d.ts +38 -0
  302. package/dist/commands/init/render.d.ts.map +1 -0
  303. package/dist/commands/init/render.js +501 -0
  304. package/dist/commands/init/render.js.map +1 -0
  305. package/dist/commands/init/report.d.ts +24 -0
  306. package/dist/commands/init/report.d.ts.map +1 -0
  307. package/dist/commands/init/report.js +163 -0
  308. package/dist/commands/init/report.js.map +1 -0
  309. package/dist/commands/init/run.d.ts +71 -0
  310. package/dist/commands/init/run.d.ts.map +1 -0
  311. package/dist/commands/init/run.js +253 -0
  312. package/dist/commands/init/run.js.map +1 -0
  313. package/dist/commands/init/services.d.ts +82 -0
  314. package/dist/commands/init/services.d.ts.map +1 -0
  315. package/dist/commands/init/services.js +209 -0
  316. package/dist/commands/init/services.js.map +1 -0
  317. package/dist/commands/init/storage.d.ts +8 -0
  318. package/dist/commands/init/storage.d.ts.map +1 -0
  319. package/dist/commands/init/storage.js +102 -0
  320. package/dist/commands/init/storage.js.map +1 -0
  321. package/dist/commands/init/toml.d.ts +65 -0
  322. package/dist/commands/init/toml.d.ts.map +1 -0
  323. package/dist/commands/init/toml.js +159 -0
  324. package/dist/commands/init/toml.js.map +1 -0
  325. package/dist/commands/init/topology.d.ts +54 -0
  326. package/dist/commands/init/topology.d.ts.map +1 -0
  327. package/dist/commands/init/topology.js +146 -0
  328. package/dist/commands/init/topology.js.map +1 -0
  329. package/dist/commands/init/types.d.ts +334 -0
  330. package/dist/commands/init/types.d.ts.map +1 -0
  331. package/dist/commands/init/types.js +31 -0
  332. package/dist/commands/init/types.js.map +1 -0
  333. package/dist/commands/init/wizard-terminal.d.ts +36 -0
  334. package/dist/commands/init/wizard-terminal.d.ts.map +1 -0
  335. package/dist/commands/init/wizard-terminal.js +163 -0
  336. package/dist/commands/init/wizard-terminal.js.map +1 -0
  337. package/dist/commands/init/wizard.d.ts +25 -0
  338. package/dist/commands/init/wizard.d.ts.map +1 -0
  339. package/dist/commands/init/wizard.js +358 -0
  340. package/dist/commands/init/wizard.js.map +1 -0
  341. package/dist/commands/mcp.d.ts +4 -0
  342. package/dist/commands/mcp.d.ts.map +1 -0
  343. package/dist/commands/mcp.js +111 -0
  344. package/dist/commands/mcp.js.map +1 -0
  345. package/dist/commands/product-test-runner.d.ts +4 -0
  346. package/dist/commands/product-test-runner.d.ts.map +1 -0
  347. package/dist/commands/product-test-runner.js +85 -0
  348. package/dist/commands/product-test-runner.js.map +1 -0
  349. package/dist/commands/product.d.ts +16 -0
  350. package/dist/commands/product.d.ts.map +1 -0
  351. package/dist/commands/product.js +262 -0
  352. package/dist/commands/product.js.map +1 -0
  353. package/dist/commands/query.d.ts +114 -0
  354. package/dist/commands/query.d.ts.map +1 -0
  355. package/dist/commands/query.js +783 -0
  356. package/dist/commands/query.js.map +1 -0
  357. package/dist/commands/scan.d.ts +10 -0
  358. package/dist/commands/scan.d.ts.map +1 -0
  359. package/dist/commands/scan.js +302 -0
  360. package/dist/commands/scan.js.map +1 -0
  361. package/dist/commands/sdd.d.ts +24 -0
  362. package/dist/commands/sdd.d.ts.map +1 -0
  363. package/dist/commands/sdd.js +195 -0
  364. package/dist/commands/sdd.js.map +1 -0
  365. package/dist/commands/unavailable.d.ts +40 -0
  366. package/dist/commands/unavailable.d.ts.map +1 -0
  367. package/dist/commands/unavailable.js +73 -0
  368. package/dist/commands/unavailable.js.map +1 -0
  369. package/dist/commands/watch/analyze.d.ts +69 -0
  370. package/dist/commands/watch/analyze.d.ts.map +1 -0
  371. package/dist/commands/watch/analyze.js +402 -0
  372. package/dist/commands/watch/analyze.js.map +1 -0
  373. package/dist/commands/watch/cli.d.ts +8 -0
  374. package/dist/commands/watch/cli.d.ts.map +1 -0
  375. package/dist/commands/watch/cli.js +97 -0
  376. package/dist/commands/watch/cli.js.map +1 -0
  377. package/dist/commands/watch/delta.d.ts +46 -0
  378. package/dist/commands/watch/delta.d.ts.map +1 -0
  379. package/dist/commands/watch/delta.js +170 -0
  380. package/dist/commands/watch/delta.js.map +1 -0
  381. package/dist/commands/watch/events.d.ts +214 -0
  382. package/dist/commands/watch/events.d.ts.map +1 -0
  383. package/dist/commands/watch/events.js +13 -0
  384. package/dist/commands/watch/events.js.map +1 -0
  385. package/dist/commands/watch/index.d.ts +19 -0
  386. package/dist/commands/watch/index.d.ts.map +1 -0
  387. package/dist/commands/watch/index.js +15 -0
  388. package/dist/commands/watch/index.js.map +1 -0
  389. package/dist/commands/watch/options.d.ts +43 -0
  390. package/dist/commands/watch/options.d.ts.map +1 -0
  391. package/dist/commands/watch/options.js +193 -0
  392. package/dist/commands/watch/options.js.map +1 -0
  393. package/dist/commands/watch/render.d.ts +26 -0
  394. package/dist/commands/watch/render.d.ts.map +1 -0
  395. package/dist/commands/watch/render.js +175 -0
  396. package/dist/commands/watch/render.js.map +1 -0
  397. package/dist/commands/watch/run.d.ts +14 -0
  398. package/dist/commands/watch/run.d.ts.map +1 -0
  399. package/dist/commands/watch/run.js +460 -0
  400. package/dist/commands/watch/run.js.map +1 -0
  401. package/dist/commands/watch/runtime.d.ts +67 -0
  402. package/dist/commands/watch/runtime.d.ts.map +1 -0
  403. package/dist/commands/watch/runtime.js +149 -0
  404. package/dist/commands/watch/runtime.js.map +1 -0
  405. package/dist/commands/watch-command.d.ts +3 -0
  406. package/dist/commands/watch-command.d.ts.map +1 -0
  407. package/dist/commands/watch-command.js +273 -0
  408. package/dist/commands/watch-command.js.map +1 -0
  409. package/dist/entry-point.d.ts +11 -0
  410. package/dist/entry-point.d.ts.map +1 -0
  411. package/dist/entry-point.js +65 -0
  412. package/dist/entry-point.js.map +1 -0
  413. package/dist/index.d.ts +38 -0
  414. package/dist/index.d.ts.map +1 -0
  415. package/dist/index.js +245 -0
  416. package/dist/index.js.map +1 -0
  417. package/dist/mcp/boundaries-schema.d.ts +262 -0
  418. package/dist/mcp/boundaries-schema.d.ts.map +1 -0
  419. package/dist/mcp/boundaries-schema.js +183 -0
  420. package/dist/mcp/boundaries-schema.js.map +1 -0
  421. package/dist/mcp/default-runtime.d.ts +16 -0
  422. package/dist/mcp/default-runtime.d.ts.map +1 -0
  423. package/dist/mcp/default-runtime.js +718 -0
  424. package/dist/mcp/default-runtime.js.map +1 -0
  425. package/dist/mcp/envelope.d.ts +13 -0
  426. package/dist/mcp/envelope.d.ts.map +1 -0
  427. package/dist/mcp/envelope.js +29 -0
  428. package/dist/mcp/envelope.js.map +1 -0
  429. package/dist/mcp/index.d.ts +8 -0
  430. package/dist/mcp/index.d.ts.map +1 -0
  431. package/dist/mcp/index.js +8 -0
  432. package/dist/mcp/index.js.map +1 -0
  433. package/dist/mcp/output-schemas.d.ts +5928 -0
  434. package/dist/mcp/output-schemas.d.ts.map +1 -0
  435. package/dist/mcp/output-schemas.js +2814 -0
  436. package/dist/mcp/output-schemas.js.map +1 -0
  437. package/dist/mcp/path-sandbox.d.ts +35 -0
  438. package/dist/mcp/path-sandbox.d.ts.map +1 -0
  439. package/dist/mcp/path-sandbox.js +128 -0
  440. package/dist/mcp/path-sandbox.js.map +1 -0
  441. package/dist/mcp/server.d.ts +155 -0
  442. package/dist/mcp/server.d.ts.map +1 -0
  443. package/dist/mcp/server.js +257 -0
  444. package/dist/mcp/server.js.map +1 -0
  445. package/dist/mcp/stdio.d.ts +20 -0
  446. package/dist/mcp/stdio.d.ts.map +1 -0
  447. package/dist/mcp/stdio.js +71 -0
  448. package/dist/mcp/stdio.js.map +1 -0
  449. package/dist/mcp/tools.d.ts +355 -0
  450. package/dist/mcp/tools.d.ts.map +1 -0
  451. package/dist/mcp/tools.js +319 -0
  452. package/dist/mcp/tools.js.map +1 -0
  453. package/dist/mcp/types.d.ts +15 -0
  454. package/dist/mcp/types.d.ts.map +1 -0
  455. package/dist/mcp/types.js +45 -0
  456. package/dist/mcp/types.js.map +1 -0
  457. package/package.json +99 -3
  458. package/src/cli/args.ts +231 -0
  459. package/src/cli/command.ts +146 -0
  460. package/src/cli/deadline.ts +56 -0
  461. package/src/cli/embedder-deadline.ts +187 -0
  462. package/src/cli/exit.ts +94 -0
  463. package/src/cli/graphs.ts +191 -0
  464. package/src/cli/index-freshness.ts +303 -0
  465. package/src/cli/index-refresh.ts +125 -0
  466. package/src/cli/index-state.ts +1217 -0
  467. package/src/cli/io.ts +56 -0
  468. package/src/cli/language-support.ts +203 -0
  469. package/src/cli/renewing-lease.ts +121 -0
  470. package/src/cli/search-graph-enrichment.ts +639 -0
  471. package/src/cli/system.ts +94 -0
  472. package/src/cli/vector-store-policy.ts +213 -0
  473. package/src/cli/version.ts +2 -0
  474. package/src/cli/workspace.ts +324 -0
  475. package/src/commands/complexity.ts +776 -0
  476. package/src/commands/doctor.languages.ts +187 -0
  477. package/src/commands/doctor.storage.ts +124 -0
  478. package/src/commands/doctor.ts +946 -0
  479. package/src/commands/extensions/add.ts +312 -0
  480. package/src/commands/extensions/configure.ts +82 -0
  481. package/src/commands/extensions/container.ts +209 -0
  482. package/src/commands/extensions/context.ts +109 -0
  483. package/src/commands/extensions/enable.ts +237 -0
  484. package/src/commands/extensions/environment.ts +218 -0
  485. package/src/commands/extensions/feature-scan.ts +232 -0
  486. package/src/commands/extensions/invoke.ts +368 -0
  487. package/src/commands/extensions/list.ts +158 -0
  488. package/src/commands/extensions/logs.ts +104 -0
  489. package/src/commands/extensions/provision.ts +206 -0
  490. package/src/commands/extensions/remove.ts +110 -0
  491. package/src/commands/extensions/render.ts +32 -0
  492. package/src/commands/extensions/run.ts +386 -0
  493. package/src/commands/extensions/secret-store.ts +223 -0
  494. package/src/commands/extensions/setup.ts +140 -0
  495. package/src/commands/extensions/source.ts +189 -0
  496. package/src/commands/extensions/state.ts +252 -0
  497. package/src/commands/extensions/status.ts +320 -0
  498. package/src/commands/extensions.ts +280 -0
  499. package/src/commands/flow/index.ts +402 -0
  500. package/src/commands/flow/limits.ts +14 -0
  501. package/src/commands/flow/output.ts +16 -0
  502. package/src/commands/flow/render.ts +318 -0
  503. package/src/commands/flow/select.ts +101 -0
  504. package/src/commands/graph/boundaries-input.ts +63 -0
  505. package/src/commands/graph/boundaries.ts +182 -0
  506. package/src/commands/graph/bounds.ts +25 -0
  507. package/src/commands/graph/category-clusters.ts +194 -0
  508. package/src/commands/graph/feature-3d.ts +141 -0
  509. package/src/commands/graph/feature-clusters.ts +125 -0
  510. package/src/commands/graph/feature-html.ts +336 -0
  511. package/src/commands/graph/feature-map.ts +270 -0
  512. package/src/commands/graph/feature-model.ts +234 -0
  513. package/src/commands/graph/feature-untangle-motion.ts +192 -0
  514. package/src/commands/graph/index.ts +562 -0
  515. package/src/commands/graph/render.ts +503 -0
  516. package/src/commands/graph/select.ts +77 -0
  517. package/src/commands/index/index.ts +595 -0
  518. package/src/commands/index/render.ts +325 -0
  519. package/src/commands/index/target.ts +136 -0
  520. package/src/commands/index-watch.ts +206 -0
  521. package/src/commands/init/command.ts +238 -0
  522. package/src/commands/init/config-draft.ts +235 -0
  523. package/src/commands/init/diff.ts +117 -0
  524. package/src/commands/init/http-probe.ts +150 -0
  525. package/src/commands/init/ignore-rules.ts +170 -0
  526. package/src/commands/init/index.ts +63 -0
  527. package/src/commands/init/integrations-apply.ts +618 -0
  528. package/src/commands/init/integrations-plan.ts +634 -0
  529. package/src/commands/init/integrations.ts +8 -0
  530. package/src/commands/init/languages.ts +320 -0
  531. package/src/commands/init/product-context.ts +576 -0
  532. package/src/commands/init/render.ts +598 -0
  533. package/src/commands/init/report.ts +204 -0
  534. package/src/commands/init/run.ts +349 -0
  535. package/src/commands/init/services.ts +271 -0
  536. package/src/commands/init/storage.ts +136 -0
  537. package/src/commands/init/toml.ts +174 -0
  538. package/src/commands/init/topology.ts +192 -0
  539. package/src/commands/init/types.ts +366 -0
  540. package/src/commands/init/wizard-terminal.ts +206 -0
  541. package/src/commands/init/wizard.ts +450 -0
  542. package/src/commands/mcp.ts +123 -0
  543. package/src/commands/product-test-runner.ts +80 -0
  544. package/src/commands/product.ts +331 -0
  545. package/src/commands/query.ts +1032 -0
  546. package/src/commands/scan.ts +360 -0
  547. package/src/commands/sdd.ts +243 -0
  548. package/src/commands/unavailable.ts +92 -0
  549. package/src/commands/watch/README.md +160 -0
  550. package/src/commands/watch/analyze.ts +600 -0
  551. package/src/commands/watch/cli.ts +108 -0
  552. package/src/commands/watch/delta.ts +186 -0
  553. package/src/commands/watch/events.ts +235 -0
  554. package/src/commands/watch/index.ts +53 -0
  555. package/src/commands/watch/options.ts +234 -0
  556. package/src/commands/watch/render.ts +240 -0
  557. package/src/commands/watch/run.ts +553 -0
  558. package/src/commands/watch/runtime.ts +167 -0
  559. package/src/commands/watch-command.ts +294 -0
  560. package/src/entry-point.ts +67 -0
  561. package/src/index.ts +291 -0
  562. package/src/mcp/boundaries-schema.ts +193 -0
  563. package/src/mcp/default-runtime.ts +1034 -0
  564. package/src/mcp/envelope.ts +57 -0
  565. package/src/mcp/index.ts +28 -0
  566. package/src/mcp/output-schemas.ts +3071 -0
  567. package/src/mcp/path-sandbox.ts +156 -0
  568. package/src/mcp/server.ts +358 -0
  569. package/src/mcp/stdio.ts +92 -0
  570. package/src/mcp/tools.ts +563 -0
  571. package/src/mcp/types.ts +66 -0
@@ -0,0 +1,226 @@
1
+ import { buildCorpusRevisionFingerprint, buildFileId, buildRefId, canonicalJson, CHUNKER_VERSION, LEXICAL_TOKENIZER_VERSION, normalizeRelativePath, knownParserLanguages, parserVersionForLanguage, sha256Hex, } from "@untangle-code/domain";
2
+ import { discoverFiles } from "@untangle-code/scanner";
3
+ import { NodeFileSystem } from "@untangle-code/scanner/node-fs";
4
+ import { detectRefName, resolveTarget } from "../commands/index/target.js";
5
+ /** Bind source selection and chunk semantics; operational concurrency does not change the corpus. */
6
+ export function indexConfigFingerprint(view, target) {
7
+ return sha256Hex(canonicalJson({
8
+ chunkerVersion: CHUNKER_VERSION,
9
+ parserVersions: knownParserLanguages().map((language) => [
10
+ language,
11
+ parserVersionForLanguage(language),
12
+ ]),
13
+ maxFileSizeMb: view.config.index.maxFileSizeMb,
14
+ maxChunkTokens: view.config.index.maxChunkTokens,
15
+ include: target.include ?? [],
16
+ exclude: target.exclude ?? [],
17
+ }));
18
+ }
19
+ export async function inspectIndexFreshness(view, states, options = {}) {
20
+ const repositories = [];
21
+ for (const found of states) {
22
+ options.signal?.throwIfAborted();
23
+ repositories.push(await inspectRepositoryFreshness(view, found, options));
24
+ }
25
+ appendMissingSnapshots(view, states, repositories, options);
26
+ return {
27
+ status: aggregateFreshnessStatus(repositories),
28
+ checkedAt: new Date().toISOString(),
29
+ repositories,
30
+ };
31
+ }
32
+ async function inspectRepositoryFreshness(view, found, options) {
33
+ const entry = snapshotFreshness(found.state);
34
+ if (!hasCompleteSnapshotMetadata(found.state, entry))
35
+ return entry;
36
+ const target = resolveFreshnessTarget(view, found, entry, options);
37
+ if (target !== null)
38
+ await scanContentManifest(view, found.state, target, entry, options);
39
+ return entry;
40
+ }
41
+ /** Keep persisted evidence visible even when it cannot establish freshness. */
42
+ function snapshotFreshness(state) {
43
+ return {
44
+ repoId: state.repoId,
45
+ refId: state.refId,
46
+ status: "unknown",
47
+ reason: "snapshot_metadata_missing",
48
+ filesChecked: 0,
49
+ ...(state.indexedAt === undefined ? {} : { indexedAt: state.indexedAt }),
50
+ ...(state.corpusRevisionFingerprint === undefined
51
+ ? {}
52
+ : { indexedCorpusFingerprint: state.corpusRevisionFingerprint }),
53
+ };
54
+ }
55
+ function hasCompleteSnapshotMetadata(state, entry) {
56
+ if (state.lexicalTokenizerVersion !== LEXICAL_TOKENIZER_VERSION) {
57
+ entry.status = "incompatible";
58
+ entry.reason = "lexical_tokenizer_changed";
59
+ return false;
60
+ }
61
+ if (state.outcome !== "completed") {
62
+ entry.status = "stale";
63
+ entry.reason = "index_incomplete";
64
+ return false;
65
+ }
66
+ return (state.corpusRevisionFingerprint !== undefined &&
67
+ state.indexConfigFingerprint !== undefined &&
68
+ state.indexedAt !== undefined);
69
+ }
70
+ /** Historical refs and changed source-selection rules need different diagnoses. */
71
+ function resolveFreshnessTarget(view, found, entry, options) {
72
+ const state = found.state;
73
+ let target;
74
+ try {
75
+ target = resolveTarget({
76
+ config: view.config,
77
+ cwd: found.repoRoot,
78
+ rootFlag: found.repoRoot,
79
+ repoFlag: (view.config.repositories ?? []).length === 0 ? undefined : state.repoId,
80
+ refFlag: state.refName,
81
+ configBaseDir: view.load.sources.configBaseDir,
82
+ });
83
+ }
84
+ catch {
85
+ options.signal?.throwIfAborted();
86
+ entry.reason = "repository_unavailable";
87
+ return null;
88
+ }
89
+ if (target.rootPath !== found.repoRoot || detectRefName(target.rootPath) !== state.refName) {
90
+ entry.reason = "ref_not_checked_out";
91
+ return null;
92
+ }
93
+ if (indexConfigFingerprint(view, target) !== state.indexConfigFingerprint) {
94
+ entry.status = "stale";
95
+ entry.reason = "index_configuration_changed";
96
+ return null;
97
+ }
98
+ return target;
99
+ }
100
+ /** Compare the same full file/content manifest recorded by completed index discovery. */
101
+ async function scanContentManifest(view, state, target, entry, options) {
102
+ const hashes = {};
103
+ let unreadable = false;
104
+ try {
105
+ for await (const file of discoverFiles({
106
+ fs: new NodeFileSystem(),
107
+ roots: [target.rootPath],
108
+ repoRoot: target.rootPath,
109
+ maxFileSizeBytes: view.config.index.maxFileSizeMb * 1024 * 1024,
110
+ concurrency: view.config.index.scanConcurrency,
111
+ ignore: {
112
+ ...(target.include === undefined ? {} : { configInclude: target.include }),
113
+ ...(target.exclude === undefined ? {} : { configExclude: target.exclude }),
114
+ },
115
+ onSkip: (skip) => {
116
+ if (skip.reason === "unreadable")
117
+ unreadable = true;
118
+ },
119
+ ...(options.signal === undefined ? {} : { signal: options.signal }),
120
+ })) {
121
+ options.signal?.throwIfAborted();
122
+ const fileId = buildFileId({
123
+ workspaceId: state.workspaceId,
124
+ repoId: state.repoId,
125
+ refId: state.refId,
126
+ relativePath: normalizeRelativePath(file.relativePath),
127
+ });
128
+ hashes[fileId] = file.contentHash;
129
+ entry.filesChecked++;
130
+ }
131
+ if (unreadable) {
132
+ entry.reason = "source_scan_incomplete";
133
+ return;
134
+ }
135
+ entry.currentCorpusFingerprint = buildCorpusRevisionFingerprint(hashes);
136
+ entry.status =
137
+ entry.currentCorpusFingerprint === state.corpusRevisionFingerprint ? "fresh" : "stale";
138
+ entry.reason = entry.status === "fresh" ? "content_hashes_match" : "sources_changed";
139
+ }
140
+ catch {
141
+ options.signal?.throwIfAborted();
142
+ entry.reason = "source_scan_incomplete";
143
+ }
144
+ }
145
+ /** Missing selected records must not disappear from the aggregate. */
146
+ function appendMissingSnapshots(view, states, repositories, options) {
147
+ if (options.expectedRepoIds === undefined)
148
+ return;
149
+ const expectedRepos = expectedRepositoryIds(view, options.expectedRepoIds);
150
+ if (options.expectedRefs?.length) {
151
+ appendMissingRefSnapshots(view, states, repositories, expectedRepos, options.expectedRefs, options);
152
+ return;
153
+ }
154
+ for (const repoId of expectedRepos) {
155
+ if (!states.some(({ state }) => state.repoId === repoId)) {
156
+ repositories.push(missingSnapshot(view, repoId, undefined, options));
157
+ }
158
+ }
159
+ }
160
+ function expectedRepositoryIds(view, repoIds) {
161
+ if (repoIds.length > 0)
162
+ return repoIds;
163
+ return [
164
+ resolveTarget({
165
+ config: view.config,
166
+ cwd: view.root,
167
+ rootFlag: view.root,
168
+ repoFlag: undefined,
169
+ refFlag: undefined,
170
+ configBaseDir: view.load.sources.configBaseDir,
171
+ }).repoId,
172
+ ];
173
+ }
174
+ /** Named refs cover every selected repository; canonical refs retain their repo qualification. */
175
+ function appendMissingRefSnapshots(view, states, repositories, expectedRepos, expectedRefs, options) {
176
+ for (const ref of expectedRefs) {
177
+ const matchingRepos = ref.includes(":")
178
+ ? expectedRepos.filter((repoId) => ref.startsWith(`${repoId}:`))
179
+ : expectedRepos;
180
+ if (matchingRepos.length === 0) {
181
+ repositories.push(missingSnapshot(view, expectedRepos[0] ?? "unknown", ref, options));
182
+ continue;
183
+ }
184
+ for (const repoId of matchingRepos) {
185
+ if (!states.some(({ state }) => state.repoId === repoId && (state.refId === ref || state.refName === ref))) {
186
+ repositories.push(missingSnapshot(view, repoId, ref, options));
187
+ }
188
+ }
189
+ }
190
+ }
191
+ function missingSnapshot(view, repoId, ref, options) {
192
+ let refId = ref?.includes(":") ? ref : buildRefId(repoId, ref ?? "unknown");
193
+ if (ref === undefined) {
194
+ try {
195
+ refId = resolveTarget({
196
+ config: view.config,
197
+ cwd: view.root,
198
+ rootFlag: view.root,
199
+ repoFlag: (view.config.repositories ?? []).length === 0 ? undefined : repoId,
200
+ refFlag: undefined,
201
+ configBaseDir: view.load.sources.configBaseDir,
202
+ }).refId;
203
+ }
204
+ catch {
205
+ options.signal?.throwIfAborted();
206
+ /* Missing configuration remains unverified. */
207
+ }
208
+ }
209
+ return {
210
+ repoId,
211
+ refId,
212
+ status: "unknown",
213
+ reason: "index_snapshot_missing",
214
+ filesChecked: 0,
215
+ };
216
+ }
217
+ function aggregateFreshnessStatus(repositories) {
218
+ if (repositories.length === 0)
219
+ return "unknown";
220
+ for (const status of ["incompatible", "stale", "unknown"]) {
221
+ if (repositories.some((entry) => entry.status === status))
222
+ return status;
223
+ }
224
+ return "fresh";
225
+ }
226
+ //# sourceMappingURL=index-freshness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-freshness.js","sourceRoot":"","sources":["../../src/cli/index-freshness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CommandContext } from "./command.js";
2
+ import type { WorkspaceView } from "./workspace.js";
3
+ /** Rebuild only selected, physically checked-out refs; route progress away from query JSON. */
4
+ export declare function refreshWorkspaceIndex(ctx: CommandContext, options: {
5
+ view: WorkspaceView;
6
+ repoIds?: readonly string[];
7
+ refIds?: readonly string[];
8
+ embedder: "auto" | "offline";
9
+ }): Promise<void>;
10
+ //# sourceMappingURL=index-refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-refresh.d.ts","sourceRoot":"","sources":["../../src/cli/index-refresh.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,+FAA+F;AAC/F,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE;IACP,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GACA,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
@@ -0,0 +1,76 @@
1
+ import { buildRefId } from "@untangle-code/domain";
2
+ import { indexCommand } from "../commands/index/index.js";
3
+ import { detectRefName, resolveTarget } from "../commands/index/target.js";
4
+ import { EXIT, EnvironmentError, UsageError } from "./exit.js";
5
+ /** Rebuild only selected, physically checked-out refs; route progress away from query JSON. */
6
+ export async function refreshWorkspaceIndex(ctx, options) {
7
+ const { view } = options;
8
+ const configured = view.config.repositories ?? [];
9
+ const targets = preflightRefreshTargets(view, options.repoIds, options.refIds);
10
+ for (const target of targets) {
11
+ ctx.signal.throwIfAborted();
12
+ const exit = await indexCommand.run({ ...ctx, io: { out: (chunk) => ctx.io.err(chunk), err: (chunk) => ctx.io.err(chunk) } }, {
13
+ positionals: [],
14
+ flags: {
15
+ root: configured.length === 0 ? target.rootPath : view.root,
16
+ ...(configured.length === 0 ? {} : { repo: target.repoId }),
17
+ ref: target.refName,
18
+ embedder: options.embedder,
19
+ format: "json",
20
+ resume: false,
21
+ },
22
+ });
23
+ ctx.signal.throwIfAborted();
24
+ if (exit !== EXIT.ok)
25
+ throw new EnvironmentError("The search index could not be fully refreshed.", "Check the index report on stderr and run `untangle doctor`.");
26
+ }
27
+ }
28
+ /** Resolve and validate the complete requested scope before the first mutation. */
29
+ function preflightRefreshTargets(view, selectedRepoIds, selectedRefIds) {
30
+ const configured = view.config.repositories ?? [];
31
+ const repoIds = selectedRepoIds?.length
32
+ ? [...new Set(selectedRepoIds)]
33
+ : configured.map((repo) => repo.id);
34
+ const requestedRefs = new Set(selectedRefIds ?? []);
35
+ const availableTargets = (repoIds.length ? repoIds : [undefined]).map((repoId) => resolveRefreshTarget(view, repoId, requestedRefs.size > 0));
36
+ const unavailableRefs = [...requestedRefs].flatMap((ref) => ref.includes(":")
37
+ ? availableTargets.some((target) => target.refId === ref)
38
+ ? []
39
+ : [ref]
40
+ : availableTargets
41
+ .filter((target) => target.refName !== ref)
42
+ .map((target) => buildRefId(target.repoId, ref)));
43
+ if (unavailableRefs.length > 0)
44
+ throw new UsageError(`Selected refs are not checked out here: ${unavailableRefs.join(", ")}.`, "Switch to matching worktrees or select only refs checked out here.");
45
+ const targets = availableTargets.filter((target) => requestedRefs.size === 0 ||
46
+ requestedRefs.has(target.refId) ||
47
+ requestedRefs.has(target.refName));
48
+ if (targets.length === 0)
49
+ throw new UsageError("None of the selected refs is checked out here.", "Switch to the matching worktree and run `untangle index` there.");
50
+ for (const target of targets) {
51
+ if (detectRefName(target.rootPath) !== target.refName)
52
+ throw new UsageError(`Ref ${target.refName} is not checked out in ${target.rootPath}.`, "Switch to the matching worktree before refreshing its index.");
53
+ }
54
+ return targets;
55
+ }
56
+ /** Explicit ref selection follows the physical checkout rather than a configured default. */
57
+ function resolveRefreshTarget(view, repoId, hasExplicitRefs) {
58
+ const input = {
59
+ config: view.config,
60
+ cwd: view.root,
61
+ rootFlag: view.root,
62
+ repoFlag: repoId,
63
+ refFlag: undefined,
64
+ configBaseDir: view.load.sources.configBaseDir,
65
+ };
66
+ const configuredTarget = resolveTarget(input);
67
+ if ((view.config.repositories ?? []).length === 0 &&
68
+ repoId !== undefined &&
69
+ repoId !== configuredTarget.repoId) {
70
+ throw new UsageError(`Repository ${repoId} is absent from this project.`, "Select the index by its actual repository ID or omit --repo.");
71
+ }
72
+ return hasExplicitRefs
73
+ ? resolveTarget({ ...input, refFlag: detectRefName(configuredTarget.rootPath) })
74
+ : configuredTarget;
75
+ }
76
+ //# sourceMappingURL=index-refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-refresh.js","sourceRoot":"","sources":["../../src/cli/index-refresh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Der lokale Indexzustand: welches Einbettungsprofil welchen Repo/Ref-Index
3
+ * gebaut hat.
4
+ *
5
+ * Seit Welle 9 ist das keine Singleton-Datei mehr. Eine physische
6
+ * Repository-Wurzel kann mehrere konfigurierte Repo-IDs, Refs und
7
+ * Einbettungsprofile tragen. Jeder dieser Zustaende liegt deshalb in einem
8
+ * eigenen, aus seiner kanonischen Identitaet gehashten Datensatz. Ein
9
+ * separater, generationsgebundener Pointer pro Repo/Ref bezeichnet das
10
+ * Profil des letzten gestarteten Laufs fuer `--embedder=auto`.
11
+ *
12
+ * `index-state.json` bleibt als lesbarer Migrations-Fallback erhalten. Sobald
13
+ * die Registry dieselbe logische Identitaet kennt, gewinnt jedoch immer ihr
14
+ * Datensatz; der Singleton wird dann nicht ein zweites Mal ausgegeben.
15
+ *
16
+ * Alle Dateinamen entstehen ausschliesslich aus SHA-256-Hashes. Registry und
17
+ * Datensaetze sind hart begrenzt. Korrupte, uebergrosse oder unbeschraenkte
18
+ * Registry-Inhalte werden nicht teilweise als gesund behandelt.
19
+ */
20
+ /** Welcher Einbetter einen Index gebaut hat. */
21
+ export type EmbedderChoice = "service" | "offline";
22
+ /** Lifecycle persisted for query routing and index-completeness provenance. */
23
+ export type IndexStateOutcome = "running" | "completed" | "cancelled" | "failed";
24
+ /** Der Zustand eines indizierten Repositories. Reine Daten. */
25
+ export interface IndexStateV1 {
26
+ readonly schemaVersion: 1;
27
+ readonly workspaceId: string;
28
+ readonly repoId: string;
29
+ readonly refId: string;
30
+ readonly refName: string;
31
+ /** `service` = der konfigurierte Dienst, `offline` = netzlos im Prozess. */
32
+ readonly embedder: EmbedderChoice;
33
+ readonly embeddingProfileId: string;
34
+ readonly collection: string;
35
+ /** Legacy Qdrant endpoint. Absent for embedded records. */
36
+ readonly qdrantUrl?: string;
37
+ readonly storageBackend?: "lancedb" | "qdrant";
38
+ readonly storeUrl?: string;
39
+ /** Generation des Indexlaufs; fehlt nur in vor Welle 9 geschriebenen Zuständen. */
40
+ readonly generationId?: string;
41
+ /** SHA-256 fingerprint of the complete confirmed file/content manifest. */
42
+ readonly corpusRevisionFingerprint?: string;
43
+ /** Completion time, indexing configuration and lexical format of this snapshot. */
44
+ readonly indexedAt?: string;
45
+ readonly indexConfigFingerprint?: string;
46
+ readonly lexicalTokenizerVersion?: string;
47
+ /** Ergebnis des Laufs, der diesen Zustand geschrieben hat. */
48
+ readonly outcome: IndexStateOutcome;
49
+ }
50
+ /** Identitaet eines Registry-Datensatzes. Collection/URL duerfen sich aendern. */
51
+ export type IndexStateRecordIdentity = Pick<IndexStateV1, "workspaceId" | "repoId" | "refId" | "embeddingProfileId"> & StorageStateIdentity;
52
+ /** Identitaet des aktuellen Profils eines Repo/Ref-Paares. */
53
+ interface StorageStateIdentity {
54
+ readonly storageBackend?: "lancedb" | "qdrant";
55
+ readonly storeUrl?: string;
56
+ }
57
+ export type IndexStateCurrentIdentity = Pick<IndexStateV1, "workspaceId" | "repoId" | "refId"> & StorageStateIdentity;
58
+ /**
59
+ * Index-Report-Daten, aus denen der CLI-Adapter einen persistierbaren Zustand
60
+ * ableitet. Ein Readiness-Fehler vor der Generation darf einen nutzbaren
61
+ * Zustand nicht ueberschreiben. Ein spaeter Fehler muss ihn invalidieren.
62
+ */
63
+ export type IndexStateAfterRunInput = Omit<IndexStateV1, "generationId" | "outcome"> & {
64
+ readonly generationId: string | null;
65
+ readonly outcome: Exclude<IndexStateOutcome, "running">;
66
+ };
67
+ export declare function indexStateAfterRun(input: IndexStateAfterRunInput): IndexStateV1 | null;
68
+ /** Alter Singleton-Name unterhalb von `.untangle/`. Nur noch Lesefallback. */
69
+ export declare const INDEX_STATE_FILE = "index-state.json";
70
+ export declare const INDEX_STATE_REGISTRY_DIR = "index-states-v1";
71
+ export declare const INDEX_STATE_RECORDS_DIR = "records";
72
+ export declare const INDEX_STATE_CURRENT_DIR = "current";
73
+ /** Harte Ressourcenlimits fuer lokal kontrollierbare Registry-Lesevorgaenge. */
74
+ export declare const MAX_INDEX_STATE_FILE_BYTES: number;
75
+ export declare const MAX_INDEX_STATE_REGISTRY_ENTRIES = 512;
76
+ /** `<repoRoot>/.untangle` — dasselbe Verzeichnis, das `untangle index` anlegt. */
77
+ export declare function stateRootOf(repoRoot: string): string;
78
+ /** Der alte Singleton-Pfad. Externe Hinweise und Migration duerfen ihn weiter nennen. */
79
+ export declare function indexStatePath(stateRoot: string): string;
80
+ export declare function indexStateRecordKey(identity: IndexStateRecordIdentity): string;
81
+ export declare function indexStateCurrentKey(identity: IndexStateCurrentIdentity): string;
82
+ /** Lock key shared by every profile publication for one repo/ref/backend pointer. */
83
+ export declare function indexStateLockKey(identity: IndexStateCurrentIdentity): string;
84
+ export declare function indexStateRecordPath(stateRoot: string, identity: IndexStateRecordIdentity): string;
85
+ export declare function indexStateCurrentPath(stateRoot: string, identity: IndexStateCurrentIdentity): string;
86
+ export type IndexStateWriteResult = {
87
+ ok: true;
88
+ path: string;
89
+ } | {
90
+ ok: false;
91
+ error: unknown;
92
+ path: string;
93
+ /** `true` means an earlier state cannot still masquerade as this run. */
94
+ previousStateInvalidated: boolean;
95
+ invalidationError?: unknown;
96
+ };
97
+ export type TerminalIndexStateWriteResult = (IndexStateWriteResult & {
98
+ superseded: false;
99
+ }) | {
100
+ ok: true;
101
+ path: string;
102
+ superseded: true;
103
+ };
104
+ /** Owner check supplied by the renewable publication lease. */
105
+ export interface IndexStatePublicationOptions {
106
+ /** Must reject after lease ownership was lost. Called directly before every live rename. */
107
+ readonly assertOwnership?: () => Promise<void>;
108
+ }
109
+ /**
110
+ * Publiziert einen Registry-Datensatz und macht ihn zum aktuellen Profil des
111
+ * Repo/Ref-Paares. Beide Dateien werden einzeln atomar ersetzt. Der Aufrufer
112
+ * serialisiert die kurze Sequenz mit {@link indexStateLockKey}.
113
+ *
114
+ * Misslingt ein Teil, werden der neue Datensatz, der current-Pointer und ein
115
+ * passender Legacy-Fallback invalidiert. Damit kann ein neuer Lauf nie einen
116
+ * alten `completed`-Hinweis gesund aussehen lassen.
117
+ */
118
+ export declare function writeIndexState(stateRoot: string, state: IndexStateV1, options?: IndexStatePublicationOptions): Promise<IndexStateWriteResult>;
119
+ /**
120
+ * Replaces exactly one `running` registry record while its generation still
121
+ * matches. The current pointer is deliberately not republished: if another
122
+ * profile became current while this run finished, a late terminal write may
123
+ * archive its own result but cannot steal `auto` routing back.
124
+ */
125
+ export declare function replaceRunningIndexState(stateRoot: string, terminalState: IndexStateV1, options?: IndexStatePublicationOptions): Promise<TerminalIndexStateWriteResult>;
126
+ /**
127
+ * Compatibility reader for old callers. It returns a state only when exactly
128
+ * one current repo/ref state exists below this physical root; callers needing
129
+ * every context use {@link resolveIndexState}.
130
+ */
131
+ export declare function readIndexState(stateRoot: string): Promise<IndexStateV1 | null>;
132
+ /** The parser remains public for legacy migration and focused tests. */
133
+ export declare function parseIndexState(text: string): IndexStateV1 | null;
134
+ /** Ein gefundener Zustand samt Herkunft und Auto-Routing-Rolle. */
135
+ export interface FoundIndexState {
136
+ readonly repoRoot: string;
137
+ readonly statePath: string;
138
+ readonly source: "registry" | "legacy";
139
+ readonly current: boolean;
140
+ readonly state: IndexStateV1;
141
+ }
142
+ /** Optional query scope applied before states can influence auto-routing. */
143
+ export interface IndexStateScope {
144
+ readonly repoIds?: readonly string[];
145
+ /** Accepts human ref names as well as canonical repo-qualified ref IDs. */
146
+ readonly refs?: readonly string[];
147
+ readonly storageBackend?: "lancedb" | "qdrant";
148
+ readonly storeUrl?: string;
149
+ }
150
+ export interface IndexStateDiagnostic {
151
+ readonly code: "INDEX_STATE_CORRUPT" | "INDEX_STATE_IO" | "INDEX_STATE_OVERSIZED" | "INDEX_STATE_UNBOUNDED";
152
+ readonly path: string;
153
+ readonly message: string;
154
+ }
155
+ /**
156
+ * `all` contains every selected profile record. `found`/`current` only use
157
+ * the generation-checked current pointer and therefore drive `auto` routing.
158
+ */
159
+ export type IndexStateResolution = {
160
+ readonly kind: "resolved";
161
+ readonly embedder: EmbedderChoice;
162
+ readonly found: FoundIndexState;
163
+ readonly current: readonly FoundIndexState[];
164
+ readonly all: readonly FoundIndexState[];
165
+ } | {
166
+ readonly kind: "none";
167
+ } | {
168
+ readonly kind: "ambiguous";
169
+ readonly found: readonly FoundIndexState[];
170
+ readonly all: readonly FoundIndexState[];
171
+ } | {
172
+ readonly kind: "invalid";
173
+ readonly diagnostics: readonly IndexStateDiagnostic[];
174
+ /** Valid states from other roots are exposed for diagnosis, never auto-used. */
175
+ readonly all: readonly FoundIndexState[];
176
+ };
177
+ /**
178
+ * Enumerates every bounded registry under the candidate physical roots.
179
+ * Roots are de-duplicated, records are not: one root can legitimately contain
180
+ * multiple repo IDs, refs and profiles.
181
+ */
182
+ export declare function resolveIndexState(candidateRoots: readonly string[], workspaceId: string, scope?: IndexStateScope): Promise<IndexStateResolution>;
183
+ export {};
184
+ //# sourceMappingURL=index-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-state.d.ts","sourceRoot":"","sources":["../../src/cli/index-state.ts"],"names":[],"mappings":"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"}