@untangle-code/cli 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/LICENSE +661 -0
  2. package/NOTICE +90 -0
  3. package/README.md +451 -2
  4. package/THIRD_PARTY_LICENSES.md +152 -0
  5. package/dist/cli/args.d.ts +48 -0
  6. package/dist/cli/args.d.ts.map +1 -0
  7. package/dist/cli/args.js +167 -0
  8. package/dist/cli/args.js.map +1 -0
  9. package/dist/cli/command.d.ts +69 -0
  10. package/dist/cli/command.d.ts.map +1 -0
  11. package/dist/cli/command.js +82 -0
  12. package/dist/cli/command.js.map +1 -0
  13. package/dist/cli/deadline.d.ts +33 -0
  14. package/dist/cli/deadline.d.ts.map +1 -0
  15. package/dist/cli/deadline.js +49 -0
  16. package/dist/cli/deadline.js.map +1 -0
  17. package/dist/cli/embedder-deadline.d.ts +72 -0
  18. package/dist/cli/embedder-deadline.d.ts.map +1 -0
  19. package/dist/cli/embedder-deadline.js +117 -0
  20. package/dist/cli/embedder-deadline.js.map +1 -0
  21. package/dist/cli/exit.d.ts +71 -0
  22. package/dist/cli/exit.d.ts.map +1 -0
  23. package/dist/cli/exit.js +81 -0
  24. package/dist/cli/exit.js.map +1 -0
  25. package/dist/cli/graphs.d.ts +65 -0
  26. package/dist/cli/graphs.d.ts.map +1 -0
  27. package/dist/cli/graphs.js +108 -0
  28. package/dist/cli/graphs.js.map +1 -0
  29. package/dist/cli/index-freshness.d.ts +13 -0
  30. package/dist/cli/index-freshness.d.ts.map +1 -0
  31. package/dist/cli/index-freshness.js +226 -0
  32. package/dist/cli/index-freshness.js.map +1 -0
  33. package/dist/cli/index-refresh.d.ts +10 -0
  34. package/dist/cli/index-refresh.d.ts.map +1 -0
  35. package/dist/cli/index-refresh.js +76 -0
  36. package/dist/cli/index-refresh.js.map +1 -0
  37. package/dist/cli/index-state.d.ts +184 -0
  38. package/dist/cli/index-state.d.ts.map +1 -0
  39. package/dist/cli/index-state.js +852 -0
  40. package/dist/cli/index-state.js.map +1 -0
  41. package/dist/cli/io.d.ts +29 -0
  42. package/dist/cli/io.d.ts.map +1 -0
  43. package/dist/cli/io.js +42 -0
  44. package/dist/cli/io.js.map +1 -0
  45. package/dist/cli/language-support.d.ts +77 -0
  46. package/dist/cli/language-support.d.ts.map +1 -0
  47. package/dist/cli/language-support.js +152 -0
  48. package/dist/cli/language-support.js.map +1 -0
  49. package/dist/cli/renewing-lease.d.ts +26 -0
  50. package/dist/cli/renewing-lease.d.ts.map +1 -0
  51. package/dist/cli/renewing-lease.js +102 -0
  52. package/dist/cli/renewing-lease.js.map +1 -0
  53. package/dist/cli/search-graph-enrichment.d.ts +16 -0
  54. package/dist/cli/search-graph-enrichment.d.ts.map +1 -0
  55. package/dist/cli/search-graph-enrichment.js +428 -0
  56. package/dist/cli/search-graph-enrichment.js.map +1 -0
  57. package/dist/cli/system.d.ts +34 -0
  58. package/dist/cli/system.d.ts.map +1 -0
  59. package/dist/cli/system.js +89 -0
  60. package/dist/cli/system.js.map +1 -0
  61. package/dist/cli/vector-store-policy.d.ts +116 -0
  62. package/dist/cli/vector-store-policy.d.ts.map +1 -0
  63. package/dist/cli/vector-store-policy.js +160 -0
  64. package/dist/cli/vector-store-policy.js.map +1 -0
  65. package/dist/cli/version.d.ts +3 -0
  66. package/dist/cli/version.d.ts.map +1 -0
  67. package/dist/cli/version.js +3 -0
  68. package/dist/cli/version.js.map +1 -0
  69. package/dist/cli/workspace.d.ts +105 -0
  70. package/dist/cli/workspace.d.ts.map +1 -0
  71. package/dist/cli/workspace.js +215 -0
  72. package/dist/cli/workspace.js.map +1 -0
  73. package/dist/commands/complexity.d.ts +72 -0
  74. package/dist/commands/complexity.d.ts.map +1 -0
  75. package/dist/commands/complexity.js +580 -0
  76. package/dist/commands/complexity.js.map +1 -0
  77. package/dist/commands/doctor.d.ts +66 -0
  78. package/dist/commands/doctor.d.ts.map +1 -0
  79. package/dist/commands/doctor.js +764 -0
  80. package/dist/commands/doctor.js.map +1 -0
  81. package/dist/commands/doctor.languages.d.ts +37 -0
  82. package/dist/commands/doctor.languages.d.ts.map +1 -0
  83. package/dist/commands/doctor.languages.js +143 -0
  84. package/dist/commands/doctor.languages.js.map +1 -0
  85. package/dist/commands/doctor.storage.d.ts +17 -0
  86. package/dist/commands/doctor.storage.d.ts.map +1 -0
  87. package/dist/commands/doctor.storage.js +91 -0
  88. package/dist/commands/doctor.storage.js.map +1 -0
  89. package/dist/commands/extensions/add.d.ts +10 -0
  90. package/dist/commands/extensions/add.d.ts.map +1 -0
  91. package/dist/commands/extensions/add.js +213 -0
  92. package/dist/commands/extensions/add.js.map +1 -0
  93. package/dist/commands/extensions/configure.d.ts +5 -0
  94. package/dist/commands/extensions/configure.d.ts.map +1 -0
  95. package/dist/commands/extensions/configure.js +58 -0
  96. package/dist/commands/extensions/configure.js.map +1 -0
  97. package/dist/commands/extensions/container.d.ts +15 -0
  98. package/dist/commands/extensions/container.d.ts.map +1 -0
  99. package/dist/commands/extensions/container.js +135 -0
  100. package/dist/commands/extensions/container.js.map +1 -0
  101. package/dist/commands/extensions/context.d.ts +37 -0
  102. package/dist/commands/extensions/context.d.ts.map +1 -0
  103. package/dist/commands/extensions/context.js +72 -0
  104. package/dist/commands/extensions/context.js.map +1 -0
  105. package/dist/commands/extensions/enable.d.ts +6 -0
  106. package/dist/commands/extensions/enable.d.ts.map +1 -0
  107. package/dist/commands/extensions/enable.js +180 -0
  108. package/dist/commands/extensions/enable.js.map +1 -0
  109. package/dist/commands/extensions/environment.d.ts +74 -0
  110. package/dist/commands/extensions/environment.d.ts.map +1 -0
  111. package/dist/commands/extensions/environment.js +168 -0
  112. package/dist/commands/extensions/environment.js.map +1 -0
  113. package/dist/commands/extensions/feature-scan.d.ts +48 -0
  114. package/dist/commands/extensions/feature-scan.d.ts.map +1 -0
  115. package/dist/commands/extensions/feature-scan.js +156 -0
  116. package/dist/commands/extensions/feature-scan.js.map +1 -0
  117. package/dist/commands/extensions/invoke.d.ts +60 -0
  118. package/dist/commands/extensions/invoke.d.ts.map +1 -0
  119. package/dist/commands/extensions/invoke.js +275 -0
  120. package/dist/commands/extensions/invoke.js.map +1 -0
  121. package/dist/commands/extensions/list.d.ts +5 -0
  122. package/dist/commands/extensions/list.d.ts.map +1 -0
  123. package/dist/commands/extensions/list.js +125 -0
  124. package/dist/commands/extensions/list.js.map +1 -0
  125. package/dist/commands/extensions/logs.d.ts +5 -0
  126. package/dist/commands/extensions/logs.d.ts.map +1 -0
  127. package/dist/commands/extensions/logs.js +74 -0
  128. package/dist/commands/extensions/logs.js.map +1 -0
  129. package/dist/commands/extensions/provision.d.ts +36 -0
  130. package/dist/commands/extensions/provision.d.ts.map +1 -0
  131. package/dist/commands/extensions/provision.js +137 -0
  132. package/dist/commands/extensions/provision.js.map +1 -0
  133. package/dist/commands/extensions/remove.d.ts +5 -0
  134. package/dist/commands/extensions/remove.d.ts.map +1 -0
  135. package/dist/commands/extensions/remove.js +77 -0
  136. package/dist/commands/extensions/remove.js.map +1 -0
  137. package/dist/commands/extensions/render.d.ts +16 -0
  138. package/dist/commands/extensions/render.d.ts.map +1 -0
  139. package/dist/commands/extensions/render.js +25 -0
  140. package/dist/commands/extensions/render.js.map +1 -0
  141. package/dist/commands/extensions/run.d.ts +30 -0
  142. package/dist/commands/extensions/run.d.ts.map +1 -0
  143. package/dist/commands/extensions/run.js +292 -0
  144. package/dist/commands/extensions/run.js.map +1 -0
  145. package/dist/commands/extensions/secret-store.d.ts +15 -0
  146. package/dist/commands/extensions/secret-store.d.ts.map +1 -0
  147. package/dist/commands/extensions/secret-store.js +164 -0
  148. package/dist/commands/extensions/secret-store.js.map +1 -0
  149. package/dist/commands/extensions/setup.d.ts +17 -0
  150. package/dist/commands/extensions/setup.d.ts.map +1 -0
  151. package/dist/commands/extensions/setup.js +94 -0
  152. package/dist/commands/extensions/setup.js.map +1 -0
  153. package/dist/commands/extensions/source.d.ts +47 -0
  154. package/dist/commands/extensions/source.d.ts.map +1 -0
  155. package/dist/commands/extensions/source.js +142 -0
  156. package/dist/commands/extensions/source.js.map +1 -0
  157. package/dist/commands/extensions/state.d.ts +62 -0
  158. package/dist/commands/extensions/state.d.ts.map +1 -0
  159. package/dist/commands/extensions/state.js +177 -0
  160. package/dist/commands/extensions/state.js.map +1 -0
  161. package/dist/commands/extensions/status.d.ts +9 -0
  162. package/dist/commands/extensions/status.d.ts.map +1 -0
  163. package/dist/commands/extensions/status.js +239 -0
  164. package/dist/commands/extensions/status.js.map +1 -0
  165. package/dist/commands/extensions.d.ts +3 -0
  166. package/dist/commands/extensions.d.ts.map +1 -0
  167. package/dist/commands/extensions.js +223 -0
  168. package/dist/commands/extensions.js.map +1 -0
  169. package/dist/commands/flow/index.d.ts +3 -0
  170. package/dist/commands/flow/index.d.ts.map +1 -0
  171. package/dist/commands/flow/index.js +295 -0
  172. package/dist/commands/flow/index.js.map +1 -0
  173. package/dist/commands/flow/limits.d.ts +12 -0
  174. package/dist/commands/flow/limits.d.ts.map +1 -0
  175. package/dist/commands/flow/limits.js +13 -0
  176. package/dist/commands/flow/limits.js.map +1 -0
  177. package/dist/commands/flow/output.d.ts +8 -0
  178. package/dist/commands/flow/output.d.ts.map +1 -0
  179. package/dist/commands/flow/output.js +11 -0
  180. package/dist/commands/flow/output.js.map +1 -0
  181. package/dist/commands/flow/render.d.ts +51 -0
  182. package/dist/commands/flow/render.d.ts.map +1 -0
  183. package/dist/commands/flow/render.js +220 -0
  184. package/dist/commands/flow/render.js.map +1 -0
  185. package/dist/commands/flow/select.d.ts +31 -0
  186. package/dist/commands/flow/select.d.ts.map +1 -0
  187. package/dist/commands/flow/select.js +62 -0
  188. package/dist/commands/flow/select.js.map +1 -0
  189. package/dist/commands/graph/boundaries-input.d.ts +26 -0
  190. package/dist/commands/graph/boundaries-input.d.ts.map +1 -0
  191. package/dist/commands/graph/boundaries-input.js +54 -0
  192. package/dist/commands/graph/boundaries-input.js.map +1 -0
  193. package/dist/commands/graph/boundaries.d.ts +4 -0
  194. package/dist/commands/graph/boundaries.d.ts.map +1 -0
  195. package/dist/commands/graph/boundaries.js +141 -0
  196. package/dist/commands/graph/boundaries.js.map +1 -0
  197. package/dist/commands/graph/bounds.d.ts +16 -0
  198. package/dist/commands/graph/bounds.d.ts.map +1 -0
  199. package/dist/commands/graph/bounds.js +22 -0
  200. package/dist/commands/graph/bounds.js.map +1 -0
  201. package/dist/commands/graph/category-clusters.d.ts +20 -0
  202. package/dist/commands/graph/category-clusters.d.ts.map +1 -0
  203. package/dist/commands/graph/category-clusters.js +158 -0
  204. package/dist/commands/graph/category-clusters.js.map +1 -0
  205. package/dist/commands/graph/feature-3d.d.ts +22 -0
  206. package/dist/commands/graph/feature-3d.d.ts.map +1 -0
  207. package/dist/commands/graph/feature-3d.js +114 -0
  208. package/dist/commands/graph/feature-3d.js.map +1 -0
  209. package/dist/commands/graph/feature-clusters.d.ts +17 -0
  210. package/dist/commands/graph/feature-clusters.d.ts.map +1 -0
  211. package/dist/commands/graph/feature-clusters.js +94 -0
  212. package/dist/commands/graph/feature-clusters.js.map +1 -0
  213. package/dist/commands/graph/feature-html.d.ts +26 -0
  214. package/dist/commands/graph/feature-html.d.ts.map +1 -0
  215. package/dist/commands/graph/feature-html.js +314 -0
  216. package/dist/commands/graph/feature-html.js.map +1 -0
  217. package/dist/commands/graph/feature-map.d.ts +31 -0
  218. package/dist/commands/graph/feature-map.d.ts.map +1 -0
  219. package/dist/commands/graph/feature-map.js +217 -0
  220. package/dist/commands/graph/feature-map.js.map +1 -0
  221. package/dist/commands/graph/feature-model.d.ts +55 -0
  222. package/dist/commands/graph/feature-model.d.ts.map +1 -0
  223. package/dist/commands/graph/feature-model.js +167 -0
  224. package/dist/commands/graph/feature-model.js.map +1 -0
  225. package/dist/commands/graph/feature-untangle-motion.d.ts +33 -0
  226. package/dist/commands/graph/feature-untangle-motion.d.ts.map +1 -0
  227. package/dist/commands/graph/feature-untangle-motion.js +155 -0
  228. package/dist/commands/graph/feature-untangle-motion.js.map +1 -0
  229. package/dist/commands/graph/index.d.ts +3 -0
  230. package/dist/commands/graph/index.d.ts.map +1 -0
  231. package/dist/commands/graph/index.js +414 -0
  232. package/dist/commands/graph/index.js.map +1 -0
  233. package/dist/commands/graph/render.d.ts +63 -0
  234. package/dist/commands/graph/render.d.ts.map +1 -0
  235. package/dist/commands/graph/render.js +352 -0
  236. package/dist/commands/graph/render.js.map +1 -0
  237. package/dist/commands/graph/select.d.ts +34 -0
  238. package/dist/commands/graph/select.d.ts.map +1 -0
  239. package/dist/commands/graph/select.js +55 -0
  240. package/dist/commands/graph/select.js.map +1 -0
  241. package/dist/commands/index/index.d.ts +6 -0
  242. package/dist/commands/index/index.d.ts.map +1 -0
  243. package/dist/commands/index/index.js +461 -0
  244. package/dist/commands/index/index.js.map +1 -0
  245. package/dist/commands/index/render.d.ts +53 -0
  246. package/dist/commands/index/render.d.ts.map +1 -0
  247. package/dist/commands/index/render.js +205 -0
  248. package/dist/commands/index/render.js.map +1 -0
  249. package/dist/commands/index/target.d.ts +34 -0
  250. package/dist/commands/index/target.d.ts.map +1 -0
  251. package/dist/commands/index/target.js +97 -0
  252. package/dist/commands/index/target.js.map +1 -0
  253. package/dist/commands/index-watch.d.ts +30 -0
  254. package/dist/commands/index-watch.d.ts.map +1 -0
  255. package/dist/commands/index-watch.js +138 -0
  256. package/dist/commands/index-watch.js.map +1 -0
  257. package/dist/commands/init/command.d.ts +25 -0
  258. package/dist/commands/init/command.d.ts.map +1 -0
  259. package/dist/commands/init/command.js +198 -0
  260. package/dist/commands/init/command.js.map +1 -0
  261. package/dist/commands/init/config-draft.d.ts +48 -0
  262. package/dist/commands/init/config-draft.d.ts.map +1 -0
  263. package/dist/commands/init/config-draft.js +201 -0
  264. package/dist/commands/init/config-draft.js.map +1 -0
  265. package/dist/commands/init/diff.d.ts +33 -0
  266. package/dist/commands/init/diff.d.ts.map +1 -0
  267. package/dist/commands/init/diff.js +109 -0
  268. package/dist/commands/init/diff.js.map +1 -0
  269. package/dist/commands/init/http-probe.d.ts +26 -0
  270. package/dist/commands/init/http-probe.d.ts.map +1 -0
  271. package/dist/commands/init/http-probe.js +144 -0
  272. package/dist/commands/init/http-probe.js.map +1 -0
  273. package/dist/commands/init/ignore-rules.d.ts +70 -0
  274. package/dist/commands/init/ignore-rules.d.ts.map +1 -0
  275. package/dist/commands/init/ignore-rules.js +146 -0
  276. package/dist/commands/init/ignore-rules.js.map +1 -0
  277. package/dist/commands/init/index.d.ts +33 -0
  278. package/dist/commands/init/index.d.ts.map +1 -0
  279. package/dist/commands/init/index.js +32 -0
  280. package/dist/commands/init/index.js.map +1 -0
  281. package/dist/commands/init/integrations-apply.d.ts +50 -0
  282. package/dist/commands/init/integrations-apply.d.ts.map +1 -0
  283. package/dist/commands/init/integrations-apply.js +452 -0
  284. package/dist/commands/init/integrations-apply.js.map +1 -0
  285. package/dist/commands/init/integrations-plan.d.ts +68 -0
  286. package/dist/commands/init/integrations-plan.d.ts.map +1 -0
  287. package/dist/commands/init/integrations-plan.js +515 -0
  288. package/dist/commands/init/integrations-plan.js.map +1 -0
  289. package/dist/commands/init/integrations.d.ts +5 -0
  290. package/dist/commands/init/integrations.d.ts.map +1 -0
  291. package/dist/commands/init/integrations.js +4 -0
  292. package/dist/commands/init/integrations.js.map +1 -0
  293. package/dist/commands/init/languages.d.ts +55 -0
  294. package/dist/commands/init/languages.d.ts.map +1 -0
  295. package/dist/commands/init/languages.js +245 -0
  296. package/dist/commands/init/languages.js.map +1 -0
  297. package/dist/commands/init/product-context.d.ts +63 -0
  298. package/dist/commands/init/product-context.d.ts.map +1 -0
  299. package/dist/commands/init/product-context.js +390 -0
  300. package/dist/commands/init/product-context.js.map +1 -0
  301. package/dist/commands/init/render.d.ts +38 -0
  302. package/dist/commands/init/render.d.ts.map +1 -0
  303. package/dist/commands/init/render.js +501 -0
  304. package/dist/commands/init/render.js.map +1 -0
  305. package/dist/commands/init/report.d.ts +24 -0
  306. package/dist/commands/init/report.d.ts.map +1 -0
  307. package/dist/commands/init/report.js +163 -0
  308. package/dist/commands/init/report.js.map +1 -0
  309. package/dist/commands/init/run.d.ts +71 -0
  310. package/dist/commands/init/run.d.ts.map +1 -0
  311. package/dist/commands/init/run.js +253 -0
  312. package/dist/commands/init/run.js.map +1 -0
  313. package/dist/commands/init/services.d.ts +82 -0
  314. package/dist/commands/init/services.d.ts.map +1 -0
  315. package/dist/commands/init/services.js +209 -0
  316. package/dist/commands/init/services.js.map +1 -0
  317. package/dist/commands/init/storage.d.ts +8 -0
  318. package/dist/commands/init/storage.d.ts.map +1 -0
  319. package/dist/commands/init/storage.js +102 -0
  320. package/dist/commands/init/storage.js.map +1 -0
  321. package/dist/commands/init/toml.d.ts +65 -0
  322. package/dist/commands/init/toml.d.ts.map +1 -0
  323. package/dist/commands/init/toml.js +159 -0
  324. package/dist/commands/init/toml.js.map +1 -0
  325. package/dist/commands/init/topology.d.ts +54 -0
  326. package/dist/commands/init/topology.d.ts.map +1 -0
  327. package/dist/commands/init/topology.js +146 -0
  328. package/dist/commands/init/topology.js.map +1 -0
  329. package/dist/commands/init/types.d.ts +334 -0
  330. package/dist/commands/init/types.d.ts.map +1 -0
  331. package/dist/commands/init/types.js +31 -0
  332. package/dist/commands/init/types.js.map +1 -0
  333. package/dist/commands/init/wizard-terminal.d.ts +36 -0
  334. package/dist/commands/init/wizard-terminal.d.ts.map +1 -0
  335. package/dist/commands/init/wizard-terminal.js +163 -0
  336. package/dist/commands/init/wizard-terminal.js.map +1 -0
  337. package/dist/commands/init/wizard.d.ts +25 -0
  338. package/dist/commands/init/wizard.d.ts.map +1 -0
  339. package/dist/commands/init/wizard.js +358 -0
  340. package/dist/commands/init/wizard.js.map +1 -0
  341. package/dist/commands/mcp.d.ts +4 -0
  342. package/dist/commands/mcp.d.ts.map +1 -0
  343. package/dist/commands/mcp.js +111 -0
  344. package/dist/commands/mcp.js.map +1 -0
  345. package/dist/commands/product-test-runner.d.ts +4 -0
  346. package/dist/commands/product-test-runner.d.ts.map +1 -0
  347. package/dist/commands/product-test-runner.js +85 -0
  348. package/dist/commands/product-test-runner.js.map +1 -0
  349. package/dist/commands/product.d.ts +16 -0
  350. package/dist/commands/product.d.ts.map +1 -0
  351. package/dist/commands/product.js +262 -0
  352. package/dist/commands/product.js.map +1 -0
  353. package/dist/commands/query.d.ts +114 -0
  354. package/dist/commands/query.d.ts.map +1 -0
  355. package/dist/commands/query.js +783 -0
  356. package/dist/commands/query.js.map +1 -0
  357. package/dist/commands/scan.d.ts +10 -0
  358. package/dist/commands/scan.d.ts.map +1 -0
  359. package/dist/commands/scan.js +302 -0
  360. package/dist/commands/scan.js.map +1 -0
  361. package/dist/commands/sdd.d.ts +24 -0
  362. package/dist/commands/sdd.d.ts.map +1 -0
  363. package/dist/commands/sdd.js +195 -0
  364. package/dist/commands/sdd.js.map +1 -0
  365. package/dist/commands/unavailable.d.ts +40 -0
  366. package/dist/commands/unavailable.d.ts.map +1 -0
  367. package/dist/commands/unavailable.js +73 -0
  368. package/dist/commands/unavailable.js.map +1 -0
  369. package/dist/commands/watch/analyze.d.ts +69 -0
  370. package/dist/commands/watch/analyze.d.ts.map +1 -0
  371. package/dist/commands/watch/analyze.js +402 -0
  372. package/dist/commands/watch/analyze.js.map +1 -0
  373. package/dist/commands/watch/cli.d.ts +8 -0
  374. package/dist/commands/watch/cli.d.ts.map +1 -0
  375. package/dist/commands/watch/cli.js +97 -0
  376. package/dist/commands/watch/cli.js.map +1 -0
  377. package/dist/commands/watch/delta.d.ts +46 -0
  378. package/dist/commands/watch/delta.d.ts.map +1 -0
  379. package/dist/commands/watch/delta.js +170 -0
  380. package/dist/commands/watch/delta.js.map +1 -0
  381. package/dist/commands/watch/events.d.ts +214 -0
  382. package/dist/commands/watch/events.d.ts.map +1 -0
  383. package/dist/commands/watch/events.js +13 -0
  384. package/dist/commands/watch/events.js.map +1 -0
  385. package/dist/commands/watch/index.d.ts +19 -0
  386. package/dist/commands/watch/index.d.ts.map +1 -0
  387. package/dist/commands/watch/index.js +15 -0
  388. package/dist/commands/watch/index.js.map +1 -0
  389. package/dist/commands/watch/options.d.ts +43 -0
  390. package/dist/commands/watch/options.d.ts.map +1 -0
  391. package/dist/commands/watch/options.js +193 -0
  392. package/dist/commands/watch/options.js.map +1 -0
  393. package/dist/commands/watch/render.d.ts +26 -0
  394. package/dist/commands/watch/render.d.ts.map +1 -0
  395. package/dist/commands/watch/render.js +175 -0
  396. package/dist/commands/watch/render.js.map +1 -0
  397. package/dist/commands/watch/run.d.ts +14 -0
  398. package/dist/commands/watch/run.d.ts.map +1 -0
  399. package/dist/commands/watch/run.js +460 -0
  400. package/dist/commands/watch/run.js.map +1 -0
  401. package/dist/commands/watch/runtime.d.ts +67 -0
  402. package/dist/commands/watch/runtime.d.ts.map +1 -0
  403. package/dist/commands/watch/runtime.js +149 -0
  404. package/dist/commands/watch/runtime.js.map +1 -0
  405. package/dist/commands/watch-command.d.ts +3 -0
  406. package/dist/commands/watch-command.d.ts.map +1 -0
  407. package/dist/commands/watch-command.js +273 -0
  408. package/dist/commands/watch-command.js.map +1 -0
  409. package/dist/entry-point.d.ts +11 -0
  410. package/dist/entry-point.d.ts.map +1 -0
  411. package/dist/entry-point.js +65 -0
  412. package/dist/entry-point.js.map +1 -0
  413. package/dist/index.d.ts +38 -0
  414. package/dist/index.d.ts.map +1 -0
  415. package/dist/index.js +245 -0
  416. package/dist/index.js.map +1 -0
  417. package/dist/mcp/boundaries-schema.d.ts +262 -0
  418. package/dist/mcp/boundaries-schema.d.ts.map +1 -0
  419. package/dist/mcp/boundaries-schema.js +183 -0
  420. package/dist/mcp/boundaries-schema.js.map +1 -0
  421. package/dist/mcp/default-runtime.d.ts +16 -0
  422. package/dist/mcp/default-runtime.d.ts.map +1 -0
  423. package/dist/mcp/default-runtime.js +718 -0
  424. package/dist/mcp/default-runtime.js.map +1 -0
  425. package/dist/mcp/envelope.d.ts +13 -0
  426. package/dist/mcp/envelope.d.ts.map +1 -0
  427. package/dist/mcp/envelope.js +29 -0
  428. package/dist/mcp/envelope.js.map +1 -0
  429. package/dist/mcp/index.d.ts +8 -0
  430. package/dist/mcp/index.d.ts.map +1 -0
  431. package/dist/mcp/index.js +8 -0
  432. package/dist/mcp/index.js.map +1 -0
  433. package/dist/mcp/output-schemas.d.ts +5928 -0
  434. package/dist/mcp/output-schemas.d.ts.map +1 -0
  435. package/dist/mcp/output-schemas.js +2814 -0
  436. package/dist/mcp/output-schemas.js.map +1 -0
  437. package/dist/mcp/path-sandbox.d.ts +35 -0
  438. package/dist/mcp/path-sandbox.d.ts.map +1 -0
  439. package/dist/mcp/path-sandbox.js +128 -0
  440. package/dist/mcp/path-sandbox.js.map +1 -0
  441. package/dist/mcp/server.d.ts +155 -0
  442. package/dist/mcp/server.d.ts.map +1 -0
  443. package/dist/mcp/server.js +257 -0
  444. package/dist/mcp/server.js.map +1 -0
  445. package/dist/mcp/stdio.d.ts +20 -0
  446. package/dist/mcp/stdio.d.ts.map +1 -0
  447. package/dist/mcp/stdio.js +71 -0
  448. package/dist/mcp/stdio.js.map +1 -0
  449. package/dist/mcp/tools.d.ts +355 -0
  450. package/dist/mcp/tools.d.ts.map +1 -0
  451. package/dist/mcp/tools.js +319 -0
  452. package/dist/mcp/tools.js.map +1 -0
  453. package/dist/mcp/types.d.ts +15 -0
  454. package/dist/mcp/types.d.ts.map +1 -0
  455. package/dist/mcp/types.js +45 -0
  456. package/dist/mcp/types.js.map +1 -0
  457. package/package.json +99 -3
  458. package/src/cli/args.ts +231 -0
  459. package/src/cli/command.ts +146 -0
  460. package/src/cli/deadline.ts +56 -0
  461. package/src/cli/embedder-deadline.ts +187 -0
  462. package/src/cli/exit.ts +94 -0
  463. package/src/cli/graphs.ts +191 -0
  464. package/src/cli/index-freshness.ts +303 -0
  465. package/src/cli/index-refresh.ts +125 -0
  466. package/src/cli/index-state.ts +1217 -0
  467. package/src/cli/io.ts +56 -0
  468. package/src/cli/language-support.ts +203 -0
  469. package/src/cli/renewing-lease.ts +121 -0
  470. package/src/cli/search-graph-enrichment.ts +639 -0
  471. package/src/cli/system.ts +94 -0
  472. package/src/cli/vector-store-policy.ts +213 -0
  473. package/src/cli/version.ts +2 -0
  474. package/src/cli/workspace.ts +324 -0
  475. package/src/commands/complexity.ts +776 -0
  476. package/src/commands/doctor.languages.ts +187 -0
  477. package/src/commands/doctor.storage.ts +124 -0
  478. package/src/commands/doctor.ts +946 -0
  479. package/src/commands/extensions/add.ts +312 -0
  480. package/src/commands/extensions/configure.ts +82 -0
  481. package/src/commands/extensions/container.ts +209 -0
  482. package/src/commands/extensions/context.ts +109 -0
  483. package/src/commands/extensions/enable.ts +237 -0
  484. package/src/commands/extensions/environment.ts +218 -0
  485. package/src/commands/extensions/feature-scan.ts +232 -0
  486. package/src/commands/extensions/invoke.ts +368 -0
  487. package/src/commands/extensions/list.ts +158 -0
  488. package/src/commands/extensions/logs.ts +104 -0
  489. package/src/commands/extensions/provision.ts +206 -0
  490. package/src/commands/extensions/remove.ts +110 -0
  491. package/src/commands/extensions/render.ts +32 -0
  492. package/src/commands/extensions/run.ts +386 -0
  493. package/src/commands/extensions/secret-store.ts +223 -0
  494. package/src/commands/extensions/setup.ts +140 -0
  495. package/src/commands/extensions/source.ts +189 -0
  496. package/src/commands/extensions/state.ts +252 -0
  497. package/src/commands/extensions/status.ts +320 -0
  498. package/src/commands/extensions.ts +280 -0
  499. package/src/commands/flow/index.ts +402 -0
  500. package/src/commands/flow/limits.ts +14 -0
  501. package/src/commands/flow/output.ts +16 -0
  502. package/src/commands/flow/render.ts +318 -0
  503. package/src/commands/flow/select.ts +101 -0
  504. package/src/commands/graph/boundaries-input.ts +63 -0
  505. package/src/commands/graph/boundaries.ts +182 -0
  506. package/src/commands/graph/bounds.ts +25 -0
  507. package/src/commands/graph/category-clusters.ts +194 -0
  508. package/src/commands/graph/feature-3d.ts +141 -0
  509. package/src/commands/graph/feature-clusters.ts +125 -0
  510. package/src/commands/graph/feature-html.ts +336 -0
  511. package/src/commands/graph/feature-map.ts +270 -0
  512. package/src/commands/graph/feature-model.ts +234 -0
  513. package/src/commands/graph/feature-untangle-motion.ts +192 -0
  514. package/src/commands/graph/index.ts +562 -0
  515. package/src/commands/graph/render.ts +503 -0
  516. package/src/commands/graph/select.ts +77 -0
  517. package/src/commands/index/index.ts +595 -0
  518. package/src/commands/index/render.ts +325 -0
  519. package/src/commands/index/target.ts +136 -0
  520. package/src/commands/index-watch.ts +206 -0
  521. package/src/commands/init/command.ts +238 -0
  522. package/src/commands/init/config-draft.ts +235 -0
  523. package/src/commands/init/diff.ts +117 -0
  524. package/src/commands/init/http-probe.ts +150 -0
  525. package/src/commands/init/ignore-rules.ts +170 -0
  526. package/src/commands/init/index.ts +63 -0
  527. package/src/commands/init/integrations-apply.ts +618 -0
  528. package/src/commands/init/integrations-plan.ts +634 -0
  529. package/src/commands/init/integrations.ts +8 -0
  530. package/src/commands/init/languages.ts +320 -0
  531. package/src/commands/init/product-context.ts +576 -0
  532. package/src/commands/init/render.ts +598 -0
  533. package/src/commands/init/report.ts +204 -0
  534. package/src/commands/init/run.ts +349 -0
  535. package/src/commands/init/services.ts +271 -0
  536. package/src/commands/init/storage.ts +136 -0
  537. package/src/commands/init/toml.ts +174 -0
  538. package/src/commands/init/topology.ts +192 -0
  539. package/src/commands/init/types.ts +366 -0
  540. package/src/commands/init/wizard-terminal.ts +206 -0
  541. package/src/commands/init/wizard.ts +450 -0
  542. package/src/commands/mcp.ts +123 -0
  543. package/src/commands/product-test-runner.ts +80 -0
  544. package/src/commands/product.ts +331 -0
  545. package/src/commands/query.ts +1032 -0
  546. package/src/commands/scan.ts +360 -0
  547. package/src/commands/sdd.ts +243 -0
  548. package/src/commands/unavailable.ts +92 -0
  549. package/src/commands/watch/README.md +160 -0
  550. package/src/commands/watch/analyze.ts +600 -0
  551. package/src/commands/watch/cli.ts +108 -0
  552. package/src/commands/watch/delta.ts +186 -0
  553. package/src/commands/watch/events.ts +235 -0
  554. package/src/commands/watch/index.ts +53 -0
  555. package/src/commands/watch/options.ts +234 -0
  556. package/src/commands/watch/render.ts +240 -0
  557. package/src/commands/watch/run.ts +553 -0
  558. package/src/commands/watch/runtime.ts +167 -0
  559. package/src/commands/watch-command.ts +294 -0
  560. package/src/entry-point.ts +67 -0
  561. package/src/index.ts +291 -0
  562. package/src/mcp/boundaries-schema.ts +193 -0
  563. package/src/mcp/default-runtime.ts +1034 -0
  564. package/src/mcp/envelope.ts +57 -0
  565. package/src/mcp/index.ts +28 -0
  566. package/src/mcp/output-schemas.ts +3071 -0
  567. package/src/mcp/path-sandbox.ts +156 -0
  568. package/src/mcp/server.ts +358 -0
  569. package/src/mcp/stdio.ts +92 -0
  570. package/src/mcp/tools.ts +563 -0
  571. package/src/mcp/types.ts +66 -0
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Persisted user-level state for the extension surface.
3
+ *
4
+ * Two files, both in the OS user data directory and never in a project
5
+ * directory (extensions.md §9.2):
6
+ *
7
+ * - `license-acknowledgments.json` — the personal declarations that satisfy
8
+ * the license gate. Read by the runtime, written here.
9
+ * - `cli-state.json` — which extensions the user enabled, and a summary of
10
+ * the last run per extension, so `list` can answer "status, last run"
11
+ * without re-running anything.
12
+ *
13
+ * Both are written temp-then-rename. A half-written acknowledgment file would
14
+ * read back as "nothing acknowledged", which is safe, but a half-written run
15
+ * record would silently lose the previous one.
16
+ */
17
+ import { dirname, join } from "node:path";
18
+ import { compareCodepoints } from "@untangle-code/domain";
19
+ import { ACKNOWLEDGMENT_FILE_NAME, acknowledgmentFilePath, } from "@untangle-code/extension-runtime";
20
+ /** File name of the CLI's own state, next to the acknowledgment file. */
21
+ export const CLI_STATE_FILE_NAME = "cli-state.json";
22
+ export function summarizeRun(run) {
23
+ return {
24
+ runId: run.runId,
25
+ startedAt: run.startedAt,
26
+ ...(run.finishedAt === undefined ? {} : { finishedAt: run.finishedAt }),
27
+ exitStatus: run.exitStatus,
28
+ findingsTotal: run.findingsTotal,
29
+ ...(run.errorCode === undefined ? {} : { errorCode: run.errorCode }),
30
+ };
31
+ }
32
+ export function emptyCliState() {
33
+ return { schemaVersion: 1, enabled: [], lastRuns: {} };
34
+ }
35
+ export function cliStatePath(userDataDirectory) {
36
+ return join(userDataDirectory, "extensions", CLI_STATE_FILE_NAME);
37
+ }
38
+ /**
39
+ * Reads the CLI state. A missing file means "nothing enabled, nothing run" —
40
+ * a valid starting state, not an error. A corrupt file is reported and
41
+ * treated as empty rather than crashing the command (X2).
42
+ */
43
+ export async function loadCliState(fs, userDataDirectory) {
44
+ const path = cliStatePath(userDataDirectory);
45
+ let text;
46
+ try {
47
+ text = await fs.readTextFile(path);
48
+ }
49
+ catch {
50
+ return { state: emptyCliState(), warnings: [] };
51
+ }
52
+ let document;
53
+ try {
54
+ document = JSON.parse(text);
55
+ }
56
+ catch (cause) {
57
+ return {
58
+ state: emptyCliState(),
59
+ warnings: [
60
+ `"${path}" is not valid JSON (${cause instanceof Error ? cause.message : String(cause)}); ` +
61
+ "enabled flags and last-run records are shown as unknown until the file is repaired",
62
+ ],
63
+ };
64
+ }
65
+ if (typeof document !== "object" || document === null || Array.isArray(document)) {
66
+ return { state: emptyCliState(), warnings: [`"${path}" is not a JSON object; ignored`] };
67
+ }
68
+ const record = document;
69
+ const enabled = Array.isArray(record["enabled"])
70
+ ? record["enabled"].filter((entry) => typeof entry === "string")
71
+ : [];
72
+ const lastRuns = {};
73
+ const rawRuns = record["lastRuns"];
74
+ if (typeof rawRuns === "object" && rawRuns !== null && !Array.isArray(rawRuns)) {
75
+ for (const [id, value] of Object.entries(rawRuns)) {
76
+ const parsed = readLastRun(value);
77
+ if (parsed !== null) {
78
+ lastRuns[id] = parsed;
79
+ }
80
+ }
81
+ }
82
+ return {
83
+ state: { schemaVersion: 1, enabled: [...enabled].sort(compareCodepoints), lastRuns },
84
+ warnings: [],
85
+ };
86
+ }
87
+ function readLastRun(value) {
88
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
89
+ return null;
90
+ }
91
+ const record = value;
92
+ const runId = record["runId"];
93
+ const startedAt = record["startedAt"];
94
+ const exitStatus = record["exitStatus"];
95
+ const findingsTotal = record["findingsTotal"];
96
+ if (typeof runId !== "string" ||
97
+ typeof startedAt !== "string" ||
98
+ typeof exitStatus !== "string") {
99
+ return null;
100
+ }
101
+ const finishedAt = record["finishedAt"];
102
+ const errorCode = record["errorCode"];
103
+ return {
104
+ runId,
105
+ startedAt,
106
+ exitStatus: exitStatus,
107
+ findingsTotal: typeof findingsTotal === "number" ? findingsTotal : 0,
108
+ ...(typeof finishedAt === "string" ? { finishedAt } : {}),
109
+ ...(typeof errorCode === "string" ? { errorCode } : {}),
110
+ };
111
+ }
112
+ export async function saveCliState(fs, userDataDirectory, state) {
113
+ const path = cliStatePath(userDataDirectory);
114
+ const ordered = {
115
+ schemaVersion: 1,
116
+ enabled: [...state.enabled].sort(compareCodepoints),
117
+ lastRuns: Object.fromEntries(Object.entries(state.lastRuns).sort(([left], [right]) => compareCodepoints(left, right))),
118
+ };
119
+ await writeJsonAtomic(fs, path, ordered);
120
+ return path;
121
+ }
122
+ /** Where acknowledgments are written; re-exported so callers need one import. */
123
+ export function acknowledgmentPath(userDataDirectory) {
124
+ return acknowledgmentFilePath(userDataDirectory);
125
+ }
126
+ export { ACKNOWLEDGMENT_FILE_NAME };
127
+ /**
128
+ * Writes the acknowledgment file. Entries are ordered by
129
+ * `(extensionId, ruleset)` via codepoint comparison so the file has one
130
+ * canonical form — a diff between two machines shows real changes only.
131
+ */
132
+ export async function saveAcknowledgments(fs, userDataDirectory, acknowledgments) {
133
+ const path = acknowledgmentFilePath(userDataDirectory);
134
+ const document = {
135
+ schemaVersion: 1,
136
+ acknowledgments: [...acknowledgments].sort((left, right) => compareCodepoints(left.extensionId, right.extensionId) ||
137
+ compareCodepoints(left.ruleset ?? "", right.ruleset ?? "")),
138
+ };
139
+ await writeJsonAtomic(fs, path, document);
140
+ return path;
141
+ }
142
+ /**
143
+ * Replaces the entry for one `(extensionId, ruleset)` pair, keeping the rest.
144
+ * A repeated acknowledgment updates in place instead of stacking duplicates.
145
+ */
146
+ export function upsertAcknowledgment(existing, entry) {
147
+ const kept = existing.filter((candidate) => candidate.extensionId !== entry.extensionId ||
148
+ (candidate.ruleset ?? "") !== (entry.ruleset ?? ""));
149
+ return [...kept, entry];
150
+ }
151
+ /**
152
+ * Marks every acknowledgment for one extension as withdrawn (§9.3).
153
+ *
154
+ * The entry is kept and stamped with `revokedAt` rather than deleted. Both
155
+ * shapes refuse the run, so this is not about safety — it is about what the
156
+ * user can be told afterwards. A deleted row makes "you never acknowledged
157
+ * this" and "you acknowledged this and took it back" indistinguishable, and
158
+ * §9.3 asks `status` to be able to show the gate status `revoked`, which a
159
+ * deleted row can never produce.
160
+ */
161
+ export function revokeAcknowledgments(existing, extensionId, revokedAt) {
162
+ return existing.map((candidate) => candidate.extensionId === extensionId && candidate.revokedAt === undefined
163
+ ? { ...candidate, revokedAt }
164
+ : candidate);
165
+ }
166
+ /** Drops every acknowledgment for one extension — used when it is uninstalled. */
167
+ export function removeAcknowledgments(existing, extensionId) {
168
+ return existing.filter((candidate) => candidate.extensionId !== extensionId);
169
+ }
170
+ async function writeJsonAtomic(fs, path, value) {
171
+ await fs.mkdir(dirname(path), { recursive: true });
172
+ const temporary = `${path}.tmp`;
173
+ const bytes = new TextEncoder().encode(`${JSON.stringify(value, null, 2)}\n`);
174
+ await fs.writeFile(temporary, bytes);
175
+ await fs.rename(temporary, path);
176
+ }
177
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/commands/extensions/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ParsedArgs } from "../../cli/args.js";
2
+ import { type Io } from "../../cli/io.js";
3
+ import type { ExtensionEnvironmentV1 } from "./environment.js";
4
+ export interface StatusDeps {
5
+ /** Injected in tests so no unit test opens a socket. */
6
+ fetchImpl?: typeof fetch;
7
+ }
8
+ export declare function runStatus(environment: ExtensionEnvironmentV1, args: ParsedArgs, io: Io, format: "text" | "json", deps?: StatusDeps): Promise<number>;
9
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/extensions/status.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAQ,KAAK,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAK/D,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA4BD,wBAAsB,SAAS,CAC7B,WAAW,EAAE,sBAAsB,EACnC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,MAAM,CAAC,CAyJjB"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * `untangle extensions status [<id>]`
3
+ *
4
+ * The read-only view of the two promises B29 makes: every extension runs
5
+ * behind a license gate, and every container image is pinned to a complete
6
+ * digest. Both were already enforced — the gate before any process start, the
7
+ * pin as a validation rule and as `EXTENSION_IMAGE_MISMATCH` at run time —
8
+ * but only ever at the moment of a run. A guarantee nobody can inspect is
9
+ * hard to trust and easy to break unnoticed, so this command shows the pin
10
+ * the runtime would enforce, the gate that stands in front of it, the
11
+ * endpoint that would be contacted, and what the last run did.
12
+ *
13
+ * What it does NOT do is start anything the gate has not cleared. `detect`
14
+ * looks harmless but is not: a version query starts the foreign program, an
15
+ * endpoint probe talks to the foreign service. The runtime therefore refuses
16
+ * both while the gate is open (X5), and this command inherits that refusal
17
+ * rather than re-implementing it. Containers are never started or pulled here
18
+ * under any circumstances (X1); without a container runtime probe the running
19
+ * digest is reported as unknown, with the reason, instead of being quietly
20
+ * omitted (E4).
21
+ *
22
+ * Secrets never appear. Their VALUES are passed to the runtime only so it can
23
+ * redact them from probe output; what the report shows is which required
24
+ * secret is missing, by name and environment variable.
25
+ */
26
+ import { buildHttpAuthHeaders, createFetchHttpRunner, createNodeProcessRunner, defaultProcessLimits, detectExtension, } from "@untangle-code/extension-runtime";
27
+ import {} from "../../cli/args.js";
28
+ import { EXIT, OperationalError } from "../../cli/exit.js";
29
+ import { line } from "../../cli/io.js";
30
+ import { createContainerCli } from "./container.js";
31
+ import { explainMissing, findExtension, gateFor, loadExtensionContext } from "./context.js";
32
+ import { emitJson, renderTable } from "./render.js";
33
+ import { resolveSecretEnvironment } from "./secret-store.js";
34
+ export async function runStatus(environment, args, io, format, deps = {}) {
35
+ const context = await loadExtensionContext(environment);
36
+ const wanted = args.positionals[1];
37
+ let extensions;
38
+ if (wanted === undefined) {
39
+ extensions = [...context.discovery.extensions];
40
+ }
41
+ else {
42
+ const found = findExtension(context, wanted);
43
+ if (found === null) {
44
+ throw new OperationalError(explainMissing(context, wanted), "Install it first: untangle extensions add --from=<path-or-url>");
45
+ }
46
+ extensions = [found];
47
+ }
48
+ const clock = environment.clock;
49
+ const processRunner = createNodeProcessRunner(clock);
50
+ // Nur INSPIZIEREN, nie starten: `status` ist eine Leseoperation (X1). Der
51
+ // laufende Digest ist damit erstmals wirklich beobachtet statt behauptet —
52
+ // bis Welle 12 gab es keine Sonde, und der Abgleich gegen den Pin blieb
53
+ // Vertragsevidenz.
54
+ const containerCli = createContainerCli({
55
+ processRunner,
56
+ limits: { ...defaultProcessLimits(), timeoutMs: 20_000 },
57
+ ...(environment.env["UNTANGLE_CONTAINER_CLI"] === undefined
58
+ ? {}
59
+ : { command: environment.env["UNTANGLE_CONTAINER_CLI"] }),
60
+ });
61
+ const runtimeDeps = {
62
+ clock,
63
+ random: environment.random,
64
+ processRunner,
65
+ httpRunner: createFetchHttpRunner((deps.fetchImpl ?? fetch), clock),
66
+ containerProbe: async (extension, probeOptions = {}) => {
67
+ const runtime = await containerCli.available(probeOptions);
68
+ if (!runtime.available) {
69
+ return { available: false, detail: runtime.detail };
70
+ }
71
+ const state = await containerCli.inspect(extension.manifest, probeOptions);
72
+ return {
73
+ available: state.running && state.ownedByUntangle,
74
+ ...(state.imageDigest === undefined ? {} : { imageDigest: state.imageDigest }),
75
+ detail: state.detail,
76
+ };
77
+ },
78
+ };
79
+ const rows = [];
80
+ for (const extension of extensions) {
81
+ const manifest = extension.manifest;
82
+ const gate = gateFor(context, extension);
83
+ let effectiveEnv = environment.env;
84
+ try {
85
+ effectiveEnv = await resolveSecretEnvironment(environment, manifest);
86
+ }
87
+ catch (error) {
88
+ context.warnings.push(`${manifest.id}: ${error instanceof Error ? error.message : "Cannot read credential configuration"}`);
89
+ }
90
+ const secretValues = [];
91
+ const missingSecrets = [];
92
+ const secretEnv = {};
93
+ for (const secret of manifest.secrets) {
94
+ if (secret.setupOnly)
95
+ continue;
96
+ const value = effectiveEnv[secret.envVar];
97
+ if (value === undefined || value === "") {
98
+ if (secret.required) {
99
+ missingSecrets.push(`${secret.name} (${secret.envVar})`);
100
+ }
101
+ continue;
102
+ }
103
+ secretEnv[secret.envVar] = value;
104
+ secretValues.push(value);
105
+ }
106
+ const httpHeaders = buildHttpAuthHeaders(manifest, effectiveEnv);
107
+ const health = await detectExtension(runtimeDeps, {
108
+ extension,
109
+ licenseGate: gate.tool.status,
110
+ ...(Object.keys(httpHeaders).length === 0 ? {} : { httpHeaders }),
111
+ env: {
112
+ PATH: environment.env["PATH"] ?? "",
113
+ ...(environment.env["HOME"] === undefined ? {} : { HOME: environment.env["HOME"] }),
114
+ ...secretEnv,
115
+ },
116
+ secretValues,
117
+ ...(manifest.http?.defaultUrl === undefined ? {} : { httpUrl: manifest.http.defaultUrl }),
118
+ });
119
+ // Der Digest gehoert zur EXTENSION, nicht zum Analyseweg. Ein Dienst wird
120
+ // als Container bereitgestellt und ueber HTTP befragt; `detect` betritt den
121
+ // Container-Zweig dann nie, und der Pin bliebe ungeprueft — obwohl genau
122
+ // dieser Container laeuft. Deshalb wird hier unabhaengig vom Aufrufmodus
123
+ // nachgesehen, sobald das Manifest einen Container beschreibt.
124
+ if (manifest.container !== undefined) {
125
+ const state = await containerCli.inspect(manifest);
126
+ if (state.ownedByUntangle && state.imageDigest !== undefined) {
127
+ health.imageDigest = state.imageDigest;
128
+ health.digestMatchesManifest = state.imageDigest === manifest.container.digest;
129
+ }
130
+ else if (state.exists && !state.ownedByUntangle) {
131
+ health.unavailableReasons.push({ invocation: "container", detail: state.detail });
132
+ }
133
+ }
134
+ const lastRun = context.state.lastRuns[manifest.id];
135
+ rows.push({
136
+ id: manifest.id,
137
+ displayName: manifest.displayName,
138
+ category: manifest.category,
139
+ invocation: [...manifest.invocation],
140
+ enabled: context.state.enabled.includes(manifest.id),
141
+ license: {
142
+ spdxId: manifest.license.spdxId,
143
+ usageRestriction: manifest.license.usageRestriction,
144
+ gate,
145
+ },
146
+ pin: manifest.container === undefined
147
+ ? null
148
+ : { image: manifest.container.image, digest: manifest.container.digest },
149
+ health,
150
+ missingSecrets,
151
+ manifestPath: extension.manifestPath,
152
+ origin: extension.origin,
153
+ ...(lastRun === undefined ? {} : { lastRun }),
154
+ });
155
+ }
156
+ if (format === "json") {
157
+ emitJson(io, {
158
+ command: "extensions status",
159
+ rootsScanned: context.discovery.rootsScanned,
160
+ projectRootsExcluded: environment.projectRoots,
161
+ extensions: rows,
162
+ rejected: context.discovery.rejected,
163
+ ignored: context.discovery.ignored,
164
+ warnings: context.warnings,
165
+ });
166
+ return EXIT.ok;
167
+ }
168
+ renderText(io, rows, context.discovery.rootsScanned, context.warnings);
169
+ return EXIT.ok;
170
+ }
171
+ function renderText(io, rows, rootsScanned, warnings) {
172
+ if (rows.length === 0) {
173
+ line(io, "no extensions installed.");
174
+ }
175
+ for (const row of rows) {
176
+ line(io, `${row.id} (${row.displayName})`);
177
+ for (const rendered of renderTable(["FIELD", "VALUE"], [
178
+ ["enabled", row.enabled ? "yes" : "no"],
179
+ ["invocation", row.invocation.join(", ")],
180
+ ["available", row.health.available ? "yes" : "no"],
181
+ ["effective mode", row.health.effectiveInvocation ?? "—"],
182
+ ["tool version", row.health.toolVersion ?? "—"],
183
+ ["endpoint", row.health.endpoint ?? "—"],
184
+ ["binary", row.health.binaryPath ?? "—"],
185
+ ["license", `${row.license.spdxId} (${row.license.usageRestriction})`],
186
+ ["license gate", `${row.health.licenseGate} — ${row.license.gate.tool.reason}`],
187
+ ["pinned image", row.pin === null ? "— (not container-invoked)" : row.pin.image],
188
+ ["pinned digest", row.pin === null ? "—" : row.pin.digest],
189
+ ["running digest", describeRunningDigest(row)],
190
+ ["last run", describeLastRun(row.lastRun)],
191
+ [
192
+ "missing secrets",
193
+ row.missingSecrets.length === 0 ? "none" : row.missingSecrets.join(", "),
194
+ ],
195
+ ])) {
196
+ line(io, ` ${rendered}`);
197
+ }
198
+ for (const entry of row.license.gate.rulesets) {
199
+ line(io, ` ruleset ${entry.ruleset}: ${entry.status} — ${entry.reason}`);
200
+ }
201
+ for (const reason of row.health.unavailableReasons) {
202
+ line(io, ` unavailable via ${reason.invocation}: ${reason.detail}`);
203
+ }
204
+ for (const command of row.license.gate.acknowledgeCommands) {
205
+ line(io, ` to acknowledge: ${command}`);
206
+ }
207
+ line(io, ` manifest: ${row.manifestPath} (${row.origin})`);
208
+ line(io, "");
209
+ }
210
+ line(io, "roots searched (project directories are never searched):");
211
+ for (const root of rootsScanned) {
212
+ line(io, ` ${root.root}${root.exists ? "" : " (does not exist)"}`);
213
+ }
214
+ for (const warning of warnings) {
215
+ line(io, `warning: ${warning}`);
216
+ }
217
+ }
218
+ /**
219
+ * A digest that could not be read is said to be unreadable, with the reason.
220
+ * "—" alone would look like "no container", which is a different statement.
221
+ */
222
+ function describeRunningDigest(row) {
223
+ if (row.pin === null) {
224
+ return "—";
225
+ }
226
+ if (row.health.imageDigest === undefined) {
227
+ return "unknown (nothing was started or pulled to find out)";
228
+ }
229
+ return `${row.health.imageDigest} (${row.health.digestMatchesManifest === true ? "matches the pin" : "DIFFERS from the pin"})`;
230
+ }
231
+ function describeLastRun(lastRun) {
232
+ if (lastRun === undefined) {
233
+ return "never run";
234
+ }
235
+ return (`${lastRun.startedAt} ${lastRun.exitStatus}` +
236
+ `${lastRun.errorCode === undefined ? "" : ` (${lastRun.errorCode})`}` +
237
+ `, ${String(lastRun.findingsTotal)} findings`);
238
+ }
239
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/extensions/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "../cli/command.js";
2
+ export declare const extensionsCommand: Command;
3
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/commands/extensions.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,mBAAmB,CAAC;AAgJjE,eAAO,MAAM,iBAAiB,EAAE,OAsF/B,CAAC"}