@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
@@ -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, StatusTargetRevision } 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 PluginInstallFilter, 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,12 +386,47 @@ 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
+ }>;
136
428
  }
137
- export type ReviewPreparationStageId = 'validate' | 'status' | 'catalog' | 'inventory' | 'dependencyPlan' | 'config' | 'portable' | 'evidence';
429
+ export type ReviewPreparationStageId = 'refresh' | 'validate' | 'status' | 'catalog' | 'inventory' | 'dependencyPlan' | 'config' | 'portable' | 'evidence';
138
430
  export interface ReviewPreparationStage {
139
431
  id: ReviewPreparationStageId;
140
432
  label: string;
@@ -142,12 +434,14 @@ export interface ReviewPreparationStage {
142
434
  }
143
435
  export interface ReviewPreparationSnapshot {
144
436
  id: string;
145
- intent: OperationIntent;
437
+ operationKind: OperationIntent['kind'];
438
+ subject: string;
146
439
  state: 'running' | 'failed';
147
440
  stages: ReviewPreparationStage[];
148
- currentLabel: string;
441
+ currentStage?: ReviewPreparationStageId;
149
442
  code?: 'reviewPreparationFailed';
150
443
  message?: string;
444
+ operationRecordId?: string;
151
445
  }
152
446
  export type OperationExecuteResult = {
153
447
  state: 'succeeded';
@@ -159,7 +453,11 @@ export type OperationExecuteResult = {
159
453
  }>['action'];
160
454
  pluginId?: string;
161
455
  originIssue?: IssueOrigin;
456
+ portableIntent?: PortableResultIntentMetadata;
162
457
  returnRoute?: TuiRoute;
458
+ operationRecordId?: string;
459
+ diagnosticIds?: string[];
460
+ effects?: OperationEffectFacts;
163
461
  } | {
164
462
  state: 'partial';
165
463
  operationId: string;
@@ -170,7 +468,11 @@ export type OperationExecuteResult = {
170
468
  }>['action'];
171
469
  pluginId?: string;
172
470
  originIssue?: IssueOrigin;
471
+ portableIntent?: PortableResultIntentMetadata;
173
472
  returnRoute?: TuiRoute;
473
+ operationRecordId?: string;
474
+ diagnosticIds?: string[];
475
+ effects?: OperationEffectFacts;
174
476
  } | {
175
477
  state: 'stale';
176
478
  operationId: string;
@@ -180,6 +482,10 @@ export type OperationExecuteResult = {
180
482
  }>['action'];
181
483
  review: OperationReviewModel;
182
484
  originIssue?: IssueOrigin;
485
+ portableIntent?: PortableResultIntentMetadata;
486
+ operationRecordId?: string;
487
+ diagnosticIds?: string[];
488
+ effects?: OperationEffectFacts;
183
489
  } | {
184
490
  state: 'blocked';
185
491
  operationId: string;
@@ -192,28 +498,89 @@ export type OperationExecuteResult = {
192
498
  pluginId?: string;
193
499
  returnRoute?: TuiRoute;
194
500
  originIssue?: IssueOrigin;
501
+ portableIntent?: PortableResultIntentMetadata;
195
502
  writeMayHaveCompleted?: boolean;
196
503
  verification?: 'issueStillPresent' | 'verificationFailed';
197
504
  summary?: OperationResultSummary;
505
+ operationRecordId?: string;
506
+ diagnosticIds?: string[];
507
+ effects?: OperationEffectFacts;
198
508
  };
509
+ export interface PortableResultIntentMetadata {
510
+ scope: Scope;
511
+ agentMode: 'automatic' | 'explicit';
512
+ }
199
513
  export interface OperationResultSummary {
200
514
  code: 'operationSucceeded' | 'operationPartial' | 'operationFailed';
201
515
  message: string;
202
516
  pluginId?: string;
203
517
  action?: PluginWriteOperation;
518
+ catalogAction?: Extract<OperationIntent, {
519
+ kind: 'catalogGeneration';
520
+ }>['action'];
521
+ catalogGeneration?: Pick<CatalogGenerationSyncResult, 'activeChanged' | 'outcome'> & {
522
+ catalogVersion: string;
523
+ };
204
524
  elapsedMs?: number;
205
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
+ };
206
560
  portable?: {
207
561
  selectedSkills: string[];
208
562
  agentMode: 'automatic' | 'explicit';
209
563
  requestedAgents: string[];
564
+ attemptedTargets?: Array<{
565
+ skill: string;
566
+ agent?: string;
567
+ }>;
210
568
  scope: Scope;
211
569
  materializationDigest: string;
212
570
  skillsCliVersion: string;
571
+ verified: Array<{
572
+ name: string;
573
+ scope?: string;
574
+ agents: string[];
575
+ }>;
213
576
  missing: Array<{
214
577
  skill: string;
215
578
  agent?: string;
216
579
  }>;
580
+ unknown: Array<{
581
+ skill: string;
582
+ agent?: string;
583
+ }>;
217
584
  verificationUnknown: boolean;
218
585
  recovery?: string;
219
586
  failureCode?: string;
@@ -225,7 +592,34 @@ export interface OperationResultSummary {
225
592
  state: 'completed' | 'kept' | 'failed' | 'skipped';
226
593
  relation?: 'requested' | 'direct' | 'transitive';
227
594
  requiredBy?: string[];
228
- errorCode?: 'dependencyStillRequired';
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;
229
623
  }>;
230
624
  }
231
625
  export interface PluginOperationProgressLine {
@@ -237,13 +631,54 @@ export interface PluginOperationProgressLine {
237
631
  state: 'pending' | 'running' | 'completed' | 'kept' | 'failed' | 'skipped';
238
632
  }
239
633
  export interface TuiStatusLoadResult {
240
- payload: StatusV4Payload;
241
- 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[];
242
656
  targetRevisions?: StatusTargetRevision[];
243
657
  sourceDetails?: SourceDetailViewModel[];
658
+ configuredSources?: CatalogSource[];
244
659
  dependencyOverviews?: PluginDependencyOverviewViewModel[];
660
+ contentOverviews?: Record<string, PluginContentOverview>;
245
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[];
246
680
  }
681
+ export declare function projectCurrentIntentReminder(status: TuiStatusLoadResult): ProjectIntentReminder | undefined;
247
682
  export interface InstallTargetOption {
248
683
  platform: PlatformName;
249
684
  compatible: boolean;
@@ -265,27 +700,32 @@ export interface SourceReferenceSummaryViewModel {
265
700
  }>;
266
701
  }
267
702
  export interface TuiControllerDependencies {
703
+ beginCatalogSession?: (options?: {
704
+ reuseValidatedGenerations?: boolean;
705
+ }) => void;
268
706
  loadStatus: (signal: AbortSignal) => Promise<TuiStatusLoadResult>;
269
- checkSource: (sourceId: string, signal: AbortSignal) => Promise<{
270
- sourceIdentity: string;
271
- requestedRef: string;
272
- }>;
707
+ loadPluginContent?: (pluginId: string, signal: AbortSignal) => Promise<PluginContentOverview>;
708
+ probeCatalogFreshness?: (sourceId: string, options: {
709
+ fullValidation: boolean;
710
+ }, signal: AbortSignal) => Promise<CatalogGenerationFreshnessResult>;
273
711
  inspectSourceRemoval?: (sourceId: string, signal: AbortSignal) => Promise<SourceReferenceSummaryViewModel>;
712
+ inspectCatalogStore?: (signal: AbortSignal) => Promise<CatalogStoreStatusResult>;
274
713
  captureEvidence: (intent: OperationIntent, signal?: AbortSignal) => Promise<OperationEvidence>;
714
+ recheckPortableInstall?: (receipt: PortableInstallReceipt, signal: AbortSignal) => Promise<PortableInstallReceipt>;
275
715
  validateIntent?: (intent: OperationIntent, signal: AbortSignal) => Promise<void>;
276
- prepareReviewEvidence?: (intent: OperationIntent, signal: AbortSignal, onStage: (stage: ReviewPreparationStageId) => void | Promise<void>) => Promise<OperationEvidence>;
277
- 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>;
278
721
  getConfigGroups?: (pluginId: string, layer: {
279
722
  scope: Scope;
280
- projectLayer: ProjectConfigStoreLayer;
281
723
  }, signal: AbortSignal) => Promise<ConfigGroupViewModel[]>;
282
724
  getConfigPage?: (pluginId: string, layer: {
283
725
  scope: Scope | 'effective';
284
- projectLayer: ProjectConfigStoreLayer;
285
726
  }, signal: AbortSignal) => Promise<ConfigPageViewModel>;
286
727
  getConfigResetAvailability?: (pluginId: string, layer: {
287
728
  scope: Scope;
288
- projectLayer: ProjectConfigStoreLayer;
289
729
  }, signal: AbortSignal) => Promise<ConfigResetAvailability>;
290
730
  logError?: (error: unknown, code: string, context?: {
291
731
  privateConfigOperation: boolean;
@@ -297,20 +737,38 @@ export interface TuiControllerDependencies {
297
737
  }
298
738
  export interface ConfigResetAvailability {
299
739
  exists: boolean;
740
+ state: 'missing' | 'ready' | 'invalid';
741
+ targetKind?: 'absent' | 'regularFile' | 'symbolicLink' | 'directory' | 'special';
742
+ resettable?: boolean;
743
+ invalidCode?: ConfigInvalidStoreEvidence['code'];
300
744
  sourceIdentityPresent: boolean;
301
745
  sourceIdentity?: string;
302
746
  storeDigest?: string;
303
747
  }
748
+ export interface ForceCleanupCandidate {
749
+ pluginId: string;
750
+ platform: PlatformName;
751
+ scope: Scope;
752
+ actionCount: number;
753
+ }
304
754
  export interface TuiControllerSnapshot {
305
755
  phase: 'idle' | 'loading' | 'ready' | 'error' | 'disposed';
756
+ statusReadAtMs?: number;
757
+ cliChannel?: 'latest' | 'beta';
306
758
  router: TuiRouterSnapshot;
307
759
  viewModel?: TuiViewModel;
308
760
  sourceHealth: SourceHealthViewModel[];
761
+ catalogGenerations: CatalogSourceGenerationViewModel[];
762
+ catalogFreshness: CatalogSourceFreshnessViewModel[];
763
+ reloadRequiredSourceIds: string[];
309
764
  progress: RebuildProgressSnapshot;
310
765
  progressTargets: PluginOperationProgressLine[];
311
766
  activeReview?: OperationReviewModel;
312
767
  reviewPreparation?: ReviewPreparationSnapshot;
313
768
  result?: OperationExecuteResult;
769
+ canResumeInstallDraft?: boolean;
770
+ operationHistorySummaries: OperationHistorySummary[];
771
+ portableResultSkills?: string[];
314
772
  loadError?: {
315
773
  code: string;
316
774
  message: string;
@@ -320,12 +778,42 @@ export interface TuiControllerSnapshot {
320
778
  requestedAgents: string[];
321
779
  scope: Scope;
322
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
+ };
323
801
  }
324
802
  export declare class TuiOperationBlockedError extends Error {
325
803
  readonly code: string;
326
- 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[]);
327
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[];
328
815
  export declare function operationEvidenceFingerprint(evidence: OperationEvidence): string;
816
+ export declare function operationEvidenceMatches(expected: OperationEvidence, current: OperationEvidence): boolean;
329
817
  export declare function userIssueKey(issue: Pick<UserIssueViewModel, 'category' | 'pluginId' | 'dependencyPluginId' | 'dependencyPlatform' | 'dependencyScope' | 'dependencyProject' | 'sourceId' | 'sourceIdentity' | 'platform' | 'scope'>): string;
330
818
  export declare function extractPortableError(error: unknown): {
331
819
  code: PortableBlockerCode;
@@ -337,29 +825,72 @@ export declare class TuiController {
337
825
  constructor(dependencies: TuiControllerDependencies, progressFeed?: RebuildProgressFeed);
338
826
  get snapshot(): TuiControllerSnapshot;
339
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;
340
849
  load(): Promise<void>;
341
- refreshSource(sourceId: string): Promise<void>;
850
+ listProjectInventoryRoots(section?: 'declared' | 'extraInstalled'): ProjectInventoryRoot[];
851
+ getProjectInventoryRoot(pluginId: string): ProjectInventoryRoot | undefined;
852
+ refreshProjectInventory(): Promise<boolean>;
342
853
  push(route: TuiRoute, context?: TuiPageContext): void;
343
854
  hasPortableSkills(pluginId: string): boolean;
344
855
  preparePortableInstall(pluginId: string, navigation?: 'push' | 'replace'): Promise<PortableSkillSelectionViewModel>;
345
856
  refreshPortableInstallDraft(pluginId: string): Promise<PortableSkillSelectionViewModel>;
346
857
  togglePortableSkill(name: string): void;
347
858
  selectAllPortableSkills(): void;
859
+ clearPortableSkills(): void;
348
860
  setPortableAgentMode(mode: 'automatic' | 'explicit', requestedAgents?: string[]): void;
349
861
  setPortableScope(scope: Scope): void;
350
862
  buildPortableInstallReview(): Promise<OperationReviewModel>;
351
863
  startPortableInstallReviewPreparation(): ReviewPreparationSnapshot;
864
+ recheckPortableResult(): Promise<PortableInstallReceipt>;
865
+ startPortableRetryReviewPreparation(): ReviewPreparationSnapshot;
352
866
  discardPortableDraft(): void;
353
867
  replace(route: TuiRoute, context?: TuiPageContext): void;
354
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;
355
873
  configOrigin(pluginId: string): TuiRoute | undefined;
356
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;
357
877
  back(): void;
358
878
  discardSourceDraft(owner: string, returnRoute: Extract<TuiRoute, {
359
879
  name: 'sourceList' | 'sourceDetail';
360
880
  }>): void;
361
881
  leaveResult(target?: TuiRoute): void;
882
+ resumeResultDraft(): void;
362
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
+ }>;
363
894
  listPlugins(options: {
364
895
  mode: 'browse' | 'installed';
365
896
  sourceId?: string;
@@ -367,31 +898,70 @@ export declare class TuiController {
367
898
  installFilter?: PluginInstallFilter;
368
899
  }): PluginListItemViewModel[];
369
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;
370
910
  getPluginDependencyOverview(pluginId: string): PluginDependencyOverviewViewModel | undefined;
911
+ listPluginDependencyOverviews(): PluginDependencyOverviewViewModel[];
371
912
  getBlockingDependents(pluginId: string, platform: PlatformName, scope: Scope): PluginDependencyOverviewViewModel['dependents'];
372
913
  getPlatformPlacement(pluginId: string, platform: PlatformName): PluginListItemViewModel['installedPlacements'][number] | undefined;
373
914
  listInstallTargets(pluginId: string, scope: Scope): InstallTargetOption[];
374
- getTargetState(pluginId: string, platform: PlatformName, scope: Scope): StatusV4Payload['targets'][number]['state'] | undefined;
915
+ getTargetState(pluginId: string, platform: PlatformName, scope: Scope): StatusV8Payload['targets'][number]['state'] | undefined;
375
916
  listSources(): TuiViewModel['sourceTabs'];
376
917
  getSourceOverview(sourceId: string): {
377
918
  source?: TuiViewModel['sourceTabs'][number];
378
919
  detail?: SourceDetailViewModel;
379
920
  health?: SourceHealthViewModel;
380
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>;
381
949
  inspectSourceRemoval(sourceId: string): Promise<SourceReferenceSummaryViewModel>;
950
+ inspectCatalogStore(): Promise<CatalogStoreStatusResult>;
382
951
  getConfigGroups(pluginId: string, layer: {
383
952
  scope: Scope;
384
- projectLayer: ProjectConfigStoreLayer;
385
953
  }): Promise<ConfigGroupViewModel[]>;
386
954
  getConfigPage(pluginId: string, layer: {
387
955
  scope: Scope | 'effective';
388
- projectLayer: ProjectConfigStoreLayer;
389
956
  }, signal?: AbortSignal): Promise<ConfigPageViewModel>;
957
+ previewConfigSaveImpact(intent: Extract<OperationIntent, {
958
+ kind: 'configSave';
959
+ }>, signal?: AbortSignal): Promise<NonNullable<OperationEvidence['config']>>;
390
960
  getConfigResetAvailability(pluginId: string, layer: {
391
961
  scope: Scope;
392
- projectLayer: ProjectConfigStoreLayer;
393
962
  }): Promise<ConfigResetAvailability>;
394
963
  listUserIssues(): UserIssueViewModel[];
964
+ listPluginWriteTaskCandidates(goal: PluginWriteTaskGoal): PluginWriteTaskCandidate[];
395
965
  buildOperationReview(intent: OperationIntent, returnRoute?: TuiRoute): Promise<OperationReviewModel>;
396
966
  startReviewPreparation(intent: OperationIntent, returnRoute?: TuiRoute): ReviewPreparationSnapshot;
397
967
  retryReviewPreparation(): ReviewPreparationSnapshot | undefined;