@lesliechan721/aw 0.1.0-beta.4 → 0.1.0-beta.41

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/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-version-check.d.mts +15 -0
  11. package/dist/authoring/scripts/lib/plugin-version-check.mjs +239 -232
  12. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  13. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +77 -90
  14. package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -120
  15. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
  16. package/dist/authoring/scripts/plugin-status.mjs +8 -11
  17. package/dist/authoring/scripts/plugin-status.mjs.map +1 -1
  18. package/dist/authoring/scripts/remove-plugin.mjs +367 -0
  19. package/dist/authoring/scripts/remove-plugin.mjs.map +1 -0
  20. package/dist/authoring/scripts/validate-plugin.mjs +353 -1175
  21. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  22. package/dist/scripts/aw-skill-eval-materializer.d.ts +26 -0
  23. package/dist/scripts/aw-skill-eval-materializer.js +306 -0
  24. package/dist/scripts/aw-skill-eval-materializer.js.map +1 -0
  25. package/dist/scripts/bundle-plugins.d.ts +1 -2
  26. package/dist/scripts/bundle-plugins.js +24 -7
  27. package/dist/scripts/bundle-plugins.js.map +1 -1
  28. package/dist/scripts/plugin-staging.d.ts +7 -24
  29. package/dist/scripts/plugin-staging.js +22 -142
  30. package/dist/scripts/plugin-staging.js.map +1 -1
  31. package/dist/scripts/test-plugin-scripts.d.ts +2 -0
  32. package/dist/scripts/test-plugin-scripts.js +30 -75
  33. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  34. package/dist/src/adapters/helpers.js +2 -2
  35. package/dist/src/adapters/helpers.js.map +1 -1
  36. package/dist/src/authoring/workspace-commands.d.ts +26 -2
  37. package/dist/src/authoring/workspace-commands.js +44 -19
  38. package/dist/src/authoring/workspace-commands.js.map +1 -1
  39. package/dist/src/commands/aw-capabilities.d.ts +78 -0
  40. package/dist/src/commands/aw-capabilities.js +263 -0
  41. package/dist/src/commands/aw-capabilities.js.map +1 -0
  42. package/dist/src/commands/catalog-dev-source.d.ts +154 -0
  43. package/dist/src/commands/catalog-dev-source.js +655 -0
  44. package/dist/src/commands/catalog-dev-source.js.map +1 -0
  45. package/dist/src/commands/catalog-generation.d.ts +21 -0
  46. package/dist/src/commands/catalog-generation.js +9 -0
  47. package/dist/src/commands/catalog-generation.js.map +1 -0
  48. package/dist/src/commands/catalog-publication-inspection.d.ts +138 -0
  49. package/dist/src/commands/catalog-publication-inspection.js +757 -0
  50. package/dist/src/commands/catalog-publication-inspection.js.map +1 -0
  51. package/dist/src/commands/catalog-publication-journal.d.ts +68 -0
  52. package/dist/src/commands/catalog-publication-journal.js +292 -0
  53. package/dist/src/commands/catalog-publication-journal.js.map +1 -0
  54. package/dist/src/commands/catalog-publication-target.d.ts +18 -0
  55. package/dist/src/commands/catalog-publication-target.js +95 -0
  56. package/dist/src/commands/catalog-publication-target.js.map +1 -0
  57. package/dist/src/commands/catalog-publish.d.ts +77 -7
  58. package/dist/src/commands/catalog-publish.js +746 -316
  59. package/dist/src/commands/catalog-publish.js.map +1 -1
  60. package/dist/src/commands/catalog-source.d.ts +60 -22
  61. package/dist/src/commands/catalog-source.js +311 -91
  62. package/dist/src/commands/catalog-source.js.map +1 -1
  63. package/dist/src/commands/catalog-status.d.ts +56 -0
  64. package/dist/src/commands/catalog-status.js +217 -0
  65. package/dist/src/commands/catalog-status.js.map +1 -0
  66. package/dist/src/commands/catalog-store.d.ts +104 -0
  67. package/dist/src/commands/catalog-store.js +685 -0
  68. package/dist/src/commands/catalog-store.js.map +1 -0
  69. package/dist/src/commands/catalog-workspace-resolution.d.ts +13 -0
  70. package/dist/src/commands/catalog-workspace-resolution.js +42 -0
  71. package/dist/src/commands/catalog-workspace-resolution.js.map +1 -0
  72. package/dist/src/commands/console.js +28 -17
  73. package/dist/src/commands/console.js.map +1 -1
  74. package/dist/src/commands/dependency-operation-plan.d.ts +52 -15
  75. package/dist/src/commands/dependency-operation-plan.js +289 -7
  76. package/dist/src/commands/dependency-operation-plan.js.map +1 -1
  77. package/dist/src/commands/init.d.ts +5 -11
  78. package/dist/src/commands/init.js +30 -51
  79. package/dist/src/commands/init.js.map +1 -1
  80. package/dist/src/commands/offline-cleanup-evidence.d.ts +67 -0
  81. package/dist/src/commands/offline-cleanup-evidence.js +181 -0
  82. package/dist/src/commands/offline-cleanup-evidence.js.map +1 -0
  83. package/dist/src/commands/operation-plan.d.ts +146 -0
  84. package/dist/src/commands/operation-plan.js +71 -0
  85. package/dist/src/commands/operation-plan.js.map +1 -0
  86. package/dist/src/commands/operation-planner.d.ts +46 -0
  87. package/dist/src/commands/operation-planner.js +141 -0
  88. package/dist/src/commands/operation-planner.js.map +1 -0
  89. package/dist/src/commands/options.d.ts +9 -7
  90. package/dist/src/commands/options.js +83 -21
  91. package/dist/src/commands/options.js.map +1 -1
  92. package/dist/src/commands/plugin-capabilities.d.ts +22 -0
  93. package/dist/src/commands/plugin-capabilities.js +163 -0
  94. package/dist/src/commands/plugin-capabilities.js.map +1 -0
  95. package/dist/src/commands/rebuild-command.d.ts +78 -30
  96. package/dist/src/commands/rebuild-command.js +4877 -713
  97. package/dist/src/commands/rebuild-command.js.map +1 -1
  98. package/dist/src/commands/rebuild-integration.d.ts +132 -21
  99. package/dist/src/commands/rebuild-integration.js +2853 -1327
  100. package/dist/src/commands/rebuild-integration.js.map +1 -1
  101. package/dist/src/commands/rebuild-operations.d.ts +58 -30
  102. package/dist/src/commands/rebuild-operations.js +260 -319
  103. package/dist/src/commands/rebuild-operations.js.map +1 -1
  104. package/dist/src/commands/reconcile-operation-plan.d.ts +28 -0
  105. package/dist/src/commands/reconcile-operation-plan.js +47 -0
  106. package/dist/src/commands/reconcile-operation-plan.js.map +1 -0
  107. package/dist/src/commands/review-inspection.d.ts +228 -0
  108. package/dist/src/commands/review-inspection.js +1341 -0
  109. package/dist/src/commands/review-inspection.js.map +1 -0
  110. package/dist/src/commands/review-preparation.d.ts +49 -0
  111. package/dist/src/commands/review-preparation.js +427 -0
  112. package/dist/src/commands/review-preparation.js.map +1 -0
  113. package/dist/src/commands/runtime.d.ts +1 -5
  114. package/dist/src/commands/runtime.js +24 -50
  115. package/dist/src/commands/runtime.js.map +1 -1
  116. package/dist/src/commands/skill-eval.d.ts +39 -0
  117. package/dist/src/commands/skill-eval.js +400 -0
  118. package/dist/src/commands/skill-eval.js.map +1 -0
  119. package/dist/src/commands/status-v6.d.ts +279 -0
  120. package/dist/src/commands/status-v6.js +2787 -0
  121. package/dist/src/commands/status-v6.js.map +1 -0
  122. package/dist/src/commands/sync-command.d.ts +40 -0
  123. package/dist/src/commands/sync-command.js +250 -0
  124. package/dist/src/commands/sync-command.js.map +1 -0
  125. package/dist/src/commands/wizard.d.ts +8 -5
  126. package/dist/src/commands/wizard.js +6 -4
  127. package/dist/src/commands/wizard.js.map +1 -1
  128. package/dist/src/commands/write-commands.d.ts +9 -3
  129. package/dist/src/commands/write-commands.js +127 -31
  130. package/dist/src/commands/write-commands.js.map +1 -1
  131. package/dist/src/constants.d.ts +7 -1
  132. package/dist/src/constants.js +7 -1
  133. package/dist/src/constants.js.map +1 -1
  134. package/dist/src/eval/manifest-v1.d.ts +71 -0
  135. package/dist/src/eval/manifest-v1.js +370 -0
  136. package/dist/src/eval/manifest-v1.js.map +1 -0
  137. package/dist/src/generators/local-plugin.d.ts +5 -1
  138. package/dist/src/generators/local-plugin.js +228 -104
  139. package/dist/src/generators/local-plugin.js.map +1 -1
  140. package/dist/src/index.d.ts +10 -4
  141. package/dist/src/index.js +1835 -469
  142. package/dist/src/index.js.map +1 -1
  143. package/dist/src/output/command-receipt.d.ts +43 -46
  144. package/dist/src/output/command-receipt.js +256 -80
  145. package/dist/src/output/command-receipt.js.map +1 -1
  146. package/dist/src/output/model.d.ts +3 -44
  147. package/dist/src/output/model.js +1 -144
  148. package/dist/src/output/model.js.map +1 -1
  149. package/dist/src/output/rebuild-progress.js +1 -13
  150. package/dist/src/output/rebuild-progress.js.map +1 -1
  151. package/dist/src/portable/commands.d.ts +46 -7
  152. package/dist/src/portable/commands.js +349 -37
  153. package/dist/src/portable/commands.js.map +1 -1
  154. package/dist/src/portable/materializer.d.ts +17 -4
  155. package/dist/src/portable/materializer.js +179 -41
  156. package/dist/src/portable/materializer.js.map +1 -1
  157. package/dist/src/portable/skills-cli.d.ts +15 -7
  158. package/dist/src/portable/skills-cli.js +66 -19
  159. package/dist/src/portable/skills-cli.js.map +1 -1
  160. package/dist/src/review/eval-source-input.d.ts +43 -0
  161. package/dist/src/review/eval-source-input.js +207 -0
  162. package/dist/src/review/eval-source-input.js.map +1 -0
  163. package/dist/src/review/review-profile.d.ts +17 -0
  164. package/dist/src/review/review-profile.js +234 -0
  165. package/dist/src/review/review-profile.js.map +1 -0
  166. package/dist/src/review/review-selection.d.ts +30 -0
  167. package/dist/src/review/review-selection.js +527 -0
  168. package/dist/src/review/review-selection.js.map +1 -0
  169. package/dist/src/review/review-types.d.ts +68 -0
  170. package/dist/src/review/review-types.js +16 -0
  171. package/dist/src/review/review-types.js.map +1 -0
  172. package/dist/src/review/skill-materialization.d.ts +13 -0
  173. package/dist/src/review/skill-materialization.js +75 -0
  174. package/dist/src/review/skill-materialization.js.map +1 -0
  175. package/dist/src/review/source-binding.d.ts +183 -0
  176. package/dist/src/review/source-binding.js +708 -0
  177. package/dist/src/review/source-binding.js.map +1 -0
  178. package/dist/src/tui/catalog-freshness.d.ts +1 -0
  179. package/dist/src/tui/catalog-freshness.js +2 -0
  180. package/dist/src/tui/catalog-freshness.js.map +1 -0
  181. package/dist/src/tui/catalog-generation.d.ts +21 -0
  182. package/dist/src/tui/catalog-generation.js +156 -0
  183. package/dist/src/tui/catalog-generation.js.map +1 -0
  184. package/dist/src/tui/catalog-sources/projection.d.ts +4 -0
  185. package/dist/src/tui/catalog-sources/projection.js +17 -0
  186. package/dist/src/tui/catalog-sources/projection.js.map +1 -0
  187. package/dist/src/tui/catalog-sources/review.d.ts +3 -0
  188. package/dist/src/tui/catalog-sources/review.js +13 -0
  189. package/dist/src/tui/catalog-sources/review.js.map +1 -0
  190. package/dist/src/tui/catalog-sources/screens.d.ts +12 -0
  191. package/dist/src/tui/catalog-sources/screens.js +40 -0
  192. package/dist/src/tui/catalog-sources/screens.js.map +1 -0
  193. package/dist/src/tui/catalog-sources/session.d.ts +32 -0
  194. package/dist/src/tui/catalog-sources/session.js +300 -0
  195. package/dist/src/tui/catalog-sources/session.js.map +1 -0
  196. package/dist/src/tui/catalog-sources/types.d.ts +54 -0
  197. package/dist/src/tui/catalog-sources/types.js +2 -0
  198. package/dist/src/tui/catalog-sources/types.js.map +1 -0
  199. package/dist/src/tui/catalog-store-task.d.ts +16 -0
  200. package/dist/src/tui/catalog-store-task.js +19 -0
  201. package/dist/src/tui/catalog-store-task.js.map +1 -0
  202. package/dist/src/tui/clipboard.d.ts +13 -0
  203. package/dist/src/tui/clipboard.js +95 -0
  204. package/dist/src/tui/clipboard.js.map +1 -0
  205. package/dist/src/tui/components.d.ts +177 -0
  206. package/dist/src/tui/components.js +297 -7
  207. package/dist/src/tui/components.js.map +1 -1
  208. package/dist/src/tui/config-array-draft.d.ts +29 -0
  209. package/dist/src/tui/config-array-draft.js +48 -0
  210. package/dist/src/tui/config-array-draft.js.map +1 -0
  211. package/dist/src/tui/config-leaf-editor.d.ts +16 -0
  212. package/dist/src/tui/config-leaf-editor.js +206 -0
  213. package/dist/src/tui/config-leaf-editor.js.map +1 -0
  214. package/dist/src/tui/config-value-presentation.d.ts +20 -0
  215. package/dist/src/tui/config-value-presentation.js +104 -0
  216. package/dist/src/tui/config-value-presentation.js.map +1 -0
  217. package/dist/src/tui/console-app-v4.d.ts +14 -4
  218. package/dist/src/tui/console-app-v4.js +9659 -1558
  219. package/dist/src/tui/console-app-v4.js.map +1 -1
  220. package/dist/src/tui/content-item-card.d.ts +13 -0
  221. package/dist/src/tui/content-item-card.js +51 -0
  222. package/dist/src/tui/content-item-card.js.map +1 -0
  223. package/dist/src/tui/controller-runtime.d.ts +13 -1
  224. package/dist/src/tui/controller-runtime.js +3323 -349
  225. package/dist/src/tui/controller-runtime.js.map +1 -1
  226. package/dist/src/tui/controller.d.ts +643 -40
  227. package/dist/src/tui/controller.js +3756 -705
  228. package/dist/src/tui/controller.js.map +1 -1
  229. package/dist/src/tui/dependency-graph-view.d.ts +39 -0
  230. package/dist/src/tui/dependency-graph-view.js +121 -0
  231. package/dist/src/tui/dependency-graph-view.js.map +1 -0
  232. package/dist/src/tui/dependency-graph.d.ts +81 -0
  233. package/dist/src/tui/dependency-graph.js +452 -0
  234. package/dist/src/tui/dependency-graph.js.map +1 -0
  235. package/dist/src/tui/diagnostic-projection.d.ts +23 -0
  236. package/dist/src/tui/diagnostic-projection.js +567 -0
  237. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  238. package/dist/src/tui/diagnostics.d.ts +31 -0
  239. package/dist/src/tui/diagnostics.js +83 -0
  240. package/dist/src/tui/diagnostics.js.map +1 -0
  241. package/dist/src/tui/entity-cards.d.ts +55 -0
  242. package/dist/src/tui/entity-cards.js +220 -0
  243. package/dist/src/tui/entity-cards.js.map +1 -0
  244. package/dist/src/tui/glossary.d.ts +23 -0
  245. package/dist/src/tui/glossary.js +42 -0
  246. package/dist/src/tui/glossary.js.map +1 -0
  247. package/dist/src/tui/index.d.ts +11 -4
  248. package/dist/src/tui/index.js +8 -2
  249. package/dist/src/tui/index.js.map +1 -1
  250. package/dist/src/tui/input-display.d.ts +9 -0
  251. package/dist/src/tui/input-display.js +58 -0
  252. package/dist/src/tui/input-display.js.map +1 -0
  253. package/dist/src/tui/keys.d.ts +44 -0
  254. package/dist/src/tui/keys.js +43 -15
  255. package/dist/src/tui/keys.js.map +1 -1
  256. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  257. package/dist/src/tui/lifecycle-action-view.js +36 -0
  258. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  259. package/dist/src/tui/model.d.ts +248 -27
  260. package/dist/src/tui/model.js +1662 -314
  261. package/dist/src/tui/model.js.map +1 -1
  262. package/dist/src/tui/operation-diagnostic-screens.d.ts +8 -0
  263. package/dist/src/tui/operation-diagnostic-screens.js +71 -0
  264. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  265. package/dist/src/tui/operation-history.d.ts +81 -0
  266. package/dist/src/tui/operation-history.js +136 -0
  267. package/dist/src/tui/operation-history.js.map +1 -0
  268. package/dist/src/tui/operation-review-planner.d.ts +21 -0
  269. package/dist/src/tui/operation-review-planner.js +1295 -0
  270. package/dist/src/tui/operation-review-planner.js.map +1 -0
  271. package/dist/src/tui/plugin-content.d.ts +31 -0
  272. package/dist/src/tui/plugin-content.js +680 -0
  273. package/dist/src/tui/plugin-content.js.map +1 -0
  274. package/dist/src/tui/plugin-detail.d.ts +52 -0
  275. package/dist/src/tui/plugin-detail.js +165 -0
  276. package/dist/src/tui/plugin-detail.js.map +1 -0
  277. package/dist/src/tui/plugin-write-task.d.ts +69 -0
  278. package/dist/src/tui/plugin-write-task.js +286 -0
  279. package/dist/src/tui/plugin-write-task.js.map +1 -0
  280. package/dist/src/tui/project-inventory.d.ts +68 -0
  281. package/dist/src/tui/project-inventory.js +203 -0
  282. package/dist/src/tui/project-inventory.js.map +1 -0
  283. package/dist/src/tui/prompt.js +4 -15
  284. package/dist/src/tui/prompt.js.map +1 -1
  285. package/dist/src/tui/query-header.d.ts +30 -0
  286. package/dist/src/tui/query-header.js +40 -0
  287. package/dist/src/tui/query-header.js.map +1 -0
  288. package/dist/src/tui/reader.d.ts +37 -0
  289. package/dist/src/tui/reader.js +47 -0
  290. package/dist/src/tui/reader.js.map +1 -0
  291. package/dist/src/tui/router.d.ts +207 -14
  292. package/dist/src/tui/router.js +352 -29
  293. package/dist/src/tui/router.js.map +1 -1
  294. package/dist/src/tui/screen-registry.d.ts +701 -0
  295. package/dist/src/tui/screen-registry.js +230 -0
  296. package/dist/src/tui/screen-registry.js.map +1 -0
  297. package/dist/src/tui/session-console-app.d.ts +6 -0
  298. package/dist/src/tui/session-console-app.js +13 -0
  299. package/dist/src/tui/session-console-app.js.map +1 -0
  300. package/dist/src/tui/session-host.d.ts +45 -0
  301. package/dist/src/tui/session-host.js +209 -0
  302. package/dist/src/tui/session-host.js.map +1 -0
  303. package/dist/src/tui/source-detail-card.d.ts +29 -0
  304. package/dist/src/tui/source-detail-card.js +45 -0
  305. package/dist/src/tui/source-detail-card.js.map +1 -0
  306. package/dist/src/tui/source-ref-presets.d.ts +3 -0
  307. package/dist/src/tui/source-ref-presets.js +11 -0
  308. package/dist/src/tui/source-ref-presets.js.map +1 -0
  309. package/dist/src/tui/theme.d.ts +30 -10
  310. package/dist/src/tui/theme.js +30 -10
  311. package/dist/src/tui/theme.js.map +1 -1
  312. package/dist/src/tui/viewport.d.ts +21 -0
  313. package/dist/src/tui/viewport.js +52 -0
  314. package/dist/src/tui/viewport.js.map +1 -0
  315. package/dist/src/tui/views.js +31 -3
  316. package/dist/src/tui/views.js.map +1 -1
  317. package/dist/src/tui/wizard.js +37 -13
  318. package/dist/src/tui/wizard.js.map +1 -1
  319. package/dist/src/types.d.ts +244 -20
  320. package/dist/src/types.js +1 -0
  321. package/dist/src/types.js.map +1 -1
  322. package/dist/src/utils/agent-version.d.ts +7 -1
  323. package/dist/src/utils/agent-version.js +41 -8
  324. package/dist/src/utils/agent-version.js.map +1 -1
  325. package/dist/src/utils/artifact-plan.d.ts +5 -4
  326. package/dist/src/utils/artifact-plan.js +18 -7
  327. package/dist/src/utils/artifact-plan.js.map +1 -1
  328. package/dist/src/utils/artifact-renderer.d.ts +17 -7
  329. package/dist/src/utils/artifact-renderer.js +214 -216
  330. package/dist/src/utils/artifact-renderer.js.map +1 -1
  331. package/dist/src/utils/artifact-request.d.ts +21 -0
  332. package/dist/src/utils/artifact-request.js +78 -0
  333. package/dist/src/utils/artifact-request.js.map +1 -0
  334. package/dist/src/utils/aw-home-mutation-lock.d.ts +1 -0
  335. package/dist/src/utils/aw-home-mutation-lock.js +32 -4
  336. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -1
  337. package/dist/src/utils/bundle-integrity.d.ts +0 -1
  338. package/dist/src/utils/bundle-integrity.js +0 -25
  339. package/dist/src/utils/bundle-integrity.js.map +1 -1
  340. package/dist/src/utils/bundle-layout.js +22 -29
  341. package/dist/src/utils/bundle-layout.js.map +1 -1
  342. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  343. package/dist/src/utils/catalog-capability-projection.js +14 -0
  344. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  345. package/dist/src/utils/catalog-digests.d.ts +10 -0
  346. package/dist/src/utils/catalog-digests.js +50 -2
  347. package/dist/src/utils/catalog-digests.js.map +1 -1
  348. package/dist/src/utils/catalog-generation-control-snapshot.d.ts +11 -0
  349. package/dist/src/utils/catalog-generation-control-snapshot.js +45 -0
  350. package/dist/src/utils/catalog-generation-control-snapshot.js.map +1 -0
  351. package/dist/src/utils/catalog-generation-error.d.ts +16 -0
  352. package/dist/src/utils/catalog-generation-error.js +30 -0
  353. package/dist/src/utils/catalog-generation-error.js.map +1 -0
  354. package/dist/src/utils/catalog-generation-resolver.d.ts +44 -0
  355. package/dist/src/utils/catalog-generation-resolver.js +273 -0
  356. package/dist/src/utils/catalog-generation-resolver.js.map +1 -0
  357. package/dist/src/utils/catalog-generation-service.d.ts +172 -0
  358. package/dist/src/utils/catalog-generation-service.js +1271 -0
  359. package/dist/src/utils/catalog-generation-service.js.map +1 -0
  360. package/dist/src/utils/catalog-generation-state.d.ts +22 -0
  361. package/dist/src/utils/catalog-generation-state.js +192 -0
  362. package/dist/src/utils/catalog-generation-state.js.map +1 -0
  363. package/dist/src/utils/catalog-generation-store.d.ts +58 -0
  364. package/dist/src/utils/catalog-generation-store.js +452 -0
  365. package/dist/src/utils/catalog-generation-store.js.map +1 -0
  366. package/dist/src/utils/catalog-manifest-v7.d.ts +5 -0
  367. package/dist/src/utils/{catalog-manifest-v4.js → catalog-manifest-v7.js} +35 -43
  368. package/dist/src/utils/catalog-manifest-v7.js.map +1 -0
  369. package/dist/src/utils/catalog-operation-context.d.ts +20 -0
  370. package/dist/src/utils/catalog-operation-context.js +142 -0
  371. package/dist/src/utils/catalog-operation-context.js.map +1 -0
  372. package/dist/src/utils/catalog-public-error.d.ts +7 -3
  373. package/dist/src/utils/catalog-public-error.js +28 -8
  374. package/dist/src/utils/catalog-public-error.js.map +1 -1
  375. package/dist/src/utils/catalog-runtime-projection.d.ts +4 -7
  376. package/dist/src/utils/catalog-runtime-projection.js +7 -102
  377. package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
  378. package/dist/src/utils/catalog-snapshot.d.ts +5 -3
  379. package/dist/src/utils/catalog-snapshot.js +11 -3
  380. package/dist/src/utils/catalog-snapshot.js.map +1 -1
  381. package/dist/src/utils/catalog-source-identity.d.ts +1 -0
  382. package/dist/src/utils/catalog-source-identity.js +21 -2
  383. package/dist/src/utils/catalog-source-identity.js.map +1 -1
  384. package/dist/src/utils/catalog-source-impact.d.ts +21 -0
  385. package/dist/src/utils/catalog-source-impact.js +344 -0
  386. package/dist/src/utils/catalog-source-impact.js.map +1 -0
  387. package/dist/src/utils/catalog-source-references.d.ts +3 -2
  388. package/dist/src/utils/catalog-source-references.js +195 -347
  389. package/dist/src/utils/catalog-source-references.js.map +1 -1
  390. package/dist/src/utils/catalog-sources.d.ts +15 -1
  391. package/dist/src/utils/catalog-sources.js +206 -27
  392. package/dist/src/utils/catalog-sources.js.map +1 -1
  393. package/dist/src/utils/codex-config.d.ts +2 -0
  394. package/dist/src/utils/codex-config.js +26 -5
  395. package/dist/src/utils/codex-config.js.map +1 -1
  396. package/dist/src/utils/codex-manager.d.ts +79 -0
  397. package/dist/src/utils/codex-manager.js +745 -0
  398. package/dist/src/utils/codex-manager.js.map +1 -0
  399. package/dist/src/utils/codex-marketplace-path.d.ts +5 -0
  400. package/dist/src/utils/codex-marketplace-path.js +45 -0
  401. package/dist/src/utils/codex-marketplace-path.js.map +1 -0
  402. package/dist/src/utils/codex-native-observation.d.ts +49 -0
  403. package/dist/src/utils/codex-native-observation.js +154 -0
  404. package/dist/src/utils/codex-native-observation.js.map +1 -0
  405. package/dist/src/utils/codex-native-render-receipt.d.ts +40 -0
  406. package/dist/src/utils/codex-native-render-receipt.js +205 -0
  407. package/dist/src/utils/codex-native-render-receipt.js.map +1 -0
  408. package/dist/src/utils/codex-reconciler.d.ts +126 -0
  409. package/dist/src/utils/codex-reconciler.js +298 -0
  410. package/dist/src/utils/codex-reconciler.js.map +1 -0
  411. package/dist/src/utils/codex-shared-native.d.ts +43 -0
  412. package/dist/src/utils/codex-shared-native.js +81 -0
  413. package/dist/src/utils/codex-shared-native.js.map +1 -0
  414. package/dist/src/utils/codex-skill-staging.d.ts +2 -0
  415. package/dist/src/utils/codex-skill-staging.js.map +1 -1
  416. package/dist/src/utils/codex-surface-analysis.d.ts +46 -0
  417. package/dist/src/utils/codex-surface-analysis.js +247 -0
  418. package/dist/src/utils/codex-surface-analysis.js.map +1 -0
  419. package/dist/src/utils/dynamic-skill-tree.d.ts +4 -0
  420. package/dist/src/utils/dynamic-skill-tree.js +36 -6
  421. package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
  422. package/dist/src/utils/git-catalog-provider.d.ts +16 -0
  423. package/dist/src/utils/git-catalog-provider.js +169 -144
  424. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  425. package/dist/src/utils/local-marketplace.d.ts +17 -1
  426. package/dist/src/utils/local-marketplace.js +301 -84
  427. package/dist/src/utils/local-marketplace.js.map +1 -1
  428. package/dist/src/utils/manifest.d.ts +1 -4
  429. package/dist/src/utils/manifest.js +1 -4
  430. package/dist/src/utils/manifest.js.map +1 -1
  431. package/dist/src/utils/multi-source-catalog.d.ts +3 -9
  432. package/dist/src/utils/multi-source-catalog.js +54 -110
  433. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  434. package/dist/src/utils/native-cli.d.ts +55 -7
  435. package/dist/src/utils/native-cli.js +386 -57
  436. package/dist/src/utils/native-cli.js.map +1 -1
  437. package/dist/src/utils/orphan-marketplace-cleanup.js +0 -4
  438. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
  439. package/dist/src/utils/ownership.d.ts +84 -20
  440. package/dist/src/utils/ownership.js +179 -222
  441. package/dist/src/utils/ownership.js.map +1 -1
  442. package/dist/src/utils/path-catalog-provider.d.ts +1 -1
  443. package/dist/src/utils/path-catalog-provider.js +54 -65
  444. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  445. package/dist/src/utils/paths.d.ts +0 -1
  446. package/dist/src/utils/paths.js +0 -1
  447. package/dist/src/utils/paths.js.map +1 -1
  448. package/dist/src/utils/plugin-config-impact.d.ts +33 -0
  449. package/dist/src/utils/plugin-config-impact.js +298 -0
  450. package/dist/src/utils/plugin-config-impact.js.map +1 -0
  451. package/dist/src/utils/plugin-config-write.d.ts +52 -27
  452. package/dist/src/utils/plugin-config-write.js +1000 -296
  453. package/dist/src/utils/plugin-config-write.js.map +1 -1
  454. package/dist/src/utils/plugin-config.d.ts +153 -93
  455. package/dist/src/utils/plugin-config.js +1163 -1017
  456. package/dist/src/utils/plugin-config.js.map +1 -1
  457. package/dist/src/utils/plugin-intent-state.d.ts +49 -0
  458. package/dist/src/utils/plugin-intent-state.js +320 -0
  459. package/dist/src/utils/plugin-intent-state.js.map +1 -0
  460. package/dist/src/utils/plugin-scripts.d.ts +65 -125
  461. package/dist/src/utils/plugin-scripts.js +482 -524
  462. package/dist/src/utils/plugin-scripts.js.map +1 -1
  463. package/dist/src/utils/process-tree.d.ts +2 -2
  464. package/dist/src/utils/process-tree.js +1 -1
  465. package/dist/src/utils/process-tree.js.map +1 -1
  466. package/dist/src/utils/project-boundary.d.ts +11 -13
  467. package/dist/src/utils/project-boundary.js +28 -34
  468. package/dist/src/utils/project-boundary.js.map +1 -1
  469. package/dist/src/utils/runtime-config.d.ts +20 -0
  470. package/dist/src/utils/runtime-config.js +75 -0
  471. package/dist/src/utils/runtime-config.js.map +1 -0
  472. package/dist/src/utils/safe-fs.d.ts +21 -0
  473. package/dist/src/utils/safe-fs.js +111 -0
  474. package/dist/src/utils/safe-fs.js.map +1 -0
  475. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  476. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  477. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  478. package/dist/src/utils/sensitive-content.d.ts +4 -0
  479. package/dist/src/utils/sensitive-content.js +36 -0
  480. package/dist/src/utils/sensitive-content.js.map +1 -0
  481. package/dist/src/utils/skill-validation.d.ts +1 -1
  482. package/dist/src/utils/skill-validation.js +1 -1
  483. package/dist/src/utils/skill-validation.js.map +1 -1
  484. package/dist/src/utils/state-paths.d.ts +1 -0
  485. package/dist/src/utils/state-paths.js +12 -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 +9 -0
  491. package/dist/src/utils/windows-claude-shim.js +141 -0
  492. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  493. package/dist/vitest.config.js +91 -10
  494. package/dist/vitest.config.js.map +1 -1
  495. package/package.json +22 -19
  496. package/dist/authoring/scripts/check-plugin-versions.mjs +0 -5
  497. package/dist/authoring/scripts/check-plugin-versions.mjs.map +0 -1
  498. package/dist/scripts/aw-skill-eval-engine.d.ts +0 -13
  499. package/dist/scripts/aw-skill-eval-engine.js +0 -31
  500. package/dist/scripts/aw-skill-eval-engine.js.map +0 -1
  501. package/dist/scripts/codex-eval-app-server.d.ts +0 -89
  502. package/dist/scripts/codex-eval-app-server.js +0 -1228
  503. package/dist/scripts/codex-eval-app-server.js.map +0 -1
  504. package/dist/scripts/codex-eval-isolation.d.ts +0 -61
  505. package/dist/scripts/codex-eval-isolation.js +0 -318
  506. package/dist/scripts/codex-eval-isolation.js.map +0 -1
  507. package/dist/scripts/codex-eval-process-management.d.ts +0 -8
  508. package/dist/scripts/codex-eval-process-management.js +0 -69
  509. package/dist/scripts/codex-eval-process-management.js.map +0 -1
  510. package/dist/scripts/codex-eval-process-tree.d.ts +0 -38
  511. package/dist/scripts/codex-eval-process-tree.js +0 -803
  512. package/dist/scripts/codex-eval-process-tree.js.map +0 -1
  513. package/dist/scripts/codex-eval-runtime-config.d.ts +0 -62
  514. package/dist/scripts/codex-eval-runtime-config.js +0 -843
  515. package/dist/scripts/codex-eval-runtime-config.js.map +0 -1
  516. package/dist/scripts/codex-trigger-eval.d.ts +0 -84
  517. package/dist/scripts/codex-trigger-eval.js +0 -968
  518. package/dist/scripts/codex-trigger-eval.js.map +0 -1
  519. package/dist/scripts/eval-plugin-skills-audited.d.ts +0 -6
  520. package/dist/scripts/eval-plugin-skills-audited.js +0 -261
  521. package/dist/scripts/eval-plugin-skills-audited.js.map +0 -1
  522. package/dist/scripts/eval-plugin-skills.d.ts +0 -45
  523. package/dist/scripts/eval-plugin-skills.js +0 -1586
  524. package/dist/scripts/eval-plugin-skills.js.map +0 -1
  525. package/dist/scripts/eval-run-layout.d.ts +0 -17
  526. package/dist/scripts/eval-run-layout.js +0 -26
  527. package/dist/scripts/eval-run-layout.js.map +0 -1
  528. package/dist/scripts/plugin-eval-contract.d.ts +0 -185
  529. package/dist/scripts/plugin-eval-contract.js +0 -695
  530. package/dist/scripts/plugin-eval-contract.js.map +0 -1
  531. package/dist/scripts/plugin-eval-materializer.d.ts +0 -13
  532. package/dist/scripts/plugin-eval-materializer.js +0 -421
  533. package/dist/scripts/plugin-eval-materializer.js.map +0 -1
  534. package/dist/scripts/skill-reporting.d.ts +0 -212
  535. package/dist/scripts/skill-reporting.js +0 -922
  536. package/dist/scripts/skill-reporting.js.map +0 -1
  537. package/dist/src/commands/status-v4.d.ts +0 -102
  538. package/dist/src/commands/status-v4.js +0 -844
  539. package/dist/src/commands/status-v4.js.map +0 -1
  540. package/dist/src/commands/status.d.ts +0 -93
  541. package/dist/src/commands/status.js +0 -442
  542. package/dist/src/commands/status.js.map +0 -1
  543. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +0 -12
  544. package/dist/src/utils/active-marketplace-runtime-lock.js +0 -133
  545. package/dist/src/utils/active-marketplace-runtime-lock.js.map +0 -1
  546. package/dist/src/utils/catalog-manifest-v3.d.ts +0 -2
  547. package/dist/src/utils/catalog-manifest-v3.js +0 -3
  548. package/dist/src/utils/catalog-manifest-v3.js.map +0 -1
  549. package/dist/src/utils/catalog-manifest-v4.d.ts +0 -5
  550. package/dist/src/utils/catalog-manifest-v4.js.map +0 -1
  551. package/dist/src/utils/catalog-source-cache.d.ts +0 -61
  552. package/dist/src/utils/catalog-source-cache.js +0 -276
  553. package/dist/src/utils/catalog-source-cache.js.map +0 -1
  554. package/dist/src/utils/codex-project-surface.d.ts +0 -3
  555. package/dist/src/utils/codex-project-surface.js +0 -49
  556. package/dist/src/utils/codex-project-surface.js.map +0 -1
  557. package/dist/src/utils/lifecycle-active-store.d.ts +0 -175
  558. package/dist/src/utils/lifecycle-active-store.js +0 -1276
  559. package/dist/src/utils/lifecycle-active-store.js.map +0 -1
  560. package/dist/src/utils/plugin-authoring-capabilities.d.ts +0 -23
  561. package/dist/src/utils/plugin-authoring-capabilities.js +0 -37
  562. package/dist/src/utils/plugin-authoring-capabilities.js.map +0 -1
  563. package/dist/src/utils/plugin-authoring-capabilities.json +0 -92
  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
  567. package/dist/src/utils/skill-frontmatter-capabilities.d.ts +0 -201
  568. package/dist/src/utils/skill-frontmatter-capabilities.js +0 -5
  569. package/dist/src/utils/skill-frontmatter-capabilities.js.map +0 -1
  570. package/dist/src/utils/skill-frontmatter-capabilities.json +0 -200
  571. /package/dist/authoring/scripts/{check-plugin-versions.d.mts → remove-plugin.d.mts} +0 -0
