aidevops 3.31.30 → 3.31.31
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-web/src/PulseWorkersSurface.tsx +18 -7
- package/packages/gui-web/src/styles.css +50 -30
- 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.31
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
|
@@ -94,10 +94,19 @@ export function PulseWorkersSurface({ status }: { status: GuiStatusData }): Reac
|
|
|
94
94
|
</div>
|
|
95
95
|
<button disabled={!actionById(pulse.actions, "create_systemic_fix")?.enabled} onClick={() => void runPulseWorkerAction(actionById(pulse.actions, "create_systemic_fix"), setJobs, setSelectedJobId, setDismissedJobIds)} title="Create a worker-ready systemic-fix task from selected evidence" type="button">Create systemic fix task</button>
|
|
96
96
|
</article>
|
|
97
|
+
</section>
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
<section className="planned-card pulse-trends-panel" aria-label="Pulse trend charts">
|
|
100
|
+
<div className="split-heading">
|
|
101
|
+
<div>
|
|
102
|
+
<p className="eyebrow">Operational trends</p>
|
|
103
|
+
<h3>Key indicators</h3>
|
|
104
|
+
</div>
|
|
105
|
+
<span className="count-pill">single-column chart stack</span>
|
|
106
|
+
</div>
|
|
107
|
+
<div className="pulse-chart-grid pulse-chart-stack">
|
|
99
108
|
{chartSeries.map((chart) => <PulseChartPanel chart={chart} key={chart.id} />)}
|
|
100
|
-
</
|
|
109
|
+
</div>
|
|
101
110
|
</section>
|
|
102
111
|
|
|
103
112
|
<section className="planned-card pulse-filter-panel" aria-label="Pulse filters">
|
|
@@ -227,12 +236,14 @@ function PulseChartPanel({ chart }: { chart: GuiPulseWorkerChartSeries }): React
|
|
|
227
236
|
const svgPaths = chartSvgPaths(values);
|
|
228
237
|
|
|
229
238
|
return (
|
|
230
|
-
<article className="
|
|
239
|
+
<article className="pulse-chart-panel">
|
|
231
240
|
<p className="eyebrow">Trends · compact bars · day/week/month/year</p>
|
|
232
|
-
<
|
|
233
|
-
|
|
234
|
-
<
|
|
235
|
-
|
|
241
|
+
<div className="pulse-chart-heading">
|
|
242
|
+
<h4>{chart.label}</h4>
|
|
243
|
+
<div className="pulse-chart-meta">
|
|
244
|
+
<span><strong>{formatChartValue(latestValue, chart.unit)}</strong><small>Latest</small></span>
|
|
245
|
+
<span><strong>{trendSummary(trend, chart.unit)}</strong><small>Δ period</small></span>
|
|
246
|
+
</div>
|
|
236
247
|
</div>
|
|
237
248
|
<div className="pulse-chart-placeholder" aria-label={`${chart.label} chart for day week month year buckets`} role="img">
|
|
238
249
|
<svg aria-hidden="true" className="pulse-chart-sparkline" focusable="false" preserveAspectRatio="none" viewBox="0 0 100 48">
|
|
@@ -2428,7 +2428,7 @@ code {
|
|
|
2428
2428
|
}
|
|
2429
2429
|
|
|
2430
2430
|
.pulse-overview-layout {
|
|
2431
|
-
grid-template-columns: minmax(
|
|
2431
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2432
2432
|
}
|
|
2433
2433
|
|
|
2434
2434
|
.pulse-kpi-card {
|
|
@@ -2450,24 +2450,36 @@ code {
|
|
|
2450
2450
|
line-height: 1;
|
|
2451
2451
|
}
|
|
2452
2452
|
|
|
2453
|
+
.pulse-chart-heading {
|
|
2454
|
+
align-items: start;
|
|
2455
|
+
display: grid;
|
|
2456
|
+
gap: 10px;
|
|
2457
|
+
grid-template-columns: minmax(0, 1fr) minmax(180px, 0.7fr);
|
|
2458
|
+
}
|
|
2459
|
+
|
|
2460
|
+
.pulse-chart-heading h4 {
|
|
2461
|
+
font-size: 1rem;
|
|
2462
|
+
margin: 0;
|
|
2463
|
+
}
|
|
2464
|
+
|
|
2453
2465
|
.pulse-chart-meta {
|
|
2454
2466
|
display: grid;
|
|
2455
|
-
gap:
|
|
2467
|
+
gap: 6px;
|
|
2456
2468
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2457
2469
|
}
|
|
2458
2470
|
|
|
2459
2471
|
.pulse-chart-meta span {
|
|
2460
2472
|
background: color-mix(in srgb, var(--accent) 9%, var(--surface-muted));
|
|
2461
2473
|
border: 1px solid var(--border);
|
|
2462
|
-
border-radius:
|
|
2474
|
+
border-radius: 10px;
|
|
2463
2475
|
display: grid;
|
|
2464
2476
|
gap: 2px;
|
|
2465
|
-
padding:
|
|
2477
|
+
padding: 8px;
|
|
2466
2478
|
}
|
|
2467
2479
|
|
|
2468
2480
|
.pulse-chart-meta strong {
|
|
2469
2481
|
color: var(--accent);
|
|
2470
|
-
font-size:
|
|
2482
|
+
font-size: 0.98rem;
|
|
2471
2483
|
letter-spacing: -0.04em;
|
|
2472
2484
|
line-height: 1;
|
|
2473
2485
|
}
|
|
@@ -2485,11 +2497,19 @@ code {
|
|
|
2485
2497
|
.pulse-activity-panel,
|
|
2486
2498
|
.pulse-drilldown-panel,
|
|
2487
2499
|
.pulse-actions-panel,
|
|
2488
|
-
.pulse-filter-panel
|
|
2500
|
+
.pulse-filter-panel,
|
|
2501
|
+
.pulse-trends-panel {
|
|
2489
2502
|
display: grid;
|
|
2490
2503
|
gap: 12px;
|
|
2491
2504
|
}
|
|
2492
2505
|
|
|
2506
|
+
.pulse-chart-panel {
|
|
2507
|
+
background: var(--surface-muted);
|
|
2508
|
+
border: 1px solid var(--border);
|
|
2509
|
+
border-radius: 16px;
|
|
2510
|
+
padding: 14px;
|
|
2511
|
+
}
|
|
2512
|
+
|
|
2493
2513
|
.pulse-attention-critical,
|
|
2494
2514
|
.pulse-status-blocked strong,
|
|
2495
2515
|
.pulse-status-failed strong {
|
|
@@ -2512,16 +2532,15 @@ code {
|
|
|
2512
2532
|
align-items: end;
|
|
2513
2533
|
background:
|
|
2514
2534
|
linear-gradient(180deg, transparent 24%, color-mix(in srgb, var(--border) 42%, transparent) 24% 25%, transparent 25% 49%, color-mix(in srgb, var(--border) 34%, transparent) 49% 50%, transparent 50% 74%, color-mix(in srgb, var(--border) 28%, transparent) 74% 75%, transparent 75%),
|
|
2515
|
-
|
|
2516
|
-
var(--surface-muted);
|
|
2535
|
+
var(--surface-elevated);
|
|
2517
2536
|
border: 1px solid var(--border);
|
|
2518
|
-
border-radius:
|
|
2537
|
+
border-radius: 12px;
|
|
2519
2538
|
display: grid;
|
|
2520
|
-
gap:
|
|
2521
|
-
grid-template-columns: repeat(
|
|
2522
|
-
min-height:
|
|
2539
|
+
gap: 10px;
|
|
2540
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
2541
|
+
min-height: 148px;
|
|
2523
2542
|
overflow: hidden;
|
|
2524
|
-
padding: 14px;
|
|
2543
|
+
padding: 28px 14px 12px;
|
|
2525
2544
|
position: relative;
|
|
2526
2545
|
}
|
|
2527
2546
|
|
|
@@ -2536,32 +2555,20 @@ code {
|
|
|
2536
2555
|
font-size: 0.75rem;
|
|
2537
2556
|
font-weight: 900;
|
|
2538
2557
|
justify-content: center;
|
|
2539
|
-
min-height: max(
|
|
2558
|
+
min-height: max(32px, var(--bar-height, calc(40px + var(--bar-index, 1) * 18px)));
|
|
2540
2559
|
padding: 8px 4px;
|
|
2541
2560
|
position: relative;
|
|
2542
2561
|
text-transform: uppercase;
|
|
2543
2562
|
z-index: 1;
|
|
2544
2563
|
}
|
|
2545
2564
|
|
|
2546
|
-
.pulse-chart-placeholder span::before {
|
|
2547
|
-
color: var(--text-secondary);
|
|
2548
|
-
content: attr(data-value);
|
|
2549
|
-
font-size: 0.68rem;
|
|
2550
|
-
font-weight: 800;
|
|
2551
|
-
left: 50%;
|
|
2552
|
-
position: absolute;
|
|
2553
|
-
top: -20px;
|
|
2554
|
-
transform: translateX(-50%);
|
|
2555
|
-
white-space: nowrap;
|
|
2556
|
-
}
|
|
2557
|
-
|
|
2558
2565
|
.pulse-chart-sparkline {
|
|
2559
|
-
height:
|
|
2560
|
-
inset: 16px
|
|
2561
|
-
opacity: 0.
|
|
2566
|
+
height: 44%;
|
|
2567
|
+
inset: 16px 14px auto;
|
|
2568
|
+
opacity: 0.72;
|
|
2562
2569
|
pointer-events: none;
|
|
2563
2570
|
position: absolute;
|
|
2564
|
-
width: calc(100% -
|
|
2571
|
+
width: calc(100% - 28px);
|
|
2565
2572
|
z-index: 2;
|
|
2566
2573
|
}
|
|
2567
2574
|
|
|
@@ -2591,6 +2598,10 @@ code {
|
|
|
2591
2598
|
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
2592
2599
|
}
|
|
2593
2600
|
|
|
2601
|
+
.pulse-chart-stack {
|
|
2602
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2603
|
+
}
|
|
2604
|
+
|
|
2594
2605
|
.pulse-filter-group {
|
|
2595
2606
|
border: 1px solid var(--border);
|
|
2596
2607
|
border-radius: 14px;
|
|
@@ -4187,6 +4198,15 @@ button.managed-toggle:focus-visible {
|
|
|
4187
4198
|
grid-template-columns: 1fr;
|
|
4188
4199
|
}
|
|
4189
4200
|
|
|
4201
|
+
.pulse-chart-heading,
|
|
4202
|
+
.pulse-chart-meta {
|
|
4203
|
+
grid-template-columns: 1fr;
|
|
4204
|
+
}
|
|
4205
|
+
|
|
4206
|
+
.pulse-chart-placeholder {
|
|
4207
|
+
min-height: 128px;
|
|
4208
|
+
}
|
|
4209
|
+
|
|
4190
4210
|
.pulse-activity-table {
|
|
4191
4211
|
display: none;
|
|
4192
4212
|
}
|
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.31
|
|
16
16
|
#
|
|
17
17
|
# Quick Install:
|
|
18
18
|
# npm install -g aidevops && aidevops update (recommended)
|