@lesliechan721/aw 0.1.0-beta.10 → 0.1.0-beta.12

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 (227) hide show
  1. package/dist/authoring/assets/aw-config.d.mts +1 -50
  2. package/dist/authoring/assets/aw-config.mjs +58 -928
  3. package/dist/authoring/assets/aw-config.mjs.map +1 -1
  4. package/dist/authoring/scripts/init-plugin.mjs +28 -33
  5. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  6. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +1 -0
  7. package/dist/authoring/scripts/lib/plugin-version-check.mjs +229 -8
  8. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  9. package/dist/authoring/scripts/validate-plugin.mjs +159 -48
  10. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  11. package/dist/scripts/bundle-plugins.js +18 -4
  12. package/dist/scripts/bundle-plugins.js.map +1 -1
  13. package/dist/scripts/test-plugin-scripts.d.ts +2 -0
  14. package/dist/scripts/test-plugin-scripts.js +21 -5
  15. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  16. package/dist/src/commands/aw-capabilities.d.ts +1 -1
  17. package/dist/src/commands/aw-capabilities.js +1 -1
  18. package/dist/src/commands/aw-capabilities.js.map +1 -1
  19. package/dist/src/commands/catalog-dev-source.d.ts +6 -3
  20. package/dist/src/commands/catalog-dev-source.js +96 -35
  21. package/dist/src/commands/catalog-dev-source.js.map +1 -1
  22. package/dist/src/commands/catalog-publication-inspection.d.ts +1 -1
  23. package/dist/src/commands/catalog-publication-inspection.js +54 -8
  24. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  25. package/dist/src/commands/catalog-publication-journal.js +1 -1
  26. package/dist/src/commands/catalog-publication-journal.js.map +1 -1
  27. package/dist/src/commands/catalog-source.d.ts +19 -4
  28. package/dist/src/commands/catalog-source.js +121 -12
  29. package/dist/src/commands/catalog-source.js.map +1 -1
  30. package/dist/src/commands/catalog-store.d.ts +26 -7
  31. package/dist/src/commands/catalog-store.js +361 -42
  32. package/dist/src/commands/catalog-store.js.map +1 -1
  33. package/dist/src/commands/console.js +28 -17
  34. package/dist/src/commands/console.js.map +1 -1
  35. package/dist/src/commands/operation-plan.d.ts +2 -1
  36. package/dist/src/commands/operation-plan.js +24 -0
  37. package/dist/src/commands/operation-plan.js.map +1 -1
  38. package/dist/src/commands/operation-planner.d.ts +2 -2
  39. package/dist/src/commands/operation-planner.js +22 -20
  40. package/dist/src/commands/operation-planner.js.map +1 -1
  41. package/dist/src/commands/options.d.ts +2 -2
  42. package/dist/src/commands/options.js +18 -4
  43. package/dist/src/commands/options.js.map +1 -1
  44. package/dist/src/commands/plugin-capabilities.js +2 -2
  45. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  46. package/dist/src/commands/rebuild-command.d.ts +19 -0
  47. package/dist/src/commands/rebuild-command.js +828 -283
  48. package/dist/src/commands/rebuild-command.js.map +1 -1
  49. package/dist/src/commands/rebuild-integration.d.ts +25 -47
  50. package/dist/src/commands/rebuild-integration.js +1176 -1016
  51. package/dist/src/commands/rebuild-integration.js.map +1 -1
  52. package/dist/src/commands/rebuild-operations.d.ts +50 -12
  53. package/dist/src/commands/rebuild-operations.js +207 -101
  54. package/dist/src/commands/rebuild-operations.js.map +1 -1
  55. package/dist/src/commands/status-v6.d.ts +21 -2
  56. package/dist/src/commands/status-v6.js +163 -31
  57. package/dist/src/commands/status-v6.js.map +1 -1
  58. package/dist/src/commands/sync-command.d.ts +17 -0
  59. package/dist/src/commands/sync-command.js +45 -37
  60. package/dist/src/commands/sync-command.js.map +1 -1
  61. package/dist/src/commands/write-commands.d.ts +5 -0
  62. package/dist/src/commands/write-commands.js +50 -3
  63. package/dist/src/commands/write-commands.js.map +1 -1
  64. package/dist/src/generators/local-plugin.js +14 -4
  65. package/dist/src/generators/local-plugin.js.map +1 -1
  66. package/dist/src/index.js +260 -91
  67. package/dist/src/index.js.map +1 -1
  68. package/dist/src/output/command-receipt.js +1 -3
  69. package/dist/src/output/command-receipt.js.map +1 -1
  70. package/dist/src/output/rebuild-progress.js +1 -3
  71. package/dist/src/output/rebuild-progress.js.map +1 -1
  72. package/dist/src/portable/materializer.js +10 -8
  73. package/dist/src/portable/materializer.js.map +1 -1
  74. package/dist/src/tui/catalog-generation.js +41 -1
  75. package/dist/src/tui/catalog-generation.js.map +1 -1
  76. package/dist/src/tui/catalog-sources/session.d.ts +1 -0
  77. package/dist/src/tui/catalog-sources/session.js +16 -3
  78. package/dist/src/tui/catalog-sources/session.js.map +1 -1
  79. package/dist/src/tui/catalog-sources/types.d.ts +3 -2
  80. package/dist/src/tui/components.d.ts +4 -0
  81. package/dist/src/tui/components.js +36 -24
  82. package/dist/src/tui/components.js.map +1 -1
  83. package/dist/src/tui/console-app-v4.d.ts +13 -4
  84. package/dist/src/tui/console-app-v4.js +2065 -857
  85. package/dist/src/tui/console-app-v4.js.map +1 -1
  86. package/dist/src/tui/controller-runtime.js +731 -62
  87. package/dist/src/tui/controller-runtime.js.map +1 -1
  88. package/dist/src/tui/controller.d.ts +156 -10
  89. package/dist/src/tui/controller.js +1187 -163
  90. package/dist/src/tui/controller.js.map +1 -1
  91. package/dist/src/tui/diagnostic-projection.d.ts +22 -0
  92. package/dist/src/tui/diagnostic-projection.js +437 -0
  93. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  94. package/dist/src/tui/diagnostics.d.ts +1 -1
  95. package/dist/src/tui/diagnostics.js +7 -2
  96. package/dist/src/tui/diagnostics.js.map +1 -1
  97. package/dist/src/tui/glossary.d.ts +23 -0
  98. package/dist/src/tui/glossary.js +42 -0
  99. package/dist/src/tui/glossary.js.map +1 -0
  100. package/dist/src/tui/index.d.ts +4 -1
  101. package/dist/src/tui/index.js +4 -1
  102. package/dist/src/tui/index.js.map +1 -1
  103. package/dist/src/tui/keys.d.ts +44 -0
  104. package/dist/src/tui/keys.js +43 -15
  105. package/dist/src/tui/keys.js.map +1 -1
  106. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  107. package/dist/src/tui/lifecycle-action-view.js +34 -0
  108. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  109. package/dist/src/tui/model.d.ts +12 -2
  110. package/dist/src/tui/model.js +128 -52
  111. package/dist/src/tui/model.js.map +1 -1
  112. package/dist/src/tui/operation-diagnostic-screens.d.ts +21 -0
  113. package/dist/src/tui/operation-diagnostic-screens.js +101 -0
  114. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  115. package/dist/src/tui/operation-history.d.ts +80 -0
  116. package/dist/src/tui/operation-history.js +130 -0
  117. package/dist/src/tui/operation-history.js.map +1 -0
  118. package/dist/src/tui/operation-review-planner.js +366 -99
  119. package/dist/src/tui/operation-review-planner.js.map +1 -1
  120. package/dist/src/tui/router.d.ts +82 -17
  121. package/dist/src/tui/router.js +186 -38
  122. package/dist/src/tui/router.js.map +1 -1
  123. package/dist/src/tui/screen-registry.d.ts +546 -0
  124. package/dist/src/tui/screen-registry.js +179 -0
  125. package/dist/src/tui/screen-registry.js.map +1 -0
  126. package/dist/src/tui/session-console-app.d.ts +6 -0
  127. package/dist/src/tui/session-console-app.js +13 -0
  128. package/dist/src/tui/session-console-app.js.map +1 -0
  129. package/dist/src/tui/session-host.d.ts +44 -0
  130. package/dist/src/tui/session-host.js +197 -0
  131. package/dist/src/tui/session-host.js.map +1 -0
  132. package/dist/src/types.d.ts +64 -3
  133. package/dist/src/types.js +1 -1
  134. package/dist/src/types.js.map +1 -1
  135. package/dist/src/utils/agent-version.js +1 -1
  136. package/dist/src/utils/agent-version.js.map +1 -1
  137. package/dist/src/utils/artifact-plan.d.ts +2 -2
  138. package/dist/src/utils/artifact-plan.js +8 -6
  139. package/dist/src/utils/artifact-plan.js.map +1 -1
  140. package/dist/src/utils/artifact-renderer.d.ts +2 -1
  141. package/dist/src/utils/artifact-renderer.js +139 -120
  142. package/dist/src/utils/artifact-renderer.js.map +1 -1
  143. package/dist/src/utils/artifact-request.d.ts +5 -0
  144. package/dist/src/utils/artifact-request.js +40 -0
  145. package/dist/src/utils/artifact-request.js.map +1 -1
  146. package/dist/src/utils/bundle-layout.js +4 -4
  147. package/dist/src/utils/bundle-layout.js.map +1 -1
  148. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  149. package/dist/src/utils/catalog-capability-projection.js +14 -0
  150. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  151. package/dist/src/utils/catalog-generation-resolver.d.ts +14 -2
  152. package/dist/src/utils/catalog-generation-resolver.js +49 -27
  153. package/dist/src/utils/catalog-generation-resolver.js.map +1 -1
  154. package/dist/src/utils/catalog-generation-service.d.ts +8 -1
  155. package/dist/src/utils/catalog-generation-service.js +81 -47
  156. package/dist/src/utils/catalog-generation-service.js.map +1 -1
  157. package/dist/src/utils/catalog-generation-store.d.ts +1 -0
  158. package/dist/src/utils/catalog-generation-store.js +60 -5
  159. package/dist/src/utils/catalog-generation-store.js.map +1 -1
  160. package/dist/src/utils/catalog-operation-context.js +1 -0
  161. package/dist/src/utils/catalog-operation-context.js.map +1 -1
  162. package/dist/src/utils/catalog-public-error.js +4 -0
  163. package/dist/src/utils/catalog-public-error.js.map +1 -1
  164. package/dist/src/utils/catalog-source-impact.d.ts +3 -2
  165. package/dist/src/utils/catalog-source-impact.js +142 -20
  166. package/dist/src/utils/catalog-source-impact.js.map +1 -1
  167. package/dist/src/utils/catalog-source-references.js +95 -9
  168. package/dist/src/utils/catalog-source-references.js.map +1 -1
  169. package/dist/src/utils/catalog-sources.d.ts +1 -1
  170. package/dist/src/utils/catalog-sources.js +19 -3
  171. package/dist/src/utils/catalog-sources.js.map +1 -1
  172. package/dist/src/utils/codex-manager.js +8 -0
  173. package/dist/src/utils/codex-manager.js.map +1 -1
  174. package/dist/src/utils/codex-native-observation.d.ts +34 -1
  175. package/dist/src/utils/codex-native-observation.js +132 -0
  176. package/dist/src/utils/codex-native-observation.js.map +1 -1
  177. package/dist/src/utils/codex-reconciler.d.ts +0 -2
  178. package/dist/src/utils/codex-reconciler.js.map +1 -1
  179. package/dist/src/utils/codex-shared-native.d.ts +2 -26
  180. package/dist/src/utils/codex-shared-native.js +8 -82
  181. package/dist/src/utils/codex-shared-native.js.map +1 -1
  182. package/dist/src/utils/git-catalog-provider.d.ts +3 -0
  183. package/dist/src/utils/git-catalog-provider.js +40 -1
  184. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  185. package/dist/src/utils/local-marketplace.d.ts +1 -0
  186. package/dist/src/utils/local-marketplace.js +69 -73
  187. package/dist/src/utils/local-marketplace.js.map +1 -1
  188. package/dist/src/utils/multi-source-catalog.js +1 -0
  189. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  190. package/dist/src/utils/native-cli.d.ts +9 -4
  191. package/dist/src/utils/native-cli.js +280 -34
  192. package/dist/src/utils/native-cli.js.map +1 -1
  193. package/dist/src/utils/path-catalog-provider.js +2 -0
  194. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  195. package/dist/src/utils/plugin-config-impact.d.ts +33 -0
  196. package/dist/src/utils/plugin-config-impact.js +298 -0
  197. package/dist/src/utils/plugin-config-impact.js.map +1 -0
  198. package/dist/src/utils/plugin-config-write.d.ts +36 -14
  199. package/dist/src/utils/plugin-config-write.js +709 -225
  200. package/dist/src/utils/plugin-config-write.js.map +1 -1
  201. package/dist/src/utils/plugin-config.d.ts +58 -4
  202. package/dist/src/utils/plugin-config.js +328 -60
  203. package/dist/src/utils/plugin-config.js.map +1 -1
  204. package/dist/src/utils/plugin-scripts.d.ts +20 -12
  205. package/dist/src/utils/plugin-scripts.js +389 -114
  206. package/dist/src/utils/plugin-scripts.js.map +1 -1
  207. package/dist/src/utils/process-tree.d.ts +2 -2
  208. package/dist/src/utils/process-tree.js +1 -1
  209. package/dist/src/utils/process-tree.js.map +1 -1
  210. package/dist/src/utils/project-boundary.d.ts +11 -1
  211. package/dist/src/utils/project-boundary.js +33 -11
  212. package/dist/src/utils/project-boundary.js.map +1 -1
  213. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  214. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  215. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  216. package/dist/src/utils/sensitive-content.d.ts +4 -0
  217. package/dist/src/utils/sensitive-content.js +36 -0
  218. package/dist/src/utils/sensitive-content.js.map +1 -0
  219. package/dist/src/utils/windows-claude-shim.d.ts +9 -0
  220. package/dist/src/utils/windows-claude-shim.js +141 -0
  221. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  222. package/dist/vitest.config.js +91 -10
  223. package/dist/vitest.config.js.map +1 -1
  224. package/package.json +9 -9
  225. package/dist/authoring/templates/aw-config-runtime.d.mts +0 -2
  226. package/dist/authoring/templates/aw-config-runtime.mjs +0 -407
  227. package/dist/authoring/templates/aw-config-runtime.mjs.map +0 -1
