@lesliechan721/aw 0.1.0-beta.5 → 0.1.0-beta.50

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 (566) hide show
  1. package/dist/authoring/assets/aw-config.mjs +100 -501
  2. package/dist/authoring/assets/aw-config.mjs.map +1 -1
  3. package/dist/authoring/assets/aw-runtime-config.d.mts +13 -0
  4. package/dist/authoring/assets/aw-runtime-config.mjs +199 -0
  5. package/dist/authoring/assets/aw-runtime-config.mjs.map +1 -0
  6. package/dist/authoring/scripts/add-skill.mjs +4 -4
  7. package/dist/authoring/scripts/add-skill.mjs.map +1 -1
  8. package/dist/authoring/scripts/init-plugin.mjs +67 -97
  9. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  10. package/dist/authoring/scripts/lib/plugin-root.mjs +4 -4
  11. package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -1
  12. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +1 -0
  13. package/dist/authoring/scripts/lib/plugin-version-check.mjs +229 -8
  14. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  15. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +77 -90
  16. package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -120
  17. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
  18. package/dist/authoring/scripts/plugin-status.mjs +8 -11
  19. package/dist/authoring/scripts/plugin-status.mjs.map +1 -1
  20. package/dist/authoring/scripts/remove-plugin.mjs +3 -2
  21. package/dist/authoring/scripts/remove-plugin.mjs.map +1 -1
  22. package/dist/authoring/scripts/validate-plugin.mjs +346 -1131
  23. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  24. package/dist/scripts/aw-skill-eval-materializer.d.ts +26 -0
  25. package/dist/scripts/aw-skill-eval-materializer.js +306 -0
  26. package/dist/scripts/aw-skill-eval-materializer.js.map +1 -0
  27. package/dist/scripts/bundle-plugins.d.ts +1 -0
  28. package/dist/scripts/bundle-plugins.js +20 -5
  29. package/dist/scripts/bundle-plugins.js.map +1 -1
  30. package/dist/scripts/plugin-staging.d.ts +7 -9
  31. package/dist/scripts/plugin-staging.js +18 -29
  32. package/dist/scripts/plugin-staging.js.map +1 -1
  33. package/dist/scripts/test-plugin-scripts.d.ts +2 -0
  34. package/dist/scripts/test-plugin-scripts.js +47 -76
  35. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  36. package/dist/scripts/test-workers.d.mts +24 -0
  37. package/dist/scripts/test-workers.mjs +59 -0
  38. package/dist/scripts/test-workers.mjs.map +1 -0
  39. package/dist/src/adapters/helpers.js +2 -2
  40. package/dist/src/adapters/helpers.js.map +1 -1
  41. package/dist/src/authoring/workspace-commands.d.ts +17 -1
  42. package/dist/src/authoring/workspace-commands.js +21 -4
  43. package/dist/src/authoring/workspace-commands.js.map +1 -1
  44. package/dist/src/commands/aw-capabilities.d.ts +78 -0
  45. package/dist/src/commands/aw-capabilities.js +264 -0
  46. package/dist/src/commands/aw-capabilities.js.map +1 -0
  47. package/dist/src/commands/catalog-dev-source.d.ts +154 -0
  48. package/dist/src/commands/catalog-dev-source.js +655 -0
  49. package/dist/src/commands/catalog-dev-source.js.map +1 -0
  50. package/dist/src/commands/catalog-generation.d.ts +21 -0
  51. package/dist/src/commands/catalog-generation.js +9 -0
  52. package/dist/src/commands/catalog-generation.js.map +1 -0
  53. package/dist/src/commands/catalog-publication-inspection.d.ts +71 -30
  54. package/dist/src/commands/catalog-publication-inspection.js +475 -63
  55. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  56. package/dist/src/commands/catalog-publication-journal.d.ts +68 -0
  57. package/dist/src/commands/catalog-publication-journal.js +292 -0
  58. package/dist/src/commands/catalog-publication-journal.js.map +1 -0
  59. package/dist/src/commands/catalog-publication-target.d.ts +18 -0
  60. package/dist/src/commands/catalog-publication-target.js +95 -0
  61. package/dist/src/commands/catalog-publication-target.js.map +1 -0
  62. package/dist/src/commands/catalog-publish.d.ts +73 -15
  63. package/dist/src/commands/catalog-publish.js +701 -212
  64. package/dist/src/commands/catalog-publish.js.map +1 -1
  65. package/dist/src/commands/catalog-source.d.ts +60 -22
  66. package/dist/src/commands/catalog-source.js +311 -91
  67. package/dist/src/commands/catalog-source.js.map +1 -1
  68. package/dist/src/commands/catalog-status.d.ts +18 -22
  69. package/dist/src/commands/catalog-status.js +81 -115
  70. package/dist/src/commands/catalog-status.js.map +1 -1
  71. package/dist/src/commands/catalog-store.d.ts +104 -0
  72. package/dist/src/commands/catalog-store.js +685 -0
  73. package/dist/src/commands/catalog-store.js.map +1 -0
  74. package/dist/src/commands/catalog-workspace-resolution.d.ts +13 -0
  75. package/dist/src/commands/catalog-workspace-resolution.js +42 -0
  76. package/dist/src/commands/catalog-workspace-resolution.js.map +1 -0
  77. package/dist/src/commands/console.js +28 -17
  78. package/dist/src/commands/console.js.map +1 -1
  79. package/dist/src/commands/dependency-operation-plan.d.ts +52 -15
  80. package/dist/src/commands/dependency-operation-plan.js +289 -7
  81. package/dist/src/commands/dependency-operation-plan.js.map +1 -1
  82. package/dist/src/commands/init.d.ts +5 -11
  83. package/dist/src/commands/init.js +30 -51
  84. package/dist/src/commands/init.js.map +1 -1
  85. package/dist/src/commands/offline-cleanup-evidence.d.ts +67 -0
  86. package/dist/src/commands/offline-cleanup-evidence.js +181 -0
  87. package/dist/src/commands/offline-cleanup-evidence.js.map +1 -0
  88. package/dist/src/commands/operation-plan.d.ts +146 -0
  89. package/dist/src/commands/operation-plan.js +71 -0
  90. package/dist/src/commands/operation-plan.js.map +1 -0
  91. package/dist/src/commands/operation-planner.d.ts +46 -0
  92. package/dist/src/commands/operation-planner.js +141 -0
  93. package/dist/src/commands/operation-planner.js.map +1 -0
  94. package/dist/src/commands/options.d.ts +9 -7
  95. package/dist/src/commands/options.js +83 -21
  96. package/dist/src/commands/options.js.map +1 -1
  97. package/dist/src/commands/plugin-capabilities.js +23 -3
  98. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  99. package/dist/src/commands/rebuild-command.d.ts +77 -31
  100. package/dist/src/commands/rebuild-command.js +4862 -729
  101. package/dist/src/commands/rebuild-command.js.map +1 -1
  102. package/dist/src/commands/rebuild-integration.d.ts +131 -21
  103. package/dist/src/commands/rebuild-integration.js +2866 -1339
  104. package/dist/src/commands/rebuild-integration.js.map +1 -1
  105. package/dist/src/commands/rebuild-operations.d.ts +58 -30
  106. package/dist/src/commands/rebuild-operations.js +260 -319
  107. package/dist/src/commands/rebuild-operations.js.map +1 -1
  108. package/dist/src/commands/reconcile-operation-plan.d.ts +28 -0
  109. package/dist/src/commands/reconcile-operation-plan.js +47 -0
  110. package/dist/src/commands/reconcile-operation-plan.js.map +1 -0
  111. package/dist/src/commands/review-inspection.d.ts +228 -0
  112. package/dist/src/commands/review-inspection.js +1341 -0
  113. package/dist/src/commands/review-inspection.js.map +1 -0
  114. package/dist/src/commands/review-preparation.d.ts +49 -0
  115. package/dist/src/commands/review-preparation.js +427 -0
  116. package/dist/src/commands/review-preparation.js.map +1 -0
  117. package/dist/src/commands/runtime.d.ts +1 -5
  118. package/dist/src/commands/runtime.js +24 -50
  119. package/dist/src/commands/runtime.js.map +1 -1
  120. package/dist/src/commands/skill-eval.d.ts +39 -0
  121. package/dist/src/commands/skill-eval.js +400 -0
  122. package/dist/src/commands/skill-eval.js.map +1 -0
  123. package/dist/src/commands/status-v6.d.ts +279 -0
  124. package/dist/src/commands/status-v6.js +2787 -0
  125. package/dist/src/commands/status-v6.js.map +1 -0
  126. package/dist/src/commands/sync-command.d.ts +40 -0
  127. package/dist/src/commands/sync-command.js +250 -0
  128. package/dist/src/commands/sync-command.js.map +1 -0
  129. package/dist/src/commands/wizard.d.ts +8 -5
  130. package/dist/src/commands/wizard.js +6 -4
  131. package/dist/src/commands/wizard.js.map +1 -1
  132. package/dist/src/commands/write-commands.d.ts +9 -3
  133. package/dist/src/commands/write-commands.js +127 -31
  134. package/dist/src/commands/write-commands.js.map +1 -1
  135. package/dist/src/constants.d.ts +7 -1
  136. package/dist/src/constants.js +7 -1
  137. package/dist/src/constants.js.map +1 -1
  138. package/dist/src/eval/manifest-v1.d.ts +71 -0
  139. package/dist/src/eval/manifest-v1.js +370 -0
  140. package/dist/src/eval/manifest-v1.js.map +1 -0
  141. package/dist/src/generators/local-plugin.d.ts +5 -1
  142. package/dist/src/generators/local-plugin.js +236 -109
  143. package/dist/src/generators/local-plugin.js.map +1 -1
  144. package/dist/src/index.d.ts +10 -4
  145. package/dist/src/index.js +1793 -486
  146. package/dist/src/index.js.map +1 -1
  147. package/dist/src/output/command-receipt.d.ts +43 -46
  148. package/dist/src/output/command-receipt.js +256 -80
  149. package/dist/src/output/command-receipt.js.map +1 -1
  150. package/dist/src/output/model.d.ts +3 -44
  151. package/dist/src/output/model.js +1 -144
  152. package/dist/src/output/model.js.map +1 -1
  153. package/dist/src/output/rebuild-progress.js +1 -13
  154. package/dist/src/output/rebuild-progress.js.map +1 -1
  155. package/dist/src/portable/commands.d.ts +46 -7
  156. package/dist/src/portable/commands.js +349 -37
  157. package/dist/src/portable/commands.js.map +1 -1
  158. package/dist/src/portable/materializer.d.ts +17 -4
  159. package/dist/src/portable/materializer.js +179 -41
  160. package/dist/src/portable/materializer.js.map +1 -1
  161. package/dist/src/portable/skills-cli.d.ts +15 -7
  162. package/dist/src/portable/skills-cli.js +74 -20
  163. package/dist/src/portable/skills-cli.js.map +1 -1
  164. package/dist/src/review/eval-source-input.d.ts +43 -0
  165. package/dist/src/review/eval-source-input.js +207 -0
  166. package/dist/src/review/eval-source-input.js.map +1 -0
  167. package/dist/src/review/review-profile.d.ts +17 -0
  168. package/dist/src/review/review-profile.js +234 -0
  169. package/dist/src/review/review-profile.js.map +1 -0
  170. package/dist/src/review/review-selection.d.ts +30 -0
  171. package/dist/src/review/review-selection.js +527 -0
  172. package/dist/src/review/review-selection.js.map +1 -0
  173. package/dist/src/review/review-types.d.ts +68 -0
  174. package/dist/src/review/review-types.js +16 -0
  175. package/dist/src/review/review-types.js.map +1 -0
  176. package/dist/src/review/skill-materialization.d.ts +13 -0
  177. package/dist/src/review/skill-materialization.js +75 -0
  178. package/dist/src/review/skill-materialization.js.map +1 -0
  179. package/dist/src/review/source-binding.d.ts +183 -0
  180. package/dist/src/review/source-binding.js +708 -0
  181. package/dist/src/review/source-binding.js.map +1 -0
  182. package/dist/src/tui/catalog-freshness.d.ts +1 -0
  183. package/dist/src/tui/catalog-freshness.js +2 -0
  184. package/dist/src/tui/catalog-freshness.js.map +1 -0
  185. package/dist/src/tui/catalog-generation.d.ts +21 -0
  186. package/dist/src/tui/catalog-generation.js +156 -0
  187. package/dist/src/tui/catalog-generation.js.map +1 -0
  188. package/dist/src/tui/catalog-sources/projection.d.ts +4 -0
  189. package/dist/src/tui/catalog-sources/projection.js +17 -0
  190. package/dist/src/tui/catalog-sources/projection.js.map +1 -0
  191. package/dist/src/tui/catalog-sources/review.d.ts +3 -0
  192. package/dist/src/tui/catalog-sources/review.js +13 -0
  193. package/dist/src/tui/catalog-sources/review.js.map +1 -0
  194. package/dist/src/tui/catalog-sources/screens.d.ts +12 -0
  195. package/dist/src/tui/catalog-sources/screens.js +40 -0
  196. package/dist/src/tui/catalog-sources/screens.js.map +1 -0
  197. package/dist/src/tui/catalog-sources/session.d.ts +32 -0
  198. package/dist/src/tui/catalog-sources/session.js +300 -0
  199. package/dist/src/tui/catalog-sources/session.js.map +1 -0
  200. package/dist/src/tui/catalog-sources/types.d.ts +54 -0
  201. package/dist/src/tui/catalog-sources/types.js +2 -0
  202. package/dist/src/tui/catalog-sources/types.js.map +1 -0
  203. package/dist/src/tui/catalog-store-task.d.ts +16 -0
  204. package/dist/src/tui/catalog-store-task.js +19 -0
  205. package/dist/src/tui/catalog-store-task.js.map +1 -0
  206. package/dist/src/tui/clipboard.d.ts +13 -0
  207. package/dist/src/tui/clipboard.js +95 -0
  208. package/dist/src/tui/clipboard.js.map +1 -0
  209. package/dist/src/tui/components.d.ts +110 -3
  210. package/dist/src/tui/components.js +183 -36
  211. package/dist/src/tui/components.js.map +1 -1
  212. package/dist/src/tui/config-array-draft.d.ts +29 -0
  213. package/dist/src/tui/config-array-draft.js +48 -0
  214. package/dist/src/tui/config-array-draft.js.map +1 -0
  215. package/dist/src/tui/config-leaf-editor.d.ts +16 -0
  216. package/dist/src/tui/config-leaf-editor.js +206 -0
  217. package/dist/src/tui/config-leaf-editor.js.map +1 -0
  218. package/dist/src/tui/config-value-presentation.d.ts +20 -0
  219. package/dist/src/tui/config-value-presentation.js +104 -0
  220. package/dist/src/tui/config-value-presentation.js.map +1 -0
  221. package/dist/src/tui/console-app-v4.d.ts +14 -4
  222. package/dist/src/tui/console-app-v4.js +8941 -1872
  223. package/dist/src/tui/console-app-v4.js.map +1 -1
  224. package/dist/src/tui/content-item-card.d.ts +13 -0
  225. package/dist/src/tui/content-item-card.js +51 -0
  226. package/dist/src/tui/content-item-card.js.map +1 -0
  227. package/dist/src/tui/controller-runtime.d.ts +10 -2
  228. package/dist/src/tui/controller-runtime.js +3211 -388
  229. package/dist/src/tui/controller-runtime.js.map +1 -1
  230. package/dist/src/tui/controller.d.ts +615 -45
  231. package/dist/src/tui/controller.js +3558 -768
  232. package/dist/src/tui/controller.js.map +1 -1
  233. package/dist/src/tui/dependency-graph-view.d.ts +39 -0
  234. package/dist/src/tui/dependency-graph-view.js +121 -0
  235. package/dist/src/tui/dependency-graph-view.js.map +1 -0
  236. package/dist/src/tui/dependency-graph.d.ts +81 -0
  237. package/dist/src/tui/dependency-graph.js +452 -0
  238. package/dist/src/tui/dependency-graph.js.map +1 -0
  239. package/dist/src/tui/diagnostic-projection.d.ts +23 -0
  240. package/dist/src/tui/diagnostic-projection.js +567 -0
  241. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  242. package/dist/src/tui/diagnostics.d.ts +3 -3
  243. package/dist/src/tui/diagnostics.js +14 -2
  244. package/dist/src/tui/diagnostics.js.map +1 -1
  245. package/dist/src/tui/entity-cards.d.ts +55 -0
  246. package/dist/src/tui/entity-cards.js +220 -0
  247. package/dist/src/tui/entity-cards.js.map +1 -0
  248. package/dist/src/tui/glossary.d.ts +23 -0
  249. package/dist/src/tui/glossary.js +42 -0
  250. package/dist/src/tui/glossary.js.map +1 -0
  251. package/dist/src/tui/index.d.ts +6 -1
  252. package/dist/src/tui/index.js +5 -1
  253. package/dist/src/tui/index.js.map +1 -1
  254. package/dist/src/tui/input-display.d.ts +9 -0
  255. package/dist/src/tui/input-display.js +58 -0
  256. package/dist/src/tui/input-display.js.map +1 -0
  257. package/dist/src/tui/keys.d.ts +44 -0
  258. package/dist/src/tui/keys.js +43 -15
  259. package/dist/src/tui/keys.js.map +1 -1
  260. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  261. package/dist/src/tui/lifecycle-action-view.js +36 -0
  262. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  263. package/dist/src/tui/model.d.ts +223 -31
  264. package/dist/src/tui/model.js +1510 -397
  265. package/dist/src/tui/model.js.map +1 -1
  266. package/dist/src/tui/operation-diagnostic-screens.d.ts +8 -0
  267. package/dist/src/tui/operation-diagnostic-screens.js +71 -0
  268. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  269. package/dist/src/tui/operation-history.d.ts +81 -0
  270. package/dist/src/tui/operation-history.js +136 -0
  271. package/dist/src/tui/operation-history.js.map +1 -0
  272. package/dist/src/tui/operation-review-planner.d.ts +21 -0
  273. package/dist/src/tui/operation-review-planner.js +1295 -0
  274. package/dist/src/tui/operation-review-planner.js.map +1 -0
  275. package/dist/src/tui/plugin-content.d.ts +31 -0
  276. package/dist/src/tui/plugin-content.js +680 -0
  277. package/dist/src/tui/plugin-content.js.map +1 -0
  278. package/dist/src/tui/plugin-detail.d.ts +52 -0
  279. package/dist/src/tui/plugin-detail.js +165 -0
  280. package/dist/src/tui/plugin-detail.js.map +1 -0
  281. package/dist/src/tui/plugin-write-task.d.ts +69 -0
  282. package/dist/src/tui/plugin-write-task.js +286 -0
  283. package/dist/src/tui/plugin-write-task.js.map +1 -0
  284. package/dist/src/tui/project-inventory.d.ts +68 -0
  285. package/dist/src/tui/project-inventory.js +203 -0
  286. package/dist/src/tui/project-inventory.js.map +1 -0
  287. package/dist/src/tui/prompt.js +4 -15
  288. package/dist/src/tui/prompt.js.map +1 -1
  289. package/dist/src/tui/query-header.d.ts +30 -0
  290. package/dist/src/tui/query-header.js +40 -0
  291. package/dist/src/tui/query-header.js.map +1 -0
  292. package/dist/src/tui/reader.d.ts +37 -0
  293. package/dist/src/tui/reader.js +47 -0
  294. package/dist/src/tui/reader.js.map +1 -0
  295. package/dist/src/tui/router.d.ts +197 -10
  296. package/dist/src/tui/router.js +338 -50
  297. package/dist/src/tui/router.js.map +1 -1
  298. package/dist/src/tui/screen-registry.d.ts +701 -0
  299. package/dist/src/tui/screen-registry.js +230 -0
  300. package/dist/src/tui/screen-registry.js.map +1 -0
  301. package/dist/src/tui/session-console-app.d.ts +6 -0
  302. package/dist/src/tui/session-console-app.js +13 -0
  303. package/dist/src/tui/session-console-app.js.map +1 -0
  304. package/dist/src/tui/session-host.d.ts +45 -0
  305. package/dist/src/tui/session-host.js +209 -0
  306. package/dist/src/tui/session-host.js.map +1 -0
  307. package/dist/src/tui/source-detail-card.d.ts +29 -0
  308. package/dist/src/tui/source-detail-card.js +45 -0
  309. package/dist/src/tui/source-detail-card.js.map +1 -0
  310. package/dist/src/tui/source-ref-presets.d.ts +3 -0
  311. package/dist/src/tui/source-ref-presets.js +11 -0
  312. package/dist/src/tui/source-ref-presets.js.map +1 -0
  313. package/dist/src/tui/theme.d.ts +12 -0
  314. package/dist/src/tui/theme.js +12 -0
  315. package/dist/src/tui/theme.js.map +1 -1
  316. package/dist/src/tui/viewport.d.ts +1 -0
  317. package/dist/src/tui/viewport.js +23 -0
  318. package/dist/src/tui/viewport.js.map +1 -1
  319. package/dist/src/tui/views.js +31 -3
  320. package/dist/src/tui/views.js.map +1 -1
  321. package/dist/src/tui/wizard.js +37 -13
  322. package/dist/src/tui/wizard.js.map +1 -1
  323. package/dist/src/types.d.ts +244 -20
  324. package/dist/src/types.js +1 -0
  325. package/dist/src/types.js.map +1 -1
  326. package/dist/src/utils/agent-version.d.ts +7 -1
  327. package/dist/src/utils/agent-version.js +41 -8
  328. package/dist/src/utils/agent-version.js.map +1 -1
  329. package/dist/src/utils/artifact-plan.d.ts +5 -4
  330. package/dist/src/utils/artifact-plan.js +18 -7
  331. package/dist/src/utils/artifact-plan.js.map +1 -1
  332. package/dist/src/utils/artifact-renderer.d.ts +17 -7
  333. package/dist/src/utils/artifact-renderer.js +214 -216
  334. package/dist/src/utils/artifact-renderer.js.map +1 -1
  335. package/dist/src/utils/artifact-request.d.ts +21 -0
  336. package/dist/src/utils/artifact-request.js +78 -0
  337. package/dist/src/utils/artifact-request.js.map +1 -0
  338. package/dist/src/utils/aw-home-mutation-lock.d.ts +1 -0
  339. package/dist/src/utils/aw-home-mutation-lock.js +32 -4
  340. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -1
  341. package/dist/src/utils/bundle-integrity.d.ts +0 -1
  342. package/dist/src/utils/bundle-integrity.js +0 -25
  343. package/dist/src/utils/bundle-integrity.js.map +1 -1
  344. package/dist/src/utils/bundle-layout.js +22 -29
  345. package/dist/src/utils/bundle-layout.js.map +1 -1
  346. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  347. package/dist/src/utils/catalog-capability-projection.js +14 -0
  348. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  349. package/dist/src/utils/catalog-digests.d.ts +10 -0
  350. package/dist/src/utils/catalog-digests.js +57 -20
  351. package/dist/src/utils/catalog-digests.js.map +1 -1
  352. package/dist/src/utils/catalog-generation-control-snapshot.d.ts +11 -0
  353. package/dist/src/utils/catalog-generation-control-snapshot.js +45 -0
  354. package/dist/src/utils/catalog-generation-control-snapshot.js.map +1 -0
  355. package/dist/src/utils/catalog-generation-error.d.ts +16 -0
  356. package/dist/src/utils/catalog-generation-error.js +30 -0
  357. package/dist/src/utils/catalog-generation-error.js.map +1 -0
  358. package/dist/src/utils/catalog-generation-resolver.d.ts +44 -0
  359. package/dist/src/utils/catalog-generation-resolver.js +273 -0
  360. package/dist/src/utils/catalog-generation-resolver.js.map +1 -0
  361. package/dist/src/utils/catalog-generation-service.d.ts +172 -0
  362. package/dist/src/utils/catalog-generation-service.js +1271 -0
  363. package/dist/src/utils/catalog-generation-service.js.map +1 -0
  364. package/dist/src/utils/catalog-generation-state.d.ts +22 -0
  365. package/dist/src/utils/catalog-generation-state.js +192 -0
  366. package/dist/src/utils/catalog-generation-state.js.map +1 -0
  367. package/dist/src/utils/catalog-generation-store.d.ts +58 -0
  368. package/dist/src/utils/catalog-generation-store.js +452 -0
  369. package/dist/src/utils/catalog-generation-store.js.map +1 -0
  370. package/dist/src/utils/catalog-manifest-v7.d.ts +5 -0
  371. package/dist/src/utils/{catalog-manifest-v4.js → catalog-manifest-v7.js} +35 -43
  372. package/dist/src/utils/catalog-manifest-v7.js.map +1 -0
  373. package/dist/src/utils/catalog-operation-context.d.ts +20 -0
  374. package/dist/src/utils/catalog-operation-context.js +142 -0
  375. package/dist/src/utils/catalog-operation-context.js.map +1 -0
  376. package/dist/src/utils/catalog-public-error.d.ts +7 -3
  377. package/dist/src/utils/catalog-public-error.js +28 -8
  378. package/dist/src/utils/catalog-public-error.js.map +1 -1
  379. package/dist/src/utils/catalog-runtime-projection.d.ts +3 -0
  380. package/dist/src/utils/catalog-runtime-projection.js +5 -40
  381. package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
  382. package/dist/src/utils/catalog-snapshot.d.ts +5 -3
  383. package/dist/src/utils/catalog-snapshot.js +11 -3
  384. package/dist/src/utils/catalog-snapshot.js.map +1 -1
  385. package/dist/src/utils/catalog-source-identity.d.ts +1 -0
  386. package/dist/src/utils/catalog-source-identity.js +21 -2
  387. package/dist/src/utils/catalog-source-identity.js.map +1 -1
  388. package/dist/src/utils/catalog-source-impact.d.ts +21 -0
  389. package/dist/src/utils/catalog-source-impact.js +344 -0
  390. package/dist/src/utils/catalog-source-impact.js.map +1 -0
  391. package/dist/src/utils/catalog-source-references.d.ts +3 -2
  392. package/dist/src/utils/catalog-source-references.js +195 -347
  393. package/dist/src/utils/catalog-source-references.js.map +1 -1
  394. package/dist/src/utils/catalog-sources.d.ts +15 -1
  395. package/dist/src/utils/catalog-sources.js +206 -27
  396. package/dist/src/utils/catalog-sources.js.map +1 -1
  397. package/dist/src/utils/codex-config.d.ts +2 -0
  398. package/dist/src/utils/codex-config.js +26 -5
  399. package/dist/src/utils/codex-config.js.map +1 -1
  400. package/dist/src/utils/codex-manager.d.ts +79 -0
  401. package/dist/src/utils/codex-manager.js +747 -0
  402. package/dist/src/utils/codex-manager.js.map +1 -0
  403. package/dist/src/utils/codex-marketplace-path.d.ts +5 -0
  404. package/dist/src/utils/codex-marketplace-path.js +45 -0
  405. package/dist/src/utils/codex-marketplace-path.js.map +1 -0
  406. package/dist/src/utils/codex-native-observation.d.ts +49 -0
  407. package/dist/src/utils/codex-native-observation.js +154 -0
  408. package/dist/src/utils/codex-native-observation.js.map +1 -0
  409. package/dist/src/utils/codex-native-render-receipt.d.ts +40 -0
  410. package/dist/src/utils/codex-native-render-receipt.js +205 -0
  411. package/dist/src/utils/codex-native-render-receipt.js.map +1 -0
  412. package/dist/src/utils/codex-reconciler.d.ts +126 -0
  413. package/dist/src/utils/codex-reconciler.js +298 -0
  414. package/dist/src/utils/codex-reconciler.js.map +1 -0
  415. package/dist/src/utils/codex-shared-native.d.ts +43 -0
  416. package/dist/src/utils/codex-shared-native.js +81 -0
  417. package/dist/src/utils/codex-shared-native.js.map +1 -0
  418. package/dist/src/utils/codex-skill-staging.d.ts +2 -0
  419. package/dist/src/utils/codex-skill-staging.js.map +1 -1
  420. package/dist/src/utils/codex-surface-analysis.d.ts +46 -0
  421. package/dist/src/utils/codex-surface-analysis.js +247 -0
  422. package/dist/src/utils/codex-surface-analysis.js.map +1 -0
  423. package/dist/src/utils/dynamic-skill-tree.d.ts +4 -0
  424. package/dist/src/utils/dynamic-skill-tree.js +35 -5
  425. package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
  426. package/dist/src/utils/git-catalog-provider.d.ts +16 -0
  427. package/dist/src/utils/git-catalog-provider.js +177 -145
  428. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  429. package/dist/src/utils/local-marketplace.d.ts +18 -1
  430. package/dist/src/utils/local-marketplace.js +354 -84
  431. package/dist/src/utils/local-marketplace.js.map +1 -1
  432. package/dist/src/utils/manifest.d.ts +1 -3
  433. package/dist/src/utils/manifest.js +1 -3
  434. package/dist/src/utils/manifest.js.map +1 -1
  435. package/dist/src/utils/multi-source-catalog.d.ts +3 -9
  436. package/dist/src/utils/multi-source-catalog.js +54 -110
  437. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  438. package/dist/src/utils/native-cli.d.ts +55 -7
  439. package/dist/src/utils/native-cli.js +400 -58
  440. package/dist/src/utils/native-cli.js.map +1 -1
  441. package/dist/src/utils/orphan-marketplace-cleanup.js +0 -4
  442. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
  443. package/dist/src/utils/ownership.d.ts +84 -20
  444. package/dist/src/utils/ownership.js +179 -222
  445. package/dist/src/utils/ownership.js.map +1 -1
  446. package/dist/src/utils/path-catalog-provider.d.ts +1 -1
  447. package/dist/src/utils/path-catalog-provider.js +54 -65
  448. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  449. package/dist/src/utils/paths.d.ts +0 -1
  450. package/dist/src/utils/paths.js +0 -1
  451. package/dist/src/utils/paths.js.map +1 -1
  452. package/dist/src/utils/plugin-config-impact.d.ts +33 -0
  453. package/dist/src/utils/plugin-config-impact.js +298 -0
  454. package/dist/src/utils/plugin-config-impact.js.map +1 -0
  455. package/dist/src/utils/plugin-config-write.d.ts +52 -27
  456. package/dist/src/utils/plugin-config-write.js +1000 -296
  457. package/dist/src/utils/plugin-config-write.js.map +1 -1
  458. package/dist/src/utils/plugin-config.d.ts +153 -93
  459. package/dist/src/utils/plugin-config.js +1116 -968
  460. package/dist/src/utils/plugin-config.js.map +1 -1
  461. package/dist/src/utils/plugin-intent-state.d.ts +49 -0
  462. package/dist/src/utils/plugin-intent-state.js +320 -0
  463. package/dist/src/utils/plugin-intent-state.js.map +1 -0
  464. package/dist/src/utils/plugin-scripts.d.ts +65 -125
  465. package/dist/src/utils/plugin-scripts.js +484 -524
  466. package/dist/src/utils/plugin-scripts.js.map +1 -1
  467. package/dist/src/utils/process-tree.d.ts +2 -2
  468. package/dist/src/utils/process-tree.js +1 -1
  469. package/dist/src/utils/process-tree.js.map +1 -1
  470. package/dist/src/utils/project-boundary.d.ts +11 -13
  471. package/dist/src/utils/project-boundary.js +28 -34
  472. package/dist/src/utils/project-boundary.js.map +1 -1
  473. package/dist/src/utils/runtime-config.d.ts +20 -0
  474. package/dist/src/utils/runtime-config.js +75 -0
  475. package/dist/src/utils/runtime-config.js.map +1 -0
  476. package/dist/src/utils/safe-fs.d.ts +21 -0
  477. package/dist/src/utils/safe-fs.js +111 -0
  478. package/dist/src/utils/safe-fs.js.map +1 -0
  479. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  480. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  481. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  482. package/dist/src/utils/sensitive-content.d.ts +4 -0
  483. package/dist/src/utils/sensitive-content.js +36 -0
  484. package/dist/src/utils/sensitive-content.js.map +1 -0
  485. package/dist/src/utils/state-paths.js +7 -2
  486. package/dist/src/utils/state-paths.js.map +1 -1
  487. package/dist/src/utils/target-eligibility.d.ts +8 -2
  488. package/dist/src/utils/target-eligibility.js +17 -8
  489. package/dist/src/utils/target-eligibility.js.map +1 -1
  490. package/dist/src/utils/windows-claude-shim.d.ts +7 -0
  491. package/dist/src/utils/windows-claude-shim.js +10 -0
  492. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  493. package/dist/src/utils/windows-npm-shim.d.ts +14 -0
  494. package/dist/src/utils/windows-npm-shim.js +140 -0
  495. package/dist/src/utils/windows-npm-shim.js.map +1 -0
  496. package/dist/vitest.config.js +92 -10
  497. package/dist/vitest.config.js.map +1 -1
  498. package/package.json +27 -18
  499. package/dist/authoring/scripts/check-plugin-versions.d.mts +0 -2
  500. package/dist/authoring/scripts/check-plugin-versions.mjs +0 -5
  501. package/dist/authoring/scripts/check-plugin-versions.mjs.map +0 -1
  502. package/dist/scripts/aw-skill-eval-engine.d.ts +0 -13
  503. package/dist/scripts/aw-skill-eval-engine.js +0 -31
  504. package/dist/scripts/aw-skill-eval-engine.js.map +0 -1
  505. package/dist/scripts/codex-eval-app-server.d.ts +0 -89
  506. package/dist/scripts/codex-eval-app-server.js +0 -1228
  507. package/dist/scripts/codex-eval-app-server.js.map +0 -1
  508. package/dist/scripts/codex-eval-isolation.d.ts +0 -61
  509. package/dist/scripts/codex-eval-isolation.js +0 -318
  510. package/dist/scripts/codex-eval-isolation.js.map +0 -1
  511. package/dist/scripts/codex-eval-process-management.d.ts +0 -8
  512. package/dist/scripts/codex-eval-process-management.js +0 -69
  513. package/dist/scripts/codex-eval-process-management.js.map +0 -1
  514. package/dist/scripts/codex-eval-process-tree.d.ts +0 -38
  515. package/dist/scripts/codex-eval-process-tree.js +0 -803
  516. package/dist/scripts/codex-eval-process-tree.js.map +0 -1
  517. package/dist/scripts/codex-eval-runtime-config.d.ts +0 -62
  518. package/dist/scripts/codex-eval-runtime-config.js +0 -843
  519. package/dist/scripts/codex-eval-runtime-config.js.map +0 -1
  520. package/dist/scripts/codex-trigger-eval.d.ts +0 -84
  521. package/dist/scripts/codex-trigger-eval.js +0 -968
  522. package/dist/scripts/codex-trigger-eval.js.map +0 -1
  523. package/dist/scripts/eval-plugin-skills-audited.d.ts +0 -6
  524. package/dist/scripts/eval-plugin-skills-audited.js +0 -261
  525. package/dist/scripts/eval-plugin-skills-audited.js.map +0 -1
  526. package/dist/scripts/eval-plugin-skills.d.ts +0 -45
  527. package/dist/scripts/eval-plugin-skills.js +0 -1586
  528. package/dist/scripts/eval-plugin-skills.js.map +0 -1
  529. package/dist/scripts/eval-run-layout.d.ts +0 -17
  530. package/dist/scripts/eval-run-layout.js +0 -26
  531. package/dist/scripts/eval-run-layout.js.map +0 -1
  532. package/dist/scripts/plugin-eval-contract.d.ts +0 -185
  533. package/dist/scripts/plugin-eval-contract.js +0 -695
  534. package/dist/scripts/plugin-eval-contract.js.map +0 -1
  535. package/dist/scripts/plugin-eval-materializer.d.ts +0 -13
  536. package/dist/scripts/plugin-eval-materializer.js +0 -421
  537. package/dist/scripts/plugin-eval-materializer.js.map +0 -1
  538. package/dist/scripts/skill-reporting.d.ts +0 -212
  539. package/dist/scripts/skill-reporting.js +0 -922
  540. package/dist/scripts/skill-reporting.js.map +0 -1
  541. package/dist/src/commands/status-v4.d.ts +0 -123
  542. package/dist/src/commands/status-v4.js +0 -905
  543. package/dist/src/commands/status-v4.js.map +0 -1
  544. package/dist/src/commands/status.d.ts +0 -93
  545. package/dist/src/commands/status.js +0 -442
  546. package/dist/src/commands/status.js.map +0 -1
  547. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +0 -12
  548. package/dist/src/utils/active-marketplace-runtime-lock.js +0 -133
  549. package/dist/src/utils/active-marketplace-runtime-lock.js.map +0 -1
  550. package/dist/src/utils/catalog-manifest-v3.d.ts +0 -2
  551. package/dist/src/utils/catalog-manifest-v3.js +0 -3
  552. package/dist/src/utils/catalog-manifest-v3.js.map +0 -1
  553. package/dist/src/utils/catalog-manifest-v4.d.ts +0 -5
  554. package/dist/src/utils/catalog-manifest-v4.js.map +0 -1
  555. package/dist/src/utils/catalog-source-cache.d.ts +0 -62
  556. package/dist/src/utils/catalog-source-cache.js +0 -296
  557. package/dist/src/utils/catalog-source-cache.js.map +0 -1
  558. package/dist/src/utils/codex-project-surface.d.ts +0 -3
  559. package/dist/src/utils/codex-project-surface.js +0 -49
  560. package/dist/src/utils/codex-project-surface.js.map +0 -1
  561. package/dist/src/utils/lifecycle-active-store.d.ts +0 -175
  562. package/dist/src/utils/lifecycle-active-store.js +0 -1276
  563. package/dist/src/utils/lifecycle-active-store.js.map +0 -1
  564. package/dist/src/utils/plugin-release.d.ts +0 -2
  565. package/dist/src/utils/plugin-release.js +0 -2
  566. package/dist/src/utils/plugin-release.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-content.js","sourceRoot":"","sources":["../../../src/tui/plugin-content.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AA0CzE,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAC;AACxC,MAAM,UAAU,GAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AAEjF,SAAS,WAAW,CAAC,WAAmB,EAAE,KAAc;IACtD,MAAM,eAAe,GAAG,wBAAwB,CAAC,WAAW,CAAC;SAC1D,OAAO,CAAC,4EAA4E,EAAE,GAAG,CAAC;SAC1F,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe;QACtC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC;IACpF,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;AACtF,CAAC;AAED,SAAS,SAAS,CAAC,KAA0B;IAC3C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,SAAiB;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;WAChD,QAAQ,KAAK,IAAI;WACjB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAiB,EAAE,IAA0B;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAwB,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;YAAE,OAAO,IAAI,CAAC;IACpD,CAAC;IACD,KAAK,KAAK,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/D,OAAO,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,SAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnF,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBACvD,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,OAAO,KAAK,OAAO,CAAC;YAAE,OAAO,YAAY,CAAC;IACnG,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,IAAY,EACZ,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;gBAC/C,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB;aACpD,EAAE,CAAC;IACN,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,OAAO,KAAK,GAAG,qBAAqB,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,qBAAqB,GAAG,KAAK,CAAC,CAAC,CAAC;YAC1E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3C,KAAK,IAAI,SAAS,CAAC;YACnB,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,cAAc,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;eACrE,CAAC,UAAU,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAC1D,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC3F,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB;iBAC5D,EAAE,CAAC;QACJ,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClG,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC7E,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB;iBACvD,EAAE,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC/C,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB;iBACvD,EAAE,CAAC;QACN,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAC3D,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC;QAC5C,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACjE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC/C,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB;iBACvD,EAAE,CAAC;QACN,CAAC;QACD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;SAC/F,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;gBAC/C,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB;aACpD,EAAE,CAAC;IACN,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,IAAY,EACZ,SAAiB;IAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjC,IAAI,EAAE,OAAO,EAAE,mCAAmC;aACnD,EAAE,CAAC;IACN,CAAC;IACD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iCAAiC;aAC/D,EAAE,CAAC;IACN,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACxC,IAAI,IAAI,GAAG,qBAAqB;YAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBACnE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oCAAoC;iBACvE,EAAE,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,IAAI,EAAE,CAAC;YACpB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5E,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;wBACtD,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mCAAmC;qBACjE,EAAE,CAAC;YACJ,KAAK,IAAI,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YACtF,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAChE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBACjC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kCAAkC;iBACrE,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/F,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBACjC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gCAAgC;iBACnE,EAAE,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;oBACjF,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kCAAkC;iBACrE,EAAE,CAAC;QACJ,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kCAAkC;aACrE,EAAE,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iCAAiC;aAC/D,EAAE,CAAC;IACN,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CACd,KAAqC,EACrC,IAAuB;IAEvB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC;QACnC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAChF,OAAO,CAAC,gBAAgB,GAAG,WAAW,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA4B,EAAE,KAAyB;IAC/E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAShC;IACC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;IACpH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACpG,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,sBAAsB;SACrD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,yBAAyB;SACtE,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,wBAAwB;aACrE,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QACvG,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvF,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,0BAA0B;aACzD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;eACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACnF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB;eAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;eACvE,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC;QAC3F,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;YAChG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;YAClG,CAAC,CAAC,MAAM,0BAA0B,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAChE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;oBACvC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,0BAA0B;iBACzD,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY;YACrE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QACtC,IAAI,eAAe,EAAE,CAAC;YACpB,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS;oBACjC,CAAC,CAAC,6CAA6C;oBAC/C,CAAC,CAAC,+EAA+E;aACpF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM;YAChD,CAAC,CAAC,MAAM,2BAA2B,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,KAAK,KAAK,OAAO,EAAE,KAAK,CAAC;QACzB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;QAC9D,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;YACrB,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI;YACJ,WAAW;YACX,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACrB,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACxE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAQhC;IACC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1G,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACpG,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,gBAAgB;SAC/D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,kBAAkB;SAC/E,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,kBAAkB;SACnF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;YACrB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;YAC7B,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACrB,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAK/B;IACC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CACvC,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC7C,WAAW,CACZ,CAAC;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QACpG,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,OAAO,EAAE,6BAA6B;SAC7C,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gCAAgC;SAC9D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,SAAS;QACjD,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iCAAiC;aAC/D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;YACrF,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,+BAA+B;aAC7D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAwB,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;eAChC,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACrE,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,OAAO,EAAE,yCAAyC;aACzD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/F,IAAI,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;gBACrF,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;oBACrB,EAAE,EAAE,SAAS,IAAI,EAAE;oBACnB,IAAI;oBACJ,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,CAAC,OAAO,CAAC;oBAChB,gBAAgB,EAAE,OAAO;oBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,+BAA+B,EAAE;iBACxE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACjG,MAAM,gBAAgB,GAAG,YAAY;YACnC,CAAC,CAAC,MAAM,2BAA2B,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,MAAM,WAAW,GAAG,gBAAgB,EAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;QACzE,MAAM,KAAK,GAAG,gBAAgB,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACvD,IAAI,YAAY;YAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;YACrB,EAAE,EAAE,WAAW,IAAI,EAAE;YACrB,IAAI;YACJ,IAAI,EAAE,SAAS;YACf,WAAW;YACX,KAAK;YACL,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACxE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,aAAa,CAAC;IACvD,IAAI,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,cAAc,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,MAAM,KAAK,kCAAkC;QAAE,OAAO,aAAa,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CACxB,KAA0B,EAC1B,SAAiD;IAEjD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC;QACvD,IAAI,IAAI,KAAK,aAAa;YAAE,OAAO,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,IAAI,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChH,IAAI,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,OAIlD;IACC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,GAAG,+BAA+B,CAAC;QAChD,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO;YAC9C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,aAAa;YACvB,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE;SAC/C,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IACnD,MAAM,cAAc,GAAyB,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI;QAC7B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACrC,EAAE,CAAC;QACX,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,SAAS,EAAE,aAAa,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,gBAAgB,CAAC,cAAc,EAAE;YAC/B,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,oBAAoB;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;WACnE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;WAClE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;WAC3B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAEtG,IAAI,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;QAC1C,gBAAgB,CAAC,cAAc,EAAE;YAC/B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,4DAA4D;SACtE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/E,MAAM,gBAAgB,CAAC;YACrB,IAAI;YACJ,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrC,KAAK;YACL,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,MAAM,iBAAiB,CAAC;gBACtB,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc;aAChF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,iBAAiB,CAAC;gBACtB,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc;gBACxE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;uBAC7D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzD,MAAM,iBAAiB,CAAC;YACtB,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc;YACxE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC5C,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;WACnE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1E,MAAM,iBAAiB,CAAC;YACtB,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc;YACxE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC5C,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAC/D,MAAM,iBAAiB,CAAC;YACtB,IAAI,EAAE,YAAY,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc;SACvF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,iBAAiB,CAAC;gBACtB,IAAI;gBACJ,YAAY,EAAE,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;gBACpH,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,WAAW;gBACjB,IAAI;gBACJ,KAAK;gBACL,cAAc;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,MAAM,iBAAiB,CAAC;YACtB,IAAI;YACJ,YAAY,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;YAC3E,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,OAAO;YACb,KAAK;YACL,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACrE,OAAO,CAAC,KAAK,EAAE;YACb,EAAE,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI;YAC7C,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;YACzD,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;SACpE,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC;QACjF,OAAO,CAAC,KAAK,EAAE;YACb,EAAE,EAAE,eAAe,WAAW,CAAC,IAAI,EAAE;YACrC,IAAI,EAAE,WAAW,CAAC,KAAK;YACvB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC;YAC/D,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC;QAC/E,OAAO,CAAC,KAAK,EAAE;YACb,EAAE,EAAE,cAAc,UAAU,CAAC,IAAI,EAAE;YACnC,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC;YAC9D,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3E,OAAO,CAAC,KAAK,EAAE;YACb,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;YAC9C,IAAI;YACJ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;YACxD,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3E,OAAO,CAAC,KAAK,EAAE;gBACb,EAAE,EAAE,QAAQ,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;gBAC1D,IAAI;gBACJ,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,gBAAgB,EAAE,QAAQ;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,KAAqC,CAAC;QAC1C,IAAI,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAC5D,IAAI,EACJ,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,EAAE,EACT,GAAG,EACH,UAAU,CACX,CAAC,CAAC;YACH,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CACpD,IAAI,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CACxF,CAAC,CAAC;gBACH,IAAI,IAAI,KAAK,gBAAgB;oBAAE,KAAK,GAAG;wBACrC,IAAI,EAAE,OAAO,EAAE,qBAAqB;qBACrC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,EAAE;YACb,EAAE,EAAE,YAAY,MAAM,CAAC,EAAE,EAAE;YAC3B,IAAI;YACJ,IAAI;YACJ,WAAW;YACX,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACxE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACtD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO;QAC9C,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,MAAM;QACb,OAAO;QACP,QAAQ;QACR,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { PlatformName, Scope } from '../types.js';
