4runr-os 1.0.23 → 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.
Files changed (235) hide show
  1. package/dist/collectors/collector_assets.d.ts +19 -0
  2. package/dist/collectors/collector_assets.d.ts.map +1 -0
  3. package/dist/collectors/collector_assets.js +72 -0
  4. package/dist/collectors/collector_assets.js.map +1 -0
  5. package/dist/collectors/collector_capabilities.d.ts +19 -0
  6. package/dist/collectors/collector_capabilities.d.ts.map +1 -0
  7. package/dist/collectors/collector_capabilities.js +61 -0
  8. package/dist/collectors/collector_capabilities.js.map +1 -0
  9. package/dist/collectors/collector_feed.d.ts +30 -0
  10. package/dist/collectors/collector_feed.d.ts.map +1 -0
  11. package/dist/collectors/collector_feed.js +78 -0
  12. package/dist/collectors/collector_feed.js.map +1 -0
  13. package/dist/collectors/collector_geo.d.ts +12 -0
  14. package/dist/collectors/collector_geo.d.ts.map +1 -0
  15. package/dist/collectors/collector_geo.js +248 -0
  16. package/dist/collectors/collector_geo.js.map +1 -0
  17. package/dist/collectors/collector_network.d.ts +22 -0
  18. package/dist/collectors/collector_network.d.ts.map +1 -0
  19. package/dist/collectors/collector_network.js +83 -0
  20. package/dist/collectors/collector_network.js.map +1 -0
  21. package/dist/collectors/collector_posture.d.ts +25 -0
  22. package/dist/collectors/collector_posture.d.ts.map +1 -0
  23. package/dist/collectors/collector_posture.js +207 -0
  24. package/dist/collectors/collector_posture.js.map +1 -0
  25. package/dist/collectors/collector_resources.d.ts +21 -0
  26. package/dist/collectors/collector_resources.d.ts.map +1 -0
  27. package/dist/collectors/collector_resources.js +87 -0
  28. package/dist/collectors/collector_resources.js.map +1 -0
  29. package/dist/collectors/helpers.d.ts +21 -0
  30. package/dist/collectors/helpers.d.ts.map +1 -0
  31. package/dist/collectors/helpers.js +49 -0
  32. package/dist/collectors/helpers.js.map +1 -0
  33. package/dist/core/collectorRegistry.d.ts +43 -0
  34. package/dist/core/collectorRegistry.d.ts.map +1 -0
  35. package/dist/core/collectorRegistry.js +76 -0
  36. package/dist/core/collectorRegistry.js.map +1 -0
  37. package/dist/core/constants.d.ts +25 -0
  38. package/dist/core/constants.d.ts.map +1 -0
  39. package/dist/core/constants.js +33 -0
  40. package/dist/core/constants.js.map +1 -0
  41. package/dist/core/eventBus.d.ts +36 -0
  42. package/dist/core/eventBus.d.ts.map +1 -0
  43. package/dist/core/eventBus.js +52 -0
  44. package/dist/core/eventBus.js.map +1 -0
  45. package/dist/core/types.d.ts +128 -0
  46. package/dist/core/types.d.ts.map +1 -0
  47. package/dist/core/types.js +6 -0
  48. package/dist/core/types.js.map +1 -0
  49. package/dist/events.d.ts +35 -0
  50. package/dist/events.d.ts.map +1 -0
  51. package/dist/events.js +89 -0
  52. package/dist/events.js.map +1 -0
  53. package/dist/index.js +301 -36
  54. package/dist/index.js.map +1 -1
  55. package/dist/models.d.ts +74 -0
  56. package/dist/models.d.ts.map +1 -0
  57. package/dist/models.js +7 -0
  58. package/dist/models.js.map +1 -0
  59. package/dist/state/getCollectorResults.d.ts +18 -0
  60. package/dist/state/getCollectorResults.d.ts.map +1 -0
  61. package/dist/state/getCollectorResults.js +25 -0
  62. package/dist/state/getCollectorResults.js.map +1 -0
  63. package/dist/state/historyStore.d.ts +35 -0
  64. package/dist/state/historyStore.d.ts.map +1 -0
  65. package/dist/state/historyStore.js +58 -0
  66. package/dist/state/historyStore.js.map +1 -0
  67. package/dist/state/uiStateBuilder.d.ts +12 -0
  68. package/dist/state/uiStateBuilder.d.ts.map +1 -0
  69. package/dist/state/uiStateBuilder.js +169 -0
  70. package/dist/state/uiStateBuilder.js.map +1 -0
  71. package/dist/state/uiStateScheduler.d.ts +43 -0
  72. package/dist/state/uiStateScheduler.d.ts.map +1 -0
  73. package/dist/state/uiStateScheduler.js +118 -0
  74. package/dist/state/uiStateScheduler.js.map +1 -0
  75. package/dist/store.d.ts +3 -1
  76. package/dist/store.d.ts.map +1 -1
  77. package/dist/store.js +2 -0
  78. package/dist/store.js.map +1 -1
  79. package/dist/system-state.d.ts +96 -0
  80. package/dist/system-state.d.ts.map +1 -0
  81. package/dist/system-state.js +273 -0
  82. package/dist/system-state.js.map +1 -0
  83. package/dist/ui/boot/sequence.d.ts +10 -0
  84. package/dist/ui/boot/sequence.d.ts.map +1 -0
  85. package/dist/ui/boot/sequence.js +173 -0
  86. package/dist/ui/boot/sequence.js.map +1 -0
  87. package/dist/ui/constraints/layoutSpec.d.ts +47 -0
  88. package/dist/ui/constraints/layoutSpec.d.ts.map +1 -0
  89. package/dist/ui/constraints/layoutSpec.js +60 -0
  90. package/dist/ui/constraints/layoutSpec.js.map +1 -0
  91. package/dist/ui/constraints/unknownHandling.d.ts +29 -0
  92. package/dist/ui/constraints/unknownHandling.d.ts.map +1 -0
  93. package/dist/ui/constraints/unknownHandling.js +60 -0
  94. package/dist/ui/constraints/unknownHandling.js.map +1 -0
  95. package/dist/ui/drilldowns/feed.d.ts +11 -0
  96. package/dist/ui/drilldowns/feed.d.ts.map +1 -0
  97. package/dist/ui/drilldowns/feed.js +68 -0
  98. package/dist/ui/drilldowns/feed.js.map +1 -0
  99. package/dist/ui/drilldowns/index.d.ts +7 -0
  100. package/dist/ui/drilldowns/index.d.ts.map +1 -0
  101. package/dist/ui/drilldowns/index.js +8 -0
  102. package/dist/ui/drilldowns/index.js.map +1 -0
  103. package/dist/ui/drilldowns/posture.d.ts +11 -0
  104. package/dist/ui/drilldowns/posture.d.ts.map +1 -0
  105. package/dist/ui/drilldowns/posture.js +74 -0
  106. package/dist/ui/drilldowns/posture.js.map +1 -0
  107. package/dist/ui/intelligence-posture-view.d.ts +22 -0
  108. package/dist/ui/intelligence-posture-view.d.ts.map +1 -0
  109. package/dist/ui/intelligence-posture-view.js +169 -0
  110. package/dist/ui/intelligence-posture-view.js.map +1 -0
  111. package/dist/ui/navigation/keymaps.d.ts +26 -0
  112. package/dist/ui/navigation/keymaps.d.ts.map +1 -0
  113. package/dist/ui/navigation/keymaps.js +135 -0
  114. package/dist/ui/navigation/keymaps.js.map +1 -0
  115. package/dist/ui/navigation/palette.d.ts +10 -0
  116. package/dist/ui/navigation/palette.d.ts.map +1 -0
  117. package/dist/ui/navigation/palette.js +133 -0
  118. package/dist/ui/navigation/palette.js.map +1 -0
  119. package/dist/ui/navigation/state.d.ts +47 -0
  120. package/dist/ui/navigation/state.d.ts.map +1 -0
  121. package/dist/ui/navigation/state.js +84 -0
  122. package/dist/ui/navigation/state.js.map +1 -0
  123. package/dist/ui/navigation/types.d.ts +38 -0
  124. package/dist/ui/navigation/types.d.ts.map +1 -0
  125. package/dist/ui/navigation/types.js +36 -0
  126. package/dist/ui/navigation/types.js.map +1 -0
  127. package/dist/ui/panels/active-assets.d.ts +12 -0
  128. package/dist/ui/panels/active-assets.d.ts.map +1 -0
  129. package/dist/ui/panels/active-assets.js +83 -0
  130. package/dist/ui/panels/active-assets.js.map +1 -0
  131. package/dist/ui/panels/capability-flags.d.ts +12 -0
  132. package/dist/ui/panels/capability-flags.d.ts.map +1 -0
  133. package/dist/ui/panels/capability-flags.js +59 -0
  134. package/dist/ui/panels/capability-flags.js.map +1 -0
  135. package/dist/ui/panels/command-surface.d.ts +12 -0
  136. package/dist/ui/panels/command-surface.d.ts.map +1 -0
  137. package/dist/ui/panels/command-surface.js +55 -0
  138. package/dist/ui/panels/command-surface.js.map +1 -0
  139. package/dist/ui/panels/network-origin.d.ts +12 -0
  140. package/dist/ui/panels/network-origin.d.ts.map +1 -0
  141. package/dist/ui/panels/network-origin.js +79 -0
  142. package/dist/ui/panels/network-origin.js.map +1 -0
  143. package/dist/ui/panels/operations-feed.d.ts +12 -0
  144. package/dist/ui/panels/operations-feed.d.ts.map +1 -0
  145. package/dist/ui/panels/operations-feed.js +90 -0
  146. package/dist/ui/panels/operations-feed.js.map +1 -0
  147. package/dist/ui/panels/posture.d.ts +12 -0
  148. package/dist/ui/panels/posture.d.ts.map +1 -0
  149. package/dist/ui/panels/posture.js +84 -0
  150. package/dist/ui/panels/posture.js.map +1 -0
  151. package/dist/ui/panels/resources.d.ts +11 -0
  152. package/dist/ui/panels/resources.d.ts.map +1 -0
  153. package/dist/ui/panels/resources.js +88 -0
  154. package/dist/ui/panels/resources.js.map +1 -0
  155. package/dist/ui/primitives/Panel.d.ts +25 -0
  156. package/dist/ui/primitives/Panel.d.ts.map +1 -0
  157. package/dist/ui/primitives/Panel.js +59 -0
  158. package/dist/ui/primitives/Panel.js.map +1 -0
  159. package/dist/ui/rendering/metricRenderer.d.ts +24 -0
  160. package/dist/ui/rendering/metricRenderer.d.ts.map +1 -0
  161. package/dist/ui/rendering/metricRenderer.js +86 -0
  162. package/dist/ui/rendering/metricRenderer.js.map +1 -0
  163. package/dist/ui/runtime/hub.d.ts +12 -0
  164. package/dist/ui/runtime/hub.d.ts.map +1 -0
  165. package/dist/ui/runtime/hub.js +468 -0
  166. package/dist/ui/runtime/hub.js.map +1 -0
  167. package/dist/ui/runtime/hubValidation.d.ts +23 -0
  168. package/dist/ui/runtime/hubValidation.d.ts.map +1 -0
  169. package/dist/ui/runtime/hubValidation.js +90 -0
  170. package/dist/ui/runtime/hubValidation.js.map +1 -0
  171. package/dist/ui/runtime/index.d.ts +29 -0
  172. package/dist/ui/runtime/index.d.ts.map +1 -0
  173. package/dist/ui/runtime/index.js +299 -0
  174. package/dist/ui/runtime/index.js.map +1 -0
  175. package/dist/ui/runtime/no-tui.d.ts +12 -0
  176. package/dist/ui/runtime/no-tui.d.ts.map +1 -0
  177. package/dist/ui/runtime/no-tui.js +77 -0
  178. package/dist/ui/runtime/no-tui.js.map +1 -0
  179. package/dist/ui/runtime/state-builder.d.ts +13 -0
  180. package/dist/ui/runtime/state-builder.d.ts.map +1 -0
  181. package/dist/ui/runtime/state-builder.js +114 -0
  182. package/dist/ui/runtime/state-builder.js.map +1 -0
  183. package/dist/ui/runtime/terminalSizeCheck.d.ts +10 -0
  184. package/dist/ui/runtime/terminalSizeCheck.d.ts.map +1 -0
  185. package/dist/ui/runtime/terminalSizeCheck.js +51 -0
  186. package/dist/ui/runtime/terminalSizeCheck.js.map +1 -0
  187. package/dist/ui/runtime/tuiLogGate.d.ts +22 -0
  188. package/dist/ui/runtime/tuiLogGate.d.ts.map +1 -0
  189. package/dist/ui/runtime/tuiLogGate.js +68 -0
  190. package/dist/ui/runtime/tuiLogGate.js.map +1 -0
  191. package/dist/ui/state/types.d.ts +72 -0
  192. package/dist/ui/state/types.d.ts.map +1 -0
  193. package/dist/ui/state/types.js +6 -0
  194. package/dist/ui/state/types.js.map +1 -0
  195. package/dist/ui/theme/borders.d.ts +20 -0
  196. package/dist/ui/theme/borders.d.ts.map +1 -0
  197. package/dist/ui/theme/borders.js +55 -0
  198. package/dist/ui/theme/borders.js.map +1 -0
  199. package/dist/ui/theme/tokens.d.ts +28 -0
  200. package/dist/ui/theme/tokens.d.ts.map +1 -0
  201. package/dist/ui/theme/tokens.js +50 -0
  202. package/dist/ui/theme/tokens.js.map +1 -0
  203. package/dist/ui/theme/typography.d.ts +14 -0
  204. package/dist/ui/theme/typography.d.ts.map +1 -0
  205. package/dist/ui/theme/typography.js +30 -0
  206. package/dist/ui/theme/typography.js.map +1 -0
  207. package/dist/ui/widgets/flagRow.d.ts +25 -0
  208. package/dist/ui/widgets/flagRow.d.ts.map +1 -0
  209. package/dist/ui/widgets/flagRow.js +57 -0
  210. package/dist/ui/widgets/flagRow.js.map +1 -0
  211. package/dist/ui/widgets/index.d.ts +9 -0
  212. package/dist/ui/widgets/index.d.ts.map +1 -0
  213. package/dist/ui/widgets/index.js +9 -0
  214. package/dist/ui/widgets/index.js.map +1 -0
  215. package/dist/ui/widgets/meter.d.ts +18 -0
  216. package/dist/ui/widgets/meter.d.ts.map +1 -0
  217. package/dist/ui/widgets/meter.js +38 -0
  218. package/dist/ui/widgets/meter.js.map +1 -0
  219. package/dist/ui/widgets/miniMap.d.ts +26 -0
  220. package/dist/ui/widgets/miniMap.d.ts.map +1 -0
  221. package/dist/ui/widgets/miniMap.js +94 -0
  222. package/dist/ui/widgets/miniMap.js.map +1 -0
  223. package/dist/ui/widgets/sparkline.d.ts +17 -0
  224. package/dist/ui/widgets/sparkline.d.ts.map +1 -0
  225. package/dist/ui/widgets/sparkline.js +63 -0
  226. package/dist/ui/widgets/sparkline.js.map +1 -0
  227. package/dist/ui-primitives.d.ts +5 -2
  228. package/dist/ui-primitives.d.ts.map +1 -1
  229. package/dist/ui-primitives.js +22 -9
  230. package/dist/ui-primitives.js.map +1 -1
  231. package/package.json +5 -4
  232. package/dist/ui/home-view.d.ts +0 -27
  233. package/dist/ui/home-view.d.ts.map +0 -1
  234. package/dist/ui/home-view.js +0 -127
  235. 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,6 @@
