@lesliechan721/aw 0.1.0-beta.3 → 0.1.0-beta.30

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