@ai-ecoverse/slicc-spectrum 1.40.0 → 1.42.0

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.
@@ -8,7 +8,7 @@ import '@adobe/spectrum-wc-icons/swc-icon-cloud-state-online.js';
8
8
  import '@adobe/spectrum-wc-icons/swc-icon-cloud-state-slow-connection.js';
9
9
  import '@adobe/spectrum-wc-icons/swc-icon-copy.js';
10
10
  import { type TemplateResult } from 'lit';
11
- import type { BrowserAutomation, NetworkStatus, SliccModel, TailnetState, TailnetStatus } from '../model/types.js';
11
+ import type { BrowserAutomation, NetworkRoute, NetworkStatus, SliccModel, TailnetState, TailnetStatus } from '../model/types.js';
12
12
  import { ModelElement } from './base.js';
13
13
  export declare const command = "npx @ai-ecoverse/slicc-node";
14
14
  export declare const networkHealth: Record<NetworkStatus['health'], readonly ['positive' | 'notice' | 'negative', string]>;
@@ -17,6 +17,8 @@ export declare function automationOf(browser: BrowserAutomation): keyof typeof a
17
17
  export declare const tailnetStates: Record<TailnetState, readonly ['neutral' | 'info' | 'positive' | 'notice' | 'negative', string]>;
18
18
  export declare function tailnetAddress(addresses: readonly string[]): string | undefined;
19
19
  export declare function exitNodeValue(tailnet: TailnetStatus): string;
20
+ export declare const wholeWeb: ReadonlySet<NetworkRoute | null>;
21
+ export declare function routeLine(status: NetworkStatus): string;
20
22
  export declare function networkLabel(status: NetworkStatus): string;
21
23
  export declare const networkIcon: Record<NetworkStatus['health'], TemplateResult>;
22
24
  export declare function host(url: string): string;
@@ -4,8 +4,10 @@ import '@adobe/spectrum-wc/components/progress-bar/swc-progress-bar.js';
4
4
  import '@adobe/spectrum-wc/components/status-light/swc-status-light.js';
5
5
  import '@adobe/spectrum-wc-icons/swc-icon-alert-triangle.js';
6
6
  import { type TemplateResult } from 'lit';
7
- import type { SliccModel, UpdateAction, UpdateItem, UpdatesPort } from '../model/types.js';
7
+ import type { PackageAction, PackageItem, SliccModel, UpdateAction, UpdateItem, UpdatesPort } from '../model/types.js';
8
8
  import { ModelElement } from './base.js';
9
+ export declare function requiresText(item: PackageItem, all: readonly PackageItem[]): string | null;
10
+ type Failures = ReadonlyMap<string, string>;
9
11
  export declare function updatesStatus(items: readonly UpdateItem[]): string | null;
10
12
  export declare class UpdateVisibility {
11
13
  #private;
@@ -24,13 +26,23 @@ export declare class SliccUpdates extends ModelElement {
24
26
  failures: {
25
27
  state: boolean;
26
28
  };
29
+ busy: {
30
+ state: boolean;
31
+ };
32
+ problems: {
33
+ state: boolean;
34
+ };
27
35
  };
28
36
  pending: ReadonlySet<string>;
29
- failures: ReadonlyMap<string, string>;
37
+ failures: Failures;
38
+ busy: ReadonlyMap<string, PackageAction>;
39
+ problems: Failures;
30
40
  constructor();
31
41
  static styles: import("lit").CSSResult[];
32
42
  protected subscribe(model: SliccModel): Array<() => void>;
33
43
  focus(): void;
34
44
  act(id: string, action: UpdateAction): Promise<void>;
45
+ actPackage(id: string, action: PackageAction): Promise<void>;
35
46
  render(): TemplateResult;
36
47
  }
48
+ export {};
@@ -2,11 +2,13 @@ import type { SliccModel } from '../model/types.js';
2
2
  import { type ChangesScenario } from './changes.js';
3
3
  import { type MountScenario } from './files.js';
4
4
  import { DummyNetwork, type NetworkScenario, type TailnetScenario } from './network.js';
