4runr-os 1.0.28 → 1.0.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/dist/collectors/collector_assets.d.ts +19 -0
- package/dist/collectors/collector_assets.d.ts.map +1 -0
- package/dist/collectors/collector_assets.js +72 -0
- package/dist/collectors/collector_assets.js.map +1 -0
- package/dist/collectors/collector_capabilities.d.ts +19 -0
- package/dist/collectors/collector_capabilities.d.ts.map +1 -0
- package/dist/collectors/collector_capabilities.js +61 -0
- package/dist/collectors/collector_capabilities.js.map +1 -0
- package/dist/collectors/collector_feed.d.ts +30 -0
- package/dist/collectors/collector_feed.d.ts.map +1 -0
- package/dist/collectors/collector_feed.js +78 -0
- package/dist/collectors/collector_feed.js.map +1 -0
- package/dist/collectors/collector_geo.d.ts +12 -0
- package/dist/collectors/collector_geo.d.ts.map +1 -0
- package/dist/collectors/collector_geo.js +248 -0
- package/dist/collectors/collector_geo.js.map +1 -0
- package/dist/collectors/collector_network.d.ts +22 -0
- package/dist/collectors/collector_network.d.ts.map +1 -0
- package/dist/collectors/collector_network.js +83 -0
- package/dist/collectors/collector_network.js.map +1 -0
- package/dist/collectors/collector_posture.d.ts +25 -0
- package/dist/collectors/collector_posture.d.ts.map +1 -0
- package/dist/collectors/collector_posture.js +207 -0
- package/dist/collectors/collector_posture.js.map +1 -0
- package/dist/collectors/collector_resources.d.ts +21 -0
- package/dist/collectors/collector_resources.d.ts.map +1 -0
- package/dist/collectors/collector_resources.js +87 -0
- package/dist/collectors/collector_resources.js.map +1 -0
- package/dist/collectors/helpers.d.ts +21 -0
- package/dist/collectors/helpers.d.ts.map +1 -0
- package/dist/collectors/helpers.js +49 -0
- package/dist/collectors/helpers.js.map +1 -0
- package/dist/core/collectorRegistry.d.ts +43 -0
- package/dist/core/collectorRegistry.d.ts.map +1 -0
- package/dist/core/collectorRegistry.js +76 -0
- package/dist/core/collectorRegistry.js.map +1 -0
- package/dist/core/constants.d.ts +25 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +33 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/eventBus.d.ts +36 -0
- package/dist/core/eventBus.d.ts.map +1 -0
- package/dist/core/eventBus.js +52 -0
- package/dist/core/eventBus.js.map +1 -0
- package/dist/core/types.d.ts +128 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.js +135 -5
- package/dist/index.js.map +1 -1
- package/dist/state/getCollectorResults.d.ts +18 -0
- package/dist/state/getCollectorResults.d.ts.map +1 -0
- package/dist/state/getCollectorResults.js +25 -0
- package/dist/state/getCollectorResults.js.map +1 -0
- package/dist/state/historyStore.d.ts +35 -0
- package/dist/state/historyStore.d.ts.map +1 -0
- package/dist/state/historyStore.js +58 -0
- package/dist/state/historyStore.js.map +1 -0
- package/dist/state/uiStateBuilder.d.ts +12 -0
- package/dist/state/uiStateBuilder.d.ts.map +1 -0
- package/dist/state/uiStateBuilder.js +169 -0
- package/dist/state/uiStateBuilder.js.map +1 -0
- package/dist/state/uiStateScheduler.d.ts +43 -0
- package/dist/state/uiStateScheduler.d.ts.map +1 -0
- package/dist/state/uiStateScheduler.js +118 -0
- package/dist/state/uiStateScheduler.js.map +1 -0
- package/dist/ui/boot/sequence.d.ts +10 -0
- package/dist/ui/boot/sequence.d.ts.map +1 -0
- package/dist/ui/boot/sequence.js +173 -0
- package/dist/ui/boot/sequence.js.map +1 -0
- package/dist/ui/constraints/layoutSpec.d.ts +47 -0
- package/dist/ui/constraints/layoutSpec.d.ts.map +1 -0
- package/dist/ui/constraints/layoutSpec.js +60 -0
- package/dist/ui/constraints/layoutSpec.js.map +1 -0
- package/dist/ui/constraints/unknownHandling.d.ts +29 -0
- package/dist/ui/constraints/unknownHandling.d.ts.map +1 -0
- package/dist/ui/constraints/unknownHandling.js +60 -0
- package/dist/ui/constraints/unknownHandling.js.map +1 -0
- package/dist/ui/drilldowns/feed.d.ts +11 -0
- package/dist/ui/drilldowns/feed.d.ts.map +1 -0
- package/dist/ui/drilldowns/feed.js +68 -0
- package/dist/ui/drilldowns/feed.js.map +1 -0
- package/dist/ui/drilldowns/index.d.ts +7 -0
- package/dist/ui/drilldowns/index.d.ts.map +1 -0
- package/dist/ui/drilldowns/index.js +8 -0
- package/dist/ui/drilldowns/index.js.map +1 -0
- package/dist/ui/drilldowns/posture.d.ts +11 -0
- package/dist/ui/drilldowns/posture.d.ts.map +1 -0
- package/dist/ui/drilldowns/posture.js +74 -0
- package/dist/ui/drilldowns/posture.js.map +1 -0
- package/dist/ui/navigation/keymaps.d.ts +26 -0
- package/dist/ui/navigation/keymaps.d.ts.map +1 -0
- package/dist/ui/navigation/keymaps.js +135 -0
- package/dist/ui/navigation/keymaps.js.map +1 -0
- package/dist/ui/navigation/palette.d.ts +10 -0
- package/dist/ui/navigation/palette.d.ts.map +1 -0
- package/dist/ui/navigation/palette.js +133 -0
- package/dist/ui/navigation/palette.js.map +1 -0
- package/dist/ui/navigation/state.d.ts +47 -0
- package/dist/ui/navigation/state.d.ts.map +1 -0
- package/dist/ui/navigation/state.js +84 -0
- package/dist/ui/navigation/state.js.map +1 -0
- package/dist/ui/navigation/types.d.ts +38 -0
- package/dist/ui/navigation/types.d.ts.map +1 -0
- package/dist/ui/navigation/types.js +36 -0
- package/dist/ui/navigation/types.js.map +1 -0
- package/dist/ui/panels/active-assets.d.ts +12 -0
- package/dist/ui/panels/active-assets.d.ts.map +1 -0
- package/dist/ui/panels/active-assets.js +83 -0
- package/dist/ui/panels/active-assets.js.map +1 -0
- package/dist/ui/panels/capability-flags.d.ts +12 -0
- package/dist/ui/panels/capability-flags.d.ts.map +1 -0
- package/dist/ui/panels/capability-flags.js +59 -0
- package/dist/ui/panels/capability-flags.js.map +1 -0
- package/dist/ui/panels/command-surface.d.ts +12 -0
- package/dist/ui/panels/command-surface.d.ts.map +1 -0
- package/dist/ui/panels/command-surface.js +55 -0
- package/dist/ui/panels/command-surface.js.map +1 -0
- package/dist/ui/panels/network-origin.d.ts +12 -0
- package/dist/ui/panels/network-origin.d.ts.map +1 -0
- package/dist/ui/panels/network-origin.js +79 -0
- package/dist/ui/panels/network-origin.js.map +1 -0
- package/dist/ui/panels/operations-feed.d.ts +12 -0
- package/dist/ui/panels/operations-feed.d.ts.map +1 -0
- package/dist/ui/panels/operations-feed.js +90 -0
- package/dist/ui/panels/operations-feed.js.map +1 -0
- package/dist/ui/panels/posture.d.ts +12 -0
- package/dist/ui/panels/posture.d.ts.map +1 -0
- package/dist/ui/panels/posture.js +84 -0
- package/dist/ui/panels/posture.js.map +1 -0
- package/dist/ui/panels/resources.d.ts +11 -0
- package/dist/ui/panels/resources.d.ts.map +1 -0
- package/dist/ui/panels/resources.js +88 -0
- package/dist/ui/panels/resources.js.map +1 -0
- package/dist/ui/primitives/Panel.d.ts +25 -0
- package/dist/ui/primitives/Panel.d.ts.map +1 -0
- package/dist/ui/primitives/Panel.js +59 -0
- package/dist/ui/primitives/Panel.js.map +1 -0
- package/dist/ui/rendering/metricRenderer.d.ts +24 -0
- package/dist/ui/rendering/metricRenderer.d.ts.map +1 -0
- package/dist/ui/rendering/metricRenderer.js +86 -0
- package/dist/ui/rendering/metricRenderer.js.map +1 -0
- package/dist/ui/runtime/hub.d.ts +12 -0
- package/dist/ui/runtime/hub.d.ts.map +1 -0
- package/dist/ui/runtime/hub.js +468 -0
- package/dist/ui/runtime/hub.js.map +1 -0
- package/dist/ui/runtime/hubValidation.d.ts +23 -0
- package/dist/ui/runtime/hubValidation.d.ts.map +1 -0
- package/dist/ui/runtime/hubValidation.js +90 -0
- package/dist/ui/runtime/hubValidation.js.map +1 -0
- package/dist/ui/runtime/index.d.ts +29 -0
- package/dist/ui/runtime/index.d.ts.map +1 -0
- package/dist/ui/runtime/index.js +299 -0
- package/dist/ui/runtime/index.js.map +1 -0
- package/dist/ui/runtime/no-tui.d.ts +12 -0
- package/dist/ui/runtime/no-tui.d.ts.map +1 -0
- package/dist/ui/runtime/no-tui.js +77 -0
- package/dist/ui/runtime/no-tui.js.map +1 -0
- package/dist/ui/runtime/state-builder.d.ts +13 -0
- package/dist/ui/runtime/state-builder.d.ts.map +1 -0
- package/dist/ui/runtime/state-builder.js +114 -0
- package/dist/ui/runtime/state-builder.js.map +1 -0
- package/dist/ui/runtime/terminalSizeCheck.d.ts +10 -0
- package/dist/ui/runtime/terminalSizeCheck.d.ts.map +1 -0
- package/dist/ui/runtime/terminalSizeCheck.js +51 -0
- package/dist/ui/runtime/terminalSizeCheck.js.map +1 -0
- package/dist/ui/runtime/tuiLogGate.d.ts +22 -0
- package/dist/ui/runtime/tuiLogGate.d.ts.map +1 -0
- package/dist/ui/runtime/tuiLogGate.js +68 -0
- package/dist/ui/runtime/tuiLogGate.js.map +1 -0
- package/dist/ui/state/types.d.ts +72 -0
- package/dist/ui/state/types.d.ts.map +1 -0
- package/dist/ui/state/types.js +6 -0
- package/dist/ui/state/types.js.map +1 -0
- package/dist/ui/theme/borders.d.ts +20 -0
- package/dist/ui/theme/borders.d.ts.map +1 -0
- package/dist/ui/theme/borders.js +55 -0
- package/dist/ui/theme/borders.js.map +1 -0
- package/dist/ui/theme/tokens.d.ts +28 -0
- package/dist/ui/theme/tokens.d.ts.map +1 -0
- package/dist/ui/theme/tokens.js +50 -0
- package/dist/ui/theme/tokens.js.map +1 -0
- package/dist/ui/theme/typography.d.ts +14 -0
- package/dist/ui/theme/typography.d.ts.map +1 -0
- package/dist/ui/theme/typography.js +30 -0
- package/dist/ui/theme/typography.js.map +1 -0
- package/dist/ui/widgets/flagRow.d.ts +25 -0
- package/dist/ui/widgets/flagRow.d.ts.map +1 -0
- package/dist/ui/widgets/flagRow.js +57 -0
- package/dist/ui/widgets/flagRow.js.map +1 -0
- package/dist/ui/widgets/index.d.ts +9 -0
- package/dist/ui/widgets/index.d.ts.map +1 -0
- package/dist/ui/widgets/index.js +9 -0
- package/dist/ui/widgets/index.js.map +1 -0
- package/dist/ui/widgets/meter.d.ts +18 -0
- package/dist/ui/widgets/meter.d.ts.map +1 -0
- package/dist/ui/widgets/meter.js +38 -0
- package/dist/ui/widgets/meter.js.map +1 -0
- package/dist/ui/widgets/miniMap.d.ts +26 -0
- package/dist/ui/widgets/miniMap.d.ts.map +1 -0
- package/dist/ui/widgets/miniMap.js +94 -0
- package/dist/ui/widgets/miniMap.js.map +1 -0
- package/dist/ui/widgets/sparkline.d.ts +17 -0
- package/dist/ui/widgets/sparkline.d.ts.map +1 -0
- package/dist/ui/widgets/sparkline.js +63 -0
- package/dist/ui/widgets/sparkline.js.map +1 -0
- package/package.json +5 -4
- package/dist/ui/home-view.d.ts +0 -27
- package/dist/ui/home-view.d.ts.map +0 -1
- package/dist/ui/home-view.js +0 -127
- package/dist/ui/home-view.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mini Map Widget
|
|
3
|
+
* Phase 5: ASCII world map with operator/gateway/database positions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* World bounding box for projection
|
|
7
|
+
*/
|
|
8
|
+
const WORLD_BBOX = {
|
|
9
|
+
latMin: -60,
|
|
10
|
+
latMax: 80,
|
|
11
|
+
lonMin: -180,
|
|
12
|
+
lonMax: 180,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Convert lat/lon to grid coordinates
|
|
16
|
+
*/
|
|
17
|
+
function latLonToGrid(lat, lon, width, height) {
|
|
18
|
+
// Clamp lat/lon to world bounds
|
|
19
|
+
const clampedLat = Math.max(WORLD_BBOX.latMin, Math.min(WORLD_BBOX.latMax, lat));
|
|
20
|
+
const clampedLon = Math.max(WORLD_BBOX.lonMin, Math.min(WORLD_BBOX.lonMax, lon));
|
|
21
|
+
// Convert to grid coordinates
|
|
22
|
+
// x: longitude -> [0, width-1]
|
|
23
|
+
const x = Math.floor(((clampedLon - WORLD_BBOX.lonMin) / (WORLD_BBOX.lonMax - WORLD_BBOX.lonMin)) * (width - 1));
|
|
24
|
+
// y: latitude -> [0, height-1] (inverted because top is north)
|
|
25
|
+
const y = Math.floor(((WORLD_BBOX.latMax - clampedLat) / (WORLD_BBOX.latMax - WORLD_BBOX.latMin)) * (height - 1));
|
|
26
|
+
// Clamp to grid bounds
|
|
27
|
+
return {
|
|
28
|
+
x: Math.max(0, Math.min(width - 1, x)),
|
|
29
|
+
y: Math.max(0, Math.min(height - 1, y)),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Render mini map
|
|
34
|
+
* Returns array of strings, each exactly width characters
|
|
35
|
+
*/
|
|
36
|
+
export function renderMiniMap(input) {
|
|
37
|
+
const { width, height, origin, gateway, db } = input;
|
|
38
|
+
// Check if we have required coordinates
|
|
39
|
+
const hasOrigin = origin && origin !== "UNKNOWN" && typeof origin === 'object';
|
|
40
|
+
const hasGateway = gateway && gateway !== "UNKNOWN" && typeof gateway === 'object';
|
|
41
|
+
if (!hasOrigin || !hasGateway) {
|
|
42
|
+
// Return GEO UNAVAILABLE message
|
|
43
|
+
const lines = [];
|
|
44
|
+
lines.push('MINI-MAP: GEO UNAVAILABLE');
|
|
45
|
+
// Fill remaining lines
|
|
46
|
+
while (lines.length < height) {
|
|
47
|
+
lines.push(' '.repeat(width));
|
|
48
|
+
}
|
|
49
|
+
return lines.slice(0, height);
|
|
50
|
+
}
|
|
51
|
+
// Initialize grid with spaces
|
|
52
|
+
const grid = [];
|
|
53
|
+
for (let y = 0; y < height; y++) {
|
|
54
|
+
grid[y] = [];
|
|
55
|
+
for (let x = 0; x < width; x++) {
|
|
56
|
+
grid[y][x] = ' ';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Place markers (precedence: G > O > D)
|
|
60
|
+
const markers = [];
|
|
61
|
+
// Gateway (highest precedence)
|
|
62
|
+
if (hasGateway) {
|
|
63
|
+
const pos = latLonToGrid(gateway.lat, gateway.lon, width, height);
|
|
64
|
+
markers.push({ pos, char: 'G' });
|
|
65
|
+
}
|
|
66
|
+
// Origin
|
|
67
|
+
if (hasOrigin) {
|
|
68
|
+
const pos = latLonToGrid(origin.lat, origin.lon, width, height);
|
|
69
|
+
markers.push({ pos, char: 'O' });
|
|
70
|
+
}
|
|
71
|
+
// Database (lowest precedence)
|
|
72
|
+
if (db && db !== "UNKNOWN" && typeof db === 'object') {
|
|
73
|
+
const pos = latLonToGrid(db.lat, db.lon, width, height);
|
|
74
|
+
markers.push({ pos, char: 'D' });
|
|
75
|
+
}
|
|
76
|
+
// Place markers (later markers overwrite earlier ones if collision)
|
|
77
|
+
markers.forEach(marker => {
|
|
78
|
+
grid[marker.pos.y][marker.pos.x] = marker.char;
|
|
79
|
+
});
|
|
80
|
+
// Convert grid to lines
|
|
81
|
+
const lines = grid.map(row => row.join(''));
|
|
82
|
+
// Ensure exactly height lines, each exactly width chars
|
|
83
|
+
while (lines.length < height) {
|
|
84
|
+
lines.push(' '.repeat(width));
|
|
85
|
+
}
|
|
86
|
+
return lines.slice(0, height).map(line => {
|
|
87
|
+
// Pad or truncate to exact width
|
|
88
|
+
if (line.length < width) {
|
|
89
|
+
return line + ' '.repeat(width - line.length);
|
|
90
|
+
}
|
|
91
|
+
return line.substring(0, width);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=miniMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miniMap.js","sourceRoot":"","sources":["../../../src/ui/widgets/miniMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sparkline Widget
|
|
3
|
+
* Phase 4: 1-line trend visualization
|
|
4
|
+
*/
|
|
5
|
+
export type SparklineInput = {
|
|
6
|
+
samples: Array<number | null>;
|
|
7
|
+
min?: number;
|
|
8
|
+
max?: number;
|
|
9
|
+
width: number;
|
|
10
|
+
unknownLabel?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Render sparkline
|
|
14
|
+
* Returns a string of exactly `width` characters
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderSparkline(input: SparklineInput): string;
|
|
17
|
+
//# sourceMappingURL=sparkline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparkline.d.ts","sourceRoot":"","sources":["../../../src/ui/widgets/sparkline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAOF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAoE7D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sparkline Widget
|
|
3
|
+
* Phase 4: 1-line trend visualization
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Unicode sparkline characters (8 levels)
|
|
7
|
+
*/
|
|
8
|
+
const SPARKLINE_CHARS = '▁▂▃▄▅▆▇█';
|
|
9
|
+
/**
|
|
10
|
+
* Render sparkline
|
|
11
|
+
* Returns a string of exactly `width` characters
|
|
12
|
+
*/
|
|
13
|
+
export function renderSparkline(input) {
|
|
14
|
+
const { samples, min = 0, max = 100, width, unknownLabel = '—', } = input;
|
|
15
|
+
// If no samples or all null, return placeholder
|
|
16
|
+
if (samples.length === 0 || samples.every(s => s === null)) {
|
|
17
|
+
return unknownLabel.repeat(width);
|
|
18
|
+
}
|
|
19
|
+
// Filter out nulls and get valid samples
|
|
20
|
+
const validSamples = samples.filter((s) => s !== null);
|
|
21
|
+
if (validSamples.length === 0) {
|
|
22
|
+
return unknownLabel.repeat(width);
|
|
23
|
+
}
|
|
24
|
+
// Downsample or upsample to exactly width
|
|
25
|
+
const normalized = [];
|
|
26
|
+
const step = validSamples.length / width;
|
|
27
|
+
for (let i = 0; i < width; i++) {
|
|
28
|
+
const startIdx = Math.floor(i * step);
|
|
29
|
+
const endIdx = Math.floor((i + 1) * step);
|
|
30
|
+
// Average samples in this range
|
|
31
|
+
let sum = 0;
|
|
32
|
+
let count = 0;
|
|
33
|
+
for (let j = startIdx; j < endIdx && j < validSamples.length; j++) {
|
|
34
|
+
sum += validSamples[j];
|
|
35
|
+
count++;
|
|
36
|
+
}
|
|
37
|
+
if (count > 0) {
|
|
38
|
+
normalized.push(sum / count);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
normalized.push(null); // Will be handled as gap
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Map to sparkline characters
|
|
45
|
+
const range = max - min;
|
|
46
|
+
const result = [];
|
|
47
|
+
for (const value of normalized) {
|
|
48
|
+
if (value === null || isNaN(value)) {
|
|
49
|
+
result.push(unknownLabel);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Clamp to [min, max]
|
|
53
|
+
const clamped = Math.max(min, Math.min(max, value));
|
|
54
|
+
// Map to [0, 1]
|
|
55
|
+
const normalizedValue = range > 0 ? (clamped - min) / range : 0;
|
|
56
|
+
// Map to character index [0, 7]
|
|
57
|
+
const charIndex = Math.floor(normalizedValue * (SPARKLINE_CHARS.length - 1));
|
|
58
|
+
const char = SPARKLINE_CHARS[charIndex];
|
|
59
|
+
result.push(char);
|
|
60
|
+
}
|
|
61
|
+
return result.join('');
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=sparkline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparkline.js","sourceRoot":"","sources":["../../../src/ui/widgets/sparkline.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "4runr-os",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.36",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "4Runr AI Agent OS - Interactive terminal for managing AI agents",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,11 +25,12 @@
|
|
|
25
25
|
"author": "4Runr Team",
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"axios": "^1.6.0"
|
|
28
|
+
"axios": "^1.6.0",
|
|
29
|
+
"neo-blessed": "^0.2.0"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^20.
|
|
32
|
-
"typescript": "^5.
|
|
32
|
+
"@types/node": "^20.19.26",
|
|
33
|
+
"typescript": "^5.9.3"
|
|
33
34
|
},
|
|
34
35
|
"files": [
|
|
35
36
|
"dist/**/*",
|
package/dist/ui/home-view.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HOME View Renderer
|
|
3
|
-
*
|
|
4
|
-
* EXTENSION EXAMPLE: This is the pattern all view renderers should follow
|
|
5
|
-
*
|
|
6
|
-
* Rules:
|
|
7
|
-
* - Pure function: receives state → returns rendered string
|
|
8
|
-
* - No side effects, no console.log, no state mutations
|
|
9
|
-
* - Use UI primitives (Section, Table, Alert, etc.)
|
|
10
|
-
* - Import types with `import type` (not regular import)
|
|
11
|
-
*
|
|
12
|
-
* To create a new view:
|
|
13
|
-
* 1. Create file: src/ui/my-view.ts
|
|
14
|
-
* 2. Export function: renderMyView(state: AppState): string
|
|
15
|
-
* 3. Use UI primitives to build output
|
|
16
|
-
* 4. Return joined string (ready for console.log)
|
|
17
|
-
*
|
|
18
|
-
* See CONTRIBUTING-CLI.md for full extension recipe
|
|
19
|
-
*/
|
|
20
|
-
import type { AppState } from '../store.js';
|
|
21
|
-
/**
|
|
22
|
-
* Render HOME view
|
|
23
|
-
* @param state - Current application state
|
|
24
|
-
* @returns Rendered view as string (ready to console.log)
|
|
25
|
-
*/
|
|
26
|
-
export declare function renderHomeView(state: AppState): string;
|
|
27
|
-
//# sourceMappingURL=home-view.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"home-view.d.ts","sourceRoot":"","sources":["../../src/ui/home-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CA8GtD"}
|
package/dist/ui/home-view.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HOME View Renderer
|
|
3
|
-
*
|
|
4
|
-
* EXTENSION EXAMPLE: This is the pattern all view renderers should follow
|
|
5
|
-
*
|
|
6
|
-
* Rules:
|
|
7
|
-
* - Pure function: receives state → returns rendered string
|
|
8
|
-
* - No side effects, no console.log, no state mutations
|
|
9
|
-
* - Use UI primitives (Section, Table, Alert, etc.)
|
|
10
|
-
* - Import types with `import type` (not regular import)
|
|
11
|
-
*
|
|
12
|
-
* To create a new view:
|
|
13
|
-
* 1. Create file: src/ui/my-view.ts
|
|
14
|
-
* 2. Export function: renderMyView(state: AppState): string
|
|
15
|
-
* 3. Use UI primitives to build output
|
|
16
|
-
* 4. Return joined string (ready for console.log)
|
|
17
|
-
*
|
|
18
|
-
* See CONTRIBUTING-CLI.md for full extension recipe
|
|
19
|
-
*/
|
|
20
|
-
import { Section, Table, StatusBar, truncateText } from '../ui-primitives.js';
|
|
21
|
-
import { C_ACCENT, C_SUCCESS, C_WARN, C_MUTED, C_LINK, RESET } from '../theme.js';
|
|
22
|
-
import { isZeroState } from '../state.js';
|
|
23
|
-
import { formatRelativeTime, truncateId } from '../utils.js';
|
|
24
|
-
/**
|
|
25
|
-
* Render HOME view
|
|
26
|
-
* @param state - Current application state
|
|
27
|
-
* @returns Rendered view as string (ready to console.log)
|
|
28
|
-
*/
|
|
29
|
-
export function renderHomeView(state) {
|
|
30
|
-
const lines = [];
|
|
31
|
-
// Check for zero state (first-time experience)
|
|
32
|
-
const zeroState = isZeroState() && state.customAgents.size === 0;
|
|
33
|
-
if (zeroState) {
|
|
34
|
-
// Zero state: calm message, clear status, 3 primary actions
|
|
35
|
-
const statusLines = [];
|
|
36
|
-
statusLines.push(`MODE: ${state.localMode ? C_SUCCESS + 'LOCAL' : C_WARN + 'NOT CONNECTED' + RESET}`);
|
|
37
|
-
statusLines.push(`CONNECTION: ${state.gatewayConnected ? C_SUCCESS + 'Connected' : C_WARN + 'Not Connected' + RESET}`);
|
|
38
|
-
statusLines.push(`AGENTS: ${C_ACCENT}0${RESET}`);
|
|
39
|
-
lines.push(Section('SYSTEM STATUS', statusLines));
|
|
40
|
-
lines.push('');
|
|
41
|
-
lines.push('Welcome to 4Runr OS');
|
|
42
|
-
lines.push('Get started with one of the actions below');
|
|
43
|
-
lines.push('');
|
|
44
|
-
const actionLines = [];
|
|
45
|
-
actionLines.push(`${C_LINK}connect${RESET} ${C_MUTED}Attach gateway / remote${RESET}`);
|
|
46
|
-
actionLines.push(`${C_LINK}start${RESET} ${C_MUTED}Begin doing useful work${RESET}`);
|
|
47
|
-
actionLines.push(`${C_LINK}help${RESET} ${C_MUTED}Explain system${RESET}`);
|
|
48
|
-
lines.push(Section('GET STARTED', actionLines));
|
|
49
|
-
lines.push('');
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
// Normal state: full mission control
|
|
53
|
-
// 1. SESSION
|
|
54
|
-
const sessionLines = [];
|
|
55
|
-
const mode = state.localMode ? 'LOCAL' : (state.gatewayConnected ? 'REMOTE' : 'OFFLINE');
|
|
56
|
-
sessionLines.push(`Mode: ${C_ACCENT}${mode}${RESET}`);
|
|
57
|
-
const workspace = state.currentUser?.username || 'default';
|
|
58
|
-
sessionLines.push(`Workspace: ${C_ACCENT}${workspace}${RESET}`);
|
|
59
|
-
const connectionStatus = state.gatewayConnected ? `${C_SUCCESS}CONNECTED${RESET}` : `${C_WARN}DISCONNECTED${RESET}`;
|
|
60
|
-
const target = state.gatewayConnected ? truncateText(state.gatewayUrl || '', 30) : 'none';
|
|
61
|
-
sessionLines.push(`Connection: ${connectionStatus} Target: ${C_MUTED}${target}${RESET}`);
|
|
62
|
-
// Uptime would be calculated from boot time in state
|
|
63
|
-
sessionLines.push(`Uptime: ${C_MUTED}0m${RESET}`);
|
|
64
|
-
lines.push(Section('SESSION', sessionLines));
|
|
65
|
-
lines.push('');
|
|
66
|
-
// 2. AGENTS
|
|
67
|
-
const agentCount = state.customAgents.size;
|
|
68
|
-
const agentRows = [];
|
|
69
|
-
if (agentCount > 0) {
|
|
70
|
-
const topAgents = Array.from(state.customAgents.values()).slice(0, 3);
|
|
71
|
-
topAgents.forEach(agent => {
|
|
72
|
-
agentRows.push([
|
|
73
|
-
truncateText(agent.name, 20),
|
|
74
|
-
truncateText(agent.baseAgent, 15),
|
|
75
|
-
'IDLE'
|
|
76
|
-
]);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
const agentTable = agentCount > 0
|
|
80
|
-
? Table(['NAME', 'MODEL', 'STATUS'], agentRows, 3)
|
|
81
|
-
: `${C_MUTED} No agents configured${RESET}`;
|
|
82
|
-
lines.push(Section('AGENTS', [`Total count: ${C_ACCENT}${agentCount}${RESET}`, agentTable]));
|
|
83
|
-
lines.push('');
|
|
84
|
-
// 3. RECENT RUNS
|
|
85
|
-
const recentRuns = state.runHistory.slice(-3).reverse();
|
|
86
|
-
const runRows = [];
|
|
87
|
-
if (recentRuns.length > 0) {
|
|
88
|
-
recentRuns.forEach(run => {
|
|
89
|
-
runRows.push([
|
|
90
|
-
truncateId(run.runId, 8),
|
|
91
|
-
truncateText(run.agentName, 15),
|
|
92
|
-
run.status === 'SUCCESS' ? `${C_SUCCESS}SUCCESS${RESET}` :
|
|
93
|
-
run.status === 'FAILED' ? `${C_WARN}FAILED${RESET}` :
|
|
94
|
-
`${C_ACCENT}RUNNING${RESET}`,
|
|
95
|
-
formatRelativeTime(run.timestamp)
|
|
96
|
-
]);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
const runTable = recentRuns.length > 0
|
|
100
|
-
? Table(['ID', 'AGENT', 'STATUS', 'TIMESTAMP'], runRows, 3)
|
|
101
|
-
: `${C_MUTED} No runs yet${RESET}`;
|
|
102
|
-
lines.push(Section('RECENT RUNS', [runTable]));
|
|
103
|
-
lines.push('');
|
|
104
|
-
// 4. QUICK ACTIONS (Footer)
|
|
105
|
-
const quickActionLines = [];
|
|
106
|
-
quickActionLines.push(`${C_LINK}start${RESET} ${C_MUTED}Begin execution${RESET}`);
|
|
107
|
-
quickActionLines.push(`${C_LINK}build${RESET} ${C_MUTED}Create or edit agent${RESET}`);
|
|
108
|
-
quickActionLines.push(`${C_LINK}metrics${RESET} ${C_MUTED}View performance${RESET}`);
|
|
109
|
-
quickActionLines.push(`${C_LINK}system${RESET} ${C_MUTED}Infrastructure status${RESET}`);
|
|
110
|
-
quickActionLines.push(`${C_LINK}help${RESET} ${C_MUTED}Show available commands${RESET}`);
|
|
111
|
-
lines.push(Section('QUICK ACTIONS', quickActionLines));
|
|
112
|
-
lines.push('');
|
|
113
|
-
}
|
|
114
|
-
// StatusBar
|
|
115
|
-
const mode = state.localMode ? 'LOCAL' : (state.gatewayConnected ? 'REMOTE' : 'OFFLINE');
|
|
116
|
-
const statusBar = StatusBar({
|
|
117
|
-
mode: mode,
|
|
118
|
-
connected: state.gatewayConnected,
|
|
119
|
-
target: state.gatewayUrl ? truncateText(state.gatewayUrl, 30) : undefined,
|
|
120
|
-
workspace: state.currentUser?.username,
|
|
121
|
-
lastAction: 'home',
|
|
122
|
-
});
|
|
123
|
-
lines.push(statusBar);
|
|
124
|
-
lines.push('');
|
|
125
|
-
return lines.join('\n');
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=home-view.js.map
|
package/dist/ui/home-view.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"home-view.js","sourceRoot":"","sources":["../../src/ui/home-view.ts"],"names":[],"mappings":"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"}
|