@ai-ecoverse/slicc-spectrum 1.12.0 → 1.14.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.
@@ -12,11 +12,11 @@ export declare const lickLabels: Record<LickChannel, [string, string]>;
12
12
  export declare function time(at: number): string;
13
13
  export declare function day(at: number): string;
14
14
  export declare function size(bytes: number): string;
15
- export declare function tool(call: ToolCall): TemplateResult;
15
+ export declare function tool(call: ToolCall, color?: 'light' | 'dark'): TemplateResult;
16
16
  export declare function parts(entries: MessagePart[], handlers: Handlers, showThinking: boolean, streaming: boolean): Array<TemplateResult | typeof nothing>;
17
17
  export declare function user(message: UserMessage): TemplateResult;
18
18
  export declare function assistant(message: AssistantMessage, name: string, model: string, handlers: Handlers, showThinking: boolean): TemplateResult;
19
- export declare function toolMessage(message: ToolMessage): TemplateResult;
19
+ export declare function toolMessage(message: ToolMessage, color?: 'light' | 'dark'): TemplateResult;
20
20
  export declare function system(message: SystemMessage, handlers: Handlers): TemplateResult;
21
21
  export declare function lick(message: LickMessage, handlers: Handlers): TemplateResult;
22
22
  export declare const messageCss: import("lit").CSSResult;
@@ -0,0 +1,31 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import type { SliccModel, UpdateAction, UpdateItem, UpdatesPort } from '../model/types.js';
3
+ import { ModelElement } from './base.js';
4
+ export declare function updatesStatus(items: readonly UpdateItem[]): string | null;
5
+ export declare class UpdateVisibility {
6
+ #private;
7
+ constructor(ready: boolean);
8
+ change(port: UpdatesPort, layout?: boolean): 'open' | 'close' | null;
9
+ }
10
+ export declare class SliccUpdates extends ModelElement {
11
+ #private;
12
+ static properties: {
13
+ model: {
14
+ attribute: boolean;
15
+ };
16
+ pending: {
17
+ state: boolean;
18
+ };
19
+ failures: {
20
+ state: boolean;
21
+ };
22
+ };
23
+ pending: ReadonlySet<string>;
24
+ failures: ReadonlyMap<string, string>;
25
+ constructor();
26
+ static styles: import("lit").CSSResult[];
27
+ protected subscribe(model: SliccModel): Array<() => void>;
28
+ focus(): void;
29
+ act(id: string, action: UpdateAction): Promise<void>;
30
+ render(): TemplateResult;
31
+ }
@@ -1,6 +1,11 @@
1
1
  import type { SliccModel } from '../model/types.js';
2
+ import { DummyUpdates, type UpdateScenario } from './updates.js';
2
3
  export interface DummyOptions {
3
4
  delay?: number;
4
5
  storage?: Storage | null;
6
+ updates?: UpdateScenario;
5
7
  }
6
- export declare function createDummyModel({ delay, storage }?: DummyOptions): SliccModel;
8
+ export interface DummyModel extends SliccModel {
9
+ updates: DummyUpdates;
10
+ }
11
+ export declare function createDummyModel({ delay, storage, updates, }?: DummyOptions): DummyModel;
@@ -0,0 +1,15 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { UpdateAction, UpdateItem, UpdatesPort } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export type UpdateScenario = 'current' | 'boot' | 'available' | 'restart' | 'failure';
5
+ export declare function updateFixtures(scenario: UpdateScenario): readonly UpdateItem[];
6
+ export declare class DummyUpdates extends Emitter<{
7
+ items: readonly UpdateItem[];
8
+ }> implements UpdatesPort {
9
+ #private;
10
+ constructor(scenario: UpdateScenario, clock: Clock);
11
+ list(): readonly UpdateItem[];
12
+ ready(): boolean;
13
+ setScenario(scenario: UpdateScenario): void;
14
+ act(id: string, action: UpdateAction): Promise<void>;
15
+ }
@@ -1,2 +1,4 @@
1
- export type { DummyOptions } from './dummy/index.js';
1
+ export type { DummyModel, DummyOptions } from './dummy/index.js';
2
2
  export { createDummyModel } from './dummy/index.js';
