@ai-ecoverse/slicc-spectrum 1.88.0 → 1.88.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 +5 -4
- package/dist/slicc-dummy.js +1 -1
- package/dist/slicc-dummy.js.map +2 -2
- package/dist/slicc-ui.js +2825 -2795
- package/dist/slicc-ui.js.map +4 -4
- package/dist/types/app/freezer-import.d.ts +1 -0
- package/dist/types/app/freezer.d.ts +2 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -484,9 +484,9 @@ A thawed scoop or agent run keeps its row, which says what it was thawed as.
|
|
|
484
484
|
**Delete cone**, in the agents list (or <kbd>Delete</kbd> on a cone's row) and the header's cone picker, stops a cone after a confirmation; `/freeze` does it at once.
|
|
485
485
|
Either way its conversation stays here, and a row without a `kind` counts as a cone.
|
|
486
486
|
A title longer than two lines ends in an ellipsis and carries its full text as a `title`; the dummy's titles are the whole first line of the first message, so only the card cuts them.
|
|
487
|
-
A row with `v6: true` came from SLICC 6 and carries a neutral **SLICC 6** badge (`data-badge="v6"`, `data-v6` on the row).
|
|
488
|
-
When the agent port has `importProfile` and `importCancel` and the page is neither watch-only nor a guest seat, the bar offers **Import
|
|
489
|
-
Either opens `<slicc-freezer-import>`, a modal (`dialog[data-import]` set to `checking`, `preview`, `importing`, `done` or `failed`): `importProfile(file, { preview: true })` runs behind a progress circle and "Checking the profile…"; then **Import from SLICC 6?** shows the agent's `text`, a summary (cones, scoops, frozen, skills, crons, webhooks, size) and its notes (`[data-note]`): "You imported this export on {day}." when `already` is set, "Sign in again in Settings: {providers}." (named by their accounts), a **Warning:** with an icon for credential-like files, which are imported for review afterwards (their zip paths as code; more than three fold under a quiet chevron), and a muted "Not imported: {n} mounted folders.".
|
|
487
|
+
A row with `v6: true` came from SLICC 6 and carries a neutral outline **SLICC 6** badge (`data-badge="v6"`, `data-v6` on the row), set apart from the gray model badge.
|
|
488
|
+
When the agent port has `importProfile` and `importCancel` and the page is neither watch-only nor a guest seat, the bar offers **Import** with an import icon (`data-action="import-v6"`; its accessible name and tooltip say "Import from SLICC 6"), on the bar's first row at the default width, which picks a `.zip`; dropping a zip on the Freezer (with a "Drop to import" dropzone while dragging) does the same.
|
|
489
|
+
Either opens `<slicc-freezer-import>`, a modal (`dialog[data-import]` set to `checking`, `preview`, `importing`, `done` or `failed`): `importProfile(file, { preview: true })` runs behind a progress circle and "Checking the profile…"; then **Import from SLICC 6?** shows the agent's `text`, a summary (cones, scoops, frozen, skills, crons, webhooks, size, on one row when the dialog is wide and in four equal columns when it's narrow, so no cell sits alone on a row) and its notes (`[data-note]`): "You imported this export on {day}." when `already` is set, "Sign in again in Settings: {providers}." (named by their accounts), a **Warning:** with an icon for credential-like files, which are imported for review afterwards (their zip paths as code; more than three fold under a quiet chevron), and a muted "Not imported: {n} mounted folders." behind a folder icon, so every note's text starts at the same edge.
|
|
490
490
|
**Import** (`data-action="import-confirm"`, **Import again** with `again: true` after an earlier import) runs the import with a progress bar from the `importing` event, announced only when it starts and ends; **Done** (`data-action="import-done"`) after "Imported {n} cones." and the report path with **Copy** (`data-action="copy-report"`) closes it and focuses the first imported row.
|
|
491
491
|
A rejection shows the error card with its sentence (a check without a `preview` shows "Couldn’t read this export. Try another zip."), **Try again** (`data-action="import-retry"`, picks again) and **Close**; **Cancel** or <kbd>Escape</kbd> while checking or importing calls `importCancel`.
|
|
492
492
|
|
|
@@ -584,6 +584,7 @@ Destructive actions ask first: reverting one change or all, deleting a frozen co
|
|
|
584
584
|
`confirm({ title, body, action, variant, cancel, trigger })`, exported from `dist/slicc-ui.js`, opens a modal alert dialog (1.12 `sp-alert-dialog`, as Gen2 has no dialog yet) inside `<slicc-app>`'s themed shadow root and resolves `true` on the action and `false` on Cancel or <kbd>Esc</kbd>.
|
|
585
585
|
`cancel` renames Cancel, for example “Don’t allow” next to “Allow” in a permission prompt.
|
|
586
586
|
Focus starts on Cancel and goes back to `trigger` (default: the focused element) when it closes.
|
|
587
|
+
Under forced colors the shared dialog styles (`dialogStyles`, also used by the import, guest invite, approval and value dialogs) outline the `<dialog>` and drop the `sp-alert-dialog` border, so nothing scrolls sideways.
|
|
587
588
|
`variant` is `destructive` (default, a negative action button) for actions that lose data for good, or `confirmation` (accent) for ones you can take back, like disconnecting.
|
|
588
589
|
Title the dialog with a question, say what can’t be undone in `body`, and name the action with a verb.
|
|
589
590
|
|
|
@@ -932,7 +933,7 @@ Dummy Update now and Retry simulate download and link progress; Restart agent an
|
|
|
932
933
|
`model.network.setScenario()` switches it and Check again re-emits after a short wait.
|
|
933
934
|
`createDummyModel({ tailnet: 'off' | 'needs-login' | 'running' | 'failed' })` (or `?tailnet=` on `/ui/`, off by default) adds an invented tailnet: an auth key starting with `tskey-` signs in, `mast-pi` and `keel-router` are online exit nodes and `buoy-laptop` is offline, and Retry on `failed` connects.
|
|
934
935
|
While the dummy tailnet runs with an exit node, the route is `tailnet` and the health `ok`.
|
|
935
|
-
`createDummyModel({ links: 'none' | 'preparing' | 'linked' | 'reconnecting' | 'exit' | 'prompt' | 'denied' | 'remote' | 'followers' | 'pairing' | 'pairing-notray' | 'forgotten' })` (or `?links=` on `/ui/`, off by default) adds invented linked devices and the exit members: `linked` has quay-studio (on this computer) and pier-nuc, which can be exits and have a Chrome each, and dock-builder, which can't; quay-studio shares `sketches` and pier-nuc `proj` and a read-only `archive`, which **Mount** attaches to the dummy files at `/mnt/<source>` (with `mountInfo` naming the source) and **Eject** or the Files strip detaches; with no other browser automation, the dummy reports `via: 'link'`; `exit` sends traffic through quay-studio; `reconnecting` holds traffic for pier-nuc (health `failing`, and `ok` while the exit device is connected, both without a `detail`, as bios reports them); `remote` has pier-nuc allowed and prompting, quay-studio watching, and an offline reef-laptop that only ever connected for control; `prompt` and `denied` wait for Local Network Access, and Try again links quay-studio; `pairing` has a tray, pier-nuc and dock-builder, and `pairing` at `idle`: `pairComputer` takes a URL
|
|
936
|
+
`createDummyModel({ links: 'none' | 'preparing' | 'linked' | 'reconnecting' | 'exit' | 'prompt' | 'denied' | 'remote' | 'followers' | 'pairing' | 'pairing-notray' | 'forgotten' })` (or `?links=` on `/ui/`, off by default) adds invented linked devices and the exit members: `linked` has quay-studio (on this computer) and pier-nuc, which can be exits and have a Chrome each, and dock-builder, which can't; quay-studio shares `sketches` and pier-nuc `proj` and a read-only `archive`, which **Mount** attaches to the dummy files at `/mnt/<source>` (with `mountInfo` naming the source) and **Eject** or the Files strip detaches; with no other browser automation, the dummy reports `via: 'link'`; `exit` sends traffic through quay-studio; `reconnecting` holds traffic for pier-nuc (health `failing`, and `ok` while the exit device is connected, both without a `detail`, as bios reports them); `remote` has pier-nuc allowed and prompting, quay-studio watching, and an offline reef-laptop that only ever connected for control; `prompt` and `denied` wait for Local Network Access, and Try again links quay-studio; `pairing` has a tray, pier-nuc and dock-builder, and `pairing` at `idle`: `pairComputer` takes a URL with a `#slicc-pair=` fragment (as `slicc pair` prints, e.g. `https://seven.sliccy.ai/#slicc-pair=17117.<token>.<fp>`) to `confirm` with the code `ab12…ef` and refuses anything else, and `confirmPairing` goes through `linking` to `linked` as SLICC on quay-studio, adding it as a local CLI row without access, or to `failed` when the URL contains `fail`; `pairing-notray` is the same without `joinUrl` and `joinCommand`, and `forgotten` adds quay-studio offline with a `note`.
|
|
936
937
|
New join URL changes the URL, and `model.network.setLinks()` switches scenarios.
|
|
937
938
|
`createDummyModel({ leaders: 'connected' | 'failed' | 'unlinked' | 'disconnected' | 'two' })` (or `?leaders=` on `/ui/`, off by default) adds invented leaders and their members: cove-studio connected, marsh-desk failed with an error, cove-studio unlinked (gone on the next status), cove-studio disconnected, or both cove-studio and marsh-desk; Retry and Reconnect move a leader to connecting, then connected, Disconnect makes it disconnected and Forget drops it, each after a short wait.
|
|
938
939
|
`networkFixtures`, `tailnetFixtures`, `linksFixtures`, `leadersFixtures`, `joinUrl`, `pairingCode`, `pairingRefused`, `pairingStopped`, `pairedDevice`, `forgottenDevice` and `DummyNetwork` are exported from `/dummy`.
|
package/dist/slicc-dummy.js
CHANGED
|
@@ -5871,7 +5871,7 @@ var DummyNetwork = class extends Emitter {
|
|
|
5871
5871
|
}
|
|
5872
5872
|
async #pair(url) {
|
|
5873
5873
|
await this.#clock.sleep(4);
|
|
5874
|
-
if (
|
|
5874
|
+
if (!/#slicc-pair=./.test(url)) throw new Error(pairingRefused);
|
|
5875
5875
|
this.#pairUrl = url;
|
|
5876
5876
|
this.#pairing({ state: "confirm", code: pairingCode });
|
|
5877
5877
|
}
|