pilotswarm 0.5.30 → 0.5.32
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/package.json +2 -2
- package/tui/src/node-sdk-transport.js +4 -0
- package/ui/core/src/controller.js +102 -30
- package/ui/core/src/reducer.js +50 -1
- package/ui/core/src/selectors.js +68 -22
- package/ui/core/src/state.js +2 -0
- package/ui/core/src/themes/doom.js +106 -0
- package/ui/core/src/themes/helpers.js +7 -1
- package/ui/core/src/themes/index.js +4 -0
- package/ui/core/src/themes/winamp.js +104 -0
- package/ui/react/src/components.js +25 -0
- package/ui/react/src/web-app.js +320 -51
- package/web/api/ws.js +7 -0
- package/web/authz.js +14 -81
- package/web/dist/assets/{abnfDiagram-VRR7QNED-Cimc0f-u.js → abnfDiagram-VRR7QNED-mXFQ4a3c.js} +1 -1
- package/web/dist/assets/{arc-D8-_Dx5J.js → arc-BPuuvbge.js} +1 -1
- package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-lzMAuQHJ.js → architectureDiagram-ZJ3FMSHR-Dt4uUYIe.js} +1 -1
- package/web/dist/assets/{blockDiagram-677ZJIJ3-Dp2CWjVS.js → blockDiagram-677ZJIJ3-Ax8Q22vV.js} +1 -1
- package/web/dist/assets/{c4Diagram-LMCZKHZV-DF93UkOy.js → c4Diagram-LMCZKHZV-CPiukyHt.js} +1 -1
- package/web/dist/assets/channel-BCzDctYg.js +1 -0
- package/web/dist/assets/{chunk-2Q5K7J3B-pbsQRM-F.js → chunk-2Q5K7J3B-VJLqCZJX.js} +1 -1
- package/web/dist/assets/{chunk-32BRIVSS-B_f-gG1O.js → chunk-32BRIVSS-DqOshxhf.js} +1 -1
- package/web/dist/assets/{chunk-5VM5RSS4-gqlpJDmt.js → chunk-5VM5RSS4-KPqV21jV.js} +1 -1
- package/web/dist/assets/{chunk-EX3LRPZG-Cms7hPmM.js → chunk-EX3LRPZG-DfhiCVl_.js} +1 -1
- package/web/dist/assets/{chunk-JWPE2WC7-Boq5PtPI.js → chunk-JWPE2WC7-H6khJPuW.js} +1 -1
- package/web/dist/assets/{chunk-MOJQB5TN-DVn9i8zt.js → chunk-MOJQB5TN-BKMAzQxj.js} +1 -1
- package/web/dist/assets/{chunk-RYQCIY6F-a1vKs3UX.js → chunk-RYQCIY6F-DNXRTxtj.js} +1 -1
- package/web/dist/assets/{chunk-V7JOEXUC-i60p5fHd.js → chunk-V7JOEXUC-B56PM6Gv.js} +1 -1
- package/web/dist/assets/{chunk-VR4S4FIN-a8p0o-8B.js → chunk-VR4S4FIN-Boi3hGkB.js} +1 -1
- package/web/dist/assets/{chunk-XXDRQBXY-BwP1yBKd.js → chunk-XXDRQBXY-DmJyn890.js} +1 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-ChqjVZil.js +1 -0
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-ChqjVZil.js +1 -0
- package/web/dist/assets/{cose-bilkent-JH36ORCC-HW6kGgze.js → cose-bilkent-JH36ORCC-BRdFlFWt.js} +1 -1
- package/web/dist/assets/{cynefin-VYW2F7L2-YUFMn-vE.js → cynefin-VYW2F7L2-DqE-xib2.js} +1 -1
- package/web/dist/assets/{cynefinDiagram-TSTJHNR4-Brdy17i4.js → cynefinDiagram-TSTJHNR4-D-QBZjIL.js} +1 -1
- package/web/dist/assets/{dagre-VKFMJZFB-CAiSJJj-.js → dagre-VKFMJZFB-DYu9oQV6.js} +1 -1
- package/web/dist/assets/{diagram-FQU43EPY-B63Cqe0J.js → diagram-FQU43EPY-DOwYccCg.js} +1 -1
- package/web/dist/assets/{diagram-G47NLZAW-ByktrDJ2.js → diagram-G47NLZAW-DTSEmrPr.js} +1 -1
- package/web/dist/assets/{diagram-NH7WQ7WH-BLSfRMoE.js → diagram-NH7WQ7WH-OqbzzquA.js} +1 -1
- package/web/dist/assets/{diagram-OA4YK3LP-DNVu-zpk.js → diagram-OA4YK3LP-BMVG6A8I.js} +1 -1
- package/web/dist/assets/{diagram-WEI45ONY-CNf4Sz-I.js → diagram-WEI45ONY-Rn2Q5xaz.js} +1 -1
- package/web/dist/assets/{ebnfDiagram-CCIWWBDH-9CT3ergx.js → ebnfDiagram-CCIWWBDH-aL32_v5y.js} +1 -1
- package/web/dist/assets/{erDiagram-Q63AITRT-BPJHAMgl.js → erDiagram-Q63AITRT-DKCpyczx.js} +1 -1
- package/web/dist/assets/{flowDiagram-23GEKE2U-BVtpr6Iu.js → flowDiagram-23GEKE2U-CrZTPgR_.js} +1 -1
- package/web/dist/assets/{ganttDiagram-NO4QXBWP-BTHnv9sV.js → ganttDiagram-NO4QXBWP-DnSE1OtC.js} +1 -1
- package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-BfmtqbL5.js → gitGraphDiagram-IHSO6WYX-C5SeYPUR.js} +1 -1
- package/web/dist/assets/{index-Bmb8qK39.js → index-B-TEKrRB.js} +6 -6
- package/web/dist/assets/index-D2B5bzSN.css +1 -0
- package/web/dist/assets/{infoDiagram-FWYZ7A6U-kU4i4HRu.js → infoDiagram-FWYZ7A6U-DDnJZp0X.js} +1 -1
- package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-Ch7i-E8O.js → ishikawaDiagram-FXEZZL3T-ewhzfFkq.js} +1 -1
- package/web/dist/assets/{journeyDiagram-5HDEW3XC-CPQxp0ps.js → journeyDiagram-5HDEW3XC-T0iWWkLM.js} +1 -1
- package/web/dist/assets/{kanban-definition-HUTT4EX6-BBgMVqoJ.js → kanban-definition-HUTT4EX6-D1MFQZjb.js} +1 -1
- package/web/dist/assets/{linear-rwksvzXJ.js → linear-BKfPK9wE.js} +1 -1
- package/web/dist/assets/{mermaid.core-o7PszRUc.js → mermaid.core-CyzD7dTc.js} +4 -4
- package/web/dist/assets/{mindmap-definition-LN4V7U3C-wgOTdzlq.js → mindmap-definition-LN4V7U3C-CWXtcTlP.js} +1 -1
- package/web/dist/assets/{papaparse.min-BRXtjEI6.js → papaparse.min-DLUoV5k5.js} +1 -1
- package/web/dist/assets/{pegDiagram-2B236MQR-BkhQqqTm.js → pegDiagram-2B236MQR-BFjZun-r.js} +1 -1
- package/web/dist/assets/{pieDiagram-ENE6RG2P-CcMnvxUz.js → pieDiagram-ENE6RG2P-DMDtW4g7.js} +1 -1
- package/web/dist/assets/pilotswarm-DA0u7Cq_.js +99 -0
- package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-_KD1QeEr.js → quadrantDiagram-ABIIQ3AL-CAwPVaYL.js} +1 -1
- package/web/dist/assets/{railroadDiagram-RFXS5EU6-CqI0olIe.js → railroadDiagram-RFXS5EU6-Co102PkQ.js} +1 -1
- package/web/dist/assets/{requirementDiagram-TGXJPOKE-1JxRwusF.js → requirementDiagram-TGXJPOKE-D19VlRSl.js} +1 -1
- package/web/dist/assets/{sankeyDiagram-HTMAVEWB-9IpFoKzi.js → sankeyDiagram-HTMAVEWB-Sd_a3ukL.js} +1 -1
- package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-teyObSQ9.js → sequenceDiagram-DBY2YBRQ-CojDRK1c.js} +1 -1
- package/web/dist/assets/{sizeCapture-X5ZJPWSS-DVhU2J_6.js → sizeCapture-X5ZJPWSS-XqXcxnDo.js} +1 -1
- package/web/dist/assets/{stateDiagram-2N3HPSRC-DHPoWpIQ.js → stateDiagram-2N3HPSRC-BcN_w699.js} +1 -1
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-BV_w1D3C.js +1 -0
- package/web/dist/assets/{swimlanes-5IMT3BWC-BxTtDQoB.js → swimlanes-5IMT3BWC-BcO6ai_I.js} +2 -2
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-BnYdP0qP.js +8 -0
- package/web/dist/assets/{timeline-definition-FHXFAJF6-D0wXZx-4.js → timeline-definition-FHXFAJF6-DOPfYxUq.js} +1 -1
- package/web/dist/assets/{vennDiagram-L72KCM5P-BSFyI3iV.js → vennDiagram-L72KCM5P-BSKLkEOC.js} +1 -1
- package/web/dist/assets/{wardleyDiagram-EHGQE667-BN-S7hh0.js → wardleyDiagram-EHGQE667-BdcYAVw2.js} +1 -1
- package/web/dist/assets/{xychartDiagram-FW5EYKEG-nDNuPs7o.js → xychartDiagram-FW5EYKEG-C6EJT4jB.js} +1 -1
- package/web/dist/index.html +3 -3
- package/web/runtime.js +55 -0
- package/web/server.js +7 -0
- package/web/dist/assets/channel-OwWeiCox.js +0 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-CDaP7nuC.js +0 -1
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-CDaP7nuC.js +0 -1
- package/web/dist/assets/index-B37T1c2s.css +0 -1
- package/web/dist/assets/pilotswarm-DYXtzuUN.js +0 -99
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-DJjZWYLS.js +0 -1
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-CV12vDcK.js +0 -8
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
// WinAMP 2.x (Nullsoft, 1997) — grey rack metal around a pane of lit glass.
|
|
4
|
+
//
|
|
5
|
+
// The skin everyone remembers is not colourful. It is bevelled grey chrome
|
|
6
|
+
// with ONE lit display in the middle, which happens to be the shape of a
|
|
7
|
+
// portal: quiet frame, bright content. So the panes are black glass, the
|
|
8
|
+
// chrome is machined grey, and the phosphor green is spent only on content.
|
|
9
|
+
//
|
|
10
|
+
// The semantic palette is the SPECTRUM ANALYSER ramp — green, lime, amber,
|
|
11
|
+
// red. A column of status dots then reads like a levels meter, which is the
|
|
12
|
+
// one thing this theme gets for free that no other retro theme does.
|
|
13
|
+
//
|
|
14
|
+
// The deliberate anti-goal: not looking like Terminal Green. Green text on
|
|
15
|
+
// black is most of that theme already, so the separation here is carried by
|
|
16
|
+
// the GREY frame and the amber accents rather than the text colour. Borders,
|
|
17
|
+
// muted labels and chrome are all machined grey; only content is green.
|
|
18
|
+
const winampTheme = createTheme({
|
|
19
|
+
id: "winamp",
|
|
20
|
+
label: "WinAMP",
|
|
21
|
+
description: "Bevelled grey chrome, black glass panes, phosphor green, and the spectrum ramp as the status palette.",
|
|
22
|
+
// The spectrum analyser: one bar per agent, coloured along the status
|
|
23
|
+
// ramp. Five rectangles, so it stays legible at favicon size — and it is
|
|
24
|
+
// the rare mark that could legitimately animate off live fleet load.
|
|
25
|
+
icon: {
|
|
26
|
+
viewBox: "0 0 32 32",
|
|
27
|
+
paths: [
|
|
28
|
+
{ d: "M0 0h32v32H0z", fill: "#000000" }, // the glass
|
|
29
|
+
{ d: "M3 17h4v11H3z", fill: "#00e337" },
|
|
30
|
+
{ d: "M9 11h4v17H9z", fill: "#7ad91e" },
|
|
31
|
+
{ d: "M15 6h4v22h-4z", fill: "#b6e000" },
|
|
32
|
+
{ d: "M21 13h4v15h-4z", fill: "#ffb400" },
|
|
33
|
+
{ d: "M27 20h3v8h-3z", fill: "#ff3b00" },
|
|
34
|
+
// Peak markers — the detail that makes it read as an analyser
|
|
35
|
+
// rather than a bar chart.
|
|
36
|
+
{ d: "M3 15h4v1.6H3z", fill: "#d6d6cc" },
|
|
37
|
+
{ d: "M9 9h4v1.6H9z", fill: "#d6d6cc" },
|
|
38
|
+
{ d: "M15 4h4v1.6h-4z", fill: "#d6d6cc" },
|
|
39
|
+
{ d: "M21 11h4v1.6h-4z", fill: "#d6d6cc" },
|
|
40
|
+
{ d: "M27 18h3v1.6h-3z", fill: "#d6d6cc" },
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
page: {
|
|
44
|
+
background: "#000000",
|
|
45
|
+
foreground: "#00e337",
|
|
46
|
+
overlayBackground: "#1c1c1c",
|
|
47
|
+
overlayForeground: "#00e337",
|
|
48
|
+
// Machined grey, not a dim green: muted labels are CHROME in this
|
|
49
|
+
// theme, and keeping them grey is most of what stops it reading as
|
|
50
|
+
// Terminal Green. 5.9:1 on the glass.
|
|
51
|
+
hintColor: "#949494",
|
|
52
|
+
modalBackdrop: "rgba(0, 0, 0, 0.82)",
|
|
53
|
+
modalBackground: "#1c1c1c",
|
|
54
|
+
modalBorder: "#5e5e5e",
|
|
55
|
+
modalForeground: "#00e337",
|
|
56
|
+
modalMuted: "#a0a0a0",
|
|
57
|
+
// Selection is the playlist editor's navy bar, exactly as Winamp did.
|
|
58
|
+
modalSelectedBackground: "#0000c6",
|
|
59
|
+
modalSelectedBorder: "#5e5e5e",
|
|
60
|
+
modalSelectedForeground: "#ffffff",
|
|
61
|
+
},
|
|
62
|
+
terminal: {
|
|
63
|
+
background: "#000000",
|
|
64
|
+
foreground: "#00e337",
|
|
65
|
+
cursor: "#ffb400",
|
|
66
|
+
cursorAccent: "#000000",
|
|
67
|
+
selectionBackground: "#0000c6",
|
|
68
|
+
black: "#000000",
|
|
69
|
+
red: "#ff3b00", // ramp: clipping
|
|
70
|
+
green: "#00e337", // ramp: idle
|
|
71
|
+
yellow: "#ffb400", // ramp: the kbps/kHz amber
|
|
72
|
+
// Lifted well off the #0000c6 playlist navy, which is a SELECTION
|
|
73
|
+
// colour and unreadable as text on black (1.3:1).
|
|
74
|
+
blue: "#4a7cf0",
|
|
75
|
+
magenta: "#cc66cc",
|
|
76
|
+
cyan: "#29c8c8",
|
|
77
|
+
white: "#d6d6cc", // chrome label grey
|
|
78
|
+
brightBlack: "#949494",
|
|
79
|
+
brightRed: "#ff6a3d",
|
|
80
|
+
brightGreen: "#5cff7a",
|
|
81
|
+
brightYellow: "#ffd24a",
|
|
82
|
+
brightBlue: "#7fa5ff",
|
|
83
|
+
brightMagenta: "#e08ae0",
|
|
84
|
+
brightCyan: "#6fe0e0",
|
|
85
|
+
brightWhite: "#ffffff",
|
|
86
|
+
},
|
|
87
|
+
tui: {
|
|
88
|
+
// The frame is METAL. This one value does more to separate the theme
|
|
89
|
+
// from Terminal Green than any other, because it is the outline of
|
|
90
|
+
// every pane on screen.
|
|
91
|
+
border: "#5e5e5e",
|
|
92
|
+
gray: "#949494",
|
|
93
|
+
userChat: "#ffb400",
|
|
94
|
+
userChatLabel: "#ffd24a",
|
|
95
|
+
selectionBackground: "#0000c6",
|
|
96
|
+
selectionForeground: "#ffffff",
|
|
97
|
+
activeHighlightBackground: "#0000c6",
|
|
98
|
+
activeHighlightForeground: "#ffffff",
|
|
99
|
+
promptCursorBackground: "#ffb400",
|
|
100
|
+
promptCursorForeground: "#000000",
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
export default winampTheme;
|
|
@@ -2007,6 +2007,31 @@ function buildAdminPackagesLines(view) {
|
|
|
2007
2007
|
}
|
|
2008
2008
|
}
|
|
2009
2009
|
}
|
|
2010
|
+
// The package's own CHANGELOG, last in the pane.
|
|
2011
|
+
//
|
|
2012
|
+
// Bottom placement is deliberate: it is the narrative, read after the
|
|
2013
|
+
// facts above it. An agent-authored version signs its entry here, so
|
|
2014
|
+
// this is also where a reviewer learns whether a human or the Agent
|
|
2015
|
+
// Manager wrote the version they are looking at.
|
|
2016
|
+
if (packages.changelog) {
|
|
2017
|
+
const entryLines = String(packages.changelog).split("\n");
|
|
2018
|
+
lines.push([{ text: "", color: "gray" }]);
|
|
2019
|
+
lines.push([{ text: "Changelog", color: "cyan", bold: true }]);
|
|
2020
|
+
for (const raw of entryLines.slice(0, 20)) {
|
|
2021
|
+
const text = raw.slice(0, 100);
|
|
2022
|
+
if (/^##+\s/.test(raw)) {
|
|
2023
|
+
// Version headings carry the semver — the anchor a reader scans for.
|
|
2024
|
+
lines.push([{ text: ` ${text.replace(/^#+\s*/, "")}`, color: "white", bold: true }]);
|
|
2025
|
+
} else if (/^_?signed:/i.test(raw.trim())) {
|
|
2026
|
+
lines.push([{ text: ` ${text}`, color: "green" }]);
|
|
2027
|
+
} else {
|
|
2028
|
+
lines.push([{ text: ` ${text}`, color: "gray" }]);
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
if (entryLines.length > 20) {
|
|
2032
|
+
lines.push([{ text: ` … ${entryLines.length - 20} more lines`, color: "gray" }]);
|
|
2033
|
+
}
|
|
2034
|
+
}
|
|
2010
2035
|
} else {
|
|
2011
2036
|
lines.push([{ text: packages.empty
|
|
2012
2037
|
? "No agent packages yet — add one in the portal or `pilotswarm agents push ./dir`."
|