@ai-ecoverse/slicc-spectrum 2.0.3 → 2.2.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.
- package/README.md +21 -2
- package/dist/slicc-dummy.js +354 -9
- package/dist/slicc-dummy.js.map +3 -3
- package/dist/slicc-ui.js +4288 -3848
- package/dist/slicc-ui.js.map +4 -4
- package/dist/types/app/approvals.d.ts +14 -1
- package/dist/types/app/chat.d.ts +2 -1
- package/dist/types/app/command-display.d.ts +1 -0
- package/dist/types/app/command.d.ts +1 -0
- package/dist/types/app/secrets.d.ts +2 -1
- package/dist/types/app/vault.d.ts +29 -1
- package/dist/types/dummy/agent.d.ts +6 -1
- package/dist/types/dummy/approvals.d.ts +5 -3
- package/dist/types/dummy/index.d.ts +2 -1
- package/dist/types/dummy/vault.d.ts +20 -1
- package/dist/types/dummy.d.ts +1 -1
- package/dist/types/model/types.d.ts +104 -4
- package/dist/types/ui.d.ts +3 -3
- package/package.json +5 -5
|
@@ -2,7 +2,7 @@ import '@adobe/spectrum-wc/components/button/swc-button.js';
|
|
|
2
2
|
import '@adobe/spectrum-wc-icons/swc-icon-alert-triangle.js';
|
|
3
3
|
import '@spectrum-web-components/alert-dialog/sp-alert-dialog.js';
|
|
4
4
|
import { type PropertyValues } from 'lit';
|
|
5
|
-
import type { Approval, ApprovalDecision, GuestMessageApproval, GuestToolApproval, SliccModel, SudoApproval, TrayApproval } from '../model/types.js';
|
|
5
|
+
import type { Approval, ApprovalDecision, GuestMessageApproval, GuestToolApproval, SecretApproval, SliccModel, SudoApproval, TrayApproval } from '../model/types.js';
|
|
6
6
|
import { ModelElement } from './base.js';
|
|
7
7
|
export { deadline } from './messages.js';
|
|
8
8
|
export declare function countdown(ms: number): string;
|
|
@@ -13,6 +13,11 @@ export declare function guestAlwaysHint(approval: GuestMessageApproval | GuestTo
|
|
|
13
13
|
export declare function guestAsking(approval: GuestMessageApproval | GuestToolApproval): string;
|
|
14
14
|
export declare function trayTitle(approval: TrayApproval): string;
|
|
15
15
|
export declare function trayAsking(approval: TrayApproval): string;
|
|
16
|
+
export declare function secretTitle(approval: SecretApproval): string;
|
|
17
|
+
export declare function secretAsking(approval: SecretApproval): string;
|
|
18
|
+
export declare function processLine(approval: SecretApproval): string;
|
|
19
|
+
export declare function revealWarning(approval: SecretApproval): string;
|
|
20
|
+
export declare function secretWaiting(approval: SecretApproval): string;
|
|
16
21
|
export declare function approved(approval: Approval): string;
|
|
17
22
|
export declare function truncated(approval: Approval): boolean;
|
|
18
23
|
export declare function guestWaiting(approval: GuestMessageApproval | GuestToolApproval): string;
|
|
@@ -20,6 +25,7 @@ type Judged = GuestMessageApproval | GuestToolApproval | SudoApproval;
|
|
|
20
25
|
export declare function offersAlways(approval: Approval): boolean;
|
|
21
26
|
export declare function verdictNote(approval: Judged): string;
|
|
22
27
|
export declare function waiting(model: SliccModel | null, now: number): Approval[];
|
|
28
|
+
export declare const approvalKinds: readonly Approval['kind'][];
|
|
23
29
|
export declare class SliccApprovals extends ModelElement {
|
|
24
30
|
#private;
|
|
25
31
|
static properties: {
|
|
@@ -38,6 +44,9 @@ export declare class SliccApprovals extends ModelElement {
|
|
|
38
44
|
gone: {
|
|
39
45
|
state: boolean;
|
|
40
46
|
};
|
|
47
|
+
frameError: {
|
|
48
|
+
state: boolean;
|
|
49
|
+
};
|
|
41
50
|
};
|
|
42
51
|
now: number;
|
|
43
52
|
busy: ApprovalDecision | '';
|
|
@@ -49,6 +58,10 @@ export declare class SliccApprovals extends ModelElement {
|
|
|
49
58
|
approval: Approval;
|
|
50
59
|
reason: 'elsewhere' | 'expired';
|
|
51
60
|
} | null;
|
|
61
|
+
frameError: {
|
|
62
|
+
id: string;
|
|
63
|
+
message: string;
|
|
64
|
+
} | null;
|
|
52
65
|
arming: number;
|
|
53
66
|
constructor();
|
|
54
67
|
static styles: (import("lit").CSSResult[] | import("lit").CSSResult)[];
|
package/dist/types/app/chat.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import '@adobe/spectrum-wc/patterns/ai-toolkit/conversation-thread/swc-conversat
|
|
|
8
8
|
import '@adobe/spectrum-wc-icons/swc-icon-attach.js';
|
|
9
9
|
import '@adobe/spectrum-wc-icons/swc-icon-chevron-down.js';
|
|
10
10
|
import '@adobe/spectrum-wc-icons/swc-icon-new.js';
|
|
11
|
-
import { type TemplateResult } from 'lit';
|
|
11
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
12
12
|
import type { Message, SliccModel } from '../model/types.js';
|
|
13
13
|
import { ThemedElement } from './base.js';
|
|
14
14
|
export declare function carriesFiles(event: DragEvent): boolean;
|
|
@@ -40,6 +40,7 @@ export declare class SliccChat extends ThemedElement {
|
|
|
40
40
|
protected subscribe(model: SliccModel): Array<() => void>;
|
|
41
41
|
connectedCallback(): void;
|
|
42
42
|
disconnectedCallback(): void;
|
|
43
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
43
44
|
protected updated(): void;
|
|
44
45
|
protected firstUpdated(): void;
|
|
45
46
|
focus(): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { type TemplateResult } from 'lit';
|
|
2
|
+
export declare const controlStyles: import("lit").CSSResult;
|
|
2
3
|
export declare function displayCommand(command: string): string;
|
|
3
4
|
export declare function commandText(command: string, multiline?: boolean): Array<string | TemplateResult>;
|
|
@@ -7,7 +7,7 @@ import '@adobe/spectrum-wc-icons/swc-icon-info-circle.js';
|
|
|
7
7
|
import '@spectrum-web-components/menu/sp-menu-item.js';
|
|
8
8
|
import '@spectrum-web-components/picker/sp-picker.js';
|
|
9
9
|
import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
10
|
-
import type { AuditEntry, EndpointsEntry, ImportCandidate, ImportKind, LinkedDevice, PendingRequest, PolicyEntry, PutOptions, SecretView, SliccModel, VaultPort } from '../model/types.js';
|
|
10
|
+
import type { AskRevealEntry, AuditEntry, EndpointsEntry, ImportCandidate, ImportKind, LinkedDevice, PendingRequest, PolicyEntry, PutOptions, RevealEntry, SecretView, SliccModel, VaultPort } from '../model/types.js';
|
|
11
11
|
import { ThemedElement } from './base.js';
|
|
12
12
|
import { type PopupDetail } from './vault.js';
|
|
13
13
|
export declare function until(at: number, now?: number): string;
|
|
@@ -21,6 +21,7 @@ export declare function putOptions(secret: SecretView): PutOptions | undefined;
|
|
|
21
21
|
export declare function agentUse(secret: SecretView): boolean;
|
|
22
22
|
export declare function byName(a: SecretView, b: SecretView): number;
|
|
23
23
|
export declare function sourceLine(secret: SecretView, devices: readonly LinkedDevice[]): string;
|
|
24
|
+
export declare function toProgram(entry: AuditEntry): entry is RevealEntry | AskRevealEntry;
|
|
24
25
|
export declare function revealed(name: string, entries: readonly AuditEntry[], now?: number, more?: boolean): TemplateResult | null;
|
|
25
26
|
export declare function changes(entry: PolicyEntry, devices: readonly LinkedDevice[]): string[][];
|
|
26
27
|
export declare function endpointsLine(entry: EndpointsEntry, named?: (provider: string) => string): TemplateResult;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LitElement, type PropertyValues } from 'lit';
|
|
2
|
-
import type { ButtonConfig, ExecGrant, ExecMode, ExitName, LinkedDevice, PolicyChange, PopupIntent, PopupState, Rule, SliccModel, VaultPort, Widening } from '../model/types.js';
|
|
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;
|
|
5
5
|
export declare function exitLabel(exit: ExitName, devices: readonly LinkedDevice[]): string;
|
|
@@ -40,3 +40,31 @@ export declare class SliccVaultButton extends LitElement {
|
|
|
40
40
|
focus(): void;
|
|
41
41
|
protected updated(changed: PropertyValues): void;
|
|
42
42
|
}
|
|
43
|
+
export type ValueDetail = Extract<ValueEvent, {
|
|
44
|
+
event: 'done' | 'gone' | 'error' | 'escape';
|
|
45
|
+
}>;
|
|
46
|
+
export declare const frameHeight = 480;
|
|
47
|
+
export declare const frameInset = 4;
|
|
48
|
+
export declare class SliccVaultValue extends LitElement {
|
|
49
|
+
#private;
|
|
50
|
+
static properties: {
|
|
51
|
+
vault: {
|
|
52
|
+
attribute: boolean;
|
|
53
|
+
};
|
|
54
|
+
request: {
|
|
55
|
+
attribute: boolean;
|
|
56
|
+
};
|
|
57
|
+
config: {
|
|
58
|
+
attribute: boolean;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
vault: VaultPort | null | undefined;
|
|
62
|
+
request: string;
|
|
63
|
+
config: ValueConfig;
|
|
64
|
+
static styles: import("lit").CSSResult;
|
|
65
|
+
constructor();
|
|
66
|
+
connectedCallback(): void;
|
|
67
|
+
disconnectedCallback(): void;
|
|
68
|
+
focus(): void;
|
|
69
|
+
protected updated(changed: PropertyValues): void;
|
|
70
|
+
}
|
|
@@ -4,6 +4,8 @@ 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 {
|
|
6
6
|
#private;
|
|
7
|
+
olderTicks: number;
|
|
8
|
+
readonly olderCalls: string[];
|
|
7
9
|
importProfile?: AgentPort['importProfile'];
|
|
8
10
|
importCancel?: AgentPort['importCancel'];
|
|
9
11
|
importing?: AgentPort['importing'];
|
|
@@ -33,7 +35,10 @@ export declare class DummyAgent extends Emitter<AgentEvents> implements AgentPor
|
|
|
33
35
|
clear(agentId: string): void;
|
|
34
36
|
setModel(agentId: string, model: string): void;
|
|
35
37
|
setThinking(agentId: string, thinking: Thinking): void;
|
|
36
|
-
|
|
38
|
+
paginate(keep: number, size: number, ids?: readonly string[]): void;
|
|
39
|
+
failOlder(times?: number): void;
|
|
40
|
+
hasOlder(agentId: string): boolean;
|
|
41
|
+
older(agentId: string): Promise<readonly Message[]>;
|
|
37
42
|
commands(agentId: string): readonly SlashCommand[];
|
|
38
43
|
ready(): Promise<void>;
|
|
39
44
|
createScoop(parentId: string, name: string): Agent;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { Emitter } from '../model/emitter.js';
|
|
2
|
-
import type { Approval, ApprovalDecision, ApprovalEnd, ApprovalsEvents, ApprovalsPort } from '../model/types.js';
|
|
2
|
+
import type { Approval, ApprovalDecision, ApprovalEnd, ApprovalsEvents, ApprovalsPort, PendingRequest, SecretApproval } from '../model/types.js';
|
|
3
3
|
import type { Clock } from './clock.js';
|
|
4
|
-
|
|
4
|
+
import type { DummyVault } from './vault.js';
|
|
5
|
+
export type ApprovalScenario = 'agent' | 'user' | 'many' | 'follower' | 'fail' | 'soon' | 'elsewhere' | 'withdrawn' | 'secrets' | 'judge-denied' | 'level-1' | 'level-2' | 'level-3' | 'checking' | 'no-verdict' | 'legacy' | 'guest' | 'guest-follower' | 'guest-always' | 'long' | 'controls-cr' | 'controls-lf' | 'controls-place' | 'controls-cwd' | 'guest-args' | 'guest-empty' | 'guest-truncated' | 'tray' | 'tray-url' | 'tray-rotate' | 'tray-unlink' | 'tray-expired' | 'secret' | 'secret-enter' | 'secret-reveal' | 'secret-long' | 'none';
|
|
5
6
|
export declare const guestArgs: string;
|
|
7
|
+
export declare function pendingAsk(approval: SecretApproval): PendingRequest;
|
|
6
8
|
export declare function approvalFixtures(scenario: ApprovalScenario, now?: number): Approval[];
|
|
7
9
|
export declare class DummyApprovals extends Emitter<ApprovalsEvents> implements ApprovalsPort {
|
|
8
10
|
#private;
|
|
9
11
|
decisions: Array<[string, ApprovalDecision]>;
|
|
10
12
|
decide?: (id: string, decision: ApprovalDecision) => Promise<void>;
|
|
11
|
-
constructor(scenario: ApprovalScenario, time: Clock);
|
|
13
|
+
constructor(scenario: ApprovalScenario, time: Clock, vault?: DummyVault);
|
|
12
14
|
raise(approval: Approval): void;
|
|
13
15
|
end(id: string, reason: ApprovalEnd): void;
|
|
14
16
|
list(): readonly Approval[];
|
|
@@ -47,6 +47,7 @@ export interface DummyOptions {
|
|
|
47
47
|
import?: ImportScenario | 'off';
|
|
48
48
|
login?: DummyLogin;
|
|
49
49
|
budget?: BudgetScenario;
|
|
50
|
+
older?: 'paged' | 'off';
|
|
50
51
|
}
|
|
51
52
|
export interface DummyModel extends SliccModel {
|
|
52
53
|
settings: DummySettings;
|
|
@@ -63,4 +64,4 @@ export interface DummyModel extends SliccModel {
|
|
|
63
64
|
export declare function vaultAccounts(accounts: readonly Account[]): Account[];
|
|
64
65
|
export declare const docsUrl = "https://docs.example/mcp";
|
|
65
66
|
export declare const movedDocs = "https://docs.eu.example/mcp";
|
|
66
|
-
export declare function createDummyModel({ delay, storage, updates, packages, confirm, beta, mounts, network, tailnet, links, leaders, changes, notices, tabs, approvals, asks, follow, vault, guests, accounts, providers, mcp, servers, transport, hold, readonly, agent: arrival, browser: scenario, sprinkles, monitor, import: imports, login, budget, }?: DummyOptions): DummyModel;
|
|
67
|
+
export declare function createDummyModel({ delay, storage, updates, packages, confirm, beta, mounts, network, tailnet, links, leaders, changes, notices, tabs, approvals, asks, follow, vault, 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, PolicyNotice, PopupIntent, PutOptions, RecordKind, RefusedRule, RequestState, SealResult, SecretView, VaultButton, VaultEndpointChange, VaultError, VaultEvents, VaultList, VaultPort, VaultStatus } from '../model/types.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';
|
|
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[];
|
|
@@ -25,6 +25,17 @@ export declare class DummyVaultButton implements VaultButton {
|
|
|
25
25
|
post(message: ButtonMessage): void;
|
|
26
26
|
listen(listener: (event: ButtonEvent) => void): () => void;
|
|
27
27
|
}
|
|
28
|
+
export declare class DummyValueFrame implements VaultValueFrame {
|
|
29
|
+
#private;
|
|
30
|
+
element: HTMLElement;
|
|
31
|
+
request: string;
|
|
32
|
+
config: ValueConfig | null;
|
|
33
|
+
messages: ValueMessage[];
|
|
34
|
+
arming: number;
|
|
35
|
+
constructor(vault: DummyVault, time: Clock, request: string);
|
|
36
|
+
post(message: ValueMessage): void;
|
|
37
|
+
listen(listener: (event: ValueEvent) => void): () => void;
|
|
38
|
+
}
|
|
28
39
|
export interface DummyImport {
|
|
29
40
|
kind: ImportKind;
|
|
30
41
|
size: number;
|
|
@@ -34,6 +45,9 @@ export interface DummyImport {
|
|
|
34
45
|
export declare class DummyVault extends Emitter<VaultEvents> implements VaultPort {
|
|
35
46
|
#private;
|
|
36
47
|
buttons: DummyVaultButton[];
|
|
48
|
+
frames: DummyValueFrame[];
|
|
49
|
+
answered: Set<string>;
|
|
50
|
+
revealed: string[];
|
|
37
51
|
puts: {
|
|
38
52
|
name: string;
|
|
39
53
|
request?: string;
|
|
@@ -72,6 +86,11 @@ export declare class DummyVault extends Emitter<VaultEvents> implements VaultPor
|
|
|
72
86
|
export(passphrase: string): Promise<Uint8Array>;
|
|
73
87
|
lock(): Promise<void>;
|
|
74
88
|
button(): DummyVaultButton;
|
|
89
|
+
valueFrame(request: string): DummyValueFrame;
|
|
90
|
+
hold(request: PendingRequest): void;
|
|
91
|
+
ask(request: string): PendingRequest | undefined;
|
|
92
|
+
seal(request: string, value: string): Promise<SealResult>;
|
|
93
|
+
allow(request: string): Promise<void>;
|
|
75
94
|
autoLabel(): string;
|
|
76
95
|
autoIntent(): PopupIntent;
|
|
77
96
|
answer(intent: PopupIntent): Promise<void>;
|
package/dist/types/dummy.d.ts
CHANGED
|
@@ -26,4 +26,4 @@ export { DummyTabs, tabsFixtures } from './dummy/tabs.js';
|
|
|
26
26
|
export type { BetaScenario, DummyUpdatesOptions, PackageConfirm, PackageScenario, UpdateScenario, } from './dummy/updates.js';
|
|
27
27
|
export { betaFixtures, DummyUpdates, packageFixtures, updateFixtures, } from './dummy/updates.js';
|
|
28
28
|
export type { VaultScenario } from './dummy/vault.js';
|
|
29
|
-
export { DummyVault, DummyVaultButton, vaultAudit, vaultFixtures, vaultNotice, vaultOlder, vaultPaused, vaultPinned, vaultPolicy, vaultPurged, vaultRefused, vaultSecrets, vaultSessions, } from './dummy/vault.js';
|
|
29
|
+
export { DummyValueFrame, DummyVault, DummyVaultButton, vaultAudit, vaultFixtures, vaultNotice, vaultOlder, vaultPaused, vaultPinned, vaultPolicy, vaultPurged, vaultRefused, vaultSecrets, vaultSessions, } from './dummy/vault.js';
|
|
@@ -293,6 +293,7 @@ export interface AgentPort extends Subscribable<AgentEvents> {
|
|
|
293
293
|
setModel(agentId: string, model: string): void;
|
|
294
294
|
setThinking(agentId: string, thinking: Thinking): void;
|
|
295
295
|
older(agentId: string, before: string): Promise<readonly Message[]>;
|
|
296
|
+
hasOlder?(agentId: string): boolean;
|
|
296
297
|
commands(agentId: string): readonly SlashCommand[];
|
|
297
298
|
toolLabel?(agentId: string, callIds: readonly string[]): Promise<string | null>;
|
|
298
299
|
ready(): Promise<void>;
|
|
@@ -1057,7 +1058,27 @@ export interface TrayApproval {
|
|
|
1057
1058
|
createdAt: number;
|
|
1058
1059
|
expiresAt: number;
|
|
1059
1060
|
}
|
|
1060
|
-
export
|
|
1061
|
+
export interface SecretApproval {
|
|
1062
|
+
id: string;
|
|
1063
|
+
kind: 'secret';
|
|
1064
|
+
mode: 'enter' | 'reveal';
|
|
1065
|
+
name: string;
|
|
1066
|
+
prompt?: string;
|
|
1067
|
+
reveal: boolean;
|
|
1068
|
+
requester: {
|
|
1069
|
+
kind: 'agent' | 'user';
|
|
1070
|
+
name: string;
|
|
1071
|
+
where?: string;
|
|
1072
|
+
};
|
|
1073
|
+
process: {
|
|
1074
|
+
exe: string;
|
|
1075
|
+
argv: string[];
|
|
1076
|
+
cwd: string;
|
|
1077
|
+
};
|
|
1078
|
+
createdAt: number;
|
|
1079
|
+
expiresAt: number;
|
|
1080
|
+
}
|
|
1081
|
+
export type Approval = SudoApproval | GuestMessageApproval | GuestToolApproval | TrayApproval | SecretApproval;
|
|
1061
1082
|
export type ApprovalEnd = 'answered' | 'withdrawn' | 'expired';
|
|
1062
1083
|
export interface ApprovalsEvents {
|
|
1063
1084
|
approvals: readonly Approval[];
|
|
@@ -1104,8 +1125,8 @@ export type RecordKind = 'secret' | 'grant' | 'model' | 'mcp';
|
|
|
1104
1125
|
export type RecordState = 'active' | 'inert' | 'removed';
|
|
1105
1126
|
export type RecordSource = 'settings' | 'popup' | 'process' | `jerk:${string}@${DeviceId}` | `oauth:${string}` | `import:${string}`;
|
|
1106
1127
|
export type LockMode = 'auto' | 'passkey' | 'passphrase';
|
|
1107
|
-
export type RequestKind = 'value' | 'oauth' | 'jerk-seal' | 'jerk' | 'unseal';
|
|
1108
|
-
export type RequestState = 'pending' | 'done' | 'cancelled' | 'expired';
|
|
1128
|
+
export type RequestKind = 'value' | 'oauth' | 'jerk-seal' | 'jerk' | 'unseal' | 'ask';
|
|
1129
|
+
export type RequestState = 'pending' | 'done' | 'cancelled' | 'expired' | 'withdrawn';
|
|
1109
1130
|
export type ErrorCode = 'EINVAL' | 'ENOENT' | 'EACCES' | 'EEXIST' | 'EAGAIN' | 'ETIMEDOUT' | 'ENOTCONN' | 'ENOTSUP';
|
|
1110
1131
|
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';
|
|
1111
1132
|
export interface VaultError {
|
|
@@ -1159,11 +1180,25 @@ export interface PendingRequest {
|
|
|
1159
1180
|
name?: string;
|
|
1160
1181
|
provider?: string;
|
|
1161
1182
|
prompt?: string;
|
|
1183
|
+
mode?: 'enter' | 'reveal';
|
|
1184
|
+
reveal?: boolean;
|
|
1185
|
+
replace?: boolean;
|
|
1186
|
+
requester?: AskRequester;
|
|
1162
1187
|
uid: number;
|
|
1163
1188
|
tag: string | null;
|
|
1164
1189
|
createdAt: number;
|
|
1165
1190
|
expiresAt: number;
|
|
1166
1191
|
}
|
|
1192
|
+
export interface AskRequester {
|
|
1193
|
+
kind: 'agent' | 'user';
|
|
1194
|
+
name?: string;
|
|
1195
|
+
where?: string;
|
|
1196
|
+
exe: string;
|
|
1197
|
+
argv: string[];
|
|
1198
|
+
cwd: string;
|
|
1199
|
+
tty: string | null;
|
|
1200
|
+
stdin: 'tty' | 'none' | 'pipe' | 'file';
|
|
1201
|
+
}
|
|
1167
1202
|
export interface ScrubState {
|
|
1168
1203
|
needed: boolean;
|
|
1169
1204
|
version: number;
|
|
@@ -1240,6 +1275,11 @@ export type PolicyChange = {
|
|
|
1240
1275
|
field: string;
|
|
1241
1276
|
from: number;
|
|
1242
1277
|
to: number;
|
|
1278
|
+
} | {
|
|
1279
|
+
kind: 'reveal';
|
|
1280
|
+
field: 'agent';
|
|
1281
|
+
from: boolean;
|
|
1282
|
+
to: boolean;
|
|
1243
1283
|
};
|
|
1244
1284
|
export type PolicyFile = '/etc/fnox/config.toml' | '/etc/slicc/secrets-policy.toml';
|
|
1245
1285
|
export interface PolicyNotice {
|
|
@@ -1292,6 +1332,15 @@ export interface RevealEntry extends AuditBase {
|
|
|
1292
1332
|
ticket: string;
|
|
1293
1333
|
consumed: boolean;
|
|
1294
1334
|
}
|
|
1335
|
+
export interface AskRevealEntry extends AuditBase {
|
|
1336
|
+
type: 'reveal';
|
|
1337
|
+
uid: number;
|
|
1338
|
+
exe: string;
|
|
1339
|
+
argv: string;
|
|
1340
|
+
cwd: string;
|
|
1341
|
+
requester: 'agent' | 'user';
|
|
1342
|
+
request: string;
|
|
1343
|
+
}
|
|
1295
1344
|
export interface SealEntry extends AuditBase {
|
|
1296
1345
|
type: 'seal';
|
|
1297
1346
|
source: RecordSource;
|
|
@@ -1349,7 +1398,7 @@ export interface PolicyEntry {
|
|
|
1349
1398
|
changes?: PolicyChange[];
|
|
1350
1399
|
warning?: string;
|
|
1351
1400
|
}
|
|
1352
|
-
export type AuditEntry = InjectionEntry | SessionEntry | McpEntry | RevealEntry | SealEntry | RemoveEntry | RefreshEntry | EndpointsEntry | PolicyEntry;
|
|
1401
|
+
export type AuditEntry = InjectionEntry | SessionEntry | McpEntry | RevealEntry | AskRevealEntry | SealEntry | RemoveEntry | RefreshEntry | EndpointsEntry | PolicyEntry;
|
|
1353
1402
|
export interface AuditPage {
|
|
1354
1403
|
audit: AuditEntry[];
|
|
1355
1404
|
more: boolean;
|
|
@@ -1477,6 +1526,56 @@ export interface VaultButton {
|
|
|
1477
1526
|
post(message: ButtonMessage): void;
|
|
1478
1527
|
listen(listener: (event: ButtonEvent) => void): () => void;
|
|
1479
1528
|
}
|
|
1529
|
+
export interface ValueConfig {
|
|
1530
|
+
theme?: 'light' | 'dark';
|
|
1531
|
+
dir?: 'ltr' | 'rtl';
|
|
1532
|
+
lang?: string;
|
|
1533
|
+
scale?: 'medium' | 'large';
|
|
1534
|
+
}
|
|
1535
|
+
export type ValueMessage = {
|
|
1536
|
+
type: 'slicc-vault';
|
|
1537
|
+
v: 1;
|
|
1538
|
+
op: 'value';
|
|
1539
|
+
request: string;
|
|
1540
|
+
config: ValueConfig;
|
|
1541
|
+
} | {
|
|
1542
|
+
type: 'slicc-vault';
|
|
1543
|
+
v: 1;
|
|
1544
|
+
op: 'focus';
|
|
1545
|
+
};
|
|
1546
|
+
export type ValueEvent = {
|
|
1547
|
+
type: 'slicc-vault';
|
|
1548
|
+
v: 1;
|
|
1549
|
+
} & ({
|
|
1550
|
+
event: 'ready';
|
|
1551
|
+
} | {
|
|
1552
|
+
event: 'size';
|
|
1553
|
+
width: number;
|
|
1554
|
+
height: number;
|
|
1555
|
+
inset: number;
|
|
1556
|
+
} | {
|
|
1557
|
+
event: 'focus';
|
|
1558
|
+
direction: 'next' | 'previous';
|
|
1559
|
+
} | {
|
|
1560
|
+
event: 'done';
|
|
1561
|
+
request: string;
|
|
1562
|
+
state: 'sealed' | 'allowed';
|
|
1563
|
+
} | {
|
|
1564
|
+
event: 'gone';
|
|
1565
|
+
request: string;
|
|
1566
|
+
state: RequestState;
|
|
1567
|
+
} | {
|
|
1568
|
+
event: 'error';
|
|
1569
|
+
code: ErrorCode;
|
|
1570
|
+
message: string;
|
|
1571
|
+
} | {
|
|
1572
|
+
event: 'escape';
|
|
1573
|
+
});
|
|
1574
|
+
export interface VaultValueFrame {
|
|
1575
|
+
element: HTMLElement;
|
|
1576
|
+
post(message: ValueMessage): void;
|
|
1577
|
+
listen(listener: (event: ValueEvent) => void): () => void;
|
|
1578
|
+
}
|
|
1480
1579
|
export interface VaultEvents {
|
|
1481
1580
|
status: VaultStatus;
|
|
1482
1581
|
list: VaultList;
|
|
@@ -1510,6 +1609,7 @@ export interface VaultPort extends Subscribable<VaultEvents> {
|
|
|
1510
1609
|
endpoints?(change: VaultEndpointChange): Promise<void>;
|
|
1511
1610
|
settings?(name: string, kind: RecordKind, settings: Record<string, string>): Promise<void>;
|
|
1512
1611
|
button(): VaultButton;
|
|
1612
|
+
valueFrame?(request: string): VaultValueFrame;
|
|
1513
1613
|
}
|
|
1514
1614
|
export type GuestGate = 'user' | 'cone' | 'agent' | `scoop:${string}` | 'off';
|
|
1515
1615
|
export interface GuestGates {
|
package/dist/types/ui.d.ts
CHANGED
|
@@ -1,7 +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
|
+
import { approvalKinds, SliccApprovals } from './app/approvals.js';
|
|
5
5
|
import { SliccBrowser } from './app/browser.js';
|
|
6
6
|
import { SliccChanges, SliccDiffPanel } from './app/changes.js';
|
|
7
7
|
import { SliccChat } from './app/chat.js';
|
|
@@ -16,7 +16,7 @@ import { SliccNotices } from './app/notices.js';
|
|
|
16
16
|
import { SliccSecrets } from './app/secrets.js';
|
|
17
17
|
import { SliccUpdates } from './app/updates.js';
|
|
18
18
|
import { SliccValueRequest } from './app/value-request.js';
|
|
19
|
-
import { SliccVaultButton } from './app/vault.js';
|
|
19
|
+
import { SliccVaultButton, SliccVaultValue } from './app/vault.js';
|
|
20
20
|
import { SliccCodeView, SliccDiffView } from './components/code-view.js';
|
|
21
21
|
import { SliccDock } from './components/dock.js';
|
|
22
22
|
import { SliccFileTree } from './components/file-tree.js';
|
|
@@ -36,5 +36,5 @@ export type { Listener, Subscribable } from './model/emitter.js';
|
|
|
36
36
|
export { Emitter } from './model/emitter.js';
|
|
37
37
|
export type * from './model/types.js';
|
|
38
38
|
export { isVaultFailure } from './model/values.js';
|
|
39
|
-
export { SliccAgents, SliccApp, SliccApprovals, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccFollow, SliccFreezerImport, SliccGuestInvite, SliccNetwork, SliccNotices, SliccPrompt, SliccSecrets, SliccUpdates, SliccValueRequest, SliccVaultButton, };
|
|
39
|
+
export { approvalKinds, SliccAgents, SliccApp, SliccApprovals, SliccBrowser, SliccChanges, SliccChat, SliccCodeView, SliccComposer, SliccConfirm, SliccDiffPanel, SliccDiffView, SliccDock, SliccFiles, SliccFileTree, SliccFileView, SliccFollow, SliccFreezerImport, SliccGuestInvite, SliccNetwork, SliccNotices, SliccPrompt, SliccSecrets, SliccUpdates, SliccValueRequest, SliccVaultButton, SliccVaultValue, };
|
|
40
40
|
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.0
|
|
3
|
+
"version": "2.2.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",
|
|
@@ -62,10 +62,10 @@
|
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@adobe/spectrum-wc": "2.0.0-beta.6",
|
|
64
64
|
"@adobe/spectrum-wc-icons": "2.0.0-beta.6",
|
|
65
|
-
"@ai-ecoverse/slicc-cdp": "1.46.
|
|
66
|
-
"@ai-ecoverse/slicc-kernel": "1.174.
|
|
65
|
+
"@ai-ecoverse/slicc-cdp": "1.46.4",
|
|
66
|
+
"@ai-ecoverse/slicc-kernel": "1.174.2",
|
|
67
67
|
"@ai-ecoverse/slicc-shared-web": "2.13.10",
|
|
68
|
-
"@ai-ecoverse/slicc-vault": "1.
|
|
68
|
+
"@ai-ecoverse/slicc-vault": "1.23.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",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"@wterm/core": "0.5.7",
|
|
90
90
|
"@wterm/dom": "0.5.7",
|
|
91
91
|
"@wterm/ghostty": "0.5.7",
|
|
92
|
-
"dockview-core": "8.8.
|
|
92
|
+
"dockview-core": "8.8.3",
|
|
93
93
|
"esbuild": "0.28.2",
|
|
94
94
|
"happy-dom": "21.0.4",
|
|
95
95
|
"lefthook": "2.2.2",
|