5
- import { DummyUpdates, type UpdateScenario } from './updates.js';
5
+ import { DummyUpdates, type PackageConfirm, type PackageScenario, type UpdateScenario } from './updates.js';
6
6
  export interface DummyOptions {
7
7
  delay?: number;
8
8
  storage?: Storage | null;
9
9
  updates?: UpdateScenario;
10
+ packages?: PackageScenario | 'off';
11
+ confirm?: PackageConfirm;
10
12
  mounts?: MountScenario | 'off';
11
13
  network?: NetworkScenario | 'off';
12
14
  tailnet?: TailnetScenario;
@@ -16,4 +18,4 @@ export interface DummyModel extends SliccModel {
16
18
  updates: DummyUpdates;
17
19
  network?: DummyNetwork;
18
20
  }
19
- export declare function createDummyModel({ delay, storage, updates, mounts, network, tailnet, changes, }?: DummyOptions): DummyModel;
21
+ export declare function createDummyModel({ delay, storage, updates, packages, confirm, mounts, network, tailnet, changes, }?: DummyOptions): DummyModel;
@@ -1,13 +1,25 @@
1
1
  import { Emitter } from '../model/emitter.js';
2
- import type { UpdateAction, UpdateItem, UpdatesPort } from '../model/types.js';
2
+ import type { PackageAction, PackageItem, UpdateAction, UpdateItem, UpdatesEvents, UpdatesPort } from '../model/types.js';
3
3
  import type { Clock } from './clock.js';
4
4
  export type UpdateScenario = 'current' | 'boot' | 'starting' | 'available' | 'restart' | 'failure';
5
+ export type PackageScenario = 'mixed' | 'empty' | 'fail';
6
+ export type PackageConfirm = (options: {
7
+ title: string;
8
+ body: string;
9
+ action: string;
10
+ variant: 'confirmation';
11
+ }) => Promise<boolean>;
5
12
  export declare function updateFixtures(scenario: UpdateScenario): readonly UpdateItem[];
6
- export declare class DummyUpdates extends Emitter<{
7
- items: readonly UpdateItem[];
8
- }> implements UpdatesPort {
13
+ export declare function packageFixtures(scenario: PackageScenario): readonly PackageItem[];
14
+ export interface DummyUpdatesOptions {
15
+ packages?: PackageScenario;
16
+ confirm?: PackageConfirm;
17
+ }
18
+ export declare class DummyUpdates extends Emitter<UpdatesEvents> implements UpdatesPort {
9
19
  #private;
10
- constructor(scenario: UpdateScenario, clock: Clock);
20
+ packages?: () => readonly PackageItem[];
21
+ actPackage?: (id: string, action: PackageAction) => Promise<void>;
22
+ constructor(scenario: UpdateScenario, clock: Clock, options?: DummyUpdatesOptions);
11
23
  list(): readonly UpdateItem[];
12
24
  ready(): boolean;
13
25
  setScenario(scenario: UpdateScenario): void;
@@ -5,5 +5,5 @@ export type { DummyModel, DummyOptions } from './dummy/index.js';
5
5
  export { createDummyModel } from './dummy/index.js';
6
6
  export type { NetworkScenario, TailnetScenario } from './dummy/network.js';
7
7
  export { DummyNetwork, networkFixtures, tailnetFixtures } from './dummy/network.js';
8
- export type { UpdateScenario } from './dummy/updates.js';
9
- export { DummyUpdates, updateFixtures } from './dummy/updates.js';
8
+ export type { DummyUpdatesOptions, PackageConfirm, PackageScenario, UpdateScenario, } from './dummy/updates.js';
9
+ export { DummyUpdates, packageFixtures, updateFixtures } from './dummy/updates.js';
@@ -530,14 +530,40 @@ export interface UpdateItem {
530
530
  actions: readonly UpdateAction[];
531
531
  log?: string;
532
532
  }
533
- export interface UpdatesPort extends Subscribable<{
533
+ export type PackageState = 'available' | 'queued' | 'installing' | 'installed' | 'outdated' | 'updating' | 'removing' | 'failed';
534
+ export type PackageAction = 'install' | 'update' | 'remove' | 'retry';
535
+ export interface PackageItem {
536
+ id: string;
537
+ package: string;
538
+ label: string;
539
+ description: string;
540
+ commands: readonly string[];
541
+ requires?: readonly string[];
542
+ state: PackageState;
543
+ version: string | null;
544
+ offered: string | null;
545
+ size?: number;
546
+ progress: {
547
+ phase: 'download' | 'link';
548
+ done: number;
549
+ total: number;
550
+ } | null;
551
+ error: string | null;
552
+ actions: readonly PackageAction[];
553
+ log?: string;
554
+ }
555
+ export interface UpdatesEvents {
534
556
  items: readonly UpdateItem[];
535
- }> {
557
+ packages: readonly PackageItem[];
558
+ }
559
+ export interface UpdatesPort extends Subscribable<UpdatesEvents> {
536
560
  list(): readonly UpdateItem[];
537
561
  ready(): boolean;
538
562
  act(id: string, action: UpdateAction): Promise<void>;
563
+ packages?(): readonly PackageItem[];
564
+ actPackage?(id: string, action: PackageAction): Promise<void>;
539
565
  }
540
- export type NetworkRoute = 'proxy' | 'extension' | 'page';
566
+ export type NetworkRoute = 'proxy' | 'extension' | 'tailnet' | 'page';
541
567
  export interface NetworkFailure {
542
568
  url: string;
543
569
  error: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-spectrum",
3
- "version": "1.40.0",
3
+ "version": "1.42.0",
4
4
  "description": "Web components for SLICC on Spectrum Web Components: the terminal, the app shell and its surfaces",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",