@@ -4,16 +4,74 @@ import type { CatalogSourceUpdate } from '../utils/catalog-sources.js';
4
4
  import type { CatalogGenerationFreshnessState, CatalogGenerationFreshnessResult } from '../utils/catalog-generation-service.js';
5
5
  import type { StatusV7Payload, StatusV7PluginSummary, StatusTargetRevision } from '../commands/status-v6.js';
6
6
  import type { ReconcileOperationPlan } from '../commands/reconcile-operation-plan.js';
7
+ import type { RebuildCommandResult } from '../commands/rebuild-command.js';
7
8
  import type { OfflineCleanupTargetEvidence } from '../commands/offline-cleanup-evidence.js';
8
9
  import type { CodexReconcilePlan } from '../utils/codex-reconciler.js';
9
10
  import type { OperationPlan } from '../commands/operation-plan.js';
10
11
  import type { RebuildProgressFeed, RebuildProgressSnapshot } from '../output/rebuild-progress.js';
11
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';
12
- import { type CatalogActivationBlockReason, type ConfigInvalidStoreEvidence, type PluginInstallFilter, type PortableBlockerCode, type TuiPageContext, type TuiRoute, type TuiRouterSnapshot } from './router.js';
13
+ import { OperationHistoryStore, type OperationDiagnosticDetail, type OperationEffectFacts, type OperationHistorySummary, type OperationReportPreview, type SaveOperationReportResult } from './operation-history.js';
14
+ import { type ConfigInvalidStoreEvidence, type PluginInstallFilter, type PortableBlockerCode, type TuiPageContext, type TuiRoute, type TuiRouterSnapshot } from './router.js';
13
15
  import { type CatalogSourceGenerationViewModel } from './catalog-generation.js';
