@lesliechan721/aw 0.1.0-beta.13 → 0.1.0-beta.14

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 (62) hide show
  1. package/dist/src/commands/catalog-dev-source.d.ts +31 -0
  2. package/dist/src/commands/catalog-dev-source.js +165 -5
  3. package/dist/src/commands/catalog-dev-source.js.map +1 -1
  4. package/dist/src/commands/catalog-generation.d.ts +5 -0
  5. package/dist/src/commands/catalog-generation.js.map +1 -1
  6. package/dist/src/commands/catalog-publication-journal.d.ts +12 -0
  7. package/dist/src/commands/catalog-publication-journal.js +77 -0
  8. package/dist/src/commands/catalog-publication-journal.js.map +1 -1
  9. package/dist/src/commands/catalog-store.d.ts +5 -0
  10. package/dist/src/commands/catalog-store.js +19 -1
  11. package/dist/src/commands/catalog-store.js.map +1 -1
  12. package/dist/src/commands/dependency-operation-plan.d.ts +7 -0
  13. package/dist/src/commands/dependency-operation-plan.js +63 -27
  14. package/dist/src/commands/dependency-operation-plan.js.map +1 -1
  15. package/dist/src/commands/rebuild-command.d.ts +22 -8
  16. package/dist/src/commands/rebuild-command.js +562 -250
  17. package/dist/src/commands/rebuild-command.js.map +1 -1
  18. package/dist/src/commands/reconcile-operation-plan.d.ts +11 -9
  19. package/dist/src/commands/reconcile-operation-plan.js +25 -6
  20. package/dist/src/commands/reconcile-operation-plan.js.map +1 -1
  21. package/dist/src/commands/write-commands.d.ts +2 -1
  22. package/dist/src/commands/write-commands.js +24 -1
  23. package/dist/src/commands/write-commands.js.map +1 -1
  24. package/dist/src/tui/catalog-management-screens.d.ts +45 -0
  25. package/dist/src/tui/catalog-management-screens.js +25 -0
  26. package/dist/src/tui/catalog-management-screens.js.map +1 -0
  27. package/dist/src/tui/catalog-management.d.ts +240 -0
  28. package/dist/src/tui/catalog-management.js +856 -0
  29. package/dist/src/tui/catalog-management.js.map +1 -0
  30. package/dist/src/tui/catalog-sources/session.d.ts +5 -0
  31. package/dist/src/tui/catalog-sources/session.js +49 -1
  32. package/dist/src/tui/catalog-sources/session.js.map +1 -1
  33. package/dist/src/tui/catalog-sources/types.d.ts +11 -0
  34. package/dist/src/tui/console-app-v4.d.ts +1 -1
  35. package/dist/src/tui/console-app-v4.js +2184 -564
  36. package/dist/src/tui/console-app-v4.js.map +1 -1
  37. package/dist/src/tui/controller-runtime.js +609 -13
  38. package/dist/src/tui/controller-runtime.js.map +1 -1
  39. package/dist/src/tui/controller.d.ts +121 -6
  40. package/dist/src/tui/controller.js +667 -17
  41. package/dist/src/tui/controller.js.map +1 -1
  42. package/dist/src/tui/dependency-graph.d.ts +67 -0
  43. package/dist/src/tui/dependency-graph.js +399 -0
  44. package/dist/src/tui/dependency-graph.js.map +1 -0
  45. package/dist/src/tui/lifecycle-action-view.js +4 -2
  46. package/dist/src/tui/lifecycle-action-view.js.map +1 -1
  47. package/dist/src/tui/model.d.ts +37 -0
  48. package/dist/src/tui/model.js +164 -7
  49. package/dist/src/tui/model.js.map +1 -1
  50. package/dist/src/tui/operation-review-planner.js +244 -8
  51. package/dist/src/tui/operation-review-planner.js.map +1 -1
  52. package/dist/src/tui/plugin-write-task.d.ts +66 -0
  53. package/dist/src/tui/plugin-write-task.js +265 -0
  54. package/dist/src/tui/plugin-write-task.js.map +1 -0
  55. package/dist/src/tui/router.d.ts +38 -2
  56. package/dist/src/tui/router.js.map +1 -1
  57. package/dist/src/tui/screen-registry.d.ts +105 -6
  58. package/dist/src/tui/screen-registry.js +31 -4
  59. package/dist/src/tui/screen-registry.js.map +1 -1
  60. package/dist/src/utils/catalog-generation-service.d.ts +4 -0
  61. package/dist/src/utils/catalog-generation-service.js.map +1 -1
  62. package/package.json +3 -3
