@ai-ecoverse/slicc-spectrum 1.60.2 → 1.62.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.
@@ -7,6 +7,8 @@ import { ModelElement } from './base.js';
7
7
  export declare function countdown(ms: number): string;
8
8
  export declare function asking(approval: Approval): string;
9
9
  export declare function sudo(approval: Approval): string;
10
+ export declare const certain: (rules: string) => boolean;
11
+ export declare function secretRules(approval: Approval): string | null;
10
12
  export declare function waiting(model: SliccModel | null, now: number): Approval[];
11
13
  export declare class SliccApprovals extends ModelElement {
12
14
  #private;
@@ -1,5 +1,6 @@
1
1
  import '@adobe/spectrum-wc/components/button/swc-button.js';
2
2
  import '@adobe/spectrum-wc/components/close-button/swc-close-button.js';
3
+ import '@adobe/spectrum-wc/components/progress-circle/swc-progress-circle.js';
3
4
  import '@adobe/spectrum-wc/patterns/ai-toolkit/prompt-field/swc-prompt-field.js';
4
5
  import '@adobe/spectrum-wc/patterns/ai-toolkit/upload-attachment/swc-upload-attachment.js';
5
6
  import '@adobe/spectrum-wc-icons/swc-icon-alert-triangle.js';
@@ -9,7 +10,7 @@ import '@adobe/spectrum-wc-icons/swc-icon-file-text.js';
9
10
  import '@adobe/spectrum-wc-icons/swc-icon-lock.js';
10
11
  import { type PropertyValues, type TemplateResult } from 'lit';
11
12
  import type { Attachment, Outgoing, SendMode, SliccModel } from '../model/types.js';
12
- import { ModelElement } from './base.js';
13
+ import { ThemedElement } from './base.js';
13
14
  export declare const limit: number;
14
15
  export interface Choice {
15
16
  value: string;
@@ -41,7 +42,7 @@ export declare function trigger(text: string, caret: number): {
41
42
  start: number;
42
43
  query: string;
43
44
  } | null;
44
- export declare class SliccComposer extends ModelElement {
45
+ export declare class SliccComposer extends ThemedElement {
45
46
  #private;
46
47
  static properties: {
47
48
  model: {
@@ -59,12 +60,16 @@ export declare class SliccComposer extends ModelElement {
59
60
  dictating: {
60
61
  state: boolean;
61
62
  };
63
+ blocked: {
64
+ state: boolean;
65
+ };
62
66
  agent: {};
63
67
  };
64
68
  value: string;
65
69
  attachments: Attachment[];
66
70
  popup: Popup | null;
67
71
  dictating: boolean;
72
+ blocked: boolean;
68
73
  agent: string;
69
74
  constructor();
70
75
  static styles: import("lit").CSSResult[];
@@ -0,0 +1,63 @@
1
+ import '@adobe/spectrum-wc/components/badge/swc-badge.js';
2
+ import '@adobe/spectrum-wc/components/button/swc-button.js';
3
+ import '@adobe/spectrum-wc/components/status-light/swc-status-light.js';
4
+ import '@adobe/spectrum-wc-icons/swc-icon-alert-triangle.js';
5
+ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
6
+ import type { AuditEntry, LinkedDevice, PolicyNotice, SecretView, SliccModel, VaultPort } from '../model/types.js';
7
+ import { ThemedElement } from './base.js';
8
+ import { type PopupDetail } from './vault.js';
9
+ export declare function until(at: number, now?: number): string;
10
+ export declare function who(entry: {
11
+ uid: number | null;
12
+ tag: string | null;
13
+ }): string;
14
+ export declare function sourceLine(secret: SecretView, devices: readonly LinkedDevice[]): string;
15
+ export declare function revealed(name: string, entries: readonly AuditEntry[], now?: number, more?: boolean): TemplateResult | null;
16
+ export declare function auditLine(entry: AuditEntry, devices: readonly LinkedDevice[]): TemplateResult;
17
+ export declare function merged(...pages: ReadonlyArray<readonly AuditEntry[]>): AuditEntry[];
18
+ export declare function prompt(text: string): string;
19
+ export declare class SliccSecrets extends ThemedElement {
20
+ #private;
21
+ static properties: {
22
+ model: {
23
+ attribute: boolean;
24
+ };
25
+ older: {
26
+ state: boolean;
27
+ };
28
+ more: {
29
+ state: boolean;
30
+ };
31
+ loading: {
32
+ state: boolean;
33
+ };
34
+ reveals: {
35
+ state: boolean;
36
+ };
37
+ popup: {
38
+ state: boolean;
39
+ };
40
+ acking: {
41
+ state: boolean;
42
+ };
43
+ failure: {
44
+ state: boolean;
45
+ };
46
+ };
47
+ older: readonly AuditEntry[];
48
+ more: boolean | null;
49
+ loading: boolean;
50
+ reveals: boolean;
51
+ popup: PopupDetail | null;
52
+ acking: ReadonlySet<string>;
53
+ failure: string | null;
54
+ constructor();
55
+ static styles: import("lit").CSSResult;
56
+ disconnectedCallback(): void;
57
+ protected willUpdate(changed: PropertyValues): void;
58
+ protected updated(): void;
59
+ protected subscribe(model: SliccModel): Array<() => void>;
60
+ showOlder(vault: VaultPort, entries: readonly AuditEntry[]): Promise<void>;
61
+ acknowledge(vault: VaultPort, notice: PolicyNotice): Promise<void>;
62
+ render(): TemplateResult | typeof nothing;
63
+ }
@@ -0,0 +1,36 @@
1
+ import { LitElement, type PropertyValues } from 'lit';
2
+ import type { ButtonConfig, ExecGrant, ExitName, LinkedDevice, PopupIntent, PopupResult, PopupState, Rule, SliccModel, VaultPort, Widening } from '../model/types.js';
3
+ export declare function devicesOf(model: SliccModel | null): readonly LinkedDevice[];
4
+ export declare function deviceName(id: string, devices: readonly LinkedDevice[]): string;
5
+ export declare function exitLabel(exit: ExitName, devices: readonly LinkedDevice[]): string;
6
+ export declare function list(items: readonly string[]): string;
7
+ export declare function ruleLine(rule: Rule): string;
8
+ export declare function shellWord(word: string): string;
9
+ export declare function execLine(grant: ExecGrant): string;
10
+ export declare function widening(change: Widening, devices: readonly LinkedDevice[]): string;
11
+ export declare function tabbables(root: ParentNode, stop: Element, out?: Array<HTMLElement | null>): Array<HTMLElement | null>;
12
+ export declare function sequential(order: Array<HTMLElement | null>): Array<HTMLElement | null>;
13
+ export interface PopupDetail {
14
+ intent: PopupIntent;
15
+ state: PopupState;
16
+ result?: PopupResult;
17
+ }
18
+ export declare class SliccVaultButton extends LitElement {
19
+ #private;
20
+ static properties: {
21
+ vault: {
22
+ attribute: boolean;
23
+ };
24
+ config: {
25
+ attribute: boolean;
26
+ };
27
+ };
28
+ vault: VaultPort | null | undefined;
29
+ config: ButtonConfig | null;
30
+ static styles: import("lit").CSSResult;
31
+ constructor();
32
+ connectedCallback(): void;
33
+ disconnectedCallback(): void;
34
+ focus(): void;
35
+ protected updated(changed: PropertyValues): void;
36
+ }
@@ -1,5 +1,5 @@
1
1
  import { Emitter } from '../model/emitter.js';
2
- import type { Agent, AgentEvents, AgentPort, FrozenCone, LickChannel, LickState, Message, Outgoing, SlashCommand, Thinking, UserMessage } from '../model/types.js';
2
+ import type { Agent, AgentEvents, AgentHold, AgentPort, FrozenCone, LickChannel, LickState, Message, Outgoing, SlashCommand, Thinking, UserMessage } from '../model/types.js';
3
3
  import type { Clock } from './clock.js';
4
4
  import { type Effects } from './script.js';
5
5
  export declare class DummyAgent extends Emitter<AgentEvents> implements AgentPort {
@@ -32,6 +32,8 @@ export declare class DummyAgent extends Emitter<AgentEvents> implements AgentPor
32
32
  drop(agentId: string): Promise<void>;
33
33
  createCone(name: string): Promise<Agent>;
34
34
  lick(agentId: string, channel: LickChannel, title: string, text: string, body?: string): void;
35
+ hold(): AgentHold | null;
36
+ setHold(hold: AgentHold | null): void;
35
37
  frozen(): readonly FrozenCone[];
36
38
  freeze(agentId: string): void;
37
39
  thaw(id: string): Agent | null;
@@ -1,7 +1,7 @@
1
1
  import { Emitter } from '../model/emitter.js';
2
2
  import type { Approval, ApprovalDecision, ApprovalEnd, ApprovalsEvents, ApprovalsPort } from '../model/types.js';
3
3
  import type { Clock } from './clock.js';
4
- export type ApprovalScenario = 'agent' | 'user' | 'many' | 'follower' | 'fail' | 'soon' | 'elsewhere' | 'withdrawn';
4
+ export type ApprovalScenario = 'agent' | 'user' | 'many' | 'follower' | 'fail' | 'soon' | 'elsewhere' | 'withdrawn' | 'secrets';
5
5
  export declare function approvalFixtures(scenario: ApprovalScenario, now?: number): Approval[];
6
6
  export declare class DummyApprovals extends Emitter<ApprovalsEvents> implements ApprovalsPort {
7
7
  #private;
@@ -1,4 +1,4 @@
1
- import type { SliccModel } from '../model/types.js';
1
+ import type { AgentHold, SliccModel } from '../model/types.js';
2
2
  import { type ApprovalScenario, DummyApprovals } from './approvals.js';
3
3
  import { type BrowserScenario, DummyBrowser } from './browser.js';
4
4
  import { type ChangesScenario } from './changes.js';
@@ -8,6 +8,7 @@ import { DummyNetwork, type LinksScenario, type NetworkScenario, type TailnetSce
8
8
  import { DummyNotices, type NoticeScenario } from './notices.js';
9
9
  import { DummyTabs, type TabsScenario } from './tabs.js';
10
10
  import { DummyUpdates, type PackageConfirm, type PackageScenario, type UpdateScenario } from './updates.js';
11
+ import { DummyVault, type VaultScenario } from './vault.js';
11
12
  export interface DummyOptions {
12
13
  delay?: number;
13
14
  storage?: Storage | null;
@@ -23,6 +24,8 @@ export interface DummyOptions {
23
24
  tabs?: TabsScenario | 'off';
24
25
  approvals?: ApprovalScenario | 'off';
25
26
  follow?: FollowScenario | 'off';
27
+ vault?: VaultScenario | 'off';
28
+ hold?: AgentHold['reason'] | 'off';
26
29
  browser?: BrowserScenario;
27
30
  sprinkles?: 'builtin' | 'cones';
28
31
  monitor?: 'dummy' | 'agent';
@@ -35,5 +38,6 @@ export interface DummyModel extends SliccModel {
35
38
  tabs?: DummyTabs;
36
39
  approvals?: DummyApprovals;
37
40
  follow?: DummyFollow;
41
+ vault?: DummyVault;
38
42
  }
39
- export declare function createDummyModel({ delay, storage, updates, packages, confirm, mounts, network, tailnet, links, changes, notices, tabs, approvals, follow, browser: scenario, sprinkles, monitor, }?: DummyOptions): DummyModel;
43
+ export declare function createDummyModel({ delay, storage, updates, packages, confirm, mounts, network, tailnet, links, changes, notices, tabs, approvals, follow, vault, hold, browser: scenario, sprinkles, monitor, }?: DummyOptions): DummyModel;
@@ -0,0 +1,42 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { AuditEntry, AuditPage, ButtonConfig, ButtonEvent, ButtonMessage, PolicyNotice, SecretView, VaultButton, VaultEvents, VaultList, VaultPort, VaultStatus } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export type VaultScenario = 'empty' | 'secrets' | 'notice' | 'locked';
5
+ export declare function vaultSecrets(now?: number): SecretView[];
6
+ export declare function vaultAudit(now?: number): AuditEntry[];
7
+ export declare function vaultOlder(now?: number): AuditEntry[];
8
+ export declare function vaultNotice(now?: number): PolicyNotice;
9
+ export declare function vaultFixtures(scenario: VaultScenario, now?: number): {
10
+ status: VaultStatus;
11
+ list: VaultList;
12
+ };
13
+ export declare class DummyVaultButton implements VaultButton {
14
+ #private;
15
+ element: HTMLElement;
16
+ config: ButtonConfig | null;
17
+ constructor(vault: DummyVault, time: Clock);
18
+ post(message: ButtonMessage): void;
19
+ listen(listener: (event: ButtonEvent) => void): () => void;
20
+ }
21
+ export declare class DummyVault extends Emitter<VaultEvents> implements VaultPort {
22
+ #private;
23
+ buttons: DummyVaultButton[];
24
+ acknowledged: string[];
25
+ constructor(scenario: VaultScenario, time: Clock);
26
+ status(): VaultStatus;
27
+ list(): VaultList;
28
+ audit(before?: number, limit?: number): Promise<AuditPage>;
29
+ acknowledge(notice: string): Promise<void>;
30
+ button(): DummyVaultButton;
31
+ autoLabel(): string;
32
+ autoIntent(): {
33
+ kind: 'unlock';
34
+ } | {
35
+ kind: 'manage';
36
+ };
37
+ answer(intent: Exclude<ButtonConfig['intent'], 'auto'>): Promise<{
38
+ name: string;
39
+ placeholder: string;
40
+ state: 'active';
41
+ } | null>;
42
+ }
@@ -17,3 +17,5 @@ export type { TabsScenario } from './dummy/tabs.js';
17
17
  export { DummyTabs, tabsFixtures } from './dummy/tabs.js';
18
18
  export type { DummyUpdatesOptions, PackageConfirm, PackageScenario, UpdateScenario, } from './dummy/updates.js';
19
19
  export { DummyUpdates, packageFixtures, updateFixtures } from './dummy/updates.js';
20
+ export type { VaultScenario } from './dummy/vault.js';
21
+ export { DummyVault, DummyVaultButton, vaultAudit, vaultFixtures, vaultNotice, vaultOlder, vaultSecrets, } from './dummy/vault.js';
@@ -213,6 +213,10 @@ export interface Outgoing {
213
213
  attachments?: Attachment[];
214
214
  mode?: SendMode;
215
215
  }
216
+ export interface AgentHold {
217
+ reason: 'waiting' | 'locked';
218
+ held: number;
219
+ }
216
220
  export interface AgentEvents {
217
221
  agents: readonly Agent[];
218
222
  active: string;
@@ -222,6 +226,7 @@ export interface AgentEvents {
222
226
  };
223
227
  messages: string;
224
228
  frozen: readonly FrozenCone[];
229
+ hold: AgentHold | null;
225
230
  }
226
231
  export interface AgentPort extends Subscribable<AgentEvents> {
227
232
  list(): readonly Agent[];
@@ -251,6 +256,7 @@ export interface AgentPort extends Subscribable<AgentEvents> {
251
256
  rewind?(agentId: string, messageId: string): Promise<Outgoing | null>;
252
257
  drop?(agentId: string): Promise<void>;
253
258
  createCone?(name: string): Promise<Agent>;
259
+ hold?(): AgentHold | null;
254
260
  }
255
261
  export interface SlashCommand {
256
262
  name: string;
@@ -806,6 +812,246 @@ export interface FollowPort extends Subscribable<{
806
812
  leave(): Promise<void>;
807
813
  retry?(): Promise<void>;
808
814
  }
815
+ export type DeviceId = string;
816
+ export type RecordKind = 'secret' | 'grant' | 'model' | 'mcp';
817
+ export type RecordState = 'active' | 'inert' | 'removed';
818
+ export type RecordSource = 'popup' | 'process' | `jerk:${string}@${DeviceId}` | `oauth:${string}` | `import:${string}`;
819
+ export type LockMode = 'auto' | 'passkey' | 'passphrase';
820
+ export type RequestKind = 'value' | 'oauth' | 'jerk-seal';
821
+ export type ExitName = 'vault-direct' | 'local-proxy' | 'cli-v' | 'tailscale' | 'local-link' | `device:${DeviceId}`;
822
+ export type ExecGrant = boolean | {
823
+ argv: string[][];
824
+ };
825
+ export interface Rule {
826
+ domain: string;
827
+ header: string;
828
+ methods: string[];
829
+ paths: string[];
830
+ }
831
+ export interface SecretView {
832
+ name: string;
833
+ kind: RecordKind;
834
+ placeholder: string;
835
+ state: RecordState;
836
+ source: RecordSource;
837
+ sourceDevice: DeviceId | null;
838
+ provider?: string;
839
+ account?: string;
840
+ domains: string[];
841
+ rules: Rule[];
842
+ exits: ExitName[];
843
+ exec: ExecGrant;
844
+ createdAt: number;
845
+ usedAt?: number;
846
+ expiresAt?: number;
847
+ removedAt?: number;
848
+ }
849
+ export interface PendingRequest {
850
+ id: string;
851
+ kind: RequestKind;
852
+ name?: string;
853
+ provider?: string;
854
+ prompt?: string;
855
+ uid: number;
856
+ tag: string | null;
857
+ createdAt: number;
858
+ expiresAt: number;
859
+ }
860
+ export interface VaultStatus {
861
+ version: string;
862
+ protocol: 1;
863
+ origin: string;
864
+ locked: boolean;
865
+ lock: LockMode;
866
+ waiting: PendingRequest[];
867
+ notices: number;
868
+ }
869
+ export type Widening = {
870
+ kind: 'rule';
871
+ secret: string;
872
+ rule: Rule;
873
+ } | {
874
+ kind: 'methods';
875
+ secret: string;
876
+ domain: string;
877
+ methods: string[];
878
+ } | {
879
+ kind: 'paths';
880
+ secret: string;
881
+ domain: string;
882
+ paths: string[];
883
+ } | {
884
+ kind: 'exec';
885
+ secret: string;
886
+ grant: ExecGrant;
887
+ } | {
888
+ kind: 'exit';
889
+ secret: string;
890
+ exit: ExitName;
891
+ } | {
892
+ kind: 'limits';
893
+ field: string;
894
+ from: number;
895
+ to: number;
896
+ };
897
+ export type PolicyFile = '/etc/fnox/config.toml' | '/etc/slicc/secrets-policy.toml';
898
+ export interface PolicyNotice {
899
+ id: string;
900
+ at: number;
901
+ file: PolicyFile;
902
+ sha256: string;
903
+ widened: Widening[];
904
+ acknowledged: boolean;
905
+ }
906
+ interface AuditBase {
907
+ seq: number;
908
+ id: string;
909
+ at: number;
910
+ name: string;
911
+ uid: number | null;
912
+ tag: string | null;
913
+ }
914
+ export interface InjectionEntry extends AuditBase {
915
+ type: 'inject' | 'forward';
916
+ domain: string;
917
+ method: string;
918
+ path: string;
919
+ rule: Rule;
920
+ exit: ExitName;
921
+ }
922
+ export interface RevealEntry extends AuditBase {
923
+ type: 'materialize';
924
+ grant: ExecGrant;
925
+ path: string;
926
+ argv: string;
927
+ argvSha256: string;
928
+ cwd: string;
929
+ pid: number;
930
+ ppid: number;
931
+ ticket: string;
932
+ consumed: boolean;
933
+ }
934
+ export interface SealEntry extends AuditBase {
935
+ type: 'seal';
936
+ source: RecordSource;
937
+ rotated: boolean;
938
+ }
939
+ export interface RemoveEntry extends AuditBase {
940
+ type: 'remove' | 'restore';
941
+ }
942
+ export interface PolicyEntry {
943
+ type: 'policy';
944
+ seq: number;
945
+ id: string;
946
+ at: number;
947
+ file: PolicyFile;
948
+ sha256: string;
949
+ accepted: boolean;
950
+ widened: Widening[];
951
+ warning?: string;
952
+ }
953
+ export type AuditEntry = InjectionEntry | RevealEntry | SealEntry | RemoveEntry | PolicyEntry;
954
+ export interface AuditPage {
955
+ audit: AuditEntry[];
956
+ more: boolean;
957
+ next?: number;
958
+ }
959
+ export interface VaultList {
960
+ secrets: SecretView[];
961
+ notices: PolicyNotice[];
962
+ audit: AuditEntry[];
963
+ auditMore: boolean;
964
+ }
965
+ export type PopupIntent = {
966
+ kind: 'unlock';
967
+ } | {
968
+ kind: 'enter';
969
+ name: string;
970
+ request?: string;
971
+ } | {
972
+ kind: 'request';
973
+ request: string;
974
+ } | {
975
+ kind: 'import';
976
+ format?: 'bundle' | 'keepass' | 'six';
977
+ } | {
978
+ kind: 'export';
979
+ } | {
980
+ kind: 'signin';
981
+ provider: string;
982
+ request?: string;
983
+ } | {
984
+ kind: 'manage';
985
+ name?: string;
986
+ };
987
+ export type PopupState = 'opened' | 'done' | 'cancelled' | 'closed' | 'blocked';
988
+ export interface PopupResult {
989
+ name: string;
990
+ placeholder: string;
991
+ state: RecordState;
992
+ }
993
+ export interface ButtonConfig {
994
+ intent: PopupIntent | 'auto';
995
+ label?: string;
996
+ size?: 's' | 'm' | 'l';
997
+ variant?: 'accent' | 'primary' | 'secondary';
998
+ treatment?: 'fill' | 'outline';
999
+ quiet?: boolean;
1000
+ scale?: 'medium' | 'large';
1001
+ theme?: 'light' | 'dark';
1002
+ dir?: 'ltr' | 'rtl';
1003
+ lang?: string;
1004
+ disabled?: boolean;
1005
+ }
1006
+ export type ButtonMessage = {
1007
+ type: 'slicc-vault';
1008
+ v: 1;
1009
+ op: 'button';
1010
+ button: ButtonConfig;
1011
+ } | {
1012
+ type: 'slicc-vault';
1013
+ v: 1;
1014
+ op: 'focus';
1015
+ };
1016
+ export type ButtonEvent = {
1017
+ type: 'slicc-vault';
1018
+ v: 1;
1019
+ } & ({
1020
+ event: 'ready';
1021
+ } | {
1022
+ event: 'size';
1023
+ width: number;
1024
+ height: number;
1025
+ inset: number;
1026
+ } | {
1027
+ event: 'label';
1028
+ label: string;
1029
+ } | {
1030
+ event: 'focus';
1031
+ direction: 'next' | 'previous';
1032
+ } | {
1033
+ event: 'popup';
1034
+ intent: PopupIntent;
1035
+ state: PopupState;
1036
+ result?: PopupResult;
1037
+ });
1038
+ export interface VaultButton {
1039
+ element: HTMLElement;
1040
+ post(message: ButtonMessage): void;
1041
+ listen(listener: (event: ButtonEvent) => void): () => void;
1042
+ }
1043
+ export interface VaultEvents {
1044
+ status: VaultStatus;
1045
+ list: VaultList;
1046
+ notice: PolicyNotice;
1047
+ }
1048
+ export interface VaultPort extends Subscribable<VaultEvents> {
1049
+ status(): VaultStatus | null;
1050
+ list(): VaultList | null;
1051
+ audit(before?: number, limit?: number): Promise<AuditPage>;
1052
+ acknowledge(notice: string): Promise<void>;
1053
+ button(): VaultButton;
1054
+ }
809
1055
  export interface SliccModel {
810
1056
  agent: AgentPort;
811
1057
  files: FilePort;
@@ -823,4 +1069,6 @@ export interface SliccModel {
823
1069
  tabs?: TabsPort;
824
1070
  approvals?: ApprovalsPort;
825
1071
  follow?: FollowPort;
1072
+ vault?: VaultPort;
826
1073
  }
1074
+ export {};
@@ -11,7 +11,9 @@ import { SliccFiles, SliccFileView } from './app/files.js';
11
11
  import { SliccFollow } from './app/follow.js';
12
12
  import { SliccNetwork } from './app/network.js';
13
13
  import { SliccNotices } from './app/notices.js';
14
+ import { SliccSecrets } from './app/secrets.js';
14
15
  import { SliccUpdates } from './app/updates.js';
16
+ import { SliccVaultButton } from './app/vault.js';
15
17
  import { SliccCodeView, SliccDiffView } from './components/code-view.js';
16
18
  import { SliccDock } from './components/dock.js';
17
19
  import { SliccFileTree } from './components/file-tree.js';
@@ -31,5 +33,5 @@ export type { GitStatusEntry } from './components/file-tree.js';
31
33
  export type { Listener, Subscribable } from './model/emitter.js';
32
34
  export { Emitter } from './model/emitter.js';
33
35
  export type * from './model/types.js';
34
- export { SliccAgents, SliccApp, SliccApprovals, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccFollow, SliccNetwork, SliccNotices, SliccPrompt, SliccUpdates, };
36
+ export { SliccAgents, SliccApp, SliccApprovals, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccFollow, SliccNetwork, SliccNotices, SliccPrompt, SliccSecrets, SliccUpdates, SliccVaultButton, };
35
37
  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.60.2",
3
+ "version": "1.62.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",
@@ -72,14 +72,14 @@
72
72
  "devDependencies": {
73
73
  "@adobe/spectrum-wc": "2.0.0-beta.4",
74
74
  "@adobe/spectrum-wc-icons": "2.0.0-beta.4",
75
- "@ai-ecoverse/slicc-kernel": "1.64.0",
75
+ "@ai-ecoverse/slicc-kernel": "1.65.0",
76
76
  "@ai-ecoverse/slicc-shared-web": "1.13.0",
77
77
  "@ai-ecoverse/wasm-bash": "5.3.0-17",
78
78
  "@ai-ecoverse/wasm-coreutils": "9.7.0-3",
79
79
  "@biomejs/biome": "2.5.15",
80
80
  "@fontsource/source-code-pro": "5.3.0",
81
81
  "@happy-dom/global-registrator": "20.14.5",
82
- "@pierre/diffs": "1.5.1",
82
+ "@pierre/diffs": "1.5.2",
83
83
  "@pierre/trees": "1.0.0-beta.6",
84
84
  "@spectrum-web-components/action-button": "1.12.4",
85
85
  "@spectrum-web-components/action-group": "1.12.4",