14
16
  import type { CatalogSourceFreshnessViewModel } from './catalog-freshness.js';
15
17
  import type { CatalogSessionReusableCandidate } from './catalog-sources/types.js';
18
+ type CatalogActivationBlockReason = 'configDraft' | 'sourceDraft' | 'batchDraft' | 'portableDraft' | 'activeReview' | 'reviewPreparation' | 'writeProgress';
19
+ export interface ExternalDraftState {
20
+ kind: 'configDraft' | 'sourceDraft' | 'batchDraft';
21
+ owner: string;
22
+ flowId?: string;
23
+ revision: number;
24
+ }
16
25
  export type PluginWriteOperation = 'install' | 'refreshAndSync' | 'reinstall' | 'uninstall' | 'cleanup' | 'sync';
26
+ export declare const PLUGIN_WRITE_BATCH_ACTIONS: readonly ["install", "sync", "reinstall", "uninstall", "cleanup"];
27
+ export type BatchPluginWriteAction = typeof PLUGIN_WRITE_BATCH_ACTIONS[number];
28
+ export type PluginWriteBatchSelection = {
29
+ kind: 'selected';
30
+ pluginIds: string[];
31
+ } | {
32
+ kind: 'targets';
33
+ targets: PluginWriteBatchTarget[];
34
+ } | {
35
+ kind: 'currentProjectIntentRoots';
36
+ };
37
+ export interface PluginWriteBatchTarget {
38
+ pluginId: string;
39
+ platform: PlatformName;
40
+ scope: Scope;
41
+ }
42
+ export interface PluginWriteBatchIntent {
43
+ kind: 'pluginWriteBatch';
44
+ action: BatchPluginWriteAction;
45
+ selection: PluginWriteBatchSelection;
46
+ platform: PlatformName | 'both';
47
+ scope: Scope;
48
+ scriptTimeoutMs?: number;
49
+ }
50
+ export interface PluginWriteBatchGroupEvidence {
51
+ groupId: string;
52
+ sourceId: string;
53
+ platform: PlatformName | 'both';
54
+ scope: Scope;
55
+ requestedPluginIds: string[];
56
+ preview: RebuildCommandResult;
57
+ executable: boolean;
58
+ }
59
+ export interface PluginWriteBatchEvidence extends OperationEvidence {
60
+ requestedPluginIds: string[];
61
+ groups: PluginWriteBatchGroupEvidence[];
62
+ }
63
+ export interface PluginWriteBatchGroupResult {
64
+ groupId: string;
65
+ sourceId: string;
66
+ platform: PlatformName | 'both';
67
+ scope: Scope;
68
+ requestedPluginIds: string[];
69
+ result: RebuildCommandResult;
70
+ }
71
+ export interface PluginWriteBatchExecutionResult extends RebuildCommandResult {
72
+ requestedPluginIds: string[];
73
+ groupResults: PluginWriteBatchGroupResult[];
74
+ }
17
75
  export type OperationKind = OperationIntent['kind'];