@@ -1,3 +1,4 @@
1
+ import { type CatalogDevManagementViewModel, type CatalogManagementIntent, type CatalogManagementReviewEvidence, type CatalogManagementService, type CatalogPublicationManagementViewModel, type CatalogStoreManagementViewModel, type CatalogValidationViewModel, type CatalogWorkspaceManagementViewModel } from './catalog-management.js';
1
2
  import type { CatalogActivationMode, CatalogSource, CatalogGenerationActiveV1, CatalogGenerationCandidateEvidence, CatalogGenerationSyncResult, CatalogSourceImpact, DependencyScopeOverride, PlatformName, Scope } from '../types.js';
2
3
  import type { PortableReview } from '../portable/commands.js';
3
4
  import type { CatalogSourceUpdate } from '../utils/catalog-sources.js';
@@ -15,9 +16,11 @@ import { type ConfigInvalidStoreEvidence, type PluginInstallFilter, type Portabl
15
16
  import { type CatalogSourceGenerationViewModel } from './catalog-generation.js';
16
17
  import type { CatalogSourceFreshnessViewModel } from './catalog-freshness.js';
17
18
  import type { CatalogSessionReusableCandidate } from './catalog-sources/types.js';
18
- type CatalogActivationBlockReason = 'configDraft' | 'sourceDraft' | 'batchDraft' | 'portableDraft' | 'activeReview' | 'reviewPreparation' | 'writeProgress';
19
+ import { type PluginWriteTaskBlockedTarget, type PluginWriteTaskCandidate, type PluginWriteTaskCause, type PluginWriteTaskGoal, type PluginWriteTaskIntent, type PluginWriteTaskTarget } from './plugin-write-task.js';
20
+ export type { PluginWriteTaskBlockReason, PluginWriteTaskCandidate, PluginWriteTaskExpectedUpdate, PluginWriteTaskGoal, PluginWriteTaskIntent, PluginWriteTaskMethod, PluginWriteTaskTarget, } from './plugin-write-task.js';
21
+ type CatalogActivationBlockReason = 'configDraft' | 'sourceDraft' | 'batchDraft' | 'catalogDraft' | 'portableDraft' | 'activeReview' | 'reviewPreparation' | 'writeProgress';
19
22
  export interface ExternalDraftState {
20
- kind: 'configDraft' | 'sourceDraft' | 'batchDraft';
23
+ kind: 'configDraft' | 'sourceDraft' | 'batchDraft' | 'catalogDraft';
21
24
  owner: string;
22
25
  flowId?: string;
23
26
  revision: number;
@@ -72,6 +75,36 @@ export interface PluginWriteBatchExecutionResult extends RebuildCommandResult {
72
75
  requestedPluginIds: string[];
73
76
  groupResults: PluginWriteBatchGroupResult[];
74
77
  }
78
+ export interface PluginWriteTaskSourceEvidence {
79
+ sourceId: string;
80
+ sourceIdentity: string;
81
+ requestedTargets: PluginWriteTaskTarget[];
82
+ causes: PluginWriteTaskCause[];
83
+ preview: RebuildCommandResult;
84
+ executable: boolean;
85
+ }
86
+ export interface PluginWriteTaskEvidence extends OperationEvidence {
87
+ taskPlan: {
88
+ goal: PluginWriteTaskGoal;
89
+ requestedTargets: PluginWriteTaskTarget[];
90
+ executableTargets: PluginWriteTaskTarget[];
91
+ causes: PluginWriteTaskCause[];
92
+ blockedTargets: PluginWriteTaskBlockedTarget[];
93
+ sources: PluginWriteTaskSourceEvidence[];
94
+ targetFingerprint: string;
95
+ planFingerprint: string;
96
+ };
97
+ }
98
+ export interface PluginWriteTaskSourceResult {
99
+ sourceId: string;
100
+ sourceIdentity: string;
101
+ requestedTargets: PluginWriteTaskTarget[];
102
+ result: RebuildCommandResult;
103
+ }
104
+ export interface PluginWriteTaskExecutionResult extends RebuildCommandResult {
105
+ taskPlan: PluginWriteTaskEvidence['taskPlan'];
106
+ sourceResults: PluginWriteTaskSourceResult[];
107
+ }
75
108
  export type OperationKind = OperationIntent['kind'];
76
109
  export interface IssueOrigin {
77
110
  issueId: string;
@@ -94,11 +127,17 @@ export type OperationIntent = {
94
127
  platform: PlatformName | 'both';
95
128
  scope: Scope;
96
129
  dependencyScopeOverrides?: DependencyScopeOverride[];
130
+ expectedUpdate?: {
131
+ installedVersion: string;
132
+ activeVersion: string;
133
+ sourceIdentity: string;
134
+ generationKey: string;
135
+ };
97
136
  recoveryDescription?: string;
98
137
  force?: boolean;
99
138
  scriptTimeoutMs?: number;
100
139
  originIssue?: IssueOrigin;
101
- } | PluginWriteBatchIntent | {
140
+ } | PluginWriteBatchIntent | PluginWriteTaskIntent | {
102
141
  kind: 'portableInstall';
103
142
  pluginId: string;
104
143
  scope: Scope;
@@ -170,7 +209,7 @@ export type OperationIntent = {
170
209
  setPrimaryAfterActivation?: boolean;
171
210
  } | {
172
211
  kind: 'catalogSourcesRecovery';
173
- };
212
+ } | CatalogManagementIntent;
174
213
  export interface OperationEvidence {
175
214
  catalog: {
176
215
  configDigest: string;
@@ -261,6 +300,7 @@ export interface OperationEvidence {
261
300
  }>['sourceMutation'];
262
301
  setPrimaryAfterActivation?: boolean;
263
302
  };
303
+ catalogManagement?: CatalogManagementReviewEvidence;
264
304
  portable?: PortableReview;
265
305
  }
266
306
  export interface OperationReviewChange {
@@ -282,6 +322,7 @@ export interface OperationReviewModel {
282
322
  kind: 'sourceMutation';
283
323
  }>['action'];
284
324
  pluginAction?: PluginWriteOperation;
325
+ taskGoal?: PluginWriteTaskGoal;
285
326
  originIssue?: IssueOrigin;
286
327
  title: string;
287
328
  description: string;
@@ -311,6 +352,13 @@ export interface OperationReviewModel {
311
352
  groupCount: number;
312
353
  executableGroupCount: number;
313
354
  };
355
+ task?: {
356
+ goal: PluginWriteTaskGoal;
357
+ requestedTargetCount: number;
358
+ executableTargetCount: number;
359
+ blockedTargetCount: number;
360
+ causeCount: number;
361
+ };
314
362
  }
315
363
  export type ReviewPreparationStageId = 'refresh' | 'validate' | 'status' | 'catalog' | 'inventory' | 'dependencyPlan' | 'config' | 'portable' | 'evidence';
316
364
  export interface ReviewPreparationStage {
@@ -395,6 +443,24 @@ export interface OperationResultSummary {
395
443
  catalogAction?: Extract<OperationIntent, {
396
444
  kind: 'catalogGeneration';
397
445
  }>['action'];
446
+ catalogManagement?: {
447
+ action: CatalogManagementIntent['action'];
448
+ state: 'succeeded' | 'partial';
449
+ catalogVersion?: string;
450
+ planDigest?: string;
451
+ store?: {
452
+ deletedEntries: number;
453
+ deletedBytes: number;
454
+ retainedEntries: number;
455
+ };
456
+ publication?: {
457
+ catalogVersion: string;
458
+ planDigest: string;
459
+ state: 'prepared' | 'uncertain' | 'published';
460
+ remote: string;
461
+ branch: string;
462
+ };
463
+ };
398
464
  catalogGeneration?: Pick<CatalogGenerationSyncResult, 'activeChanged' | 'outcome'> & {
399
465
  catalogVersion: string;
400
466
  };
@@ -415,9 +481,17 @@ export interface OperationResultSummary {
415
481
  batch?: {
416
482
  requestedPluginIds: string[];
417
483
  failedRequestedPluginIds: string[];
484
+ rootResults: PluginWriteBatchRootResult[];
418
485
  retryTargets?: PluginWriteBatchTarget[];
419
486
  groupCount: number;
420
487
  };
488
+ task?: {
489
+ goal: PluginWriteTaskGoal;
490
+ requestedTargets: PluginWriteTaskTarget[];
491
+ rootResults: PluginWriteTaskRootResult[];
492
+ retryTargets?: PluginWriteTaskTarget[];
493
+ blockedTargets: PluginWriteTaskBlockedTarget[];
494
+ };
421
495
  portable?: {
422
496
  selectedSkills: string[];
423
497
  agentMode: 'automatic' | 'explicit';
@@ -445,6 +519,31 @@ export interface OperationResultSummary {
445
519
  effects?: OperationEffectFacts;
446
520
  }>;
447
521
  }
522
+ export interface PluginWriteTaskRootResult {
523
+ pluginId: string;
524
+ state: 'completed' | 'kept' | 'partial' | 'failed' | 'notStarted' | 'blocked';
525
+ causeKeys: string[];
526
+ targets: Array<{
527
+ pluginId?: string;
528
+ platform: PlatformName;
529
+ scope: Scope;
530
+ state: 'completed' | 'kept' | 'failed' | 'skipped';
531
+ relation?: 'requested' | 'direct' | 'transitive';
532
+ errorCode?: string;
533
+ }>;
534
+ }
535
+ export interface PluginWriteBatchRootResult {
536
+ pluginId: string;
537
+ state: 'completed' | 'kept' | 'partial' | 'failed' | 'notStarted';
538
+ targets: Array<{
539
+ pluginId: string;
540
+ platform: PlatformName;
541
+ scope: Scope;
542
+ state: 'completed' | 'kept' | 'failed' | 'skipped';
543
+ relation: 'requested';
544
+ errorCode?: string;
545
+ }>;
546
+ }
448
547
  export interface PluginOperationProgressLine {
449
548
  pluginId: string;
450
549
  platform: PlatformName;
@@ -492,6 +591,7 @@ export interface SourceReferenceSummaryViewModel {
492
591
  }>;
493
592
  }
494
593
  export interface TuiControllerDependencies {
594
+ catalogManagement?: CatalogManagementService;
495
595
  beginCatalogSession?: (options?: {
496
596
  reuseValidatedGenerations?: boolean;
497
597
  }) => void;
@@ -579,6 +679,7 @@ export declare class TuiConfigInvalidStoreError extends Error {
579
679
  }
580
680
  export declare function pluginWriteBatchFailedRequestedTargets(execution: PluginWriteBatchExecutionResult): PluginWriteBatchTarget[];
581
681
  export declare function pluginWriteBatchFailedRequestedPluginIds(execution: PluginWriteBatchExecutionResult): string[];
682
+ export declare function pluginWriteTaskFailedRequestedTargets(execution: PluginWriteTaskExecutionResult): PluginWriteTaskTarget[];
582
683
  export declare function operationEvidenceFingerprint(evidence: OperationEvidence): string;
583
684
  export declare function operationEvidenceMatches(expected: OperationEvidence, current: OperationEvidence): boolean;
584
685
  export declare function userIssueKey(issue: Pick<UserIssueViewModel, 'category' | 'pluginId' | 'dependencyPluginId' | 'dependencyPlatform' | 'dependencyScope' | 'dependencyProject' | 'sourceId' | 'sourceIdentity' | 'platform' | 'scope'>): string;
@@ -657,6 +758,7 @@ export declare class TuiController {
657
758
  }): PluginListItemViewModel[];
658
759
  getPluginOverview(pluginId: string): PluginListItemViewModel | undefined;
659
760
  getPluginDependencyOverview(pluginId: string): PluginDependencyOverviewViewModel | undefined;
761
+ listPluginDependencyOverviews(): PluginDependencyOverviewViewModel[];
660
762
  getBlockingDependents(pluginId: string, platform: PlatformName, scope: Scope): PluginDependencyOverviewViewModel['dependents'];
661
763
  getPlatformPlacement(pluginId: string, platform: PlatformName): PluginListItemViewModel['installedPlacements'][number] | undefined;
662
764
  listInstallTargets(pluginId: string, scope: Scope): InstallTargetOption[];
@@ -676,9 +778,13 @@ export declare class TuiController {
676
778
  setExternalDraftState(states?: ExternalDraftState[]): void;
677
779
  beginPluginWriteBatch(): void;
678
780
  startPluginWriteBatchReview(intent: PluginWriteBatchIntent): ReviewPreparationSnapshot;
781
+ startPluginWriteTaskReview(intent: PluginWriteTaskIntent, returnRoute?: TuiRoute): ReviewPreparationSnapshot;
679
782
  retryFailedPluginWriteBatch(): ReviewPreparationSnapshot | undefined;
783
+ retryFailedPluginWriteTask(): ReviewPreparationSnapshot | undefined;
680
784
  catalogActivationBlockReason(): CatalogActivationBlockReason | undefined;
681
- catalogSourceRecoveryBlockReason(): CatalogActivationBlockReason | undefined;
785
+ catalogSourceRecoveryBlockReason(intent?: Extract<OperationIntent, {
786
+ kind: 'catalogGeneration';
787
+ }>): CatalogActivationBlockReason | undefined;
682
788
  getSessionCatalogVersion(sourceId: string): string | undefined;
683
789
  reloadCatalog(options: {
684
790
  sourceId: string;
@@ -690,14 +796,23 @@ export declare class TuiController {
690
796
  getConfigPage(pluginId: string, layer: {
691
797
  scope: Scope | 'effective';
692
798
  }, signal?: AbortSignal): Promise<ConfigPageViewModel>;
799
+ selectCatalogWorkspace(workspaceRoot?: string): Promise<CatalogWorkspaceManagementViewModel>;
800
+ getCatalogWorkspaceManagement(): Promise<CatalogWorkspaceManagementViewModel>;
801
+ validateCatalogWorkspace(): Promise<CatalogValidationViewModel>;
802
+ getCatalogDevManagement(): Promise<CatalogDevManagementViewModel>;
803
+ getCatalogStoreManagement(): Promise<CatalogStoreManagementViewModel>;
804
+ getCatalogPublicationManagement(): Promise<CatalogPublicationManagementViewModel>;
805
+ previewConfigSaveImpact(intent: Extract<OperationIntent, {
806
+ kind: 'configSave';
807
+ }>, signal?: AbortSignal): Promise<NonNullable<OperationEvidence['config']>>;
693
808
  getConfigResetAvailability(pluginId: string, layer: {
694
809
  scope: Scope;
695
810
  }): Promise<ConfigResetAvailability>;
696
811
  listUserIssues(): UserIssueViewModel[];
812
+ listPluginWriteTaskCandidates(goal: PluginWriteTaskGoal): PluginWriteTaskCandidate[];
697
813
  buildOperationReview(intent: OperationIntent, returnRoute?: TuiRoute): Promise<OperationReviewModel>;
698
814
  startReviewPreparation(intent: OperationIntent, returnRoute?: TuiRoute): ReviewPreparationSnapshot;
699
815
  retryReviewPreparation(): ReviewPreparationSnapshot | undefined;
700
816
  executeOperation(reviewToken: string): Promise<OperationExecuteResult>;
701
817
  dispose(): void;
702
818
  }
703
- export {};