@ai-ecoverse/slicc-spectrum 2.9.1 → 2.9.2
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 +4 -3
- package/dist/slicc-dummy.js +10 -2
- package/dist/slicc-dummy.js.map +2 -2
- package/dist/slicc-ui.js +143 -53
- package/dist/slicc-ui.js.map +3 -3
- package/dist/types/app/browser.d.ts +28 -1
- package/dist/types/dummy/browser.d.ts +11 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -431,10 +431,11 @@ Sessions stay alive while hidden; `exit` closes the tab.
|
|
|
431
431
|
|
|
432
432
|
What the agents' browser control is doing.
|
|
433
433
|
It opens on the most recently driven tab (`.focused`), or on the tab overview: cards (`li[data-id]`, `data-controlled` while an agent drives the tab, `data-pulse` when another tab starts being driven, without switching to it) with a thumbnail, the agent and a small **Stop <agent>** (`data-action="stop-agent"`), and an address bar to open a URL.
|
|
434
|
-
The focused tab
|
|
434
|
+
The focused tab is preview-first: **All tabs** (`data-action="all-tabs"`) with a tab picker (a list of tabs at 720 px and wider) on one row, the URL with **Copy** (`data-action="copy-url"`) and **Open** (`data-action="open-tab"`, activates the tab) on the next, who's using it (`.driving[data-driving=agent|user|none]`; **Watching <agent>** while an agent drives, **In use** when a controlled tab has no agent and no Stop) with a small **Stop <agent>** (`data-action="stop-agent"`) in the same row, which keeps its height with or without an agent, a watching-only preview (`figure[data-view]`: `live` while watching with a frame under 3 s old, `shot` with "Updated N s ago", `none`; the caption says **Watching only**) that keeps a 16:10 frame, and a **Recent actions** feed (`.feed`) that fills the leftover height.
|
|
435
|
+
Recent actions (`li[data-action-id][data-kind][data-status]`, failures with their error inline) are newest first: the tab's own filtered first, then the latest 50, with **Show more** (`data-action="more-actions"`) adding 50 earlier ones each time up to all the port has ("Showing the latest N of M"); the list scrolls and takes focus.
|
|
436
|
+
Consecutive identical done actions fold into one row (`li[data-group]`) with a count (`×n`).
|
|
435
437
|
Actions with a URL (`open`, `goto`, `request`) expand (`data-action="action-url"`, `aria-expanded`) to show the full URL, or the request line, under the shortened one.
|
|
436
|
-
|
|
437
|
-
The tab the user opened (or **All tabs**), expanded URLs and an open **Recent actions** hold for every view of the panel on the same model, so a layout switch keeps them; a closed tab lets go, and the panel opens on the most recently driven tab again.
|
|
438
|
+
The tab the user opened (or **All tabs**) and expanded URLs hold for every view of the panel on the same model, so a layout switch keeps them; a closed tab lets go, and the panel opens on the most recently driven tab again.
|
|
438
439
|
Labels, URLs and errors are text only.
|
|
439
440
|
With no tabs and `browser.via` `null` in the network status, it says browser control isn't connected (`data-browser="none"`) with the extension link and the commands to install and run slicc (`curl -fsSL https://get.sliccy.ai/slicc | sh`, then `slicc`, or `npx sliccy@next` with Node).
|
|
440
441
|
The Browser rail button carries a dot (`data-driven`) while a tab is in use.
|
package/dist/slicc-dummy.js
CHANGED
|
@@ -721,10 +721,15 @@ var DummyBrowser = class extends Emitter {
|
|
|
721
721
|
this.finish(action.id, "Stopped");
|
|
722
722
|
if (changed) this.emit("tabs", this.list());
|
|
723
723
|
}
|
|
724
|
-
watch
|
|
724
|
+
#watch = null;
|
|
725
|
+
lastWatch() {
|
|
726
|
+
return this.#watch;
|
|
727
|
+
}
|
|
728
|
+
watch(tabId, size) {
|
|
725
729
|
const tab = () => this.#tabs.find((candidate) => candidate.id === tabId);
|
|
726
730
|
if (!tab()?.controlled) return () => {
|
|
727
731
|
};
|
|
732
|
+
this.#watch = { tabId, size: size ? { ...size } : void 0 };
|
|
728
733
|
const send = () => {
|
|
729
734
|
const now2 = tab();
|
|
730
735
|
if (!now2?.controlled) return;
|
|
@@ -732,7 +737,10 @@ var DummyBrowser = class extends Emitter {
|
|
|
732
737
|
};
|
|
733
738
|
const timer = setInterval(send, 500);
|
|
734
739
|
void this.#clock.sleep(0).then(send);
|
|
735
|
-
return () =>
|
|
740
|
+
return () => {
|
|
741
|
+
clearInterval(timer);
|
|
742
|
+
if (this.#watch?.tabId === tabId) this.#watch = null;
|
|
743
|
+
};
|
|
736
744
|
}
|
|
737
745
|
#changed() {
|
|
738
746
|
this.emit("tabs", this.list());
|