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,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Constants
|
|
3
|
+
* Phase 4: Thresholds and configuration for widgets
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Latency classification thresholds (ms)
|
|
7
|
+
*/
|
|
8
|
+
export declare const LATENCY_THRESHOLDS: {
|
|
9
|
+
readonly LOW: 50;
|
|
10
|
+
readonly MEDIUM: 150;
|
|
11
|
+
readonly HIGH: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get latency class from milliseconds
|
|
15
|
+
*/
|
|
16
|
+
export declare function getLatencyClass(ms: number | "UNKNOWN"): "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
|
|
17
|
+
/**
|
|
18
|
+
* Sparkline history window (samples)
|
|
19
|
+
*/
|
|
20
|
+
export declare const SPARKLINE_HISTORY_SIZE = 60;
|
|
21
|
+
/**
|
|
22
|
+
* Sparkline tick interval (ms) - approximate
|
|
23
|
+
*/
|
|
24
|
+
export declare const SPARKLINE_TICK_MS = 1000;
|
|
25
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAK7F;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Constants
|
|
3
|
+
* Phase 4: Thresholds and configuration for widgets
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Latency classification thresholds (ms)
|
|
7
|
+
*/
|
|
8
|
+
export const LATENCY_THRESHOLDS = {
|
|
9
|
+
LOW: 50, // < 50ms = LOW
|
|
10
|
+
MEDIUM: 150, // 50-150ms = MEDIUM
|
|
11
|
+
HIGH: Infinity, // > 150ms = HIGH
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get latency class from milliseconds
|
|
15
|
+
*/
|
|
16
|
+
export function getLatencyClass(ms) {
|
|
17
|
+
if (ms === "UNKNOWN")
|
|
18
|
+
return "UNKNOWN";
|
|
19
|
+
if (ms < LATENCY_THRESHOLDS.LOW)
|
|
20
|
+
return "LOW";
|
|
21
|
+
if (ms < LATENCY_THRESHOLDS.MEDIUM)
|
|
22
|
+
return "MEDIUM";
|
|
23
|
+
return "HIGH";
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sparkline history window (samples)
|
|
27
|
+
*/
|
|
28
|
+
export const SPARKLINE_HISTORY_SIZE = 60;
|
|
29
|
+
/**
|
|
30
|
+
* Sparkline tick interval (ms) - approximate
|
|
31
|
+
*/
|
|
32
|
+
export const SPARKLINE_TICK_MS = 1000;
|
|
33
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,EAAE,EAAO,eAAe;IAC7B,MAAM,EAAE,GAAG,EAAG,oBAAoB;IAClC,IAAI,EAAE,QAAQ,EAAE,iBAAiB;CACzB,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAsB;IACpD,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,EAAE,GAAG,kBAAkB,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Bus
|
|
3
|
+
* Phase 3: Fire-and-forget event system for feed updates
|
|
4
|
+
*/
|
|
5
|
+
export type FeedEvent = {
|
|
6
|
+
tag: "RUN" | "NET" | "SEC" | "DB" | "GATEWAY" | "SYSTEM";
|
|
7
|
+
msg: string;
|
|
8
|
+
ts: number;
|
|
9
|
+
};
|
|
10
|
+
type EventHandler = (event: FeedEvent) => void;
|
|
11
|
+
declare class EventBus {
|
|
12
|
+
private handlers;
|
|
13
|
+
/**
|
|
14
|
+
* Emit event (fire and forget)
|
|
15
|
+
*/
|
|
16
|
+
emit(event: FeedEvent): void;
|
|
17
|
+
/**
|
|
18
|
+
* Subscribe to events
|
|
19
|
+
* Returns unsubscribe function
|
|
20
|
+
*/
|
|
21
|
+
subscribe(handler: EventHandler): () => void;
|
|
22
|
+
/**
|
|
23
|
+
* Clear all handlers (for testing)
|
|
24
|
+
*/
|
|
25
|
+
clear(): void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Global event bus instance
|
|
29
|
+
*/
|
|
30
|
+
export declare const eventBus: EventBus;
|
|
31
|
+
/**
|
|
32
|
+
* Helper: Emit feed event
|
|
33
|
+
*/
|
|
34
|
+
export declare function emitFeedEvent(tag: FeedEvent['tag'], msg: string): void;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=eventBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventBus.d.ts","sourceRoot":"","sources":["../../src/core/eventBus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAE/C,cAAM,QAAQ;IACZ,OAAO,CAAC,QAAQ,CAAgC;IAEhD;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAW5B;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAO5C;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAiB,CAAC;AAEvC;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMtE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Bus
|
|
3
|
+
* Phase 3: Fire-and-forget event system for feed updates
|
|
4
|
+
*/
|
|
5
|
+
class EventBus {
|
|
6
|
+
handlers = new Set();
|
|
7
|
+
/**
|
|
8
|
+
* Emit event (fire and forget)
|
|
9
|
+
*/
|
|
10
|
+
emit(event) {
|
|
11
|
+
this.handlers.forEach(handler => {
|
|
12
|
+
try {
|
|
13
|
+
handler(event);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
// Silently fail - don't break event bus
|
|
17
|
+
console.error('[EventBus] Handler error:', error);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Subscribe to events
|
|
23
|
+
* Returns unsubscribe function
|
|
24
|
+
*/
|
|
25
|
+
subscribe(handler) {
|
|
26
|
+
this.handlers.add(handler);
|
|
27
|
+
return () => {
|
|
28
|
+
this.handlers.delete(handler);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Clear all handlers (for testing)
|
|
33
|
+
*/
|
|
34
|
+
clear() {
|
|
35
|
+
this.handlers.clear();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Global event bus instance
|
|
40
|
+
*/
|
|
41
|
+
export const eventBus = new EventBus();
|
|
42
|
+
/**
|
|
43
|
+
* Helper: Emit feed event
|
|
44
|
+
*/
|
|
45
|
+
export function emitFeedEvent(tag, msg) {
|
|
46
|
+
eventBus.emit({
|
|
47
|
+
tag,
|
|
48
|
+
msg,
|
|
49
|
+
ts: Date.now(),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=eventBus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventBus.js","sourceRoot":"","sources":["../../src/core/eventBus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,QAAQ;IACJ,QAAQ,GAAsB,IAAI,GAAG,EAAE,CAAC;IAEhD;;OAEG;IACH,IAAI,CAAC,KAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wCAAwC;gBACxC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,OAAqB;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAqB,EAAE,GAAW;IAC9D,QAAQ,CAAC,IAAI,CAAC;QACZ,GAAG;QACH,GAAG;QACH,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;KACf,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Types
|
|
3
|
+
* Phase 3: Data contracts for collectors and UiState
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Collector Result Envelope
|
|
7
|
+
* Phase 9: Standard collector contract with status, asOf, reasonCode, message, action
|
|
8
|
+
*/
|
|
9
|
+
export type CollectorStatus = 'LIVE' | 'STALE' | 'UNAVAILABLE' | 'DISABLED';
|
|
10
|
+
export type CollectorResult<T> = {
|
|
11
|
+
status: CollectorStatus;
|
|
12
|
+
asOf: number;
|
|
13
|
+
data?: T;
|
|
14
|
+
source: string;
|
|
15
|
+
staleAfterMs: number;
|
|
16
|
+
reasonCode?: string;
|
|
17
|
+
message?: string;
|
|
18
|
+
action?: string;
|
|
19
|
+
ok?: boolean;
|
|
20
|
+
ts?: number;
|
|
21
|
+
error?: {
|
|
22
|
+
code: string;
|
|
23
|
+
message: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* UiState - Single authoritative snapshot
|
|
28
|
+
* Phase 3: Complete state for hub rendering
|
|
29
|
+
*/
|
|
30
|
+
export type UiState = {
|
|
31
|
+
ts: number;
|
|
32
|
+
posture: {
|
|
33
|
+
posture: "OPERATIONAL" | "DEGRADED" | "OFFLINE" | "CRITICAL" | "UNKNOWN";
|
|
34
|
+
risk: "LOW" | "ELEVATED" | "HIGH" | "UNKNOWN";
|
|
35
|
+
connected: boolean | "UNKNOWN";
|
|
36
|
+
target: string | "UNKNOWN";
|
|
37
|
+
lastChange: number | "UNKNOWN";
|
|
38
|
+
cause: string | "UNKNOWN";
|
|
39
|
+
dependencies: {
|
|
40
|
+
config: "OK" | "WARN" | "ERROR" | "UNKNOWN";
|
|
41
|
+
gateway: "OK" | "WARN" | "ERROR" | "UNKNOWN";
|
|
42
|
+
database: "OK" | "WARN" | "ERROR" | "UNKNOWN";
|
|
43
|
+
registry: "OK" | "WARN" | "ERROR" | "UNKNOWN";
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
network: {
|
|
47
|
+
originRegion: string | "UNKNOWN";
|
|
48
|
+
originClass: "LOCAL" | "VPN" | "CLOUD" | "UNKNOWN";
|
|
49
|
+
gatewayRegion: string | "UNKNOWN";
|
|
50
|
+
dbRegion: string | "NONE" | "UNKNOWN";
|
|
51
|
+
latencyMs: number | "UNKNOWN";
|
|
52
|
+
latencyClass: "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
|
|
53
|
+
publicIpMasked: string | "HIDDEN" | "UNKNOWN";
|
|
54
|
+
};
|
|
55
|
+
resources: {
|
|
56
|
+
cpuPercent: number | "UNKNOWN";
|
|
57
|
+
load1m: number | "UNKNOWN";
|
|
58
|
+
ramUsedMb: number | "UNKNOWN";
|
|
59
|
+
ramTotalMb: number | "UNKNOWN";
|
|
60
|
+
diskUsedGb: number | "UNKNOWN";
|
|
61
|
+
diskTotalGb: number | "UNKNOWN";
|
|
62
|
+
uptimeSec: number | "UNKNOWN";
|
|
63
|
+
procCount: number | "UNKNOWN";
|
|
64
|
+
};
|
|
65
|
+
assets: {
|
|
66
|
+
total: number | "UNKNOWN";
|
|
67
|
+
active: number | "UNKNOWN";
|
|
68
|
+
idle: number | "UNKNOWN";
|
|
69
|
+
error: number | "UNKNOWN";
|
|
70
|
+
highlight: string | "UNKNOWN";
|
|
71
|
+
lastAction: string | "NONE" | "UNKNOWN";
|
|
72
|
+
};
|
|
73
|
+
capabilities: {
|
|
74
|
+
gateway: "READY" | "DEGRADED" | "UNKNOWN";
|
|
75
|
+
database: "READY" | "NOT_INITIALIZED" | "UNKNOWN";
|
|
76
|
+
memory: "IN_MEMORY" | "PERSISTENT" | "UNKNOWN";
|
|
77
|
+
security: "OPEN" | "BASIC" | "JWT" | "UNKNOWN";
|
|
78
|
+
rateLimit: "ENABLED" | "DISABLED" | "UNKNOWN";
|
|
79
|
+
};
|
|
80
|
+
feed: {
|
|
81
|
+
events: Array<{
|
|
82
|
+
ts: number;
|
|
83
|
+
tag: "RUN" | "NET" | "SEC" | "DB" | "GATEWAY" | "SYSTEM";
|
|
84
|
+
msg: string;
|
|
85
|
+
}>;
|
|
86
|
+
};
|
|
87
|
+
freshness: {
|
|
88
|
+
posture: "FRESH" | "STALE";
|
|
89
|
+
network: "FRESH" | "STALE";
|
|
90
|
+
resources: "FRESH" | "STALE";
|
|
91
|
+
assets: "FRESH" | "STALE";
|
|
92
|
+
capabilities: "FRESH" | "STALE";
|
|
93
|
+
};
|
|
94
|
+
history?: {
|
|
95
|
+
cpu: Array<number | null>;
|
|
96
|
+
ram: Array<number | null>;
|
|
97
|
+
latency: Array<number | null>;
|
|
98
|
+
};
|
|
99
|
+
geo?: GeoContext;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Geographic Context
|
|
103
|
+
* Phase 5: Geographic situational awareness
|
|
104
|
+
*/
|
|
105
|
+
export type GeoContext = {
|
|
106
|
+
originLabel: string | "UNKNOWN";
|
|
107
|
+
originRegion: string | "UNKNOWN";
|
|
108
|
+
originLatLon?: {
|
|
109
|
+
lat: number;
|
|
110
|
+
lon: number;
|
|
111
|
+
} | "UNKNOWN";
|
|
112
|
+
gatewayRegion: string | "UNKNOWN";
|
|
113
|
+
gatewayLatLon?: {
|
|
114
|
+
lat: number;
|
|
115
|
+
lon: number;
|
|
116
|
+
} | "UNKNOWN";
|
|
117
|
+
dbRegion: string | "UNKNOWN";
|
|
118
|
+
dbLatLon?: {
|
|
119
|
+
lat: number;
|
|
120
|
+
lon: number;
|
|
121
|
+
} | "UNKNOWN";
|
|
122
|
+
routeLabel: string | "UNKNOWN";
|
|
123
|
+
pingMs: number | "UNKNOWN";
|
|
124
|
+
pingClass: "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
|
|
125
|
+
confidence: "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
|
|
126
|
+
source: "MANUAL" | "LOCAL_IP" | "AWS_META" | "NONE";
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.js
CHANGED
|
@@ -2375,10 +2375,140 @@ process.on('SIGTERM', () => {
|
|
|
2375
2375
|
});
|
|
2376
2376
|
// Start the OS
|
|
2377
2377
|
async function main() {
|
|
2378
|
-
//
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2378
|
+
// Phase 1: Check for NO_TUI mode
|
|
2379
|
+
const noTui = process.env.NO_TUI === '1';
|
|
2380
|
+
if (noTui) {
|
|
2381
|
+
// NO_TUI mode: text-based hub
|
|
2382
|
+
const { buildUiState } = await import('./state/uiStateBuilder.js');
|
|
2383
|
+
// Load custom agents on startup
|
|
2384
|
+
loadCustomAgents();
|
|
2385
|
+
// Build UI state
|
|
2386
|
+
syncStateToStore();
|
|
2387
|
+
const state = getState();
|
|
2388
|
+
updateAppState({
|
|
2389
|
+
customAgents: customAgents,
|
|
2390
|
+
runHistory: runHistory,
|
|
2391
|
+
});
|
|
2392
|
+
const uiState = await buildUiState(getState());
|
|
2393
|
+
const { renderTextHub } = await import('./ui/runtime/no-tui.js');
|
|
2394
|
+
renderTextHub(uiState);
|
|
2395
|
+
// In NO_TUI mode, we can still run REPL if needed, or just exit
|
|
2396
|
+
// For now, just show the hub and exit
|
|
2397
|
+
process.exit(0);
|
|
2398
|
+
}
|
|
2399
|
+
else {
|
|
2400
|
+
// TUI mode: blessed console
|
|
2401
|
+
const { createConsoleApp, renderHubLayout } = await import('./ui/runtime/index.js');
|
|
2402
|
+
const { startScheduler } = await import('./state/uiStateScheduler.js');
|
|
2403
|
+
// Load custom agents on startup
|
|
2404
|
+
loadCustomAgents();
|
|
2405
|
+
// Initialize TUI
|
|
2406
|
+
const screen = createConsoleApp({
|
|
2407
|
+
title: '4Runr OS Intelligence Console',
|
|
2408
|
+
});
|
|
2409
|
+
// Phase 7: Boot sequence
|
|
2410
|
+
const { renderBootScreen } = await import('./ui/boot/sequence.js');
|
|
2411
|
+
await renderBootScreen(screen);
|
|
2412
|
+
// Sync state
|
|
2413
|
+
syncStateToStore();
|
|
2414
|
+
const state = getState();
|
|
2415
|
+
updateAppState({
|
|
2416
|
+
customAgents: customAgents,
|
|
2417
|
+
runHistory: runHistory,
|
|
2418
|
+
});
|
|
2419
|
+
// Start scheduler (rebuilds UiState on cadence, handles feed events)
|
|
2420
|
+
startScheduler(() => getState(), async (uiState) => {
|
|
2421
|
+
// Render hub from UiState snapshot
|
|
2422
|
+
await renderHubLayout(uiState);
|
|
2423
|
+
});
|
|
2424
|
+
// For Phase 1, just show the hub
|
|
2425
|
+
// Later phases will add interactivity
|
|
2426
|
+
}
|
|
2427
|
+
}
|
|
2428
|
+
// Handle CLI arguments for NO_TUI mode
|
|
2429
|
+
const cliArgs = process.argv.slice(2);
|
|
2430
|
+
if (process.env.NO_TUI === '1' || cliArgs.includes('--no-tui')) {
|
|
2431
|
+
// NO_TUI mode: handle CLI commands
|
|
2432
|
+
(async () => {
|
|
2433
|
+
loadCustomAgents();
|
|
2434
|
+
syncStateToStore();
|
|
2435
|
+
const state = getState();
|
|
2436
|
+
updateAppState({
|
|
2437
|
+
customAgents: customAgents,
|
|
2438
|
+
runHistory: runHistory,
|
|
2439
|
+
});
|
|
2440
|
+
const { buildUiState } = await import('./state/uiStateBuilder.js');
|
|
2441
|
+
const uiState = await buildUiState(getState());
|
|
2442
|
+
if (cliArgs[0] === 'hub') {
|
|
2443
|
+
// Print hub summary
|
|
2444
|
+
const { renderTextHub } = await import('./ui/runtime/no-tui.js');
|
|
2445
|
+
renderTextHub(uiState);
|
|
2446
|
+
}
|
|
2447
|
+
else if (cliArgs[0] === 'inspect') {
|
|
2448
|
+
const panel = cliArgs[1];
|
|
2449
|
+
const filterIndex = cliArgs.indexOf('--filter');
|
|
2450
|
+
const filter = filterIndex >= 0 && cliArgs[filterIndex + 1] ? cliArgs[filterIndex + 1] : undefined;
|
|
2451
|
+
// Print drilldown text
|
|
2452
|
+
if (panel === 'posture') {
|
|
2453
|
+
printPostureDrilldown(uiState);
|
|
2454
|
+
}
|
|
2455
|
+
else if (panel === 'feed') {
|
|
2456
|
+
printFeedDrilldown(uiState, filter);
|
|
2457
|
+
}
|
|
2458
|
+
else {
|
|
2459
|
+
console.log(`NOT IMPLEMENTED: ${panel} drilldown`);
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
else {
|
|
2463
|
+
// Default: show hub
|
|
2464
|
+
const { renderTextHub } = await import('./ui/runtime/no-tui.js');
|
|
2465
|
+
renderTextHub(uiState);
|
|
2466
|
+
}
|
|
2467
|
+
process.exit(0);
|
|
2468
|
+
})();
|
|
2469
|
+
}
|
|
2470
|
+
else {
|
|
2471
|
+
main();
|
|
2472
|
+
}
|
|
2473
|
+
/**
|
|
2474
|
+
* Print posture drilldown (NO_TUI)
|
|
2475
|
+
*/
|
|
2476
|
+
function printPostureDrilldown(uiState) {
|
|
2477
|
+
const posture = uiState.posture;
|
|
2478
|
+
console.log('POSTURE DRILLDOWN');
|
|
2479
|
+
console.log('');
|
|
2480
|
+
console.log(`POSTURE: ${posture.posture}`);
|
|
2481
|
+
console.log(`RISK: ${posture.risk}`);
|
|
2482
|
+
console.log(`LAST CHANGE: ${posture.lastChange !== 'UNKNOWN' ? new Date(posture.lastChange).toLocaleString() : 'UNKNOWN'}`);
|
|
2483
|
+
if (posture.cause !== 'UNKNOWN') {
|
|
2484
|
+
console.log(`CAUSE: ${posture.cause}`);
|
|
2485
|
+
}
|
|
2486
|
+
console.log('');
|
|
2487
|
+
console.log('HEALTH CHECKS:');
|
|
2488
|
+
console.log(` Config: ${posture.dependencies.config}`);
|
|
2489
|
+
console.log(` Gateway: ${posture.dependencies.gateway}`);
|
|
2490
|
+
console.log(` Database: ${posture.dependencies.database}`);
|
|
2491
|
+
console.log(` Registry: ${posture.dependencies.registry}`);
|
|
2492
|
+
}
|
|
2493
|
+
/**
|
|
2494
|
+
* Print feed drilldown (NO_TUI)
|
|
2495
|
+
*/
|
|
2496
|
+
function printFeedDrilldown(uiState, filter) {
|
|
2497
|
+
let events = uiState.feed.events;
|
|
2498
|
+
if (filter) {
|
|
2499
|
+
const lowerFilter = filter.toLowerCase();
|
|
2500
|
+
events = events.filter((e) => e.tag.toLowerCase().includes(lowerFilter) ||
|
|
2501
|
+
e.msg.toLowerCase().includes(lowerFilter));
|
|
2502
|
+
}
|
|
2503
|
+
console.log('FEED DRILLDOWN');
|
|
2504
|
+
if (filter) {
|
|
2505
|
+
console.log(`Filter: ${filter}`);
|
|
2506
|
+
console.log(`${events.length} results`);
|
|
2507
|
+
}
|
|
2508
|
+
console.log('');
|
|
2509
|
+
events.slice().reverse().forEach((event) => {
|
|
2510
|
+
const time = new Date(event.ts).toLocaleTimeString();
|
|
2511
|
+
console.log(`[${time}] [${event.tag}] ${event.msg}`);
|
|
2512
|
+
});
|
|
2382
2513
|
}
|
|
2383
|
-
main();
|
|
2384
2514
|
//# sourceMappingURL=index.js.map
|