aidevops 3.31.34 → 3.31.36
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 +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/package.json +1 -1
- package/packages/gui-desktop/scripts/install-macos-app.sh +30 -13
- package/packages/gui-web/index.html +3 -2
- package/packages/gui-web/src/App.tsx +15 -1
- package/packages/gui-web/src/AppNavigation.tsx +14 -1
- package/packages/gui-web/src/styles.css +28 -0
- package/setup.sh +1 -1
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ The result: an AI operations platform that manages projects across every busines
|
|
|
58
58
|
[](https://github.com/marcusquinn)
|
|
59
59
|
|
|
60
60
|
<!-- Release & Version Info -->
|
|
61
|
-
[](https://github.com/marcusquinn/aidevops/releases)
|
|
62
62
|
[](https://www.npmjs.com/package/aidevops)
|
|
63
63
|
[](https://github.com/marcusquinn/homebrew-tap)
|
|
64
64
|
[](https://github.com/marcusquinn/aidevops)
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.31.
|
|
1
|
+
3.31.36
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
|
@@ -64,7 +64,6 @@ gui_dependencies_present() {
|
|
|
64
64
|
node_modules/vite/bin/vite.js
|
|
65
65
|
node_modules/react
|
|
66
66
|
node_modules/react-icons
|
|
67
|
-
node_modules/@fontsource/cal-sans
|
|
68
67
|
node_modules/@fontsource/courier-prime
|
|
69
68
|
node_modules/@fontsource/dm-mono
|
|
70
69
|
node_modules/@fontsource/dm-sans
|
|
@@ -127,10 +126,25 @@ write_icon_assets() {
|
|
|
127
126
|
local iconset_dir="${resources_dir}/aidevops.iconset"
|
|
128
127
|
|
|
129
128
|
cat > "$svg_path" <<'SVG'
|
|
130
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
131
|
-
<
|
|
132
|
-
<
|
|
133
|
-
|
|
129
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" role="img" aria-labelledby="title desc">
|
|
130
|
+
<title id="title">AI DevOps prompt icon</title>
|
|
131
|
+
<desc id="desc">A rounded black app icon with the cyan terminal prompt mark used in the website logo.</desc>
|
|
132
|
+
<defs>
|
|
133
|
+
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
|
|
134
|
+
<stop offset="0" stop-color="#000000"/>
|
|
135
|
+
<stop offset="1" stop-color="#030707"/>
|
|
136
|
+
</linearGradient>
|
|
137
|
+
<radialGradient id="glow" cx="50%" cy="50%" r="62%">
|
|
138
|
+
<stop offset="0" stop-color="#66d9f2" stop-opacity="0.22"/>
|
|
139
|
+
<stop offset="1" stop-color="#66d9f2" stop-opacity="0"/>
|
|
140
|
+
</radialGradient>
|
|
141
|
+
</defs>
|
|
142
|
+
<rect width="1024" height="1024" fill="none"/>
|
|
143
|
+
<rect x="88" y="88" width="848" height="848" rx="188" fill="url(#bg)"/>
|
|
144
|
+
<rect x="88" y="88" width="848" height="848" rx="188" fill="url(#glow)"/>
|
|
145
|
+
<rect x="116" y="116" width="792" height="792" rx="160" fill="none" stroke="#66d9f2" stroke-opacity="0.36" stroke-width="18"/>
|
|
146
|
+
<g transform="translate(512 522) scale(0.94) translate(-288 -256)">
|
|
147
|
+
<path fill="#8ce8ff" d="M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
|
|
134
148
|
</g>
|
|
135
149
|
</svg>
|
|
136
150
|
SVG
|
|
@@ -443,7 +457,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
443
457
|
private var webView: WKWebView!
|
|
444
458
|
private let apiPort = ProcessInfo.processInfo.environment["AIDEVOPS_GUI_API_PORT"] ?? "8787"
|
|
445
459
|
private let webPort = ProcessInfo.processInfo.environment["AIDEVOPS_GUI_WEB_PORT"] ?? "5173"
|
|
446
|
-
private let defaultAccentHue: CGFloat =
|
|
460
|
+
private let defaultAccentHue: CGFloat = 191
|
|
447
461
|
private let mainWindowFrameAutosaveName = "aidevops-main-window"
|
|
448
462
|
private let titlebarHeight: CGFloat = 24
|
|
449
463
|
private let serviceQueue = DispatchQueue(label: "sh.aidevops.gui.services")
|
|
@@ -453,7 +467,6 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
453
467
|
func applicationDidFinishLaunching(_ notification: Notification) {
|
|
454
468
|
configureMenu()
|
|
455
469
|
configureWindow()
|
|
456
|
-
loadStatusHTML(title: "Starting aidevops", detail: "Preparing the local read-only GUI services…")
|
|
457
470
|
startServicesAndLoadApp()
|
|
458
471
|
}
|
|
459
472
|
|
|
@@ -1276,7 +1289,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
1276
1289
|
if title == "Starting aidevops" {
|
|
1277
1290
|
contentHTML = """
|
|
1278
1291
|
<main class="shell" aria-busy="true" aria-label="Loading aidevops interface">
|
|
1279
|
-
<section class="brand" aria-label="Starting aidevops"><strong><span>aidevops</span><b>></b><em>_</em></strong><small>Preparing local GUI</small></section>
|
|
1292
|
+
<section class="brand" aria-label="Starting aidevops"><strong><svg viewBox="0 0 1024 1024" aria-hidden="true"><rect x="88" y="88" width="848" height="848" rx="188" fill="#000000"/><rect x="88" y="88" width="848" height="848" rx="188" fill="#66d9f2" opacity="0.22"/><rect x="116" y="116" width="792" height="792" rx="160" fill="none" stroke="#66d9f2" stroke-opacity="0.36" stroke-width="18"/><g transform="translate(512 522) scale(0.94) translate(-288 -256)"><path fill="#8ce8ff" d="M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></g></svg><span>aidevops</span><b>></b><em>_</em></strong><small>Preparing local GUI</small></section>
|
|
1280
1293
|
<aside class="rail panel"><i></i><i></i><i></i><i></i><i></i><i></i></aside>
|
|
1281
1294
|
<aside class="sidebar panel"><header><b></b><span></span></header><nav><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></nav><footer><i></i><i></i></footer></aside>
|
|
1282
1295
|
<section class="workspace panel"><header><b></b><span></span><i></i><i></i></header><article><h1>\(escapedTitle)</h1><p>\(escapedDetail)</p><div class="cards"><i></i><i></i><i></i><i></i><i></i><i></i></div><div class="block"></div></article></section>
|
|
@@ -1293,16 +1306,17 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
1293
1306
|
<meta charset="utf-8">
|
|
1294
1307
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
1295
1308
|
<style>
|
|
1296
|
-
:root { --accent:
|
|
1309
|
+
:root { --accent: #66d9f2; --border: rgb(255 255 255 / 11%); --panel: #151515; --muted: rgb(255 255 255 / 70%); }
|
|
1297
1310
|
* { box-sizing: border-box; }
|
|
1298
|
-
body { background: radial-gradient(ellipse at top left,
|
|
1311
|
+
body { background: radial-gradient(ellipse at top left, rgb(102 217 242 / 16%), transparent 36%), #111; color: #fff; font: 15px -apple-system, BlinkMacSystemFont, sans-serif; height: 100vh; margin: 0; }
|
|
1299
1312
|
.message { background: var(--panel); border: 1px solid var(--border); border-radius: 18px; left: 50%; max-width: 560px; padding: 28px; position: fixed; top: 50%; transform: translate(-50%, -50%); }
|
|
1300
1313
|
h1 { font-size: 22px; margin: 0 0 10px; }
|
|
1301
1314
|
p { color: #b9c3b0; line-height: 1.5; margin: 0; }
|
|
1302
1315
|
code { color: var(--accent); }
|
|
1303
1316
|
.shell { display: grid; gap: 8px; grid-template-columns: 72px 302px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) 30px; height: 100vh; padding: 30px 8px 8px; }
|
|
1304
|
-
.brand { align-items: center; backdrop-filter: blur(18px); background: rgb(10 10 10 / 78%); border: 1px solid
|
|
1305
|
-
.brand strong { align-items:
|
|
1317
|
+
.brand { align-items: center; backdrop-filter: blur(18px); background: rgb(10 10 10 / 78%); border: 1px solid rgb(102 217 242 / 34%); border-radius: 24px; box-shadow: 0 24px 90px rgb(102 217 242 / 14%), 0 24px 80px rgb(0 0 0 / 40%); display: grid; gap: 10px; justify-items: center; left: 50%; padding: 26px 30px; position: fixed; top: 50%; transform: translate(-50%, -50%); width: min(360px, calc(100vw - 48px)); z-index: 20; }
|
|
1318
|
+
.brand strong { align-items: center; display: inline-flex; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: clamp(34px, 7vw, 64px); font-weight: 900; gap: .18em; letter-spacing: -0.08em; line-height: .9; }
|
|
1319
|
+
.brand svg { display: block; height: .96em; width: .96em; }
|
|
1306
1320
|
.brand span { color: #f6f7f2; font-size: .48em; letter-spacing: -0.04em; margin-right: .18em; }
|
|
1307
1321
|
.brand b, .brand em { color: var(--accent); font-style: normal; }
|
|
1308
1322
|
.brand em { animation: cursor 0.95s steps(1, end) infinite; }
|
|
@@ -1327,7 +1341,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
1327
1341
|
.status { align-items: center; display: flex; gap: 10px; grid-column: 1 / -1; justify-content: center; padding: 0 12px; }
|
|
1328
1342
|
.status i { border-radius: 999px; height: 8px; width: 8px; }
|
|
1329
1343
|
.status span { height: 10px; width: 96px; }
|
|
1330
|
-
.rail i, .sidebar b, .sidebar span, .sidebar i, .workspace b, .workspace span, .workspace i, .cards i, .block, .status i, .status span { animation: pulse 1.35s ease-in-out infinite; background: linear-gradient(90deg, #202020,
|
|
1344
|
+
.rail i, .sidebar b, .sidebar span, .sidebar i, .workspace b, .workspace span, .workspace i, .cards i, .block, .status i, .status span { animation: pulse 1.35s ease-in-out infinite; background: linear-gradient(90deg, #202020, rgb(102 217 242 / 16%), #202020); background-size: 220% 100%; border: 1px solid var(--border); border-radius: 999px; display: block; }
|
|
1331
1345
|
.block, .cards i { border-radius: 18px; }
|
|
1332
1346
|
@keyframes pulse { 0% { background-position: 120% 0; opacity: .52; } 50% { opacity: .95; } 100% { background-position: -120% 0; opacity: .52; } }
|
|
1333
1347
|
@keyframes cursor { 0%, 48% { opacity: 1; } 49%, 100% { opacity: 0; } }
|
|
@@ -1381,6 +1395,7 @@ write_app_bundle() {
|
|
|
1381
1395
|
version="$(app_version "$root")"
|
|
1382
1396
|
|
|
1383
1397
|
mkdir -p "$macos_dir" "$resources_dir"
|
|
1398
|
+
rm -f "${resources_dir}/aidevops.icns" "${resources_dir}/aidevops.svg"
|
|
1384
1399
|
cat > "${contents_dir}/Info.plist" <<PLIST
|
|
1385
1400
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
1386
1401
|
<plist version="1.0">
|
|
@@ -1405,6 +1420,8 @@ PLIST
|
|
|
1405
1420
|
write_service_helper "$root" "$resources_dir"
|
|
1406
1421
|
write_webview_source "$resources_dir"
|
|
1407
1422
|
compile_webview_app "$resources_dir" "$macos_dir"
|
|
1423
|
+
touch "${resources_dir}/aidevops.icns" "${contents_dir}/Info.plist" "$app_path"
|
|
1424
|
+
qlmanage -r cache >/dev/null 2>&1 || true
|
|
1408
1425
|
printf 'Installed %s\n' "$app_path"
|
|
1409
1426
|
return 0
|
|
1410
1427
|
}
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
body { background: radial-gradient(ellipse at top left, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 36%), var(--bg-secondary); color: var(--text-primary); font: 16px Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; margin: 0; }
|
|
27
27
|
.app-shell { display: grid; gap: 8px; grid-template-columns: 72px 302px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) 30px; height: 100vh; padding: 30px 8px 8px; }
|
|
28
28
|
.loading-brand-overlay { align-items: center; backdrop-filter: blur(18px); background: color-mix(in srgb, var(--surface) 78%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--border)); border-radius: 24px; box-shadow: 0 24px 90px color-mix(in srgb, var(--accent) 14%, transparent), 0 24px 80px rgb(0 0 0 / 40%); display: grid; gap: 10px; justify-items: center; left: 50%; padding: 26px 30px; position: fixed; top: 50%; transform: translate(-50%, -50%); width: min(360px, calc(100vw - 48px)); z-index: 20; }
|
|
29
|
-
.loading-brand-mark { align-items:
|
|
29
|
+
.loading-brand-mark { align-items: center; display: inline-flex; font-size: clamp(2.1rem, 7vw, 4rem); font-weight: 900; gap: 0.18em; letter-spacing: -0.08em; line-height: 0.9; }
|
|
30
|
+
.loading-brand-icon { display: block; height: 0.96em; width: 0.96em; }
|
|
30
31
|
.loading-brand-word { color: color-mix(in srgb, var(--text-primary) 86%, var(--accent)); font-size: 0.48em; letter-spacing: -0.04em; margin-right: 0.18em; }
|
|
31
32
|
.loading-brand-chevron, .loading-brand-cursor { color: var(--accent); }
|
|
32
33
|
.loading-brand-cursor { animation: loading-cursor-blink 0.95s steps(1, end) infinite; }
|
|
@@ -52,7 +53,7 @@
|
|
|
52
53
|
<body>
|
|
53
54
|
<div id="root">
|
|
54
55
|
<main class="app-shell app-loading-shell" aria-busy="true" aria-label="Loading aidevops interface">
|
|
55
|
-
<section class="loading-brand-overlay" aria-label="Starting aidevops"><span class="loading-brand-mark" aria-hidden="true"><span class="loading-brand-word">aidevops</span><span class="loading-brand-chevron">></span><span class="loading-brand-cursor">_</span></span><span class="loading-brand-status">Preparing local GUI</span></section>
|
|
56
|
+
<section class="loading-brand-overlay" aria-label="Starting aidevops"><span class="loading-brand-mark" aria-hidden="true"><svg class="loading-brand-icon" viewBox="0 0 1024 1024"><rect x="88" y="88" width="848" height="848" rx="188" fill="#000000" /><rect x="88" y="88" width="848" height="848" rx="188" fill="#66d9f2" opacity="0.22" /><rect x="116" y="116" width="792" height="792" rx="160" fill="none" stroke="#66d9f2" stroke-opacity="0.36" stroke-width="18" /><g transform="translate(512 522) scale(0.94) translate(-288 -256)"><path fill="#8ce8ff" d="M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z" /></g></svg><span class="loading-brand-word">aidevops</span><span class="loading-brand-chevron">></span><span class="loading-brand-cursor">_</span></span><span class="loading-brand-status">Preparing local GUI</span></section>
|
|
56
57
|
<aside class="machine-rail loading-panel" aria-label="machine rail"><span class="loading-orb"></span><span class="loading-orb"></span><span class="loading-orb"></span><span class="loading-orb"></span><span class="loading-orb"></span><span class="loading-orb"></span></aside>
|
|
57
58
|
<aside class="app-sidebar loading-panel" aria-label="sidebar">
|
|
58
59
|
<div class="loading-sidebar-header"><span class="loading-logo"></span><span class="loading-line loading-line-wide"></span></div>
|
|
@@ -35,11 +35,24 @@ export const appearanceStorageKeys = {
|
|
|
35
35
|
theme: "aidevops-gui-theme",
|
|
36
36
|
} as const;
|
|
37
37
|
|
|
38
|
+
function AidevopsLoadingIcon(): ReactElement {
|
|
39
|
+
return (
|
|
40
|
+
<svg className="loading-brand-icon" viewBox="0 0 1024 1024" role="img" aria-label="AI DevOps prompt icon">
|
|
41
|
+
<rect x="88" y="88" width="848" height="848" rx="188" fill="#000000" />
|
|
42
|
+
<rect x="88" y="88" width="848" height="848" rx="188" fill="#66d9f2" opacity="0.22" />
|
|
43
|
+
<rect x="116" y="116" width="792" height="792" rx="160" fill="none" stroke="#66d9f2" strokeOpacity="0.36" strokeWidth="18" />
|
|
44
|
+
<g transform="translate(512 522) scale(0.94) translate(-288 -256)">
|
|
45
|
+
<path fill="#8ce8ff" d="M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z" />
|
|
46
|
+
</g>
|
|
47
|
+
</svg>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
38
51
|
const defaultSidebarWidth = 302;
|
|
39
52
|
const minSidebarWidth = 300;
|
|
40
53
|
const maxSidebarWidth = 520;
|
|
41
54
|
export const loadingSkeletonPanelLabels = ["machine rail", "sidebar", "workspace", "status bar"] as const;
|
|
42
|
-
export const loadingBrandGlyph = "
|
|
55
|
+
export const loadingBrandGlyph = "AI DevOps prompt icon";
|
|
43
56
|
const loadingMachineOrbKeys = ["machine-orb-a", "machine-orb-b", "machine-orb-c", "machine-orb-d", "machine-orb-e", "machine-orb-f"] as const;
|
|
44
57
|
const loadingListRows = [
|
|
45
58
|
{ key: "loading-list-a", variant: "short" },
|
|
@@ -323,6 +336,7 @@ function LoadingBrandOverlay(): ReactElement {
|
|
|
323
336
|
return (
|
|
324
337
|
<div className="loading-brand-overlay" aria-label="Starting aidevops" role="status">
|
|
325
338
|
<span className="loading-brand-mark" aria-hidden="true">
|
|
339
|
+
<AidevopsLoadingIcon />
|
|
326
340
|
<span className="loading-brand-word">aidevops</span>
|
|
327
341
|
<span className="loading-brand-chevron">></span>
|
|
328
342
|
<span className="loading-brand-cursor">_</span>
|
|
@@ -39,6 +39,19 @@ import { dashboardNavItem, navGroups, sidebarModeForSurface, surfaceRecordCounts
|
|
|
39
39
|
import { SidebarFooter, wrappedOptionIndex } from "./AppearanceControls";
|
|
40
40
|
import { VaultPadlock, vaultCollectionForSurface } from "./VaultBadges";
|
|
41
41
|
|
|
42
|
+
function AidevopsPromptIcon() {
|
|
43
|
+
return (
|
|
44
|
+
<svg className="brand-icon" viewBox="0 0 1024 1024" role="img" aria-label="AI DevOps prompt icon">
|
|
45
|
+
<rect className="brand-icon-bg" x="88" y="88" width="848" height="848" rx="188" />
|
|
46
|
+
<rect className="brand-icon-glow" x="88" y="88" width="848" height="848" rx="188" />
|
|
47
|
+
<rect className="brand-icon-ring" x="116" y="116" width="792" height="792" rx="160" />
|
|
48
|
+
<g transform="translate(512 522) scale(0.94) translate(-288 -256)">
|
|
49
|
+
<path className="brand-icon-glyph" d="M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z" />
|
|
50
|
+
</g>
|
|
51
|
+
</svg>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
42
55
|
export { hueFromInputValue } from "./AppearanceControls";
|
|
43
56
|
|
|
44
57
|
const surfaceIcons: Record<SurfaceIconName, IconType> = {
|
|
@@ -362,7 +375,7 @@ function SidebarHeader({ setActiveSurface, setShellMode, shellMode }: {
|
|
|
362
375
|
<header className="sidebar-header">
|
|
363
376
|
<div className="sidebar-titlebar">
|
|
364
377
|
<button className="brand-lockup" onClick={() => { setShellMode("devices"); setActiveSurface(dashboardNavItem.id); }} title="Return to dashboard" type="button">
|
|
365
|
-
<
|
|
378
|
+
<AidevopsPromptIcon />
|
|
366
379
|
<strong>{text.aidevops}</strong>
|
|
367
380
|
</button>
|
|
368
381
|
<IconSwitch
|
|
@@ -579,6 +579,7 @@ code {
|
|
|
579
579
|
letter-spacing: -0.05em;
|
|
580
580
|
}
|
|
581
581
|
|
|
582
|
+
.brand-icon,
|
|
582
583
|
.terminal-mark {
|
|
583
584
|
align-items: center;
|
|
584
585
|
background: color-mix(in srgb, var(--accent) 15%, #0a0a0a);
|
|
@@ -594,6 +595,33 @@ code {
|
|
|
594
595
|
width: 44px;
|
|
595
596
|
}
|
|
596
597
|
|
|
598
|
+
.brand-icon {
|
|
599
|
+
background: transparent;
|
|
600
|
+
border: 0;
|
|
601
|
+
display: block;
|
|
602
|
+
flex: 0 0 auto;
|
|
603
|
+
filter: drop-shadow(0 8px 18px rgb(0 0 0 / 24%));
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.brand-icon-bg {
|
|
607
|
+
fill: #000000;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.brand-icon-glow {
|
|
611
|
+
fill: color-mix(in srgb, #66d9f2 22%, transparent);
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
.brand-icon-ring {
|
|
615
|
+
fill: none;
|
|
616
|
+
stroke: #66d9f2;
|
|
617
|
+
stroke-opacity: 0.36;
|
|
618
|
+
stroke-width: 18;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.brand-icon-glyph {
|
|
622
|
+
fill: #8ce8ff;
|
|
623
|
+
}
|
|
624
|
+
|
|
597
625
|
.sidebar-history-controls {
|
|
598
626
|
background: color-mix(in srgb, var(--surface-muted) 72%, transparent);
|
|
599
627
|
border: 1px solid var(--border);
|
package/setup.sh
CHANGED
|
@@ -12,7 +12,7 @@ shopt -s inherit_errexit 2>/dev/null || true
|
|
|
12
12
|
# AI Assistant Server Access Framework Setup Script
|
|
13
13
|
# Helps developers set up the framework for their infrastructure
|
|
14
14
|
#
|
|
15
|
-
# Version: 3.31.
|
|
15
|
+
# Version: 3.31.36
|
|
16
16
|
#
|
|
17
17
|
# Quick Install:
|
|
18
18
|
# npm install -g aidevops && aidevops update (recommended)
|