@ai-ecoverse/slicc-spectrum 1.49.2 → 1.51.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.
@@ -0,0 +1,51 @@
1
+ import '@adobe/spectrum-wc/components/button/swc-button.js';
2
+ import '@adobe/spectrum-wc-icons/swc-icon-alert-triangle.js';
3
+ import '@spectrum-web-components/alert-dialog/sp-alert-dialog.js';
4
+ import { type PropertyValues } from 'lit';
5
+ import type { Approval, ApprovalDecision, SliccModel } from '../model/types.js';
6
+ import { ModelElement } from './base.js';
7
+ export declare function countdown(ms: number): string;
8
+ export declare function asking(approval: Approval): string;
9
+ export declare function sudo(approval: Approval): string;
10
+ export declare function waiting(model: SliccModel | null, now: number): Approval[];
11
+ export declare class SliccApprovals extends ModelElement {
12
+ #private;
13
+ static properties: {
14
+ model: {
15
+ attribute: boolean;
16
+ };
17
+ now: {
18
+ state: boolean;
19
+ };
20
+ busy: {
21
+ state: boolean;
22
+ };
23
+ failure: {
24
+ state: boolean;
25
+ };
26
+ gone: {
27
+ state: boolean;
28
+ };
29
+ };
30
+ now: number;
31
+ busy: ApprovalDecision | '';
32
+ failure: {
33
+ id: string;
34
+ message: string;
35
+ } | null;
36
+ gone: {
37
+ approval: Approval;
38
+ reason: 'elsewhere' | 'expired';
39
+ } | null;
40
+ arming: number;
41
+ constructor();
42
+ static styles: import("lit").CSSResult[];
43
+ protected subscribe(model: SliccModel): Array<() => void>;
44
+ disconnectedCallback(): void;
45
+ decide(approval: Approval, decision: ApprovalDecision): Promise<void>;
46
+ protected willUpdate(changed: PropertyValues): void;
47
+ protected updated(changed: PropertyValues): void;
48
+ close(): void;
49
+ render(): unknown;
50
+ }
51
+ export declare function deadline(at: number): string;
@@ -21,6 +21,8 @@ export interface PromptOptions {
21
21
  trigger?: HTMLElement | null;
22
22
  submit?: (value: string) => Promise<void>;
23
23
  }