1
+ /**
2
+ * Core Types
3
+ * Phase 3: Data contracts for collectors and UiState
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Event Ring Buffer
3
+ * Phase 2: Track meaningful operational events for Live Operations Feed
4
+ */
5
+ import type { OperationEvent } from './models.js';
6
+ /**
7
+ * Add event to operations feed
8
+ * Events are structured objects, not strings
9
+ */
10
+ export declare function addOperationEvent(event: OperationEvent): void;
11
+ /**
12
+ * Helper: Create event for run started
13
+ */
14
+ export declare function eventRunStarted(agentName: string, runId: string): OperationEvent;
15
+ /**
16
+ * Helper: Create event for run completed
17
+ */
18
+ export declare function eventRunCompleted(agentName: string, runId: string, status: 'SUCCESS' | 'FAILED'): OperationEvent;
19
+ /**
20
+ * Helper: Create event for error detected
21
+ */
22
+ export declare function eventErrorDetected(description: string, metadata?: Record<string, any>, severity?: 'warning' | 'critical'): OperationEvent;
23
+ /**
24
+ * Helper: Create event for connection established
25
+ */
26
+ export declare function eventConnectionEstablished(target: string): OperationEvent;
27
+ /**
28
+ * Helper: Create event for connection lost
29
+ */
30
+ export declare function eventConnectionLost(): OperationEvent;
31
+ /**
32
+ * Helper: Create event for system state change
33
+ */
34
+ export declare function eventSystemStateChange(description: string, metadata?: Record<string, any>): OperationEvent;
35
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAQ7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAQhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,cAAc,CAQhH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAE,SAAS,GAAG,UAAsB,GAAG,cAAc,CAQpJ;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAQzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAOpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc,CAQ1G"}
package/dist/events.js ADDED
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Event Ring Buffer
3
+ * Phase 2: Track meaningful operational events for Live Operations Feed
4
+ */
5
+ import { updateAppState, getState } from './store.js';
6
+ const MAX_EVENTS = 10; // Ring buffer size
7
+ /**
8
+ * Add event to operations feed
9
+ * Events are structured objects, not strings
10
+ */
11
+ export function addOperationEvent(event) {
12
+ const state = getState();
13
+ const events = [...state.operationEvents, event];
14
+ // Keep only last MAX_EVENTS
15
+ const trimmedEvents = events.slice(-MAX_EVENTS);
16
+ updateAppState({ operationEvents: trimmedEvents });
17
+ }
18
+ /**
19
+ * Helper: Create event for run started
20
+ */
21
+ export function eventRunStarted(agentName, runId) {
22
+ return {
23
+ type: 'RUN_STARTED',
24
+ description: `Execution started: ${agentName}`,
25
+ timestamp: Date.now(),
26
+ severity: 'info',
27
+ metadata: { agentName, runId },
28
+ };
29
+ }
30
+ /**
31
+ * Helper: Create event for run completed
32
+ */
33
+ export function eventRunCompleted(agentName, runId, status) {
34
+ return {
35
+ type: 'RUN_COMPLETED',
36
+ description: `Execution ${status.toLowerCase()}: ${agentName}`,
37
+ timestamp: Date.now(),
38
+ severity: status === 'FAILED' ? 'warning' : 'info',
39
+ metadata: { agentName, runId, status },
40
+ };
41
+ }
42
+ /**
43
+ * Helper: Create event for error detected
44
+ */
45
+ export function eventErrorDetected(description, metadata, severity = 'warning') {
46
+ return {
47
+ type: 'ERROR_DETECTED',
48
+ description,
49
+ timestamp: Date.now(),
50
+ severity,
51
+ metadata,
52
+ };
53
+ }
54
+ /**
55
+ * Helper: Create event for connection established
56
+ */
57
+ export function eventConnectionEstablished(target) {
58
+ return {
59
+ type: 'CONNECTION_ESTABLISHED',
60
+ description: `Connected to ${target}`,
61
+ timestamp: Date.now(),
62
+ severity: 'info',
63
+ metadata: { target },
64
+ };
65
+ }
66
+ /**
67
+ * Helper: Create event for connection lost
68
+ */
69
+ export function eventConnectionLost() {
70
+ return {
71
+ type: 'CONNECTION_LOST',
72
+ description: 'Connection lost',
73
+ timestamp: Date.now(),
74
+ severity: 'warning',
75
+ };
76
+ }
77
+ /**
78
+ * Helper: Create event for system state change
79
+ */
80
+ export function eventSystemStateChange(description, metadata) {
81
+ return {
82
+ type: 'SYSTEM_STATE_CHANGE',
83
+ description,
84
+ timestamp: Date.now(),
85
+ severity: 'info',
86
+ metadata,
87
+ };
88
+ }
89
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,mBAAmB;AAE1C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAEjD,4BAA4B;IAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IAEhD,cAAc,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,KAAa;IAC9D,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,sBAAsB,SAAS,EAAE;QAC9C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,KAAa,EAAE,MAA4B;IAC9F,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,aAAa,MAAM,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;QAC9D,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QAClD,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,QAA8B,EAAE,WAAmC,SAAS;IAClI,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAc;IACvD,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,gBAAgB,MAAM,EAAE;QACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,EAAE,MAAM,EAAE;KACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB,EAAE,QAA8B;IACxF,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,MAAM;QAChB,QAAQ;KACT,CAAC;AACJ,CAAC"}