@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,205 @@
1
+ import { compareCodepoints } from "@untangle-code/domain";
2
+ import { line, note } from "../../cli/io.js";
3
+ export function createIndexProgress() {
4
+ return { plannedFiles: 0, embeddedFiles: 0, storedPoints: 0 };
5
+ }
6
+ /**
7
+ * Die Kopfzeilen VOR dem ersten Ereignis.
8
+ *
9
+ * WP-227: Der Laeufer meldet eine Stufe erst, wenn sie FERTIG ist. Haengt die
10
+ * erste Stufe — und genau das tut sie, wenn der Einbettungsdienst nicht
11
+ * antwortet —, dann gibt es ohne diese Zeilen ueberhaupt keine Ausgabe. Der
12
+ * Nutzer sieht dann nicht einmal, WORAUF gewartet wird. Deshalb steht hier,
13
+ * was gleich passiert, bevor irgendetwas passiert.
14
+ */
15
+ export function renderRunHeader(io, input) {
16
+ note(io, `[ 0%] Target: ${input.rootPath}`);
17
+ note(io, ` Repository ${input.repoId}, Ref ${input.refName}, collection ${input.collection}.`);
18
+ note(io, ` Embedder ${input.embedder}, deadline ${String(input.timeoutMs)} ms per call ` +
19
+ "(--timeout). Five stages: check services, discover files, process, " +
20
+ "build graphs, commit.");
21
+ }
22
+ /** Eine Fortschrittszeile je Ereignis — kurz, und nie auf stdout. */
23
+ export function renderEvent(io, event, verbose, progress = createIndexProgress()) {
24
+ switch (event.kind) {
25
+ case "job_queued":
26
+ note(io, `[ 1%] Job ${event.jobId} queued. Stage 1/5: embedding service and collection.`);
27
+ return;
28
+ case "infrastructure_ready":
29
+ note(io, `[ 10%] Ready: ${Object.entries(event.endpoints)
30
+ .sort(([a], [b]) => compareCodepoints(a, b))
31
+ .map(([key, value]) => `${key}=${value}`)
32
+ .join(" ")}`);
33
+ note(io, "[ 15%] Stage 2/5: discovering files …");
34
+ return;
35
+ case "files_discovered":
36
+ progress.plannedFiles = event.changedFiles;
37
+ note(io, `[ 20%] Found: ${String(event.totalFiles)} files, including ` +
38
+ `${String(event.changedFiles)} planned, ${String(event.unchangedFiles)} unchanged, ` +
39
+ `${String(event.ignoredFiles)} ignoriert.`);
40
+ note(io, event.changedFiles === 0
41
+ ? "[ 25%] Stage 3/5: nothing to process; every discovered file is unchanged."
42
+ : `[ 25%] Stage 3/5: ${String(event.changedFiles)} files to parse, embed and store …`);
43
+ return;
44
+ case "file_analyzed":
45
+ if (verbose) {
46
+ note(io, ` analysiert ${event.filePath} (${String(event.chunkCount)} Chunks, ` +
47
+ `${String(event.symbolCount)} symbols, parse=${event.parseQuality})`);
48
+ }
49
+ return;
50
+ case "embedding_batch_completed":
51
+ progress.embeddedFiles += event.batchSize;
52
+ note(io, `[${percentOfPipeline(progress)}] Batch ${String(event.batchIndex)}: ` +
53
+ `${String(event.batchSize)} files embedded ` +
54
+ `(${String(progress.embeddedFiles)} of ${String(progress.plannedFiles)}), ` +
55
+ `${String(event.cacheHits)} from cache, ` +
56
+ `${String(event.truncatedCount)} gekuerzt.`);
57
+ return;
58
+ case "points_stored":
59
+ progress.storedPoints += event.pointCount;
60
+ note(io, `[${percentOfPipeline(progress)}] Stored: ${String(event.pointCount)} points in ` +
61
+ `${event.collection} (${String(event.serializedBytes)} Bytes, ` +
62
+ `${String(progress.storedPoints)} total).`);
63
+ return;
64
+ case "checkpoint_saved":
65
+ if (verbose) {
66
+ note(io, ` Checkpoint at ${event.stage}: ${String(event.completedFileCount)} files.`);
67
+ }
68
+ return;
69
+ case "graph_updated":
70
+ note(io, `[ 85%] Stage 4/5 — graph ${event.graph}: ${String(event.nodeCount)} nodes, ` +
71
+ `${String(event.edgeCount)} edges.`);
72
+ return;
73
+ case "job_completed":
74
+ note(io, `[100%] Finished in ${String(event.durationMs)} ms.`);
75
+ return;
76
+ case "job_failed":
77
+ note(io, `[ !! ] Failed: ${event.errorCode} — ${event.message}`);
78
+ return;
79
+ case "job_cancelled":
80
+ note(io, `[ -- ] Cancelled. Checkpoint saved: ${event.checkpointSaved ? "ja" : "no"}.`);
81
+ return;
82
+ default:
83
+ return;
84
+ }
85
+ }
86
+ /**
87
+ * Der Anteil der Verarbeitungsstufe am Ganzen: sie liegt zwischen 25 % und
88
+ * 80 %. Ohne bekannte Dateizahl bleibt es bei 50 % — eine erfundene
89
+ * Genauigkeit waere schlimmer als gar keine.
90
+ */
91
+ function percentOfPipeline(progress) {
92
+ if (progress.plannedFiles <= 0)
93
+ return " 50%";
94
+ const done = Math.min(progress.embeddedFiles, progress.plannedFiles);
95
+ const percent = 25 + Math.floor((55 * done) / progress.plannedFiles);
96
+ return `${String(percent).padStart(3, " ")}%`;
97
+ }
98
+ /** Der Bericht als Text. */
99
+ export function renderReport(io, report) {
100
+ const c = report.counts;
101
+ line(io, `Outcome: ${report.outcome}`);
102
+ line(io, `Repository: ${report.repoId}`);
103
+ line(io, `Ref: ${report.refId}`);
104
+ line(io, `Generation: ${report.generationId ?? "(none)"}`);
105
+ line(io, `Collection: ${report.collection}`);
106
+ line(io, `Profile: ${report.embeddingProfileId}`);
107
+ line(io, "");
108
+ line(io, `Files discovered: ${String(c.filesSeen)}`);
109
+ line(io, ` planned: ${String(c.filesPlanned)}`);
110
+ line(io, ` unchanged: ${String(c.filesUnchanged)} (not recomputed)`);
111
+ line(io, ` ignoriert: ${String(c.filesIgnored)}`);
112
+ line(io, `Files analyzed: ${String(c.filesAnalyzed)}`);
113
+ line(io, `Files removed: ${String(c.filesRemoved)}`);
114
+ line(io, `Chunks: ${String(c.chunks)}`);
115
+ line(io, `Symbols: ${String(c.symbols)}`);
116
+ line(io, `Points stored: ${String(c.points)}`);
117
+ line(io, `Embeddings: ${String(c.embeddingsComputed)} computed, ` +
118
+ `${String(c.embeddingCacheHits)} from cache, ` +
119
+ `${String(c.truncated)} gekuerzt`);
120
+ line(io, analysisCacheLine(c));
121
+ line(io, `File graph: ${String(c.fileGraphNodes)} nodes, ${String(c.fileGraphEdges)} edges`);
122
+ line(io, `Symbol graph: ${String(c.symbolGraphNodes)} nodes, ${String(c.symbolGraphEdges)} edges`);
123
+ line(io, "");
124
+ renderSkips(io, report.skipped.length, report.skippedByReason, report.skippedByStage, report.skippedTruncated);
125
+ if (report.failure !== undefined) {
126
+ line(io, "");
127
+ line(io, `FAILURE ${report.failure.code}: ${report.failure.message}`);
128
+ line(io, `Retryable: ${report.failure.retryable ? "ja" : "no"}`);
129
+ }
130
+ }
131
+ /** Der Trockenlauf als Text. */
132
+ export function renderPlan(io, plan, showFiles) {
133
+ line(io, `Files discovered: ${String(plan.filesSeen)}`);
134
+ line(io, ` would plan: ${String(plan.planned.length)}`);
135
+ line(io, ` unchanged: ${String(plan.filesUnchanged)}`);
136
+ line(io, ` ignoriert: ${String(plan.filesIgnored)}`);
137
+ line(io, ` entfernt: ${String(plan.removedFileIds.length)}`);
138
+ if (plan.previousUnavailable !== undefined) {
139
+ line(io, "");
140
+ line(io, `Note: the previous generation could not be read (${plan.previousUnavailable}). ` +
141
+ "All files are therefore considered planned; this number is an upper bound, " +
142
+ "not a comparison.");
143
+ }
144
+ line(io, "");
145
+ renderSkips(io, plan.skipped.length, plan.skippedByReason, plan.skippedByStage, plan.skippedTruncated);
146
+ if (showFiles > 0 && plan.planned.length > 0) {
147
+ line(io, "");
148
+ line(io, `Planned work (first ${String(Math.min(showFiles, plan.planned.length))}):`);
149
+ for (const file of plan.planned.slice(0, showFiles)) {
150
+ line(io, ` ${file.filePath}`);
151
+ }
152
+ if (plan.planned.length > showFiles) {
153
+ line(io, ` … and ${String(plan.planned.length - showFiles)} weitere.`);
154
+ }
155
+ }
156
+ }
157
+ /**
158
+ * Stufen, die von DATEIEN handeln. Alles andere handelt von Kanten und
159
+ * Kandidaten — zwei Dinge, die in einer gemeinsamen Zahl nur verwirren:
160
+ * „9207 uebersprungen" liest sich wie ein kaputter Index, ist aber die
161
+ * normale Meldung des Symbolgraphen ueber Aufrufe nach ausserhalb.
162
+ */
163
+ const FILE_STAGES = new Set(["scan", "parse", "chunk", "embed", "store"]);
164
+ function renderSkips(io, listed, byReason, byStage, truncated) {
165
+ const total = Object.values(byReason).reduce((sum, value) => sum + (value ?? 0), 0);
166
+ const fileTotal = Object.entries(byStage)
167
+ .filter(([stage]) => FILE_STAGES.has(stage))
168
+ .reduce((sum, [, value]) => sum + (value ?? 0), 0);
169
+ line(io, `Skipped: ${String(total)} (each entry includes a reason)`);
170
+ line(io, ` files: ${String(fileTotal)}`);
171
+ line(io, ` graph/search: ${String(total - fileTotal)}`);
172
+ line(io, "");
173
+ line(io, " by stage:");
174
+ for (const stage of Object.keys(byStage).sort(compareCodepoints)) {
175
+ line(io, ` ${stage.padEnd(26)} ${String(byStage[stage] ?? 0)}`);
176
+ }
177
+ line(io, " by reason:");
178
+ for (const reason of Object.keys(byReason).sort(compareCodepoints)) {
179
+ line(io, ` ${reason.padEnd(26)} ${String(byReason[reason] ?? 0)}`);
180
+ }
181
+ if (truncated > 0) {
182
+ line(io, ` (${String(truncated)} entries are counted but omitted from the list ` +
183
+ `listed individually; ${String(listed)} appear in --format=json)`);
184
+ }
185
+ }
186
+ /**
187
+ * Die Trefferquote der drei inhaltsadressierten Analyse-Caches (WP-100).
188
+ *
189
+ * Sie steht IM BERICHT und nicht nur im Protokoll, weil ein Cache, ueber den
190
+ * niemand etwas erfaehrt, nicht ueberpruefbar ist: erst die Quote zeigt, ob
191
+ * der zweite Lauf wirklich gespart hat oder ob nur die Uhr guenstig stand.
192
+ */
193
+ function analysisCacheLine(c) {
194
+ const hits = c.parseCacheHits + c.chunkCacheHits + c.metricsCacheHits;
195
+ const lookups = hits + c.parseCacheMisses + c.chunkCacheMisses + c.metricsCacheMisses;
196
+ if (lookups === 0) {
197
+ return "Analysis cache: off (no cache connected)";
198
+ }
199
+ const rate = ((hits / lookups) * 100).toFixed(1);
200
+ return (`Analysis cache: ${String(hits)}/${String(lookups)} hits (${rate} %) — ` +
201
+ `Parse ${String(c.parseCacheHits)}/${String(c.parseCacheHits + c.parseCacheMisses)}, ` +
202
+ `Chunk ${String(c.chunkCacheHits)}/${String(c.chunkCacheHits + c.chunkCacheMisses)}, ` +
203
+ `metric ${String(c.metricsCacheHits)}/${String(c.metricsCacheHits + c.metricsCacheMisses)}`);
204
+ }
205
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/commands/index/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { EffectiveUntangleConfigV1 } from "@untangle-code/config";
2
+ /** Der Ref, der gemeint ist, wenn kein Git-Zweig lesbar ist. */
3
+ export declare const WORKING_TREE_REF = "working-tree";
4
+ export interface ResolvedTarget {
5
+ repoId: string;
6
+ refId: string;
7
+ refName: string;
8
+ repoLabel: string;
9
+ rootPath: string;
10
+ /** True, wenn das Repository nicht aus der Konfiguration stammt. */
11
+ synthesized: boolean;
12
+ /**
13
+ * `include`/`exclude` des gewaehlten Repositories (spec.md §4.3).
14
+ *
15
+ * SIE MUESSEN WEITERGEREICHT WERDEN. Werden sie es nicht, indiziert der Lauf
16
+ * stumm mehr, als die Konfiguration erlaubt — inklusive des eigenen
17
+ * Zustandsverzeichnisses `.untangle`, dessen Zwischenspeicherdateien sich
18
+ * bei jedem Lauf aendern und den naechsten Lauf jedes Mal Arbeit vortaeuschen
19
+ * lassen. Genau das ist beim ersten Bau dieses Befehls passiert.
20
+ */
21
+ include: readonly string[] | undefined;
22
+ exclude: readonly string[] | undefined;
23
+ }
24
+ export declare function resolveTarget(input: {
25
+ config: EffectiveUntangleConfigV1;
26
+ cwd: string;
27
+ rootFlag: string | undefined;
28
+ repoFlag: string | undefined;
29
+ refFlag: string | undefined;
30
+ configBaseDir: string;
31
+ }): ResolvedTarget;
32
+ /** Zweigname aus `.git/HEAD`, sonst {@link WORKING_TREE_REF}. */
33
+ export declare function detectRefName(rootPath: string): string;
34
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../../src/commands/index/target.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAKvE,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,MAAM,EAAE,yBAAyB,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,cAAc,CA2DjB;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAetD"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Welches Repository und welcher Ref indiziert werden.
3
+ *
4
+ * ZWEI FAELLE, UND BEIDE MUESSEN EHRLICH SEIN:
5
+ *
6
+ * 1. Die Konfiguration nennt Repositories (spec.md §4.3). Dann wird genau
7
+ * eines davon gewaehlt — das mit `--repo` benannte, oder das einzige. Bei
8
+ * mehreren ohne Angabe wird NICHT geraten, sondern gefragt: ein falsch
9
+ * geratenes Repository indiziert stumm das falsche Projekt.
10
+ * 2. Die Konfiguration nennt keine (der haeufigste Fall beim ersten Aufruf).
11
+ * Dann ist das Zielverzeichnis selbst das Repository. Das steht in der
12
+ * Ausgabe, damit niemand glaubt, es sei konfiguriert worden.
13
+ *
14
+ * DER REFNAME wird aus `.git/HEAD` gelesen, wenn es ihn gibt. Steht dort ein
15
+ * losgeloester Commit oder gibt es kein Git, heisst der Ref
16
+ * `"working-tree"` — ein Name, der sagt, was er ist, statt „main" zu
17
+ * behaupten und damit zwei verschiedene Staende unter derselben Identitaet
18
+ * abzulegen.
19
+ */
20
+ import { readFileSync } from "node:fs";
21
+ import path from "node:path";
22
+ import { buildRefId, buildRepoId, compareCodepoints } from "@untangle-code/domain";
23
+ import { UsageError } from "../../cli/exit.js";
24
+ /** Der Ref, der gemeint ist, wenn kein Git-Zweig lesbar ist. */
25
+ export const WORKING_TREE_REF = "working-tree";
26
+ export function resolveTarget(input) {
27
+ const repositories = input.config.repositories ?? [];
28
+ if (repositories.length === 0) {
29
+ const rootPath = path.resolve(input.cwd, input.rootFlag ?? ".");
30
+ const refName = input.refFlag ?? detectRefName(rootPath);
31
+ const repoId = buildRepoId({ canonicalPath: rootPath });
32
+ return {
33
+ repoId,
34
+ refId: buildRefId(repoId, refName),
35
+ refName,
36
+ repoLabel: path.basename(rootPath),
37
+ rootPath,
38
+ synthesized: true,
39
+ include: undefined,
40
+ // Ohne Konfiguration gilt wenigstens die eine Regel, die immer stimmt:
41
+ // das eigene Zustandsverzeichnis ist kein Quelltext.
42
+ exclude: [".untangle"],
43
+ };
44
+ }
45
+ const chosen = input.repoFlag === undefined
46
+ ? repositories.length === 1
47
+ ? repositories[0]
48
+ : undefined
49
+ : repositories.find((repo) => repo.id === input.repoFlag);
50
+ if (chosen === undefined) {
51
+ const names = repositories.map((repo) => repo.id).sort(compareCodepoints);
52
+ throw new UsageError(input.repoFlag === undefined
53
+ ? `The configuration contains ${String(repositories.length)} repositories; which should be indexed?`
54
+ : `The configuration has no repository "${input.repoFlag}".`, `Select one with --repo=<id>. Known IDs: ${names.join(", ")}.`);
55
+ }
56
+ const rootPath = path.resolve(input.configBaseDir, chosen.path);
57
+ const refName = input.refFlag ?? chosen.ref ?? detectRefName(rootPath);
58
+ const repoId = buildRepoId({
59
+ ...(chosen.id === "" ? {} : { explicitId: chosen.id }),
60
+ canonicalPath: rootPath,
61
+ });
62
+ return {
63
+ repoId,
64
+ refId: buildRefId(repoId, refName),
65
+ refName,
66
+ repoLabel: chosen.label ?? chosen.id,
67
+ rootPath,
68
+ synthesized: false,
69
+ include: chosen.include,
70
+ exclude: chosen.exclude === undefined
71
+ ? [".untangle"]
72
+ : chosen.exclude.includes(".untangle")
73
+ ? chosen.exclude
74
+ : [...chosen.exclude, ".untangle"],
75
+ };
76
+ }
77
+ /** Zweigname aus `.git/HEAD`, sonst {@link WORKING_TREE_REF}. */
78
+ export function detectRefName(rootPath) {
79
+ try {
80
+ let gitDir = path.join(rootPath, ".git");
81
+ try {
82
+ const pointer = /^gitdir:\s*(.+)$/u.exec(readFileSync(gitDir, "utf8").trim());
83
+ if (pointer?.[1] !== undefined)
84
+ gitDir = path.resolve(rootPath, pointer[1]);
85
+ }
86
+ catch {
87
+ /* A normal checkout has a .git directory. */
88
+ }
89
+ const head = readFileSync(path.join(gitDir, "HEAD"), "utf8").trim();
90
+ const match = /^ref:\s*refs\/heads\/(.+)$/u.exec(head);
91
+ return match?.[1] ?? WORKING_TREE_REF;
92
+ }
93
+ catch {
94
+ return WORKING_TREE_REF;
95
+ }
96
+ }
97
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../../src/commands/index/target.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { IndexFreshnessV1 } from "@untangle-code/domain";
2
+ import type { CommandContext } from "../cli/command.js";
3
+ export interface IndexWatchOptions {
4
+ root: string;
5
+ repo?: string;
6
+ ref?: string;
7
+ embedder: "auto" | "offline";
8
+ intervalMs: number;
9
+ format: "text" | "json";
10
+ outPath: string | null;
11
+ once: boolean;
12
+ maxRefreshes: number | null;
13
+ }
14
+ export interface IndexWatchObservation {
15
+ workspaceId: string;
16
+ repoId: string;
17
+ refId: string;
18
+ freshness: IndexFreshnessV1;
19
+ /** Bound to exactly the repository/ref that was inspected. */
20
+ refresh(): Promise<void>;
21
+ }
22
+ export interface IndexWatchDependencies {
23
+ inspect(ctx: CommandContext, options: IndexWatchOptions): Promise<IndexWatchObservation>;
24
+ wait(intervalMs: number, signal: AbortSignal): Promise<void>;
25
+ }
26
+ /** One serialized loop: re-read configuration and hash sources, then refresh if necessary. */
27
+ export declare function runIndexWatch(ctx: CommandContext, options: IndexWatchOptions, deps?: IndexWatchDependencies): Promise<number>;
28
+ /** Uses the same registry, scanner freshness check and refresh composition as query --refresh. */
29
+ export declare function inspectIndexWatch(ctx: CommandContext, options: IndexWatchOptions): Promise<IndexWatchObservation>;
30
+ //# sourceMappingURL=index-watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-watch.d.ts","sourceRoot":"","sources":["../../src/commands/index-watch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWxD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;IAC5B,8DAA8D;IAC9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AASD,8FAA8F;AAC9F,wBAAsB,aAAa,CACjC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,GAAE,sBAA6C,GAClD,OAAO,CAAC,MAAM,CAAC,CA6EjB;AAED,kGAAkG;AAClG,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAqEhC"}
@@ -0,0 +1,138 @@
1
+ import { setTimeout as wait } from "node:timers/promises";
2
+ import { EXIT, EnvironmentError, UsageError } from "../cli/exit.js";
3
+ import { inspectIndexFreshness } from "../cli/index-freshness.js";
4
+ import { refreshWorkspaceIndex } from "../cli/index-refresh.js";
5
+ import { resolveIndexState } from "../cli/index-state.js";
6
+ import { systemClock } from "../cli/system.js";
7
+ import { loadWorkspace, storageIndexScope, wireStorage } from "../cli/workspace.js";
8
+ import { detectRefName, resolveTarget } from "./index/target.js";
9
+ import { createStreamSink } from "./watch/runtime.js";
10
+ const DEFAULT_DEPENDENCIES = {
11
+ inspect: inspectIndexWatch,
12
+ wait: async (intervalMs, signal) => {
13
+ await wait(intervalMs, undefined, { signal });
14
+ },
15
+ };
16
+ /** One serialized loop: re-read configuration and hash sources, then refresh if necessary. */
17
+ export async function runIndexWatch(ctx, options, deps = DEFAULT_DEPENDENCIES) {
18
+ const sink = createStreamSink({ stdout: (chunk) => ctx.io.out(chunk), outPath: options.outPath });
19
+ let refreshes = 0;
20
+ const emit = (event, observation, message) => {
21
+ const record = {
22
+ schemaVersion: 1,
23
+ kind: "index_watch",
24
+ event,
25
+ checkedAt: observation?.freshness.checkedAt ?? systemClock.nowIso(),
26
+ refreshes,
27
+ ...(observation === undefined
28
+ ? {}
29
+ : {
30
+ workspaceId: observation.workspaceId,
31
+ repoId: observation.repoId,
32
+ refId: observation.refId,
33
+ indexFreshness: observation.freshness,
34
+ }),
35
+ ...(message === undefined ? {} : { message }),
36
+ };
37
+ sink.write(options.format === "json"
38
+ ? JSON.stringify(record)
39
+ : `Search index: ${event}${observation === undefined ? "" : ` ${observation.repoId}/${observation.refId}: ${observation.freshness.status}`}${message === undefined ? "" : ` — ${message}`}`);
40
+ };
41
+ let observation;
42
+ try {
43
+ while (true) {
44
+ ctx.signal.throwIfAborted();
45
+ observation = await deps.inspect(ctx, options);
46
+ ctx.signal.throwIfAborted();
47
+ emit("checked", observation);
48
+ if (observation.freshness.status !== "fresh") {
49
+ emit("refresh_started", observation);
50
+ await observation.refresh();
51
+ ctx.signal.throwIfAborted();
52
+ refreshes++;
53
+ observation = await deps.inspect(ctx, options);
54
+ ctx.signal.throwIfAborted();
55
+ emit("refreshed", observation);
56
+ if (observation.freshness.status === "unknown" ||
57
+ observation.freshness.status === "incompatible") {
58
+ throw new EnvironmentError("Could not confirm a compatible search index after the update.", "Check `untangle doctor` and the index report on stderr.");
59
+ }
60
+ }
61
+ if (options.once || (options.maxRefreshes !== null && refreshes >= options.maxRefreshes)) {
62
+ if (observation.freshness.status !== "fresh") {
63
+ throw new EnvironmentError("Sources changed again during indexing; the search index is still stale.", "Keep watch --index running without --baseline-only/--exit-after, or repeat the update.");
64
+ }
65
+ emit("stopped", observation, "The requested number of checks/updates has been reached.");
66
+ return EXIT.ok;
67
+ }
68
+ await deps.wait(options.intervalMs, ctx.signal);
69
+ }
70
+ }
71
+ catch (error) {
72
+ if (ctx.signal.aborted || (error instanceof Error && error.name === "AbortError")) {
73
+ emit("stopped", observation, "Cancelled; any running indexing job was stopped cleanly.");
74
+ return EXIT.cancelled;
75
+ }
76
+ emit("failed", observation, error instanceof Error ? error.message : String(error));
77
+ throw error;
78
+ }
79
+ finally {
80
+ await sink.close();
81
+ }
82
+ }
83
+ /** Uses the same registry, scanner freshness check and refresh composition as query --refresh. */
84
+ export async function inspectIndexWatch(ctx, options) {
85
+ const view = loadWorkspace({ cwd: options.root, env: ctx.env, strict: true });
86
+ if (options.repo !== undefined && (view.config.repositories ?? []).length === 0) {
87
+ throw new UsageError("--repo requires a configured repository.", "Select the project tree with --root.");
88
+ }
89
+ const target = resolveTarget({
90
+ config: view.config,
91
+ cwd: options.root,
92
+ rootFlag: options.root,
93
+ repoFlag: options.repo,
94
+ refFlag: options.ref,
95
+ configBaseDir: view.load.sources.configBaseDir,
96
+ });
97
+ if (detectRefName(target.rootPath) !== target.refName) {
98
+ throw new UsageError(`Ref ${target.refName} is not checked out in ${target.rootPath}.`, "Switch to the matching worktree before watching the search index.");
99
+ }
100
+ const resolution = await resolveIndexState([target.rootPath], view.workspaceId, {
101
+ repoIds: [target.repoId],
102
+ refs: [target.refId],
103
+ ...storageIndexScope(wireStorage(view, ctx.env)),
104
+ });
105
+ ctx.signal.throwIfAborted();
106
+ if (resolution.kind === "invalid") {
107
+ throw new EnvironmentError(`The local index state is invalid: ${resolution.diagnostics.map((entry) => `${entry.path}: ${entry.message}`).join("; ")}`, "Rerun the affected indexing job before starting watch --index.");
108
+ }
109
+ if (resolution.kind === "ambiguous" && options.embedder === "auto") {
110
+ throw new UsageError("Current index profiles conflict.", "Select --embedder=offline or repair the index registry.");
111
+ }
112
+ const current = resolution.kind === "resolved"
113
+ ? resolution.current
114
+ : resolution.kind === "ambiguous"
115
+ ? resolution.found
116
+ : [];
117
+ const states = options.embedder === "offline"
118
+ ? current.filter((entry) => entry.state.embedder === "offline")
119
+ : current;
120
+ const embedder = options.embedder === "offline" ||
121
+ (resolution.kind === "resolved" && resolution.embedder === "offline")
122
+ ? "offline"
123
+ : "auto";
124
+ const freshness = await inspectIndexFreshness(view, states, { signal: ctx.signal });
125
+ return {
126
+ workspaceId: view.workspaceId,
127
+ repoId: target.repoId,
128
+ refId: target.refId,
129
+ freshness,
130
+ refresh: () => refreshWorkspaceIndex(ctx, {
131
+ view,
132
+ ...(target.synthesized ? {} : { repoIds: [target.repoId] }),
133
+ refIds: [target.refName],
134
+ embedder,
135
+ }),
136
+ };
137
+ }
138
+ //# sourceMappingURL=index-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-watch.js","sourceRoot":"","sources":["../../src/commands/index-watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `untangle init` as the CLI shell sees it.
3
+ *
4
+ * This is the ONLY file of the command that knows about argv, exit codes and
5
+ * a terminal. Everything else (`run.ts` and below) is a library over ports,
6
+ * which is why the whole detection pipeline is testable without a process,
7
+ * without a network and without `node:fs`.
8
+ */
9
+ import { type ParsedArgs } from "../../cli/args.js";
10
+ import type { Command } from "../../cli/command.js";
11
+ import { type InitDepsV1, type InitOptionsV1 } from "./run.js";
12
+ import { type InitWizardDepsV1 } from "./wizard.js";
13
+ /** argv → options. Rejects the ambiguous call rather than picking a winner. */
14
+ export declare function initOptionsFrom(args: ParsedArgs, cwd: string): InitOptionsV1;
15
+ /**
16
+ * Builds the command. `deps` exists so a test can hand in an in-memory file
17
+ * system and a probe that answers nothing; production calls it with none.
18
+ */
19
+ export interface InitCommandDepsV1 extends InitDepsV1 {
20
+ wizard?: Partial<InitWizardDepsV1>;
21
+ }
22
+ export declare function createInitCommand(deps?: InitCommandDepsV1): Command;
23
+ /** The command with production ports. */
24
+ export declare const initCommand: Command;
25
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/init/command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAKpE,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1F,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiEnE,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAkC5E;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAyGvE;AAED,yCAAyC;AACzC,eAAO,MAAM,WAAW,EAAE,OAA6B,CAAC"}