3
+ export type { UpdateScenario } from './dummy/updates.js';
4
+ export { DummyUpdates, updateFixtures } from './dummy/updates.js';
@@ -26,6 +26,11 @@ export interface ToolCall {
26
26
  image?: string;
27
27
  agentId?: string;
28
28
  pid?: number;
29
+ meta?: string;
30
+ diff?: {
31
+ before: string;
32
+ after: string;
33
+ };
29
34
  }
30
35
  export type AttachmentKind = 'image' | 'text' | 'file' | 'secret';
31
36
  export interface Attachment {
@@ -470,6 +475,33 @@ export interface TrayPort extends Subscribable<TrayEvents> {
470
475
  reconnect(): void;
471
476
  disconnect(): void;
472
477
  }
478
+ export type UpdateKind = 'bios' | 'kernel' | 'agent' | 'grammars' | 'global' | 'skills' | 'ui';
479
+ export type UpdateState = 'current' | 'checking' | 'downloading' | 'linking' | 'installed' | 'available' | 'ready' | 'failed';
480
+ export type UpdateAction = 'retry' | 'restart-agent' | 'reload' | 'update-now';
481
+ export interface UpdateItem {
482
+ id: string;
483
+ label: string;
484
+ kind: UpdateKind;
485
+ state: UpdateState;
486
+ progress: {
487
+ phase: 'download' | 'link';
488
+ done: number;
489
+ total: number;
490
+ } | null;
491
+ from: string | null;
492
+ to: string | null;
493
+ checkedAt: number | null;
494
+ error: string | null;
495
+ actions: readonly UpdateAction[];
496
+ log?: string;
497
+ }
498
+ export interface UpdatesPort extends Subscribable<{
499
+ items: readonly UpdateItem[];
500
+ }> {
501
+ list(): readonly UpdateItem[];
502
+ ready(): boolean;
503
+ act(id: string, action: UpdateAction): Promise<void>;
504
+ }
473
505
  export interface SliccModel {
474
506
  agent: AgentPort;
475
507
  files: FilePort;
@@ -480,4 +512,5 @@ export interface SliccModel {
480
512
  monitor: MonitorPort;
481
513
  sprinkles: SprinklePort;
482
514
  tray: TrayPort;
515
+ updates?: UpdatesPort;
483
516
  }
@@ -6,6 +6,7 @@ import { SliccChanges, SliccDiffPanel } from './app/changes.js';
6
6
  import { SliccChat } from './app/chat.js';
7
7
  import { SliccComposer } from './app/composer.js';
8
8
  import { SliccFiles, SliccFileView } from './app/files.js';
9
+ import { SliccUpdates } from './app/updates.js';
9
10
  import { SliccCodeView, SliccDiffView } from './components/code-view.js';
10
11
  import { SliccDock } from './components/dock.js';
11
12
  import { SliccFileTree } from './components/file-tree.js';
@@ -21,5 +22,5 @@ export type { GitStatusEntry } from './components/file-tree.js';
21
22
  export type { Listener, Subscribable } from './model/emitter.js';
22
23
  export { Emitter } from './model/emitter.js';
23
24
  export type * from './model/types.js';
24
- export { SliccAgents, SliccApp, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, };
25
+ export { SliccAgents, SliccApp, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccUpdates, };
25
26
  export declare function define(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-spectrum",
3
- "version": "1.12.0",
3
+ "version": "1.14.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",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@ai-ecoverse/slicc-kernel": "1.13.0",
74
- "@ai-ecoverse/slicc-shared-web": "1.5.0",
74
+ "@ai-ecoverse/slicc-shared-web": "1.5.1",
75
75
  "@ai-ecoverse/wasm-bash": "5.3.0-7",
76
76
  "@ai-ecoverse/wasm-coreutils": "9.7.0-3",
77
77
  "@biomejs/biome": "2.5.15",