@ai-ecoverse/slicc-spectrum 1.4.0 → 1.6.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.
Files changed (43) hide show
  1. package/README.md +32 -6
  2. package/dist/{chunk-SBRFYELH.js → chunk-4JUIYZ4Q.js} +4 -4
  3. package/dist/{chunk-DKUZSKYB.js → chunk-CDYGCBW7.js} +4 -4
  4. package/dist/{chunk-YPQKCWWG.js → chunk-FXM4K5WL.js} +4 -4
  5. package/dist/{chunk-C6RSQDMS.js → chunk-H57UPFSK.js} +2 -2
  6. package/dist/{chunk-FFZJVWZQ.js → chunk-JCRICTXR.js} +5 -5
  7. package/dist/{chunk-6JNYNXUQ.js → chunk-LR5GBIK7.js} +7 -7
  8. package/dist/{chunk-6GSDEWD5.js → chunk-MJOCPOXZ.js} +8 -8
  9. package/dist/{chunk-JUNZW2NI.js → chunk-N27WNL5Q.js} +3 -3
  10. package/dist/chunk-WCSKGA5W.js +30 -0
  11. package/dist/chunk-WCSKGA5W.js.map +7 -0
  12. package/dist/chunk-YWO2TNED.js +71 -0
  13. package/dist/chunk-YWO2TNED.js.map +7 -0
  14. package/dist/slicc-dummy.js +4 -62
  15. package/dist/slicc-dummy.js.map +4 -4
  16. package/dist/slicc-kernel-model.js +379 -0
  17. package/dist/slicc-kernel-model.js.map +7 -0
  18. package/dist/slicc-terminal.js +3 -26
  19. package/dist/slicc-terminal.js.map +3 -3
  20. package/dist/slicc-ui.js +586 -77
  21. package/dist/slicc-ui.js.map +4 -4
  22. package/dist/types/app/app.d.ts +7 -1
  23. package/dist/types/app/chat.d.ts +8 -0
  24. package/dist/types/app/composer.d.ts +4 -1
  25. package/dist/types/app/dips.d.ts +13 -0
  26. package/dist/types/app/files.d.ts +11 -0
  27. package/dist/types/app/panels.d.ts +15 -4
  28. package/dist/types/app/spectrum.d.ts +3 -0
  29. package/dist/types/components/dock.d.ts +2 -0
  30. package/dist/types/kernel/files.d.ts +20 -0
  31. package/dist/types/kernel/idle.d.ts +51 -0
  32. package/dist/types/kernel/index.d.ts +17 -0
  33. package/dist/types/kernel/terminals.d.ts +21 -0
  34. package/dist/types/kernel.d.ts +7 -0
  35. package/package.json +6 -2
  36. /package/dist/{chunk-SBRFYELH.js.map → chunk-4JUIYZ4Q.js.map} +0 -0
  37. /package/dist/{chunk-DKUZSKYB.js.map → chunk-CDYGCBW7.js.map} +0 -0
  38. /package/dist/{chunk-YPQKCWWG.js.map → chunk-FXM4K5WL.js.map} +0 -0
  39. /package/dist/{chunk-C6RSQDMS.js.map → chunk-H57UPFSK.js.map} +0 -0
  40. /package/dist/{chunk-FFZJVWZQ.js.map → chunk-JCRICTXR.js.map} +0 -0
  41. /package/dist/{chunk-6JNYNXUQ.js.map → chunk-LR5GBIK7.js.map} +0 -0
  42. /package/dist/{chunk-6GSDEWD5.js.map → chunk-MJOCPOXZ.js.map} +0 -0
  43. /package/dist/{chunk-JUNZW2NI.js.map → chunk-N27WNL5Q.js.map} +0 -0
@@ -2,7 +2,8 @@ import { type TemplateResult } from 'lit';
2
2
  import type { SliccDock } from '../components/dock.js';
3
3
  import type { SliccModel } from '../model/types.js';
4
4
  import { ThemedElement } from './base.js';