24
+ export declare function focused(): HTMLElement | null;
25
+ export declare const dialogStyles: import("lit").CSSResult;
24
26
  export declare class SliccConfirm extends LitElement {
25
27
  #private;
26
28
  static properties: {
@@ -22,6 +22,7 @@ import '@adobe/spectrum-wc-icons/swc-icon-file.js';
22
22
  import '@adobe/spectrum-wc-icons/swc-icon-file-text.js';
23
23
  import '@adobe/spectrum-wc-icons/swc-icon-globe-grid.js';
24
24
  import '@adobe/spectrum-wc-icons/swc-icon-lock.js';
25
+ import '@adobe/spectrum-wc-icons/swc-icon-plugin.js';
25
26
  import '@adobe/spectrum-wc-icons/swc-icon-search.js';
26
27
  import '@adobe/spectrum-wc-icons/swc-icon-tools.js';
27
28
  import '@adobe/spectrum-wc-icons/swc-icon-user-group.js';
@@ -0,0 +1,13 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Approval, ApprovalDecision, ApprovalEnd, ApprovalsEvents, ApprovalsPort } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export type ApprovalScenario = 'agent' | 'user' | 'many' | 'follower' | 'fail' | 'soon' | 'elsewhere' | 'withdrawn';
5
+ export declare function approvalFixtures(scenario: ApprovalScenario, now?: number): Approval[];
6
+ export declare class DummyApprovals extends Emitter<ApprovalsEvents> implements ApprovalsPort {
7
+ #private;
8
+ decisions: Array<[string, ApprovalDecision]>;
9
+ decide?: (id: string, decision: ApprovalDecision) => Promise<void>;
10
+ constructor(scenario: ApprovalScenario, time: Clock);
11
+ end(id: string, reason: ApprovalEnd): void;
12
+ list(): readonly Approval[];
13
+ }
@@ -1,4 +1,5 @@
1
1
  import type { SliccModel } from '../model/types.js';
2
+ import { type ApprovalScenario, DummyApprovals } from './approvals.js';
2
3
  import { type BrowserScenario, DummyBrowser } from './browser.js';
3
4
  import { type ChangesScenario } from './changes.js';
4
5
  import { type MountScenario } from './files.js';
@@ -19,6 +20,7 @@ export interface DummyOptions {
19
20
  changes?: ChangesScenario;
20
21
  notices?: NoticeScenario | 'off';
21
22
  tabs?: TabsScenario | 'off';
23
+ approvals?: ApprovalScenario | 'off';
22
24
  browser?: BrowserScenario;
23
25
  }
24
26
  export interface DummyModel extends SliccModel {
@@ -27,5 +29,6 @@ export interface DummyModel extends SliccModel {
27
29
  network?: DummyNetwork;
28
30
  notices?: DummyNotices;
29
31
  tabs?: DummyTabs;
32
+ approvals?: DummyApprovals;
30
33
  }
31
- export declare function createDummyModel({ delay, storage, updates, packages, confirm, mounts, network, tailnet, links, changes, notices, tabs, browser: scenario, }?: DummyOptions): DummyModel;
34
+ export declare function createDummyModel({ delay, storage, updates, packages, confirm, mounts, network, tailnet, links, changes, notices, tabs, approvals, browser: scenario, }?: DummyOptions): DummyModel;
@@ -1,3 +1,5 @@
1
+ export type { ApprovalScenario } from './dummy/approvals.js';
2
+ export { approvalFixtures, DummyApprovals } from './dummy/approvals.js';
1
3
  export type { ActionDraft, BrowserScenario } from './dummy/browser.js';
2
4
  export { browserHistory, DummyBrowser, page } from './dummy/browser.js';
3
5
  export type { ChangesScenario } from './dummy/changes.js';
@@ -396,6 +396,8 @@ export interface Account {
396
396
  status: AccountStatus;
397
397
  auth?: 'oauth' | 'api-key' | 'local';
398
398
  needs?: 'cors-free-transport';
399
+ group?: 'providers' | 'mcp';
400
+ secret?: 'api-key' | 'token';
399
401
  }
400
402
  export interface ModelOption {
401
403
  id: string;
@@ -706,6 +708,37 @@ export interface NoticesPort extends Subscribable<{
706
708
  act(id: string, action: string): Promise<void>;
707
709
  dismiss(id: string): void;
708
710
  }
711
+ export type ApprovalDecision = 'once' | 'always' | 'deny';
712
+ export interface ApprovalRequester {
713
+ kind: 'agent' | 'user';
714
+ name: string;
715
+ agentId?: string;
716
+ where?: string;
717
+ }
718
+ export interface SudoApproval {
719
+ id: string;
720
+ kind: 'sudo';
721
+ requester: ApprovalRequester;
722
+ command: string;
723
+ target?: string;
724
+ cwd?: string;
725
+ createdAt: number;
726
+ expiresAt: number;
727
+ always: boolean;
728
+ }
729
+ export type Approval = SudoApproval;
730
+ export type ApprovalEnd = 'answered' | 'withdrawn' | 'expired';
731
+ export interface ApprovalsEvents {
732
+ approvals: readonly Approval[];
733
+ ended: {
734
+ id: string;
735
+ reason: ApprovalEnd;
736
+ };
737
+ }
738
+ export interface ApprovalsPort extends Subscribable<ApprovalsEvents> {
739
+ list(): readonly Approval[];
740
+ decide?(id: string, decision: ApprovalDecision): Promise<void>;
741
+ }
709
742
  export type TabRole = 'owner' | 'follower' | 'connecting' | 'alone';
710
743
  export type TabSkew = 'newer' | 'older';
711
744
  export interface TabsState {
@@ -734,4 +767,5 @@ export interface SliccModel {
734
767
  changes?: ChangesPort;
735
768
  notices?: NoticesPort;
736
769
  tabs?: TabsPort;
770
+ approvals?: ApprovalsPort;
737
771
  }
@@ -1,6 +1,7 @@
1
1
  import './app/spectrum.ts';
2
2
  import { SliccAgents } from './app/agents.js';
3
3
  import { SliccApp } from './app/app.js';
4
+ import { SliccApprovals } from './app/approvals.js';
4
5
  import { SliccBrowser } from './app/browser.js';
5
6
  import { SliccChanges, SliccDiffPanel } from './app/changes.js';
6
7
  import { SliccChat } from './app/chat.js';
@@ -27,5 +28,5 @@ export type { GitStatusEntry } from './components/file-tree.js';
27
28
  export type { Listener, Subscribable } from './model/emitter.js';
28
29
  export { Emitter } from './model/emitter.js';
29
30
  export type * from './model/types.js';
30
- export { SliccAgents, SliccApp, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccNetwork, SliccNotices, SliccPrompt, SliccUpdates, };
31
+ export { SliccAgents, SliccApp, SliccApprovals, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccNetwork, SliccNotices, SliccPrompt, SliccUpdates, };
31
32
  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.49.2",
3
+ "version": "1.51.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",