@ai-ecoverse/slicc-spectrum 1.103.1 → 1.103.3
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 +14 -10
- package/dist/slicc-dummy.js +77 -1
- package/dist/slicc-dummy.js.map +2 -2
- package/dist/slicc-ui.js +351 -247
- package/dist/slicc-ui.js.map +4 -4
- package/dist/types/app/ansi.d.ts +8 -1
- package/dist/types/app/messages.d.ts +3 -1
- package/dist/types/dummy/vault.d.ts +2 -1
- package/dist/types/dummy.d.ts +1 -1
- package/dist/types/model/types.d.ts +14 -1
- package/package.json +8 -8
package/dist/slicc-ui.js
CHANGED
|
@@ -6247,8 +6247,8 @@ var containRe = /paint|layout|strict|content/;
|
|
|
6247
6247
|
var isNotNone = (value) => !!value && value !== "none";
|
|
6248
6248
|
var isWebKitValue;
|
|
6249
6249
|
function isContainingBlock(elementOrCss) {
|
|
6250
|
-
const
|
|
6251
|
-
return isNotNone(
|
|
6250
|
+
const css3 = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
|
|
6251
|
+
return isNotNone(css3.transform) || isNotNone(css3.translate) || isNotNone(css3.scale) || isNotNone(css3.rotate) || isNotNone(css3.perspective) || !isWebKit2() && (isNotNone(css3.backdropFilter) || isNotNone(css3.filter)) || willChangeRe.test(css3.willChange || "") || containRe.test(css3.contain || "");
|
|
6252
6252
|
}
|
|
6253
6253
|
function getContainingBlock(element3) {
|
|
6254
6254
|
let currentNode = getParentNode(element3);
|
|
@@ -6333,9 +6333,9 @@ function getFrameElement(win) {
|
|
|
6333
6333
|
|
|
6334
6334
|
// node_modules/@adobe/spectrum-wc-core/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
|
|
6335
6335
|
function getCssDimensions(element3) {
|
|
6336
|
-
const
|
|
6337
|
-
let width = parseFloat(
|
|
6338
|
-
let height = parseFloat(
|
|
6336
|
+
const css3 = getComputedStyle2(element3);
|
|
6337
|
+
let width = parseFloat(css3.width) || 0;
|
|
6338
|
+
let height = parseFloat(css3.height) || 0;
|
|
6339
6339
|
const hasOffset = isHTMLElement(element3);
|
|
6340
6340
|
const offsetWidth = hasOffset ? element3.offsetWidth : width;
|
|
6341
6341
|
const offsetHeight = hasOffset ? element3.offsetHeight : height;
|
|
@@ -6429,9 +6429,9 @@ function getBoundingClientRect(element3, includeScale, isFixedStrategy, offsetPa
|
|
|
6429
6429
|
while (currentIFrame && offsetParent && offsetWin !== currentWin) {
|
|
6430
6430
|
const iframeScale = getScale(currentIFrame);
|
|
6431
6431
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
6432
|
-
const
|
|
6433
|
-
const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(
|
|
6434
|
-
const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(
|
|
6432
|
+
const css3 = getComputedStyle2(currentIFrame);
|
|
6433
|
+
const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css3.paddingLeft)) * iframeScale.x;
|
|
6434
|
+
const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css3.paddingTop)) * iframeScale.y;
|
|
6435
6435
|
x7 *= iframeScale.x;
|
|
6436
6436
|
y10 *= iframeScale.y;
|
|
6437
6437
|
width *= iframeScale.x;
|
|
@@ -6821,20 +6821,20 @@ function observeMove(element3, onMove) {
|
|
|
6821
6821
|
};
|
|
6822
6822
|
let isFirstUpdate = true;
|
|
6823
6823
|
function handleObserve(entries) {
|
|
6824
|
-
const
|
|
6825
|
-
if (
|
|
6824
|
+
const ratio2 = entries[0].intersectionRatio;
|
|
6825
|
+
if (ratio2 !== threshold) {
|
|
6826
6826
|
if (!isFirstUpdate) {
|
|
6827
6827
|
return refresh2();
|
|
6828
6828
|
}
|
|
6829
|
-
if (!
|
|
6829
|
+
if (!ratio2) {
|
|
6830
6830
|
timeoutId = setTimeout(() => {
|
|
6831
6831
|
refresh2(false, 1e-7);
|
|
6832
6832
|
}, 1e3);
|
|
6833
6833
|
} else {
|
|
6834
|
-
refresh2(false,
|
|
6834
|
+
refresh2(false, ratio2);
|
|
6835
6835
|
}
|
|
6836
6836
|
}
|
|
6837
|
-
if (
|
|
6837
|
+
if (ratio2 === 1 && !rectsAreEqual(elementRectForRootMargin, element3.getBoundingClientRect())) {
|
|
6838
6838
|
refresh2();
|
|
6839
6839
|
}
|
|
6840
6840
|
isFirstUpdate = false;
|
|
@@ -10438,6 +10438,299 @@ e25("swc-icon-new", o55);
|
|
|
10438
10438
|
// node_modules/@adobe/spectrum-wc/dist/link.css
|
|
10439
10439
|
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';
|
|
10440
10440
|
|
|
10441
|
+
// src/app/ansi.ts
|
|
10442
|
+
var lightPalette = [
|
|
10443
|
+
"gray-800",
|
|
10444
|
+
"negative-color-900",
|
|
10445
|
+
"positive-color-900",
|
|
10446
|
+
"notice-color-1000",
|
|
10447
|
+
"informative-color-900",
|
|
10448
|
+
"purple-900",
|
|
10449
|
+
"cyan-1000",
|
|
10450
|
+
"gray-600",
|
|
10451
|
+
"gray-700",
|
|
10452
|
+
"negative-color-1000",
|
|
10453
|
+
"positive-color-1000",
|
|
10454
|
+
"notice-color-1100",
|
|
10455
|
+
"informative-color-1000",
|
|
10456
|
+
"purple-1000",
|
|
10457
|
+
"cyan-1100",
|
|
10458
|
+
"gray-800"
|
|
10459
|
+
];
|
|
10460
|
+
var terminalPalette = r(
|
|
10461
|
+
lightPalette.map((token2, n37) => `--slicc-terminal-color-${n37}: var(--swc-${token2});`).join("\n")
|
|
10462
|
+
);
|
|
10463
|
+
var tints = [
|
|
10464
|
+
"gray-800",
|
|
10465
|
+
"negative-subtle-background-color-default",
|
|
10466
|
+
"positive-subtle-background-color-default",
|
|
10467
|
+
"notice-subtle-background-color-default",
|
|
10468
|
+
"informative-subtle-background-color-default",
|
|
10469
|
+
"purple-subtle-background-color-default",
|
|
10470
|
+
"cyan-subtle-background-color-default",
|
|
10471
|
+
"gray-subtle-background-color-default"
|
|
10472
|
+
];
|
|
10473
|
+
var plain = {
|
|
10474
|
+
bold: false,
|
|
10475
|
+
dim: false,
|
|
10476
|
+
italic: false,
|
|
10477
|
+
underline: false,
|
|
10478
|
+
inverse: false,
|
|
10479
|
+
fg: null,
|
|
10480
|
+
bg: null
|
|
10481
|
+
};
|
|
10482
|
+
var levels = [0, 95, 135, 175, 215, 255];
|
|
10483
|
+
function indexed(n37) {
|
|
10484
|
+
if (!Number.isInteger(n37) || n37 < 0 || n37 > 255) return null;
|
|
10485
|
+
if (n37 < 16) return n37;
|
|
10486
|
+
if (n37 >= 232) {
|
|
10487
|
+
const grey = 8 + (n37 - 232) * 10;
|
|
10488
|
+
return `rgb(${grey}, ${grey}, ${grey})`;
|
|
10489
|
+
}
|
|
10490
|
+
const cube = n37 - 16;
|
|
10491
|
+
const [r40, g7, b13] = [Math.floor(cube / 36), Math.floor(cube / 6) % 6, cube % 6].map(
|
|
10492
|
+
(level) => levels[level]
|
|
10493
|
+
);
|
|
10494
|
+
return `rgb(${r40}, ${g7}, ${b13})`;
|
|
10495
|
+
}
|
|
10496
|
+
function channel(value) {
|
|
10497
|
+
return Number.isInteger(value) && value >= 0 && value <= 255 ? value : null;
|
|
10498
|
+
}
|
|
10499
|
+
function extended(params, at) {
|
|
10500
|
+
const mode2 = params[at + 1];
|
|
10501
|
+
if (mode2 === 5) return { color: indexed(params[at + 2]), used: 2 };
|
|
10502
|
+
if (mode2 === 2) {
|
|
10503
|
+
const rgb = params.slice(at + 2, at + 5).map(channel);
|
|
10504
|
+
const ok4 = rgb.length === 3 && rgb.every((value) => value !== null);
|
|
10505
|
+
return { color: ok4 ? `rgb(${rgb.join(", ")})` : null, used: 4 };
|
|
10506
|
+
}
|
|
10507
|
+
return { color: null, used: 0 };
|
|
10508
|
+
}
|
|
10509
|
+
function numbers(text5) {
|
|
10510
|
+
return text5.split(":").map((part2) => part2 === "" ? 0 : Number(part2));
|
|
10511
|
+
}
|
|
10512
|
+
var flags = {
|
|
10513
|
+
0: plain,
|
|
10514
|
+
1: { bold: true },
|
|
10515
|
+
2: { dim: true },
|
|
10516
|
+
3: { italic: true },
|
|
10517
|
+
4: { underline: true },
|
|
10518
|
+
7: { inverse: true },
|
|
10519
|
+
22: { bold: false, dim: false },
|
|
10520
|
+
23: { italic: false },
|
|
10521
|
+
24: { underline: false },
|
|
10522
|
+
27: { inverse: false },
|
|
10523
|
+
39: { fg: null },
|
|
10524
|
+
49: { bg: null }
|
|
10525
|
+
};
|
|
10526
|
+
var ranges = [
|
|
10527
|
+
[30, "fg", 0],
|
|
10528
|
+
[40, "bg", 0],
|
|
10529
|
+
[90, "fg", 8],
|
|
10530
|
+
[100, "bg", 8]
|
|
10531
|
+
];
|
|
10532
|
+
function simple(code3) {
|
|
10533
|
+
const flag = flags[code3];
|
|
10534
|
+
if (flag) return flag;
|
|
10535
|
+
const range3 = ranges.find(([start2]) => code3 >= start2 && code3 < start2 + 8);
|
|
10536
|
+
return range3 ? { [range3[1]]: code3 - range3[0] + range3[2] } : null;
|
|
10537
|
+
}
|
|
10538
|
+
function wide(groups2, i26) {
|
|
10539
|
+
const group = groups2[i26];
|
|
10540
|
+
if (group.length === 1)
|
|
10541
|
+
return extended(
|
|
10542
|
+
groups2.slice(i26).map((entry) => entry[0]),
|
|
10543
|
+
0
|
|
10544
|
+
);
|
|
10545
|
+
const spaced = group[1] === 2 && group.length > 5;
|
|
10546
|
+
return { color: extended(spaced ? [0, 2, ...group.slice(3)] : group, 0).color, used: 0 };
|
|
10547
|
+
}
|
|
10548
|
+
function sgr(style, body4) {
|
|
10549
|
+
const next = { ...style };
|
|
10550
|
+
const groups2 = body4 === "" ? [[0]] : body4.split(";").map(numbers);
|
|
10551
|
+
for (let i26 = 0; i26 < groups2.length; i26++) {
|
|
10552
|
+
const group = groups2[i26];
|
|
10553
|
+
const code3 = group[0];
|
|
10554
|
+
if (code3 === 38 || code3 === 48) {
|
|
10555
|
+
const { color: color2, used } = wide(groups2, i26);
|
|
10556
|
+
i26 += used;
|
|
10557
|
+
if (color2 !== null) next[code3 === 38 ? "fg" : "bg"] = color2;
|
|
10558
|
+
} else if (code3 === 4 && group.length > 1) next.underline = group[1] !== 0;
|
|
10559
|
+
else Object.assign(next, simple(code3));
|
|
10560
|
+
}
|
|
10561
|
+
return next;
|
|
10562
|
+
}
|
|
10563
|
+
function terminated(text5, from, streaming) {
|
|
10564
|
+
for (let i26 = from; i26 < text5.length; i26++) {
|
|
10565
|
+
if (text5[i26] === "\x07") return i26 + 1;
|
|
10566
|
+
if (text5[i26] === "\x1B" && text5[i26 + 1] === "\\") return i26 + 2;
|
|
10567
|
+
}
|
|
10568
|
+
if (streaming) return -1;
|
|
10569
|
+
const line = text5.indexOf("\n", from);
|
|
10570
|
+
return line === -1 ? text5.length : line;
|
|
10571
|
+
}
|
|
10572
|
+
function csi(text5, from) {
|
|
10573
|
+
for (let i26 = from; i26 < text5.length; i26++) {
|
|
10574
|
+
const code3 = text5.charCodeAt(i26);
|
|
10575
|
+
if (code3 >= 64 && code3 <= 126) {
|
|
10576
|
+
return { end: i26 + 1, body: text5.slice(from, i26), final: text5[i26] };
|
|
10577
|
+
}
|
|
10578
|
+
if (code3 < 32 || code3 > 63) return { end: i26, body: "", final: "" };
|
|
10579
|
+
}
|
|
10580
|
+
return null;
|
|
10581
|
+
}
|
|
10582
|
+
function escape(text5, at, style, streaming) {
|
|
10583
|
+
const kind = text5[at + 1];
|
|
10584
|
+
if (kind === void 0) return { end: -1, style };
|
|
10585
|
+
if (kind === "[") {
|
|
10586
|
+
const found = csi(text5, at + 2);
|
|
10587
|
+
if (!found) return { end: -1, style };
|
|
10588
|
+
const styled = found.final === "m" && /^[\d;:]*$/.test(found.body);
|
|
10589
|
+
return { end: found.end, style: styled ? sgr(style, found.body) : style };
|
|
10590
|
+
}
|
|
10591
|
+
if ("]PX^_".includes(kind)) return { end: terminated(text5, at + 2, streaming), style };
|
|
10592
|
+
let i26 = at + 1;
|
|
10593
|
+
while (i26 < text5.length && text5.charCodeAt(i26) >= 32 && text5.charCodeAt(i26) <= 47) i26++;
|
|
10594
|
+
if (i26 === text5.length) return { end: -1, style };
|
|
10595
|
+
const final = text5.charCodeAt(i26);
|
|
10596
|
+
return { end: final >= 48 && final <= 126 ? i26 + 1 : at + 1, style };
|
|
10597
|
+
}
|
|
10598
|
+
function parseAnsi(text5, streaming = false) {
|
|
10599
|
+
const runs = [];
|
|
10600
|
+
let style = plain;
|
|
10601
|
+
let start2 = 0;
|
|
10602
|
+
const push2 = (end) => {
|
|
10603
|
+
if (end <= start2) return;
|
|
10604
|
+
const last = runs.at(-1);
|
|
10605
|
+
const piece = text5.slice(start2, end);
|
|
10606
|
+
if (last?.style === style) last.text += piece;
|
|
10607
|
+
else runs.push({ text: piece, style });
|
|
10608
|
+
};
|
|
10609
|
+
let i26 = text5.indexOf("\x1B");
|
|
10610
|
+
while (i26 !== -1) {
|
|
10611
|
+
push2(i26);
|
|
10612
|
+
const found = escape(text5, i26, style, streaming);
|
|
10613
|
+
if (found.end === -1) return runs;
|
|
10614
|
+
style = found.style;
|
|
10615
|
+
start2 = found.end;
|
|
10616
|
+
i26 = text5.indexOf("\x1B", start2);
|
|
10617
|
+
}
|
|
10618
|
+
push2(text5.length);
|
|
10619
|
+
return runs;
|
|
10620
|
+
}
|
|
10621
|
+
function swatch(color2) {
|
|
10622
|
+
if (color2 === null) return null;
|
|
10623
|
+
return typeof color2 === "number" ? `var(--slicc-terminal-color-${color2}, var(--swc-${lightPalette[color2]}))` : color2;
|
|
10624
|
+
}
|
|
10625
|
+
function on(rgb) {
|
|
10626
|
+
const [r40, g7, b13] = rgb.match(/\d+/g).map((value) => {
|
|
10627
|
+
const v13 = Number(value) / 255;
|
|
10628
|
+
return v13 <= 0.03928 ? v13 / 12.92 : ((v13 + 0.055) / 1.055) ** 2.4;
|
|
10629
|
+
});
|
|
10630
|
+
return 0.2126 * r40 + 0.7152 * g7 + 0.0722 * b13 > 0.179 ? "var(--swc-black)" : "var(--swc-white)";
|
|
10631
|
+
}
|
|
10632
|
+
function triple(color2) {
|
|
10633
|
+
const found = color2.match(/^rgb\((\d+), (\d+), (\d+)\)$/);
|
|
10634
|
+
return found ? found.slice(1).map(Number) : null;
|
|
10635
|
+
}
|
|
10636
|
+
function readSurface(root2) {
|
|
10637
|
+
const read = (scheme) => {
|
|
10638
|
+
const probe = document.createElement("div");
|
|
10639
|
+
probe.className = "call run-detail";
|
|
10640
|
+
probe.hidden = true;
|
|
10641
|
+
probe.style.colorScheme = scheme;
|
|
10642
|
+
root2.append(probe);
|
|
10643
|
+
const style = getComputedStyle(probe);
|
|
10644
|
+
const found = [triple(style.backgroundColor), triple(style.color)];
|
|
10645
|
+
probe.remove();
|
|
10646
|
+
return found;
|
|
10647
|
+
};
|
|
10648
|
+
const [light, dark] = [read("light"), read("dark")];
|
|
10649
|
+
if (![...light, ...dark].every(Boolean)) return void 0;
|
|
10650
|
+
return {
|
|
10651
|
+
card: [light[0], dark[0]],
|
|
10652
|
+
text: [light[1], dark[1]]
|
|
10653
|
+
};
|
|
10654
|
+
}
|
|
10655
|
+
function luminance(rgb) {
|
|
10656
|
+
const [r40, g7, b13] = rgb.map((value) => {
|
|
10657
|
+
const v13 = value / 255;
|
|
10658
|
+
return v13 <= 0.03928 ? v13 / 12.92 : ((v13 + 0.055) / 1.055) ** 2.4;
|
|
10659
|
+
});
|
|
10660
|
+
return 0.2126 * r40 + 0.7152 * g7 + 0.0722 * b13;
|
|
10661
|
+
}
|
|
10662
|
+
function ratio(a23, b13) {
|
|
10663
|
+
const [high, low] = [luminance(a23), luminance(b13)].sort((x7, y10) => y10 - x7);
|
|
10664
|
+
return (high + 0.05) / (low + 0.05);
|
|
10665
|
+
}
|
|
10666
|
+
function mix(color2, base, amount) {
|
|
10667
|
+
return color2.map(
|
|
10668
|
+
(value, i26) => Math.round(base[i26] + (value - base[i26]) * amount)
|
|
10669
|
+
);
|
|
10670
|
+
}
|
|
10671
|
+
function floor2(color2, under) {
|
|
10672
|
+
const black = [0, 0, 0];
|
|
10673
|
+
const white = [255, 255, 255];
|
|
10674
|
+
const pole = ratio(black, under) >= ratio(white, under) ? black : white;
|
|
10675
|
+
let step2 = 0;
|
|
10676
|
+
while (ratio(mix(pole, color2, step2 / 20), under) < 4.5) step2++;
|
|
10677
|
+
return mix(pole, color2, step2 / 20);
|
|
10678
|
+
}
|
|
10679
|
+
var strength = [0.12, 0.25];
|
|
10680
|
+
function tint(color2, card2, text5, side) {
|
|
10681
|
+
const amount = strength[side];
|
|
10682
|
+
const tinted = mix(color2, card2, amount);
|
|
10683
|
+
const apart = Math.hypot(...tinted.map((value, i26) => value - card2[i26]));
|
|
10684
|
+
return apart < 16 ? mix(text5, card2, amount) : tinted;
|
|
10685
|
+
}
|
|
10686
|
+
var css = (rgb) => `rgb(${rgb.join(", ")})`;
|
|
10687
|
+
var both = (pair) => `light-dark(${pair.map(css).join(", ")})`;
|
|
10688
|
+
function extendedPaint(fg, bg, surface2) {
|
|
10689
|
+
const backs = typeof bg === "string" ? surface2.card.map(
|
|
10690
|
+
(card2, side) => tint(triple(bg), card2, surface2.text[side], side)
|
|
10691
|
+
) : null;
|
|
10692
|
+
const fronts = surface2.card.map(
|
|
10693
|
+
(card2, side) => floor2(
|
|
10694
|
+
typeof fg === "string" ? triple(fg) : surface2.text[side],
|
|
10695
|
+
backs?.[side] ?? card2
|
|
10696
|
+
)
|
|
10697
|
+
);
|
|
10698
|
+
return [both(fronts), backs ? both(backs) : null];
|
|
10699
|
+
}
|
|
10700
|
+
function paint(style, surface2) {
|
|
10701
|
+
let { fg, bg } = style;
|
|
10702
|
+
if (style.inverse && fg === null && bg === null) {
|
|
10703
|
+
return ["var(--swc-background-layer-1-color)", "var(--swc-neutral-content-color-default)"];
|
|
10704
|
+
}
|
|
10705
|
+
if (style.inverse) [fg, bg] = [bg, fg];
|
|
10706
|
+
if (style.dim && typeof fg === "number" && fg >= 8) fg -= 8;
|
|
10707
|
+
if (style.dim && fg === null && bg === null) {
|
|
10708
|
+
return ["var(--swc-neutral-subdued-content-color-default)", null];
|
|
10709
|
+
}
|
|
10710
|
+
const extendedColor = typeof bg === "string" || bg === null && typeof fg === "string";
|
|
10711
|
+
if (surface2 && extendedColor) return extendedPaint(fg, bg, surface2);
|
|
10712
|
+
if (bg === null) return [swatch(fg), null];
|
|
10713
|
+
if (typeof bg === "string") return [typeof fg === "string" ? fg : on(bg), bg];
|
|
10714
|
+
const tint2 = `var(--swc-${bg === 8 ? "gray-700" : tints[bg % 8]})`;
|
|
10715
|
+
return [bg % 8 === 0 ? "var(--swc-gray-25)" : null, tint2];
|
|
10716
|
+
}
|
|
10717
|
+
function inline2(style, surface2) {
|
|
10718
|
+
const [fg, bg] = paint(style, surface2);
|
|
10719
|
+
return [
|
|
10720
|
+
fg ? `color: ${fg}` : "",
|
|
10721
|
+
bg ? `background: ${bg}` : "",
|
|
10722
|
+
style.bold ? "font-weight: var(--swc-bold-font-weight)" : "",
|
|
10723
|
+
style.italic ? "font-style: italic" : "",
|
|
10724
|
+
style.underline ? "text-decoration: underline" : ""
|
|
10725
|
+
].filter(Boolean).join("; ");
|
|
10726
|
+
}
|
|
10727
|
+
function ansi(text5, streaming = false, surface2) {
|
|
10728
|
+
return parseAnsi(text5, streaming).map((run) => {
|
|
10729
|
+
const style = inline2(run.style, surface2);
|
|
10730
|
+
return style ? b`<span style=${style}>${run.text}</span>` : run.text;
|
|
10731
|
+
});
|
|
10732
|
+
}
|
|
10733
|
+
|
|
10441
10734
|
// src/app/command.ts
|
|
10442
10735
|
var toShow = "Show the full command to allow it.";
|
|
10443
10736
|
var toScroll = "Scroll to the end of the command to allow it.";
|
|
@@ -14273,229 +14566,6 @@ var o63 = class extends a10 {
|
|
|
14273
14566
|
};
|
|
14274
14567
|
e25("swc-icon-info-circle", o63);
|
|
14275
14568
|
|
|
14276
|
-
// src/app/ansi.ts
|
|
14277
|
-
var lightPalette = [
|
|
14278
|
-
"gray-800",
|
|
14279
|
-
"negative-color-900",
|
|
14280
|
-
"positive-color-900",
|
|
14281
|
-
"notice-color-1000",
|
|
14282
|
-
"informative-color-900",
|
|
14283
|
-
"purple-900",
|
|
14284
|
-
"cyan-1000",
|
|
14285
|
-
"gray-600",
|
|
14286
|
-
"gray-700",
|
|
14287
|
-
"negative-color-1000",
|
|
14288
|
-
"positive-color-1000",
|
|
14289
|
-
"notice-color-1100",
|
|
14290
|
-
"informative-color-1000",
|
|
14291
|
-
"purple-1000",
|
|
14292
|
-
"cyan-1100",
|
|
14293
|
-
"gray-800"
|
|
14294
|
-
];
|
|
14295
|
-
var terminalPalette = r(
|
|
14296
|
-
lightPalette.map((token2, n37) => `--slicc-terminal-color-${n37}: var(--swc-${token2});`).join("\n")
|
|
14297
|
-
);
|
|
14298
|
-
var tints = [
|
|
14299
|
-
"gray-800",
|
|
14300
|
-
"negative-subtle-background-color-default",
|
|
14301
|
-
"positive-subtle-background-color-default",
|
|
14302
|
-
"notice-subtle-background-color-default",
|
|
14303
|
-
"informative-subtle-background-color-default",
|
|
14304
|
-
"purple-subtle-background-color-default",
|
|
14305
|
-
"cyan-subtle-background-color-default",
|
|
14306
|
-
"gray-subtle-background-color-default"
|
|
14307
|
-
];
|
|
14308
|
-
var plain = {
|
|
14309
|
-
bold: false,
|
|
14310
|
-
dim: false,
|
|
14311
|
-
italic: false,
|
|
14312
|
-
underline: false,
|
|
14313
|
-
inverse: false,
|
|
14314
|
-
fg: null,
|
|
14315
|
-
bg: null
|
|
14316
|
-
};
|
|
14317
|
-
var levels = [0, 95, 135, 175, 215, 255];
|
|
14318
|
-
function indexed(n37) {
|
|
14319
|
-
if (!Number.isInteger(n37) || n37 < 0 || n37 > 255) return null;
|
|
14320
|
-
if (n37 < 16) return n37;
|
|
14321
|
-
if (n37 >= 232) {
|
|
14322
|
-
const grey = 8 + (n37 - 232) * 10;
|
|
14323
|
-
return `rgb(${grey}, ${grey}, ${grey})`;
|
|
14324
|
-
}
|
|
14325
|
-
const cube = n37 - 16;
|
|
14326
|
-
const [r40, g7, b13] = [Math.floor(cube / 36), Math.floor(cube / 6) % 6, cube % 6].map(
|
|
14327
|
-
(level) => levels[level]
|
|
14328
|
-
);
|
|
14329
|
-
return `rgb(${r40}, ${g7}, ${b13})`;
|
|
14330
|
-
}
|
|
14331
|
-
function channel(value) {
|
|
14332
|
-
return Number.isInteger(value) && value >= 0 && value <= 255 ? value : null;
|
|
14333
|
-
}
|
|
14334
|
-
function extended(params, at) {
|
|
14335
|
-
const mode2 = params[at + 1];
|
|
14336
|
-
if (mode2 === 5) return { color: indexed(params[at + 2]), used: 2 };
|
|
14337
|
-
if (mode2 === 2) {
|
|
14338
|
-
const rgb = params.slice(at + 2, at + 5).map(channel);
|
|
14339
|
-
const ok4 = rgb.length === 3 && rgb.every((value) => value !== null);
|
|
14340
|
-
return { color: ok4 ? `rgb(${rgb.join(", ")})` : null, used: 4 };
|
|
14341
|
-
}
|
|
14342
|
-
return { color: null, used: 0 };
|
|
14343
|
-
}
|
|
14344
|
-
function numbers(text5) {
|
|
14345
|
-
return text5.split(":").map((part2) => part2 === "" ? 0 : Number(part2));
|
|
14346
|
-
}
|
|
14347
|
-
var flags = {
|
|
14348
|
-
0: plain,
|
|
14349
|
-
1: { bold: true },
|
|
14350
|
-
2: { dim: true },
|
|
14351
|
-
3: { italic: true },
|
|
14352
|
-
4: { underline: true },
|
|
14353
|
-
7: { inverse: true },
|
|
14354
|
-
22: { bold: false, dim: false },
|
|
14355
|
-
23: { italic: false },
|
|
14356
|
-
24: { underline: false },
|
|
14357
|
-
27: { inverse: false },
|
|
14358
|
-
39: { fg: null },
|
|
14359
|
-
49: { bg: null }
|
|
14360
|
-
};
|
|
14361
|
-
var ranges = [
|
|
14362
|
-
[30, "fg", 0],
|
|
14363
|
-
[40, "bg", 0],
|
|
14364
|
-
[90, "fg", 8],
|
|
14365
|
-
[100, "bg", 8]
|
|
14366
|
-
];
|
|
14367
|
-
function simple(code3) {
|
|
14368
|
-
const flag = flags[code3];
|
|
14369
|
-
if (flag) return flag;
|
|
14370
|
-
const range3 = ranges.find(([start2]) => code3 >= start2 && code3 < start2 + 8);
|
|
14371
|
-
return range3 ? { [range3[1]]: code3 - range3[0] + range3[2] } : null;
|
|
14372
|
-
}
|
|
14373
|
-
function wide(groups2, i26) {
|
|
14374
|
-
const group = groups2[i26];
|
|
14375
|
-
if (group.length === 1)
|
|
14376
|
-
return extended(
|
|
14377
|
-
groups2.slice(i26).map((entry) => entry[0]),
|
|
14378
|
-
0
|
|
14379
|
-
);
|
|
14380
|
-
const spaced = group[1] === 2 && group.length > 5;
|
|
14381
|
-
return { color: extended(spaced ? [0, 2, ...group.slice(3)] : group, 0).color, used: 0 };
|
|
14382
|
-
}
|
|
14383
|
-
function sgr(style, body4) {
|
|
14384
|
-
const next = { ...style };
|
|
14385
|
-
const groups2 = body4 === "" ? [[0]] : body4.split(";").map(numbers);
|
|
14386
|
-
for (let i26 = 0; i26 < groups2.length; i26++) {
|
|
14387
|
-
const group = groups2[i26];
|
|
14388
|
-
const code3 = group[0];
|
|
14389
|
-
if (code3 === 38 || code3 === 48) {
|
|
14390
|
-
const { color: color2, used } = wide(groups2, i26);
|
|
14391
|
-
i26 += used;
|
|
14392
|
-
if (color2 !== null) next[code3 === 38 ? "fg" : "bg"] = color2;
|
|
14393
|
-
} else if (code3 === 4 && group.length > 1) next.underline = group[1] !== 0;
|
|
14394
|
-
else Object.assign(next, simple(code3));
|
|
14395
|
-
}
|
|
14396
|
-
return next;
|
|
14397
|
-
}
|
|
14398
|
-
function terminated(text5, from, streaming) {
|
|
14399
|
-
for (let i26 = from; i26 < text5.length; i26++) {
|
|
14400
|
-
if (text5[i26] === "\x07") return i26 + 1;
|
|
14401
|
-
if (text5[i26] === "\x1B" && text5[i26 + 1] === "\\") return i26 + 2;
|
|
14402
|
-
}
|
|
14403
|
-
if (streaming) return -1;
|
|
14404
|
-
const line = text5.indexOf("\n", from);
|
|
14405
|
-
return line === -1 ? text5.length : line;
|
|
14406
|
-
}
|
|
14407
|
-
function csi(text5, from) {
|
|
14408
|
-
for (let i26 = from; i26 < text5.length; i26++) {
|
|
14409
|
-
const code3 = text5.charCodeAt(i26);
|
|
14410
|
-
if (code3 >= 64 && code3 <= 126) {
|
|
14411
|
-
return { end: i26 + 1, body: text5.slice(from, i26), final: text5[i26] };
|
|
14412
|
-
}
|
|
14413
|
-
if (code3 < 32 || code3 > 63) return { end: i26, body: "", final: "" };
|
|
14414
|
-
}
|
|
14415
|
-
return null;
|
|
14416
|
-
}
|
|
14417
|
-
function escape(text5, at, style, streaming) {
|
|
14418
|
-
const kind = text5[at + 1];
|
|
14419
|
-
if (kind === void 0) return { end: -1, style };
|
|
14420
|
-
if (kind === "[") {
|
|
14421
|
-
const found = csi(text5, at + 2);
|
|
14422
|
-
if (!found) return { end: -1, style };
|
|
14423
|
-
const styled = found.final === "m" && /^[\d;:]*$/.test(found.body);
|
|
14424
|
-
return { end: found.end, style: styled ? sgr(style, found.body) : style };
|
|
14425
|
-
}
|
|
14426
|
-
if ("]PX^_".includes(kind)) return { end: terminated(text5, at + 2, streaming), style };
|
|
14427
|
-
let i26 = at + 1;
|
|
14428
|
-
while (i26 < text5.length && text5.charCodeAt(i26) >= 32 && text5.charCodeAt(i26) <= 47) i26++;
|
|
14429
|
-
if (i26 === text5.length) return { end: -1, style };
|
|
14430
|
-
const final = text5.charCodeAt(i26);
|
|
14431
|
-
return { end: final >= 48 && final <= 126 ? i26 + 1 : at + 1, style };
|
|
14432
|
-
}
|
|
14433
|
-
function parseAnsi(text5, streaming = false) {
|
|
14434
|
-
const runs = [];
|
|
14435
|
-
let style = plain;
|
|
14436
|
-
let start2 = 0;
|
|
14437
|
-
const push2 = (end) => {
|
|
14438
|
-
if (end <= start2) return;
|
|
14439
|
-
const last = runs.at(-1);
|
|
14440
|
-
const piece = text5.slice(start2, end);
|
|
14441
|
-
if (last?.style === style) last.text += piece;
|
|
14442
|
-
else runs.push({ text: piece, style });
|
|
14443
|
-
};
|
|
14444
|
-
let i26 = text5.indexOf("\x1B");
|
|
14445
|
-
while (i26 !== -1) {
|
|
14446
|
-
push2(i26);
|
|
14447
|
-
const found = escape(text5, i26, style, streaming);
|
|
14448
|
-
if (found.end === -1) return runs;
|
|
14449
|
-
style = found.style;
|
|
14450
|
-
start2 = found.end;
|
|
14451
|
-
i26 = text5.indexOf("\x1B", start2);
|
|
14452
|
-
}
|
|
14453
|
-
push2(text5.length);
|
|
14454
|
-
return runs;
|
|
14455
|
-
}
|
|
14456
|
-
function swatch(color2) {
|
|
14457
|
-
if (color2 === null) return null;
|
|
14458
|
-
return typeof color2 === "number" ? `var(--slicc-terminal-color-${color2}, var(--swc-${lightPalette[color2]}))` : color2;
|
|
14459
|
-
}
|
|
14460
|
-
function on(rgb) {
|
|
14461
|
-
const [r40, g7, b13] = rgb.match(/\d+/g).map((value) => {
|
|
14462
|
-
const v13 = Number(value) / 255;
|
|
14463
|
-
return v13 <= 0.03928 ? v13 / 12.92 : ((v13 + 0.055) / 1.055) ** 2.4;
|
|
14464
|
-
});
|
|
14465
|
-
return 0.2126 * r40 + 0.7152 * g7 + 0.0722 * b13 > 0.179 ? "var(--swc-black)" : "var(--swc-white)";
|
|
14466
|
-
}
|
|
14467
|
-
function paint(style) {
|
|
14468
|
-
let { fg, bg } = style;
|
|
14469
|
-
if (style.inverse && fg === null && bg === null) {
|
|
14470
|
-
return ["var(--swc-background-layer-1-color)", "var(--swc-neutral-content-color-default)"];
|
|
14471
|
-
}
|
|
14472
|
-
if (style.inverse) [fg, bg] = [bg, fg];
|
|
14473
|
-
if (style.dim && typeof fg === "number" && fg >= 8) fg -= 8;
|
|
14474
|
-
if (style.dim && fg === null && bg === null) {
|
|
14475
|
-
return ["var(--swc-neutral-subdued-content-color-default)", null];
|
|
14476
|
-
}
|
|
14477
|
-
if (bg === null) return [swatch(fg), null];
|
|
14478
|
-
if (typeof bg === "string") return [typeof fg === "string" ? fg : on(bg), bg];
|
|
14479
|
-
const tint = `var(--swc-${bg === 8 ? "gray-700" : tints[bg % 8]})`;
|
|
14480
|
-
return [bg % 8 === 0 ? "var(--swc-gray-25)" : null, tint];
|
|
14481
|
-
}
|
|
14482
|
-
function inline2(style) {
|
|
14483
|
-
const [fg, bg] = paint(style);
|
|
14484
|
-
return [
|
|
14485
|
-
fg ? `color: ${fg}` : "",
|
|
14486
|
-
bg ? `background: ${bg}` : "",
|
|
14487
|
-
style.bold ? "font-weight: var(--swc-bold-font-weight)" : "",
|
|
14488
|
-
style.italic ? "font-style: italic" : "",
|
|
14489
|
-
style.underline ? "text-decoration: underline" : ""
|
|
14490
|
-
].filter(Boolean).join("; ");
|
|
14491
|
-
}
|
|
14492
|
-
function ansi(text5, streaming = false) {
|
|
14493
|
-
return parseAnsi(text5, streaming).map((run) => {
|
|
14494
|
-
const style = inline2(run.style);
|
|
14495
|
-
return style ? b`<span style=${style}>${run.text}</span>` : run.text;
|
|
14496
|
-
});
|
|
14497
|
-
}
|
|
14498
|
-
|
|
14499
14569
|
// src/app/guard.ts
|
|
14500
14570
|
var prefixes = [
|
|
14501
14571
|
"sk-",
|
|
@@ -21909,7 +21979,7 @@ function step(call, context, id) {
|
|
|
21909
21979
|
row,
|
|
21910
21980
|
b`<div class="call run-detail" id=${`detail-${call.id}`} role="listitem" aria-label=${label} data-target=${call.id} ?hidden=${!open}>
|
|
21911
21981
|
${body(call, context.color)}
|
|
21912
|
-
${call.output ? b`<pre class="output">${ansi(call.output, call.status === "running")}</pre>` : A}
|
|
21982
|
+
${call.output ? b`<pre class="output">${ansi(call.output, call.status === "running", context.surface)}</pre>` : A}
|
|
21913
21983
|
${call.notes?.length ? notes(call.notes) : A}
|
|
21914
21984
|
${call.image ? b`<img class="shot" src=${call.image} alt=${call.title} />` : A}
|
|
21915
21985
|
${call.meta ? b`<span class="tool-meta">${call.meta}</span>` : A}
|
|
@@ -23930,7 +24000,7 @@ var SliccComposer = class extends ThemedElement {
|
|
|
23930
24000
|
padding: var(--swc-spacing-50) var(--swc-spacing-50) var(--swc-spacing-50) var(--swc-spacing-200);
|
|
23931
24001
|
border-radius: var(--swc-corner-radius-medium-default);
|
|
23932
24002
|
background: var(--swc-neutral-subtle-background-color-default);
|
|
23933
|
-
border: var(--swc-border-width-100) dashed var(--swc-
|
|
24003
|
+
border: var(--swc-border-width-100) dashed var(--swc-neutral-visual-color);
|
|
23934
24004
|
color: var(--swc-neutral-content-color-default);
|
|
23935
24005
|
}
|
|
23936
24006
|
.hold {
|
|
@@ -25463,6 +25533,7 @@ var SliccChat = class _SliccChat extends ThemedElement {
|
|
|
25463
25533
|
globalThis.addEventListener("keydown", this.#escape, true);
|
|
25464
25534
|
};
|
|
25465
25535
|
#leaving;
|
|
25536
|
+
#probed = null;
|
|
25466
25537
|
#leave = (event2) => {
|
|
25467
25538
|
const to = event2.relatedTarget;
|
|
25468
25539
|
if (to instanceof Node && this.contains(to)) return;
|
|
@@ -25968,6 +26039,7 @@ var SliccChat = class _SliccChat extends ThemedElement {
|
|
|
25968
26039
|
}
|
|
25969
26040
|
connectedCallback() {
|
|
25970
26041
|
super.connectedCallback();
|
|
26042
|
+
this.#probed = null;
|
|
25971
26043
|
globalThis.addEventListener("pointerup", this.#release, true);
|
|
25972
26044
|
globalThis.addEventListener("pointercancel", this.#release, true);
|
|
25973
26045
|
if (this.hasUpdated) this.#observe();
|
|
@@ -26228,6 +26300,9 @@ var SliccChat = class _SliccChat extends ThemedElement {
|
|
|
26228
26300
|
this.model.agent.clear(agent.id);
|
|
26229
26301
|
this.renderRoot.querySelector("slicc-composer")?.focus();
|
|
26230
26302
|
}
|
|
26303
|
+
#agentless() {
|
|
26304
|
+
return this.model?.agent.starting?.() ? b`<swc-status-light size="s" variant="neutral" data-starting>Starting…</swc-status-light>` : b`<span>No agent</span>`;
|
|
26305
|
+
}
|
|
26231
26306
|
#meta(agent, empty5) {
|
|
26232
26307
|
const model = this.model;
|
|
26233
26308
|
const fill2 = Math.round(agent.contextFill * 100);
|
|
@@ -26273,9 +26348,15 @@ var SliccChat = class _SliccChat extends ThemedElement {
|
|
|
26273
26348
|
this.#all = false;
|
|
26274
26349
|
this.#details.clear();
|
|
26275
26350
|
}
|
|
26351
|
+
#probe() {
|
|
26352
|
+
if (this.#handlers.surface || this.#probed === this.color) return;
|
|
26353
|
+
this.#probed = this.color;
|
|
26354
|
+
this.#handlers.surface = readSurface(this.renderRoot);
|
|
26355
|
+
}
|
|
26276
26356
|
render() {
|
|
26277
26357
|
this.#handlers.color = this.color;
|
|
26278
26358
|
this.#handlers.model = this.model ?? null;
|
|
26359
|
+
this.#probe();
|
|
26279
26360
|
const agent = this.#agent();
|
|
26280
26361
|
this.#switched(agent);
|
|
26281
26362
|
const watch2 = watchOnly(this.model);
|
|
@@ -26290,7 +26371,7 @@ var SliccChat = class _SliccChat extends ThemedElement {
|
|
|
26290
26371
|
if (!this.behind) this.#mark = count2;
|
|
26291
26372
|
return b`
|
|
26292
26373
|
<header ?data-compact=${this.compact}>
|
|
26293
|
-
${agent ? this.#meta(agent, !messages.length) :
|
|
26374
|
+
${agent ? this.#meta(agent, !messages.length) : this.#agentless()}
|
|
26294
26375
|
</header>
|
|
26295
26376
|
<slicc-notices .model=${this.model}></slicc-notices>
|
|
26296
26377
|
${this.#asks(asks)}
|
|
@@ -27891,9 +27972,9 @@ function sparkline(points, width = 120, height = 28) {
|
|
|
27891
27972
|
(value, i26) => `${(i26 / (points.length - 1) * width).toFixed(1)},${(height - (value - min2) / span * (height - 2) - 1).toFixed(1)}`
|
|
27892
27973
|
).join(" ");
|
|
27893
27974
|
}
|
|
27894
|
-
function meterVariant2(
|
|
27895
|
-
if (
|
|
27896
|
-
if (
|
|
27975
|
+
function meterVariant2(ratio2) {
|
|
27976
|
+
if (ratio2 >= 0.9) return "negative";
|
|
27977
|
+
if (ratio2 >= 0.6) return "notice";
|
|
27897
27978
|
return "informative";
|
|
27898
27979
|
}
|
|
27899
27980
|
var surfaces = {
|
|
@@ -28439,6 +28520,11 @@ var SliccAgents = class extends ModelElement {
|
|
|
28439
28520
|
min-block-size: 0;
|
|
28440
28521
|
overflow-y: auto;
|
|
28441
28522
|
}
|
|
28523
|
+
.note {
|
|
28524
|
+
margin: 0;
|
|
28525
|
+
padding: var(--swc-spacing-400);
|
|
28526
|
+
color: var(--swc-neutral-subdued-content-color-default);
|
|
28527
|
+
}
|
|
28442
28528
|
.actions {
|
|
28443
28529
|
display: flex;
|
|
28444
28530
|
padding: var(--swc-spacing-75) var(--swc-spacing-100);
|
|
@@ -28665,6 +28751,7 @@ var SliccAgents = class extends ModelElement {
|
|
|
28665
28751
|
this.#reveal(model);
|
|
28666
28752
|
return [
|
|
28667
28753
|
model.agent.on("agents", () => this.requestUpdate()),
|
|
28754
|
+
...model.agent.starting ? [model.agent.on("starting", () => this.requestUpdate())] : [],
|
|
28668
28755
|
model.agent.on("active", () => {
|
|
28669
28756
|
this.#reveal(model);
|
|
28670
28757
|
this.requestUpdate();
|
|
@@ -28914,6 +29001,8 @@ var SliccAgents = class extends ModelElement {
|
|
|
28914
29001
|
}
|
|
28915
29002
|
render() {
|
|
28916
29003
|
const list6 = this.model?.agent.list() ?? [];
|
|
29004
|
+
if (!list6.length && this.model?.agent.starting?.())
|
|
29005
|
+
return b`<div class="list"><p class="note" data-empty="starting">The agent shows up here once it starts.</p></div>`;
|
|
28917
29006
|
const active = this.model?.agent.active() ?? "";
|
|
28918
29007
|
const errors = Object.values(this.errors);
|
|
28919
29008
|
const rows2 = ordered(list6).filter(
|
|
@@ -39845,6 +39934,7 @@ var SliccChanges = class extends ModelElement {
|
|
|
39845
39934
|
subscribe(model) {
|
|
39846
39935
|
return [
|
|
39847
39936
|
changesOf(model).on("changes", () => this.requestUpdate()),
|
|
39937
|
+
model.agent.on("agents", () => this.requestUpdate()),
|
|
39848
39938
|
...onWatch(model, () => this.requestUpdate())
|
|
39849
39939
|
];
|
|
39850
39940
|
}
|
|
@@ -40040,6 +40130,7 @@ var SliccDiffPanel = class extends ThemedElement {
|
|
|
40040
40130
|
return [
|
|
40041
40131
|
...super.subscribe(model),
|
|
40042
40132
|
changesOf(model).on("changes", () => this.requestUpdate()),
|
|
40133
|
+
model.agent.on("agents", () => this.requestUpdate()),
|
|
40043
40134
|
...onWatch(model, () => this.requestUpdate())
|
|
40044
40135
|
];
|
|
40045
40136
|
}
|
|
@@ -41055,11 +41146,24 @@ function endpointsLine(entry, named2 = (provider) => provider) {
|
|
|
41055
41146
|
);
|
|
41056
41147
|
return b`${parts3.map((part2, index2) => b`${index2 ? ". " : ""}${part2}`)}`;
|
|
41057
41148
|
}
|
|
41149
|
+
var sessionProtocols = {
|
|
41150
|
+
http1: "HTTP/1.1",
|
|
41151
|
+
smtp: "SMTP",
|
|
41152
|
+
pg: "Postgres"
|
|
41153
|
+
};
|
|
41154
|
+
var sessionTrust = {
|
|
41155
|
+
roots: "trusted by public roots",
|
|
41156
|
+
anchored: "trusted by its pinned anchor"
|
|
41157
|
+
};
|
|
41158
|
+
var sessionProtocol = (protocol) => Object.hasOwn(sessionProtocols, protocol) ? sessionProtocols[protocol] : protocol;
|
|
41159
|
+
var sessionTrusted = (verifiedBy) => verifiedBy && Object.hasOwn(sessionTrust, verifiedBy) ? `${sessionTrust[verifiedBy]}, ` : "";
|
|
41058
41160
|
function auditLine(entry, devices, named2) {
|
|
41059
41161
|
switch (entry.type) {
|
|
41060
41162
|
case "inject":
|
|
41061
41163
|
case "forward":
|
|
41062
41164
|
return b`Sent to ${entry.domain}: <code>${entry.method} ${entry.path}</code>, through ${exitLabel(entry.exit, devices)}`;
|
|
41165
|
+
case "session":
|
|
41166
|
+
return b`Sent over ${sessionProtocol(entry.protocol)} to ${entry.domain}:${entry.port}, ${sessionTrusted(entry.verifiedBy)}through ${exitLabel(entry.exit, devices)}`;
|
|
41063
41167
|
case "mcp":
|
|
41064
41168
|
return b`Sent to the MCP server ${entry.server} at ${entry.domain}: <code>${entry.method} ${entry.path}</code>, through ${exitLabel(entry.exit, devices)}`;
|
|
41065
41169
|
case "materialize":
|
|
@@ -60233,9 +60337,9 @@ function transformerStyleToClass(options2 = {}) {
|
|
|
60233
60337
|
return classToStyle;
|
|
60234
60338
|
},
|
|
60235
60339
|
getCSS() {
|
|
60236
|
-
let
|
|
60237
|
-
for (const [className, style] of classToStyle.entries())
|
|
60238
|
-
return
|
|
60340
|
+
let css3 = "";
|
|
60341
|
+
for (const [className, style] of classToStyle.entries()) css3 += `.${className}{${typeof style === "string" ? style : stringifyStyle(style)}}`;
|
|
60342
|
+
return css3;
|
|
60239
60343
|
},
|
|
60240
60344
|
clearRegistry() {
|
|
60241
60345
|
classToStyle.clear();
|
|
@@ -95863,7 +95967,7 @@ var FileTree = class {
|
|
|
95863
95967
|
};
|
|
95864
95968
|
|
|
95865
95969
|
// src/components/file-tree.ts
|
|
95866
|
-
var
|
|
95970
|
+
var css2 = `
|
|
95867
95971
|
:host {
|
|
95868
95972
|
display: block;
|
|
95869
95973
|
height: 100%;
|
|
@@ -96174,7 +96278,7 @@ ${view.focused}`;
|
|
|
96174
96278
|
connectedCallback() {
|
|
96175
96279
|
const root2 = this.shadowRoot ?? this.attachShadow({ mode: "open", delegatesFocus: true });
|
|
96176
96280
|
if (!this.#mount) {
|
|
96177
|
-
adoptStyles(root2,
|
|
96281
|
+
adoptStyles(root2, css2);
|
|
96178
96282
|
this.#mount = document.createElement("div");
|
|
96179
96283
|
this.#mount.className = "mount";
|
|
96180
96284
|
root2.append(this.#mount);
|