aidevops 3.22.0 → 3.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +21 -2
- package/packages/gui-shared/src/fixtures.ts +6 -26
- package/packages/gui-web/src/AppNavigation.tsx +22 -2
- package/packages/gui-web/src/app-model.ts +5 -7
- 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.22.
|
|
1
|
+
3.22.2
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
|
@@ -360,6 +360,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
360
360
|
private let defaultAccentHue: CGFloat = 123
|
|
361
361
|
private let mainWindowFrameAutosaveName = "aidevops-main-window"
|
|
362
362
|
private let titlebarHeight: CGFloat = 24
|
|
363
|
+
private let serviceQueue = DispatchQueue(label: "sh.aidevops.gui.services")
|
|
364
|
+
private var servicesStopped = false
|
|
363
365
|
|
|
364
366
|
func applicationDidFinishLaunching(_ notification: Notification) {
|
|
365
367
|
configureMenu()
|
|
@@ -378,6 +380,11 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
378
380
|
return .terminateNow
|
|
379
381
|
}
|
|
380
382
|
|
|
383
|
+
func applicationWillTerminate(_ notification: Notification) {
|
|
384
|
+
saveMainWindowFrame()
|
|
385
|
+
stopServices()
|
|
386
|
+
}
|
|
387
|
+
|
|
381
388
|
func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
|
|
382
389
|
if !flag {
|
|
383
390
|
openDashboard(nil)
|
|
@@ -818,8 +825,14 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
818
825
|
}
|
|
819
826
|
|
|
820
827
|
private func startServicesAndLoadApp() {
|
|
821
|
-
|
|
828
|
+
serviceQueue.async {
|
|
829
|
+
if self.servicesStopped {
|
|
830
|
+
return
|
|
831
|
+
}
|
|
822
832
|
let result = self.runServiceHelper()
|
|
833
|
+
if self.servicesStopped {
|
|
834
|
+
return
|
|
835
|
+
}
|
|
823
836
|
DispatchQueue.main.async {
|
|
824
837
|
if result.ok {
|
|
825
838
|
self.loadAppURL()
|
|
@@ -835,7 +848,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate, WKNavigationDelegate,
|
|
|
835
848
|
}
|
|
836
849
|
|
|
837
850
|
private func stopServices() {
|
|
838
|
-
|
|
851
|
+
serviceQueue.sync {
|
|
852
|
+
if servicesStopped {
|
|
853
|
+
return
|
|
854
|
+
}
|
|
855
|
+
servicesStopped = true
|
|
856
|
+
_ = runServiceHelper(arguments: ["stop"])
|
|
857
|
+
}
|
|
839
858
|
}
|
|
840
859
|
|
|
841
860
|
private func runServiceHelper(arguments: [String]) -> (ok: Bool, message: String) {
|
|
@@ -41,32 +41,12 @@ export const statusFixture: GuiStatusData = {
|
|
|
41
41
|
},
|
|
42
42
|
],
|
|
43
43
|
navigation: [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
id: "agents",
|
|
51
|
-
label: "Agents",
|
|
52
|
-
description: "Read-only file explorer for deployed agent files.",
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
id: "config",
|
|
56
|
-
label: "Config",
|
|
57
|
-
description: "Read-only file explorer for aidevops config.",
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
id: "git",
|
|
61
|
-
label: "Local Repos",
|
|
62
|
-
description: "Read-only local git workspace browser.",
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: "security",
|
|
66
|
-
label: "Secrets",
|
|
67
|
-
description: "Secret-reference-only trust boundary.",
|
|
68
|
-
},
|
|
69
|
-
],
|
|
44
|
+
["overview", "Overview", "Local setup, update, and API health."],
|
|
45
|
+
["agents", "Agents", "Read-only file explorer for deployed agent files."],
|
|
46
|
+
["config", "Config", "Read-only file explorer for aidevops config."],
|
|
47
|
+
["git", "Local Repos", "Read-only local git workspace browser."],
|
|
48
|
+
["security", "Secrets", "Secret-reference-only trust boundary."],
|
|
49
|
+
].map(([id, label, description]) => ({ id, label, description })),
|
|
70
50
|
settings: {
|
|
71
51
|
path_ref: "~/.config/aidevops/settings.json",
|
|
72
52
|
health: "unchecked",
|
|
@@ -64,6 +64,22 @@ const surfaceIcons: Record<SurfaceIconName, IconType> = {
|
|
|
64
64
|
users: FiUsers,
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
+
export function hueFromInputValue(value: string): number | null {
|
|
68
|
+
const trimmedValue = value.trim();
|
|
69
|
+
|
|
70
|
+
if (trimmedValue.length === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const hue = Number(trimmedValue);
|
|
75
|
+
|
|
76
|
+
if (!Number.isInteger(hue)) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return Math.min(359, Math.max(0, hue));
|
|
81
|
+
}
|
|
82
|
+
|
|
67
83
|
export function SurfaceGlyph({ icon }: { icon: SurfaceIconName }) {
|
|
68
84
|
const Icon = surfaceIcons[icon];
|
|
69
85
|
|
|
@@ -271,10 +287,14 @@ function SidebarFooter({ accentHue, fontPreference, fontSizePreference, setAccen
|
|
|
271
287
|
};
|
|
272
288
|
const updateHueInput = (value: string) => {
|
|
273
289
|
setHueInput(value);
|
|
274
|
-
|
|
290
|
+
|
|
291
|
+
const nextHue = hueFromInputValue(value);
|
|
292
|
+
|
|
293
|
+
if (nextHue === null) {
|
|
275
294
|
return;
|
|
276
295
|
}
|
|
277
|
-
|
|
296
|
+
|
|
297
|
+
updateAccentHue(nextHue);
|
|
278
298
|
};
|
|
279
299
|
|
|
280
300
|
useEffect(() => {
|
|
@@ -265,13 +265,11 @@ export const fontOptions: FontOption[] = [
|
|
|
265
265
|
{ value: "Ubuntu Mono", label: "Ubuntu Mono", fontFamily: '"Ubuntu Mono", Menlo, Monaco, Consolas, monospace' },
|
|
266
266
|
];
|
|
267
267
|
|
|
268
|
-
export const fontSizeOptions: FontSizeOption[] = [
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
{ value: "xl", label: "xl", cssSize: "18px" },
|
|
274
|
-
];
|
|
268
|
+
export const fontSizeOptions: FontSizeOption[] = (["xs", "s", "m", "lg", "xl"] as const).map((size, index) => ({
|
|
269
|
+
value: size,
|
|
270
|
+
label: size,
|
|
271
|
+
cssSize: `${14 + index}px`,
|
|
272
|
+
}));
|
|
275
273
|
|
|
276
274
|
export const navGroups: SurfaceNavGroup[] = [
|
|
277
275
|
{
|
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.22.
|
|
15
|
+
# Version: 3.22.2
|
|
16
16
|
#
|
|
17
17
|
# Quick Install:
|
|
18
18
|
# npm install -g aidevops && aidevops update (recommended)
|