@ai-ecoverse/slicc-spectrum 2.4.1 → 2.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.
@@ -91,6 +91,12 @@ export declare class SliccComposer extends ThemedElement {
91
91
  secretField: {
92
92
  state: boolean;
93
93
  };
94
+ secretName: {
95
+ state: boolean;
96
+ };
97
+ entry: {
98
+ state: boolean;
99
+ };
94
100
  failure: {
95
101
  state: boolean;
96
102
  };
@@ -108,6 +114,12 @@ export declare class SliccComposer extends ThemedElement {
108
114
  sharing: boolean;
109
115
  secretError: string | null;
110
116
  secretField: string | null;
117
+ secretName: string;
118
+ entry: {
119
+ request: string;
120
+ name: string;
121
+ vault: VaultPort;
122
+ } | null;
111
123
  failure: string | null;
112
124
  reattach: Kept[] | null;
113
125
  agent: string;
@@ -128,6 +140,7 @@ export declare class SliccComposer extends ThemedElement {
128
140
  screenshot(): Promise<void>;
129
141
  attachPath(path: string): Promise<void>;
130
142
  shareSecret(name: string, field?: HTMLInputElement | null): Promise<void>;
143
+ enterSecret(name: string, replace?: boolean): Promise<void>;
131
144
  closeSecret(): void;
132
145
  openPopup(kind: 'file' | 'secret'): void;
133
146
  pick(choice: Choice): void;
@@ -106,6 +106,9 @@ export declare class SliccSecrets extends ThemedElement {
106
106
  said: {
107
107
  state: boolean;
108
108
  };
109
+ entry: {
110
+ state: boolean;
111
+ };
109
112
  acting: {
110
113
  state: boolean;
111
114
  };
@@ -139,6 +142,12 @@ export declare class SliccSecrets extends ThemedElement {
139
142
  problem: string | null;
140
143
  invalid: string | null;
141
144
  said: Said | null;
145
+ entry: {
146
+ request: string;
147
+ form: SecretForm;
148
+ vault: VaultPort;
149
+ name: string;
150
+ } | null;
142
151
  acting: ReadonlySet<string>;
143
152
  importKind: ImportKind;
144
153
  candidates: readonly ImportCandidate[] | null;
@@ -151,6 +160,7 @@ export declare class SliccSecrets extends ThemedElement {
151
160
  protected updated(): void;
152
161
  protected subscribe(model: SliccModel): Array<() => void>;
153
162
  open(form: SecretForm | null): void;
163
+ next(vault: VaultPort): Promise<void>;
154
164
  save(vault: VaultPort): Promise<void>;
155
165
  removeSecret(vault: VaultPort, secret: SecretView, trigger?: HTMLElement | null): Promise<void>;
156
166
  restoreSecret(vault: VaultPort, secret: SecretView): Promise<void>;
@@ -10,8 +10,14 @@ import '@adobe/spectrum-wc-icons/swc-icon-checkmark.js';
10
10
  import '@adobe/spectrum-wc-icons/swc-icon-delete.js';
11
11
  import '@spectrum-web-components/field-label/sp-field-label.js';
12
12
  import { type TemplateResult } from 'lit';
13
- import type { Account, ConnectOptions, McpRefusal, ProviderOption, SliccModel } from '../model/types.js';
13
+ import type { Account, ConnectOptions, McpRefusal, ProviderOption, SliccModel, VaultPort } from '../model/types.js';
14
14
  import { ThemedElement } from './base.js';
15
+ interface KeyEntry {
16
+ id: string;
17
+ request: string;
18
+ fields: Record<string, string> | undefined;
19
+ vault: VaultPort;
20
+ }
15
21
  type ServerLeft = ['record' | 'url', unknown];
16
22
  export declare function serverLeft(account: Account, left: readonly ServerLeft[]): string;
17
23
  type ServerField = 'name' | 'url' | 'form';
@@ -29,6 +35,9 @@ export declare class SliccSettings extends ThemedElement {
29
35
  entering: {
30
36
  state: boolean;
31
37
  };
38
+ keyEntry: {
39
+ state: boolean;
40
+ };
32
41
  failure: {
33
42
  state: boolean;
34
43
  };
@@ -77,6 +86,7 @@ export declare class SliccSettings extends ThemedElement {
77
86
  };
78
87
  pending: ReadonlySet<string>;
79
88
  entering: string | null;
89
+ keyEntry: KeyEntry | null;
80
90
  failure: {
81
91
  id: string;
82
92
  message: string;
@@ -110,6 +120,8 @@ export declare class SliccSettings extends ThemedElement {
110
120
  connect(id: string, secret?: string, fields?: Record<string, string>, options?: ConnectOptions): Promise<void>;
111
121
  keep(account: Account, value: string, fields?: Record<string, string>): Promise<void>;
112
122
  get busyReason(): string | null;
123
+ disconnectedCallback(): void;
124
+ protected willUpdate(changed: Map<PropertyKey, unknown>): void;
113
125
  protected updated(changed: Map<PropertyKey, unknown>): void;
114
126
  render(): TemplateResult;
115
127
  }
@@ -1,4 +1,4 @@
1
- import { LitElement, type PropertyValues } from 'lit';
1
+ import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
2
2
  import type { ButtonConfig, ExecGrant, ExecMode, ExitName, LinkedDevice, PolicyChange, PopupIntent, PopupState, Rule, SliccModel, ValueConfig, ValueEvent, VaultPort, Widening } from '../model/types.js';
3
3
  export declare function devicesOf(model: SliccModel | null): readonly LinkedDevice[];
4
4
  export declare function deviceName(id: string, devices: readonly LinkedDevice[]): string;
@@ -43,6 +43,12 @@ export declare class SliccVaultButton extends LitElement {
43
43
  export type ValueDetail = Extract<ValueEvent, {
44
44
  event: 'done' | 'gone' | 'error' | 'escape';
45
45
  }>;
46
+ export declare function valueConfig(doc: Document, theme: 'light' | 'dark'): ValueConfig;
47
+ export declare function enters(vault: VaultPort | null | undefined): boolean;
48
+ export declare function ours(detail: ValueDetail, request: string, open: string | undefined): boolean;
49
+ export declare function drop(vault: VaultPort | null | undefined, request: string): void;
50
+ export declare function goneText(state: string): string;
51
+ export declare function valueField(vault: VaultPort, request: string, config: ValueConfig, on: (detail: ValueDetail, request: string) => void): TemplateResult;
46
52
  export declare const frameHeight = 480;
47
53
  export declare const frameInset = 4;
48
54
  export declare class SliccVaultValue extends LitElement {
@@ -30,6 +30,7 @@ export interface DummyOptions {
30
30
  notices?: NoticeScenario | 'off';
31
31
  tabs?: TabsScenario | 'off';
32
32
  approvals?: ApprovalScenario | 'off';
33
+ entry?: 'input' | 'frame';
33
34
  asks?: 'long' | 'off';
34
35
  live?: LiveScenario | 'off';
35
36
  switches?: 'capture' | 'off';
@@ -69,4 +70,4 @@ export interface DummyModel extends SliccModel {
69
70
  export declare function vaultAccounts(accounts: readonly Account[]): Account[];
70
71
  export declare const docsUrl = "https://docs.example/mcp";
71
72
  export declare const movedDocs = "https://docs.eu.example/mcp";
72
- export declare function createDummyModel({ delay, storage, updates, packages, confirm, beta, mounts, network, tailnet, links, leaders, changes, notices, tabs, approvals, asks, live, switches, follow, vault, guests, accounts, providers, mcp, servers, transport, hold, readonly, agent: arrival, browser: scenario, sprinkles, monitor, import: imports, login, budget, older, }?: DummyOptions): DummyModel;
73
+ export declare function createDummyModel({ delay, storage, updates, packages, confirm, beta, mounts, network, tailnet, links, leaders, changes, notices, tabs, approvals, asks, live, switches, follow, vault, entry, guests, accounts, providers, mcp, servers, transport, hold, readonly, agent: arrival, browser: scenario, sprinkles, monitor, import: imports, login, budget, older, }?: DummyOptions): DummyModel;
@@ -1,5 +1,5 @@
1
1
  import { Emitter } from '../model/emitter.js';
2
- import type { AuditEntry, AuditPage, Availability, ButtonConfig, ButtonEvent, ButtonMessage, ErrorCode, ImportKind, ImportPick, ImportResult, PendingRequest, PolicyNotice, PopupIntent, PutOptions, RecordKind, RefusedRule, RequestState, SealResult, SecretView, ValueConfig, ValueEvent, ValueMessage, VaultButton, VaultEndpointChange, VaultError, VaultEvents, VaultList, VaultPort, VaultStatus, VaultValueFrame } from '../model/types.js';
2
+ import type { AuditEntry, AuditPage, Availability, ButtonConfig, ButtonEvent, ButtonMessage, EnterOptions, EnterResult, ErrorCode, ImportKind, ImportPick, ImportResult, PendingRequest, PolicyNotice, PopupIntent, PutOptions, RecordKind, RefusedRule, RequestState, SealResult, SecretView, ValueConfig, ValueEvent, ValueMessage, VaultButton, VaultEndpointChange, VaultError, VaultEvents, VaultList, VaultPort, VaultStatus, VaultValueFrame } from '../model/types.js';
3
3
  import type { Clock } from './clock.js';
4
4
  export type VaultScenario = 'empty' | 'secrets' | 'policy' | 'notice' | 'locked' | 'paused' | 'request' | 'backup' | 'waiting' | 'purged' | 'session' | 'endpoints-fail';
5
5
  export declare function vaultSecrets(now?: number): SecretView[];
@@ -46,6 +46,7 @@ export declare class DummyVault extends Emitter<VaultEvents> implements VaultPor
46
46
  #private;
47
47
  buttons: DummyVaultButton[];
48
48
  frames: DummyValueFrame[];
49
+ entered: EnterOptions[];
49
50
  answered: Set<string>;
50
51
  revealed: string[];
51
52
  puts: {
@@ -68,6 +69,7 @@ export declare class DummyVault extends Emitter<VaultEvents> implements VaultPor
68
69
  status(): VaultStatus | null;
69
70
  list(): VaultList | null;
70
71
  availability(): Availability;
72
+ wait(): void;
71
73
  arrive(): void;
72
74
  fail(code: ErrorCode, message: string, cause?: VaultError['cause']): void;
73
75
  acknowledge(notice: string): Promise<void>;
@@ -89,6 +91,7 @@ export declare class DummyVault extends Emitter<VaultEvents> implements VaultPor
89
91
  valueFrame(request: string): DummyValueFrame;
90
92
  hold(request: PendingRequest): void;
91
93
  ask(request: string): PendingRequest | undefined;
94
+ enter?: (options: EnterOptions) => Promise<EnterResult>;
92
95
  seal(request: string, value: string): Promise<SealResult>;
93
96
  allow(request: string): Promise<void>;
94
97
  autoLabel(): string;
@@ -857,11 +857,12 @@ export interface RemoteControl {
857
857
  }
858
858
  export type RemoteControlMode = 'prompt' | 'watch';
859
859
  export type LinkKind = 'cli' | 'seven';
860
- export type AccessKey = 'view' | 'control' | 'terminal';
860
+ export type AccessKey = 'view' | 'control' | 'terminal' | 'browser';
861
861
  export interface DeviceAccess {
862
862
  view?: boolean;
863
863
  control?: boolean;
864
864
  terminal?: boolean;
865
+ browser?: boolean;
865
866
  fixed?: boolean;
866
867
  }
867
868
  export interface LinkedBrowser {
@@ -1196,7 +1197,7 @@ export type RecordKind = 'secret' | 'grant' | 'model' | 'mcp';
1196
1197
  export type RecordState = 'active' | 'inert' | 'removed';
1197
1198
  export type RecordSource = 'settings' | 'popup' | 'process' | `jerk:${string}@${DeviceId}` | `oauth:${string}` | `import:${string}`;
1198
1199
  export type LockMode = 'auto' | 'passkey' | 'passphrase';
1199
- export type RequestKind = 'value' | 'oauth' | 'jerk-seal' | 'jerk' | 'unseal' | 'ask';
1200
+ export type RequestKind = 'value' | 'oauth' | 'jerk-seal' | 'jerk' | 'unseal' | 'ask' | 'enter';
1200
1201
  export type RequestState = 'pending' | 'done' | 'cancelled' | 'expired' | 'withdrawn';
1201
1202
  export type ErrorCode = 'EINVAL' | 'ENOENT' | 'EACCES' | 'EEXIST' | 'EAGAIN' | 'ETIMEDOUT' | 'ENOTCONN' | 'ENOTSUP';
1202
1203
  export type ErrorCause = 'policy-paused' | 'no-placeholder' | 'url-invalid' | 'placeholder-in-url' | 'placeholder-in-header-name' | 'url-credentials' | 'insecure-destination' | 'path-ambiguous' | 'exit-encoded-bodies' | 'record-removed' | 'record-kind' | 'record-expired' | 'vault-locked' | 'no-rule' | 'rule-domain' | 'rule-request' | 'rule-exit' | 'placeholder-repeated' | 'mcp-server' | 'exit-follows-redirects' | 'value-overlaps' | 'basic-invalid' | 'basic-user' | 'header-unsafe' | 'users-off' | 'endpoint-protected' | 'endpoint-model' | 'mcp-body-framing' | 'changed';
@@ -1630,7 +1631,14 @@ export type ValueEvent = {
1630
1631
  } | {
1631
1632
  event: 'done';
1632
1633
  request: string;
1633
- state: 'sealed' | 'allowed';
1634
+ state: 'sealed';
1635
+ name?: string;
1636
+ placeholder?: string;
1637
+ record?: RecordState;
1638
+ } | {
1639
+ event: 'done';
1640
+ request: string;
1641
+ state: 'allowed';
1634
1642
  } | {
1635
1643
  event: 'gone';
1636
1644
  request: string;
@@ -1642,6 +1650,17 @@ export type ValueEvent = {
1642
1650
  } | {
1643
1651
  event: 'escape';
1644
1652
  });
1653
+ export interface EnterOptions {
1654
+ name: string;
1655
+ kind?: 'secret' | 'model' | 'mcp';
1656
+ provider?: string;
1657
+ server?: string;
1658
+ settings?: Record<string, string>;
1659
+ replace?: boolean;
1660
+ }
1661
+ export interface EnterResult {
1662
+ request: string;
1663
+ }
1645
1664
  export interface VaultValueFrame {
1646
1665
  element: HTMLElement;
1647
1666
  post(message: ValueMessage): void;
@@ -1681,6 +1700,7 @@ export interface VaultPort extends Subscribable<VaultEvents> {
1681
1700
  settings?(name: string, kind: RecordKind, settings: Record<string, string>): Promise<void>;
1682
1701
  button(): VaultButton;
1683
1702
  valueFrame?(request: string): VaultValueFrame;
1703
+ enter?(options: EnterOptions): Promise<EnterResult>;
1684
1704
  }
1685
1705
  export type GuestGate = 'user' | 'cone' | 'agent' | `scoop:${string}` | 'off';
1686
1706
  export interface GuestGates {
@@ -37,5 +37,6 @@ export type { Listener, Subscribable } from './model/emitter.js';
37
37
  export { Emitter } from './model/emitter.js';
38
38
  export type * from './model/types.js';
39
39
  export { isVaultFailure } from './model/values.js';
40
+ export declare const valueEntry = true;
40
41
  export { approvalKinds, SliccAgents, SliccApp, SliccApprovals, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccFollow, SliccFreezerImport, SliccGuestInvite, SliccLive, SliccNetwork, SliccNotices, SliccPrompt, SliccSecrets, SliccUpdates, SliccValueRequest, SliccVaultButton, SliccVaultValue, };
41
42
  export declare function define(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-spectrum",
3
- "version": "2.4.1",
3
+ "version": "2.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",
@@ -65,7 +65,7 @@
65
65
  "@ai-ecoverse/slicc-cdp": "1.46.7",
66
66
  "@ai-ecoverse/slicc-kernel": "1.176.0",
67
67
  "@ai-ecoverse/slicc-shared-web": "2.13.10",
68
- "@ai-ecoverse/slicc-vault": "1.23.1",
68
+ "@ai-ecoverse/slicc-vault": "1.24.0",
69
69
  "@ai-ecoverse/wasm-bash": "5.3.0-23",
70
70
  "@ai-ecoverse/wasm-coreutils": "9.12.0-15",
71
71
  "@biomejs/biome": "2.6.4",