18
76
  export interface IssueOrigin {
19
77
  issueId: string;
@@ -36,11 +94,11 @@ export type OperationIntent = {
36
94
  platform: PlatformName | 'both';
37
95
  scope: Scope;
38
96
  dependencyScopeOverrides?: DependencyScopeOverride[];
39
- dependencyPlacementAdjustment?: true;
40
97
  recoveryDescription?: string;
41
98
  force?: boolean;
99
+ scriptTimeoutMs?: number;
42
100
  originIssue?: IssueOrigin;
43
- } | {
101
+ } | PluginWriteBatchIntent | {
44
102
  kind: 'portableInstall';
45
103
  pluginId: string;
46
104
  scope: Scope;
@@ -51,6 +109,7 @@ export type OperationIntent = {
51
109
  pluginId: string;
52
110
  scope: Scope;
53
111
  apply: boolean;
112
+ scriptTimeoutMs?: number;
54
113
  retryApply?: true;
55
114
  updates?: Record<string, unknown>;
56
115
  removeKeys?: string[];
@@ -121,6 +180,7 @@ export interface OperationEvidence {
121
180
  source?: {
122
181
  sourceId: string;
123
182
  sourceIdentity: string;
183
+ logicalIdentity?: string;
124
184
  requestedRef?: string;
125
185
  resolvedCommit?: string;
126
186
  manifestDigest?: string;
@@ -145,15 +205,19 @@ export interface OperationEvidence {
145
205
  scope: Scope;
146
206
  schemaIdentity?: string;
147
207
  storeDigest: string;
208
+ impactState?: 'known' | 'unknown';
209
+ noEffectiveChange?: true;
148
210
  affectedTargets: Array<{
149
211
  platform: PlatformName;
150
212
  scope: Scope;
151
213
  }>;
214
+ shareability?: 'verified' | 'unverified';
152
215
  sharedNativeRenderTargets?: Array<{
153
216
  id: string;
154
217
  skillKey: string;
155
218
  refreshKeys: string[];
156
219
  }>;
220
+ preApplyAuthorization?: import('../commands/rebuild-command.js').PreApplyAuthorizationTarget[];
157
221
  };
158
222
  resetTarget?: {
159
223
  sourceId: string;
@@ -186,6 +250,9 @@ export interface OperationEvidence {
186
250
  impact?: CatalogSourceImpact;
187
251
  impactDigest?: string;
188
252
  impactMode?: 'generation' | 'identityChange';
253
+ primaryImpact?: CatalogSourceImpact;
254
+ primaryImpactDigest?: string;
255
+ primaryConfigDigest?: string;
189
256
  configDigest: string;
190
257
  proposedConfigDigest?: string;
191
258
  proposedSource?: CatalogSource;
@@ -200,6 +267,8 @@ export interface OperationReviewChange {
200
267
  kind: 'add' | 'change' | 'remove' | 'keep' | 'warning';
201
268
  group?: 'requested' | 'dependencies' | 'projectIntent' | 'userIntent' | 'sharedCodexNative' | 'userActivation' | 'projectActivation' | 'awExtensions' | 'runtime' | 'portableTarget' | 'portableInputs' | 'portableWarnings' | 'configChanges' | 'configImpact' | 'preserved';
202
269
  pluginId?: string;
270
+ batchGroupId?: string;
271
+ sourceId?: string;
203
272
  relation?: 'requested' | 'direct' | 'transitive';
204
273
  title: string;
205
274
  description?: string;
@@ -237,6 +306,11 @@ export interface OperationReviewModel {
237
306
  catalogVersion: string;
238
307
  generationDigestShort: string;
239
308
  };
309
+ batch?: {
310
+ requestedPluginIds: string[];
311
+ groupCount: number;
312
+ executableGroupCount: number;
313
+ };
240
314
  }
241
315
  export type ReviewPreparationStageId = 'refresh' | 'validate' | 'status' | 'catalog' | 'inventory' | 'dependencyPlan' | 'config' | 'portable' | 'evidence';
242
316
  export interface ReviewPreparationStage {
@@ -246,10 +320,11 @@ export interface ReviewPreparationStage {
246
320
  }
247
321
  export interface ReviewPreparationSnapshot {
248
322
  id: string;
249
- intent: OperationIntent;
323
+ operationKind: OperationIntent['kind'];
324
+ subject: string;
250
325
  state: 'running' | 'failed';
251
326
  stages: ReviewPreparationStage[];
252
- currentLabel: string;
327
+ currentStage?: ReviewPreparationStageId;
253
328
  code?: 'reviewPreparationFailed';
254
329
  message?: string;
255
330
  }
@@ -264,6 +339,9 @@ export type OperationExecuteResult = {
264
339
  pluginId?: string;
265
340
  originIssue?: IssueOrigin;
266
341
  returnRoute?: TuiRoute;
342
+ operationRecordId?: string;
343
+ diagnosticIds?: string[];
344
+ effects?: OperationEffectFacts;
267
345
  } | {
268
346
  state: 'partial';
269
347
  operationId: string;
@@ -275,6 +353,9 @@ export type OperationExecuteResult = {
275
353
  pluginId?: string;
276
354
  originIssue?: IssueOrigin;
277
355
  returnRoute?: TuiRoute;
356
+ operationRecordId?: string;
357
+ diagnosticIds?: string[];
358
+ effects?: OperationEffectFacts;
278
359
  } | {
279
360
  state: 'stale';
280
361
  operationId: string;
@@ -284,6 +365,9 @@ export type OperationExecuteResult = {
284
365
  }>['action'];
285
366
  review: OperationReviewModel;
286
367
  originIssue?: IssueOrigin;
368
+ operationRecordId?: string;
369
+ diagnosticIds?: string[];
370
+ effects?: OperationEffectFacts;
287
371
  } | {
288
372
  state: 'blocked';
289
373
  operationId: string;
@@ -299,6 +383,9 @@ export type OperationExecuteResult = {
299
383
  writeMayHaveCompleted?: boolean;
300
384
  verification?: 'issueStillPresent' | 'verificationFailed';
301
385
  summary?: OperationResultSummary;
386
+ operationRecordId?: string;
387
+ diagnosticIds?: string[];
388
+ effects?: OperationEffectFacts;
302
389
  };
303
390
  export interface OperationResultSummary {
304
391
  code: 'operationSucceeded' | 'operationPartial' | 'operationFailed';
@@ -323,6 +410,14 @@ export interface OperationResultSummary {
323
410
  warnings?: string[];
324
411
  recoveryActions?: string[];
325
412
  planFingerprint?: string;
413
+ diagnosticIds?: string[];
414
+ effects?: OperationEffectFacts;
415
+ batch?: {
416
+ requestedPluginIds: string[];
417
+ failedRequestedPluginIds: string[];
418
+ retryTargets?: PluginWriteBatchTarget[];
419
+ groupCount: number;
420
+ };
326
421
  portable?: {
327
422
  selectedSkills: string[];
328
423
  agentMode: 'automatic' | 'explicit';
@@ -345,7 +440,9 @@ export interface OperationResultSummary {
345
440
  state: 'completed' | 'kept' | 'failed' | 'skipped';
346
441
  relation?: 'requested' | 'direct' | 'transitive';
347
442
  requiredBy?: string[];
348
- errorCode?: 'dependencyStillRequired' | 'codexSystemCliUnsupported' | 'managedCodexAuthorizationRequired' | 'managedCodexUnavailable';
443
+ errorCode?: string;
444
+ diagnosticIds?: string[];
445
+ effects?: OperationEffectFacts;
349
446
  }>;
350
447
  }
351
448
  export interface PluginOperationProgressLine {
@@ -362,8 +459,15 @@ export interface TuiStatusLoadResult {
362
459
  pluginSummaries: StatusV7PluginSummary[];
363
460
  targetRevisions?: StatusTargetRevision[];
364
461
  sourceDetails?: SourceDetailViewModel[];
462
+ configuredSources?: CatalogSource[];
365
463
  dependencyOverviews?: PluginDependencyOverviewViewModel[];
366
464
  portablePluginIds?: string[];
465
+ configStoreInventory?: Array<{
466
+ pluginId: string;
467
+ sourceId: string;
468
+ pluginName: string;
469
+ scope: Scope;
470
+ }>;
367
471
  catalogGenerations?: CatalogSourceGenerationViewModel[];
368
472
  sessionGenerationKeys?: Record<string, string>;
369
473
  }
@@ -430,8 +534,15 @@ export interface ConfigResetAvailability {
430
534
  sourceIdentity?: string;
431
535
  storeDigest?: string;
432
536
  }
537
+ export interface ForceCleanupCandidate {
538
+ pluginId: string;
539
+ platform: PlatformName;
540
+ scope: Scope;
541
+ actionCount: number;
542
+ }
433
543
  export interface TuiControllerSnapshot {
434
544
  phase: 'idle' | 'loading' | 'ready' | 'error' | 'disposed';
545
+ statusReadAtMs?: number;
435
546
  cliChannel?: 'latest' | 'beta';
436
547
  router: TuiRouterSnapshot;
437
548
  viewModel?: TuiViewModel;
@@ -444,6 +555,8 @@ export interface TuiControllerSnapshot {
444
555
  activeReview?: OperationReviewModel;
445
556
  reviewPreparation?: ReviewPreparationSnapshot;
446
557
  result?: OperationExecuteResult;
558
+ operationHistorySummaries: OperationHistorySummary[];
559
+ portableResultSkills?: string[];
447
560
  loadError?: {
448
561
  code: string;
449
562
  message: string;
@@ -464,6 +577,8 @@ export declare class TuiConfigInvalidStoreError extends Error {
464
577
  readonly evidence: ConfigInvalidStoreEvidence[];
465
578
  constructor(evidence: ConfigInvalidStoreEvidence[]);
466
579
  }
580
+ export declare function pluginWriteBatchFailedRequestedTargets(execution: PluginWriteBatchExecutionResult): PluginWriteBatchTarget[];
581
+ export declare function pluginWriteBatchFailedRequestedPluginIds(execution: PluginWriteBatchExecutionResult): string[];
467
582
  export declare function operationEvidenceFingerprint(evidence: OperationEvidence): string;
468
583
  export declare function operationEvidenceMatches(expected: OperationEvidence, current: OperationEvidence): boolean;
469
584
  export declare function userIssueKey(issue: Pick<UserIssueViewModel, 'category' | 'pluginId' | 'dependencyPluginId' | 'dependencyPlatform' | 'dependencyScope' | 'dependencyProject' | 'sourceId' | 'sourceIdentity' | 'platform' | 'scope'>): string;
@@ -477,6 +592,27 @@ export declare class TuiController {
477
592
  constructor(dependencies: TuiControllerDependencies, progressFeed?: RebuildProgressFeed);
478
593
  get snapshot(): TuiControllerSnapshot;
479
594
  subscribe(listener: (snapshot: TuiControllerSnapshot) => void): () => void;
595
+ get hasActiveWrite(): boolean;
596
+ get retiring(): boolean;
597
+ get hasSessionDraft(): boolean;
598
+ get externalDrafts(): ExternalDraftState[];
599
+ attachOperationHistory(history: OperationHistoryStore, epoch: number): void;
600
+ listOperationHistory(): OperationHistorySummary[];
601
+ getOperationDiagnostic(recordId: string): OperationDiagnosticDetail | undefined;
602
+ previewOperationReport(recordId: string): OperationReportPreview | undefined;
603
+ saveOperationReport(recordId: string, filePath?: string): Promise<SaveOperationReportResult>;
604
+ /** @internal Test-only observability for bounded private diagnostic ownership. */
605
+ operationDiagnosticRetentionCountForTests(): number;
606
+ recordUiFailure(error: unknown, context: {
607
+ code: string;
608
+ stage: string;
609
+ }): string;
610
+ beginRetirement(): void;
611
+ waitForWrites(): Promise<void>;
612
+ cancelAndWaitForReads(): Promise<boolean>;
613
+ goHome(options?: {
614
+ discardDrafts?: boolean;
615
+ }): boolean;
480
616
  load(): Promise<void>;
481
617
  push(route: TuiRoute, context?: TuiPageContext): void;
482
618
  hasPortableSkills(pluginId: string): boolean;
@@ -491,6 +627,10 @@ export declare class TuiController {
491
627
  discardPortableDraft(): void;
492
628
  replace(route: TuiRoute, context?: TuiPageContext): void;
493
629
  beginConfigFlow(pluginId: string): void;
630
+ beginSavedConfigRecovery(pluginId: string): void;
631
+ beginConfigSourceRecovery(sourceId: string): void;
632
+ getForceCleanupCandidate(pluginId: string, platform: PlatformName, scope: Scope): Promise<ForceCleanupCandidate | undefined>;
633
+ startForceCleanupReview(candidate: ForceCleanupCandidate): ReviewPreparationSnapshot;
494
634
  configOrigin(pluginId: string): TuiRoute | undefined;
495
635
  updatePageContext(context: Partial<TuiPageContext>): void;
496
636
  back(): void;
@@ -498,10 +638,9 @@ export declare class TuiController {
498
638
  name: 'sourceList' | 'sourceDetail';
499
639
  }>): void;
500
640
  leaveResult(target?: TuiRoute): void;
641
+ resumeResultDraft(): void;
501
642
  resetPortableFlowToPreview(pluginId: string, target?: TuiRoute, preserveDraft?: boolean): void;
502
- beginInstallFlow(pluginId: string, rootScope: Scope, options?: {
503
- adjustingExisting?: boolean;
504
- }): void;
643
+ beginInstallFlow(pluginId: string, rootScope: Scope): void;
505
644
  setInstallRootScope(rootScope: Scope): void;
506
645
  setInstallPlatforms(platforms: PlatformName[]): void;
507
646
  prepareInstallDependencyPlacement(): Promise<boolean>;
@@ -528,12 +667,18 @@ export declare class TuiController {
528
667
  detail?: SourceDetailViewModel;
529
668
  health?: SourceHealthViewModel;
530
669
  };
670
+ getConfiguredSource(sourceId: string): CatalogSource | undefined;
531
671
  getCatalogGeneration(sourceId: string): CatalogSourceGenerationViewModel | undefined;
532
672
  getCatalogFreshness(sourceId: string): CatalogSourceFreshnessViewModel | undefined;
533
673
  recheckCatalogSource(sourceId: string): Promise<void>;
674
+ recheckAllCatalogSources(): Promise<void>;
534
675
  fullValidateCatalogSource(sourceId: string): Promise<void>;
535
- setExternalDraftState(state?: 'configDraft' | 'sourceDraft'): void;
676
+ setExternalDraftState(states?: ExternalDraftState[]): void;
677
+ beginPluginWriteBatch(): void;
678
+ startPluginWriteBatchReview(intent: PluginWriteBatchIntent): ReviewPreparationSnapshot;
679
+ retryFailedPluginWriteBatch(): ReviewPreparationSnapshot | undefined;
536
680
  catalogActivationBlockReason(): CatalogActivationBlockReason | undefined;
681
+ catalogSourceRecoveryBlockReason(): CatalogActivationBlockReason | undefined;
537
682
  getSessionCatalogVersion(sourceId: string): string | undefined;
538
683
  reloadCatalog(options: {
539
684
  sourceId: string;
@@ -555,3 +700,4 @@ export declare class TuiController {
555
700
  executeOperation(reviewToken: string): Promise<OperationExecuteResult>;
556
701
  dispose(): void;
557
702
  }
703
+ export {};