@ai-ecoverse/slicc-spectrum 2.6.0 → 2.7.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.
@@ -11,7 +11,7 @@ import '@adobe/spectrum-wc-icons/swc-icon-file.js';
11
11
  import '@adobe/spectrum-wc-icons/swc-icon-file-text.js';
12
12
  import '@adobe/spectrum-wc-icons/swc-icon-lock.js';
13
13
  import { type PropertyValues, type TemplateResult } from 'lit';
14
- import type { AgentPort, Attachment, Outgoing, Seat, SendMode, SliccModel, VaultPort } from '../model/types.js';
14
+ import type { AgentPort, Attachment, CaptureKind, Outgoing, Seat, SendMode, SliccModel, VaultPort } from '../model/types.js';
15
15
  import { ThemedElement } from './base.js';
16
16
  export declare const limit: number;
17
17
  type Kept = Pick<Attachment, 'name' | 'mimeType' | 'size'>;
@@ -103,6 +103,9 @@ export declare class SliccComposer extends ThemedElement {
103
103
  reattach: {
104
104
  state: boolean;
105
105
  };
106
+ recording: {
107
+ state: boolean;
108
+ };
106
109
  agent: {};
107
110
  };
108
111
  value: string;
@@ -122,6 +125,7 @@ export declare class SliccComposer extends ThemedElement {
122
125
  } | null;
123
126
  failure: string | null;
124
127
  reattach: Kept[] | null;
128
+ recording: CaptureKind | null;
125
129
  agent: string;
126
130
  constructor();
127
131
  static styles: import("lit").CSSResult[];
