aidevops 3.31.23 → 3.31.25

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 CHANGED
@@ -58,7 +58,7 @@ The result: an AI operations platform that manages projects across every busines
58
58
  [![Copyright](https://img.shields.io/badge/Copyright-Marcus%20Quinn%202025--2026-blue.svg)](https://github.com/marcusquinn)
59
59
 
60
60
  <!-- Release & Version Info -->
61
- [![Version](https://img.shields.io/badge/Version-3.31.23-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
61
+ [![Version](https://img.shields.io/badge/Version-3.31.25-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
62
62
  [![npm version](https://img.shields.io/npm/v/aidevops)](https://www.npmjs.com/package/aidevops)
63
63
  [![Homebrew](https://img.shields.io/badge/homebrew-marcusquinn%2Ftap-orange)](https://github.com/marcusquinn/homebrew-tap)
64
64
  [![GitHub repository](https://img.shields.io/badge/github-repository-181717.svg?logo=github)](https://github.com/marcusquinn/aidevops)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.31.23
1
+ 3.31.25
package/aidevops.sh CHANGED
@@ -5,7 +5,7 @@
5
5
  # AI DevOps Framework CLI
6
6
  # Usage: aidevops <command> [options]
7
7
  #
8
- # Version: 3.31.23
8
+ # Version: 3.31.25
9
9
 
10
10
  set -euo pipefail
11
11
 
package/bun.lock CHANGED
@@ -41,7 +41,6 @@
41
41
  "version": "0.0.0",
42
42
  "dependencies": {
43
43
  "@aidevops/gui-shared": "workspace:*",
44
- "@fontsource/cal-sans": "^5.2.3",
45
44
  "@fontsource/courier-prime": "^5.2.8",
46
45
  "@fontsource/dm-mono": "^5.2.7",
47
46
  "@fontsource/dm-sans": "^5.2.8",
@@ -170,8 +169,6 @@
170
169
 
171
170
  "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.7", "", { "os": "win32", "cpu": "x64" }, "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg=="],
172
171
 
173
- "@fontsource/cal-sans": ["@fontsource/cal-sans@5.2.3", "", {}, "sha512-cY9d2LWfzzge3jSgh2IJmNEJdubuPnjfct/5Q/L/4Q5W9LlXRRZO403P0c3i1iPH4Y+IQ0gHgnJroPzL3KuxQQ=="],
174
-
175
172
  "@fontsource/courier-prime": ["@fontsource/courier-prime@5.2.8", "", {}, "sha512-M3xOCcXnGuFi9TcGCrz4hm5yeWg4Sn35MALRLPnqNoHhawTFvhyi2KSI2+5RyFtDNJrb58bPh8LLipgiI9KA0w=="],
176
173
 
177
174
  "@fontsource/dm-mono": ["@fontsource/dm-mono@5.2.7", "", {}, "sha512-Ma1az2atTVgQWuOWwjuxx26p/6A6CU9HBNKq1CFV6YKpKhpswnf9ry9Ql4+T6bTZzkdtSfS6tjJvqZOljVzIFQ=="],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.31.23",
3
+ "version": "3.31.25",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -51,9 +51,40 @@ validate_environment() {
51
51
 
52
52
  gui_dependencies_present() {
53
53
  local root="$1"
54
+ local dependency_path=""
54
55
 
55
- [[ -f "${root}/node_modules/vite/bin/vite.js" && -d "${root}/node_modules/react" && -d "${root}/node_modules/react-icons" ]]
56
- return $?
56
+ while IFS= read -r dependency_path; do
57
+ if [[ -z "$dependency_path" ]]; then
58
+ continue
59
+ fi
60
+ if [[ ! -e "${root}/${dependency_path}" ]]; then
61
+ return 1
62
+ fi
63
+ done <<'DEPENDENCIES'
64
+ node_modules/vite/bin/vite.js
65
+ node_modules/react
66
+ node_modules/react-icons
67
+ node_modules/@fontsource/cal-sans
68
+ node_modules/@fontsource/courier-prime
69
+ node_modules/@fontsource/dm-mono
70
+ node_modules/@fontsource/dm-sans
71
+ node_modules/@fontsource/fredoka
72
+ node_modules/@fontsource/ibm-plex-mono
73
+ node_modules/@fontsource/ibm-plex-sans
74
+ node_modules/@fontsource/ibm-plex-serif
75
+ node_modules/@fontsource/inter
76
+ node_modules/@fontsource/mohave
77
+ node_modules/@fontsource/playpen-sans
78
+ node_modules/@fontsource/poppins
79
+ node_modules/@fontsource/source-sans-3
80
+ node_modules/@fontsource/source-serif-4
81
+ node_modules/@fontsource/tilt-neon
82
+ node_modules/@fontsource/ubuntu
83
+ node_modules/@fontsource/ubuntu-mono
84
+ node_modules/@fontsource/zilla-slab
85
+ DEPENDENCIES
86
+
87
+ return 0
57
88
  }
58
89
 
59
90
  ensure_gui_dependencies() {
@@ -189,6 +220,68 @@ require_bun() {
189
220
  return 0
190
221
  }
191
222
 
223
+ gui_dependencies_present() {
224
+ local dependency_path=""
225
+
226
+ while IFS= read -r dependency_path; do
227
+ if [[ -z "\${dependency_path}" ]]; then
228
+ continue
229
+ fi
230
+ if [[ ! -e "\${dependency_path}" ]]; then
231
+ return 1
232
+ fi
233
+ done <<'DEPENDENCIES'
234
+ node_modules/vite/bin/vite.js
235
+ node_modules/react
236
+ node_modules/react-icons
237
+ node_modules/@fontsource/cal-sans
238
+ node_modules/@fontsource/courier-prime
239
+ node_modules/@fontsource/dm-mono
240
+ node_modules/@fontsource/dm-sans
241
+ node_modules/@fontsource/fredoka
242
+ node_modules/@fontsource/ibm-plex-mono
243
+ node_modules/@fontsource/ibm-plex-sans
244
+ node_modules/@fontsource/ibm-plex-serif
245
+ node_modules/@fontsource/inter
246
+ node_modules/@fontsource/mohave
247
+ node_modules/@fontsource/playpen-sans
248
+ node_modules/@fontsource/poppins
249
+ node_modules/@fontsource/source-sans-3
250
+ node_modules/@fontsource/source-serif-4
251
+ node_modules/@fontsource/tilt-neon
252
+ node_modules/@fontsource/ubuntu
253
+ node_modules/@fontsource/ubuntu-mono
254
+ node_modules/@fontsource/zilla-slab
255
+ DEPENDENCIES
256
+
257
+ return 0
258
+ }
259
+
260
+ ensure_gui_dependencies() {
261
+ if gui_dependencies_present; then
262
+ return 0
263
+ fi
264
+
265
+ require_bun
266
+ if [[ ! -f "bun.lock" ]]; then
267
+ printf 'GUI dependencies are missing and bun.lock was not found in %s\n' "\${REPO_ROOT}" >"\${LAUNCHER_LOG}"
268
+ notify "aidevops GUI dependencies are missing and bun.lock was not found."
269
+ return 1
270
+ fi
271
+ printf 'Installing GUI dependencies with bun install --frozen-lockfile in %s\n' "\${REPO_ROOT}" >"\${LAUNCHER_LOG}"
272
+ if ! "\${BUN_BIN}" install --frozen-lockfile >>"\${LAUNCHER_LOG}" 2>&1; then
273
+ notify "aidevops GUI dependency install failed. Check \${LAUNCHER_LOG}."
274
+ return 1
275
+ fi
276
+ if ! gui_dependencies_present; then
277
+ printf 'GUI dependencies are still missing after bun install in %s\n' "\${REPO_ROOT}" >>"\${LAUNCHER_LOG}"
278
+ notify "aidevops GUI dependencies are still missing after install."
279
+ return 1
280
+ fi
281
+
282
+ return 0
283
+ }
284
+
192
285
  port_pids() {
193
286
  local port="\$1"
194
287
 
@@ -295,6 +388,10 @@ if ! url_ready "\${API_HEALTH_URL}" || ! url_ready "\${WEB_HEALTH_URL}"; then
295
388
  require_bun
296
389
  fi
297
390
 
391
+ if ! url_ready "\${WEB_HEALTH_URL}"; then
392
+ ensure_gui_dependencies
393
+ fi
394
+
298
395
  if ! url_ready "\${API_HEALTH_URL}"; then
299
396
  nohup env AIDEVOPS_GUI_API_PORT="\${API_PORT}" "\${BUN_BIN}" run packages/gui-api/src/server.ts >"\${LOG_DIR}/api.log" 2>&1 &
300
397
  fi
@@ -20,7 +20,7 @@
20
20
  })();
21
21
  </script>
22
22
  <style>
23
- :root { --accent-hue: 123; --accent: hsl(var(--accent-hue) 50% 36%); --bg-secondary: #f8f8f8; --border: rgb(0 0 0 / 13%); --surface: #fff; --surface-elevated: #fff; --surface-muted: #f0f0f0; --text-primary: #111; --text-secondary: rgb(17 17 17 / 75%); color-scheme: light; }
23
+ :root { --accent-hue: 191; --accent: hsl(var(--accent-hue) 50% 36%); --bg-secondary: #f8f8f8; --border: rgb(0 0 0 / 13%); --surface: #fff; --surface-elevated: #fff; --surface-muted: #f0f0f0; --text-primary: #111; --text-secondary: rgb(17 17 17 / 75%); color-scheme: light; }
24
24
  :root[data-theme="dark"] { --accent: hsl(var(--accent-hue) 74% 66%); --bg-secondary: #111; --border: rgb(255 255 255 / 11%); --surface: #0a0a0a; --surface-elevated: #151515; --surface-muted: #202020; --text-primary: #fff; --text-secondary: rgb(255 255 255 / 70%); color-scheme: dark; }
25
25
  * { box-sizing: border-box; }
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; }
@@ -5,7 +5,6 @@
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@aidevops/gui-shared": "workspace:*",
8
- "@fontsource/cal-sans": "^5.2.3",
9
8
  "@fontsource/courier-prime": "^5.2.8",
10
9
  "@fontsource/dm-mono": "^5.2.7",
11
10
  "@fontsource/dm-sans": "^5.2.8",
@@ -6,7 +6,6 @@ export type SidebarMode = "devops" | "comms";
6
6
  export type ShellMode = "devices" | "sessions";
7
7
  export type ConversationMode = "ai" | "people";
8
8
  export type FontPreference =
9
- | "Cal Sans"
10
9
  | "Courier Prime"
11
10
  | "DM Mono"
12
11
  | "DM Sans"
@@ -329,7 +328,7 @@ export const text = {
329
328
  navigationLabel: "aidevops navigation",
330
329
  } as const;
331
330
 
332
- export const DEFAULT_ACCENT_HUE = 123;
331
+ export const DEFAULT_ACCENT_HUE = 191;
333
332
  export const DEFAULT_CONTRAST: ContrastPreference = "low";
334
333
  export const DEFAULT_FONT: FontPreference = "Inter";
335
334
  export const DEFAULT_FONT_SIZE: FontSizePreference = "xs";
@@ -348,7 +347,6 @@ export const contrastOptions: ContrastOption[] = [
348
347
  ];
349
348
 
350
349
  export const fontOptions: FontOption[] = [
351
- { value: "Cal Sans", label: "Cal Sans", fontFamily: '"Cal Sans", Inter, system-ui, sans-serif' },
352
350
  { value: "Courier Prime", label: "Courier Prime", fontFamily: '"Courier Prime", "Courier New", Courier, monospace' },
353
351
  { value: "DM Mono", label: "DM Mono", fontFamily: '"DM Mono", Menlo, Monaco, Consolas, monospace' },
354
352
  { value: "DM Sans", label: "DM Sans", fontFamily: '"DM Sans", Inter, system-ui, sans-serif' },
@@ -55,7 +55,7 @@ export function renderDashboardHtml(status: GuiResponseEnvelope<GuiStatusData>):
55
55
  `<h1>aidevops app interface</h1>`,
56
56
  `<p>Made for creators.</p>`,
57
57
  `<p>AI-assisted development workflows, code quality, and deployment automation.</p>`,
58
- `<p>Theme follows system preferences with light and dark overrides. Sidebar modes: DevOps and Comms. Appearance controls can be hidden or shown, and include editable Hue, Contrast levels low, medium, high, icon Reset, Show borders toggle, Show counts toggle, Font size choices xs, s, m, lg, xl, and Font options: Cal Sans, Courier Prime, DM Mono, DM Sans, Fredoka, IBM Plex Mono, IBM Plex Sans, IBM Plex Serif, Inter (default), Menlo, Mohave, Playpen Sans, Poppins, Source Sans, Source Serif, Tilt Neon, Ubuntu, Ubuntu Mono, Zilla Slab. The workspace header includes a command palette, reserved signposts/help slot immediately left of notifications, notifications menu, AI Assistant panel, and profile menu with Settings, Theme, Language, Community, Admin, and Logout entries. Notifications reuse the OpenCode toast status cache and GUI readiness data. A desktop status bar shows local readiness, repo totals, secret reference count, provider accounts, and update state.</p>`,
58
+ `<p>Theme follows system preferences with light and dark overrides. Sidebar modes: DevOps and Comms. Appearance controls can be hidden or shown, and include editable Hue, Contrast levels low, medium, high, icon Reset, Show borders toggle, Show counts toggle, Font size choices xs, s, m, lg, xl, and Font options: Courier Prime, DM Mono, DM Sans, Fredoka, IBM Plex Mono, IBM Plex Sans, IBM Plex Serif, Inter (default), Menlo, Mohave, Playpen Sans, Poppins, Source Sans, Source Serif, Tilt Neon, Ubuntu, Ubuntu Mono, Zilla Slab. The workspace header includes a command palette, reserved signposts/help slot immediately left of notifications, notifications menu, AI Assistant panel, and profile menu with Settings, Theme, Language, Community, Admin, and Logout entries. Notifications reuse the OpenCode toast status cache and GUI readiness data. A desktop status bar shows local readiness, repo totals, secret reference count, provider accounts, and update state.</p>`,
59
59
  `<p>Secret references stay read-only and redacted.</p>`,
60
60
  `<p>Vault surfaces show padlock indicators. Encrypted by aidevops Vault; contents visible only when unlocked through app or authorised vault commands.</p>`,
61
61
  `<p>${escapeHtml(status.data.update.message)}</p>`,
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import { createRoot } from "react-dom/client";
3
3
  import { App } from "./App";
4
- import "@fontsource/cal-sans";
5
4
  import "@fontsource/courier-prime";
6
5
  import "@fontsource/dm-mono";
7
6
  import "@fontsource/dm-sans";
@@ -1,5 +1,5 @@
1
1
  :root {
2
- --accent-hue: 123;
2
+ --accent-hue: 191;
3
3
  --accent: hsl(var(--accent-hue) 50% 36%);
4
4
  --accent-aaa-bg: hsl(var(--accent-hue) 58% 24%);
5
5
  --accent-strong: hsl(var(--accent-hue) 56% 28%);
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.23
15
+ # Version: 3.31.25
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)