@@ -1,14 +1,164 @@
1
- import type { CatalogSource, PlatformName, Scope } from '../types.js';
2
- import type { PortableReview } from '../portable/commands.js';
1
+ import type { CatalogActivationMode, CatalogSource, CatalogGenerationActiveV1, CatalogGenerationCandidateEvidence, CatalogGenerationSyncResult, CatalogSourceImpact, DependencyScopeOverride, PlatformName, Scope } from '../types.js';
2
+ import type { PortableReview, PortableInstallReceipt, PortableRetryReview } from '../portable/commands.js';
3
3
  import type { CatalogSourceUpdate } from '../utils/catalog-sources.js';
4
- import type { StatusV4Payload, StatusV4PluginSummary } from '../commands/status-v4.js';
5
- import type { ProjectConfigStoreLayer } from '../utils/plugin-config.js';
6
- import type { DependencyOperationPlan } from '../commands/dependency-operation-plan.js';
4
+ import type { CatalogGenerationFreshnessState, CatalogGenerationFreshnessResult } from '../utils/catalog-generation-service.js';
5
+ import type { StatusV8Payload, StatusV8PluginSummary, StatusScopedTarget, StatusTargetRevision } from '../commands/status-v6.js';
6
+ import type { ReconcileOperationPlan } from '../commands/reconcile-operation-plan.js';
7
+ import type { PreApplyAuthorizationTarget, RebuildCommandResult } from '../commands/rebuild-command.js';
8
+ import type { OfflineCleanupTargetEvidence } from '../commands/offline-cleanup-evidence.js';
9
+ import type { CodexReconcilePlan } from '../utils/codex-reconciler.js';
10
+ import type { OperationPlan } from '../commands/operation-plan.js';
7
11
  import type { RebuildProgressFeed, RebuildProgressSnapshot } from '../output/rebuild-progress.js';