2
+ import { type StatusTargetRevision, type StatusV8Payload, type StatusV8PluginSummary, type StatusV8State } from '../commands/status-v6.js';
3
+ import { type PluginDependencyOverviewViewModel, type PluginListItemViewModel } from './model.js';
4
+ import type { ProjectInventoryState, ProjectInventoryViewModel } from './project-inventory.js';
5
+ export interface PluginDetailPlacement {
6
+ platform: PlatformName;
7
+ scope: Scope;
8
+ platformLabel: string;
9
+ scopeLabel: string;
10
+ statusState?: StatusV8State;
11
+ projectState?: ProjectInventoryState;
12
+ observation: 'known' | 'unknown';
13
+ declared: boolean;
14
+ actual: boolean;
15
+ sharedWithCurrentProject: boolean;
16
+ expectedVersion?: string;
17
+ installedVersion?: string;
18
+ reasonCodes: string[];
19
+ }
20
+ export interface PluginDetailRelation {
21
+ pluginId: string;
22
+ displayName: string;
23
+ declared: boolean;
24
+ verified: boolean;
25
+ }
26
+ export interface PluginDetailSubject {
27
+ pluginId: string;
28
+ sourceId: string;
29
+ displayName: string;
30
+ description?: string;
31
+ catalogVersion?: string;
32
+ definitionAvailable: boolean;
33
+ savedConfigScopes: Scope[];
34
+ /** Existing overview is retained only for actions that already accept it. */
35
+ plugin?: PluginListItemViewModel;
36
+ placements: PluginDetailPlacement[];
37
+ relations: {
38
+ outgoing: PluginDetailRelation[];
39
+ incoming: PluginDetailRelation[];
40
+ checkState: 'checked' | 'unknown';
41
+ hasKnownRelations: boolean;
42
+ };
43
+ }
44
+ export declare function buildPluginDetailSubject(options: {
45
+ pluginId: string;
46
+ status: StatusV8Payload;
47
+ pluginSummaries: readonly StatusV8PluginSummary[];
48
+ targetRevisions?: readonly StatusTargetRevision[];
49
+ plugins: readonly PluginListItemViewModel[];
50
+ projectInventory?: ProjectInventoryViewModel;
51
+ dependencyOverviews?: readonly PluginDependencyOverviewViewModel[];
52
+ }): PluginDetailSubject | undefined;
@@ -0,0 +1,165 @@
1
+ import { flattenStatusTargets, statusTargetActivation, statusTargetIntent, statusTargetOwnershipState, statusTargetSharedNative, } from '../commands/status-v6.js';
2
+ import { platformLabel, scopeLabel } from './glossary.js';
3
+ import { hasActualScopeEvidence } from './model.js';
4
+ function relationFacts(overviews) {
5
+ const facts = new Map();
6
+ const names = new Map();
7
+ const ids = new Set();
8
+ const add = (from, to, declared, verified) => {
9
+ if (!from || !to)
10
+ return;
11
+ ids.add(from);
12
+ ids.add(to);
13
+ const key = `${from}\0${to}`;
14
+ const old = facts.get(key);
15
+ facts.set(key, {
16
+ from,
17
+ to,
18
+ declared: declared || old?.declared === true,
19
+ verified: verified || old?.verified === true,
20
+ });
21
+ };
22
+ for (const overview of overviews) {
23
+ for (const item of [...overview.dependencies, ...overview.dependents]) {
24
+ ids.add(item.pluginId);
25
+ names.set(item.pluginId, item.displayName);
26
+ for (const parent of item.requiredBy) {
27
+ names.set(parent.pluginId, parent.displayName);
28
+ add(parent.pluginId, item.pluginId, true, false);
29
+ }
30
+ if (item.relation === 'direct' && item.requiredBy.length === 0) {
31
+ add(overview.pluginId, item.pluginId, true, false);
32
+ }
33
+ if (item.relation === 'dependent')
34
+ add(item.pluginId, overview.pluginId, true, false);
35
+ for (const reference of item.placementReferences ?? []) {
36
+ add(reference.consumer.pluginId, reference.dependency.pluginId, true, false);
37
+ }
38
+ for (const reference of item.availablePlacementReferences ?? []) {
39
+ add(reference.consumer.pluginId, reference.dependency.pluginId, true, true);
40
+ }
41
+ }
42
+ }
43
+ return { facts, names, ids };
44
+ }
45
+ export function buildPluginDetailSubject(options) {
46
+ const { pluginId } = options;
47
+ const summary = options.pluginSummaries.find((item) => item.pluginId === pluginId);
48
+ const plugin = options.plugins.find((item) => item.pluginId === pluginId);
49
+ const targets = flattenStatusTargets(options.status.targets)
50
+ .filter((target) => target.pluginId === pluginId);
51
+ const roots = [...(options.projectInventory?.declaredRoots ?? []),
52
+ ...(options.projectInventory?.extraInstalledRoots ?? [])]
53
+ .filter((root) => root.pluginId === pluginId);
54
+ const dependencies = [...(options.projectInventory?.declaredRoots ?? []),
55
+ ...(options.projectInventory?.extraInstalledRoots ?? [])]
56
+ .flatMap((root) => root.dependencies.filter((item) => item.pluginId === pluginId));
57
+ const graph = relationFacts(options.dependencyOverviews ?? []);
58
+ if (!summary && !plugin && targets.length === 0 && roots.length === 0
59
+ && dependencies.length === 0 && !graph.ids.has(pluginId))
60
+ return undefined;
61
+ const sourceId = plugin?.sourceId ?? targets[0]?.sourceId ?? roots[0]?.sourceId
62
+ ?? pluginId.slice(0, pluginId.indexOf('/'));
63
+ const displayName = summary?.displayName ?? summary?.pluginName ?? plugin?.displayName
64
+ ?? roots[0]?.displayName ?? dependencies[0]?.displayName ?? graph.names.get(pluginId)
65
+ ?? targets[0]?.pluginName ?? pluginId.split('/').at(-1) ?? pluginId;
66
+ const revisions = new Map((options.targetRevisions ?? [])
67
+ .filter((item) => item.pluginId === pluginId)
68
+ .map((item) => [`${item.platform}\0${item.scope}`, item.revision]));
69
+ const placements = new Map();
70
+ const ensure = (platform, scope) => {
71
+ const key = `${platform}\0${scope}`;
72
+ const current = placements.get(key);
73
+ if (current)
74
+ return current;
75
+ const placement = {
76
+ platform,
77
+ scope,
78
+ platformLabel: platformLabel(platform),
79
+ scopeLabel: scopeLabel(scope),
80
+ observation: 'unknown',
81
+ declared: false,
82
+ actual: false,
83
+ sharedWithCurrentProject: false,
84
+ reasonCodes: [],
85
+ };
86
+ placements.set(key, placement);
87
+ return placement;
88
+ };
89
+ for (const target of targets) {
90
+ const intent = statusTargetIntent(target);
91
+ const actual = hasActualScopeEvidence(target);
92
+ if (target.state === 'absent' && !actual && !intent.scopes.includes(target.scope))
93
+ continue;
94
+ const placement = ensure(target.platform, target.scope);
95
+ const unobserved = statusTargetSharedNative(target)?.state === 'unobserved'
96
+ || statusTargetActivation(target)?.evidence === 'unobserved'
97
+ || statusTargetOwnershipState(target) === 'error';
98
+ placement.statusState = target.state;
99
+ placement.observation = unobserved ? 'unknown' : 'known';
100
+ placement.declared = intent.scopes.includes(target.scope);
101
+ placement.actual = actual;
102
+ placement.reasonCodes = [...new Set([...target.reasons, ...(target.sharedReasons ?? [])]
103
+ .map((reason) => reason.code))];
104
+ const revision = revisions.get(`${target.platform}\0${target.scope}`);
105
+ if (revision?.installedVersion)
106
+ placement.installedVersion = revision.installedVersion;
107
+ }
108
+ for (const root of roots) {
109
+ for (const target of root.targets) {
110
+ const placement = ensure(target.platform, target.scope);
111
+ placement.projectState = target.state;
112
+ placement.declared ||= root.section === 'declared';
113
+ placement.sharedWithCurrentProject ||= target.location === 'sharedUser';
114
+ placement.reasonCodes = [...new Set([...placement.reasonCodes, ...target.reasonCodes])];
115
+ const revision = revisions.get(`${target.platform}\0${target.scope}`);
116
+ if (revision?.installedVersion)
117
+ placement.installedVersion = revision.installedVersion;
118
+ }
119
+ }
120
+ for (const dependency of dependencies) {
121
+ for (const target of dependency.targets) {
122
+ const placement = ensure(target.platform, target.scope);
123
+ placement.projectState = target.state;
124
+ placement.sharedWithCurrentProject ||= target.location === 'sharedUser';
125
+ placement.reasonCodes = [...new Set([...placement.reasonCodes, ...target.reasonCodes])];
126
+ const revision = revisions.get(`${target.platform}\0${target.scope}`);
127
+ if (revision?.installedVersion)
128
+ placement.installedVersion = revision.installedVersion;
129
+ }
130
+ }
131
+ const toRelation = (fact, otherId) => ({
132
+ pluginId: otherId,
133
+ displayName: graph.names.get(otherId) ?? otherId.split('/').at(-1) ?? otherId,
134
+ declared: fact.declared,
135
+ verified: fact.verified,
136
+ });
137
+ const known = [...graph.facts.values()];
138
+ const outgoing = known.filter((fact) => fact.from === pluginId)
139
+ .map((fact) => toRelation(fact, fact.to));
140
+ const incoming = known.filter((fact) => fact.to === pluginId)
141
+ .map((fact) => toRelation(fact, fact.from));
142
+ const overview = options.dependencyOverviews?.find((item) => item.pluginId === pluginId);
143
+ const source = options.status.catalog.sources.find((item) => item.id === sourceId);
144
+ const definitionAvailable = summary !== undefined && source !== undefined && !source.error;
145
+ return {
146
+ pluginId,
147
+ sourceId,
148
+ displayName,
149
+ ...(summary?.description ? { description: summary.description } : {}),
150
+ ...(summary?.version ? { catalogVersion: summary.version } : {}),
151
+ definitionAvailable,
152
+ savedConfigScopes: plugin?.savedConfigScopes ?? [],
153
+ ...(plugin ? { plugin } : {}),
154
+ placements: [...placements.values()].sort((left, right) => `${left.platform}\0${left.scope}`.localeCompare(`${right.platform}\0${right.scope}`, 'en')),
155
+ relations: {
156
+ outgoing,
157
+ incoming,
158
+ checkState: overview && definitionAvailable
159
+ && !overview.blockers.some((blocker) => blocker.code === 'dependencyGraphInvalid')
160
+ ? 'checked' : 'unknown',
161
+ hasKnownRelations: outgoing.length > 0 || incoming.length > 0,
162
+ },
163
+ };
164
+ }
165
+ //# sourceMappingURL=plugin-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-detail.js","sourceRoot":"","sources":["../../../src/tui/plugin-detail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { PlatformName, Scope } from '../types.js';
2
+ import type { PluginListItemViewModel, TuiViewModel } from './model.js';
3
+ import type { SafeOperationDiagnostic } from './operation-history.js';
4
+ export type PluginWriteTaskGoal = 'restore' | 'update';
5
+ export type PluginWriteTaskMethod = 'sync' | 'reinstall';
6
+ export interface PluginWriteTaskExpectedUpdate {
7
+ installedVersion: string;
8
+ activeVersion: string;
9
+ sourceIdentity: string;
10
+ generationKey: string;
11
+ }
12
+ export interface PluginWriteTaskTarget {
13
+ pluginId: string;
14
+ platform: PlatformName;
15
+ scope: Scope;
16
+ expectedUpdate?: PluginWriteTaskExpectedUpdate;
17
+ }
18
+ export interface PluginWriteTaskIntent {
19
+ kind: 'pluginWriteTask';
20
+ goal: PluginWriteTaskGoal;
21
+ targets: PluginWriteTaskTarget[];
22
+ executionPolicy: 'all' | 'executableSubset';
23
+ scriptTimeoutMs?: number;
24
+ }
25
+ export type PluginWriteTaskBlockReason = 'catalogActivationRequired' | 'updateEvidenceIncomplete' | 'updateIncompatible' | 'restoreVersionChanged' | 'restoreVersionUnverified' | 'manualRecoveryRequired' | 'taskActionConflict' | 'targetUnavailable';
26
+ export interface PluginWriteTaskCandidate {
27
+ target: PluginWriteTaskTarget;
28
+ displayName: string;
29
+ sourceId: string;
30
+ eligible: boolean;
31
+ blockReason?: PluginWriteTaskBlockReason;
32
+ recommendedMethod?: PluginWriteTaskMethod;
33
+ issueIds: string[];
34
+ }
35
+ export interface PluginWriteTaskCause {
36
+ causeKey: string;
37
+ issueId: string;
38
+ sourceId: string;
39
+ sourceIdentity: string;
40
+ repairTarget: Omit<PluginWriteTaskTarget, 'expectedUpdate'>;
41
+ method: PluginWriteTaskMethod;
42
+ consumers: Array<Omit<PluginWriteTaskTarget, 'expectedUpdate'>>;
43
+ restoreVersionEvidence?: {
44
+ state: 'preserved' | 'absent';
45
+ activeVersion: string;
46
+ installedVersion?: string;
47
+ };
48
+ }
49
+ export interface PluginWriteTaskBlockedTarget {
50
+ target: PluginWriteTaskTarget;
51
+ reason: PluginWriteTaskBlockReason;
52
+ issueIds: string[];
53
+ errorCodes?: string[];
54
+ diagnostics?: SafeOperationDiagnostic[];
55
+ }
56
+ export interface PluginWriteTaskDraft {
57
+ requestedTargets: PluginWriteTaskTarget[];
58
+ executableTargets: PluginWriteTaskTarget[];
59
+ causes: PluginWriteTaskCause[];
60
+ blockedTargets: PluginWriteTaskBlockedTarget[];
61
+ }
62
+ export declare function pluginWriteTaskVersionEvidence(plugin: PluginListItemViewModel, candidates: readonly PluginWriteTaskCandidate[]): Record<string, string>;
63
+ export declare function evaluatePluginWriteTaskRestoreVersion(target: Omit<PluginWriteTaskTarget, 'expectedUpdate'>, allowAbsent: boolean, model: Pick<TuiViewModel, 'plugins'>): {
64
+ evidence?: PluginWriteTaskCause['restoreVersionEvidence'];
65
+ blockReason?: 'restoreVersionChanged' | 'restoreVersionUnverified' | 'manualRecoveryRequired';
66
+ };
67
+ export declare function buildPluginWriteTaskCandidates(model: Pick<TuiViewModel, 'plugins' | 'issues'>, goal: PluginWriteTaskGoal): PluginWriteTaskCandidate[];
68
+ export declare function buildPluginWriteTaskDraft(intent: PluginWriteTaskIntent, model: Pick<TuiViewModel, 'plugins' | 'issues'>, providedCandidates?: readonly PluginWriteTaskCandidate[]): PluginWriteTaskDraft;
69
+ export declare function pluginWriteTaskTargetKey(target: Pick<PluginWriteTaskTarget, 'pluginId' | 'platform' | 'scope'>): string;
@@ -0,0 +1,286 @@
1
+ function targetKey(target) {
2
+ return [target.pluginId, target.platform, target.scope].join('\0');
3
+ }
4
+ export function pluginWriteTaskVersionEvidence(plugin, candidates) {
5
+ return Object.fromEntries(candidates.flatMap((candidate) => {
6
+ const update = plugin.update.targets.find((target) => target.platform === candidate.target.platform && target.scope === candidate.target.scope);
7
+ const version = candidate.target.expectedUpdate?.activeVersion
8
+ ?? update?.candidateVersion ?? update?.availableVersion;
9
+ if (!version)
10
+ return [];
11
+ const candidateEvidence = update?.candidateVersion === version
12
+ ? update.candidateEvidence : undefined;
13
+ const binding = candidateEvidence ?? plugin.update.generationKey;
14
+ return [[targetKey(candidate.target), JSON.stringify({
15
+ version,
16
+ ...(plugin.update.sourceIdentity ? { sourceIdentity: plugin.update.sourceIdentity } : {}),
17
+ ...(binding ? { binding } : {}),
18
+ })]];
19
+ }));
20
+ }
21
+ function canonicalTargets(targets) {
22
+ return [...new Map(targets.map((target) => [targetKey(target), structuredClone(target)])).values()]
23
+ .sort((left, right) => targetKey(left).localeCompare(targetKey(right), 'en'));
24
+ }
25
+ function exactTarget(target) {
26
+ return { pluginId: target.pluginId, platform: target.platform, scope: target.scope };
27
+ }
28
+ function issueConsumers(issue) {
29
+ const affected = issue.affectedTargets ?? [];
30
+ if (affected.length > 0) {
31
+ return canonicalTargets(affected.map((target) => ({
32
+ pluginId: target.pluginId,
33
+ platform: target.platform,
34
+ scope: target.scope,
35
+ }))).map(exactTarget);
36
+ }
37
+ const root = issue.rootEntity
38
+ ?? (issue.pluginId && issue.platform && issue.scope
39
+ ? { pluginId: issue.pluginId, platform: issue.platform, scope: issue.scope }
40
+ : undefined);
41
+ return root ? [root] : [];
42
+ }
43
+ function issueMethod(issue) {
44
+ for (const action of issue.actions) {
45
+ if (action.writeAction === 'sync')
46
+ return 'sync';
47
+ if (action.writeAction === 'reinstall')
48
+ return 'reinstall';
49
+ if (action.writeAction === 'install' && issue.dependencyPluginId)
50
+ return 'sync';
51
+ }
52
+ return undefined;
53
+ }
54
+ function issueRepairTarget(issue) {
55
+ if (issue.dependencyPluginId && issue.dependencyPlatform && issue.dependencyScope) {
56
+ return {
57
+ pluginId: issue.dependencyPluginId,
58
+ platform: issue.dependencyPlatform,
59
+ scope: issue.dependencyScope,
60
+ };
61
+ }
62
+ return issue.rootEntity
63
+ ?? (issue.pluginId && issue.platform && issue.scope
64
+ ? { pluginId: issue.pluginId, platform: issue.platform, scope: issue.scope }
65
+ : undefined);
66
+ }
67
+ export function evaluatePluginWriteTaskRestoreVersion(target, allowAbsent, model) {
68
+ const plugin = model.plugins.find((candidate) => candidate.pluginId === target.pluginId);
69
+ const revision = plugin?.update.targets.find((candidate) => candidate.platform === target.platform && candidate.scope === target.scope);
70
+ const installedInOtherScope = plugin?.update.targets.find((candidate) => candidate.platform === target.platform
71
+ && candidate.scope !== target.scope
72
+ && candidate.installedVersion !== undefined);
73
+ if (revision?.installedVersion) {
74
+ if (!revision.activeVersion)
75
+ return { blockReason: 'restoreVersionUnverified' };
76
+ if (revision.installedVersion !== revision.activeVersion) {
77
+ return { blockReason: 'restoreVersionChanged' };
78
+ }
79
+ return {
80
+ evidence: {
81
+ state: 'preserved',
82
+ installedVersion: revision.installedVersion,
83
+ activeVersion: revision.activeVersion,
84
+ },
85
+ };
86
+ }
87
+ if (installedInOtherScope) {
88
+ const activeVersion = revision?.activeVersion ?? plugin?.version;
89
+ return activeVersion && installedInOtherScope.installedVersion !== activeVersion
90
+ ? { blockReason: 'restoreVersionChanged' }
91
+ : { blockReason: 'manualRecoveryRequired' };
92
+ }
93
+ const activeVersion = revision?.activeVersion ?? plugin?.version;
94
+ return allowAbsent && activeVersion
95
+ ? { evidence: { state: 'absent', activeVersion } }
96
+ : { blockReason: 'restoreVersionUnverified' };
97
+ }
98
+ function restoreIssueVersionEvidence(issue, model) {
99
+ const repairTarget = issueRepairTarget(issue);
100
+ return repairTarget
101
+ ? evaluatePluginWriteTaskRestoreVersion(repairTarget, issue.category === 'dependencyMissing', model).evidence
102
+ : undefined;
103
+ }
104
+ function restoreIssueVersionBlockReason(issue, model) {
105
+ const repairTarget = issueRepairTarget(issue);
106
+ return repairTarget
107
+ ? evaluatePluginWriteTaskRestoreVersion(repairTarget, issue.category === 'dependencyMissing', model).blockReason
108
+ : 'restoreVersionUnverified';
109
+ }
110
+ function restoreCandidate(options) {
111
+ const matchingIssues = options.issues.filter((issue) => issueConsumers(issue)
112
+ .some((consumer) => targetKey(consumer) === targetKey(options.target)));
113
+ const actionable = matchingIssues.map((issue) => issueMethod(issue));
114
+ const update = options.plugin.update.targets.find((candidate) => candidate.platform === options.target.platform && candidate.scope === options.target.scope);
115
+ let blockReason;
116
+ if (!update?.installedVersion || !update.activeVersion)
117
+ blockReason = 'restoreVersionUnverified';
118
+ else if (update.installedVersion !== update.activeVersion)
119
+ blockReason = 'restoreVersionChanged';
120
+ else {
121
+ blockReason = matchingIssues.map((issue) => restoreIssueVersionBlockReason(issue, options.model))
122
+ .find((reason) => reason !== undefined);
123
+ }
124
+ if (!blockReason && (matchingIssues.length === 0 || actionable.some((method) => method === undefined))) {
125
+ blockReason = 'manualRecoveryRequired';
126
+ }
127
+ if (!blockReason && matchingIssues.some((issue) => issue.actions.some((action) => (action.writeAction === 'sync' || action.writeAction === 'reinstall')
128
+ && action.pluginId === options.target.pluginId && action.scope !== options.target.scope))) {
129
+ blockReason = 'manualRecoveryRequired';
130
+ }
131
+ const methods = new Set(actionable.filter((method) => Boolean(method)));
132
+ return {
133
+ target: options.target,
134
+ displayName: options.plugin.displayName,
135
+ sourceId: options.plugin.sourceId,
136
+ eligible: blockReason === undefined,
137
+ ...(blockReason ? { blockReason } : {}),
138
+ ...(methods.has('reinstall') ? { recommendedMethod: 'reinstall' }
139
+ : methods.has('sync') ? { recommendedMethod: 'sync' } : {}),
140
+ issueIds: matchingIssues.map((issue) => issue.issueId).sort((left, right) => left.localeCompare(right, 'en')),
141
+ };
142
+ }
143
+ function updateCandidate(options) {
144
+ const update = options.plugin.update.targets.find((candidate) => candidate.platform === options.platform && candidate.scope === options.scope);
145
+ let blockReason;
146
+ if (update.requiresCatalogActivation)
147
+ blockReason = 'catalogActivationRequired';
148
+ else if (update.eligibility === 'incompatible')
149
+ blockReason = 'updateIncompatible';
150
+ else if (!update.installedVersion || !update.availableVersion
151
+ || !options.plugin.update.sourceIdentity || !options.plugin.update.generationKey) {
152
+ blockReason = 'updateEvidenceIncomplete';
153
+ }
154
+ const expectedUpdate = blockReason === undefined ? {
155
+ installedVersion: update.installedVersion,
156
+ activeVersion: update.availableVersion,
157
+ sourceIdentity: options.plugin.update.sourceIdentity,
158
+ generationKey: options.plugin.update.generationKey,
159
+ } : undefined;
160
+ return {
161
+ target: {
162
+ pluginId: options.plugin.pluginId,
163
+ platform: options.platform,
164
+ scope: options.scope,
165
+ ...(expectedUpdate ? { expectedUpdate } : {}),
166
+ },
167
+ displayName: options.plugin.displayName,
168
+ sourceId: options.plugin.sourceId,
169
+ eligible: blockReason === undefined,
170
+ ...(blockReason ? { blockReason } : {}),
171
+ recommendedMethod: update.eligibility === 'needsRepair' ? 'reinstall' : 'sync',
172
+ issueIds: [],
173
+ };
174
+ }
175
+ export function buildPluginWriteTaskCandidates(model, goal) {
176
+ if (goal === 'update') {
177
+ return model.plugins.flatMap((plugin) => plugin.update.targets
178
+ .filter((target) => target.availableVersion !== undefined)
179
+ .map((target) => updateCandidate({
180
+ plugin,
181
+ platform: target.platform,
182
+ scope: target.scope,
183
+ }))).sort((left, right) => targetKey(left.target).localeCompare(targetKey(right.target), 'en'));
184
+ }
185
+ const candidates = new Map();
186
+ for (const issue of model.issues) {
187
+ for (const target of issueConsumers(issue)) {
188
+ const plugin = model.plugins.find((candidate) => candidate.pluginId === target.pluginId);
189
+ if (!plugin)
190
+ continue;
191
+ candidates.set(targetKey(target), restoreCandidate({
192
+ plugin,
193
+ target,
194
+ issues: model.issues,
195
+ model,
196
+ }));
197
+ }
198
+ }
199
+ return [...candidates.values()].sort((left, right) => targetKey(left.target).localeCompare(targetKey(right.target), 'en'));
200
+ }
201
+ export function buildPluginWriteTaskDraft(intent, model, providedCandidates) {
202
+ const requestedTargets = canonicalTargets(intent.targets);
203
+ const candidates = new Map((providedCandidates ?? buildPluginWriteTaskCandidates(model, intent.goal))
204
+ .map((candidate) => [targetKey(candidate.target), candidate]));
205
+ const blockedTargets = [];
206
+ const executableTargets = [];
207
+ for (const target of requestedTargets) {
208
+ const candidate = candidates.get(targetKey(target));
209
+ const expectedMatches = intent.goal !== 'update' || JSON.stringify(target.expectedUpdate)
210
+ === JSON.stringify(candidate?.target.expectedUpdate);
211
+ if (!candidate || !candidate.eligible || !expectedMatches) {
212
+ blockedTargets.push({
213
+ target,
214
+ reason: candidate?.blockReason ?? (expectedMatches
215
+ ? 'targetUnavailable' : 'updateEvidenceIncomplete'),
216
+ issueIds: candidate?.issueIds ?? [],
217
+ });
218
+ continue;
219
+ }
220
+ executableTargets.push(target);
221
+ }
222
+ const executableKeys = new Set(executableTargets.map(targetKey));
223
+ const causes = new Map();
224
+ if (intent.goal === 'update') {
225
+ for (const target of executableTargets) {
226
+ const candidate = candidates.get(targetKey(target));
227
+ const sourceIdentity = target.expectedUpdate.sourceIdentity;
228
+ const causeKey = ['update', sourceIdentity, targetKey(target),
229
+ target.expectedUpdate.activeVersion].join('\0');
230
+ causes.set(causeKey, {
231
+ causeKey,
232
+ issueId: causeKey,
233
+ sourceId: candidate.sourceId,
234
+ sourceIdentity,
235
+ repairTarget: exactTarget(target),
236
+ method: candidate.recommendedMethod,
237
+ consumers: [exactTarget(target)],
238
+ });
239
+ }
240
+ }
241
+ else {
242
+ for (const issue of model.issues) {
243
+ const consumers = issueConsumers(issue).filter((target) => executableKeys.has(targetKey(target)));
244
+ const repairTarget = issueRepairTarget(issue);
245
+ const method = issueMethod(issue);
246
+ if (consumers.length === 0 || !repairTarget || !method || !issue.sourceIdentity || !issue.sourceId)
247
+ continue;
248
+ const causeKey = [issue.issueId, issue.sourceIdentity, targetKey(repairTarget)].join('\0');
249
+ const current = causes.get(causeKey);
250
+ if (current && current.method !== method) {
251
+ for (const consumer of consumers) {
252
+ executableKeys.delete(targetKey(consumer));
253
+ blockedTargets.push({
254
+ target: requestedTargets.find((target) => targetKey(target) === targetKey(consumer)),
255
+ reason: 'taskActionConflict',
256
+ issueIds: [issue.issueId],
257
+ });
258
+ }
259
+ causes.delete(causeKey);
260
+ continue;
261
+ }
262
+ causes.set(causeKey, {
263
+ causeKey,
264
+ issueId: issue.issueId,
265
+ sourceId: issue.sourceId,
266
+ sourceIdentity: issue.sourceIdentity,
267
+ repairTarget,
268
+ method,
269
+ consumers: canonicalTargets([...(current?.consumers ?? []), ...consumers]).map(exactTarget),
270
+ restoreVersionEvidence: restoreIssueVersionEvidence(issue, model),
271
+ });
272
+ }
273
+ }
274
+ const finalExecutable = executableTargets.filter((target) => executableKeys.has(targetKey(target)));
275
+ return {
276
+ requestedTargets,
277
+ executableTargets: finalExecutable,
278
+ causes: [...causes.values()].filter((cause) => cause.consumers.some((consumer) => executableKeys.has(targetKey(consumer)))).sort((left, right) => left.causeKey.localeCompare(right.causeKey, 'en')),
279
+ blockedTargets: [...new Map(blockedTargets.map((blocked) => [targetKey(blocked.target), blocked]))
280
+ .values()].sort((left, right) => targetKey(left.target).localeCompare(targetKey(right.target), 'en')),
281
+ };
282
+ }
283
+ export function pluginWriteTaskTargetKey(target) {
284
+ return targetKey(target);
285
+ }
286
+ //# sourceMappingURL=plugin-write-task.js.map