5
- import { type DocumentKind, type ScreenClass } from './panels.js';
5
+ import { Dips } from './dips.js';
6
+ import { type DocumentKind, type ScreenClass, type Surface } from './panels.js';
6
7
  export declare class SliccApp extends ThemedElement {
7
8
  #private;
8
9
  static properties: {
@@ -12,10 +13,15 @@ export declare class SliccApp extends ThemedElement {
12
13
  screen: {
13
14
  reflect: boolean;
14
15
  };
16
+ surfaces: {
17
+ attribute: boolean;
18
+ };
15
19
  };
16
20
  screen: ScreenClass;
21
+ surfaces: readonly Surface[];
17
22
  storage: Storage | null;
18
23
  layoutKey: string;
24
+ readonly dips: Dips;
19
25
  constructor();
20
26
  static styles: import("lit").CSSResult[];
21
27
  get dock(): SliccDock;
@@ -3,6 +3,14 @@ import type { SliccModel } from '../model/types.js';
3
3
  import { ThemedElement } from './base.js';
4
4
  export declare class SliccChat extends ThemedElement {
5
5
  #private;
6
+ static properties: {
7
+ model: {
8
+ attribute: boolean;
9
+ };
10
+ agent: {};
11
+ };
12
+ agent: string;
13
+ constructor();
6
14
  static styles: import("lit").CSSResult[];
7
15
  protected subscribe(model: SliccModel): Array<() => void>;
8
16
  protected firstUpdated(): void;
@@ -1,4 +1,4 @@
1
- import { type TemplateResult } from 'lit';
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
2
  import type { Attachment, SendMode, SliccModel } from '../model/types.js';
3
3
  import { ModelElement } from './base.js';
4
4
  export declare const limit: number;
@@ -47,13 +47,16 @@ export declare class SliccComposer extends ModelElement {
47
47
  dictating: {
48
48
  state: boolean;
49
49
  };
50
+ agent: {};
50
51
  };
51
52
  value: string;
52
53
  attachments: Attachment[];
53
54
  popup: Popup | null;
54
55
  dictating: boolean;
56
+ agent: string;
55
57
  constructor();
56
58
  static styles: import("lit").CSSResult[];
59
+ protected willUpdate(changed: PropertyValues<this>): void;
57
60
  protected subscribe(model: SliccModel): Array<() => void>;
58
61
  focus(): void;
59
62
  send(mode?: SendMode): void;
@@ -0,0 +1,13 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ export declare const dipType = "application/x-slicc-sprinkle";
3
+ export declare class Dips extends Emitter<{
4
+ change: readonly string[];
5
+ }> {
6
+ #private;
7
+ key: string;
8
+ load(storage: Storage | null): void;
9
+ list(): readonly string[];
10
+ has(id: string): boolean;
11
+ detach(id: string): void;
12
+ }
13
+ export declare function dipsOf(node: Node): Dips | null;
@@ -45,12 +45,23 @@ export declare class SliccFileView extends ThemedElement {
45
45
  missing: {
46
46
  state: boolean;
47
47
  };
48
+ draft: {
49
+ state: boolean;
50
+ };
51
+ saving: {
52
+ state: boolean;
53
+ };
48
54
  };
49
55
  path: string;
50
56
  text: string | null;
51
57
  missing: boolean;
58
+ draft: string | null;
59
+ saving: boolean;
52
60
  constructor();
53
61
  static styles: import("lit").CSSResult[];
62
+ edit(): void;
63
+ cancel(): void;
64
+ save(): Promise<void>;
54
65
  protected subscribe(model: SliccModel): Array<() => void>;
55
66
  render(): TemplateResult;
56
67
  }
@@ -28,12 +28,23 @@ export declare const documents: Record<DocumentKind, {
28
28
  title(path: string): string;
29
29
  }>;
30
30
  export declare function screenClass(width: number): ScreenClass;
31
- export declare function surface(id: string): Surface | undefined;
31
+ export declare function surface(id: string, items?: readonly Surface[]): Surface | undefined;
32
32
  export declare function create(tag: string, model: SliccModel, params?: PanelParams): HTMLElement;
33
33
  export declare function placement(dock: SliccDock, side: Side, screen: ScreenClass): Placement;
34
34
  export declare function openSurface(dock: SliccDock, item: Surface, screen: ScreenClass): void;
35
+ export declare function chatId(agentId: string): string;
36
+ export declare function chatAgent(id: string | null | undefined): string | null;
37
+ export declare function chats(dock: SliccDock): string[];
38
+ export declare function openChat(dock: SliccDock, agent: {
39
+ id: string;
40
+ name: string;
41
+ }, screen: ScreenClass, focus?: boolean): string;
35
42
  export declare function openDocument(dock: SliccDock, kind: DocumentKind, path: string, screen: ScreenClass): string;
36
- export declare function defaultLayout(dock: SliccDock, screen: ScreenClass): void;
37
- export declare function closed(dock: SliccDock): Surface[];
43
+ export declare function defaultLayout(dock: SliccDock, screen: ScreenClass, agent: {
44
+ id: string;
45
+ name: string;
46
+ } | null, items?: readonly Surface[]): void;
47
+ export declare function closed(dock: SliccDock, items?: readonly Surface[]): Surface[];
38
48
  export declare function sprinkleSurface(sprinkle: Sprinkle): Surface;
39
- export declare function openSprinkle(dock: SliccDock, sprinkle: Sprinkle, screen: ScreenClass): string;
49
+ export declare function dropPlacement(panel: string | null, position: string): Placement | null;
50
+ export declare function openSprinkle(dock: SliccDock, sprinkle: Sprinkle, screen: ScreenClass, place?: Placement | null): string;
@@ -20,11 +20,14 @@ import '@spectrum-web-components/icons-workflow/icons/sp-icon-add.js';
20
20
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-checkmark.js';
21
21
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-compare.js';
22
22
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-contrast.js';
23
+ import '@spectrum-web-components/icons-workflow/icons/sp-icon-edit.js';
23
24
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-filter.js';
24
25
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-checkmark-circle.js';
25
26
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-data.js';
26
27
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-history.js';
27
28
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-lightbulb.js';
29
+ import '@spectrum-web-components/icons-workflow/icons/sp-icon-save-floppy.js';
30
+ import '@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js';
28
31
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-globe-grid.js';
29
32
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-code.js';
30
33
  import '@spectrum-web-components/icons-workflow/icons/sp-icon-folder.js';
@@ -6,12 +6,14 @@ export declare const theme: DockviewTheme;
6
6
  export declare class SliccDock extends HTMLElement {
7
7
  #private;
8
8
  factories: Record<string, PanelFactory>;
9
+ accepts: string[];
9
10
  get api(): DockviewApi;
10
11
  connectedCallback(): void;
11
12
  disconnectedCallback(): void;
12
13
  has(id: string): boolean;
13
14
  content(id: string): HTMLElement | undefined;
14
15
  open(options: AddPanelOptions): IDockviewPanel;
16
+ reveal(id: string): void;
15
17
  close(id: string): void;
16
18
  focusPanel(id: string): void;
17
19
  cycleGroup(delta: number): string | null;
@@ -0,0 +1,20 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Change, FileEntry, FileEvents, FilePort } from '../model/types.js';
3
+ export interface KernelFilesOptions {
4
+ skip?: readonly string[];
5
+ interval?: number;
6
+ }
7
+ export declare class KernelFiles extends Emitter<FileEvents> implements FilePort {
8
+ #private;
9
+ constructor(root: FileSystemDirectoryHandle, { skip, interval }?: KernelFilesOptions);
10
+ start(): void;
11
+ stop(): void;
12
+ refresh(): Promise<void>;
13
+ list(): Promise<readonly FileEntry[]>;
14
+ read(path: string): Promise<string>;
15
+ write(path: string, text: string): Promise<void>;
16
+ remove(path: string): Promise<void>;
17
+ changes(): readonly Change[];
18
+ accept(): void;
19
+ revert(): Promise<void>;
20
+ }
@@ -0,0 +1,51 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Agent, AgentEvents, AgentPort, BrowserEvents, BrowserPort, BrowserTab, FrozenCone, Memory, MemoryEvents, MemoryPort, Message, MonitorEvents, MonitorPort, MonitorSnapshot, SprinkleEvents, SprinklePort, TrayEvents, TrayPort, TrayStatus, UserMessage } from '../model/types.js';
3
+ export declare class IdleAgent extends Emitter<AgentEvents> implements AgentPort {
4
+ list(): readonly Agent[];
5
+ active(): string;
6
+ select(): void;
7
+ messages(): readonly Message[];
8
+ send(): Promise<void>;
9
+ stop(): void;
10
+ busy(): boolean;
11
+ queue(): readonly UserMessage[];
12
+ unqueue(): void;
13
+ suggestion(): string | null;
14
+ answer(): void;
15
+ resolveLick(): void;
16
+ compact(): void;
17
+ clear(): void;
18
+ setModel(): void;
19
+ createScoop(): Agent;
20
+ frozen(): readonly FrozenCone[];
21
+ freeze(): void;
22
+ thaw(): Agent | null;
23
+ discard(): void;
24
+ }
25
+ export declare class IdleBrowser extends Emitter<BrowserEvents> implements BrowserPort {
26
+ list(): readonly BrowserTab[];
27
+ active(): string | null;
28
+ activate(): void;
29
+ open(): BrowserTab;
30
+ navigate(): void;
31
+ close(): void;
32
+ screenshot(): Promise<string>;
33
+ }
34
+ export declare class IdleMemory extends Emitter<MemoryEvents> implements MemoryPort {
35
+ list(): readonly Memory[];
36
+ save(): Memory;
37
+ remove(): void;
38
+ }
39
+ export declare class IdleMonitor extends Emitter<MonitorEvents> implements MonitorPort {
40
+ snapshot(): MonitorSnapshot;
41
+ resync(): void;
42
+ }
43
+ export declare class IdleSprinkles extends Emitter<SprinkleEvents> implements SprinklePort {
44
+ list(): readonly [];
45
+ send(): void;
46
+ }
47
+ export declare class IdleTray extends Emitter<TrayEvents> implements TrayPort {
48
+ status(): TrayStatus;
49
+ reconnect(): void;
50
+ disconnect(): void;
51
+ }
@@ -0,0 +1,17 @@
1
+ import type { TerminalKernel } from '../kernel-backend.js';
2
+ import type { SliccModel } from '../model/types.js';
3
+ import { KernelFiles, type KernelFilesOptions } from './files.js';
4
+ import { KernelTerminals, type KernelTerminalsOptions } from './terminals.js';
5
+ export interface KernelModelOptions {
6
+ kernel: TerminalKernel;
7
+ root: FileSystemDirectoryHandle;
8
+ files?: KernelFilesOptions;
9
+ terminals?: KernelTerminalsOptions;
10
+ storage?: Storage | null;
11
+ }
12
+ export interface KernelModel extends SliccModel {
13
+ files: KernelFiles;
14
+ terminals: KernelTerminals;
15
+ }
16
+ export declare function idleModel(storage?: Storage | null): Omit<SliccModel, 'files' | 'terminals'>;
17
+ export declare function createKernelModel({ kernel, root, files, terminals, storage, }: KernelModelOptions): KernelModel;
@@ -0,0 +1,21 @@
1
+ import type { TerminalBackend } from '../backend.js';
2
+ import { type TerminalKernel } from '../kernel-backend.js';
3
+ import { Emitter } from '../model/emitter.js';
4
+ import type { TerminalEvents, TerminalInfo, TerminalPort } from '../model/types.js';
5
+ export interface KernelTerminalsOptions {
6
+ argv?: string[];
7
+ cwd?: string;
8
+ env?: Record<string, string>;
9
+ open?: number;
10
+ }
11
+ export declare class KernelTerminals extends Emitter<TerminalEvents> implements TerminalPort {
12
+ #private;
13
+ constructor(kernel: TerminalKernel, { argv, cwd, env, open }?: KernelTerminalsOptions);
14
+ list(): readonly TerminalInfo[];
15
+ open({ cwd, agentId, }?: {
16
+ cwd?: string;
17
+ agentId?: string | null;
18
+ }): TerminalInfo;
19
+ close(id: string): void;
20
+ backend(id: string): TerminalBackend;
21
+ }
@@ -0,0 +1,7 @@
1
+ export type { KernelFilesOptions } from './kernel/files.js';
2
+ export { KernelFiles } from './kernel/files.js';
3
+ export { IdleAgent, IdleBrowser, IdleMemory, IdleMonitor, IdleSprinkles, IdleTray, } from './kernel/idle.js';
4
+ export type { KernelModel, KernelModelOptions } from './kernel/index.js';
5
+ export { createKernelModel, idleModel } from './kernel/index.js';
6
+ export type { KernelTerminalsOptions } from './kernel/terminals.js';
7
+ export { KernelTerminals } from './kernel/terminals.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-spectrum",
3
- "version": "1.4.0",
3
+ "version": "1.6.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",
@@ -33,6 +33,10 @@
33
33
  "./dummy": {
34
34
  "types": "./dist/types/dummy.d.ts",
35
35
  "default": "./dist/slicc-dummy.js"
36
+ },
37
+ "./kernel": {
38
+ "types": "./dist/types/kernel.d.ts",
39
+ "default": "./dist/slicc-kernel-model.js"
36
40
  }
37
41
  },
38
42
  "files": [
@@ -66,7 +70,7 @@
66
70
  }
67
71
  },
68
72
  "devDependencies": {
69
- "@ai-ecoverse/slicc-kernel": "1.8.2",
73
+ "@ai-ecoverse/slicc-kernel": "1.8.10",
70
74
  "@ai-ecoverse/slicc-shared-web": "1.4.1",
71
75
  "@ai-ecoverse/wasm-bash": "5.3.0-7",
72
76
  "@ai-ecoverse/wasm-coreutils": "9.7.0-3",