8
- import { type ConfigPageViewModel, type ConfigGroupViewModel, type PluginListItemViewModel, type PluginDependencyOverviewViewModel, type PortableSkillSelectionViewModel, type SourceHealthViewModel, type SourceDetailViewModel, type TuiViewModel, type UserIssueCategory, type UserIssueViewModel } from './model.js';
9
- import { type PortableBlockerCode, type TuiPageContext, type TuiRoute, type TuiRouterSnapshot } from './router.js';
10
- export type PluginWriteOperation = 'install' | 'upgrade' | 'reinstall' | 'uninstall' | 'cleanup';
12
+ import { type ConfigPageViewModel, type ConfigGroupViewModel, type InstallPlacementDraftViewModel, type PluginListItemViewModel, type PluginDependencyOverviewViewModel, type PortableSkillSelectionViewModel, type SourceHealthViewModel, type SourceDetailViewModel, type TuiViewModel, type UserIssueCategory, type UserIssueViewModel } from './model.js';
13
+ import type { PluginContentOverview } from './plugin-content.js';
14
+ import { type PluginDetailSubject } from './plugin-detail.js';
15
+ import { OperationHistoryStore, type OperationDiagnosticDetail, type OperationEffectFacts, type OperationHistorySummary, type OperationReportPreview, type SafeOperationDiagnostic, type SaveOperationReportResult } from './operation-history.js';
16
+ import { type ProjectInventoryRoot, type ProjectInventoryViewModel } from './project-inventory.js';
17
+ import { type ConfigInvalidStoreEvidence, type PluginInstallFilter, type PortableBlockerCode, type TuiPageContext, type TuiRoute, type TuiRouterSnapshot } from './router.js';
18
+ import { type CatalogSourceGenerationViewModel } from './catalog-generation.js';
19
+ import type { CatalogSourceFreshnessViewModel } from './catalog-freshness.js';
20
+ import type { CatalogSessionReusableCandidate } from './catalog-sources/types.js';
21
+ import type { CatalogStoreStatusResult } from '../commands/catalog-store.js';
22
+ import type { CatalogStoreTaskEvidence } from './catalog-store-task.js';
23
+ import { type PluginWriteTaskBlockedTarget, type PluginWriteTaskCandidate, type PluginWriteTaskCause, type PluginWriteTaskGoal, type PluginWriteTaskIntent, type PluginWriteTaskTarget } from './plugin-write-task.js';
24
+ export type { PluginWriteTaskBlockReason, PluginWriteTaskCandidate, PluginWriteTaskExpectedUpdate, PluginWriteTaskGoal, PluginWriteTaskIntent, PluginWriteTaskMethod, PluginWriteTaskTarget, } from './plugin-write-task.js';
25
+ type CatalogActivationBlockReason = 'configDraft' | 'sourceDraft' | 'batchDraft' | 'portableDraft' | 'activeReview' | 'reviewPreparation' | 'writeProgress';
26
+ export interface ExternalDraftState {
27
+ kind: 'configDraft' | 'sourceDraft' | 'batchDraft';
28
+ owner: string;
29
+ flowId?: string;
30
+ revision: number;
31
+ }
32
+ export type PluginWriteOperation = 'install' | 'refreshAndSync' | 'reinstall' | 'uninstall' | 'cleanup' | 'sync';
33
+ export declare const PLUGIN_WRITE_BATCH_ACTIONS: readonly ["install", "sync", "reinstall", "uninstall", "cleanup"];
34
+ export type BatchPluginWriteAction = typeof PLUGIN_WRITE_BATCH_ACTIONS[number];
35
+ export type PluginWriteBatchSelection = {
36
+ kind: 'selected';
37
+ pluginIds: string[];
38
+ } | {
39
+ kind: 'targets';
40
+ targets: PluginWriteBatchTarget[];
41
+ } | {
42
+ kind: 'currentProjectIntentTargets';
43
+ targets: PluginWriteBatchTarget[];
44
+ } | {
45
+ kind: 'currentProjectIntentRoots';
46
+ };
47
+ export interface PluginWriteBatchTarget {
48
+ pluginId: string;
49
+ platform: PlatformName;
50
+ scope: Scope;
51
+ }
52
+ export interface PluginInstallBatchTarget extends PluginWriteBatchTarget {
53
+ state: 'add' | 'existing' | 'blocked';
54
+ reason?: string;
55
+ }
56
+ export declare function pluginWriteBatchTargets(action: Exclude<BatchPluginWriteAction, 'install'>, pluginIds: readonly string[], statusTargets: readonly StatusScopedTarget[]): PluginWriteBatchTarget[];
57
+ export interface PluginWriteBatchIntent {
58
+ kind: 'pluginWriteBatch';
59
+ dependencyScopeOverrides?: DependencyScopeOverride[];
60
+ action: BatchPluginWriteAction;
61
+ selection: PluginWriteBatchSelection;
62
+ platform: PlatformName | 'both';
63
+ scope: Scope;
64
+ scriptTimeoutMs?: number;
65
+ }
66
+ export interface PluginWriteBatchGroupEvidence {
67
+ groupId: string;
68
+ sourceId: string;
69
+ platform: PlatformName | 'both';
70
+ scope: Scope;
71
+ requestedPluginIds: string[];
72
+ preview: RebuildCommandResult;
73
+ executable: boolean;
74
+ }
75
+ export interface PluginWriteBatchEvidence extends OperationEvidence {
76
+ requestedPluginIds: string[];
77
+ groups: PluginWriteBatchGroupEvidence[];
78
+ projectIntentDigest?: string;
79
+ targetVersions?: Array<PluginWriteBatchTarget & {
80
+ presence: 'new' | 'installed' | 'unknown';
81
+ installedVersion?: string;
82
+ availableVersion?: string;
83
+ }>;
84
+ }
85
+ export interface PluginWriteBatchGroupResult {
86
+ groupId: string;
87
+ sourceId: string;
88
+ platform: PlatformName | 'both';
89
+ scope: Scope;
90
+ requestedPluginIds: string[];
91
+ result: RebuildCommandResult;
92
+ }
93
+ export interface PluginWriteBatchExecutionResult extends RebuildCommandResult {
94
+ requestedPluginIds: string[];
95
+ groupResults: PluginWriteBatchGroupResult[];
96
+ }
97
+ export interface PluginWriteTaskSourceEvidence {
98
+ sourceId: string;
99
+ sourceIdentity: string;
100
+ requestedTargets: PluginWriteTaskTarget[];
101
+ causes: PluginWriteTaskCause[];
102
+ preview: RebuildCommandResult;
103
+ executable: boolean;
104
+ }
105
+ export interface PluginWriteTaskEvidence extends OperationEvidence {
106
+ taskPlan: {
107
+ goal: PluginWriteTaskGoal;
108
+ requestedTargets: PluginWriteTaskTarget[];
109
+ executableTargets: PluginWriteTaskTarget[];
110
+ causes: PluginWriteTaskCause[];
111
+ blockedTargets: PluginWriteTaskBlockedTarget[];
112
+ sources: PluginWriteTaskSourceEvidence[];
113
+ targetFingerprint: string;
114
+ planFingerprint: string;
115
+ };
116
+ }
117
+ export interface PluginWriteTaskSourceResult {
118
+ sourceId: string;
119
+ sourceIdentity: string;
120
+ requestedTargets: PluginWriteTaskTarget[];
121
+ result: RebuildCommandResult;
122
+ }
123
+ export interface PluginWriteTaskExecutionResult extends RebuildCommandResult {
124
+ taskPlan: PluginWriteTaskEvidence['taskPlan'];
125
+ sourceResults: PluginWriteTaskSourceResult[];
126
+ }
11
127
  export type OperationKind = OperationIntent['kind'];