@@ -138,6 +142,7 @@ export declare class SliccComposer extends ThemedElement {
138
142
  addFiles(files: readonly File[], dropped?: ReadonlySet<File>): Promise<void>;
139
143
  detach(id: string): void;
140
144
  screenshot(): Promise<void>;
145
+ record(kind: CaptureKind): Promise<void>;
141
146
  attachPath(path: string): Promise<void>;
142
147
  shareSecret(name: string, field?: HTMLInputElement | null): Promise<void>;
143
148
  enterSecret(name: string, replace?: boolean): Promise<void>;
@@ -0,0 +1,11 @@
1
+ import type { CaptureKind, CapturePort, CaptureStill, Recording, SwitchesPort } from '../model/types.js';
2
+ import type { Clock } from './clock.js';
3
+ import type { DummyLive } from './live.js';
4
+ export type CaptureScenario = 'on' | 'audio' | 'deny' | 'off';
5
+ export declare class DummyCapture implements CapturePort {
6
+ #private;
7
+ kinds?: readonly CaptureKind[];
8
+ still?: () => Promise<CaptureStill>;
9
+ constructor(scenario: Exclude<CaptureScenario, 'off'>, clock: Clock, live?: DummyLive, switches?: SwitchesPort);
10
+ record(kind: CaptureKind): Promise<Recording>;
11
+ }
@@ -1,6 +1,7 @@
1
1
  import type { Account, 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
+ import { type CaptureScenario, DummyCapture } from './capture.js';
4
5
  import { type ChangesScenario } from './changes.js';
5
6
  import type { BudgetScenario } from './extras.js';
6
7
  import { type MountScenario } from './files.js';
@@ -33,6 +34,7 @@ export interface DummyOptions {
33
34
  entry?: 'input' | 'frame';
34
35
  asks?: 'long' | 'off';
35
36
  live?: LiveScenario | 'off';
37
+ capture?: CaptureScenario;
36
38
  switches?: 'capture' | 'off';
37
39
  follow?: FollowScenario | 'off';
38
40
  vault?: VaultScenario | 'off';
@@ -62,6 +64,7 @@ export interface DummyModel extends SliccModel {
62
64
  tabs?: DummyTabs;
63
65
  approvals?: DummyApprovals;
64
66
  live?: DummyLive;
67
+ capture?: DummyCapture;
65
68
  switches?: DummySwitches;
66
69
  follow?: DummyFollow;
67
70
  vault?: DummyVault;
@@ -70,4 +73,4 @@ export interface DummyModel extends SliccModel {
70
73
  export declare function vaultAccounts(accounts: readonly Account[]): Account[];
71
74
  export declare const docsUrl = "https://docs.example/mcp";
72
75
  export declare const movedDocs = "https://docs.eu.example/mcp";
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;
76
+ export declare function createDummyModel({ delay, storage, updates, packages, confirm, beta, mounts, network, tailnet, links, leaders, changes, notices, tabs, approvals, asks, live, capture, 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,6 +1,6 @@
1
1
  import { Emitter } from '../model/emitter.js';
2
2
  import type { LiveItem, LivePort, Switch, SwitchesPort } from '../model/types.js';
3
- export type LiveScenario = 'screen' | 'both';
3
+ export type LiveScenario = 'screen' | 'both' | 'empty';
4
4
  export declare function liveFixtures(scenario: LiveScenario, now?: number): LiveItem[];
5
5
  export declare class DummyLive extends Emitter<{
6
6
  items: readonly LiveItem[];
@@ -2,6 +2,8 @@ export type { ApprovalScenario } from './dummy/approvals.js';
2
2
  export { approvalFixtures, DummyApprovals } from './dummy/approvals.js';
3
3
  export type { ActionDraft, BrowserScenario } from './dummy/browser.js';
4
4
  export { actionLimits, browserHistory, DummyBrowser, page } from './dummy/browser.js';
5
+ export type { CaptureScenario } from './dummy/capture.js';
6
+ export { DummyCapture } from './dummy/capture.js';
5
7
  export type { ChangesScenario } from './dummy/changes.js';
6
8
  export { DummyChanges } from './dummy/changes.js';
7
9
  export type { DummyMount, MountScenario } from './dummy/files.js';
@@ -1152,6 +1152,25 @@ export interface LivePort extends Subscribable<{
1152
1152
  items(): readonly LiveItem[];
1153
1153
  act(id: string): void;
1154
1154
  }
1155
+ export type CaptureKind = 'audio' | 'video';
1156
+ export interface CaptureStill {
1157
+ blob: Blob;
1158
+ mimeType: string;
1159
+ name: string;
1160
+ }
1161
+ export interface CaptureTake extends CaptureStill {
1162
+ durationMs: number;
1163
+ }
1164
+ export interface Recording {
1165
+ stop(): void;
1166
+ cancel(): void;
1167
+ finished: Promise<CaptureTake>;
1168
+ }
1169
+ export interface CapturePort {
1170
+ kinds?: readonly CaptureKind[];
1171
+ record(kind: CaptureKind): Promise<Recording>;
1172
+ still?(): Promise<CaptureStill>;
1173
+ }
1155
1174
  export interface Switch {
1156
1175
  key: string;
1157
1176
  label: string;
@@ -1764,6 +1783,7 @@ export interface SliccModel {
1764
1783
  tabs?: TabsPort;
1765
1784
  approvals?: ApprovalsPort;
1766
1785
  live?: LivePort;
1786
+ capture?: CapturePort;
1767
1787
  switches?: SwitchesPort;
1768
1788
  follow?: FollowPort;
1769
1789
  vault?: VaultPort;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-spectrum",
3
- "version": "2.6.0",
3
+ "version": "2.7.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,8 +62,8 @@
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.7",
66
- "@ai-ecoverse/slicc-kernel": "1.176.0",
65
+ "@ai-ecoverse/slicc-cdp": "1.47.0",
66
+ "@ai-ecoverse/slicc-kernel": "1.176.1",
67
67
  "@ai-ecoverse/slicc-shared-web": "2.13.10",
68
68
  "@ai-ecoverse/slicc-vault": "1.24.0",
69
69
  "@ai-ecoverse/wasm-bash": "5.3.0-23",
@@ -93,7 +93,7 @@
93
93
  "esbuild": "0.28.2",
94
94
  "happy-dom": "21.0.4",
95
95
  "lefthook": "2.2.2",
96
- "lucide": "1.65.0",
96
+ "lucide": "1.66.0",
97
97
  "mdast-util-from-markdown": "2.1.0",
98
98
  "mdast-util-gfm-autolink-literal": "2.0.1",
99
99
  "mdast-util-gfm-strikethrough": "2.0.1",