@ai-ecoverse/slicc-spectrum 1.68.2 → 1.69.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 +25 -7
- package/dist/slicc-dummy.js +52 -4
- package/dist/slicc-dummy.js.map +3 -3
- package/dist/slicc-ui.js +828 -648
- package/dist/slicc-ui.js.map +4 -4
- package/dist/types/app/agents.d.ts +4 -0
- package/dist/types/app/approvals.d.ts +5 -1
- package/dist/types/app/browser.d.ts +2 -0
- package/dist/types/dummy/approvals.d.ts +2 -1
- package/dist/types/dummy/browser.d.ts +5 -0
- package/dist/types/dummy.d.ts +1 -1
- package/dist/types/ui.d.ts +2 -0
- package/package.json +4 -4
package/dist/slicc-ui.js
CHANGED
|
@@ -9444,6 +9444,7 @@ var SliccPrompt = class extends i2 {
|
|
|
9444
9444
|
trigger = null;
|
|
9445
9445
|
submit = null;
|
|
9446
9446
|
#result = Promise.withResolvers();
|
|
9447
|
+
#submitted = null;
|
|
9447
9448
|
constructor() {
|
|
9448
9449
|
super();
|
|
9449
9450
|
this.heading = "";
|
|
@@ -9495,14 +9496,14 @@ var SliccPrompt = class extends i2 {
|
|
|
9495
9496
|
this.#field.focus();
|
|
9496
9497
|
return;
|
|
9497
9498
|
}
|
|
9498
|
-
this.#
|
|
9499
|
+
this.#submitted = value;
|
|
9499
9500
|
this.#dialog.close();
|
|
9500
9501
|
}
|
|
9501
9502
|
#cancel(event2) {
|
|
9502
9503
|
if (this.pending) event2.preventDefault();
|
|
9503
9504
|
}
|
|
9504
9505
|
#closed() {
|
|
9505
|
-
this.#result.resolve(
|
|
9506
|
+
this.#result.resolve(this.#submitted);
|
|
9506
9507
|
this.remove();
|
|
9507
9508
|
if (this.trigger?.isConnected) this.trigger.focus();
|
|
9508
9509
|
}
|
|
@@ -10736,11 +10737,514 @@ var SliccFreezer = class extends ModelElement {
|
|
|
10736
10737
|
}
|
|
10737
10738
|
};
|
|
10738
10739
|
|
|
10740
|
+
// node_modules/@adobe/spectrum-wc-icons/dist/ChevronRight.js
|
|
10741
|
+
function e80() {
|
|
10742
|
+
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M7.75 16.465a.748.748 0 0 1-.54-1.27l4.999-5.197-4.986-5.184a.75.75 0 0 1 .02-1.06.75.75 0 0 1 1.06.021L13.79 9.48c.28.29.28.749 0 1.039l-5.5 5.716a.75.75 0 0 1-.54.23"/></svg>';
|
|
10743
|
+
}
|
|
10744
|
+
|
|
10745
|
+
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-chevron-right.js
|
|
10746
|
+
var o51 = class extends a10 {
|
|
10747
|
+
static get styles() {
|
|
10748
|
+
return [t40];
|
|
10749
|
+
}
|
|
10750
|
+
render() {
|
|
10751
|
+
return b`
|
|
10752
|
+
<span class="swc-Icon">${o16(e80())}</span>
|
|
10753
|
+
`;
|
|
10754
|
+
}
|
|
10755
|
+
};
|
|
10756
|
+
e25("swc-icon-chevron-right", o51);
|
|
10757
|
+
|
|
10758
|
+
// node_modules/@adobe/spectrum-wc-icons/dist/Copy.js
|
|
10759
|
+
function e81() {
|
|
10760
|
+
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M11.75 18h-7.5C3.01 18 2 16.99 2 15.75v-7.5C2 7.01 3.01 6 4.25 6a.75.75 0 0 1 0 1.5.75.75 0 0 0-.75.75v7.5c0 .413.337.75.75.75h7.5c.413 0 .75-.337.75-.75a.75.75 0 0 1 1.5 0c0 1.24-1.01 2.25-2.25 2.25m-5-13A.75.75 0 0 1 6 4.25C6 3.01 7.01 2 8.25 2a.75.75 0 0 1 0 1.5.75.75 0 0 0-.75.75.75.75 0 0 1-.75.75M13 3.5h-2A.75.75 0 0 1 11 2h2a.75.75 0 0 1 0 1.5"/><path fill="var(--swc-icon-color, currentColor)" d="M13 14h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5m2.75 0a.75.75 0 0 1 0-1.5c.413 0 .75-.337.75-.75a.75.75 0 0 1 1.5 0c0 1.24-1.01 2.25-2.25 2.25m1.5-9a.75.75 0 0 1-.75-.75.75.75 0 0 0-.75-.75.75.75 0 0 1 0-1.5C16.99 2 18 3.01 18 4.25a.75.75 0 0 1-.75.75m0 4.75A.75.75 0 0 1 16.5 9V7A.75.75 0 0 1 18 7v2a.75.75 0 0 1-.75.75m-10.5 0A.75.75 0 0 1 6 9V7a.75.75 0 0 1 1.5 0v2a.75.75 0 0 1-.75.75M8.25 14C7.01 14 6 12.99 6 11.75a.75.75 0 0 1 1.5 0c0 .413.337.75.75.75a.75.75 0 0 1 0 1.5"/></svg>';
|
|
10761
|
+
}
|
|
10762
|
+
|
|
10763
|
+
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-copy.js
|
|
10764
|
+
var o52 = class extends a10 {
|
|
10765
|
+
static get styles() {
|
|
10766
|
+
return [t40];
|
|
10767
|
+
}
|
|
10768
|
+
render() {
|
|
10769
|
+
return b`
|
|
10770
|
+
<span class="swc-Icon">${o16(e81())}</span>
|
|
10771
|
+
`;
|
|
10772
|
+
}
|
|
10773
|
+
};
|
|
10774
|
+
e25("swc-icon-copy", o52);
|
|
10775
|
+
|
|
10776
|
+
// src/app/reach.ts
|
|
10777
|
+
var command = "curl -fsSL https://get.sliccy.ai/slicc | sh";
|
|
10778
|
+
var startCommand = "slicc";
|
|
10779
|
+
var nodeCommand = "npx sliccy@next";
|
|
10780
|
+
var reachStyles = i`
|
|
10781
|
+
.command {
|
|
10782
|
+
display: flex;
|
|
10783
|
+
align-items: center;
|
|
10784
|
+
gap: var(--swc-spacing-100);
|
|
10785
|
+
padding: var(--swc-spacing-75) var(--swc-spacing-75) var(--swc-spacing-75) var(--swc-spacing-200);
|
|
10786
|
+
border-radius: var(--swc-corner-radius-medium-default);
|
|
10787
|
+
background: var(--swc-background-layer-1-color);
|
|
10788
|
+
}
|
|
10789
|
+
code {
|
|
10790
|
+
flex: 1;
|
|
10791
|
+
min-width: 0;
|
|
10792
|
+
overflow-wrap: break-word;
|
|
10793
|
+
word-break: normal;
|
|
10794
|
+
font-family: var(--swc-code-font-family-stack);
|
|
10795
|
+
font-size: var(--swc-font-size-75);
|
|
10796
|
+
color: var(--swc-code-color);
|
|
10797
|
+
user-select: all;
|
|
10798
|
+
}
|
|
10799
|
+
.commands {
|
|
10800
|
+
display: grid;
|
|
10801
|
+
gap: var(--swc-spacing-100);
|
|
10802
|
+
}
|
|
10803
|
+
.commands p {
|
|
10804
|
+
margin: 0;
|
|
10805
|
+
font-size: var(--swc-font-size-75);
|
|
10806
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
10807
|
+
}
|
|
10808
|
+
`;
|
|
10809
|
+
function block(text2, copied, copy, first2 = false) {
|
|
10810
|
+
const done2 = copied === text2;
|
|
10811
|
+
return b`<div class="command" data-command=${text2}>
|
|
10812
|
+
<code>${breakable(text2)}</code>
|
|
10813
|
+
<swc-action-button size="s" quiet data-action=${first2 ? "copy-command" : A} accessible-label=${done2 ? "Copied" : `Copy ${text2}`} @click=${() => copy(text2)}>
|
|
10814
|
+
<swc-icon-copy slot="icon"></swc-icon-copy>${done2 ? "Copied" : "Copy"}
|
|
10815
|
+
</swc-action-button>
|
|
10816
|
+
</div>`;
|
|
10817
|
+
}
|
|
10818
|
+
function breakable(text2) {
|
|
10819
|
+
return text2.split("/").map(
|
|
10820
|
+
(part2, index, parts2) => b`${part2}${index < parts2.length - 1 ? b`/<wbr />` : A}`
|
|
10821
|
+
);
|
|
10822
|
+
}
|
|
10823
|
+
function reach({ intro, extensionUrl, copied, uncopied, copy }) {
|
|
10824
|
+
return b`<p>${intro}</p>
|
|
10825
|
+
${extensionUrl ? b`<p><a class="swc-Link" href=${extensionUrl} target="_blank" rel="noopener noreferrer" data-action="install-extension">Install the Chrome extension</a></p>` : A}
|
|
10826
|
+
<p>To run slicc, enter this in a terminal:</p>
|
|
10827
|
+
<div class="commands">
|
|
10828
|
+
${block(command, copied, copy, true)}
|
|
10829
|
+
${block(startCommand, copied, copy)}
|
|
10830
|
+
</div>
|
|
10831
|
+
<div class="commands" data-commands="node">
|
|
10832
|
+
<p>With Node:</p>
|
|
10833
|
+
${block(nodeCommand, copied, copy)}
|
|
10834
|
+
</div>
|
|
10835
|
+
${uncopied ? b`<div class="error" role="alert" data-error="copy"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>Couldn’t copy. Select the command and copy it.</span></div>` : A}`;
|
|
10836
|
+
}
|
|
10837
|
+
async function copyText(text2) {
|
|
10838
|
+
try {
|
|
10839
|
+
await globalThis.navigator.clipboard.writeText(text2);
|
|
10840
|
+
return true;
|
|
10841
|
+
} catch {
|
|
10842
|
+
return false;
|
|
10843
|
+
}
|
|
10844
|
+
}
|
|
10845
|
+
|
|
10846
|
+
// src/app/monitor.ts
|
|
10847
|
+
function sparkline(points, width = 120, height = 28) {
|
|
10848
|
+
if (points.length < 2) return "";
|
|
10849
|
+
const max2 = Math.max(...points);
|
|
10850
|
+
const min2 = Math.min(...points);
|
|
10851
|
+
const span = max2 - min2 || 1;
|
|
10852
|
+
return points.map(
|
|
10853
|
+
(value, i26) => `${(i26 / (points.length - 1) * width).toFixed(1)},${(height - (value - min2) / span * (height - 2) - 1).toFixed(1)}`
|
|
10854
|
+
).join(" ");
|
|
10855
|
+
}
|
|
10856
|
+
function meterVariant2(ratio) {
|
|
10857
|
+
if (ratio >= 0.9) return "negative";
|
|
10858
|
+
if (ratio >= 0.6) return "notice";
|
|
10859
|
+
return "informative";
|
|
10860
|
+
}
|
|
10861
|
+
var surfaces = {
|
|
10862
|
+
agents: "agents",
|
|
10863
|
+
terminals: "terminal",
|
|
10864
|
+
tabs: "browser",
|
|
10865
|
+
changes: "changes",
|
|
10866
|
+
processes: "terminal"
|
|
10867
|
+
};
|
|
10868
|
+
var rowLights = {
|
|
10869
|
+
active: "info",
|
|
10870
|
+
idle: "neutral",
|
|
10871
|
+
warn: "notice",
|
|
10872
|
+
error: "negative"
|
|
10873
|
+
};
|
|
10874
|
+
var rowSpoken = {
|
|
10875
|
+
active: "Active",
|
|
10876
|
+
idle: "Idle",
|
|
10877
|
+
warn: "Needs attention",
|
|
10878
|
+
error: "Error"
|
|
10879
|
+
};
|
|
10880
|
+
function indent(depth) {
|
|
10881
|
+
return Math.min(Math.max(Math.floor(depth ?? 0), 0), 6);
|
|
10882
|
+
}
|
|
10883
|
+
function attention(section) {
|
|
10884
|
+
const errors = section.rows.filter((row) => row.status === "error").length;
|
|
10885
|
+
if (errors)
|
|
10886
|
+
return { variant: "negative", text: `${errors} ${errors === 1 ? "error" : "errors"}` };
|
|
10887
|
+
const warnings = section.rows.filter((row) => row.status === "warn").length;
|
|
10888
|
+
if (warnings)
|
|
10889
|
+
return {
|
|
10890
|
+
variant: "notice",
|
|
10891
|
+
text: `${warnings} ${warnings === 1 ? "needs" : "need"} attention`
|
|
10892
|
+
};
|
|
10893
|
+
return null;
|
|
10894
|
+
}
|
|
10895
|
+
var SliccMonitor = class extends ModelElement {
|
|
10896
|
+
static properties = {
|
|
10897
|
+
...ModelElement.properties,
|
|
10898
|
+
expanded: { state: true },
|
|
10899
|
+
copied: { state: true }
|
|
10900
|
+
};
|
|
10901
|
+
constructor() {
|
|
10902
|
+
super();
|
|
10903
|
+
this.expanded = {};
|
|
10904
|
+
this.copied = null;
|
|
10905
|
+
}
|
|
10906
|
+
static styles = [
|
|
10907
|
+
shared,
|
|
10908
|
+
panelCss,
|
|
10909
|
+
i`
|
|
10910
|
+
.bar {
|
|
10911
|
+
padding-block: var(--swc-spacing-50);
|
|
10912
|
+
}
|
|
10913
|
+
.heading {
|
|
10914
|
+
flex: 1;
|
|
10915
|
+
min-width: 0;
|
|
10916
|
+
display: flex;
|
|
10917
|
+
flex-wrap: wrap;
|
|
10918
|
+
align-items: baseline;
|
|
10919
|
+
column-gap: var(--swc-spacing-100);
|
|
10920
|
+
white-space: normal;
|
|
10921
|
+
}
|
|
10922
|
+
.bar swc-action-button {
|
|
10923
|
+
flex: none;
|
|
10924
|
+
}
|
|
10925
|
+
.body {
|
|
10926
|
+
flex: 1;
|
|
10927
|
+
min-height: 0;
|
|
10928
|
+
overflow-y: auto;
|
|
10929
|
+
padding: var(--swc-spacing-100);
|
|
10930
|
+
display: grid;
|
|
10931
|
+
grid-template-columns: minmax(0, 1fr);
|
|
10932
|
+
align-content: start;
|
|
10933
|
+
gap: var(--swc-spacing-200);
|
|
10934
|
+
}
|
|
10935
|
+
.vitals {
|
|
10936
|
+
display: grid;
|
|
10937
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--swc-card-default-width-extra-small)), 1fr));
|
|
10938
|
+
gap: var(--swc-spacing-100);
|
|
10939
|
+
}
|
|
10940
|
+
.vital {
|
|
10941
|
+
display: grid;
|
|
10942
|
+
align-content: start;
|
|
10943
|
+
gap: var(--swc-spacing-50);
|
|
10944
|
+
border-radius: var(--swc-corner-radius-medium-default);
|
|
10945
|
+
padding: var(--swc-spacing-200);
|
|
10946
|
+
background: var(--swc-background-layer-1-color);
|
|
10947
|
+
}
|
|
10948
|
+
.label {
|
|
10949
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
10950
|
+
font-size: var(--swc-font-size-75);
|
|
10951
|
+
}
|
|
10952
|
+
.value {
|
|
10953
|
+
font-size: var(--swc-font-size-300);
|
|
10954
|
+
font-weight: var(--swc-bold-font-weight);
|
|
10955
|
+
font-variant-numeric: tabular-nums;
|
|
10956
|
+
}
|
|
10957
|
+
.unit,
|
|
10958
|
+
.delta {
|
|
10959
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
10960
|
+
margin-inline-start: var(--swc-spacing-75);
|
|
10961
|
+
}
|
|
10962
|
+
svg {
|
|
10963
|
+
display: block;
|
|
10964
|
+
width: 100%;
|
|
10965
|
+
height: var(--swc-component-height-100);
|
|
10966
|
+
}
|
|
10967
|
+
polyline {
|
|
10968
|
+
fill: none;
|
|
10969
|
+
stroke: var(--swc-accent-visual-color);
|
|
10970
|
+
stroke-width: 1.5;
|
|
10971
|
+
}
|
|
10972
|
+
swc-meter {
|
|
10973
|
+
width: 100%;
|
|
10974
|
+
}
|
|
10975
|
+
.alerts {
|
|
10976
|
+
display: grid;
|
|
10977
|
+
gap: var(--swc-spacing-75);
|
|
10978
|
+
margin: 0;
|
|
10979
|
+
padding: 0;
|
|
10980
|
+
list-style: none;
|
|
10981
|
+
}
|
|
10982
|
+
.alert {
|
|
10983
|
+
display: grid;
|
|
10984
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
10985
|
+
gap: var(--swc-spacing-100);
|
|
10986
|
+
align-items: start;
|
|
10987
|
+
border-radius: var(--swc-corner-radius-medium-default);
|
|
10988
|
+
padding: var(--swc-spacing-100) var(--swc-spacing-200);
|
|
10989
|
+
background: var(--swc-notice-subtle-background-color-default);
|
|
10990
|
+
}
|
|
10991
|
+
.alert[data-severity='error'] {
|
|
10992
|
+
background: var(--swc-negative-subtle-background-color-default);
|
|
10993
|
+
}
|
|
10994
|
+
.alert swc-icon-alert-triangle {
|
|
10995
|
+
color: var(--swc-icon-color-notice);
|
|
10996
|
+
}
|
|
10997
|
+
.alert swc-icon-alert-diamond {
|
|
10998
|
+
color: var(--swc-icon-color-negative);
|
|
10999
|
+
}
|
|
11000
|
+
.alert .detail {
|
|
11001
|
+
display: block;
|
|
11002
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
11003
|
+
}
|
|
11004
|
+
.alert > div {
|
|
11005
|
+
min-width: 0;
|
|
11006
|
+
}
|
|
11007
|
+
.alert .command {
|
|
11008
|
+
display: flex;
|
|
11009
|
+
align-items: center;
|
|
11010
|
+
gap: var(--swc-spacing-100);
|
|
11011
|
+
margin-block-start: var(--swc-spacing-75);
|
|
11012
|
+
padding-inline-start: var(--swc-spacing-100);
|
|
11013
|
+
border-radius: var(--swc-corner-radius-medium-default);
|
|
11014
|
+
background: var(--swc-background-layer-1-color);
|
|
11015
|
+
}
|
|
11016
|
+
.alert code {
|
|
11017
|
+
flex: 1;
|
|
11018
|
+
min-width: 0;
|
|
11019
|
+
overflow-x: auto;
|
|
11020
|
+
white-space: nowrap;
|
|
11021
|
+
font-family: var(--swc-code-font-family-stack);
|
|
11022
|
+
font-size: var(--swc-font-size-75);
|
|
11023
|
+
color: var(--swc-code-color);
|
|
11024
|
+
}
|
|
11025
|
+
.alert .lead {
|
|
11026
|
+
display: block;
|
|
11027
|
+
margin-block-start: var(--swc-spacing-75);
|
|
11028
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
11029
|
+
}
|
|
11030
|
+
.alert .uncopied {
|
|
11031
|
+
display: block;
|
|
11032
|
+
color: var(--swc-negative-content-color-default);
|
|
11033
|
+
}
|
|
11034
|
+
.sections {
|
|
11035
|
+
display: grid;
|
|
11036
|
+
margin: 0;
|
|
11037
|
+
padding: 0;
|
|
11038
|
+
list-style: none;
|
|
11039
|
+
}
|
|
11040
|
+
.section {
|
|
11041
|
+
display: grid;
|
|
11042
|
+
}
|
|
11043
|
+
.line {
|
|
11044
|
+
display: flex;
|
|
11045
|
+
flex-wrap: wrap;
|
|
11046
|
+
align-items: center;
|
|
11047
|
+
gap: var(--swc-spacing-100);
|
|
11048
|
+
min-height: var(--swc-component-height-100);
|
|
11049
|
+
padding: var(--swc-spacing-50) 0;
|
|
11050
|
+
}
|
|
11051
|
+
.toggle {
|
|
11052
|
+
all: unset;
|
|
11053
|
+
box-sizing: border-box;
|
|
11054
|
+
flex: 1 1 auto;
|
|
11055
|
+
min-width: 0;
|
|
11056
|
+
display: flex;
|
|
11057
|
+
align-items: center;
|
|
11058
|
+
gap: var(--swc-spacing-75);
|
|
11059
|
+
cursor: pointer;
|
|
11060
|
+
border-radius: var(--swc-corner-radius-small-default);
|
|
11061
|
+
}
|
|
11062
|
+
.toggle:focus-visible {
|
|
11063
|
+
outline: var(--swc-focus-indicator-thickness) solid var(--swc-focus-indicator-color);
|
|
11064
|
+
outline-offset: var(--swc-focus-ring-gap);
|
|
11065
|
+
}
|
|
11066
|
+
.chevron {
|
|
11067
|
+
flex: none;
|
|
11068
|
+
width: var(--swc-component-height-50);
|
|
11069
|
+
display: inline-flex;
|
|
11070
|
+
justify-content: center;
|
|
11071
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
11072
|
+
}
|
|
11073
|
+
.toggle[aria-expanded='true'] swc-icon-chevron-right {
|
|
11074
|
+
transform: rotate(90deg);
|
|
11075
|
+
}
|
|
11076
|
+
:host(:dir(rtl)) .toggle[aria-expanded='false'] swc-icon-chevron-right {
|
|
11077
|
+
transform: scaleX(-1);
|
|
11078
|
+
}
|
|
11079
|
+
.line .name {
|
|
11080
|
+
flex: 1 1 auto;
|
|
11081
|
+
min-width: 0;
|
|
11082
|
+
}
|
|
11083
|
+
.line .num {
|
|
11084
|
+
font-weight: var(--swc-bold-font-weight);
|
|
11085
|
+
font-variant-numeric: tabular-nums;
|
|
11086
|
+
}
|
|
11087
|
+
.rows {
|
|
11088
|
+
display: grid;
|
|
11089
|
+
gap: var(--swc-spacing-50);
|
|
11090
|
+
margin: 0 0 var(--swc-spacing-100);
|
|
11091
|
+
padding: 0;
|
|
11092
|
+
padding-inline-start: calc(var(--swc-component-height-50) + var(--swc-spacing-75));
|
|
11093
|
+
list-style: none;
|
|
11094
|
+
}
|
|
11095
|
+
.row {
|
|
11096
|
+
display: grid;
|
|
11097
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
11098
|
+
align-items: center;
|
|
11099
|
+
column-gap: var(--swc-spacing-100);
|
|
11100
|
+
padding-inline-start: calc(var(--depth, 0) * var(--swc-spacing-300));
|
|
11101
|
+
}
|
|
11102
|
+
.row swc-status-light {
|
|
11103
|
+
min-width: 0;
|
|
11104
|
+
overflow-wrap: break-word;
|
|
11105
|
+
}
|
|
11106
|
+
.row .badges {
|
|
11107
|
+
grid-column: 2;
|
|
11108
|
+
grid-row: 1 / span 2;
|
|
11109
|
+
align-self: start;
|
|
11110
|
+
display: flex;
|
|
11111
|
+
flex-wrap: wrap;
|
|
11112
|
+
justify-content: end;
|
|
11113
|
+
gap: var(--swc-spacing-50);
|
|
11114
|
+
}
|
|
11115
|
+
.row swc-status-light {
|
|
11116
|
+
grid-column: 1;
|
|
11117
|
+
grid-row: 1;
|
|
11118
|
+
}
|
|
11119
|
+
.row .meta {
|
|
11120
|
+
grid-column: 1;
|
|
11121
|
+
grid-row: 2;
|
|
11122
|
+
padding-inline-start: var(--swc-spacing-300);
|
|
11123
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
11124
|
+
font-size: var(--swc-font-size-75);
|
|
11125
|
+
overflow-wrap: break-word;
|
|
11126
|
+
}
|
|
11127
|
+
`
|
|
11128
|
+
];
|
|
11129
|
+
subscribe(model) {
|
|
11130
|
+
return [model.monitor.on("snapshot", () => this.requestUpdate())];
|
|
11131
|
+
}
|
|
11132
|
+
focus() {
|
|
11133
|
+
this.focusOn(".bar swc-action-button");
|
|
11134
|
+
}
|
|
11135
|
+
#vital(vital) {
|
|
11136
|
+
if (vital.ratio !== void 0) {
|
|
11137
|
+
return b`<div class="vital" data-id=${vital.id}>
|
|
11138
|
+
<swc-meter
|
|
11139
|
+
size="s"
|
|
11140
|
+
variant=${meterVariant2(vital.ratio)}
|
|
11141
|
+
value=${Math.round(vital.ratio * 100)}
|
|
11142
|
+
value-label=${vital.value}
|
|
11143
|
+
><span slot="label">${vital.label}</span>${vital.unit ? b`<span slot="description">${vital.unit}</span>` : A}</swc-meter
|
|
11144
|
+
>
|
|
11145
|
+
</div>`;
|
|
11146
|
+
}
|
|
11147
|
+
const line = vital.series ? sparkline(vital.series) : "";
|
|
11148
|
+
return b`<div class="vital" data-id=${vital.id}>
|
|
11149
|
+
<div class="label">${vital.label}</div>
|
|
11150
|
+
<div><span class="value">${vital.value}</span>${vital.unit ? b`<span class="unit">${vital.unit}</span>` : A}${vital.delta ? b`<span class="delta">${vital.delta}</span>` : A}</div>
|
|
11151
|
+
${line ? b`<svg viewBox="0 0 120 28" preserveAspectRatio="none" aria-hidden="true">${w`<polyline points=${line}></polyline>`}</svg>` : A}
|
|
11152
|
+
</div>`;
|
|
11153
|
+
}
|
|
11154
|
+
#alert(alert) {
|
|
11155
|
+
const error = alert.severity === "error";
|
|
11156
|
+
return b`<li class="alert" data-severity=${alert.severity}>
|
|
11157
|
+
${error ? b`<swc-icon-alert-diamond size="s" aria-hidden="true"></swc-icon-alert-diamond>` : b`<swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle>`}
|
|
11158
|
+
<div><span class="sr">${error ? "Error: " : "Warning: "}</span><strong>${alert.title}</strong><span class="detail">${alert.detail}</span>${alert.command ? this.#command(alert.id, alert.command, alert.commandLabel ?? "Run") : A}</div>
|
|
11159
|
+
</li>`;
|
|
11160
|
+
}
|
|
11161
|
+
#command(id, text2, label) {
|
|
11162
|
+
const copied = this.copied?.id === id && this.copied.text === text2 ? this.copied : null;
|
|
11163
|
+
return b`<span class="lead">${label}:</span><div class="command" data-command><code>${text2}</code><swc-action-button size="s" quiet data-action="copy-command" accessible-label=${copied?.done ? "Copied" : "Copy command"} @click=${() => this.#copy(id, text2)}><swc-icon-copy slot="icon"></swc-icon-copy>${copied?.done ? "Copied" : "Copy"}</swc-action-button></div>${copied && !copied.done ? b`<span class="uncopied" role="alert" data-error="copy">Couldn’t copy. Select the command and copy it.</span>` : A}`;
|
|
11164
|
+
}
|
|
11165
|
+
async #copy(id, text2) {
|
|
11166
|
+
this.copied = { id, text: text2, done: await copyText(text2) };
|
|
11167
|
+
}
|
|
11168
|
+
#open(id) {
|
|
11169
|
+
this.dispatchEvent(
|
|
11170
|
+
new CustomEvent("show-surface", { detail: { id }, bubbles: true, composed: true })
|
|
11171
|
+
);
|
|
11172
|
+
}
|
|
11173
|
+
#row(row) {
|
|
11174
|
+
const depth = indent(row.depth);
|
|
11175
|
+
return b`<li class="row" data-id=${row.id ?? A} data-status=${row.status} data-depth=${depth || A} style=${depth ? `--depth: ${depth}` : A}>
|
|
11176
|
+
<swc-status-light size="s" variant=${rowLights[row.status]}><span class="sr">${rowSpoken[row.status]}: </span>${row.name.split(/(?<=\/)/).map((part2, i26) => i26 ? b`<wbr>${part2}` : part2)}</swc-status-light>
|
|
11177
|
+
<span class="badges">${(row.badges ?? []).map((badge) => b`<swc-badge size="s" variant="neutral" subtle>${badge}</swc-badge>`)}</span>
|
|
11178
|
+
${row.meta ? b`<span class="meta">${row.meta}</span>` : A}
|
|
11179
|
+
</li>`;
|
|
11180
|
+
}
|
|
11181
|
+
#section(section) {
|
|
11182
|
+
const flag = attention(section);
|
|
11183
|
+
const surface2 = surfaces[section.id];
|
|
11184
|
+
const rows = section.rows.length > 0;
|
|
11185
|
+
const open = rows && (this.expanded[section.id] ?? flag !== null);
|
|
11186
|
+
const list5 = `rows-${section.id}`;
|
|
11187
|
+
return b`<li class="section" data-id=${section.id} data-open=${open ? "" : A}>
|
|
11188
|
+
<div class="line">
|
|
11189
|
+
${rows ? b`<button class="toggle" aria-expanded=${open ? "true" : "false"} aria-controls=${open ? list5 : A} @click=${() => {
|
|
11190
|
+
this.expanded = { ...this.expanded, [section.id]: !open };
|
|
11191
|
+
}}><span class="chevron"><swc-icon-chevron-right size="s" aria-hidden="true"></swc-icon-chevron-right></span><span class="name">${section.label}</span></button>` : b`<span class="chevron"></span><span class="name">${section.label}</span>`}
|
|
11192
|
+
${flag ? b`<swc-badge size="s" variant=${flag.variant} subtle>${flag.text}</swc-badge>` : A}
|
|
11193
|
+
<span class="num">${section.rows.length}</span>
|
|
11194
|
+
${surface2 ? b`<swc-action-button size="s" quiet accessible-label=${`Open ${section.label}`} @click=${() => this.#open(surface2)}
|
|
11195
|
+
>Open</swc-action-button
|
|
11196
|
+
>` : A}
|
|
11197
|
+
</div>
|
|
11198
|
+
${open ? b`<ul class="rows" id=${list5} aria-label=${section.label}>${c(
|
|
11199
|
+
section.rows,
|
|
11200
|
+
(row, i26) => row.id ?? i26,
|
|
11201
|
+
(row) => this.#row(row)
|
|
11202
|
+
)}</ul>` : A}
|
|
11203
|
+
</li>`;
|
|
11204
|
+
}
|
|
11205
|
+
render() {
|
|
11206
|
+
const snapshot2 = this.model?.monitor.snapshot();
|
|
11207
|
+
return b`<div class="bar">
|
|
11208
|
+
<span class="heading"><strong>Live monitor</strong><span>${snapshot2 ? `Updated ${new Date(snapshot2.updatedAt).toISOString().slice(11, 19)} UTC` : "No data"}</span></span>
|
|
11209
|
+
<swc-action-button size="s" quiet @click=${() => this.model?.monitor.resync()}><swc-icon-refresh slot="icon"></swc-icon-refresh>Re-sync</swc-action-button>
|
|
11210
|
+
</div>
|
|
11211
|
+
<div class="body">
|
|
11212
|
+
${snapshot2 ? b`<div class="vitals">${snapshot2.vitals.map((vital) => this.#vital(vital))}</div>
|
|
11213
|
+
${snapshot2.alerts.length ? b`<ul class="alerts" aria-label="Alerts">${snapshot2.alerts.map((alert) => this.#alert(alert))}</ul>` : A}
|
|
11214
|
+
<ul class="sections" aria-label="Activity">${snapshot2.sections.map((section) => this.#section(section))}</ul>` : A}
|
|
11215
|
+
</div>`;
|
|
11216
|
+
}
|
|
11217
|
+
};
|
|
11218
|
+
|
|
10739
11219
|
// src/app/agents.ts
|
|
10740
11220
|
function ordered(agents) {
|
|
10741
11221
|
const cones = agents.filter((agent) => agent.kind === "cone");
|
|
10742
11222
|
return cones.flatMap((cone) => [cone, ...agents.filter((agent) => agent.parentId === cone.id)]);
|
|
10743
11223
|
}
|
|
11224
|
+
function creatable(model) {
|
|
11225
|
+
return Boolean(model?.agent.createCone) && !watchOnly(model);
|
|
11226
|
+
}
|
|
11227
|
+
async function createCone(model, trigger2) {
|
|
11228
|
+
const port = model.agent;
|
|
11229
|
+
const create3 = port.createCone?.bind(port);
|
|
11230
|
+
if (!create3) return void 0;
|
|
11231
|
+
let created;
|
|
11232
|
+
await prompt({
|
|
11233
|
+
title: "New cone",
|
|
11234
|
+
label: "Name",
|
|
11235
|
+
action: "Create",
|
|
11236
|
+
trigger: trigger2,
|
|
11237
|
+
submit: async (name) => {
|
|
11238
|
+
if (watchOnly(model)) return;
|
|
11239
|
+
created = await create3(name);
|
|
11240
|
+
}
|
|
11241
|
+
});
|
|
11242
|
+
if (created) port.select(created.id);
|
|
11243
|
+
return created;
|
|
11244
|
+
}
|
|
11245
|
+
function fillShown(fill2) {
|
|
11246
|
+
return fill2 >= 0.5;
|
|
11247
|
+
}
|
|
10744
11248
|
var SliccAgents = class extends ModelElement {
|
|
10745
11249
|
static properties = { ...ModelElement.properties, errors: { state: true } };
|
|
10746
11250
|
constructor() {
|
|
@@ -10758,6 +11262,10 @@ var SliccAgents = class extends ModelElement {
|
|
|
10758
11262
|
color: var(--swc-neutral-content-color-default);
|
|
10759
11263
|
font-size: var(--swc-font-size-100);
|
|
10760
11264
|
}
|
|
11265
|
+
.actions {
|
|
11266
|
+
display: flex;
|
|
11267
|
+
padding: var(--swc-spacing-75) var(--swc-spacing-100) 0;
|
|
11268
|
+
}
|
|
10761
11269
|
ul {
|
|
10762
11270
|
list-style: none;
|
|
10763
11271
|
margin: 0;
|
|
@@ -10773,6 +11281,7 @@ var SliccAgents = class extends ModelElement {
|
|
|
10773
11281
|
cursor: pointer;
|
|
10774
11282
|
}
|
|
10775
11283
|
li.scoop {
|
|
11284
|
+
grid-template-areas: 'name unread fill drop' 'status unread fill drop' 'error error error error';
|
|
10776
11285
|
padding-inline-start: calc(var(--swc-spacing-200) + var(--swc-spacing-300));
|
|
10777
11286
|
}
|
|
10778
11287
|
li:hover {
|
|
@@ -10820,12 +11329,21 @@ var SliccAgents = class extends ModelElement {
|
|
|
10820
11329
|
min-width: 4ch;
|
|
10821
11330
|
text-align: end;
|
|
10822
11331
|
}
|
|
11332
|
+
.fill[data-variant='notice'] {
|
|
11333
|
+
color: var(--swc-notice-color-1000);
|
|
11334
|
+
font-weight: var(--swc-bold-font-weight);
|
|
11335
|
+
}
|
|
11336
|
+
.fill[data-variant='negative'] {
|
|
11337
|
+
color: var(--swc-negative-color-1000);
|
|
11338
|
+
font-weight: var(--swc-bold-font-weight);
|
|
11339
|
+
}
|
|
10823
11340
|
swc-status-light {
|
|
10824
11341
|
grid-area: status;
|
|
10825
11342
|
justify-self: start;
|
|
10826
11343
|
}
|
|
10827
11344
|
.drop {
|
|
10828
11345
|
grid-area: drop;
|
|
11346
|
+
margin-block: calc(-1 * var(--swc-spacing-100));
|
|
10829
11347
|
visibility: hidden;
|
|
10830
11348
|
}
|
|
10831
11349
|
li:hover .drop,
|
|
@@ -10977,7 +11495,8 @@ var SliccAgents = class extends ModelElement {
|
|
|
10977
11495
|
const error = this.errors[agent.id];
|
|
10978
11496
|
const model = this.model;
|
|
10979
11497
|
const title = agent.kind === "cone" ? agentTitle(model, agent) : null;
|
|
10980
|
-
const
|
|
11498
|
+
const unread = selected ? 0 : agent.unread;
|
|
11499
|
+
const label = `${coneLabel(model, agent)}: ${statusLabel[agent.status]}, ${percent(agent.contextFill)} context${unread ? `, ${unread} unread` : ""}${error ? `. ${error}` : ""}`;
|
|
10981
11500
|
return b`<li
|
|
10982
11501
|
role="option"
|
|
10983
11502
|
class=${agent.kind}
|
|
@@ -10991,19 +11510,32 @@ var SliccAgents = class extends ModelElement {
|
|
|
10991
11510
|
>
|
|
10992
11511
|
<span class="name">${agent.name}</span>
|
|
10993
11512
|
${title === null ? A : b`<span class="title">${title || untitled}</span>`}
|
|
10994
|
-
${
|
|
10995
|
-
|
|
11513
|
+
${unread ? b`<swc-badge class="unread" size="s" variant="accent">${unread}</swc-badge>` : A}
|
|
11514
|
+
${fillShown(agent.contextFill) ? b`<span class="fill" data-variant=${meterVariant2(agent.contextFill)}>${percent(agent.contextFill)}</span>` : A}
|
|
10996
11515
|
${statusLight(agent.status)}
|
|
10997
11516
|
${this.#dropButton(agent)}
|
|
10998
11517
|
${this.#deleteButton(agent)}
|
|
10999
11518
|
${error ? b`<span class="error">${error}</span>` : A}
|
|
11000
11519
|
</li>`;
|
|
11001
11520
|
}
|
|
11521
|
+
async #newCone(trigger2) {
|
|
11522
|
+
if (!await createCone(this.model, trigger2)) return;
|
|
11523
|
+
await this.updateComplete;
|
|
11524
|
+
this.focus();
|
|
11525
|
+
}
|
|
11526
|
+
#actions() {
|
|
11527
|
+
if (!creatable(this.model)) return A;
|
|
11528
|
+
return b`<div class="actions">
|
|
11529
|
+
<swc-action-button size="s" quiet data-action="new-cone" @click=${(event2) => void this.#newCone(event2.currentTarget)}>
|
|
11530
|
+
<swc-icon-add slot="icon"></swc-icon-add>New cone
|
|
11531
|
+
</swc-action-button>
|
|
11532
|
+
</div>`;
|
|
11533
|
+
}
|
|
11002
11534
|
render() {
|
|
11003
11535
|
const agents = ordered(this.model?.agent.list() ?? []);
|
|
11004
11536
|
const active = this.model?.agent.active() ?? "";
|
|
11005
11537
|
const errors = Object.values(this.errors);
|
|
11006
|
-
return b
|
|
11538
|
+
return b`${this.#actions()}<ul role="listbox" aria-label="Cones and scoops" @keydown=${this.#keydown}>
|
|
11007
11539
|
${agents.map((agent) => this.#row(agent, active))}
|
|
11008
11540
|
</ul>
|
|
11009
11541
|
<div class="sr" role="status">${errors.at(-1) ?? ""}</div>`;
|
|
@@ -11025,7 +11557,7 @@ var i17 = e2(class extends i3 {
|
|
|
11025
11557
|
|
|
11026
11558
|
// node_modules/lit-html/static.js
|
|
11027
11559
|
var a12 = /* @__PURE__ */ Symbol.for("");
|
|
11028
|
-
var
|
|
11560
|
+
var o53 = (t90) => {
|
|
11029
11561
|
if (t90?.r === a12) return t90?._$litStatic$;
|
|
11030
11562
|
};
|
|
11031
11563
|
var s9 = (t90) => ({ _$litStatic$: t90, r: a12 });
|
|
@@ -11036,7 +11568,7 @@ var n28 = (t90) => (r40, ...e120) => {
|
|
|
11036
11568
|
const n37 = [], u27 = [];
|
|
11037
11569
|
let c28, $6 = 0, f11 = false;
|
|
11038
11570
|
for (; $6 < a23; ) {
|
|
11039
|
-
for (c28 = r40[$6]; $6 < a23 && void 0 !== (i26 = e120[$6], s19 =
|
|
11571
|
+
for (c28 = r40[$6]; $6 < a23 && void 0 !== (i26 = e120[$6], s19 = o53(i26)); ) c28 += s19 + r40[++$6], f11 = true;
|
|
11040
11572
|
$6 !== a23 && u27.push(i26), n37.push(c28), $6++;
|
|
11041
11573
|
}
|
|
11042
11574
|
if ($6 === a23 && n37.push(r40[a23]), f11) {
|
|
@@ -11170,150 +11702,132 @@ async function grammar(kind, name, version2, remote = grammarCdn, importer = (ur
|
|
|
11170
11702
|
}
|
|
11171
11703
|
|
|
11172
11704
|
// node_modules/@adobe/spectrum-wc-icons/dist/Cloud.js
|
|
11173
|
-
function
|
|
11705
|
+
function e82() {
|
|
11174
11706
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M15.407 17H3.717a3.456 3.456 0 0 1-3.45-3.452 3.45 3.45 0 0 1 2.323-3.25 4 4 0 0 1-.065-.702c0-2.18 1.81-3.953 4.034-3.953q.42 0 .831.087c.637-1.958 2.476-3.346 4.589-3.346a4.85 4.85 0 0 1 4.844 4.844q0 .659-.187 1.298a4.32 4.32 0 0 1 3.103 4.142A4.337 4.337 0 0 1 15.407 17M6.559 7.143c-1.397 0-2.534 1.1-2.534 2.453q.001.5.206.965a.75.75 0 0 1-.637 1.051 1.95 1.95 0 0 0-1.828 1.936c0 1.076.876 1.952 1.952 1.952h11.689a2.835 2.835 0 0 0 2.832-2.832 2.826 2.826 0 0 0-2.682-2.814.75.75 0 0 1-.625-1.095c.26-.5.39-1.015.39-1.531 0-1.844-1.5-3.344-3.344-3.344-1.662 0-3.08 1.252-3.297 2.912a.75.75 0 0 1-1.054.585 2.6 2.6 0 0 0-1.068-.238"/></svg>';
|
|
11175
11707
|
}
|
|
11176
11708
|
|
|
11177
11709
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cloud.js
|
|
11178
|
-
var
|
|
11710
|
+
var o54 = class extends a10 {
|
|
11179
11711
|
static get styles() {
|
|
11180
11712
|
return [t40];
|
|
11181
11713
|
}
|
|
11182
11714
|
render() {
|
|
11183
11715
|
return b`
|
|
11184
|
-
<span class="swc-Icon">${o16(
|
|
11716
|
+
<span class="swc-Icon">${o16(e82())}</span>
|
|
11185
11717
|
`;
|
|
11186
11718
|
}
|
|
11187
11719
|
};
|
|
11188
|
-
e25("swc-icon-cloud",
|
|
11720
|
+
e25("swc-icon-cloud", o54);
|
|
11189
11721
|
|
|
11190
11722
|
// node_modules/@adobe/spectrum-wc-icons/dist/CloudStateError.js
|
|
11191
|
-
function
|
|
11723
|
+
function e83() {
|
|
11192
11724
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M15.5 9.021a4.5 4.5 0 1 0 0 9c2.485 0 4.48-2.015 4.48-4.5s-1.995-4.5-4.48-4.5m.95 6.895c0 .472-.425.855-.95.855s-.95-.383-.95-.855v-.289c0-.472.425-.856.95-.856s.95.384.95.856zm-.075-2.495c0 .414-.392.75-.875.75s-.875-.336-.875-.75v-2.65c0-.414.392-.75.875-.75s.875.336.875.75z"/><path fill="var(--swc-icon-color, currentColor)" d="M9.25 16.998H3.718a3.455 3.455 0 0 1-3.452-3.451 3.45 3.45 0 0 1 2.324-3.25 4 4 0 0 1-.065-.703c0-2.18 1.81-3.952 4.034-3.952q.42 0 .83.087c.638-1.958 2.477-3.347 4.59-3.347a4.826 4.826 0 0 1 4.818 4.35.75.75 0 1 1-1.492.15 3.33 3.33 0 0 0-3.326-3c-1.664 0-3.08 1.252-3.297 2.912a.752.752 0 0 1-1.054.586 2.6 2.6 0 0 0-1.07-.238c-1.396 0-2.533 1.1-2.533 2.452q.001.5.206.965a.75.75 0 0 1-.637 1.051 1.95 1.95 0 0 0-1.828 1.937c0 1.076.876 1.951 1.952 1.951H9.25a.75.75 0 0 1 0 1.5"/></svg>';
|
|
11193
11725
|
}
|
|
11194
11726
|
|
|
11195
11727
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cloud-state-error.js
|
|
11196
|
-
var
|
|
11728
|
+
var o55 = class extends a10 {
|
|
11197
11729
|
static get styles() {
|
|
11198
11730
|
return [t40];
|
|
11199
11731
|
}
|
|
11200
11732
|
render() {
|
|
11201
11733
|
return b`
|
|
11202
|
-
<span class="swc-Icon">${o16(
|
|
11734
|
+
<span class="swc-Icon">${o16(e83())}</span>
|
|
11203
11735
|
`;
|
|
11204
11736
|
}
|
|
11205
11737
|
};
|
|
11206
|
-
e25("swc-icon-cloud-state-error",
|
|
11738
|
+
e25("swc-icon-cloud-state-error", o55);
|
|
11207
11739
|
|
|
11208
11740
|
// node_modules/@adobe/spectrum-wc-icons/dist/CloudStateOnline.js
|
|
11209
|
-
function
|
|
11741
|
+
function e84() {
|
|
11210
11742
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M9.25 17.002H3.718A3.455 3.455 0 0 1 .266 13.55 3.45 3.45 0 0 1 2.59 10.3a4 4 0 0 1-.065-.703c0-2.18 1.81-3.952 4.034-3.952q.42 0 .83.087c.638-1.959 2.477-3.347 4.59-3.347a4.85 4.85 0 0 1 4.843 4.844q0 .464-.093.92a.745.745 0 0 1-.885.583.75.75 0 0 1-.584-.884q.061-.307.062-.619c0-1.844-1.5-3.344-3.343-3.344-1.664 0-3.08 1.252-3.297 2.912a.752.752 0 0 1-1.054.586 2.6 2.6 0 0 0-1.07-.238c-1.396 0-2.533 1.1-2.533 2.452q.001.5.206.965a.75.75 0 0 1-.637 1.051 1.95 1.95 0 0 0-1.828 1.937c0 1.076.876 1.951 1.952 1.951H9.25a.75.75 0 0 1 0 1.5"/><path fill="var(--swc-icon-color, currentColor)" d="M18.503 13.434a.75.75 0 0 1-.53-.22 4.88 4.88 0 0 0-3.472-1.442h-.006a4.87 4.87 0 0 0-3.462 1.433.75.75 0 1 1-1.06-1.06 6.35 6.35 0 0 1 4.522-1.873h.007c1.712.002 3.32.67 4.531 1.881a.75.75 0 0 1-.53 1.28"/><path fill="var(--swc-icon-color, currentColor)" d="M16.384 15.544a.75.75 0 0 1-.53-.22 1.916 1.916 0 0 0-2.706-.004.75.75 0 1 1-1.06-1.06 3.4 3.4 0 0 1 2.41-.998h.003a3.4 3.4 0 0 1 2.413 1.002.75.75 0 0 1-.53 1.28"/><path fill="var(--swc-icon-color, currentColor)" d="M15.136 17.64a.897.897 0 0 1-1.27.001.9.9 0 1 1 1.27-.001" data-name="Path 1027855"/></svg>';
|
|
11211
11743
|
}
|
|
11212
11744
|
|
|
11213
11745
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cloud-state-online.js
|
|
11214
|
-
var
|
|
11746
|
+
var o56 = class extends a10 {
|
|
11215
11747
|
static get styles() {
|
|
11216
11748
|
return [t40];
|
|
11217
11749
|
}
|
|
11218
11750
|
render() {
|
|
11219
11751
|
return b`
|
|
11220
|
-
<span class="swc-Icon">${o16(
|
|
11752
|
+
<span class="swc-Icon">${o16(e84())}</span>
|
|
11221
11753
|
`;
|
|
11222
11754
|
}
|
|
11223
11755
|
};
|
|
11224
|
-
e25("swc-icon-cloud-state-online",
|
|
11756
|
+
e25("swc-icon-cloud-state-online", o56);
|
|
11225
11757
|
|
|
11226
11758
|
// node_modules/@adobe/spectrum-wc-icons/dist/CloudStateSlowConnection.js
|
|
11227
|
-
function
|
|
11759
|
+
function e85() {
|
|
11228
11760
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M8.946 16.998H3.718a3.455 3.455 0 0 1-3.452-3.451 3.45 3.45 0 0 1 2.324-3.25 4 4 0 0 1-.065-.703c0-2.18 1.81-3.952 4.034-3.952q.42 0 .83.087c.638-1.958 2.477-3.347 4.59-3.347a4.826 4.826 0 0 1 4.818 4.35.75.75 0 1 1-1.492.15 3.33 3.33 0 0 0-3.326-3c-1.664 0-3.08 1.252-3.297 2.912a.752.752 0 0 1-1.054.586 2.6 2.6 0 0 0-1.07-.238c-1.396 0-2.533 1.1-2.533 2.452q.001.5.206.965a.75.75 0 0 1-.637 1.051 1.95 1.95 0 0 0-1.828 1.937c0 1.076.876 1.951 1.952 1.951h5.228a.75.75 0 0 1 0 1.5M19 16.271v-7a.75.75 0 0 0-1.5 0v7a.75.75 0 0 0 1.5 0m-3 0v-5a.75.75 0 0 0-1.5 0v5a.75.75 0 0 0 1.5 0"/><path fill="var(--swc-icon-color, currentColor)" d="M13 16.271v-3a.75.75 0 0 0-1.5 0v3a.75.75 0 0 0 1.5 0"/></svg>';
|
|
11229
11761
|
}
|
|
11230
11762
|
|
|
11231
11763
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cloud-state-slow-connection.js
|
|
11232
|
-
var
|
|
11764
|
+
var o57 = class extends a10 {
|
|
11233
11765
|
static get styles() {
|
|
11234
11766
|
return [t40];
|
|
11235
11767
|
}
|
|
11236
11768
|
render() {
|
|
11237
11769
|
return b`
|
|
11238
11770
|
<span class="swc-Icon">
|
|
11239
|
-
${o16(
|
|
11771
|
+
${o16(e85())}
|
|
11240
11772
|
</span>
|
|
11241
11773
|
`;
|
|
11242
11774
|
}
|
|
11243
11775
|
};
|
|
11244
|
-
e25("swc-icon-cloud-state-slow-connection",
|
|
11245
|
-
|
|
11246
|
-
// node_modules/@adobe/spectrum-wc-icons/dist/Copy.js
|
|
11247
|
-
function e84() {
|
|
11248
|
-
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M11.75 18h-7.5C3.01 18 2 16.99 2 15.75v-7.5C2 7.01 3.01 6 4.25 6a.75.75 0 0 1 0 1.5.75.75 0 0 0-.75.75v7.5c0 .413.337.75.75.75h7.5c.413 0 .75-.337.75-.75a.75.75 0 0 1 1.5 0c0 1.24-1.01 2.25-2.25 2.25m-5-13A.75.75 0 0 1 6 4.25C6 3.01 7.01 2 8.25 2a.75.75 0 0 1 0 1.5.75.75 0 0 0-.75.75.75.75 0 0 1-.75.75M13 3.5h-2A.75.75 0 0 1 11 2h2a.75.75 0 0 1 0 1.5"/><path fill="var(--swc-icon-color, currentColor)" d="M13 14h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5m2.75 0a.75.75 0 0 1 0-1.5c.413 0 .75-.337.75-.75a.75.75 0 0 1 1.5 0c0 1.24-1.01 2.25-2.25 2.25m1.5-9a.75.75 0 0 1-.75-.75.75.75 0 0 0-.75-.75.75.75 0 0 1 0-1.5C16.99 2 18 3.01 18 4.25a.75.75 0 0 1-.75.75m0 4.75A.75.75 0 0 1 16.5 9V7A.75.75 0 0 1 18 7v2a.75.75 0 0 1-.75.75m-10.5 0A.75.75 0 0 1 6 9V7a.75.75 0 0 1 1.5 0v2a.75.75 0 0 1-.75.75M8.25 14C7.01 14 6 12.99 6 11.75a.75.75 0 0 1 1.5 0c0 .413.337.75.75.75a.75.75 0 0 1 0 1.5"/></svg>';
|
|
11249
|
-
}
|
|
11250
|
-
|
|
11251
|
-
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-copy.js
|
|
11252
|
-
var o56 = class extends a10 {
|
|
11253
|
-
static get styles() {
|
|
11254
|
-
return [t40];
|
|
11255
|
-
}
|
|
11256
|
-
render() {
|
|
11257
|
-
return b`
|
|
11258
|
-
<span class="swc-Icon">${o16(e84())}</span>
|
|
11259
|
-
`;
|
|
11260
|
-
}
|
|
11261
|
-
};
|
|
11262
|
-
e25("swc-icon-copy", o56);
|
|
11776
|
+
e25("swc-icon-cloud-state-slow-connection", o57);
|
|
11263
11777
|
|
|
11264
11778
|
// node_modules/@adobe/spectrum-wc-icons/dist/InfoCircle.js
|
|
11265
|
-
function
|
|
11779
|
+
function e86() {
|
|
11266
11780
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10 18.75c-4.825 0-8.75-3.925-8.75-8.75S5.175 1.25 10 1.25s8.75 3.925 8.75 8.75-3.925 8.75-8.75 8.75m0-16c-3.998 0-7.25 3.252-7.25 7.25s3.252 7.25 7.25 7.25 7.25-3.252 7.25-7.25S13.998 2.75 10 2.75"/><path fill="var(--swc-icon-color, currentColor)" d="M10 5.26a.9.9 0 0 1 .627.229c.33.365.33.921 0 1.286a.87.87 0 0 1-.626.235.85.85 0 0 1-.633-.248.86.86 0 0 1-.242-.627.88.88 0 0 1 .228-.64A.86.86 0 0 1 10 5.26m0 9.803a.75.75 0 0 1-.75-.75V9.478a.75.75 0 0 1 1.5 0v4.835a.75.75 0 0 1-.75.75"/></svg>';
|
|
11267
11781
|
}
|
|
11268
11782
|
|
|
11269
11783
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-info-circle.js
|
|
11270
|
-
var
|
|
11784
|
+
var o58 = class extends a10 {
|
|
11271
11785
|
static get styles() {
|
|
11272
11786
|
return [t40];
|
|
11273
11787
|
}
|
|
11274
11788
|
render() {
|
|
11275
11789
|
return b`
|
|
11276
|
-
<span class="swc-Icon">${o16(
|
|
11790
|
+
<span class="swc-Icon">${o16(e86())}</span>
|
|
11277
11791
|
`;
|
|
11278
11792
|
}
|
|
11279
11793
|
};
|
|
11280
|
-
e25("swc-icon-info-circle",
|
|
11794
|
+
e25("swc-icon-info-circle", o58);
|
|
11281
11795
|
|
|
11282
11796
|
// node_modules/@adobe/spectrum-wc-icons/dist/Visibility.js
|
|
11283
|
-
function
|
|
11797
|
+
function e87() {
|
|
11284
11798
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10.034 16.662C5.143 16.662.75 12.273.75 10.2c0-1.685 2.598-4.55 5.347-5.898A8.95 8.95 0 0 1 9.99 3.35c5.158 0 9.26 4.919 9.26 6.85 0 2.072-4.36 6.46-9.216 6.46M10 4.85a7.44 7.44 0 0 0-3.24.797C4.155 6.923 2.25 9.397 2.25 10.2c0 1.144 3.68 4.96 7.784 4.96 4.069 0 7.716-3.816 7.716-4.96 0-1.05-3.481-5.35-7.75-5.35m-3.569.124h.01z"/><path fill="var(--swc-icon-color, currentColor)" d="M9.83 7.644c.222-.637-.474-1.26-1.1-1.01a3.5 3.5 0 0 0-1.283.88 3.565 3.565 0 0 0 4.697 5.315 3.54 3.54 0 0 0 1.317-1.833c.209-.684-.458-1.25-1.119-.976A1.904 1.904 0 0 1 9.85 8.943a1.88 1.88 0 0 1-.02-1.3"/></svg>';
|
|
11285
11799
|
}
|
|
11286
11800
|
|
|
11287
11801
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-visibility.js
|
|
11288
|
-
var
|
|
11802
|
+
var o59 = class extends a10 {
|
|
11289
11803
|
static get styles() {
|
|
11290
11804
|
return [t40];
|
|
11291
11805
|
}
|
|
11292
11806
|
render() {
|
|
11293
11807
|
return b`
|
|
11294
|
-
<span class="swc-Icon">${o16(
|
|
11808
|
+
<span class="swc-Icon">${o16(e87())}</span>
|
|
11295
11809
|
`;
|
|
11296
11810
|
}
|
|
11297
11811
|
};
|
|
11298
|
-
e25("swc-icon-visibility",
|
|
11812
|
+
e25("swc-icon-visibility", o59);
|
|
11299
11813
|
|
|
11300
11814
|
// node_modules/@adobe/spectrum-wc-icons/dist/VisibilityOff.js
|
|
11301
|
-
function
|
|
11815
|
+
function e88() {
|
|
11302
11816
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M9.966 16.683C5.11 16.683.75 12.294.75 10.222c0-.92.864-2.36 2.201-3.668A.75.75 0 1 1 4 7.626c-1.31 1.281-1.75 2.32-1.75 2.596 0 1.144 3.647 4.96 7.716 4.96a7.3 7.3 0 0 0 1.863-.251.756.756 0 0 1 .917.534c.106.4-.134.81-.534.917-.756.2-1.512.3-2.246.3m6.638-2.839a.75.75 0 0 1-.506-1.304c1.14-1.042 1.652-1.982 1.652-2.317 0-.802-1.904-3.277-4.51-4.552a7.4 7.4 0 0 0-3.25-.798 7 7 0 0 0-1.905.28.75.75 0 1 1-.416-1.441A8.4 8.4 0 0 1 10 3.371a8.95 8.95 0 0 1 3.907.954c2.742 1.343 5.343 4.21 5.343 5.896 0 .919-.8 2.199-2.14 3.424a.75.75 0 0 1-.506.197"/><path fill="var(--swc-icon-color, currentColor)" d="m18.78 17.741-5.778-5.778c.204-.296.358-.615.46-.946.208-.684-.46-1.25-1.12-.976-.495.206-.946.14-1.18.081L9.788 8.75a1.9 1.9 0 0 1 .04-1.085c.223-.637-.473-1.26-1.1-1.01a3.5 3.5 0 0 0-.677.358L2.28 1.241a.75.75 0 1 0-1.06 1.06l16.5 16.5a.747.747 0 0 0 1.06 0 .75.75 0 0 0 0-1.06M8.205 12.998a3.53 3.53 0 0 0 2.319.484L6.542 9.501a3.56 3.56 0 0 0 1.663 3.497"/></svg>';
|
|
11303
11817
|
}
|
|
11304
11818
|
|
|
11305
11819
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-visibility-off.js
|
|
11306
|
-
var
|
|
11820
|
+
var o60 = class extends a10 {
|
|
11307
11821
|
static get styles() {
|
|
11308
11822
|
return [t40];
|
|
11309
11823
|
}
|
|
11310
11824
|
render() {
|
|
11311
11825
|
return b`
|
|
11312
|
-
<span class="swc-Icon">${o16(
|
|
11826
|
+
<span class="swc-Icon">${o16(e88())}</span>
|
|
11313
11827
|
`;
|
|
11314
11828
|
}
|
|
11315
11829
|
};
|
|
11316
|
-
e25("swc-icon-visibility-off",
|
|
11830
|
+
e25("swc-icon-visibility-off", o60);
|
|
11317
11831
|
|
|
11318
11832
|
// node_modules/@adobe/spectrum-wc/dist/link.css
|
|
11319
11833
|
var link_default = '/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Standalone link presentation for native `<a href>` elements.\n *\n * Default anchor appearance inside `.swc-Typography--prose` and\n * `.swc-Typography--links` ships with `typography.css` (generated). Import this\n * stylesheet when authors need explicit BEM modifiers on anchors.\n *\n */\n\n.swc-Link {\n inline-size: -moz-fit-content;\n inline-size: fit-content;\n font-family: var(--swc-sans-font-family-stack);\n font-size: var(--swc-font-size-100);\n font-style: normal;\n font-weight: 400;\n line-height: 1.30;\n color: var(--swc-link-text-color-default, var(--swc-accent-color-900));\n -webkit-text-decoration: underline;\n text-decoration: underline;\n text-decoration-thickness: 1px;\n text-underline-offset: 1px;\n transition: color 130ms ease-in-out;\n\n &:hover {\n color: var(--swc-link-text-color-hover, var(--swc-accent-color-1000));\n }\n\n &:active {\n color: var(--swc-link-text-color-down, var(--swc-accent-color-1000));\n }\n\n &:focus-visible {\n color: var(--swc-link-text-color-focus, var(--swc-accent-color-1000));\n border-radius: 4px;\n outline: 2px solid var(--swc-link-focus-indicator-color, var(--swc-blue-800));\n outline-offset: 2px;\n }\n\n &:lang(ja),\n &:lang(zh),\n &:lang(ko) {\n line-height: 1.50;\n }\n}\n\n.swc-Link--standalone {\n font-weight: 500;\n}\n\n.swc-Link--secondary {\n --swc-link-text-color-default: var(--swc-gray-800);\n --swc-link-text-color-hover: var(--swc-gray-900);\n --swc-link-text-color-down: var(--swc-gray-900);\n --swc-link-text-color-focus: var(--swc-gray-900);\n}\n\n.swc-Link--staticWhite {\n --swc-link-text-color-default: var(--swc-white);\n --swc-link-text-color-hover: var(--swc-white);\n --swc-link-text-color-down: var(--swc-white);\n --swc-link-text-color-focus: var(--swc-white);\n --swc-link-focus-indicator-color: var(--swc-white);\n}\n\n.swc-Link--staticBlack {\n --swc-link-text-color-default: var(--swc-black);\n --swc-link-text-color-hover: var(--swc-black);\n --swc-link-text-color-down: var(--swc-black);\n --swc-link-text-color-focus: var(--swc-black);\n --swc-link-focus-indicator-color: var(--swc-black);\n}\n\n.swc-Link--quiet.swc-Link--standalone {\n -webkit-text-decoration: none;\n text-decoration: none;\n}\n\n.swc-Link--quiet.swc-Link--standalone:hover {\n -webkit-text-decoration: underline;\n text-decoration: underline;\n}\n';
|
|
@@ -11986,76 +12500,6 @@ function qrCode(text2, label) {
|
|
|
11986
12500
|
return b`<svg class="qr" viewBox="0 0 ${size4} ${size4}" role="img" aria-label=${label} shape-rendering="crispEdges" data-qr><rect width=${size4} height=${size4} fill="#fff"></rect><path d=${path} fill="#000"></path></svg>`;
|
|
11987
12501
|
}
|
|
11988
12502
|
|
|
11989
|
-
// src/app/reach.ts
|
|
11990
|
-
var command = "curl -fsSL https://get.sliccy.ai/slicc | sh";
|
|
11991
|
-
var startCommand = "slicc";
|
|
11992
|
-
var nodeCommand = "npx sliccy@next";
|
|
11993
|
-
var reachStyles = i`
|
|
11994
|
-
.command {
|
|
11995
|
-
display: flex;
|
|
11996
|
-
align-items: center;
|
|
11997
|
-
gap: var(--swc-spacing-100);
|
|
11998
|
-
padding: var(--swc-spacing-75) var(--swc-spacing-75) var(--swc-spacing-75) var(--swc-spacing-200);
|
|
11999
|
-
border-radius: var(--swc-corner-radius-medium-default);
|
|
12000
|
-
background: var(--swc-background-layer-1-color);
|
|
12001
|
-
}
|
|
12002
|
-
code {
|
|
12003
|
-
flex: 1;
|
|
12004
|
-
min-width: 0;
|
|
12005
|
-
overflow-wrap: break-word;
|
|
12006
|
-
word-break: normal;
|
|
12007
|
-
font-family: var(--swc-code-font-family-stack);
|
|
12008
|
-
font-size: var(--swc-font-size-75);
|
|
12009
|
-
color: var(--swc-code-color);
|
|
12010
|
-
user-select: all;
|
|
12011
|
-
}
|
|
12012
|
-
.commands {
|
|
12013
|
-
display: grid;
|
|
12014
|
-
gap: var(--swc-spacing-100);
|
|
12015
|
-
}
|
|
12016
|
-
.commands p {
|
|
12017
|
-
margin: 0;
|
|
12018
|
-
font-size: var(--swc-font-size-75);
|
|
12019
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
12020
|
-
}
|
|
12021
|
-
`;
|
|
12022
|
-
function block(text2, copied, copy, first2 = false) {
|
|
12023
|
-
const done2 = copied === text2;
|
|
12024
|
-
return b`<div class="command" data-command=${text2}>
|
|
12025
|
-
<code>${breakable(text2)}</code>
|
|
12026
|
-
<swc-action-button size="s" quiet data-action=${first2 ? "copy-command" : A} accessible-label=${done2 ? "Copied" : `Copy ${text2}`} @click=${() => copy(text2)}>
|
|
12027
|
-
<swc-icon-copy slot="icon"></swc-icon-copy>${done2 ? "Copied" : "Copy"}
|
|
12028
|
-
</swc-action-button>
|
|
12029
|
-
</div>`;
|
|
12030
|
-
}
|
|
12031
|
-
function breakable(text2) {
|
|
12032
|
-
return text2.split("/").map(
|
|
12033
|
-
(part2, index, parts2) => b`${part2}${index < parts2.length - 1 ? b`/<wbr />` : A}`
|
|
12034
|
-
);
|
|
12035
|
-
}
|
|
12036
|
-
function reach({ intro, extensionUrl, copied, uncopied, copy }) {
|
|
12037
|
-
return b`<p>${intro}</p>
|
|
12038
|
-
${extensionUrl ? b`<p><a class="swc-Link" href=${extensionUrl} target="_blank" rel="noopener noreferrer" data-action="install-extension">Install the Chrome extension</a></p>` : A}
|
|
12039
|
-
<p>To run slicc, enter this in a terminal:</p>
|
|
12040
|
-
<div class="commands">
|
|
12041
|
-
${block(command, copied, copy, true)}
|
|
12042
|
-
${block(startCommand, copied, copy)}
|
|
12043
|
-
</div>
|
|
12044
|
-
<div class="commands" data-commands="node">
|
|
12045
|
-
<p>With Node:</p>
|
|
12046
|
-
${block(nodeCommand, copied, copy)}
|
|
12047
|
-
</div>
|
|
12048
|
-
${uncopied ? b`<div class="error" role="alert" data-error="copy"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>Couldn’t copy. Select the command and copy it.</span></div>` : A}`;
|
|
12049
|
-
}
|
|
12050
|
-
async function copyText(text2) {
|
|
12051
|
-
try {
|
|
12052
|
-
await globalThis.navigator.clipboard.writeText(text2);
|
|
12053
|
-
return true;
|
|
12054
|
-
} catch {
|
|
12055
|
-
return false;
|
|
12056
|
-
}
|
|
12057
|
-
}
|
|
12058
|
-
|
|
12059
12503
|
// src/app/tray.ts
|
|
12060
12504
|
var connectionVariant = {
|
|
12061
12505
|
live: "positive",
|
|
@@ -13296,7 +13740,7 @@ var SliccNetwork = class extends ModelElement {
|
|
|
13296
13740
|
};
|
|
13297
13741
|
|
|
13298
13742
|
// src/app/panels.ts
|
|
13299
|
-
var
|
|
13743
|
+
var surfaces2 = [
|
|
13300
13744
|
{
|
|
13301
13745
|
id: "agents",
|
|
13302
13746
|
title: "Agents",
|
|
@@ -13410,7 +13854,7 @@ function screenClass(width) {
|
|
|
13410
13854
|
if (width < 1200) return "tablet";
|
|
13411
13855
|
return "desktop";
|
|
13412
13856
|
}
|
|
13413
|
-
function surface(id, items =
|
|
13857
|
+
function surface(id, items = surfaces2) {
|
|
13414
13858
|
return items.find((candidate) => candidate.id === id);
|
|
13415
13859
|
}
|
|
13416
13860
|
function create(tag3, model, params = {}) {
|
|
@@ -13557,7 +14001,7 @@ function openTerminal(dock, info, screen) {
|
|
|
13557
14001
|
}
|
|
13558
14002
|
return id;
|
|
13559
14003
|
}
|
|
13560
|
-
function defaultLayout(dock, screen, agent, items =
|
|
14004
|
+
function defaultLayout(dock, screen, agent, items = surfaces2, terminals = []) {
|
|
13561
14005
|
dock.clear();
|
|
13562
14006
|
const order = ["center", "left", "right"];
|
|
13563
14007
|
for (const side of order) {
|
|
@@ -17206,7 +17650,7 @@ ${swc_default}`));
|
|
|
17206
17650
|
var t47 = i`:host{display:block}*{box-sizing:border-box}.swc-Divider{--_swc-divider-thickness: var(--swc-divider-thickness, 2px);inline-size:100%;block-size:var(--_swc-divider-thickness);background-color:var(--swc-divider-background-color, var(--swc-gray-200));border-radius:var(--_swc-divider-thickness)}:host([size=\"s\"]){--swc-divider-thickness: 1px}:host([size=\"l\"]){--swc-divider-thickness: 4px;--swc-divider-background-color: var(--swc-gray-800)}.swc-Divider:not(.swc-Divider--vertical){min-inline-size:min(100%,200px)}:host([vertical]){align-self:stretch}.swc-Divider--vertical{inline-size:var(--_swc-divider-thickness);block-size:100%;min-block-size:min(100%,200px)}.swc-Divider--staticWhite{--swc-divider-background-color: rgba(255, 255, 255, .14)}.swc-Divider--staticWhite:where(.swc-Divider--sizeL){--swc-divider-background-color: rgba(255, 255, 255, .85)}.swc-Divider--staticBlack{--swc-divider-background-color: rgba(0, 0, 0, .12)}.swc-Divider--staticBlack:where(.swc-Divider--sizeL){--swc-divider-background-color: rgba(0, 0, 0, .84)}@media(forced-colors:active){.swc-Divider{--swc-divider-background-color: CanvasText}}`;
|
|
17207
17651
|
|
|
17208
17652
|
// node_modules/@adobe/spectrum-wc-core/dist/components/divider/Divider.types.js
|
|
17209
|
-
var
|
|
17653
|
+
var e89 = [
|
|
17210
17654
|
"s",
|
|
17211
17655
|
"m",
|
|
17212
17656
|
"l"
|
|
@@ -17215,7 +17659,7 @@ var t48 = ["white", "black"];
|
|
|
17215
17659
|
|
|
17216
17660
|
// node_modules/@adobe/spectrum-wc-core/dist/components/divider/Divider.base.js
|
|
17217
17661
|
var s10;
|
|
17218
|
-
var c18 = class extends i12(i9, { validSizes:
|
|
17662
|
+
var c18 = class extends i12(i9, { validSizes: e89 }) {
|
|
17219
17663
|
constructor(...e120) {
|
|
17220
17664
|
super(...e120), this.vertical = false;
|
|
17221
17665
|
}
|
|
@@ -17274,7 +17718,7 @@ e25("swc-divider", a13);
|
|
|
17274
17718
|
var t49 = i`:host([indeterminate]) .swc-LinearProgress-fill{inline-size:100%;min-inline-size:0;transform-origin:left;transition:none;animation:indeterminate-loop-ltr 1s cubic-bezier(.45,0,.4,1) infinite;will-change:transform;&:dir(rtl){animation-name:indeterminate-loop-rtl}}@keyframes indeterminate-loop-ltr{0%{transform:translate(-70%) scaleX(.7)}to{transform:translate(100%) scaleX(.7)}}@keyframes indeterminate-loop-rtl{0%{transform:translate(100%) scaleX(.7)}to{transform:translate(-70%) scaleX(.7)}}@media(prefers-reduced-motion:reduce){:host([indeterminate]) .swc-LinearProgress-fill{animation-duration:15s;animation-timing-function:linear}}`;
|
|
17275
17719
|
|
|
17276
17720
|
// node_modules/@adobe/spectrum-wc-core/dist/components/progress-bar/ProgressBar.base.js
|
|
17277
|
-
var
|
|
17721
|
+
var o61 = class extends m3(i12(i9, {
|
|
17278
17722
|
validSizes: s6,
|
|
17279
17723
|
defaultSize: "m"
|
|
17280
17724
|
})) {
|
|
@@ -17285,10 +17729,10 @@ var o60 = class extends m3(i12(i9, {
|
|
|
17285
17729
|
e24([n({
|
|
17286
17730
|
type: Boolean,
|
|
17287
17731
|
reflect: true
|
|
17288
|
-
})],
|
|
17732
|
+
})], o61.prototype, "indeterminate", void 0);
|
|
17289
17733
|
|
|
17290
17734
|
// node_modules/@adobe/spectrum-wc/dist/components/progress-bar/ProgressBar.js
|
|
17291
|
-
var
|
|
17735
|
+
var o62 = class extends o61 {
|
|
17292
17736
|
static get styles() {
|
|
17293
17737
|
return [t26, t49];
|
|
17294
17738
|
}
|
|
@@ -17337,7 +17781,7 @@ var o61 = class extends o60 {
|
|
|
17337
17781
|
};
|
|
17338
17782
|
|
|
17339
17783
|
// node_modules/@adobe/spectrum-wc/dist/components/progress-bar/swc-progress-bar.js
|
|
17340
|
-
e25("swc-progress-bar",
|
|
17784
|
+
e25("swc-progress-bar", o62);
|
|
17341
17785
|
|
|
17342
17786
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/conversation-turn/conversation-turn.js
|
|
17343
17787
|
var t50 = i`:host{display:block;inline-size:100%}:host(:focus-visible){outline:none}*,*:before,*:after{box-sizing:border-box}.swc-ConversationTurn{display:flex;inline-size:100%;min-inline-size:0}.swc-ConversationTurn>slot{display:flex;flex-direction:column;gap:8px;inline-size:100%;min-inline-size:0}:host([type=\"user\"]) .swc-ConversationTurn{justify-content:flex-end}:host([type=\"user\"]) .swc-ConversationTurn>slot{align-items:flex-end}:host([type=\"system\"]) .swc-ConversationTurn{justify-content:flex-start}:host([type=\"system\"]) .swc-ConversationTurn>slot{align-items:stretch}:host([type=\"system\"]) ::slotted(*){flex:1 1 100%;min-inline-size:0;max-inline-size:100%}:host(:focus-visible) ::slotted(*){outline:2px solid var(--swc-blue-800);outline-offset:2px}`;
|
|
@@ -17380,7 +17824,7 @@ e12([n({
|
|
|
17380
17824
|
e25("swc-conversation-turn", a14);
|
|
17381
17825
|
|
|
17382
17826
|
// node_modules/@adobe/spectrum-wc/dist/components/ui-icons/ui-icons.types.js
|
|
17383
|
-
var
|
|
17827
|
+
var e90 = [
|
|
17384
17828
|
50,
|
|
17385
17829
|
75,
|
|
17386
17830
|
100,
|
|
@@ -17400,7 +17844,7 @@ function n29(e120) {
|
|
|
17400
17844
|
}
|
|
17401
17845
|
function r26(t90, r40) {
|
|
17402
17846
|
if (!t90) return;
|
|
17403
|
-
let i26 = n29(r40), a23 =
|
|
17847
|
+
let i26 = n29(r40), a23 = e90.filter((e120) => t90[e120] !== void 0);
|
|
17404
17848
|
if (a23.length !== 0) return t90[a23.reduce((e120, t91) => Math.abs(t91 - i26) < Math.abs(e120 - i26) ? t91 : e120)];
|
|
17405
17849
|
}
|
|
17406
17850
|
|
|
@@ -18024,7 +18468,7 @@ e12([n({
|
|
|
18024
18468
|
e25("swc-ui-icon", l16);
|
|
18025
18469
|
|
|
18026
18470
|
// node_modules/@adobe/spectrum-wc/dist/utils/id.js
|
|
18027
|
-
function
|
|
18471
|
+
function e91(e120) {
|
|
18028
18472
|
return `${e120}-${Array.from(crypto.getRandomValues(new Uint8Array(4)), (e121) => `0${(e121 & 255).toString(16)}`.slice(-2)).join("")}`;
|
|
18029
18473
|
}
|
|
18030
18474
|
|
|
@@ -18034,7 +18478,7 @@ var t65 = i`:host{display:block}*,*:before,*:after{box-sizing:border-box}.swc-Me
|
|
|
18034
18478
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/message-sources/MessageSources.js
|
|
18035
18479
|
var c19 = class extends i9 {
|
|
18036
18480
|
constructor(...e120) {
|
|
18037
|
-
super(...e120), this.panelId =
|
|
18481
|
+
super(...e120), this.panelId = e91("swc-sources-panel"), this.toggleId = e91("swc-message-sources-toggle"), this.sourceLinks = [], this.open = false, this.label = "Sources", this.accessibleLabel = "";
|
|
18038
18482
|
}
|
|
18039
18483
|
static get styles() {
|
|
18040
18484
|
return [t65];
|
|
@@ -18169,7 +18613,7 @@ var a15 = () => b`
|
|
|
18169
18613
|
<circle cx="4" cy="4" r="4" fill="currentColor" />
|
|
18170
18614
|
</svg>
|
|
18171
18615
|
`;
|
|
18172
|
-
var
|
|
18616
|
+
var o63 = () => b`
|
|
18173
18617
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8">
|
|
18174
18618
|
<circle cx="4" cy="4" r="3.5" fill="none" stroke="currentColor" />
|
|
18175
18619
|
</svg>
|
|
@@ -18229,7 +18673,7 @@ var h6 = class extends i9 {
|
|
|
18229
18673
|
return this._readLabel();
|
|
18230
18674
|
}
|
|
18231
18675
|
constructor() {
|
|
18232
|
-
super(), this._toggleId =
|
|
18676
|
+
super(), this._toggleId = e91("swc-response-status-step-toggle"), this._detailId = e91("swc-response-status-step-detail"), this.status = "active", this.open = false, this._hasDescription = false, this._labelText = "", this._overflows = false, this._lastActiveLabel = "", new t2(this, {
|
|
18233
18677
|
config: {
|
|
18234
18678
|
attributes: true,
|
|
18235
18679
|
attributeFilter: ["slot"],
|
|
@@ -18312,7 +18756,7 @@ var h6 = class extends i9 {
|
|
|
18312
18756
|
class="swc-ResponseStatusStep-icon swc-ResponseStatusStep-icon--active"
|
|
18313
18757
|
aria-hidden="true"
|
|
18314
18758
|
>
|
|
18315
|
-
${
|
|
18759
|
+
${o63()}
|
|
18316
18760
|
</swc-icon>
|
|
18317
18761
|
`);
|
|
18318
18762
|
}
|
|
@@ -18386,7 +18830,7 @@ e12([n({
|
|
|
18386
18830
|
e25("swc-response-status-step", h6);
|
|
18387
18831
|
|
|
18388
18832
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/data.js
|
|
18389
|
-
function
|
|
18833
|
+
function e92(e120, t90) {
|
|
18390
18834
|
let n37 = Array.from(new Set(e120.map(([, e121]) => e121))).sort((e121, t91) => t91 - e121), r40 = Array(e120.length).fill(0), i26 = 0;
|
|
18391
18835
|
return n37.forEach((n38) => {
|
|
18392
18836
|
let a23 = e120.reduce((e121, t91, r41) => (t91[1] === n38 && e121.push(r41), e121), []);
|
|
@@ -18396,7 +18840,7 @@ function e91(e120, t90) {
|
|
|
18396
18840
|
}), r40;
|
|
18397
18841
|
}
|
|
18398
18842
|
function t68(t90, n37 = {}) {
|
|
18399
|
-
let { staggerInterval: r40 = 2, rowOffset: i26 = 0 } = n37, a23 =
|
|
18843
|
+
let { staggerInterval: r40 = 2, rowOffset: i26 = 0 } = n37, a23 = e92(t90, r40);
|
|
18400
18844
|
return t90.map(([e120, t91], n38) => ({
|
|
18401
18845
|
col: e120,
|
|
18402
18846
|
row: t91 + i26,
|
|
@@ -18539,7 +18983,7 @@ var a16 = t68([
|
|
|
18539
18983
|
[5, 0],
|
|
18540
18984
|
[6, 0]
|
|
18541
18985
|
], { staggerInterval: 1 });
|
|
18542
|
-
var
|
|
18986
|
+
var o64 = t68([
|
|
18543
18987
|
[6, 6],
|
|
18544
18988
|
[5, 5],
|
|
18545
18989
|
[1, 4],
|
|
@@ -19094,7 +19538,7 @@ var N = {
|
|
|
19094
19538
|
brush: r30,
|
|
19095
19539
|
eye: i19,
|
|
19096
19540
|
hourglass: a16,
|
|
19097
|
-
mag:
|
|
19541
|
+
mag: o64,
|
|
19098
19542
|
crop: s12,
|
|
19099
19543
|
flower: c21,
|
|
19100
19544
|
image: l17,
|
|
@@ -19185,13 +19629,13 @@ var F = {
|
|
|
19185
19629
|
};
|
|
19186
19630
|
|
|
19187
19631
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/animation.js
|
|
19188
|
-
var
|
|
19189
|
-
var t69 = (t90) => t90 *
|
|
19632
|
+
var e93 = 30;
|
|
19633
|
+
var t69 = (t90) => t90 * e93 / 1e3;
|
|
19190
19634
|
var n32 = 13;
|
|
19191
19635
|
var r31 = 12;
|
|
19192
19636
|
var i20 = t69(1400);
|
|
19193
19637
|
var a17 = t69(150);
|
|
19194
|
-
var
|
|
19638
|
+
var o65 = t69(150);
|
|
19195
19639
|
var s13 = 0.1;
|
|
19196
19640
|
var c22 = t69(230);
|
|
19197
19641
|
var l18 = 0.3;
|
|
@@ -19218,7 +19662,7 @@ function v8(e120) {
|
|
|
19218
19662
|
return t90 + n32 + i20 + r31;
|
|
19219
19663
|
}
|
|
19220
19664
|
function y4(t90) {
|
|
19221
|
-
return v8(t90) /
|
|
19665
|
+
return v8(t90) / e93 * 1e3;
|
|
19222
19666
|
}
|
|
19223
19667
|
function b8(e120, t90) {
|
|
19224
19668
|
return Math.min(1, Math.max(0, e120 / t90));
|
|
@@ -19263,7 +19707,7 @@ function S2(e120, t90) {
|
|
|
19263
19707
|
}), x3(o91);
|
|
19264
19708
|
}
|
|
19265
19709
|
function C3(e120, t90) {
|
|
19266
|
-
let i26 = e120.stagger + n32 -
|
|
19710
|
+
let i26 = e120.stagger + n32 - o65, u27 = i26 - a17, d22 = _4(e120), f11 = d22 + c22;
|
|
19267
19711
|
return x3([
|
|
19268
19712
|
{
|
|
19269
19713
|
offset: 0,
|
|
@@ -19335,7 +19779,7 @@ function k2(e120) {
|
|
|
19335
19779
|
return t90 + E2 + D3 + t90 + E2;
|
|
19336
19780
|
}
|
|
19337
19781
|
function A4(t90) {
|
|
19338
|
-
return k2(t90) /
|
|
19782
|
+
return k2(t90) / e93 * 1e3;
|
|
19339
19783
|
}
|
|
19340
19784
|
function j2(e120, t90, n37) {
|
|
19341
19785
|
let r40 = O2(t90), i26 = r40.indexOf(e120.row), a23 = (r40.length - 1) * T4 + E2, o91 = i26 * T4, s19 = a23 + D3 + i26 * T4;
|
|
@@ -19374,9 +19818,9 @@ function j2(e120, t90, n37) {
|
|
|
19374
19818
|
var M2 = "0 0px";
|
|
19375
19819
|
|
|
19376
19820
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/geometry.js
|
|
19377
|
-
var
|
|
19821
|
+
var e94 = /* @__PURE__ */ new WeakMap();
|
|
19378
19822
|
function t70(t90) {
|
|
19379
|
-
let n37 =
|
|
19823
|
+
let n37 = e94.get(t90);
|
|
19380
19824
|
if (n37) return n37;
|
|
19381
19825
|
let r40 = new Set(t90.map((e120) => `${e120.col},${e120.row}`)), i26 = (e120, t91) => r40.has(`${e120},${t91}`), a23 = t90.map(({ col: e120, row: t91 }) => {
|
|
19382
19826
|
let n38 = i26(e120 - 1, t91), r41 = i26(e120 + 1, t91), a24 = i26(e120, t91 - 1), o91 = i26(e120, t91 + 1), s19 = i26(e120 - 1, t91 - 1), c28 = i26(e120 + 1, t91 - 1), l24 = i26(e120 + 1, t91 + 1), u27 = i26(e120 - 1, t91 + 1);
|
|
@@ -19387,7 +19831,7 @@ function t70(t90) {
|
|
|
19387
19831
|
bottomLeft: !n38 && !o91 && !u27
|
|
19388
19832
|
};
|
|
19389
19833
|
});
|
|
19390
|
-
return
|
|
19834
|
+
return e94.set(t90, a23), a23;
|
|
19391
19835
|
}
|
|
19392
19836
|
function n33(e120, t90) {
|
|
19393
19837
|
return `${e120.topLeft ? t90 : "0"} ${e120.topRight ? t90 : "0"} ${e120.bottomRight ? t90 : "0"} ${e120.bottomLeft ? t90 : "0"}`;
|
|
@@ -19399,7 +19843,7 @@ var t71 = i`:host{display:inline-block}*,*:before,*:after{box-sizing:border-box}
|
|
|
19399
19843
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/PixelLoader.js
|
|
19400
19844
|
var w4;
|
|
19401
19845
|
var T5 = "https://spectrum-web-components.adobe.com/?path=/docs/patterns-ai-toolkit-pixel-loader--docs";
|
|
19402
|
-
var E3 = class
|
|
19846
|
+
var E3 = class e95 extends i9 {
|
|
19403
19847
|
constructor(...e120) {
|
|
19404
19848
|
super(...e120), this.icon = "aiLogo", this.paused = false, this.label = "Loading", this._presetIndex = 0, this._animations = [], this._containerCache = null, this._cellElsCache = null, this._ticker = null, this._reducedMotionQuery = null, this._displayedIcon = "aiLogo", this._finishToken = 0, this._handleReducedMotionChange = () => {
|
|
19405
19849
|
this._syncTicker(), this._playCells();
|
|
@@ -19502,8 +19946,8 @@ var E3 = class e94 extends i9 {
|
|
|
19502
19946
|
}
|
|
19503
19947
|
}), this._cancelAnimations();
|
|
19504
19948
|
let i26 = {
|
|
19505
|
-
duration:
|
|
19506
|
-
easing:
|
|
19949
|
+
duration: e95.FINISH_MS,
|
|
19950
|
+
easing: e95.EASE_FINISH,
|
|
19507
19951
|
fill: "forwards"
|
|
19508
19952
|
}, a23 = n37.map((e120) => e120.animate([{
|
|
19509
19953
|
translate: M2,
|
|
@@ -19553,7 +19997,7 @@ var E3 = class e94 extends i9 {
|
|
|
19553
19997
|
style=${o3({
|
|
19554
19998
|
"grid-column": String(t90.col + 1),
|
|
19555
19999
|
"grid-row": String(t90.row + 1),
|
|
19556
|
-
"border-radius": n33(n37,
|
|
20000
|
+
"border-radius": n33(n37, e95.CORNER_RADIUS)
|
|
19557
20001
|
})}
|
|
19558
20002
|
></div>
|
|
19559
20003
|
`;
|
|
@@ -19594,12 +20038,12 @@ var y5 = [
|
|
|
19594
20038
|
"complete",
|
|
19595
20039
|
"stopped"
|
|
19596
20040
|
];
|
|
19597
|
-
var b9 = class
|
|
20041
|
+
var b9 = class e96 extends i9 {
|
|
19598
20042
|
static get styles() {
|
|
19599
20043
|
return [t72];
|
|
19600
20044
|
}
|
|
19601
20045
|
constructor() {
|
|
19602
|
-
super(), this.panelId =
|
|
20046
|
+
super(), this.panelId = e91("swc-response-status-panel"), this._hasSteps = false, this._hasActiveStep = false, this._activeStepLabel = "", this._activeStepEl = null, this._labelSlotText = "", this._displayedLabel = "", this._rollFromLabel = "", this._rollToLabel = "", this._rollActive = false, this._rollEngaged = false, this.status = "active", this.open = false, this.accessibleLabel = "", this.loader = "mega", this._labelRollTimer = null, this._labelRollRaf = null, new t2(this, {
|
|
19603
20047
|
config: {
|
|
19604
20048
|
attributes: true,
|
|
19605
20049
|
attributeFilter: ["status"],
|
|
@@ -19717,10 +20161,10 @@ var b9 = class e95 extends i9 {
|
|
|
19717
20161
|
if (this._labelSlotText) return this._labelSlotText;
|
|
19718
20162
|
let t90 = this._resolvedStatus;
|
|
19719
20163
|
if (t90 === "active") {
|
|
19720
|
-
if (this._showsGenericProcessingLabel) return
|
|
20164
|
+
if (this._showsGenericProcessingLabel) return e96.ACTIVE_STEP_OPEN_LABEL;
|
|
19721
20165
|
if (this._activeStepLabel) return this._activeStepLabel;
|
|
19722
20166
|
}
|
|
19723
|
-
return
|
|
20167
|
+
return e96.DEFAULT_LABELS[t90];
|
|
19724
20168
|
}
|
|
19725
20169
|
_clearLabelRollTimers() {
|
|
19726
20170
|
this._labelRollTimer !== null && (window.clearTimeout(this._labelRollTimer), this._labelRollTimer = null), this._labelRollRaf !== null && (window.cancelAnimationFrame(this._labelRollRaf), this._labelRollRaf = null);
|
|
@@ -19749,7 +20193,7 @@ var b9 = class e95 extends i9 {
|
|
|
19749
20193
|
this._labelRollRaf = window.requestAnimationFrame(() => {
|
|
19750
20194
|
this._labelRollRaf = null, this._rollEngaged = true, this._labelRollTimer = window.setTimeout(() => {
|
|
19751
20195
|
this._labelRollTimer = null, this._displayedLabel = this._rollToLabel, this._rollActive = false, this._rollEngaged = false, this._applyLabelRoll();
|
|
19752
|
-
},
|
|
20196
|
+
}, e96.LABEL_ROLL_DURATION_MS);
|
|
19753
20197
|
});
|
|
19754
20198
|
});
|
|
19755
20199
|
}
|
|
@@ -19757,7 +20201,7 @@ var b9 = class e95 extends i9 {
|
|
|
19757
20201
|
return this._rollActive ? this._rollToLabel : this._displayedLabel || this._getHeaderLabel();
|
|
19758
20202
|
}
|
|
19759
20203
|
_renderLabel() {
|
|
19760
|
-
let t90 =
|
|
20204
|
+
let t90 = e96.STATUS_LABEL_CLASS;
|
|
19761
20205
|
return this._rollActive ? b`
|
|
19762
20206
|
<span class="swc-ResponseStatus-headerTrailViewport">
|
|
19763
20207
|
<span class=${this._rollEngaged ? "swc-ResponseStatus-headerTrailCrossfade swc-ResponseStatus-headerTrailCrossfade--engaged" : "swc-ResponseStatus-headerTrailCrossfade"}>
|
|
@@ -19873,7 +20317,7 @@ var b9 = class e95 extends i9 {
|
|
|
19873
20317
|
`;
|
|
19874
20318
|
}
|
|
19875
20319
|
_renderPanel(t90) {
|
|
19876
|
-
let n37 = t90 && this.open, r40 = this.accessibleLabel ||
|
|
20320
|
+
let n37 = t90 && this.open, r40 = this.accessibleLabel || e96.DEFAULT_ACCESSIBLE_LABEL;
|
|
19877
20321
|
return b`
|
|
19878
20322
|
<div
|
|
19879
20323
|
id=${this.panelId}
|
|
@@ -19938,7 +20382,7 @@ var t73 = i`:host{display:block}*,*:before,*:after{box-sizing:border-box}.swc-Su
|
|
|
19938
20382
|
// node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/suggestion/SuggestionGroup.js
|
|
19939
20383
|
var s14 = class extends i9 {
|
|
19940
20384
|
constructor(...e120) {
|
|
19941
|
-
super(...e120), this.accessibleLabel = "", this._headingId =
|
|
20385
|
+
super(...e120), this.accessibleLabel = "", this._headingId = e91("swc-suggestion-group-heading");
|
|
19942
20386
|
}
|
|
19943
20387
|
static get styles() {
|
|
19944
20388
|
return [t73];
|
|
@@ -20101,29 +20545,11 @@ e12([n({
|
|
|
20101
20545
|
e25("swc-user-message", a18);
|
|
20102
20546
|
|
|
20103
20547
|
// node_modules/@adobe/spectrum-wc-icons/dist/Cancel.js
|
|
20104
|
-
function
|
|
20548
|
+
function e97() {
|
|
20105
20549
|
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M16.201 16.166A8.72 8.72 0 0 0 18.75 10c0-4.825-3.925-8.75-8.75-8.75a8.72 8.72 0 0 0-6.166 2.549l-.021.014c-.011.007-.008.015-.014.021A8.72 8.72 0 0 0 1.25 10c0 4.825 3.925 8.75 8.75 8.75a8.72 8.72 0 0 0 6.166-2.549c.006-.006.015-.008.021-.014s.008-.015.014-.021M17.25 10c0 1.73-.61 3.317-1.625 4.565L5.435 4.375A7.2 7.2 0 0 1 10 2.75c3.998 0 7.25 3.252 7.25 7.25m-14.5 0c0-1.73.61-3.317 1.625-4.565l10.19 10.19A7.2 7.2 0 0 1 10 17.25c-3.998 0-7.25-3.252-7.25-7.25"/></svg>';
|
|
20106
20550
|
}
|
|
20107
20551
|
|
|
20108
20552
|
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cancel.js
|
|
20109
|
-
var o65 = class extends a10 {
|
|
20110
|
-
static get styles() {
|
|
20111
|
-
return [t40];
|
|
20112
|
-
}
|
|
20113
|
-
render() {
|
|
20114
|
-
return b`
|
|
20115
|
-
<span class="swc-Icon">${o16(e96())}</span>
|
|
20116
|
-
`;
|
|
20117
|
-
}
|
|
20118
|
-
};
|
|
20119
|
-
e25("swc-icon-cancel", o65);
|
|
20120
|
-
|
|
20121
|
-
// node_modules/@adobe/spectrum-wc-icons/dist/ChevronRight.js
|
|
20122
|
-
function e97() {
|
|
20123
|
-
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M7.75 16.465a.748.748 0 0 1-.54-1.27l4.999-5.197-4.986-5.184a.75.75 0 0 1 .02-1.06.75.75 0 0 1 1.06.021L13.79 9.48c.28.29.28.749 0 1.039l-5.5 5.716a.75.75 0 0 1-.54.23"/></svg>';
|
|
20124
|
-
}
|
|
20125
|
-
|
|
20126
|
-
// node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-chevron-right.js
|
|
20127
20553
|
var o66 = class extends a10 {
|
|
20128
20554
|
static get styles() {
|
|
20129
20555
|
return [t40];
|
|
@@ -20134,7 +20560,7 @@ var o66 = class extends a10 {
|
|
|
20134
20560
|
`;
|
|
20135
20561
|
}
|
|
20136
20562
|
};
|
|
20137
|
-
e25("swc-icon-
|
|
20563
|
+
e25("swc-icon-cancel", o66);
|
|
20138
20564
|
|
|
20139
20565
|
// node_modules/@adobe/spectrum-wc-icons/dist/File.js
|
|
20140
20566
|
function e98() {
|
|
@@ -20305,11 +20731,11 @@ function run(lines, start, test) {
|
|
|
20305
20731
|
return end;
|
|
20306
20732
|
}
|
|
20307
20733
|
var itemPattern = /^(\s*)([-*]|\d+\.)\s+(.*)$/;
|
|
20308
|
-
function
|
|
20734
|
+
function indent2(line) {
|
|
20309
20735
|
return line.match(/^\s*/)?.[0].length ?? 0;
|
|
20310
20736
|
}
|
|
20311
20737
|
function list2(lines) {
|
|
20312
|
-
const base =
|
|
20738
|
+
const base = indent2(lines[0]);
|
|
20313
20739
|
const ordered2 = /^\s*\d+\./.test(lines[0]);
|
|
20314
20740
|
const items = [];
|
|
20315
20741
|
let i26 = 0;
|
|
@@ -20321,7 +20747,7 @@ function list2(lines) {
|
|
|
20321
20747
|
i26++;
|
|
20322
20748
|
continue;
|
|
20323
20749
|
}
|
|
20324
|
-
const end = run(lines, i26 + 1, (line) =>
|
|
20750
|
+
const end = run(lines, i26 + 1, (line) => indent2(line) > base);
|
|
20325
20751
|
let child = i26 + 1;
|
|
20326
20752
|
let text2 = match[3];
|
|
20327
20753
|
while (child < end && !itemPattern.test(lines[child])) text2 += ` ${lines[child++].trim()}`;
|
|
@@ -20361,7 +20787,7 @@ function block2(lines, i26) {
|
|
|
20361
20787
|
const end2 = run(
|
|
20362
20788
|
lines,
|
|
20363
20789
|
i26,
|
|
20364
|
-
(l24) => itemPattern.test(l24) || l24.trim() !== "" &&
|
|
20790
|
+
(l24) => itemPattern.test(l24) || l24.trim() !== "" && indent2(l24) > indent2(line)
|
|
20365
20791
|
);
|
|
20366
20792
|
return [list2(lines.slice(i26, end2)), end2];
|
|
20367
20793
|
}
|
|
@@ -20787,20 +21213,20 @@ function attachment(item2) {
|
|
|
20787
21213
|
<span slot="subtitle" class="size">${detail}</span>
|
|
20788
21214
|
</swc-user-message>`;
|
|
20789
21215
|
}
|
|
20790
|
-
|
|
21216
|
+
function when(at, title = "") {
|
|
21217
|
+
return b`<time class="when" datetime=${new Date(at).toISOString()} title=${title || A}>${time(at)}</time>`;
|
|
21218
|
+
}
|
|
20791
21219
|
function user(message) {
|
|
20792
21220
|
const delivered = message.delivered ?? (message.mode === "steer" ? "steer" : void 0);
|
|
20793
|
-
const tag3 = delivered === "steer" || delivered === "follow-up" ? deliveries[delivered] : null;
|
|
20794
21221
|
const agent = message.origin === "agent";
|
|
20795
21222
|
const name = message.from ?? "an agent";
|
|
20796
|
-
const who2 = agent ? name : message.from ? `From ${message.from}` : "
|
|
21223
|
+
const who2 = agent ? name : message.from ? `From ${message.from}` : "";
|
|
20797
21224
|
const label = agent ? `Request from ${name}` : message.from ? `Message from ${message.from}` : "Your message";
|
|
20798
21225
|
return b`<swc-conversation-turn type="user" class="message user" accessible-label=${label} data-id=${message.id} data-mode=${message.mode ?? "send"} data-delivered=${delivered ?? "run"} data-origin=${message.origin ?? "user"}>
|
|
20799
21226
|
<div class="bubble">
|
|
20800
21227
|
<div class="meta">
|
|
20801
|
-
|
|
21228
|
+
${who2 ? b`<span class="who">${who2}</span>` : A}${when(message.createdAt)}
|
|
20802
21229
|
${agent ? b`<swc-badge class="origin" size="s" variant="indigo">Agent</swc-badge>` : A}
|
|
20803
|
-
${tag3 ? b`<swc-badge class="tag" size="s" variant=${delivered === "steer" ? "notice" : "informative"} subtle>${tag3}</swc-badge>` : A}
|
|
20804
21230
|
</div>
|
|
20805
21231
|
${message.text ? b`<swc-user-message class="body"><span class="text">${message.text}</span></swc-user-message>` : A}
|
|
20806
21232
|
${message.attachments?.length ? b`<div class="attachments">${message.attachments.map(attachment)}</div>` : A}
|
|
@@ -20839,8 +21265,8 @@ function assistant(message, name, model, handlers, showThinking, suggestion = nu
|
|
|
20839
21265
|
return b`<swc-conversation-turn type="system" class="message assistant" accessible-label=${`Reply from ${name}`} data-id=${message.id} data-status=${message.status}>
|
|
20840
21266
|
<div class="reply">
|
|
20841
21267
|
<div class="meta">
|
|
20842
|
-
|
|
20843
|
-
${model ? b`<span title=${usage}>${model}</span>` : A}
|
|
21268
|
+
${when(message.createdAt, model ? "" : usage)}
|
|
21269
|
+
${model ? b`<span class="model" title=${usage}>${model}</span>` : A}
|
|
20844
21270
|
${message.status === "error" ? b`<swc-badge class="tag" size="s" variant="negative" subtle><swc-icon-alert-diamond slot="icon" size="s" aria-hidden="true"></swc-icon-alert-diamond>Failed</swc-badge>` : A}
|
|
20845
21271
|
</div>
|
|
20846
21272
|
<swc-system-message>
|
|
@@ -22321,7 +22747,7 @@ var SliccApp = class extends ThemedElement {
|
|
|
22321
22747
|
constructor() {
|
|
22322
22748
|
super();
|
|
22323
22749
|
this.screen = screenClass(globalThis.innerWidth ?? 1280);
|
|
22324
|
-
this.surfaces =
|
|
22750
|
+
this.surfaces = surfaces2;
|
|
22325
22751
|
}
|
|
22326
22752
|
static styles = [
|
|
22327
22753
|
theme,
|
|
@@ -22972,7 +23398,7 @@ var SliccApp = class extends ThemedElement {
|
|
|
22972
23398
|
return Boolean(cone && !cone.frozen && this.model?.agent.freeze && !watchOnly(this.model));
|
|
22973
23399
|
}
|
|
22974
23400
|
#creatable() {
|
|
22975
|
-
return
|
|
23401
|
+
return creatable(this.model);
|
|
22976
23402
|
}
|
|
22977
23403
|
#cone() {
|
|
22978
23404
|
const agent = this.#active();
|
|
@@ -23005,22 +23431,7 @@ var SliccApp = class extends ThemedElement {
|
|
|
23005
23431
|
this.renderRoot.querySelector("header sp-picker")?.focus();
|
|
23006
23432
|
}
|
|
23007
23433
|
async #newCone(trigger2) {
|
|
23008
|
-
|
|
23009
|
-
const create3 = port?.createCone?.bind(port);
|
|
23010
|
-
if (!port || !create3) return;
|
|
23011
|
-
let created;
|
|
23012
|
-
await prompt({
|
|
23013
|
-
title: "New cone",
|
|
23014
|
-
label: "Name",
|
|
23015
|
-
action: "Create",
|
|
23016
|
-
trigger: trigger2,
|
|
23017
|
-
submit: async (name) => {
|
|
23018
|
-
if (watchOnly(this.model)) return;
|
|
23019
|
-
created = await create3(name);
|
|
23020
|
-
}
|
|
23021
|
-
});
|
|
23022
|
-
if (!created) return;
|
|
23023
|
-
port.select(created.id);
|
|
23434
|
+
if (!await createCone(this.model, trigger2)) return;
|
|
23024
23435
|
await this.updateComplete;
|
|
23025
23436
|
this.renderRoot.querySelector("header sp-picker")?.focus();
|
|
23026
23437
|
}
|
|
@@ -23343,12 +23754,12 @@ function scan2(words, cwds, whole) {
|
|
|
23343
23754
|
}
|
|
23344
23755
|
return null;
|
|
23345
23756
|
}
|
|
23346
|
-
function
|
|
23347
|
-
if (
|
|
23348
|
-
const start = absolute("/",
|
|
23757
|
+
function reach2(command3, cwd) {
|
|
23758
|
+
if (command3.length > 4096) return `${command3.slice(0, 40)}\u2026`;
|
|
23759
|
+
const start = absolute("/", cwd ?? "/");
|
|
23349
23760
|
if (protects(start, false)) return start;
|
|
23350
23761
|
const cwds = /* @__PURE__ */ new Set([start]);
|
|
23351
|
-
const text2 = unglob(ansi(
|
|
23762
|
+
const text2 = unglob(ansi(command3.replace(/\\\n/g, "")));
|
|
23352
23763
|
const plain = text2.split(separators).map((segment2) => commas(segment2.split(/[\s<>=]+/).map((word) => word.replace(/['"\\]/g, ""))));
|
|
23353
23764
|
const aware = shield(text2).split(separators).map((segment2) => commas(quoted(unshield(segment2))));
|
|
23354
23765
|
const segments = JSON.stringify(aware) === JSON.stringify(plain) ? plain : [...plain, ...aware];
|
|
@@ -23363,6 +23774,14 @@ function secretRules(approval) {
|
|
|
23363
23774
|
if (home2) return home2;
|
|
23364
23775
|
return segments.flat().some((word) => word.includes("$")) || text2.includes("`") ? text2.match(expansion)[0] : null;
|
|
23365
23776
|
}
|
|
23777
|
+
function secretRules(command3, cwd) {
|
|
23778
|
+
const hit = reach2(command3, cwd);
|
|
23779
|
+
return hit && certain(hit) ? { certain: hit, maybe: null } : { certain: null, maybe: hit };
|
|
23780
|
+
}
|
|
23781
|
+
function origin() {
|
|
23782
|
+
const active = focused();
|
|
23783
|
+
return active?.closest("slicc-terminal") ?? active;
|
|
23784
|
+
}
|
|
23366
23785
|
function waiting(model, now) {
|
|
23367
23786
|
return [...model?.approvals?.list() ?? []].filter((approval) => approval.expiresAt > now).sort((a23, b13) => a23.createdAt - b13.createdAt);
|
|
23368
23787
|
}
|
|
@@ -23503,7 +23922,8 @@ var SliccApprovals = class extends ModelElement {
|
|
|
23503
23922
|
async decide(approval, decision) {
|
|
23504
23923
|
const port = this.model?.approvals;
|
|
23505
23924
|
if (!port?.decide || this.busy || decision !== "deny" && !this.#armed) return;
|
|
23506
|
-
|
|
23925
|
+
const verdict = secretRules(approval.command, approval.cwd);
|
|
23926
|
+
if (decision === "always" && (verdict.certain ?? verdict.maybe)) return;
|
|
23507
23927
|
this.busy = decision;
|
|
23508
23928
|
this.failure = null;
|
|
23509
23929
|
this.#pending.add(approval.id);
|
|
@@ -23547,7 +23967,7 @@ var SliccApprovals = class extends ModelElement {
|
|
|
23547
23967
|
const dialog = this.renderRoot.querySelector("dialog");
|
|
23548
23968
|
const key2 = dialog ? `${dialog.dataset.approval}:${dialog.dataset.gone ?? ""}` : "";
|
|
23549
23969
|
if (key2 === this.#shown) return;
|
|
23550
|
-
if (dialog && !this.#shown) this.#trigger =
|
|
23970
|
+
if (dialog && !this.#shown) this.#trigger = origin();
|
|
23551
23971
|
this.#shown = key2;
|
|
23552
23972
|
if (!dialog) {
|
|
23553
23973
|
if (this.#trigger?.isConnected) this.#trigger.focus();
|
|
@@ -23608,7 +24028,8 @@ var SliccApprovals = class extends ModelElement {
|
|
|
23608
24028
|
const [approval, ...rest] = held ? [held, ...list5.filter(({ id }) => id !== held.id)] : list5;
|
|
23609
24029
|
if (!approval) return A;
|
|
23610
24030
|
const failure2 = this.failure?.id === approval.id ? this.failure.message : "";
|
|
23611
|
-
const
|
|
24031
|
+
const verdict = secretRules(approval.command, approval.cwd);
|
|
24032
|
+
const rules = verdict.certain ?? verdict.maybe;
|
|
23612
24033
|
const always = approval.always && !rules;
|
|
23613
24034
|
return this.#dialog(
|
|
23614
24035
|
approval,
|
|
@@ -23617,7 +24038,7 @@ var SliccApprovals = class extends ModelElement {
|
|
|
23617
24038
|
<h2 id="title" slot="heading">Allow sudo?</h2>
|
|
23618
24039
|
${this.#request(approval)}
|
|
23619
24040
|
${approval.cwd ? b`<p class="cwd">In ${approval.cwd}</p>` : A}
|
|
23620
|
-
${rules ? b`<div class="rules" data-secret-rules=${rules}><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><p>${certain
|
|
24041
|
+
${rules ? b`<div class="rules" data-secret-rules=${rules}><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><p>${verdict.certain ? b`<strong>This changes secret rules.</strong> It names <code>${rules}</code>, where SLICC keeps which secrets programs may use and where they may be sent.` : b`<strong>This may change secret rules.</strong> SLICC can't tell where <code>${rules}</code> leads, and it could reach the files where SLICC keeps which secrets programs may use and where they may be sent.`} Allow it only if you asked for this change.</p></div>` : A}
|
|
23621
24042
|
${always ? b`<p class="hint">Always allow lets ${approval.requester.name} run exactly this command with sudo without asking again.</p>` : A}
|
|
23622
24043
|
${failure2 ? b`<p class="problem" role="alert" data-error><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>${failure2}</span></p>` : A}
|
|
23623
24044
|
<p class="timer" data-timer>Denied automatically in ${countdown(approval.expiresAt - this.now)}.</p>
|
|
@@ -23951,8 +24372,8 @@ function since2(at, now = Date.now()) {
|
|
|
23951
24372
|
function called(value = "") {
|
|
23952
24373
|
const url = value.split(" ").at(-1);
|
|
23953
24374
|
try {
|
|
23954
|
-
const { origin, pathname } = new URL(url);
|
|
23955
|
-
return `Called ${
|
|
24375
|
+
const { origin: origin2, pathname } = new URL(url);
|
|
24376
|
+
return `Called ${origin2}${pathname}`;
|
|
23956
24377
|
} catch {
|
|
23957
24378
|
return `Called ${url}`.trim();
|
|
23958
24379
|
}
|
|
@@ -24000,7 +24421,9 @@ var icons = {
|
|
|
24000
24421
|
};
|
|
24001
24422
|
var refresh = 1e4;
|
|
24002
24423
|
var fresh = 3e3;
|
|
24424
|
+
var actionPage = 50;
|
|
24003
24425
|
var narrowWidth = 480;
|
|
24426
|
+
var linked = /* @__PURE__ */ new Set(["open", "goto", "request"]);
|
|
24004
24427
|
var wideWidth = 720;
|
|
24005
24428
|
var offline = b`<svg viewBox="0 0 96 72" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="6" y="8" width="84" height="56" rx="6"/><path d="M6 22h84"/><circle cx="16" cy="15" r="1.5"/><circle cx="24" cy="15" r="1.5"/><path d="M38 34l20 20M58 34L38 54"/></svg>`;
|
|
24006
24429
|
var SliccBrowser = class extends ModelElement {
|
|
@@ -24020,7 +24443,10 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24020
24443
|
#width = 0;
|
|
24021
24444
|
#copied = null;
|
|
24022
24445
|
#command = null;
|
|
24023
|
-
#
|
|
24446
|
+
#last = null;
|
|
24447
|
+
#shown = actionPage;
|
|
24448
|
+
#anchor = null;
|
|
24449
|
+
#expanded = /* @__PURE__ */ new Set();
|
|
24024
24450
|
constructor() {
|
|
24025
24451
|
super();
|
|
24026
24452
|
this.address = "";
|
|
@@ -24224,8 +24650,15 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24224
24650
|
font-family: var(--swc-code-font-family-stack);
|
|
24225
24651
|
color: var(--swc-neutral-subdued-content-color-default);
|
|
24226
24652
|
}
|
|
24227
|
-
.
|
|
24228
|
-
flex:
|
|
24653
|
+
.detail .driving {
|
|
24654
|
+
flex-wrap: nowrap;
|
|
24655
|
+
min-block-size: var(--swc-component-height-75);
|
|
24656
|
+
}
|
|
24657
|
+
.detail .driving swc-status-light {
|
|
24658
|
+
min-width: 0;
|
|
24659
|
+
}
|
|
24660
|
+
.detail .driving swc-button {
|
|
24661
|
+
flex: none;
|
|
24229
24662
|
}
|
|
24230
24663
|
.swc-Link {
|
|
24231
24664
|
font-size: inherit;
|
|
@@ -24298,6 +24731,7 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24298
24731
|
user-select: none;
|
|
24299
24732
|
}
|
|
24300
24733
|
figcaption {
|
|
24734
|
+
min-block-size: var(--swc-component-height-50);
|
|
24301
24735
|
display: flex;
|
|
24302
24736
|
align-items: center;
|
|
24303
24737
|
justify-content: space-between;
|
|
@@ -24311,8 +24745,84 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24311
24745
|
color: var(--swc-heading-color);
|
|
24312
24746
|
}
|
|
24313
24747
|
summary {
|
|
24748
|
+
display: flex;
|
|
24749
|
+
align-items: center;
|
|
24750
|
+
gap: var(--swc-spacing-100);
|
|
24751
|
+
min-block-size: var(--swc-component-height-75);
|
|
24752
|
+
padding-inline: var(--swc-spacing-75);
|
|
24753
|
+
margin-inline: calc(-1 * var(--swc-spacing-75));
|
|
24754
|
+
border-radius: var(--swc-corner-radius-medium-default);
|
|
24755
|
+
list-style: none;
|
|
24756
|
+
cursor: pointer;
|
|
24757
|
+
}
|
|
24758
|
+
summary::-webkit-details-marker {
|
|
24759
|
+
display: none;
|
|
24760
|
+
}
|
|
24761
|
+
summary:hover {
|
|
24762
|
+
background: var(--swc-gray-100);
|
|
24763
|
+
}
|
|
24764
|
+
summary:focus-visible,
|
|
24765
|
+
.url-toggle:focus-visible,
|
|
24766
|
+
.actions:focus-visible {
|
|
24767
|
+
outline: var(--swc-focus-indicator-thickness) solid var(--swc-focus-indicator-color);
|
|
24768
|
+
outline-offset: var(--swc-focus-ring-gap);
|
|
24769
|
+
}
|
|
24770
|
+
.chevron {
|
|
24771
|
+
flex: none;
|
|
24772
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
24773
|
+
transition: transform var(--swc-animation-duration-100);
|
|
24774
|
+
}
|
|
24775
|
+
details[open] > summary .chevron {
|
|
24776
|
+
transform: rotate(90deg);
|
|
24777
|
+
}
|
|
24778
|
+
.url-toggle[aria-expanded='true'] .chevron {
|
|
24779
|
+
transform: rotate(180deg);
|
|
24780
|
+
}
|
|
24781
|
+
:host(:dir(rtl)) details:not([open]) > summary .chevron {
|
|
24782
|
+
transform: scaleX(-1);
|
|
24783
|
+
}
|
|
24784
|
+
@media (prefers-reduced-motion: reduce) {
|
|
24785
|
+
.chevron {
|
|
24786
|
+
transition: none;
|
|
24787
|
+
}
|
|
24788
|
+
}
|
|
24789
|
+
.more {
|
|
24790
|
+
display: flex;
|
|
24791
|
+
align-items: center;
|
|
24792
|
+
justify-content: space-between;
|
|
24793
|
+
gap: var(--swc-spacing-200);
|
|
24794
|
+
padding-block-end: var(--swc-spacing-75);
|
|
24795
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
24796
|
+
}
|
|
24797
|
+
.url-toggle {
|
|
24798
|
+
display: inline-flex;
|
|
24799
|
+
align-self: flex-start;
|
|
24800
|
+
align-items: center;
|
|
24801
|
+
gap: var(--swc-spacing-50);
|
|
24802
|
+
max-width: 100%;
|
|
24803
|
+
margin: 0;
|
|
24804
|
+
padding: 0;
|
|
24805
|
+
border: 0;
|
|
24806
|
+
border-radius: var(--swc-corner-radius-small-default);
|
|
24807
|
+
background: none;
|
|
24808
|
+
color: inherit;
|
|
24809
|
+
font: inherit;
|
|
24810
|
+
text-align: start;
|
|
24314
24811
|
cursor: pointer;
|
|
24315
24812
|
}
|
|
24813
|
+
.url-toggle > span {
|
|
24814
|
+
min-width: 0;
|
|
24815
|
+
}
|
|
24816
|
+
.url-toggle:hover > span {
|
|
24817
|
+
text-decoration: underline;
|
|
24818
|
+
}
|
|
24819
|
+
.full {
|
|
24820
|
+
font-family: var(--swc-code-font-family-stack);
|
|
24821
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
24822
|
+
overflow-wrap: anywhere;
|
|
24823
|
+
white-space: normal;
|
|
24824
|
+
user-select: text;
|
|
24825
|
+
}
|
|
24316
24826
|
.actions {
|
|
24317
24827
|
display: flex;
|
|
24318
24828
|
flex-direction: column;
|
|
@@ -24340,7 +24850,8 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24340
24850
|
min-width: 0;
|
|
24341
24851
|
overflow-wrap: anywhere;
|
|
24342
24852
|
}
|
|
24343
|
-
.last .what
|
|
24853
|
+
.last .what > :not(.full),
|
|
24854
|
+
.last .url-toggle > span {
|
|
24344
24855
|
overflow: hidden;
|
|
24345
24856
|
text-overflow: ellipsis;
|
|
24346
24857
|
white-space: nowrap;
|
|
@@ -24406,6 +24917,8 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24406
24917
|
this.#shots.clear();
|
|
24407
24918
|
this.#frames.clear();
|
|
24408
24919
|
this.#pulse.clear();
|
|
24920
|
+
this.#expanded.clear();
|
|
24921
|
+
this.#shown = actionPage;
|
|
24409
24922
|
const tabs = model.browser.list();
|
|
24410
24923
|
this.#driven = new Set(tabs.filter((tab) => tab.controlled).map((tab) => tab.id));
|
|
24411
24924
|
this.#focus = this.#latest(model, tabs);
|
|
@@ -24505,7 +25018,7 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24505
25018
|
try {
|
|
24506
25019
|
const src = await model.browser.screenshot(id);
|
|
24507
25020
|
const now = model.browser.list().find((candidate) => candidate.id === id);
|
|
24508
|
-
if (this.model === model && now && this.#key(now) === key2) {
|
|
25021
|
+
if (this.model === model && now && this.#key(now) === key2 && this.#watching?.tabId !== id) {
|
|
24509
25022
|
this.#shots.set(id, { key: key2, src, at: Date.now() });
|
|
24510
25023
|
this.requestUpdate();
|
|
24511
25024
|
}
|
|
@@ -24523,6 +25036,7 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24523
25036
|
#show(id) {
|
|
24524
25037
|
this.#focus = id;
|
|
24525
25038
|
this.#copied = null;
|
|
25039
|
+
this.#shown = actionPage;
|
|
24526
25040
|
if (id) this.#pulse.delete(id);
|
|
24527
25041
|
this.requestUpdate();
|
|
24528
25042
|
}
|
|
@@ -24537,9 +25051,11 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24537
25051
|
this.#ticker = setInterval(() => this.requestUpdate(), 1e3);
|
|
24538
25052
|
if (!(visible2 && tab)) this.#still();
|
|
24539
25053
|
const list5 = this.renderRoot.querySelector(".actions:not(.last)");
|
|
24540
|
-
const
|
|
24541
|
-
if (list5 &&
|
|
24542
|
-
this.#
|
|
25054
|
+
const last = list5?.lastElementChild?.getAttribute("data-action-id") ?? null;
|
|
25055
|
+
if (list5 && this.#anchor !== null) list5.scrollTop = list5.scrollHeight - this.#anchor;
|
|
25056
|
+
else if (list5 && last !== this.#last) list5.scrollTop = list5.scrollHeight;
|
|
25057
|
+
this.#anchor = null;
|
|
25058
|
+
this.#last = last;
|
|
24543
25059
|
}
|
|
24544
25060
|
#still() {
|
|
24545
25061
|
if (this.#ticker) clearInterval(this.#ticker);
|
|
@@ -24587,10 +25103,10 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24587
25103
|
#who(tab) {
|
|
24588
25104
|
return tab.agentId ? `${agentName(this.model, tab.agentId)} is using this tab` : "In use";
|
|
24589
25105
|
}
|
|
24590
|
-
#stopButton(tab, refocus
|
|
25106
|
+
#stopButton(tab, refocus) {
|
|
24591
25107
|
if (!tab.agentId || watchOnly(this.model)) return A;
|
|
24592
25108
|
const agentId = tab.agentId;
|
|
24593
|
-
return b`<swc-button size="s" variant="secondary"
|
|
25109
|
+
return b`<swc-button size="s" variant="secondary" data-action="stop-agent" @click=${() => this.#stop(agentId, refocus)}>Stop ${agentName(this.model, agentId)}</swc-button>`;
|
|
24594
25110
|
}
|
|
24595
25111
|
#card(tab, active) {
|
|
24596
25112
|
const model = this.model;
|
|
@@ -24669,28 +25185,52 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24669
25185
|
</figcaption>
|
|
24670
25186
|
</figure>`;
|
|
24671
25187
|
}
|
|
25188
|
+
#more(total) {
|
|
25189
|
+
const list5 = this.renderRoot.querySelector(".actions:not(.last)");
|
|
25190
|
+
this.#anchor = list5.scrollHeight - list5.scrollTop;
|
|
25191
|
+
this.#shown += actionPage;
|
|
25192
|
+
const done2 = this.#shown >= total;
|
|
25193
|
+
void this.updateComplete.then(() => {
|
|
25194
|
+
if (done2) this.focusOn(".actions:not(.last)");
|
|
25195
|
+
});
|
|
25196
|
+
this.requestUpdate();
|
|
25197
|
+
}
|
|
25198
|
+
#toggle(id) {
|
|
25199
|
+
if (!this.#expanded.delete(id)) this.#expanded.add(id);
|
|
25200
|
+
this.requestUpdate();
|
|
25201
|
+
}
|
|
25202
|
+
#what(action) {
|
|
25203
|
+
const url = linked.has(action.kind) ? action.value : void 0;
|
|
25204
|
+
if (!url) return b`<span>${describe(action)}</span>`;
|
|
25205
|
+
const open = this.#expanded.has(action.id);
|
|
25206
|
+
return b`<button class="url-toggle" data-action="action-url" aria-expanded=${open ? "true" : "false"} aria-controls=${`url-${action.id}`} @click=${() => this.#toggle(action.id)}><span>${describe(action)}</span><swc-icon-chevron-down class="chevron" size="s" aria-hidden="true"></swc-icon-chevron-down></button>${open ? b`<span class="full" id=${`url-${action.id}`}>${url}</span>` : A}`;
|
|
25207
|
+
}
|
|
24672
25208
|
#row(action) {
|
|
24673
25209
|
const failed2 = action.status === "failed";
|
|
24674
|
-
|
|
25210
|
+
const url = linked.has(action.kind) ? action.value : void 0;
|
|
25211
|
+
return b`<li data-action-id=${action.id} data-kind=${action.kind} data-status=${action.status} title=${url ?? A}>
|
|
24675
25212
|
<span>${action.status === "running" ? b`<swc-progress-circle size="s" indeterminate label="Running"></swc-progress-circle>` : failed2 ? b`<swc-icon-alert-triangle size="s" aria-label="Failed"></swc-icon-alert-triangle>` : icons[action.kind]}</span>
|
|
24676
|
-
<span class="what"
|
|
25213
|
+
<span class="what">${this.#what(action)}${failed2 && action.error ? b`<span class="failure">${action.error}</span>` : A}</span>
|
|
24677
25214
|
<span class="who">${agentName(this.model, action.agentId)} ${time(action.at)}</span>
|
|
24678
25215
|
</li>`;
|
|
24679
25216
|
}
|
|
24680
25217
|
#actions(tab) {
|
|
24681
25218
|
const port = this.model.browser;
|
|
24682
25219
|
if (!port.actions) return A;
|
|
24683
|
-
const
|
|
25220
|
+
const all2 = port.actions().filter(
|
|
24684
25221
|
(action) => action.tabId === tab.id || action.tabId === null && action.agentId !== null && action.agentId === tab.agentId
|
|
24685
|
-
)
|
|
24686
|
-
if (!
|
|
25222
|
+
);
|
|
25223
|
+
if (!all2.length)
|
|
24687
25224
|
return b`<h3>Recent actions</h3><p class="muted" data-actions="none">No actions yet.</p>`;
|
|
25225
|
+
const actions2 = all2.slice(-this.#shown);
|
|
25226
|
+
const more = all2.length > actions2.length ? b`<div class="more"><span>Showing the latest ${actions2.length} of ${all2.length}</span><swc-button size="s" variant="secondary" fill-style="outline" data-action="more-actions" @click=${() => this.#more(all2.length)}>Show more</swc-button></div>` : A;
|
|
24688
25227
|
if (this.#width >= narrowWidth)
|
|
24689
|
-
return b`<h3>Recent actions</h3
|
|
25228
|
+
return b`<h3>Recent actions</h3>${more}<ol class="actions" aria-label="Recent actions" tabindex="0">${actions2.map((action) => this.#row(action))}</ol>`;
|
|
24690
25229
|
const last = actions2.at(-1);
|
|
24691
25230
|
return b`<details>
|
|
24692
|
-
<summary>Recent actions (${
|
|
24693
|
-
|
|
25231
|
+
<summary><swc-icon-chevron-right class="chevron" size="s" aria-hidden="true"></swc-icon-chevron-right>Recent actions (${all2.length})</summary>
|
|
25232
|
+
${more}
|
|
25233
|
+
<ol class="actions" aria-label="Earlier actions" tabindex="0">${actions2.slice(0, -1).map((action) => this.#row(action))}</ol>
|
|
24694
25234
|
</details>
|
|
24695
25235
|
<ol class="actions last" aria-label="Last action">${this.#row(last)}</ol>`;
|
|
24696
25236
|
}
|
|
@@ -24717,7 +25257,7 @@ var SliccBrowser = class extends ModelElement {
|
|
|
24717
25257
|
</div>
|
|
24718
25258
|
<div class="driving" data-driving=${tab.controlled ? tab.agentId ? "agent" : "user" : "none"}>
|
|
24719
25259
|
<swc-status-light size="m" variant=${tab.controlled ? "info" : "neutral"}>${tab.controlled ? this.#who(tab) : "No agent is using this tab"}</swc-status-light>
|
|
24720
|
-
${tab.controlled ? this.#stopButton(tab, '[data-action="all-tabs"]'
|
|
25260
|
+
${tab.controlled ? this.#stopButton(tab, '[data-action="all-tabs"]') : A}
|
|
24721
25261
|
</div>
|
|
24722
25262
|
${this.#view(tab)}
|
|
24723
25263
|
${this.#actions(tab)}
|
|
@@ -25912,11 +26452,11 @@ var SliccChat = class extends ThemedElement {
|
|
|
25912
26452
|
new CustomEvent("show-surface", { detail: { id: "settings" }, bubbles: true, composed: true })
|
|
25913
26453
|
);
|
|
25914
26454
|
}
|
|
25915
|
-
#message(message, agent, suggestion) {
|
|
26455
|
+
#message(message, agent, suggestion, changed) {
|
|
25916
26456
|
const model = this.model;
|
|
25917
26457
|
switch (message.role) {
|
|
25918
26458
|
case "assistant": {
|
|
25919
|
-
const label = model.settings.models().find((option2) => option2.id ===
|
|
26459
|
+
const label = changed ? model.settings.models().find((option2) => option2.id === message.model)?.label ?? message.model : "";
|
|
25920
26460
|
return assistant(
|
|
25921
26461
|
message,
|
|
25922
26462
|
agent.name,
|
|
@@ -25939,6 +26479,7 @@ var SliccChat = class extends ThemedElement {
|
|
|
25939
26479
|
#items(messages, agent) {
|
|
25940
26480
|
const out = [];
|
|
25941
26481
|
let previous = "";
|
|
26482
|
+
let shown4;
|
|
25942
26483
|
const model = this.model;
|
|
25943
26484
|
const last = messages.at(-1);
|
|
25944
26485
|
const suggestion = last?.role === "assistant" && !agent.frozen && !watchOnly(model) && !model.agent.busy(agent.id) ? model.agent.suggestion(agent.id) : null;
|
|
@@ -25953,7 +26494,13 @@ var SliccChat = class extends ThemedElement {
|
|
|
25953
26494
|
]);
|
|
25954
26495
|
previous = label;
|
|
25955
26496
|
}
|
|
25956
|
-
|
|
26497
|
+
const next = message.role === "assistant" ? message.model : void 0;
|
|
26498
|
+
const changed = !!next && next !== shown4;
|
|
26499
|
+
if (changed) shown4 = next;
|
|
26500
|
+
out.push([
|
|
26501
|
+
message.id,
|
|
26502
|
+
this.#message(message, agent, message === last ? suggestion : null, changed)
|
|
26503
|
+
]);
|
|
25957
26504
|
}
|
|
25958
26505
|
return out;
|
|
25959
26506
|
}
|
|
@@ -26038,7 +26585,7 @@ var D4 = (e120) => {
|
|
|
26038
26585
|
var O3 = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("field-sizing", "content");
|
|
26039
26586
|
var k3 = class extends i9 {
|
|
26040
26587
|
constructor() {
|
|
26041
|
-
super(), this.labelId =
|
|
26588
|
+
super(), this.labelId = e91("swc-prompt-field-label"), this.disabled = false, this.generating = false, this.collapsed = false, this.variant = "balanced", this.size = "m", this.loader = "aiLogo", this.animateLoader = false, this.label = "Prompt", this.accessibleLabel = "", this.sendLabel = "Send", this.stopLabel = "Stop generating", this.uploadLabel = "Add attachment", this.attachmentScrollPrevLabel = "Show previous attachments", this.attachmentScrollNextLabel = "Show more attachments", this.attachmentStripLabel = "Uploaded assets strip", this.placeholder = "Ready to get started? Ask a question, share an idea, or add a task.", this.value = "", this._attachmentScrollOverflow = false, this._attachmentCanScrollPrev = false, this._attachmentCanScrollNext = false, this._attachmentScrollFallbackGeneration = 0, this._attachmentScrollObserver = new s8(this, {
|
|
26042
26589
|
target: null,
|
|
26043
26590
|
callback: () => {
|
|
26044
26591
|
this._updateAttachmentScrollState();
|
|
@@ -27073,7 +27620,6 @@ var SliccVaultButton = class extends i2 {
|
|
|
27073
27620
|
iframe {
|
|
27074
27621
|
border: 0;
|
|
27075
27622
|
background: transparent;
|
|
27076
|
-
color-scheme: normal;
|
|
27077
27623
|
}
|
|
27078
27624
|
`;
|
|
27079
27625
|
constructor() {
|
|
@@ -27112,6 +27658,7 @@ var SliccVaultButton = class extends i2 {
|
|
|
27112
27658
|
this.#sent = "";
|
|
27113
27659
|
}
|
|
27114
27660
|
#send() {
|
|
27661
|
+
if (this.#button) this.#button.element.style.colorScheme = this.config?.theme ?? "";
|
|
27115
27662
|
if (!(this.#ready && this.#button && this.config)) return;
|
|
27116
27663
|
const sent = JSON.stringify(this.config);
|
|
27117
27664
|
if (sent === this.#sent) return;
|
|
@@ -27363,6 +27910,11 @@ var SliccComposer = class extends ThemedElement {
|
|
|
27363
27910
|
flex: none;
|
|
27364
27911
|
color: var(--swc-neutral-subdued-content-color-default);
|
|
27365
27912
|
}
|
|
27913
|
+
.queued .next {
|
|
27914
|
+
flex: none;
|
|
27915
|
+
font-size: var(--swc-font-size-75);
|
|
27916
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
27917
|
+
}
|
|
27366
27918
|
.queued .text {
|
|
27367
27919
|
flex: 1;
|
|
27368
27920
|
min-width: 0;
|
|
@@ -28086,17 +28638,17 @@ var SliccComposer = class extends ThemedElement {
|
|
|
28086
28638
|
const model = this.model;
|
|
28087
28639
|
return b`<ul class="queue" aria-label="Queued messages">
|
|
28088
28640
|
${queued.map(
|
|
28089
|
-
(message) => b`<li class="queued" data-id=${message.id}>
|
|
28641
|
+
(message) => b`<li class="queued" data-id=${message.id} data-mode=${message.mode ?? "queue"}>
|
|
28090
28642
|
<swc-icon-clock size="s" aria-hidden="true"></swc-icon-clock>
|
|
28091
|
-
<span class="text"><span class="sr"
|
|
28092
|
-
|
|
28643
|
+
<span class="text"><span class="sr">${message.mode === "steer" ? "Steering: " : "Queued: "}</span>${message.text}</span>
|
|
28644
|
+
${message.mode === "steer" ? b`<span class="next">Sends at the next step</span>` : b`<swc-action-button size="s" quiet data-action="send-now" @click=${() => {
|
|
28093
28645
|
model.agent.unqueue(this.#agent, message.id);
|
|
28094
28646
|
void model.agent.send(this.#agent, {
|
|
28095
28647
|
text: message.text,
|
|
28096
28648
|
attachments: message.attachments,
|
|
28097
28649
|
mode: "steer"
|
|
28098
28650
|
});
|
|
28099
|
-
}}>Send now</swc-action-button
|
|
28651
|
+
}}>Send now</swc-action-button>`}
|
|
28100
28652
|
<swc-close-button size="s" data-action="unqueue" accessible-label="Remove from queue" @click=${() => model.agent.unqueue(this.#agent, message.id)}></swc-close-button>
|
|
28101
28653
|
</li>`
|
|
28102
28654
|
)}
|
|
@@ -28494,379 +29046,6 @@ var SliccMemory = class extends ModelElement {
|
|
|
28494
29046
|
}
|
|
28495
29047
|
};
|
|
28496
29048
|
|
|
28497
|
-
// src/app/monitor.ts
|
|
28498
|
-
function sparkline(points, width = 120, height = 28) {
|
|
28499
|
-
if (points.length < 2) return "";
|
|
28500
|
-
const max2 = Math.max(...points);
|
|
28501
|
-
const min2 = Math.min(...points);
|
|
28502
|
-
const span = max2 - min2 || 1;
|
|
28503
|
-
return points.map(
|
|
28504
|
-
(value, i26) => `${(i26 / (points.length - 1) * width).toFixed(1)},${(height - (value - min2) / span * (height - 2) - 1).toFixed(1)}`
|
|
28505
|
-
).join(" ");
|
|
28506
|
-
}
|
|
28507
|
-
function meterVariant2(ratio) {
|
|
28508
|
-
if (ratio >= 0.9) return "negative";
|
|
28509
|
-
if (ratio >= 0.6) return "notice";
|
|
28510
|
-
return "informative";
|
|
28511
|
-
}
|
|
28512
|
-
var surfaces2 = {
|
|
28513
|
-
agents: "agents",
|
|
28514
|
-
terminals: "terminal",
|
|
28515
|
-
tabs: "browser",
|
|
28516
|
-
changes: "changes",
|
|
28517
|
-
processes: "terminal"
|
|
28518
|
-
};
|
|
28519
|
-
var rowLights = {
|
|
28520
|
-
active: "info",
|
|
28521
|
-
idle: "neutral",
|
|
28522
|
-
warn: "notice",
|
|
28523
|
-
error: "negative"
|
|
28524
|
-
};
|
|
28525
|
-
var rowSpoken = {
|
|
28526
|
-
active: "Active",
|
|
28527
|
-
idle: "Idle",
|
|
28528
|
-
warn: "Needs attention",
|
|
28529
|
-
error: "Error"
|
|
28530
|
-
};
|
|
28531
|
-
function indent2(depth) {
|
|
28532
|
-
return Math.min(Math.max(Math.floor(depth ?? 0), 0), 6);
|
|
28533
|
-
}
|
|
28534
|
-
function attention(section) {
|
|
28535
|
-
const errors = section.rows.filter((row) => row.status === "error").length;
|
|
28536
|
-
if (errors)
|
|
28537
|
-
return { variant: "negative", text: `${errors} ${errors === 1 ? "error" : "errors"}` };
|
|
28538
|
-
const warnings = section.rows.filter((row) => row.status === "warn").length;
|
|
28539
|
-
if (warnings)
|
|
28540
|
-
return {
|
|
28541
|
-
variant: "notice",
|
|
28542
|
-
text: `${warnings} ${warnings === 1 ? "needs" : "need"} attention`
|
|
28543
|
-
};
|
|
28544
|
-
return null;
|
|
28545
|
-
}
|
|
28546
|
-
var SliccMonitor = class extends ModelElement {
|
|
28547
|
-
static properties = {
|
|
28548
|
-
...ModelElement.properties,
|
|
28549
|
-
expanded: { state: true },
|
|
28550
|
-
copied: { state: true }
|
|
28551
|
-
};
|
|
28552
|
-
constructor() {
|
|
28553
|
-
super();
|
|
28554
|
-
this.expanded = {};
|
|
28555
|
-
this.copied = null;
|
|
28556
|
-
}
|
|
28557
|
-
static styles = [
|
|
28558
|
-
shared,
|
|
28559
|
-
panelCss,
|
|
28560
|
-
i`
|
|
28561
|
-
.bar {
|
|
28562
|
-
padding-block: var(--swc-spacing-50);
|
|
28563
|
-
}
|
|
28564
|
-
.heading {
|
|
28565
|
-
flex: 1;
|
|
28566
|
-
min-width: 0;
|
|
28567
|
-
display: flex;
|
|
28568
|
-
flex-wrap: wrap;
|
|
28569
|
-
align-items: baseline;
|
|
28570
|
-
column-gap: var(--swc-spacing-100);
|
|
28571
|
-
white-space: normal;
|
|
28572
|
-
}
|
|
28573
|
-
.bar swc-action-button {
|
|
28574
|
-
flex: none;
|
|
28575
|
-
}
|
|
28576
|
-
.body {
|
|
28577
|
-
flex: 1;
|
|
28578
|
-
min-height: 0;
|
|
28579
|
-
overflow-y: auto;
|
|
28580
|
-
padding: var(--swc-spacing-100);
|
|
28581
|
-
display: grid;
|
|
28582
|
-
grid-template-columns: minmax(0, 1fr);
|
|
28583
|
-
align-content: start;
|
|
28584
|
-
gap: var(--swc-spacing-200);
|
|
28585
|
-
}
|
|
28586
|
-
.vitals {
|
|
28587
|
-
display: grid;
|
|
28588
|
-
grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--swc-card-default-width-extra-small)), 1fr));
|
|
28589
|
-
gap: var(--swc-spacing-100);
|
|
28590
|
-
}
|
|
28591
|
-
.vital {
|
|
28592
|
-
display: grid;
|
|
28593
|
-
align-content: start;
|
|
28594
|
-
gap: var(--swc-spacing-50);
|
|
28595
|
-
border-radius: var(--swc-corner-radius-medium-default);
|
|
28596
|
-
padding: var(--swc-spacing-200);
|
|
28597
|
-
background: var(--swc-background-layer-1-color);
|
|
28598
|
-
}
|
|
28599
|
-
.label {
|
|
28600
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
28601
|
-
font-size: var(--swc-font-size-75);
|
|
28602
|
-
}
|
|
28603
|
-
.value {
|
|
28604
|
-
font-size: var(--swc-font-size-300);
|
|
28605
|
-
font-weight: var(--swc-bold-font-weight);
|
|
28606
|
-
font-variant-numeric: tabular-nums;
|
|
28607
|
-
}
|
|
28608
|
-
.unit,
|
|
28609
|
-
.delta {
|
|
28610
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
28611
|
-
margin-inline-start: var(--swc-spacing-75);
|
|
28612
|
-
}
|
|
28613
|
-
svg {
|
|
28614
|
-
display: block;
|
|
28615
|
-
width: 100%;
|
|
28616
|
-
height: var(--swc-component-height-100);
|
|
28617
|
-
}
|
|
28618
|
-
polyline {
|
|
28619
|
-
fill: none;
|
|
28620
|
-
stroke: var(--swc-accent-visual-color);
|
|
28621
|
-
stroke-width: 1.5;
|
|
28622
|
-
}
|
|
28623
|
-
swc-meter {
|
|
28624
|
-
width: 100%;
|
|
28625
|
-
}
|
|
28626
|
-
.alerts {
|
|
28627
|
-
display: grid;
|
|
28628
|
-
gap: var(--swc-spacing-75);
|
|
28629
|
-
margin: 0;
|
|
28630
|
-
padding: 0;
|
|
28631
|
-
list-style: none;
|
|
28632
|
-
}
|
|
28633
|
-
.alert {
|
|
28634
|
-
display: grid;
|
|
28635
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
28636
|
-
gap: var(--swc-spacing-100);
|
|
28637
|
-
align-items: start;
|
|
28638
|
-
border-radius: var(--swc-corner-radius-medium-default);
|
|
28639
|
-
padding: var(--swc-spacing-100) var(--swc-spacing-200);
|
|
28640
|
-
background: var(--swc-notice-subtle-background-color-default);
|
|
28641
|
-
}
|
|
28642
|
-
.alert[data-severity='error'] {
|
|
28643
|
-
background: var(--swc-negative-subtle-background-color-default);
|
|
28644
|
-
}
|
|
28645
|
-
.alert swc-icon-alert-triangle {
|
|
28646
|
-
color: var(--swc-icon-color-notice);
|
|
28647
|
-
}
|
|
28648
|
-
.alert swc-icon-alert-diamond {
|
|
28649
|
-
color: var(--swc-icon-color-negative);
|
|
28650
|
-
}
|
|
28651
|
-
.alert .detail {
|
|
28652
|
-
display: block;
|
|
28653
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
28654
|
-
}
|
|
28655
|
-
.alert > div {
|
|
28656
|
-
min-width: 0;
|
|
28657
|
-
}
|
|
28658
|
-
.alert .command {
|
|
28659
|
-
display: flex;
|
|
28660
|
-
align-items: center;
|
|
28661
|
-
gap: var(--swc-spacing-100);
|
|
28662
|
-
margin-block-start: var(--swc-spacing-75);
|
|
28663
|
-
padding-inline-start: var(--swc-spacing-100);
|
|
28664
|
-
border-radius: var(--swc-corner-radius-medium-default);
|
|
28665
|
-
background: var(--swc-background-layer-1-color);
|
|
28666
|
-
}
|
|
28667
|
-
.alert code {
|
|
28668
|
-
flex: 1;
|
|
28669
|
-
min-width: 0;
|
|
28670
|
-
overflow-x: auto;
|
|
28671
|
-
white-space: nowrap;
|
|
28672
|
-
font-family: var(--swc-code-font-family-stack);
|
|
28673
|
-
font-size: var(--swc-font-size-75);
|
|
28674
|
-
color: var(--swc-code-color);
|
|
28675
|
-
}
|
|
28676
|
-
.alert .lead {
|
|
28677
|
-
display: block;
|
|
28678
|
-
margin-block-start: var(--swc-spacing-75);
|
|
28679
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
28680
|
-
}
|
|
28681
|
-
.alert .uncopied {
|
|
28682
|
-
display: block;
|
|
28683
|
-
color: var(--swc-negative-content-color-default);
|
|
28684
|
-
}
|
|
28685
|
-
.sections {
|
|
28686
|
-
display: grid;
|
|
28687
|
-
margin: 0;
|
|
28688
|
-
padding: 0;
|
|
28689
|
-
list-style: none;
|
|
28690
|
-
}
|
|
28691
|
-
.section {
|
|
28692
|
-
display: grid;
|
|
28693
|
-
}
|
|
28694
|
-
.line {
|
|
28695
|
-
display: flex;
|
|
28696
|
-
flex-wrap: wrap;
|
|
28697
|
-
align-items: center;
|
|
28698
|
-
gap: var(--swc-spacing-100);
|
|
28699
|
-
min-height: var(--swc-component-height-100);
|
|
28700
|
-
padding: var(--swc-spacing-50) 0;
|
|
28701
|
-
}
|
|
28702
|
-
.toggle {
|
|
28703
|
-
all: unset;
|
|
28704
|
-
box-sizing: border-box;
|
|
28705
|
-
flex: 1 1 auto;
|
|
28706
|
-
min-width: 0;
|
|
28707
|
-
display: flex;
|
|
28708
|
-
align-items: center;
|
|
28709
|
-
gap: var(--swc-spacing-75);
|
|
28710
|
-
cursor: pointer;
|
|
28711
|
-
border-radius: var(--swc-corner-radius-small-default);
|
|
28712
|
-
}
|
|
28713
|
-
.toggle:focus-visible {
|
|
28714
|
-
outline: var(--swc-focus-indicator-thickness) solid var(--swc-focus-indicator-color);
|
|
28715
|
-
outline-offset: var(--swc-focus-ring-gap);
|
|
28716
|
-
}
|
|
28717
|
-
.chevron {
|
|
28718
|
-
flex: none;
|
|
28719
|
-
width: var(--swc-component-height-50);
|
|
28720
|
-
display: inline-flex;
|
|
28721
|
-
justify-content: center;
|
|
28722
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
28723
|
-
}
|
|
28724
|
-
.toggle[aria-expanded='true'] swc-icon-chevron-right {
|
|
28725
|
-
transform: rotate(90deg);
|
|
28726
|
-
}
|
|
28727
|
-
:host(:dir(rtl)) .toggle[aria-expanded='false'] swc-icon-chevron-right {
|
|
28728
|
-
transform: scaleX(-1);
|
|
28729
|
-
}
|
|
28730
|
-
.line .name {
|
|
28731
|
-
flex: 1 1 auto;
|
|
28732
|
-
min-width: 0;
|
|
28733
|
-
}
|
|
28734
|
-
.line .num {
|
|
28735
|
-
font-weight: var(--swc-bold-font-weight);
|
|
28736
|
-
font-variant-numeric: tabular-nums;
|
|
28737
|
-
}
|
|
28738
|
-
.rows {
|
|
28739
|
-
display: grid;
|
|
28740
|
-
gap: var(--swc-spacing-50);
|
|
28741
|
-
margin: 0 0 var(--swc-spacing-100);
|
|
28742
|
-
padding: 0;
|
|
28743
|
-
padding-inline-start: calc(var(--swc-component-height-50) + var(--swc-spacing-75));
|
|
28744
|
-
list-style: none;
|
|
28745
|
-
}
|
|
28746
|
-
.row {
|
|
28747
|
-
display: grid;
|
|
28748
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
28749
|
-
align-items: center;
|
|
28750
|
-
column-gap: var(--swc-spacing-100);
|
|
28751
|
-
padding-inline-start: calc(var(--depth, 0) * var(--swc-spacing-300));
|
|
28752
|
-
}
|
|
28753
|
-
.row swc-status-light {
|
|
28754
|
-
min-width: 0;
|
|
28755
|
-
overflow-wrap: break-word;
|
|
28756
|
-
}
|
|
28757
|
-
.row .badges {
|
|
28758
|
-
grid-column: 2;
|
|
28759
|
-
grid-row: 1 / span 2;
|
|
28760
|
-
align-self: start;
|
|
28761
|
-
display: flex;
|
|
28762
|
-
flex-wrap: wrap;
|
|
28763
|
-
justify-content: end;
|
|
28764
|
-
gap: var(--swc-spacing-50);
|
|
28765
|
-
}
|
|
28766
|
-
.row swc-status-light {
|
|
28767
|
-
grid-column: 1;
|
|
28768
|
-
grid-row: 1;
|
|
28769
|
-
}
|
|
28770
|
-
.row .meta {
|
|
28771
|
-
grid-column: 1;
|
|
28772
|
-
grid-row: 2;
|
|
28773
|
-
padding-inline-start: var(--swc-spacing-300);
|
|
28774
|
-
color: var(--swc-neutral-subdued-content-color-default);
|
|
28775
|
-
font-size: var(--swc-font-size-75);
|
|
28776
|
-
overflow-wrap: break-word;
|
|
28777
|
-
}
|
|
28778
|
-
`
|
|
28779
|
-
];
|
|
28780
|
-
subscribe(model) {
|
|
28781
|
-
return [model.monitor.on("snapshot", () => this.requestUpdate())];
|
|
28782
|
-
}
|
|
28783
|
-
focus() {
|
|
28784
|
-
this.focusOn(".bar swc-action-button");
|
|
28785
|
-
}
|
|
28786
|
-
#vital(vital) {
|
|
28787
|
-
if (vital.ratio !== void 0) {
|
|
28788
|
-
return b`<div class="vital" data-id=${vital.id}>
|
|
28789
|
-
<swc-meter
|
|
28790
|
-
size="s"
|
|
28791
|
-
variant=${meterVariant2(vital.ratio)}
|
|
28792
|
-
value=${Math.round(vital.ratio * 100)}
|
|
28793
|
-
value-label=${vital.value}
|
|
28794
|
-
><span slot="label">${vital.label}</span>${vital.unit ? b`<span slot="description">${vital.unit}</span>` : A}</swc-meter
|
|
28795
|
-
>
|
|
28796
|
-
</div>`;
|
|
28797
|
-
}
|
|
28798
|
-
const line = vital.series ? sparkline(vital.series) : "";
|
|
28799
|
-
return b`<div class="vital" data-id=${vital.id}>
|
|
28800
|
-
<div class="label">${vital.label}</div>
|
|
28801
|
-
<div><span class="value">${vital.value}</span>${vital.unit ? b`<span class="unit">${vital.unit}</span>` : A}${vital.delta ? b`<span class="delta">${vital.delta}</span>` : A}</div>
|
|
28802
|
-
${line ? b`<svg viewBox="0 0 120 28" preserveAspectRatio="none" aria-hidden="true">${w`<polyline points=${line}></polyline>`}</svg>` : A}
|
|
28803
|
-
</div>`;
|
|
28804
|
-
}
|
|
28805
|
-
#alert(alert) {
|
|
28806
|
-
const error = alert.severity === "error";
|
|
28807
|
-
return b`<li class="alert" data-severity=${alert.severity}>
|
|
28808
|
-
${error ? b`<swc-icon-alert-diamond size="s" aria-hidden="true"></swc-icon-alert-diamond>` : b`<swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle>`}
|
|
28809
|
-
<div><span class="sr">${error ? "Error: " : "Warning: "}</span><strong>${alert.title}</strong><span class="detail">${alert.detail}</span>${alert.command ? this.#command(alert.id, alert.command, alert.commandLabel ?? "Run") : A}</div>
|
|
28810
|
-
</li>`;
|
|
28811
|
-
}
|
|
28812
|
-
#command(id, text2, label) {
|
|
28813
|
-
const copied = this.copied?.id === id && this.copied.text === text2 ? this.copied : null;
|
|
28814
|
-
return b`<span class="lead">${label}:</span><div class="command" data-command><code>${text2}</code><swc-action-button size="s" quiet data-action="copy-command" accessible-label=${copied?.done ? "Copied" : "Copy command"} @click=${() => this.#copy(id, text2)}><swc-icon-copy slot="icon"></swc-icon-copy>${copied?.done ? "Copied" : "Copy"}</swc-action-button></div>${copied && !copied.done ? b`<span class="uncopied" role="alert" data-error="copy">Couldn’t copy. Select the command and copy it.</span>` : A}`;
|
|
28815
|
-
}
|
|
28816
|
-
async #copy(id, text2) {
|
|
28817
|
-
this.copied = { id, text: text2, done: await copyText(text2) };
|
|
28818
|
-
}
|
|
28819
|
-
#open(id) {
|
|
28820
|
-
this.dispatchEvent(
|
|
28821
|
-
new CustomEvent("show-surface", { detail: { id }, bubbles: true, composed: true })
|
|
28822
|
-
);
|
|
28823
|
-
}
|
|
28824
|
-
#row(row) {
|
|
28825
|
-
const depth = indent2(row.depth);
|
|
28826
|
-
return b`<li class="row" data-id=${row.id ?? A} data-status=${row.status} data-depth=${depth || A} style=${depth ? `--depth: ${depth}` : A}>
|
|
28827
|
-
<swc-status-light size="s" variant=${rowLights[row.status]}><span class="sr">${rowSpoken[row.status]}: </span>${row.name.split(/(?<=\/)/).map((part2, i26) => i26 ? b`<wbr>${part2}` : part2)}</swc-status-light>
|
|
28828
|
-
<span class="badges">${(row.badges ?? []).map((badge) => b`<swc-badge size="s" variant="neutral" subtle>${badge}</swc-badge>`)}</span>
|
|
28829
|
-
${row.meta ? b`<span class="meta">${row.meta}</span>` : A}
|
|
28830
|
-
</li>`;
|
|
28831
|
-
}
|
|
28832
|
-
#section(section) {
|
|
28833
|
-
const flag = attention(section);
|
|
28834
|
-
const surface2 = surfaces2[section.id];
|
|
28835
|
-
const rows = section.rows.length > 0;
|
|
28836
|
-
const open = rows && (this.expanded[section.id] ?? flag !== null);
|
|
28837
|
-
const list5 = `rows-${section.id}`;
|
|
28838
|
-
return b`<li class="section" data-id=${section.id} data-open=${open ? "" : A}>
|
|
28839
|
-
<div class="line">
|
|
28840
|
-
${rows ? b`<button class="toggle" aria-expanded=${open ? "true" : "false"} aria-controls=${open ? list5 : A} @click=${() => {
|
|
28841
|
-
this.expanded = { ...this.expanded, [section.id]: !open };
|
|
28842
|
-
}}><span class="chevron"><swc-icon-chevron-right size="s" aria-hidden="true"></swc-icon-chevron-right></span><span class="name">${section.label}</span></button>` : b`<span class="chevron"></span><span class="name">${section.label}</span>`}
|
|
28843
|
-
${flag ? b`<swc-badge size="s" variant=${flag.variant} subtle>${flag.text}</swc-badge>` : A}
|
|
28844
|
-
<span class="num">${section.rows.length}</span>
|
|
28845
|
-
${surface2 ? b`<swc-action-button size="s" quiet accessible-label=${`Open ${section.label}`} @click=${() => this.#open(surface2)}
|
|
28846
|
-
>Open</swc-action-button
|
|
28847
|
-
>` : A}
|
|
28848
|
-
</div>
|
|
28849
|
-
${open ? b`<ul class="rows" id=${list5} aria-label=${section.label}>${c(
|
|
28850
|
-
section.rows,
|
|
28851
|
-
(row, i26) => row.id ?? i26,
|
|
28852
|
-
(row) => this.#row(row)
|
|
28853
|
-
)}</ul>` : A}
|
|
28854
|
-
</li>`;
|
|
28855
|
-
}
|
|
28856
|
-
render() {
|
|
28857
|
-
const snapshot2 = this.model?.monitor.snapshot();
|
|
28858
|
-
return b`<div class="bar">
|
|
28859
|
-
<span class="heading"><strong>Live monitor</strong><span>${snapshot2 ? `Updated ${new Date(snapshot2.updatedAt).toISOString().slice(11, 19)} UTC` : "No data"}</span></span>
|
|
28860
|
-
<swc-action-button size="s" quiet @click=${() => this.model?.monitor.resync()}><swc-icon-refresh slot="icon"></swc-icon-refresh>Re-sync</swc-action-button>
|
|
28861
|
-
</div>
|
|
28862
|
-
<div class="body">
|
|
28863
|
-
${snapshot2 ? b`<div class="vitals">${snapshot2.vitals.map((vital) => this.#vital(vital))}</div>
|
|
28864
|
-
${snapshot2.alerts.length ? b`<ul class="alerts" aria-label="Alerts">${snapshot2.alerts.map((alert) => this.#alert(alert))}</ul>` : A}
|
|
28865
|
-
<ul class="sections" aria-label="Activity">${snapshot2.sections.map((section) => this.#section(section))}</ul>` : A}
|
|
28866
|
-
</div>`;
|
|
28867
|
-
}
|
|
28868
|
-
};
|
|
28869
|
-
|
|
28870
29049
|
// src/app/notices.ts
|
|
28871
29050
|
var SliccNotices = class extends ModelElement {
|
|
28872
29051
|
static properties = {
|
|
@@ -29131,8 +29310,8 @@ function revealed(name, entries, now = Date.now(), more = false) {
|
|
|
29131
29310
|
const start = startOfDay(now);
|
|
29132
29311
|
const today = reveals.filter((entry) => entry.at >= start).length;
|
|
29133
29312
|
const partial = more && (entries[entries.length - 1]?.at ?? 0) >= start;
|
|
29134
|
-
const
|
|
29135
|
-
return b`Revealed to programs ${
|
|
29313
|
+
const when2 = today ? `${partial ? "at least " : ""}${today} ${today === 1 ? "time" : "times"} today` : since(last.at, now);
|
|
29314
|
+
return b`Revealed to programs ${when2}, last by ${who(last)} with <code>${last.argv}</code>`;
|
|
29136
29315
|
}
|
|
29137
29316
|
function changes(entry, devices) {
|
|
29138
29317
|
if (entry.changes)
|
|
@@ -29193,8 +29372,8 @@ var importKinds = {
|
|
|
29193
29372
|
};
|
|
29194
29373
|
function exported(at) {
|
|
29195
29374
|
if (at === void 0) return A;
|
|
29196
|
-
const
|
|
29197
|
-
return b`<span class="muted" data-exported>${
|
|
29375
|
+
const when2 = at === null ? "Never exported" : `Last exported ${new Intl.DateTimeFormat(void 0, { dateStyle: "medium" }).format(at)}`;
|
|
29376
|
+
return b`<span class="muted" data-exported>${when2}</span>`;
|
|
29198
29377
|
}
|
|
29199
29378
|
function prompt2(text2) {
|
|
29200
29379
|
return text2.length > 200 ? `${text2.slice(0, 199)}\u2026` : text2;
|
|
@@ -43113,8 +43292,8 @@ var SecondPassVisitor = {
|
|
|
43113
43292
|
openRefs,
|
|
43114
43293
|
reffedNodesByReferencer
|
|
43115
43294
|
}) {
|
|
43116
|
-
const
|
|
43117
|
-
if (
|
|
43295
|
+
const origin2 = groupOriginByCopy.get(node);
|
|
43296
|
+
if (origin2 && openRefs.has(node.number)) {
|
|
43118
43297
|
const recursion2 = setParent(createRecursion(node.number), parent);
|
|
43119
43298
|
reffedNodesByReferencer.set(recursion2, openRefs.get(node.number));
|
|
43120
43299
|
replaceWith(recursion2);
|
|
@@ -43131,7 +43310,7 @@ var SecondPassVisitor = {
|
|
|
43131
43310
|
if (
|
|
43132
43311
|
// This group is from subroutine expansion, and there's a multiplex value from either the
|
|
43133
43312
|
// origin node or a prior subroutine expansion group with the same origin
|
|
43134
|
-
|
|
43313
|
+
origin2 === multiplex.node || origin2 && origin2 === multiplex.origin || // This group is not from subroutine expansion, and it comes after a subroutine expansion
|
|
43135
43314
|
// group that refers to this group
|
|
43136
43315
|
node === multiplex.origin
|
|
43137
43316
|
) {
|
|
@@ -43139,14 +43318,14 @@ var SecondPassVisitor = {
|
|
|
43139
43318
|
break;
|
|
43140
43319
|
}
|
|
43141
43320
|
}
|
|
43142
|
-
multiplexCapturesToLeftByRef.get(node.number).push({ node, origin });
|
|
43321
|
+
multiplexCapturesToLeftByRef.get(node.number).push({ node, origin: origin2 });
|
|
43143
43322
|
if (node.name) {
|
|
43144
|
-
multiplexCapturesToLeftByRef.get(node.name).push({ node, origin });
|
|
43323
|
+
multiplexCapturesToLeftByRef.get(node.name).push({ node, origin: origin2 });
|
|
43145
43324
|
}
|
|
43146
43325
|
if (node.name) {
|
|
43147
43326
|
const groupsWithSameName = getOrInsert(groupsByName, node.name, /* @__PURE__ */ new Map());
|
|
43148
43327
|
let hasDuplicateNameToRemove = false;
|
|
43149
|
-
if (
|
|
43328
|
+
if (origin2) {
|
|
43150
43329
|
hasDuplicateNameToRemove = true;
|
|
43151
43330
|
} else {
|
|
43152
43331
|
for (const groupInfo of groupsWithSameName.values()) {
|
|
@@ -43618,11 +43797,11 @@ var generator = {
|
|
|
43618
43797
|
CapturingGroup(node, state3, gen) {
|
|
43619
43798
|
const { body: body4, name, number: number2 } = node;
|
|
43620
43799
|
const data = { ignoreCase: state3.currentFlags.ignoreCase };
|
|
43621
|
-
const
|
|
43622
|
-
if (
|
|
43800
|
+
const origin2 = state3.originMap.get(node);
|
|
43801
|
+
if (origin2) {
|
|
43623
43802
|
data.hidden = true;
|
|
43624
|
-
if (number2 >
|
|
43625
|
-
data.transferTo =
|
|
43803
|
+
if (number2 > origin2.number) {
|
|
43804
|
+
data.transferTo = origin2.number;
|
|
43626
43805
|
}
|
|
43627
43806
|
}
|
|
43628
43807
|
state3.captureMap.set(number2, data);
|
|
@@ -70542,13 +70721,13 @@ var DockviewComponent = class extends BaseGrid {
|
|
|
70542
70721
|
/** ISmartGuidesHost: the main grid's splitter (sash) rectangles, in the
|
|
70543
70722
|
* floating container's coordinate space, for the optional splitter target. */
|
|
70544
70723
|
getGridSplitterRects() {
|
|
70545
|
-
const
|
|
70724
|
+
const origin2 = this.getFloatingContainer().getBoundingClientRect();
|
|
70546
70725
|
const result = [];
|
|
70547
70726
|
this.gridview.element.querySelectorAll(".dv-sash").forEach((sash) => {
|
|
70548
70727
|
const r40 = sash.getBoundingClientRect();
|
|
70549
70728
|
result.push({
|
|
70550
|
-
left: r40.left -
|
|
70551
|
-
top: r40.top -
|
|
70729
|
+
left: r40.left - origin2.left,
|
|
70730
|
+
top: r40.top - origin2.top,
|
|
70552
70731
|
width: r40.width,
|
|
70553
70732
|
height: r40.height
|
|
70554
70733
|
});
|
|
@@ -72775,10 +72954,10 @@ var DockviewComponent = class extends BaseGrid {
|
|
|
72775
72954
|
* therefore report as one, tagged with the kind of the last to finish.
|
|
72776
72955
|
*/
|
|
72777
72956
|
openMutation(kind) {
|
|
72778
|
-
const
|
|
72957
|
+
const origin2 = this._origin;
|
|
72779
72958
|
if (this._mutationDepth === 0) this._onWillMutateLayout.fire({
|
|
72780
72959
|
kind,
|
|
72781
|
-
origin
|
|
72960
|
+
origin: origin2
|
|
72782
72961
|
});
|
|
72783
72962
|
this._mutationDepth++;
|
|
72784
72963
|
return () => {
|
|
@@ -72788,7 +72967,7 @@ var DockviewComponent = class extends BaseGrid {
|
|
|
72788
72967
|
this.flushLocationChanges();
|
|
72789
72968
|
this._onDidMutateLayout.fire({
|
|
72790
72969
|
kind,
|
|
72791
|
-
origin
|
|
72970
|
+
origin: origin2
|
|
72792
72971
|
});
|
|
72793
72972
|
}
|
|
72794
72973
|
};
|
|
@@ -72852,10 +73031,10 @@ var DockviewComponent = class extends BaseGrid {
|
|
|
72852
73031
|
* call made while a mutation is already in flight) keeps whatever the
|
|
72853
73032
|
* enclosing operation established, so the trigger always wins.
|
|
72854
73033
|
*/
|
|
72855
|
-
withOrigin(
|
|
73034
|
+
withOrigin(origin2, func) {
|
|
72856
73035
|
if (this._originDepth > 0 || this._mutationDepth > 0) return func();
|
|
72857
73036
|
const previous = this._origin;
|
|
72858
|
-
this._origin =
|
|
73037
|
+
this._origin = origin2;
|
|
72859
73038
|
this._originDepth++;
|
|
72860
73039
|
try {
|
|
72861
73040
|
return func();
|
|
@@ -83018,8 +83197,9 @@ export {
|
|
|
83018
83197
|
panelCommand,
|
|
83019
83198
|
prompt,
|
|
83020
83199
|
resolveColor,
|
|
83200
|
+
secretRules,
|
|
83021
83201
|
setGrammarBase,
|
|
83022
|
-
surfaces
|
|
83202
|
+
surfaces2 as surfaces
|
|
83023
83203
|
};
|
|
83024
83204
|
/*! Bundled license information:
|
|
83025
83205
|
|