128
+ export interface ConfigOperationChange {
129
+ key: string;
130
+ title: string;
131
+ before: string;
132
+ after: string;
133
+ children?: Array<{
134
+ property: string;
135
+ before: string;
136
+ after: string;
137
+ private?: boolean;
138
+ }>;
139
+ }
140
+ export interface ConfigSaveBatchGroup {
141
+ editEvidence?: Record<string, import('./model.js').ConfigEditEvidence>;
142
+ scope: Scope;
143
+ updates?: Record<string, unknown>;
144
+ removeKeys?: string[];
145
+ sensitiveKeys?: string[];
146
+ privateKeys?: string[];
147
+ changes?: ConfigOperationChange[];
148
+ }
149
+ export interface ConfigSaveBatchGroupResult {
150
+ scope: Scope;
151
+ status: 'succeeded' | 'failed';
152
+ configSaved: boolean;
153
+ applyRequested: boolean;
154
+ applyStatus: 'notRequested' | 'notNeeded' | 'succeeded' | 'failed';
155
+ errorCode?: string;
156
+ execution?: unknown;
157
+ }
158
+ export interface ConfigSaveBatchExecutionResult {
159
+ status: 'succeeded' | 'partial' | 'failed';
160
+ groups: ConfigSaveBatchGroupResult[];
161
+ }
12
162
  export interface IssueOrigin {
13
163
  issueId: string;
14
164
  issueKey: string;
@@ -29,34 +179,51 @@ export type OperationIntent = {
29
179
  pluginId: string;
30
180
  platform: PlatformName | 'both';
31
181
  scope: Scope;
182
+ dependencyScopeOverrides?: DependencyScopeOverride[];
183
+ expectedUpdate?: {
184
+ installedVersion: string;
185
+ activeVersion: string;
186
+ sourceIdentity: string;
187
+ generationKey: string;
188
+ };
189
+ recoveryDescription?: string;
32
190
  force?: boolean;
191
+ scriptTimeoutMs?: number;
33
192
  originIssue?: IssueOrigin;
34
- } | {
193
+ } | PluginWriteBatchIntent | PluginWriteTaskIntent | {
35
194
  kind: 'portableInstall';
36
195
  pluginId: string;
37
196
  scope: Scope;
38
197
  selectedSkills: string[];
39
198
  requestedAgents?: string[];
199
+ retry?: {
200
+ receipt: PortableInstallReceipt;
201
+ review?: PortableRetryReview;
202
+ };
40
203
  } | {
41
204
  kind: 'configSave';
42
205
  pluginId: string;
43
206
  scope: Scope;
44
- projectLayer: ProjectConfigStoreLayer;
207
+ apply: boolean;
208
+ scriptTimeoutMs?: number;
209
+ retryApply?: true;
45
210
  updates?: Record<string, unknown>;
46
211
  removeKeys?: string[];
47
212
  sensitiveKeys?: string[];
48
213
  privateKeys?: string[];
49
- changes?: Array<{
50
- key: string;
51
- title: string;
52
- before: string;
53
- after: string;
54
- }>;
214
+ changes?: ConfigOperationChange[];
215
+ } | {
216
+ kind: 'configSaveBatch';
217
+ pluginId: string;
218
+ apply: boolean;
219
+ scriptTimeoutMs?: number;
220
+ groups: ConfigSaveBatchGroup[];
55
221
  } | {
56
222
  kind: 'configReset';
57
223
  pluginId: string;
58
224
  scope: Scope;
59
- projectLayer: ProjectConfigStoreLayer;
225
+ expectedStoreState?: 'invalid';
226
+ changes?: ConfigOperationChange[];
60
227
  } | {
61
228
  kind: 'sourceMutation';
62
229
  action: 'add' | 'update' | 'setPrimary' | 'remove';
@@ -69,43 +236,132 @@ export type OperationIntent = {
69
236
  after?: string;
70
237
  private?: boolean;
71
238
  }>;
239
+ } | {
240
+ kind: 'catalogGeneration';
241
+ action: 'activate' | 'update' | 'repair' | 'replaceDamaged' | 'recoverState';
242
+ sourceId: string;
243
+ sourceMutation?: {
244
+ action: 'add';
245
+ source: CatalogSource;
246
+ } | {
247
+ action: 'update';
248
+ update: CatalogSourceUpdate;
249
+ };
250
+ setPrimaryAfterActivation?: boolean;
251
+ } | {
252
+ kind: 'catalogSourcesRecovery';
253
+ } | {
254
+ kind: 'catalogStorePrune';
72
255
  };
256
+ export interface ConfigOperationEvidence {
257
+ scope: Scope;
258
+ schemaIdentity?: string;
259
+ storeDigest: string;
260
+ impactState?: 'known' | 'unknown';
261
+ noEffectiveChange?: true;
262
+ affectedTargets: Array<{
263
+ platform: PlatformName;
264
+ scope: Scope;
265
+ }>;
266
+ preApplyAuthorization?: PreApplyAuthorizationTarget[];
267
+ sharedNativeRenderTargets?: Array<{
268
+ id: string;
269
+ skillKey: string;
270
+ refreshKeys: string[];
271
+ }>;
272
+ shareability?: 'verified' | 'unverified';
273
+ }
73
274
  export interface OperationEvidence {
74
275
  catalog: {
75
276
  configDigest: string;
76
277
  compositeDigest: string;
278
+ generationSetDigest?: string;
77
279
  };
78
280
  source?: {
79
281
  sourceId: string;
80
282
  sourceIdentity: string;
283
+ logicalIdentity?: string;
81
284
  requestedRef?: string;
82
285
  resolvedCommit?: string;
83
286
  manifestDigest?: string;
84
287
  snapshotDigest?: string;
85
288
  contentDigest?: string;
289
+ pluginVersion?: string;
290
+ catalogVersion?: string;
291
+ channel?: 'latest' | 'beta';
86
292
  };
87
293
  targetFingerprint?: string;
88
- dependencyPlan?: DependencyOperationPlan;
89
- config?: {
294
+ offlineCleanup?: OfflineCleanupTargetEvidence;
295
+ offlineCleanupPlans?: OfflineCleanupTargetEvidence[];
296
+ removedPluginCleanupIds?: string[];
297
+ dependencyPlan?: ReconcileOperationPlan;
298
+ codexReconcilePlans?: CodexReconcilePlan[];
299
+ operationPlan?: OperationPlan;
300
+ preparationWarnings?: string[];
301
+ codexManager?: {
302
+ state: 'system' | 'cached' | 'requires-install';
303
+ packageName: '@openai/codex';
304
+ version: string;
305
+ };
306
+ config?: ConfigOperationEvidence;
307
+ configBatch?: {
308
+ groups: Array<{
309
+ scope: Scope;
310
+ config: ConfigOperationEvidence;
311
+ targetFingerprint: string;
312
+ }>;
313
+ };
314
+ resetTarget?: {
315
+ sourceId: string;
316
+ pluginName: string;
90
317
  scope: Scope;
91
- projectLayer: ProjectConfigStoreLayer;
92
- schemaIdentity?: string;
93
- storeDigest: string;
318
+ kind: 'absent' | 'regularFile' | 'symbolicLink' | 'directory';
319
+ fingerprint: string;
94
320
  };
95
321
  sourceWrite?: {
96
322
  configDigest: string;
97
- candidateDigest: string;
323
+ proposedConfigDigest: string;
98
324
  sourceIdentity?: string;
99
325
  inventoryDigest: string;
326
+ impactDigest?: string;
100
327
  referenceCount: number;
101
328
  inventoryComplete: boolean;
329
+ impact?: CatalogSourceImpact;
330
+ };
331
+ catalogGeneration?: {
332
+ action: Extract<OperationIntent, {
333
+ kind: 'catalogGeneration';
334
+ }>['action'];
335
+ previousActive?: CatalogGenerationActiveV1;
336
+ previousActiveVersion?: string;
337
+ candidate: CatalogGenerationCandidateEvidence;
338
+ candidateRelation?: CatalogGenerationFreshnessState;
339
+ explicitSourceChange?: boolean;
340
+ exactRepair?: boolean;
341
+ activationMode?: CatalogActivationMode;
342
+ impact?: CatalogSourceImpact;
343
+ impactDigest?: string;
344
+ impactMode?: 'generation' | 'identityChange';
345
+ primaryImpact?: CatalogSourceImpact;
346
+ primaryImpactDigest?: string;
347
+ primaryConfigDigest?: string;
348
+ configDigest: string;
349
+ proposedConfigDigest?: string;
350
+ proposedSource?: CatalogSource;
351
+ sourceMutation?: Extract<OperationIntent, {
352
+ kind: 'catalogGeneration';
353
+ }>['sourceMutation'];
354
+ setPrimaryAfterActivation?: boolean;
102
355
  };
103
356
  portable?: PortableReview;
357
+ catalogStore?: CatalogStoreTaskEvidence;
104
358
  }
105
359
  export interface OperationReviewChange {
106
360
  kind: 'add' | 'change' | 'remove' | 'keep' | 'warning';
107
- group?: 'requested' | 'dependencies' | 'portableTarget' | 'portableInputs' | 'portableWarnings' | 'preserved';
361
+ group?: 'requested' | 'dependencies' | 'projectIntent' | 'userIntent' | 'sharedCodexNative' | 'userActivation' | 'projectActivation' | 'awExtensions' | 'runtime' | 'portableTarget' | 'portableInputs' | 'portableWarnings' | 'configChanges' | 'configImpact' | 'preserved';
108
362
  pluginId?: string;
363
+ batchGroupId?: string;
364
+ sourceId?: string;
109
365
  relation?: 'requested' | 'direct' | 'transitive';
110
366
  title: string;
111
367
  description?: string;
@@ -119,6 +375,7 @@ export interface OperationReviewModel {
119
375
  kind: 'sourceMutation';
120
376
  }>['action'];
121
377
  pluginAction?: PluginWriteOperation;
378
+ taskGoal?: PluginWriteTaskGoal;
122
379
  originIssue?: IssueOrigin;
123
380
  title: string;
124
381
  description: string;
@@ -129,10 +386,62 @@ export interface OperationReviewModel {
129
386
  version?: string;
130
387
  };
131
388
  changes: OperationReviewChange[];
389
+ configImpact?: {
390
+ state: 'known' | 'unknown';
391
+ affectedTargetCount: number;
392
+ };
393
+ confirmationDetails?: string[];
132
394
  technicalDetails?: string[];
133
395
  equivalentCommand?: string;
134
396
  primaryLabel: string;
135
397
  destructive?: boolean;
398
+ requiresConfirmation: boolean;
399
+ sharedImpact: {
400
+ pluginIds: string[];
401
+ warning?: string;
402
+ };
403
+ catalogBinding?: {
404
+ sourceId: string;
405
+ catalogVersion: string;
406
+ generationDigestShort: string;
407
+ };
408
+ batch?: {
409
+ requestedPluginIds: string[];
410
+ groupCount: number;
411
+ executableGroupCount: number;
412
+ };
413
+ task?: {
414
+ goal: PluginWriteTaskGoal;
415
+ requestedTargetCount: number;
416
+ executableTargetCount: number;
417
+ blockedTargetCount: number;
418
+ causeCount: number;
419
+ };
420
+ rootSummary?: Array<{
421
+ pluginId: string;
422
+ version?: string;
423
+ targets: Array<{
424
+ platform: PlatformName | 'both';
425
+ scope: Scope;
426
+ }>;
427
+ }>;
428
+ }
429
+ export type ReviewPreparationStageId = 'refresh' | 'validate' | 'status' | 'catalog' | 'inventory' | 'dependencyPlan' | 'config' | 'portable' | 'evidence';
430
+ export interface ReviewPreparationStage {
431
+ id: ReviewPreparationStageId;
432
+ label: string;
433
+ state: 'pending' | 'running' | 'completed' | 'failed';
434
+ }
435
+ export interface ReviewPreparationSnapshot {
436
+ id: string;
437
+ operationKind: OperationIntent['kind'];
438
+ subject: string;
439
+ state: 'running' | 'failed';
440
+ stages: ReviewPreparationStage[];
441
+ currentStage?: ReviewPreparationStageId;
442
+ code?: 'reviewPreparationFailed';
443
+ message?: string;
444
+ operationRecordId?: string;
136
445
  }
137
446
  export type OperationExecuteResult = {
138
447
  state: 'succeeded';
@@ -144,7 +453,11 @@ export type OperationExecuteResult = {
144
453
  }>['action'];
145
454
  pluginId?: string;
146
455
  originIssue?: IssueOrigin;
456
+ portableIntent?: PortableResultIntentMetadata;
147
457
  returnRoute?: TuiRoute;
458
+ operationRecordId?: string;
459
+ diagnosticIds?: string[];
460
+ effects?: OperationEffectFacts;
148
461
  } | {
149
462
  state: 'partial';
150
463
  operationId: string;
@@ -155,7 +468,11 @@ export type OperationExecuteResult = {
155
468
  }>['action'];
156
469
  pluginId?: string;
157
470
  originIssue?: IssueOrigin;
471
+ portableIntent?: PortableResultIntentMetadata;
158
472
  returnRoute?: TuiRoute;
473
+ operationRecordId?: string;
474
+ diagnosticIds?: string[];
475
+ effects?: OperationEffectFacts;
159
476
  } | {
160
477
  state: 'stale';
161
478
  operationId: string;
@@ -165,6 +482,10 @@ export type OperationExecuteResult = {
165
482
  }>['action'];
166
483
  review: OperationReviewModel;
167
484
  originIssue?: IssueOrigin;
485
+ portableIntent?: PortableResultIntentMetadata;
486
+ operationRecordId?: string;
487
+ diagnosticIds?: string[];
488
+ effects?: OperationEffectFacts;
168
489
  } | {
169
490
  state: 'blocked';
170
491
  operationId: string;
@@ -177,26 +498,89 @@ export type OperationExecuteResult = {
177
498
  pluginId?: string;
178
499
  returnRoute?: TuiRoute;
179
500
  originIssue?: IssueOrigin;
501
+ portableIntent?: PortableResultIntentMetadata;
180
502
  writeMayHaveCompleted?: boolean;
181
503
  verification?: 'issueStillPresent' | 'verificationFailed';
504
+ summary?: OperationResultSummary;
505
+ operationRecordId?: string;
506
+ diagnosticIds?: string[];
507
+ effects?: OperationEffectFacts;
182
508
  };
509
+ export interface PortableResultIntentMetadata {
510
+ scope: Scope;
511
+ agentMode: 'automatic' | 'explicit';
512
+ }
183
513
  export interface OperationResultSummary {
184
514
  code: 'operationSucceeded' | 'operationPartial' | 'operationFailed';
185
515
  message: string;
186
516
  pluginId?: string;
187
517
  action?: PluginWriteOperation;
518
+ catalogAction?: Extract<OperationIntent, {
519
+ kind: 'catalogGeneration';
520
+ }>['action'];
521
+ catalogGeneration?: Pick<CatalogGenerationSyncResult, 'activeChanged' | 'outcome'> & {
522
+ catalogVersion: string;
523
+ };
188
524
  elapsedMs?: number;
189
525
  messages?: string[];
526
+ configApplied?: boolean;
527
+ configApplySkippedReason?: 'invalidConfig';
528
+ configScope?: Scope;
529
+ configApplyRetryAvailable?: boolean;
530
+ configRetryApply?: boolean;
531
+ configGroups?: Array<{
532
+ scope: Scope;
533
+ configSaved: boolean;
534
+ applyRequested: boolean;
535
+ applyStatus: ConfigSaveBatchGroupResult['applyStatus'];
536
+ errorCode?: string;
537
+ }>;
538
+ resetDisposition?: 'absent' | 'deletedFile' | 'unlinkedSymlink' | 'quarantinedDirectory';
539
+ quarantineBasename?: string;
540
+ changes?: string[];
541
+ warnings?: string[];
542
+ recoveryActions?: string[];
543
+ planFingerprint?: string;
544
+ diagnosticIds?: string[];
545
+ effects?: OperationEffectFacts;
546
+ batch?: {
547
+ requestedPluginIds: string[];
548
+ failedRequestedPluginIds: string[];
549
+ rootResults: PluginWriteBatchRootResult[];
550
+ retryTargets?: PluginWriteBatchTarget[];
551
+ groupCount: number;
552
+ };
553
+ task?: {
554
+ goal: PluginWriteTaskGoal;
555
+ requestedTargets: PluginWriteTaskTarget[];
556
+ rootResults: PluginWriteTaskRootResult[];
557
+ retryTargets?: PluginWriteTaskTarget[];
558
+ blockedTargets: PluginWriteTaskBlockedTarget[];
559
+ };
190
560
  portable?: {
191
561
  selectedSkills: string[];
192
562
  agentMode: 'automatic' | 'explicit';
193
563
  requestedAgents: string[];
564
+ attemptedTargets?: Array<{
565
+ skill: string;
566
+ agent?: string;
567
+ }>;
194
568
  scope: Scope;
195
569
  materializationDigest: string;
570
+ skillsCliVersion: string;
571
+ verified: Array<{
572
+ name: string;
573
+ scope?: string;
574
+ agents: string[];
575
+ }>;
196
576
  missing: Array<{
197
577
  skill: string;
198
578
  agent?: string;
199
579
  }>;
580
+ unknown: Array<{
581
+ skill: string;
582
+ agent?: string;
583
+ }>;
200
584
  verificationUnknown: boolean;
201
585
  recovery?: string;
202
586
  failureCode?: string;
@@ -208,6 +592,34 @@ export interface OperationResultSummary {
208
592
  state: 'completed' | 'kept' | 'failed' | 'skipped';
209
593
  relation?: 'requested' | 'direct' | 'transitive';
210
594
  requiredBy?: string[];
595
+ errorCode?: string;
596
+ diagnosticIds?: string[];
597
+ effects?: OperationEffectFacts;
598
+ }>;
599
+ }
600
+ export interface PluginWriteTaskRootResult {
601
+ pluginId: string;
602
+ state: 'completed' | 'kept' | 'partial' | 'failed' | 'notStarted' | 'blocked';
603
+ causeKeys: string[];
604
+ targets: Array<{
605
+ pluginId?: string;
606
+ platform: PlatformName;
607
+ scope: Scope;
608
+ state: 'completed' | 'kept' | 'failed' | 'skipped';
609
+ relation?: 'requested' | 'direct' | 'transitive';
610
+ errorCode?: string;
611
+ }>;
612
+ }
613
+ export interface PluginWriteBatchRootResult {
614
+ pluginId: string;
615
+ state: 'completed' | 'kept' | 'partial' | 'failed' | 'notStarted';
616
+ targets: Array<{
617
+ pluginId: string;
618
+ platform: PlatformName;
619
+ scope: Scope;
620
+ state: 'completed' | 'kept' | 'failed' | 'skipped';
621
+ relation: 'requested';
622
+ errorCode?: string;
211
623
  }>;
212
624
  }
213
625
  export interface PluginOperationProgressLine {
@@ -219,11 +631,58 @@ export interface PluginOperationProgressLine {
219
631
  state: 'pending' | 'running' | 'completed' | 'kept' | 'failed' | 'skipped';
220
632
  }
221
633
  export interface TuiStatusLoadResult {
222
- payload: StatusV4Payload;
223
- pluginSummaries: StatusV4PluginSummary[];
634
+ projectRoot?: string;
635
+ projectIntent?: {
636
+ state: 'ready';
637
+ roots: Array<{
638
+ pluginId: string;
639
+ platforms: PlatformName[];
640
+ }>;
641
+ } | {
642
+ state: 'absent';
643
+ } | {
644
+ state: 'invalid' | 'unavailable';
645
+ code: string;
646
+ message: string;
647
+ };
648
+ /** Compatibility input for older injected status fixtures. Production uses projectIntent. */
649
+ projectIntentRoots?: Array<{
650
+ pluginId: string;
651
+ platforms: PlatformName[];
652
+ }>;
653
+ cliChannel?: 'latest' | 'beta';
654
+ payload: StatusV8Payload;
655
+ pluginSummaries: StatusV8PluginSummary[];
656
+ targetRevisions?: StatusTargetRevision[];
224
657
  sourceDetails?: SourceDetailViewModel[];
658
+ configuredSources?: CatalogSource[];
225
659
  dependencyOverviews?: PluginDependencyOverviewViewModel[];
660
+ contentOverviews?: Record<string, PluginContentOverview>;
226
661
  portablePluginIds?: string[];
662
+ configStoreInventory?: Array<{
663
+ pluginId: string;
664
+ sourceId: string;
665
+ pluginName: string;
666
+ scope: Scope;
667
+ }>;
668
+ catalogGenerations?: CatalogSourceGenerationViewModel[];
669
+ sessionGenerationKeys?: Record<string, string>;
670
+ }
671
+ export interface ProjectIntentReminderTarget extends PluginWriteBatchTarget {
672
+ reasonCodes: string[];
673
+ }
674
+ export interface ProjectIntentReminder {
675
+ projectRoot: string;
676
+ signature: string;
677
+ actionableTargets: ProjectIntentReminderTarget[];
678
+ blockedTargets: ProjectIntentReminderTarget[];
679
+ unconfirmedTargets: ProjectIntentReminderTarget[];
680
+ }
681
+ export declare function projectCurrentIntentReminder(status: TuiStatusLoadResult): ProjectIntentReminder | undefined;
682
+ export interface InstallTargetOption {
683
+ platform: PlatformName;
684
+ compatible: boolean;
685
+ disabled?: string;
227
686
  }
228
687
  export interface SourceReferenceSummaryViewModel {
229
688
  blocked: boolean;
@@ -241,26 +700,32 @@ export interface SourceReferenceSummaryViewModel {
241
700
  }>;
242
701
  }
243
702
  export interface TuiControllerDependencies {
703
+ beginCatalogSession?: (options?: {
704
+ reuseValidatedGenerations?: boolean;
705
+ }) => void;
244
706
  loadStatus: (signal: AbortSignal) => Promise<TuiStatusLoadResult>;
245
- checkSource: (sourceId: string, signal: AbortSignal) => Promise<{
246
- sourceIdentity: string;
247
- requestedRef: string;
248
- }>;
707
+ loadPluginContent?: (pluginId: string, signal: AbortSignal) => Promise<PluginContentOverview>;
708
+ probeCatalogFreshness?: (sourceId: string, options: {
709
+ fullValidation: boolean;
710
+ }, signal: AbortSignal) => Promise<CatalogGenerationFreshnessResult>;
249
711
  inspectSourceRemoval?: (sourceId: string, signal: AbortSignal) => Promise<SourceReferenceSummaryViewModel>;
712
+ inspectCatalogStore?: (signal: AbortSignal) => Promise<CatalogStoreStatusResult>;
250
713
  captureEvidence: (intent: OperationIntent, signal?: AbortSignal) => Promise<OperationEvidence>;
714
+ recheckPortableInstall?: (receipt: PortableInstallReceipt, signal: AbortSignal) => Promise<PortableInstallReceipt>;
251
715
  validateIntent?: (intent: OperationIntent, signal: AbortSignal) => Promise<void>;
252
- executeIntent: (intent: OperationIntent, expectedEvidence: OperationEvidence) => Promise<unknown>;
716
+ prepareReviewEvidence?: (intent: OperationIntent, signal: AbortSignal, onStage: (stage: ReviewPreparationStageId) => void | Promise<void>, reusableCandidate?: CatalogSessionReusableCandidate) => Promise<OperationEvidence>;
717
+ previewDependencyPlacement?: (intent: Extract<OperationIntent, {
718
+ kind: 'pluginWrite';
719
+ }>, signal: AbortSignal) => Promise<ReconcileOperationPlan | undefined>;
720
+ executeIntent: (intent: OperationIntent, expectedEvidence: OperationEvidence, signal?: AbortSignal) => Promise<unknown>;
253
721
  getConfigGroups?: (pluginId: string, layer: {
254
722
  scope: Scope;
255
- projectLayer: ProjectConfigStoreLayer;
256
723
  }, signal: AbortSignal) => Promise<ConfigGroupViewModel[]>;
257
724
  getConfigPage?: (pluginId: string, layer: {
258
725
  scope: Scope | 'effective';
259
- projectLayer: ProjectConfigStoreLayer;
260
726
  }, signal: AbortSignal) => Promise<ConfigPageViewModel>;
261
727
  getConfigResetAvailability?: (pluginId: string, layer: {
262
728
  scope: Scope;
263
- projectLayer: ProjectConfigStoreLayer;
264
729
  }, signal: AbortSignal) => Promise<ConfigResetAvailability>;
265
730
  logError?: (error: unknown, code: string, context?: {
266
731
  privateConfigOperation: boolean;
@@ -272,19 +737,38 @@ export interface TuiControllerDependencies {
272
737
  }
273
738
  export interface ConfigResetAvailability {
274
739
  exists: boolean;
740
+ state: 'missing' | 'ready' | 'invalid';
741
+ targetKind?: 'absent' | 'regularFile' | 'symbolicLink' | 'directory' | 'special';
742
+ resettable?: boolean;
743
+ invalidCode?: ConfigInvalidStoreEvidence['code'];
275
744
  sourceIdentityPresent: boolean;
276
745
  sourceIdentity?: string;
277
746
  storeDigest?: string;
278
747
  }
748
+ export interface ForceCleanupCandidate {
749
+ pluginId: string;
750
+ platform: PlatformName;
751
+ scope: Scope;
752
+ actionCount: number;
753
+ }
279
754
  export interface TuiControllerSnapshot {
280
755
  phase: 'idle' | 'loading' | 'ready' | 'error' | 'disposed';
756
+ statusReadAtMs?: number;
757
+ cliChannel?: 'latest' | 'beta';
281
758
  router: TuiRouterSnapshot;
282
759
  viewModel?: TuiViewModel;
283
760
  sourceHealth: SourceHealthViewModel[];
761
+ catalogGenerations: CatalogSourceGenerationViewModel[];
762
+ catalogFreshness: CatalogSourceFreshnessViewModel[];
763
+ reloadRequiredSourceIds: string[];
284
764
  progress: RebuildProgressSnapshot;
285
765
  progressTargets: PluginOperationProgressLine[];
286
766
  activeReview?: OperationReviewModel;
767
+ reviewPreparation?: ReviewPreparationSnapshot;
287
768
  result?: OperationExecuteResult;
769
+ canResumeInstallDraft?: boolean;
770
+ operationHistorySummaries: OperationHistorySummary[];
771
+ portableResultSkills?: string[];
288
772
  loadError?: {
289
773
  code: string;
290
774
  message: string;
@@ -294,12 +778,42 @@ export interface TuiControllerSnapshot {
294
778
  requestedAgents: string[];
295
779
  scope: Scope;
296
780
  };
781
+ installPlacementDraft?: InstallPlacementDraftViewModel;
782
+ completionNotice?: {
783
+ pluginId: string;
784
+ title: string;
785
+ description: string;
786
+ operationRecordId?: string;
787
+ };
788
+ projectIntentReminder?: ProjectIntentReminder;
789
+ projectInventory?: ProjectInventoryViewModel;
790
+ projectInventoryRefresh: {
791
+ state: 'idle' | 'checking' | 'error';
792
+ checkedAtMs?: number;
793
+ errorCode?: string;
794
+ };
795
+ projectDeclarationAbsent?: boolean;
796
+ projectIntentIssue?: {
797
+ state: 'invalid' | 'unavailable';
798
+ code: string;
799
+ message: string;
800
+ };
297
801
  }
298
802
  export declare class TuiOperationBlockedError extends Error {
299
803
  readonly code: string;
300
- constructor(code: string, message: string);
804
+ readonly diagnostics?: SafeOperationDiagnostic[];
805
+ constructor(code: string, message: string, diagnostics?: readonly SafeOperationDiagnostic[]);
806
+ }
807
+ export declare class TuiConfigInvalidStoreError extends Error {
808
+ readonly code = "invalidConfigStores";
809
+ readonly evidence: ConfigInvalidStoreEvidence[];
810
+ constructor(evidence: ConfigInvalidStoreEvidence[]);
301
811
  }
812
+ export declare function pluginWriteBatchFailedRequestedTargets(execution: PluginWriteBatchExecutionResult): PluginWriteBatchTarget[];
813
+ export declare function pluginWriteBatchFailedRequestedPluginIds(execution: PluginWriteBatchExecutionResult): string[];
814
+ export declare function pluginWriteTaskFailedRequestedTargets(execution: PluginWriteTaskExecutionResult): PluginWriteTaskTarget[];
302
815
  export declare function operationEvidenceFingerprint(evidence: OperationEvidence): string;
816
+ export declare function operationEvidenceMatches(expected: OperationEvidence, current: OperationEvidence): boolean;
303
817
  export declare function userIssueKey(issue: Pick<UserIssueViewModel, 'category' | 'pluginId' | 'dependencyPluginId' | 'dependencyPlatform' | 'dependencyScope' | 'dependencyProject' | 'sourceId' | 'sourceIdentity' | 'platform' | 'scope'>): string;
304
818
  export declare function extractPortableError(error: unknown): {
305
819
  code: PortableBlockerCode;
@@ -311,57 +825,146 @@ export declare class TuiController {
311
825
  constructor(dependencies: TuiControllerDependencies, progressFeed?: RebuildProgressFeed);
312
826
  get snapshot(): TuiControllerSnapshot;
313
827
  subscribe(listener: (snapshot: TuiControllerSnapshot) => void): () => void;
828
+ get hasActiveWrite(): boolean;
829
+ get retiring(): boolean;
830
+ get hasSessionDraft(): boolean;
831
+ get externalDrafts(): ExternalDraftState[];
832
+ attachOperationHistory(history: OperationHistoryStore, epoch: number): void;
833
+ listOperationHistory(): OperationHistorySummary[];
834
+ getOperationDiagnostic(recordId: string): OperationDiagnosticDetail | undefined;
835
+ previewOperationReport(recordId: string): OperationReportPreview | undefined;
836
+ saveOperationReport(recordId: string, filePath?: string): Promise<SaveOperationReportResult>;
837
+ /** @internal Test-only observability for bounded private diagnostic ownership. */
838
+ operationDiagnosticRetentionCountForTests(): number;
839
+ recordUiFailure(error: unknown, context: {
840
+ code: string;
841
+ stage: string;
842
+ }): string;
843
+ beginRetirement(): void;
844
+ waitForWrites(): Promise<void>;
845
+ cancelAndWaitForReads(): Promise<boolean>;
846
+ goHome(options?: {
847
+ discardDrafts?: boolean;
848
+ }): boolean;
314
849
  load(): Promise<void>;
315
- refreshSource(sourceId: string): Promise<void>;
850
+ listProjectInventoryRoots(section?: 'declared' | 'extraInstalled'): ProjectInventoryRoot[];
851
+ getProjectInventoryRoot(pluginId: string): ProjectInventoryRoot | undefined;
852
+ refreshProjectInventory(): Promise<boolean>;
316
853
  push(route: TuiRoute, context?: TuiPageContext): void;
317
854
  hasPortableSkills(pluginId: string): boolean;
318
855
  preparePortableInstall(pluginId: string, navigation?: 'push' | 'replace'): Promise<PortableSkillSelectionViewModel>;
319
856
  refreshPortableInstallDraft(pluginId: string): Promise<PortableSkillSelectionViewModel>;
320
857
  togglePortableSkill(name: string): void;
321
858
  selectAllPortableSkills(): void;
859
+ clearPortableSkills(): void;
322
860
  setPortableAgentMode(mode: 'automatic' | 'explicit', requestedAgents?: string[]): void;
323
861
  setPortableScope(scope: Scope): void;
324
862
  buildPortableInstallReview(): Promise<OperationReviewModel>;
863
+ startPortableInstallReviewPreparation(): ReviewPreparationSnapshot;
864
+ recheckPortableResult(): Promise<PortableInstallReceipt>;
865
+ startPortableRetryReviewPreparation(): ReviewPreparationSnapshot;
325
866
  discardPortableDraft(): void;
326
867
  replace(route: TuiRoute, context?: TuiPageContext): void;
868
+ beginConfigFlow(pluginId: string): void;
869
+ beginSavedConfigRecovery(pluginId: string): void;
870
+ beginConfigSourceRecovery(sourceId: string): void;
871
+ getForceCleanupCandidate(pluginId: string, platform: PlatformName, scope: Scope): Promise<ForceCleanupCandidate | undefined>;
872
+ startForceCleanupReview(candidate: ForceCleanupCandidate): ReviewPreparationSnapshot;
873
+ configOrigin(pluginId: string): TuiRoute | undefined;
327
874
  updatePageContext(context: Partial<TuiPageContext>): void;
875
+ returnToConfigOverview(flowId: string | undefined, overviewFrameId: string | undefined, pluginId: string, context?: TuiPageContext): boolean;
876
+ configOverviewFrameId(flowId: string | undefined, pluginId: string): string | undefined;
328
877
  back(): void;
329
878
  discardSourceDraft(owner: string, returnRoute: Extract<TuiRoute, {
330
879
  name: 'sourceList' | 'sourceDetail';
331
880
  }>): void;
332
881
  leaveResult(target?: TuiRoute): void;
882
+ resumeResultDraft(): void;
333
883
  resetPortableFlowToPreview(pluginId: string, target?: TuiRoute, preserveDraft?: boolean): void;
884
+ beginInstallFlow(pluginId: string, rootScope: Scope): void;
885
+ setInstallRootScope(rootScope: Scope): void;
886
+ setInstallPlatforms(platforms: PlatformName[]): void;
887
+ setInstallRootTargets(targets: PluginWriteBatchTarget[]): void;
888
+ prepareInstallDependencyPlacement(): Promise<boolean>;
889
+ setDependencyScope(pluginId: string, platform: PlatformName, scope: Scope): Promise<void>;
890
+ resetDependencyScopes(): Promise<void>;
891
+ installPlacementIntent(): Extract<OperationIntent, {
892
+ kind: 'pluginWrite' | 'pluginWriteBatch';
893
+ }>;
334
894
  listPlugins(options: {
335
895
  mode: 'browse' | 'installed';
336
896
  sourceId?: string;
337
897
  query?: string;
898
+ installFilter?: PluginInstallFilter;
338
899
  }): PluginListItemViewModel[];
339
900
  getPluginOverview(pluginId: string): PluginListItemViewModel | undefined;
901
+ getPluginDetailSubject(pluginId: string): PluginDetailSubject | undefined;
902
+ getPluginContentOverview(pluginId: string): PluginContentOverview | undefined;
903
+ getPluginContentState(pluginId: string): 'idle' | 'loading' | 'ready';
904
+ loadPluginContent(pluginId: string): Promise<void>;
905
+ getPluginSourceIdentity(pluginId: string): string | undefined;
906
+ listCurrentProjectIntentRoots(): string[];
907
+ listPluginWriteBatchTargets(action: Exclude<BatchPluginWriteAction, 'install'>, pluginIds: readonly string[]): PluginWriteBatchTarget[];
908
+ listPluginInstallBatchTargets(pluginIds: readonly string[], platform: PlatformName | 'both', scope: Scope): PluginInstallBatchTarget[];
909
+ pluginHasInstallableTarget(pluginId: string): boolean;
340
910
  getPluginDependencyOverview(pluginId: string): PluginDependencyOverviewViewModel | undefined;
911
+ listPluginDependencyOverviews(): PluginDependencyOverviewViewModel[];
341
912
  getBlockingDependents(pluginId: string, platform: PlatformName, scope: Scope): PluginDependencyOverviewViewModel['dependents'];
342
913
  getPlatformPlacement(pluginId: string, platform: PlatformName): PluginListItemViewModel['installedPlacements'][number] | undefined;
343
- getTargetState(pluginId: string, platform: PlatformName, scope: Scope): StatusV4Payload['targets'][number]['state'] | undefined;
914
+ listInstallTargets(pluginId: string, scope: Scope): InstallTargetOption[];
915
+ getTargetState(pluginId: string, platform: PlatformName, scope: Scope): StatusV8Payload['targets'][number]['state'] | undefined;
344
916
  listSources(): TuiViewModel['sourceTabs'];
345
917
  getSourceOverview(sourceId: string): {
346
918
  source?: TuiViewModel['sourceTabs'][number];
347
919
  detail?: SourceDetailViewModel;
348
920
  health?: SourceHealthViewModel;
349
921
  };
922
+ getConfiguredSource(sourceId: string): CatalogSource | undefined;
923
+ getCatalogGeneration(sourceId: string): CatalogSourceGenerationViewModel | undefined;
924
+ getCatalogFreshness(sourceId: string): CatalogSourceFreshnessViewModel | undefined;
925
+ recheckCatalogSource(sourceId: string): Promise<void>;
926
+ recheckAllCatalogSources(): Promise<void>;
927
+ fullValidateCatalogSource(sourceId: string): Promise<void>;
928
+ setExternalDraftState(states?: ExternalDraftState[]): void;
929
+ beginPluginWriteBatch(): void;
930
+ startPluginWriteBatchReview(intent: PluginWriteBatchIntent): ReviewPreparationSnapshot;
931
+ startPluginWriteTaskReview(intent: PluginWriteTaskIntent, returnRoute?: TuiRoute): ReviewPreparationSnapshot;
932
+ beginNestedPluginWriteTask(route: Extract<TuiRoute, {
933
+ name: 'pluginWriteTask';
934
+ }>): void;
935
+ pluginWriteTaskReturnRoute(route: Extract<TuiRoute, {
936
+ name: 'pluginWriteTask';
937
+ }>): TuiRoute;
938
+ returnToPluginWriteTaskBatchSelection(flowId: string): boolean;
939
+ retryFailedPluginWriteBatch(): ReviewPreparationSnapshot | undefined;
940
+ retryFailedPluginWriteTask(): ReviewPreparationSnapshot | undefined;
941
+ catalogActivationBlockReason(): CatalogActivationBlockReason | undefined;
942
+ catalogSourceRecoveryBlockReason(intent?: Extract<OperationIntent, {
943
+ kind: 'catalogGeneration';
944
+ }>): CatalogActivationBlockReason | undefined;
945
+ getSessionCatalogVersion(sourceId: string): string | undefined;
946
+ reloadCatalog(options: {
947
+ sourceId: string;
948
+ }): Promise<boolean>;
350
949
  inspectSourceRemoval(sourceId: string): Promise<SourceReferenceSummaryViewModel>;
950
+ inspectCatalogStore(): Promise<CatalogStoreStatusResult>;
351
951
  getConfigGroups(pluginId: string, layer: {
352
952
  scope: Scope;
353
- projectLayer: ProjectConfigStoreLayer;
354
953
  }): Promise<ConfigGroupViewModel[]>;
355
954
  getConfigPage(pluginId: string, layer: {
356
955
  scope: Scope | 'effective';
357
- projectLayer: ProjectConfigStoreLayer;
358
956
  }, signal?: AbortSignal): Promise<ConfigPageViewModel>;
957
+ previewConfigSaveImpact(intent: Extract<OperationIntent, {
958
+ kind: 'configSave';
959
+ }>, signal?: AbortSignal): Promise<NonNullable<OperationEvidence['config']>>;
359
960
  getConfigResetAvailability(pluginId: string, layer: {
360
961
  scope: Scope;
361
- projectLayer: ProjectConfigStoreLayer;
362
962
  }): Promise<ConfigResetAvailability>;
363
963
  listUserIssues(): UserIssueViewModel[];
964
+ listPluginWriteTaskCandidates(goal: PluginWriteTaskGoal): PluginWriteTaskCandidate[];
364
965
  buildOperationReview(intent: OperationIntent, returnRoute?: TuiRoute): Promise<OperationReviewModel>;
966
+ startReviewPreparation(intent: OperationIntent, returnRoute?: TuiRoute): ReviewPreparationSnapshot;
967
+ retryReviewPreparation(): ReviewPreparationSnapshot | undefined;
365
968
  executeOperation(reviewToken: string): Promise<OperationExecuteResult>;
366
969
  dispose(): void;
367
970
  }