aidevops 3.31.47 → 3.31.49

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
@@ -1,6 +1,8 @@
1
1
  <!-- SPDX-License-Identifier: MIT -->
2
2
  <!-- SPDX-FileCopyrightText: 2025-2026 Marcus Quinn -->
3
3
 
4
+ ![AI DevOps social graph preview](docs/assets/og-image.png)
5
+
4
6
  # AI DevOps Framework
5
7
 
6
8
  **[aidevops.sh](https://aidevops.sh)** is an [OpenCode](https://opencode.ai/) plugin and AI DevOps framework for people who want AI to do useful work across code, infrastructure, business, marketing, content, and creative projects without turning every job into another long, fragile chat.
@@ -58,7 +60,7 @@ The result: an AI operations platform that manages projects across every busines
58
60
  [![Copyright](https://img.shields.io/badge/Copyright-Marcus%20Quinn%202025--2026-blue.svg)](https://github.com/marcusquinn)
59
61
 
60
62
  <!-- Release & Version Info -->
61
- [![Version](https://img.shields.io/badge/Version-3.31.47-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
63
+ [![Version](https://img.shields.io/badge/Version-3.31.49-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
62
64
  [![npm version](https://img.shields.io/npm/v/aidevops)](https://www.npmjs.com/package/aidevops)
63
65
  [![Homebrew](https://img.shields.io/badge/homebrew-marcusquinn%2Ftap-orange)](https://github.com/marcusquinn/homebrew-tap)
64
66
  [![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.47
1
+ 3.31.49
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.47
8
+ # Version: 3.31.49
9
9
 
10
10
  set -euo pipefail
11
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.31.47",
3
+ "version": "3.31.49",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -25,13 +25,11 @@
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; }
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
- .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: 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; }
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; }
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: 999px; box-shadow: 0 18px 70px color-mix(in srgb, var(--accent) 12%, transparent), 0 24px 80px rgb(0 0 0 / 40%); display: inline-flex; gap: 10px; justify-content: center; left: 50%; max-width: calc(100vw - 48px); padding: 12px 18px; position: fixed; top: 50%; transform: translate(-50%, -50%); width: max-content; z-index: 20; }
29
+ .loading-brand-mark { align-items: center; color: var(--accent); display: inline-flex; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 0.95rem; font-weight: 900; letter-spacing: -0.03em; line-height: 1; }
32
30
  .loading-brand-chevron, .loading-brand-cursor { color: var(--accent); }
33
31
  .loading-brand-cursor { animation: loading-cursor-blink 0.95s steps(1, end) infinite; }
34
- .loading-brand-status { color: var(--text-secondary); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
32
+ .loading-brand-status { color: var(--text-primary); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 0.86rem; font-weight: 800; letter-spacing: 0; line-height: 1; }
35
33
  .loading-panel, .desktop-status-bar { background: color-mix(in srgb, var(--surface-elevated) 96%, transparent); border: 1px solid var(--border); border-radius: 18px; box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%); overflow: hidden; }
36
34
  .machine-rail { align-content: start; display: grid; gap: 10px; justify-items: center; padding: 12px 8px; }
37
35
  .app-sidebar { display: grid; grid-template-rows: auto auto 1fr auto; }
@@ -53,7 +51,7 @@
53
51
  <body>
54
52
  <div id="root">
55
53
  <main class="app-shell app-loading-shell" aria-busy="true" aria-label="Loading aidevops interface">
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">&gt;</span><span class="loading-brand-cursor">_</span></span><span class="loading-brand-status">Preparing local GUI</span></section>
54
+ <section class="loading-brand-overlay" aria-label="Starting aidevops"><span class="loading-brand-mark" aria-hidden="true"><span class="loading-brand-chevron">&gt;</span><span class="loading-brand-cursor">_</span></span><span class="loading-brand-status">Preparing local GUI</span></section>
57
55
  <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>
58
56
  <aside class="app-sidebar loading-panel" aria-label="sidebar">
59
57
  <div class="loading-sidebar-header"><span class="loading-logo"></span><span class="loading-line loading-line-wide"></span></div>
@@ -35,24 +35,11 @@ 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
-
51
38
  const defaultSidebarWidth = 302;
52
39
  const minSidebarWidth = 300;
53
40
  const maxSidebarWidth = 520;
54
41
  export const loadingSkeletonPanelLabels = ["machine rail", "sidebar", "workspace", "status bar"] as const;
55
- export const loadingBrandGlyph = "AI DevOps prompt icon";
42
+ export const loadingBrandGlyph = "compact prompt status";
56
43
  const loadingMachineOrbKeys = ["machine-orb-a", "machine-orb-b", "machine-orb-c", "machine-orb-d", "machine-orb-e", "machine-orb-f"] as const;
57
44
  const loadingListRows = [
58
45
  { key: "loading-list-a", variant: "short" },
@@ -222,12 +209,8 @@ export function App(): ReactElement {
222
209
  setSelectedLocalRepoIndex((current) => Math.min(current, Math.max(0, status.data.local_repos.repos.length - 1)));
223
210
  }, [status.data.local_repos.repos.length]);
224
211
 
225
- if (statusLoading) {
226
- return <AppLoadingSkeleton machineRailVisible={machineRailVisible} />;
227
- }
228
-
229
212
  return (
230
- <main className={machineRailVisible ? "app-shell" : "app-shell machine-rail-collapsed"}>
213
+ <main className={machineRailVisible ? "app-shell" : "app-shell machine-rail-collapsed"} aria-busy={statusLoading}>
231
214
  <div className="desktop-titlebar-tagline" aria-hidden="true">Your data protected. Your systems managed. Your creations published.</div>
232
215
  <ScreenshotCaptureNotificationHost />
233
216
  {machineRailVisible ? <MachineRail machine={status.data.machine} /> : null}
@@ -336,8 +319,6 @@ function LoadingBrandOverlay(): ReactElement {
336
319
  return (
337
320
  <div className="loading-brand-overlay" aria-label="Starting aidevops" role="status">
338
321
  <span className="loading-brand-mark" aria-hidden="true">
339
- <AidevopsLoadingIcon />
340
- <span className="loading-brand-word">aidevops</span>
341
322
  <span className="loading-brand-chevron">&gt;</span>
342
323
  <span className="loading-brand-cursor">_</span>
343
324
  </span>
@@ -3771,36 +3771,30 @@ button.managed-toggle:focus-visible {
3771
3771
  backdrop-filter: blur(18px);
3772
3772
  background: color-mix(in srgb, var(--surface) 78%, transparent);
3773
3773
  border: 1px solid var(--border-accent);
3774
- border-radius: 24px;
3775
- box-shadow: 0 24px 90px color-mix(in srgb, var(--accent) 14%, transparent), var(--shadow-soft);
3776
- display: grid;
3774
+ border-radius: 999px;
3775
+ box-shadow: 0 18px 70px color-mix(in srgb, var(--accent) 12%, transparent), var(--shadow-soft);
3776
+ display: inline-flex;
3777
3777
  gap: 10px;
3778
- justify-items: center;
3778
+ justify-content: center;
3779
3779
  left: 50%;
3780
- padding: 26px 30px;
3780
+ padding: 12px 18px;
3781
3781
  position: fixed;
3782
3782
  top: 50%;
3783
3783
  transform: translate(-50%, -50%);
3784
- width: min(360px, calc(100vw - 48px));
3784
+ width: max-content;
3785
+ max-width: calc(100vw - 48px);
3785
3786
  z-index: 20;
3786
3787
  }
3787
3788
 
3788
3789
  .loading-brand-mark {
3789
- align-items: baseline;
3790
- color: var(--text-primary);
3790
+ align-items: center;
3791
+ color: var(--accent);
3791
3792
  display: inline-flex;
3792
- font-family: var(--font-family-mono);
3793
- font-size: clamp(2.1rem, 7vw, 4rem);
3793
+ font-family: var(--font-family-app);
3794
+ font-size: 0.95rem;
3794
3795
  font-weight: 900;
3795
- letter-spacing: -0.08em;
3796
- line-height: 0.9;
3797
- }
3798
-
3799
- .loading-brand-word {
3800
- color: color-mix(in srgb, var(--text-primary) 86%, var(--accent));
3801
- font-size: 0.48em;
3802
- letter-spacing: -0.04em;
3803
- margin-right: 0.18em;
3796
+ letter-spacing: -0.03em;
3797
+ line-height: 1;
3804
3798
  }
3805
3799
 
3806
3800
  .loading-brand-chevron { color: var(--accent); }
@@ -3811,11 +3805,12 @@ button.managed-toggle:focus-visible {
3811
3805
  }
3812
3806
 
3813
3807
  .loading-brand-status {
3814
- color: var(--text-secondary);
3815
- font-size: 0.78rem;
3808
+ color: var(--text-primary);
3809
+ font-family: var(--font-family-app);
3810
+ font-size: 0.86rem;
3816
3811
  font-weight: 800;
3817
- letter-spacing: 0.1em;
3818
- text-transform: uppercase;
3812
+ letter-spacing: 0;
3813
+ line-height: 1;
3819
3814
  }
3820
3815
 
3821
3816
  .loading-line,
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.47
15
+ # Version: 3.31.49
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)