@ai-ecoverse/slicc-spectrum 1.58.3 → 1.59.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.
@@ -3,6 +3,7 @@ import type { SliccDock } from '../components/dock.js';
3
3
  import type { SliccModel } from '../model/types.js';
4
4
  import { ThemedElement } from './base.js';
5
5
  import { Dips } from './dips.js';
6
+ import { Panels } from './panel-command.js';
6
7
  import { type DocumentKind, type ScreenClass, type Surface } from './panels.js';
7
8
  import { TerminalPanels } from './terminals.js';
8
9
  export declare function changeCount(count: number): string;
@@ -33,6 +34,7 @@ export declare class SliccApp extends ThemedElement {
33
34
  layoutKey: string;
34
35
  readonly dips: Dips;
35
36
  readonly terminalPanels: TerminalPanels;
37
+ readonly panels: Panels;
36
38
  constructor();
37
39
  static styles: import("lit").CSSResult[];
38
40
  get dock(): SliccDock;
@@ -24,5 +24,6 @@ export declare class SliccChat extends ThemedElement {
24
24
  disconnectedCallback(): void;
25
25
  protected firstUpdated(): void;
26
26
  focus(): void;
27
+ get busyReason(): string | null;
27
28
  render(): TemplateResult;
28
29
  }
@@ -0,0 +1,71 @@
1
+ import type { SliccDock } from '../components/dock.js';
2
+ import type { Agent, SliccModel, Sprinkle } from '../model/types.js';
3
+ import { type Direction, type ScreenClass, type Side, type Surface } from './panels.js';
4
+ export type PanelKind = 'surface' | 'chat' | 'terminal' | 'sprinkle' | 'file' | 'diff';
5
+ export interface PanelInfo {
6
+ id: string;
7
+ title: string;
8
+ kind: PanelKind;
9
+ side: Side;
10
+ agent: string | null;
11
+ open: boolean;
12
+ visible: boolean;
13
+ active: boolean;
14
+ busy: string | null;
15
+ }
16
+ export type PanelPlace = Side | {
17
+ direction: Direction;
18
+ ref: string;
19
+ };
20
+ export interface PanelResult {
21
+ code: 0 | 1 | 2 | 5;
22
+ message: string;
23
+ }
24
+ export interface PanelOpenOptions {
25
+ place?: PanelPlace;
26
+ section?: string;
27
+ }
28
+ export interface PanelsHost {
29
+ dock(): SliccDock;
30
+ screen(): ScreenClass;
31
+ model(): SliccModel | null | undefined;
32
+ surfaces(): readonly Surface[];
33
+ sprinkles(): readonly Sprinkle[];
34
+ open(id: string, focus: boolean, section?: string): void;
35
+ reset(): void;
36
+ typing(): boolean;
37
+ }
38
+ export interface PanelCaller {
39
+ agentId: string | null;
40
+ cone?: string | null;
41
+ readOnly?: boolean;
42
+ }
43
+ export interface PanelOutput {
44
+ stdout: string;
45
+ stderr: string;
46
+ code: number;
47
+ }
48
+ export declare class Panels {
49
+ #private;
50
+ constructor(host: PanelsHost);
51
+ quietly<T>(run: () => T): T;
52
+ closed(id: string): void;
53
+ closedAgo(id: string): number | null;
54
+ recentClose(): {
55
+ id: string;
56
+ ago: number;
57
+ } | null;
58
+ typing(): boolean;
59
+ agents(): readonly Agent[];
60
+ active(): string | null;
61
+ list(): PanelInfo[];
62
+ find(id: string): PanelInfo | undefined;
63
+ open(id: string, options?: PanelOpenOptions): PanelResult;
64
+ focus(id: string, options?: PanelOpenOptions): PanelResult;
65
+ close(id: string): PanelResult;
66
+ move(id: string, place: PanelPlace): PanelResult;
67
+ reset(): PanelResult;
68
+ }
69
+ export declare function panelCommand(app: {
70
+ panels: Panels;
71
+ }, argv: readonly string[], caller: PanelCaller): PanelOutput;
@@ -32,7 +32,8 @@ export declare function screenClass(width: number): ScreenClass;
32
32
  export declare function surface(id: string, items?: readonly Surface[]): Surface | undefined;
33
33
  export declare function create(tag: string, model: SliccModel, params?: PanelParams): HTMLElement;
34
34
  export declare function placement(dock: SliccDock, side: Side, screen: ScreenClass): Placement;
35
- export declare function openSurface(dock: SliccDock, item: Surface, screen: ScreenClass): void;
35
+ export declare function destination(dock: SliccDock, id: string, side: Side, screen: ScreenClass): Placement;
36
+ export declare function openSurface(dock: SliccDock, item: Surface, screen: ScreenClass, focus?: boolean): void;
36
37
  export declare function chatId(agentId: string): string;
37
38
  export declare function chatAgent(id: string | null | undefined): string | null;
38
39
  export declare function chats(dock: SliccDock): string[];
@@ -40,7 +41,7 @@ export declare function openChat(dock: SliccDock, agent: {
40
41
  id: string;
41
42
  name: string;
42
43
  }, screen: ScreenClass, focus?: boolean, reveal?: boolean): string;
43
- export declare function openDocument(dock: SliccDock, kind: DocumentKind, path: string, screen: ScreenClass): string;
44
+ export declare function openDocument(dock: SliccDock, kind: DocumentKind, path: string, screen: ScreenClass, focus?: boolean): string;
44
45
  export declare function terminalPanel(terminal: string): string;
45
46
  export declare function terminalOf(id: string | null | undefined): string | null;
46
47
  export declare function terminalPanels(dock: SliccDock): string[];
@@ -53,4 +54,4 @@ export declare function defaultLayout(dock: SliccDock, screen: ScreenClass, agen
53
54
  export declare function shown(dock: SliccDock, id: string): boolean;
54
55
  export declare function sprinkleSurface(sprinkle: Sprinkle): Surface;
55
56
  export declare function dropPlacement(panel: string | null, position: string): Placement | null;
56
- export declare function openSprinkle(dock: SliccDock, sprinkle: Sprinkle, screen: ScreenClass, place?: Placement | null): string;
57
+ export declare function openSprinkle(dock: SliccDock, sprinkle: Sprinkle, screen: ScreenClass, place?: Placement | null, focus?: boolean): string;
@@ -31,5 +31,6 @@ export declare class SliccSettings extends ModelElement {
31
31
  protected subscribe(model: SliccModel): Array<() => void>;
32
32
  focus(): void;
33
33
  connect(id: string, secret?: string): Promise<void>;
34
+ get busyReason(): string | null;
34
35
  render(): TemplateResult;
35
36
  }
@@ -38,6 +38,7 @@ export declare class SliccUpdates extends ModelElement {
38
38
  busy: ReadonlyMap<string, PackageAction>;
39
39
  problems: Failures;
40
40
  constructor();
41
+ get busyReason(): string | null;
41
42
  static styles: import("lit").CSSResult[];
42
43
  protected subscribe(model: SliccModel): Array<() => void>;
43
44
  focus(): void;
@@ -521,7 +521,7 @@ export type TrayRole = 'none' | 'leader' | 'follower';
521
521
  export interface Follower {
522
522
  id: string;
523
523
  name: string;
524
- device: 'browser' | 'phone' | 'extension';
524
+ device: 'browser' | 'phone' | 'extension' | 'cli';
525
525
  since: number;
526
526
  }
527
527
  export interface TrayBudget {
@@ -21,6 +21,8 @@ export type { ConfirmOptions, ConfirmVariant, PromptOptions } from './app/confir
21
21
  export { confirm, prompt } from './app/confirm.js';
22
22
  export type { GrammarKind } from './app/grammars.js';
23
23
  export { grammarBase, setGrammarBase } from './app/grammars.js';
24
+ export type { PanelCaller, PanelInfo, PanelKind, PanelOpenOptions, PanelOutput, PanelPlace, PanelResult, PanelsHost, } from './app/panel-command.js';
25
+ export { Panels, panelCommand } from './app/panel-command.js';
24
26
  export type { Placement, Surface } from './app/panels.js';
25
27
  export { surfaces } from './app/panels.js';
26
28
  export type { CodeColor, DiffStyle } from './components/code-view.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-spectrum",
3
- "version": "1.58.3",
3
+ "version": "1.59.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",