@untangle-code/cli 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/LICENSE +661 -0
  2. package/NOTICE +90 -0
  3. package/README.md +424 -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,155 @@
1
+ /** Self-contained for the offline viewer's CSP-hashed serialized runtime. */
2
+ export function createFeatureUntangleMotion(options) {
3
+ const duration = Math.max(1, options.durationMs ?? 2600);
4
+ const interval = Math.max(33, Math.min(160, options.frameIntervalMs ?? 33));
5
+ if (!Number.isFinite(duration) || !Number.isFinite(interval))
6
+ throw new RangeError("Untangling requires bounded timing.");
7
+ let phase = "idle";
8
+ let target = "clusters";
9
+ let transition = null;
10
+ let elapsed = 0;
11
+ let lastTimestamp = null;
12
+ let lastPaint = -Infinity;
13
+ let frame = null;
14
+ let generation = 0;
15
+ function getState() {
16
+ return { phase, target, progress: Math.min(1, elapsed / duration) };
17
+ }
18
+ function announce() {
19
+ options.onState(getState());
20
+ }
21
+ function clearFrame() {
22
+ generation += 1;
23
+ if (frame !== null)
24
+ options.cancelFrame?.(frame);
25
+ frame = null;
26
+ lastTimestamp = null;
27
+ }
28
+ function render(progress) {
29
+ if (!transition)
30
+ return;
31
+ const eased = 1 - (1 - progress) ** 3;
32
+ const positions = Object.create(null);
33
+ for (const id of Object.keys(transition.from)) {
34
+ const from = transition.from[id];
35
+ const to = transition.to[id];
36
+ positions[id] =
37
+ progress === 1
38
+ ? { ...to }
39
+ : progress === 0
40
+ ? { ...from }
41
+ : {
42
+ x: from.x + (to.x - from.x) * eased,
43
+ y: from.y + (to.y - from.y) * eased,
44
+ z: from.z + (to.z - from.z) * eased,
45
+ };
46
+ }
47
+ try {
48
+ options.onFrame(positions, transition.fromAmount + (transition.toAmount - transition.fromAmount) * eased);
49
+ }
50
+ catch (error) {
51
+ clearFrame();
52
+ phase = "paused";
53
+ announce();
54
+ throw error;
55
+ }
56
+ }
57
+ function schedule() {
58
+ if (phase !== "running" || frame !== null || !options.requestFrame)
59
+ return;
60
+ const token = generation;
61
+ frame = options.requestFrame((timestamp) => {
62
+ if (token !== generation || phase !== "running")
63
+ return;
64
+ frame = null;
65
+ if (options.reducedMotion()) {
66
+ finish();
67
+ return;
68
+ }
69
+ if (!options.visible()) {
70
+ pause();
71
+ return;
72
+ }
73
+ if (lastTimestamp !== null)
74
+ elapsed += Math.max(0, timestamp - lastTimestamp);
75
+ lastTimestamp = timestamp;
76
+ if (elapsed >= duration) {
77
+ finish();
78
+ return;
79
+ }
80
+ if (timestamp - lastPaint >= interval) {
81
+ render(elapsed / duration);
82
+ lastPaint = timestamp;
83
+ }
84
+ schedule();
85
+ });
86
+ }
87
+ function finish() {
88
+ if (!transition || phase === "complete")
89
+ return;
90
+ clearFrame();
91
+ elapsed = duration;
92
+ phase = "complete";
93
+ render(1);
94
+ announce();
95
+ }
96
+ function pause() {
97
+ if (phase !== "running")
98
+ return;
99
+ clearFrame();
100
+ phase = "paused";
101
+ announce();
102
+ }
103
+ function resume() {
104
+ if (phase !== "paused")
105
+ return;
106
+ if (options.reducedMotion() || !options.requestFrame) {
107
+ finish();
108
+ return;
109
+ }
110
+ if (!options.visible())
111
+ return;
112
+ phase = "running";
113
+ announce();
114
+ schedule();
115
+ }
116
+ function cancel() {
117
+ clearFrame();
118
+ transition = null;
119
+ elapsed = 0;
120
+ phase = "idle";
121
+ announce();
122
+ }
123
+ function start(input) {
124
+ const ids = Object.keys(input.from).sort();
125
+ const targets = Object.keys(input.to).sort();
126
+ if (ids.length !== targets.length || ids.some((id, index) => id !== targets[index]))
127
+ throw new Error("Untangling must preserve every node identity.");
128
+ for (const collection of [input.from, input.to]) {
129
+ for (const point of Object.values(collection)) {
130
+ if (![point.x, point.y, point.z].every(Number.isFinite))
131
+ throw new Error("Untangling requires finite coordinates.");
132
+ }
133
+ }
134
+ if (![input.fromAmount, input.toAmount].every((value) => Number.isFinite(value) && value >= 0 && value <= 1))
135
+ throw new Error("Invalid clustering amount.");
136
+ clearFrame();
137
+ const copy = (points) => Object.fromEntries(Object.entries(points).map(([id, point]) => [id, { ...point }]));
138
+ transition = { ...input, from: copy(input.from), to: copy(input.to) };
139
+ elapsed = 0;
140
+ lastPaint = -Infinity;
141
+ target = input.target;
142
+ phase = "running";
143
+ if (ids.length === 0 || options.reducedMotion() || !options.requestFrame) {
144
+ finish();
145
+ return;
146
+ }
147
+ render(0);
148
+ if (!options.visible())
149
+ phase = "paused";
150
+ announce();
151
+ schedule();
152
+ }
153
+ return { start, pause, resume, finish, cancel, getState };
154
+ }
155
+ //# sourceMappingURL=feature-untangle-motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-untangle-motion.js","sourceRoot":"","sources":["../../../src/commands/graph/feature-untangle-motion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "../../cli/command.js";
2
+ export declare const graphCommand: Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/index.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAuGpE,eAAO,MAAM,YAAY,EAAE,OA8L1B,CAAC"}
@@ -0,0 +1,414 @@
1
+ /**
2
+ * `untangle graph` — der Dateiabhaengigkeitsgraph als Oberflaeche.
3
+ *
4
+ * Er baut nichts. Er LIEST, was `untangle index` gebaut und abgelegt hat
5
+ * (Stufe `building_graphs`), und beantwortet damit vier Fragen:
6
+ *
7
+ * 1. Wovon haengt diese Datei ab, und wer haengt an ihr — transitiv, in
8
+ * beide Richtungen.
9
+ * 2. Wo hoert die Antwort auf? Jede Traversierung hat ein Budget, und ein
10
+ * abgeschnittenes Ergebnis sagt DASS und WARUM
11
+ * (`TRAVERSAL_TRUNCATION_REASONS`).
12
+ * 3. Wo laeuft es im Kreis? Zyklen werden GEMELDET, nie stillschweigend
13
+ * aufgebrochen.
14
+ * 4. Was liess sich nicht aufloesen? Jeder solche Import steht mit seinem
15
+ * ROHSTRING und einem benannten Grund da (E4).
16
+ *
17
+ * Und ueber allem die Monorepo-Ebene: welches Paket, welcher Container-Dienst,
18
+ * welche Kante ueberquert welche Grenze. Der Dateigraph traegt das bereits in
19
+ * `FileEdgeBoundaryV1` und in seiner Topologie; dieser Befehl zeigt es.
20
+ */
21
+ import path from "node:path";
22
+ import { DEFAULT_TRAVERSAL_LIMITS } from "@untangle-code/file-graph";
23
+ import { DEFAULT_MAX_EDGES, DEFAULT_MAX_NODES, MAX_MAX_EDGES, MAX_MAX_NODES, writeGraphExplorerHtml, } from "@untangle-code/graph-explorer";
24
+ import { enumFlag, integerFlag, stringFlag, } from "../../cli/args.js";
25
+ import { EXIT, OperationalError, UsageError } from "../../cli/exit.js";
26
+ import { loadGraphs } from "../../cli/graphs.js";
27
+ import { line, note } from "../../cli/io.js";
28
+ import { MAX_GRAPH_QUERY_EDGES } from "../flow/limits.js";
29
+ import { runBoundaries } from "./boundaries.js";
30
+ import { boundDirectEdges } from "./bounds.js";
31
+ import { runFeatureMap } from "./feature-map.js";
32
+ import { countBoundaries, describeNode, renderFileView, renderIssues, renderOverview, } from "./render.js";
33
+ import { selectFileNode } from "./select.js";
34
+ const FLAGS = {
35
+ "feature-map": {
36
+ kind: "string",
37
+ placeholder: "JSON",
38
+ describe: "graph features: explicit declared feature manifest; default untangle.features.json.",
39
+ },
40
+ "test-evidence": {
41
+ kind: "string",
42
+ placeholder: "JSON",
43
+ describe: "graph features: existing source-bound test evidence; does not run tests.",
44
+ },
45
+ services: {
46
+ kind: "string",
47
+ placeholder: "JSON",
48
+ describe: "graph boundaries: explicit local HTTP service bindings; default .untangle/services.json.",
49
+ },
50
+ path: {
51
+ kind: "string",
52
+ placeholder: "FILE",
53
+ describe: "graph boundaries: one repository-relative file; full route inventory is still analyzed.",
54
+ },
55
+ "max-relations": {
56
+ kind: "number",
57
+ placeholder: "N",
58
+ describe: "graph boundaries: output relations per section (1..1000).",
59
+ },
60
+ root: {
61
+ kind: "string",
62
+ placeholder: "PATH",
63
+ describe: "Project directory; configuration is discovered from here.",
64
+ defaultLabel: "current directory",
65
+ },
66
+ direction: {
67
+ kind: "string",
68
+ placeholder: "both|dependencies|dependents",
69
+ describe: "Dependencies, dependents, or both.",
70
+ defaultLabel: "both",
71
+ },
72
+ depth: {
73
+ kind: "number",
74
+ placeholder: "N",
75
+ describe: "Transitive depth. Output reports when the limit is reached (max_depth).",
76
+ defaultLabel: "3",
77
+ },
78
+ "max-nodes": {
79
+ kind: "number",
80
+ placeholder: "N",
81
+ describe: "Node budget for traversal or the offline explorer; truncation remains visible.",
82
+ defaultLabel: `${String(DEFAULT_TRAVERSAL_LIMITS.maxNodes)} (query), ${String(DEFAULT_MAX_NODES)} (Explorer)`,
83
+ },
84
+ "max-edges": {
85
+ kind: "number",
86
+ placeholder: "N",
87
+ describe: "Edge budget for a file query or the offline explorer; truncation remains visible.",
88
+ defaultLabel: `${String(MAX_GRAPH_QUERY_EDGES)} (query), ${String(DEFAULT_MAX_EDGES)} (Explorer)`,
89
+ },
90
+ layout: {
91
+ kind: "string",
92
+ placeholder: "repository-lanes|grid|circle",
93
+ describe: "Deterministic initial layout for the offline explorer.",
94
+ defaultLabel: "repository-lanes",
95
+ },
96
+ out: {
97
+ kind: "string",
98
+ placeholder: "FILE",
99
+ describe: "Explicit output target for `graph visualize`; no implicit write target.",
100
+ },
101
+ limit: {
102
+ kind: "number",
103
+ alias: "n",
104
+ placeholder: "N",
105
+ describe: "Maximum individually listed cycles, unresolved imports and ledger entries.",
106
+ defaultLabel: "20",
107
+ },
108
+ format: {
109
+ kind: "string",
110
+ placeholder: "text|json",
111
+ describe: "Output format. json contains the same information in machine-readable form.",
112
+ defaultLabel: "text",
113
+ },
114
+ };
115
+ export const graphCommand = {
116
+ spec: {
117
+ name: "graph",
118
+ implementedBy: "commands/graph/index.js",
119
+ summary: "Show file dependencies",
120
+ usage: "untangle graph [<file>] [--direction=both] [--depth=N] [--max-edges=N] [--format=text|json]\n untangle graph visualize --out=<FILE> [--layout=repository-lanes|grid|circle]\n untangle graph boundaries [--path=FILE] [--services=JSON] [--format=json]\n untangle graph features [--feature-map=JSON] [--test-evidence=JSON] [--format=json]",
121
+ details: [
122
+ "graph features writes a local interactive feature/code map and source-bound JSON under the target project's .untangle/feature-map directory. It reads current sources without an index or search services. Features, tests, intent, ownership and dependencies remain declarations with explicit evidence gaps. It runs no tests and opens no browser. Zoom, filters, node details and a keyboard-accessible list work offline.",
123
+ "graph boundaries reads current local sources without an index: Vue/TS/JS import context, HTTP requests, FastAPI route registration and declared feature ownership. Explicit service bindings prevent equal paths from silently joining unrelated services. Unknown and ambiguous transport dependencies remain visible; they are not synchronous call edges.",
124
+ "Without a file: overview of nodes, edges, import-resolution rate, monorepo topology (manifest packages, compose services and their edges), cycles, central files, unresolved imports and the graph-build skip ledger.",
125
+ "With a file: dependency and dependent trees in both directions. Each edge identifies its resolution mechanism and any package, repository or container boundary it crosses.",
126
+ "Limits remain visible: transitive depth is bounded (--depth, default 3). Reaching it reports the number of unvisited neighbors and the max_depth reason. Node, edge and time budgets behave likewise. A truncated result never appears complete.",
127
+ "Cycles are reported without breaking them: a closing path is marked at its location and shown in full at the end.",
128
+ "Unresolved imports remain visible with their raw string, reason and checked/rejected candidates.",
129
+ "Reads the stored graph, not the working tree. A missing graph produces exit code 4 and points to `untangle index`; it never claims there are no dependencies.",
130
+ "Offline explorer: `graph visualize` writes only the self-contained HTML artifact explicitly selected with --out. It contains graph metadata, no source text or network requests. Nothing is written without an explicit target.",
131
+ ],
132
+ flags: FLAGS,
133
+ examples: [
134
+ "untangle graph",
135
+ "untangle graph features --format=json",
136
+ "untangle graph packages/domain/src/index.ts --direction=dependents",
137
+ "untangle graph src/app.ts --depth=1",
138
+ "untangle graph --format=json",
139
+ "untangle graph visualize --out=artifacts/graph.html --layout=repository-lanes",
140
+ ],
141
+ exitCodes: [
142
+ [EXIT.ok, "The graph was read and displayed."],
143
+ [EXIT.operational, "Operational error, or the selected file is absent from the graph."],
144
+ [EXIT.usage, "Usage error, or the selected file is ambiguous."],
145
+ [EXIT.environment, "No graph is available; run `untangle index`."],
146
+ ],
147
+ },
148
+ async run(ctx, args) {
149
+ const format = enumFlag(args, "format", ["text", "json"], "text");
150
+ const target = args.positionals[0];
151
+ if (args.positionals.length > 1) {
152
+ throw new UsageError(`The graph command accepts at most one positional argument; received ${String(args.positionals.length)}.`, "Use `untangle graph <file>` or `untangle graph visualize --out=<FILE>`.");
153
+ }
154
+ if (target === "boundaries") {
155
+ for (const flag of ["feature-map", "test-evidence"])
156
+ if (args.flags[flag] !== undefined)
157
+ throw new UsageError(`Option --${flag} requires graph features.`);
158
+ return runBoundaries(ctx, { ...args, positionals: [] });
159
+ }
160
+ if (target === "features") {
161
+ for (const flag of [
162
+ "services",
163
+ "path",
164
+ "max-relations",
165
+ "direction",
166
+ "depth",
167
+ "layout",
168
+ "out",
169
+ "limit",
170
+ ])
171
+ if (args.flags[flag] !== undefined)
172
+ throw new UsageError(`Option --${flag} is not supported by graph features.`);
173
+ return runFeatureMap(ctx, { ...args, positionals: [] });
174
+ }
175
+ for (const flag of ["feature-map", "test-evidence"])
176
+ if (args.flags[flag] !== undefined)
177
+ throw new UsageError(`Option --${flag} requires graph features.`);
178
+ for (const flag of ["services", "path", "max-relations"])
179
+ if (args.flags[flag] !== undefined)
180
+ throw new UsageError(`Option --${flag} requires graph boundaries.`);
181
+ const visualizing = target === "visualize";
182
+ validateModeSpecificFlags(args, visualizing, target !== undefined);
183
+ const visualization = visualizing ? readVisualizationOptions(args) : undefined;
184
+ const direction = enumFlag(args, "direction", ["both", "dependencies", "dependents"], "both");
185
+ const depth = integerFlag(args, "depth", 3);
186
+ if (depth < 1) {
187
+ throw new UsageError(`Option "--depth" requires at least 1; received "${String(depth)}".`, "Example: --depth=3");
188
+ }
189
+ const maxNodes = integerFlag(args, "max-nodes", visualizing ? DEFAULT_MAX_NODES : DEFAULT_TRAVERSAL_LIMITS.maxNodes);
190
+ if (maxNodes < 1 || (visualizing && maxNodes > MAX_MAX_NODES)) {
191
+ throw new UsageError(visualizing
192
+ ? `Option "--max-nodes" requires 1 to ${String(MAX_MAX_NODES)}; received "${String(maxNodes)}".`
193
+ : `Option "--max-nodes" requires at least 1; received "${String(maxNodes)}".`, visualizing ? "Example: --max-nodes=600" : "Example: --max-nodes=1000");
194
+ }
195
+ const queryMaxEdges = visualizing ? undefined : readQueryMaxEdges(args);
196
+ const limit = integerFlag(args, "limit", 20);
197
+ const rootFlag = stringFlag(args, "root");
198
+ const loaded = await loadGraphs({
199
+ cwd: ctx.cwd,
200
+ env: ctx.env,
201
+ signal: ctx.signal,
202
+ ...(rootFlag === undefined ? {} : { root: path.resolve(ctx.cwd, rootFlag) }),
203
+ });
204
+ for (const issue of renderIssues(loaded.issues))
205
+ note(ctx.io, issue);
206
+ const graph = loaded.fileGraph;
207
+ if (visualization !== undefined) {
208
+ return writeVisualization(ctx, format, maxNodes, visualization, loaded);
209
+ }
210
+ const limits = {
211
+ maxDepth: depth,
212
+ maxNodes,
213
+ ...(queryMaxEdges === undefined ? {} : { maxEdges: queryMaxEdges }),
214
+ };
215
+ /* ------------------------------ Uebersicht ------------------------ */
216
+ if (target === undefined) {
217
+ if (format === "json") {
218
+ line(ctx.io, JSON.stringify(overviewJson(loaded.generationId, graph, loaded.issues), null, 2));
219
+ return EXIT.ok;
220
+ }
221
+ for (const text of renderOverview({
222
+ graph,
223
+ generationId: loaded.generationId,
224
+ issues: loaded.issues,
225
+ unresolvedLimit: limit,
226
+ })) {
227
+ line(ctx.io, text);
228
+ }
229
+ return EXIT.ok;
230
+ }
231
+ /* ------------------------------ Dateisicht ------------------------ */
232
+ const node = resolveNode(graph, target);
233
+ const dependencies = direction === "dependents" ? undefined : graph.dependenciesOf(node.fileId, limits);
234
+ const dependents = direction === "dependencies" ? undefined : graph.dependentsOf(node.fileId, limits);
235
+ if (format === "json") {
236
+ const directEdges = boundDirectEdges(graph.snapshot.edges, node.fileId, queryMaxEdges ?? MAX_GRAPH_QUERY_EDGES);
237
+ line(ctx.io, JSON.stringify({
238
+ generationId: loaded.generationId,
239
+ workspaceId: graph.workspaceId,
240
+ node,
241
+ edges: directEdges.edges,
242
+ truncated: directEdges.truncated,
243
+ omittedCount: directEdges.omittedCount,
244
+ ...(dependencies === undefined ? {} : { dependencies: expand(graph, dependencies) }),
245
+ ...(dependents === undefined ? {} : { dependents: expand(graph, dependents) }),
246
+ issues: loaded.issues,
247
+ }, null, 2));
248
+ return EXIT.ok;
249
+ }
250
+ for (const text of renderFileView({
251
+ graph,
252
+ node,
253
+ direction,
254
+ ...(dependencies === undefined ? {} : { dependencies }),
255
+ ...(dependents === undefined ? {} : { dependents }),
256
+ })) {
257
+ line(ctx.io, text);
258
+ }
259
+ return EXIT.ok;
260
+ },
261
+ };
262
+ /* ------------------------------------------------------------------ */
263
+ async function writeVisualization(ctx, format, maxNodes, options, loaded) {
264
+ const outputPath = path.resolve(ctx.cwd, options.out);
265
+ ctx.signal.throwIfAborted();
266
+ let artifact;
267
+ try {
268
+ artifact = await writeGraphExplorerHtml(outputPath, {
269
+ fileGraph: loaded.fileGraph.snapshot,
270
+ symbolGraph: loaded.symbolGraph?.graph ?? null,
271
+ workspace: {
272
+ workspaceId: loaded.view.workspaceId,
273
+ label: loaded.view.config.projectId ?? loaded.view.workspaceId,
274
+ generationId: loaded.generationId,
275
+ repositories: (loaded.view.config.repositories ?? []).map((repository) => ({
276
+ repoId: repository.id,
277
+ label: repository.label ?? repository.id,
278
+ ...(repository.ref === undefined ? {} : { refName: repository.ref }),
279
+ })),
280
+ },
281
+ }, { maxNodes, maxEdges: options.maxEdges, initialLayout: options.layout });
282
+ }
283
+ catch (error) {
284
+ throw new OperationalError(`Could not write the offline explorer to "${outputPath}": ${errorMessage(error)}`, "Check the target directory and write permissions; Untangle does not create missing parent directories.", { cause: error });
285
+ }
286
+ const result = {
287
+ generationId: loaded.generationId,
288
+ workspaceId: loaded.fileGraph.workspaceId,
289
+ artifact,
290
+ symbolGraph: {
291
+ available: loaded.symbolGraph !== null,
292
+ ...(loaded.symbolGraphMissingReason === undefined
293
+ ? {}
294
+ : { missingReason: loaded.symbolGraphMissingReason }),
295
+ },
296
+ issues: loaded.issues,
297
+ };
298
+ if (format === "json") {
299
+ line(ctx.io, JSON.stringify(result, null, 2));
300
+ return EXIT.ok;
301
+ }
302
+ line(ctx.io, `Offline explorer: ${artifact.path}`);
303
+ line(ctx.io, `Generation: ${loaded.generationId}`);
304
+ line(ctx.io, `SHA-256: ${artifact.sha256}`);
305
+ line(ctx.io, `Size: ${String(artifact.bytes)} Bytes`);
306
+ line(ctx.io, `File graph: ${String(artifact.views.file?.shownNodeCount ?? 0)} nodes, ${String(artifact.views.file?.shownLinkCount ?? 0)} visible edges`);
307
+ if (artifact.views.symbol === null) {
308
+ note(ctx.io, `Symbol graph missing: ${loaded.symbolGraphMissingReason ?? "no persisted snapshot"}`);
309
+ }
310
+ else {
311
+ line(ctx.io, `Symbol graph: ${String(artifact.views.symbol.shownNodeCount)} nodes, ${String(artifact.views.symbol.shownLinkCount)} visible edges`);
312
+ }
313
+ return EXIT.ok;
314
+ }
315
+ function readVisualizationOptions(args) {
316
+ const out = stringFlag(args, "out")?.trim();
317
+ if (out === undefined || out === "") {
318
+ throw new UsageError("`untangle graph visualize` requires an explicit --out target.", "Example: untangle graph visualize --out=artifacts/graph.html");
319
+ }
320
+ const maxEdges = integerFlag(args, "max-edges", DEFAULT_MAX_EDGES);
321
+ if (maxEdges < 1 || maxEdges > MAX_MAX_EDGES) {
322
+ throw new UsageError(`Option "--max-edges" requires 1 to ${String(MAX_MAX_EDGES)}; received "${String(maxEdges)}".`, "Example: --max-edges=1200");
323
+ }
324
+ const layout = enumFlag(args, "layout", ["repository-lanes", "grid", "circle"], "repository-lanes");
325
+ return { out, maxEdges, layout };
326
+ }
327
+ function readQueryMaxEdges(args) {
328
+ const maxEdges = integerFlag(args, "max-edges", MAX_GRAPH_QUERY_EDGES);
329
+ if (maxEdges < 1 || maxEdges > MAX_GRAPH_QUERY_EDGES) {
330
+ throw new UsageError(`Option "--max-edges" requires 1 to ${String(MAX_GRAPH_QUERY_EDGES)}; received "${String(maxEdges)}".`, `Example: --max-edges=${String(DEFAULT_TRAVERSAL_LIMITS.maxEdges)}`);
331
+ }
332
+ return maxEdges;
333
+ }
334
+ function validateModeSpecificFlags(args, visualizing, hasTarget) {
335
+ const visualizationOnly = ["out", "layout"];
336
+ const queryOnly = ["direction", "depth", "limit"];
337
+ const invalid = (visualizing ? queryOnly : visualizationOnly).filter((name) => args.flags[name] !== undefined);
338
+ if (!visualizing && !hasTarget && args.flags["max-edges"] !== undefined) {
339
+ invalid.push("max-edges");
340
+ }
341
+ if (invalid.length === 0)
342
+ return;
343
+ const mode = visualizing ? "graph visualize" : "graph";
344
+ throw new UsageError(`Option${invalid.length === 1 ? "" : "s"} ${invalid.map((name) => `--${name}`).join(", ")} ${invalid.length === 1 ? "does" : "do"} not apply to \`${mode}\`.`, visualizing
345
+ ? "Explorer budgets use --max-nodes and --max-edges; --layout selects the initial layout."
346
+ : invalid.includes("max-edges")
347
+ ? "Use --max-edges with `untangle graph <file>` or `untangle graph visualize --out=<FILE>`."
348
+ : "Use these options only with `untangle graph visualize --out=<FILE>`.");
349
+ }
350
+ function errorMessage(error) {
351
+ return error instanceof Error ? error.message : String(error);
352
+ }
353
+ /**
354
+ * Der Knoten zur Nutzereingabe — oder ein Abbruch, der die Kandidaten nennt.
355
+ *
356
+ * Mehrdeutigkeit wird NICHT aufgeloest: bei zwei passenden Dateien waehlt der
357
+ * Befehl keine aus, sondern zeigt beide und laesst den Nutzer entscheiden.
358
+ */
359
+ function resolveNode(graph, query) {
360
+ const selection = selectFileNode(graph.nodes(), query);
361
+ if (selection.status === "found")
362
+ return selection.node;
363
+ if (selection.status === "ambiguous") {
364
+ throw new UsageError(`"${query}" matches ${String(selection.candidates.length)} files: ` +
365
+ selection.candidates.map((node) => node.filePath).join(", "), "Specify the complete repository-relative path.");
366
+ }
367
+ const near = selection.near.length === 0
368
+ ? ""
369
+ : ` Similar names: ${selection.near.map((node) => node.filePath).join(", ")}.`;
370
+ throw new OperationalError(`File "${query}" is absent from the file graph. Nothing was evaluated; ` +
371
+ `this does not mean there are no dependencies.${near}`, "Check the path or run `untangle index` again. `untangle graph` without an argument lists the graph contents.");
372
+ }
373
+ /** Traversierungsergebnis mit Pfaden angereichert — JSON soll lesbar sein. */
374
+ function expand(graph, result) {
375
+ return {
376
+ ...result,
377
+ visitedPaths: result.visitedFileIds.map((id) => graph.node(id)?.filePath ?? id),
378
+ cyclePaths: result.cycles.map((cycle) => cycle.map((id) => graph.node(id)?.filePath ?? id)),
379
+ };
380
+ }
381
+ function overviewJson(generationId, graph, issues) {
382
+ const metrics = graph.metrics();
383
+ return {
384
+ generationId,
385
+ workspaceId: graph.workspaceId,
386
+ metrics,
387
+ boundaries: countBoundaries(graph),
388
+ topology: graph.topology,
389
+ cyclePaths: metrics.cycles.map((cycle) => cycle.map((id) => graph.node(id)?.filePath ?? id)),
390
+ unresolved: graph
391
+ .edges()
392
+ .filter((edge) => edge.resolution.status === "unresolved")
393
+ .map((edge) => ({
394
+ fromPath: edge.fromPath,
395
+ rawSpecifier: edge.rawSpecifier,
396
+ resolution: edge.resolution,
397
+ sites: edge.sites,
398
+ })),
399
+ orphanPaths: metrics.orphanFileIds.map((id) => graph.node(id)?.filePath ?? id),
400
+ nodes: graph.nodes().map((node) => ({
401
+ fileId: node.fileId,
402
+ filePath: node.filePath,
403
+ label: describeNode(node),
404
+ packageName: node.packageName ?? null,
405
+ containerService: node.containerService ?? null,
406
+ dependencies: node.dependencies.length,
407
+ dependents: node.dependents.length,
408
+ unresolvedImportCount: node.unresolvedImportCount,
409
+ })),
410
+ skipped: graph.skipLedger(),
411
+ issues,
412
+ };
413
+ }
414
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/graph/index.ts"],"names":[],"mappings":"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"}