4runr-os 1.0.23 → 1.0.28

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.
@@ -0,0 +1,96 @@
1
+ /**
2
+ * System State Intelligence Model
3
+ * Phase 5: UI-Driven Architecture Lock-In
4
+ *
5
+ * This is the authoritative system intelligence model.
6
+ * The UI reads from this, never computes values itself.
7
+ *
8
+ * Architecture:
9
+ * Runtime State (AppState) → System Intelligence (SystemState) → UI Rendering
10
+ *
11
+ * The 5 mandatory intelligence surfaces are:
12
+ * 1. system_posture
13
+ * 2. network_context
14
+ * 3. asset_registry_summary
15
+ * 4. operation_feed
16
+ * 5. capability_flags
17
+ */
18
+ import type { AppState } from './store.js';
19
+ import type { SystemPosture, NetworkAwareness, AssetOverview, OperationEvent, CapabilityReadiness } from './models.js';
20
+ /**
21
+ * SystemState: The complete intelligence model
22
+ * Queryable, composable, versionable
23
+ */
24
+ export interface SystemState {
25
+ systemPosture: SystemPosture;
26
+ networkContext: NetworkAwareness;
27
+ assetRegistrySummary: AssetOverview;
28
+ operationFeed: OperationEvent[];
29
+ capabilityFlags: CapabilityReadiness;
30
+ computedAt: number;
31
+ version: number;
32
+ }
33
+ /**
34
+ * System State Provider
35
+ * Computes SystemState from AppState
36
+ * This is the single source of truth for intelligence data
37
+ */
38
+ export declare class SystemStateProvider {
39
+ private cachedState;
40
+ private lastAppStateVersion;
41
+ private appStateVersion;
42
+ /**
43
+ * Compute system posture from app state
44
+ * Phase 5: Centralized, deterministic computation
45
+ */
46
+ private computeSystemPosture;
47
+ /**
48
+ * Compute network context from app state
49
+ * Phase 5: Spatial and infrastructural awareness
50
+ */
51
+ private computeNetworkContext;
52
+ /**
53
+ * Extract region from URL (simplified)
54
+ */
55
+ private extractRegionFromUrl;
56
+ /**
57
+ * Compute asset registry summary
58
+ * Phase 5: Deployed intelligence surface
59
+ */
60
+ private computeAssetRegistrySummary;
61
+ /**
62
+ * Get operation feed
63
+ * Phase 5: Living operational pulse
64
+ */
65
+ private getOperationFeed;
66
+ /**
67
+ * Compute capability flags
68
+ * Phase 5: What the system is capable of right now
69
+ */
70
+ private computeCapabilityFlags;
71
+ /**
72
+ * Compute complete SystemState from AppState
73
+ * This is the single computation point
74
+ */
75
+ compute(state: AppState): SystemState;
76
+ /**
77
+ * Get cached state if available and valid
78
+ * Otherwise compute fresh
79
+ */
80
+ get(state: AppState, forceRefresh?: boolean): SystemState;
81
+ /**
82
+ * Invalidate cache (call when state changes)
83
+ */
84
+ invalidate(): void;
85
+ }
86
+ /**
87
+ * Global system state provider instance
88
+ * Single source of truth for intelligence data
89
+ */
90
+ export declare const systemStateProvider: SystemStateProvider;
91
+ /**
92
+ * Get current system state
93
+ * This is what the UI reads from
94
+ */
95
+ export declare function getSystemState(state: AppState, forceRefresh?: boolean): SystemState;
96
+ //# sourceMappingURL=system-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-state.d.ts","sourceRoot":"","sources":["../src/system-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,aAAa,EAAE,aAAa,CAAC;IAG7B,cAAc,EAAE,gBAAgB,CAAC;IAGjC,oBAAoB,EAAE,aAAa,CAAC;IAGpC,aAAa,EAAE,cAAc,EAAE,CAAC;IAGhC,eAAe,EAAE,mBAAmB,CAAC;IAGrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,eAAe,CAAa;IAEpC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAwD5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyC7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAwDnC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW;IAqBrC;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAE,OAAe,GAAG,WAAW;IAOhE;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAE,OAAe,GAAG,WAAW,CAE1F"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * System State Intelligence Model
3
+ * Phase 5: UI-Driven Architecture Lock-In
4
+ *
5
+ * This is the authoritative system intelligence model.
6
+ * The UI reads from this, never computes values itself.
7
+ *
8
+ * Architecture:
9
+ * Runtime State (AppState) → System Intelligence (SystemState) → UI Rendering
10
+ *
11
+ * The 5 mandatory intelligence surfaces are:
12
+ * 1. system_posture
13
+ * 2. network_context
14
+ * 3. asset_registry_summary
15
+ * 4. operation_feed
16
+ * 5. capability_flags
17
+ */
18
+ /**
19
+ * System State Provider
20
+ * Computes SystemState from AppState
21
+ * This is the single source of truth for intelligence data
22
+ */
23
+ export class SystemStateProvider {
24
+ cachedState = null;
25
+ lastAppStateVersion = 0;
26
+ appStateVersion = 0;
27
+ /**
28
+ * Compute system posture from app state
29
+ * Phase 5: Centralized, deterministic computation
30
+ */
31
+ computeSystemPosture(state) {
32
+ // Determine overall posture
33
+ let overallPosture;
34
+ let sourceOfTruth;
35
+ if (!state.systemReady) {
36
+ overallPosture = 'CRITICAL';
37
+ sourceOfTruth = 'system_initialization';
38
+ }
39
+ else if (state.gatewayConnected && state.localMode) {
40
+ overallPosture = 'OPERATIONAL';
41
+ sourceOfTruth = 'hybrid_mode';
42
+ }
43
+ else if (state.gatewayConnected) {
44
+ overallPosture = 'OPERATIONAL';
45
+ sourceOfTruth = 'gateway_connection';
46
+ }
47
+ else if (state.localMode) {
48
+ overallPosture = 'OPERATIONAL';
49
+ sourceOfTruth = 'local_mode';
50
+ }
51
+ else {
52
+ overallPosture = 'DEGRADED';
53
+ sourceOfTruth = 'no_connection';
54
+ }
55
+ // Determine execution mode
56
+ let executionMode;
57
+ if (state.localMode && state.gatewayConnected) {
58
+ executionMode = 'HYBRID';
59
+ }
60
+ else if (state.localMode) {
61
+ executionMode = 'LOCAL';
62
+ }
63
+ else if (state.gatewayConnected) {
64
+ executionMode = 'REMOTE';
65
+ }
66
+ else {
67
+ executionMode = 'LOCAL'; // Fallback
68
+ }
69
+ // Determine risk level
70
+ let riskLevel;
71
+ if (overallPosture === 'CRITICAL') {
72
+ riskLevel = 'HIGH';
73
+ }
74
+ else if (overallPosture === 'DEGRADED') {
75
+ riskLevel = 'ELEVATED';
76
+ }
77
+ else {
78
+ riskLevel = 'LOW';
79
+ }
80
+ // Track last state change (would be tracked in state transitions)
81
+ // For v1, use current timestamp (would track actual state transitions)
82
+ const lastStateChange = Date.now();
83
+ return {
84
+ overallPosture,
85
+ executionMode,
86
+ riskLevel,
87
+ lastStateChange,
88
+ };
89
+ }
90
+ /**
91
+ * Compute network context from app state
92
+ * Phase 5: Spatial and infrastructural awareness
93
+ */
94
+ computeNetworkContext(state) {
95
+ // Operator origin (privacy-safe, approximate)
96
+ const operatorOrigin = {
97
+ region: process.env.OPERATOR_REGION || 'UNKNOWN',
98
+ networkType: (() => {
99
+ if (state.localMode)
100
+ return 'LOCAL';
101
+ if (state.gatewayUrl?.includes('localhost') || state.gatewayUrl?.includes('127.0.0.1')) {
102
+ return 'LOCAL';
103
+ }
104
+ if (state.gatewayUrl?.includes('vpn') || state.gatewayUrl?.includes('tunnel')) {
105
+ return 'VPN';
106
+ }
107
+ if (state.gatewayUrl) {
108
+ return 'CLOUD';
109
+ }
110
+ return 'UNKNOWN';
111
+ })(),
112
+ };
113
+ // Target infrastructure
114
+ const targetInfrastructure = {
115
+ gatewayRegion: state.gatewayUrl
116
+ ? this.extractRegionFromUrl(state.gatewayUrl)
117
+ : 'NONE',
118
+ databaseRegion: state.gatewayConnected
119
+ ? this.extractRegionFromUrl(state.gatewayUrl || '')
120
+ : 'NONE',
121
+ latencyClass: (() => {
122
+ // Simplified - would measure actual latency
123
+ if (state.localMode)
124
+ return 'LOW';
125
+ if (state.gatewayConnected)
126
+ return 'MEDIUM';
127
+ return 'HIGH';
128
+ })(),
129
+ };
130
+ return {
131
+ operatorOrigin,
132
+ targetInfrastructure,
133
+ };
134
+ }
135
+ /**
136
+ * Extract region from URL (simplified)
137
+ */
138
+ extractRegionFromUrl(url) {
139
+ if (url.includes('localhost') || url.includes('127.0.0.1'))
140
+ return 'LOCAL';
141
+ if (url.includes('us-'))
142
+ return 'US';
143
+ if (url.includes('eu-'))
144
+ return 'EU';
145
+ if (url.includes('ap-'))
146
+ return 'APAC';
147
+ return 'UNKNOWN';
148
+ }
149
+ /**
150
+ * Compute asset registry summary
151
+ * Phase 5: Deployed intelligence surface
152
+ */
153
+ computeAssetRegistrySummary(state) {
154
+ const total = state.customAgents.size;
155
+ // Count by status
156
+ const activeRuns = state.runHistory.filter(r => r.status === 'RUNNING');
157
+ const failedRuns = state.runHistory.filter(r => r.status === 'FAILED');
158
+ const active = activeRuns.length;
159
+ const error = failedRuns.length > 0 && failedRuns[0].timestamp > Date.now() - 60000 ? 1 : 0;
160
+ const idle = Math.max(0, total - active - error);
161
+ // Primary asset (last used or pinned)
162
+ let highlighted = null;
163
+ if (activeRuns.length > 0) {
164
+ const activeRun = activeRuns[activeRuns.length - 1];
165
+ const asset = Array.from(state.customAgents.values()).find(a => a.name === activeRun.agentName);
166
+ if (asset) {
167
+ highlighted = {
168
+ name: asset.name,
169
+ status: 'ACTIVE',
170
+ reason: 'Currently executing',
171
+ };
172
+ }
173
+ }
174
+ else if (state.runHistory.length > 0) {
175
+ const lastRun = state.runHistory[state.runHistory.length - 1];
176
+ const asset = Array.from(state.customAgents.values()).find(a => a.name === lastRun.agentName);
177
+ if (asset) {
178
+ highlighted = {
179
+ name: asset.name,
180
+ status: lastRun.status === 'FAILED' ? 'ERROR' : 'IDLE',
181
+ reason: lastRun.status === 'FAILED' ? 'Recent failure' : 'Last used',
182
+ };
183
+ }
184
+ }
185
+ else if (total > 0) {
186
+ const firstAsset = Array.from(state.customAgents.values())[0];
187
+ highlighted = {
188
+ name: firstAsset.name,
189
+ status: 'IDLE',
190
+ reason: 'Available',
191
+ };
192
+ }
193
+ return {
194
+ total,
195
+ active,
196
+ idle,
197
+ error,
198
+ highlighted,
199
+ };
200
+ }
201
+ /**
202
+ * Get operation feed
203
+ * Phase 5: Living operational pulse
204
+ */
205
+ getOperationFeed(state) {
206
+ // Return last 10 events (hard limit)
207
+ return state.operationEvents.slice(-10);
208
+ }
209
+ /**
210
+ * Compute capability flags
211
+ * Phase 5: What the system is capable of right now
212
+ */
213
+ computeCapabilityFlags(state) {
214
+ return {
215
+ gateway: state.gatewayConnected ? 'READY' : 'DEGRADED',
216
+ database: state.gatewayConnected ? 'READY' : 'NOT_INITIALIZED',
217
+ memoryLayer: state.gatewayConnected ? 'PERSISTENT' : 'IN_MEMORY',
218
+ security: state.currentUser ? 'JWT' : 'OPEN',
219
+ rateLimiting: 'DISABLED', // Would check actual config
220
+ };
221
+ }
222
+ /**
223
+ * Compute complete SystemState from AppState
224
+ * This is the single computation point
225
+ */
226
+ compute(state) {
227
+ // Increment version for cache invalidation
228
+ this.appStateVersion++;
229
+ const systemState = {
230
+ systemPosture: this.computeSystemPosture(state),
231
+ networkContext: this.computeNetworkContext(state),
232
+ assetRegistrySummary: this.computeAssetRegistrySummary(state),
233
+ operationFeed: this.getOperationFeed(state),
234
+ capabilityFlags: this.computeCapabilityFlags(state),
235
+ computedAt: Date.now(),
236
+ version: this.appStateVersion,
237
+ };
238
+ // Cache the result
239
+ this.cachedState = systemState;
240
+ this.lastAppStateVersion = this.appStateVersion;
241
+ return systemState;
242
+ }
243
+ /**
244
+ * Get cached state if available and valid
245
+ * Otherwise compute fresh
246
+ */
247
+ get(state, forceRefresh = false) {
248
+ if (!forceRefresh && this.cachedState && this.appStateVersion === this.lastAppStateVersion) {
249
+ return this.cachedState;
250
+ }
251
+ return this.compute(state);
252
+ }
253
+ /**
254
+ * Invalidate cache (call when state changes)
255
+ */
256
+ invalidate() {
257
+ this.cachedState = null;
258
+ this.lastAppStateVersion = 0;
259
+ }
260
+ }
261
+ /**
262
+ * Global system state provider instance
263
+ * Single source of truth for intelligence data
264
+ */
265
+ export const systemStateProvider = new SystemStateProvider();
266
+ /**
267
+ * Get current system state
268
+ * This is what the UI reads from
269
+ */
270
+ export function getSystemState(state, forceRefresh = false) {
271
+ return systemStateProvider.get(state, forceRefresh);
272
+ }
273
+ //# sourceMappingURL=system-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-state.js","sourceRoot":"","sources":["../src/system-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Intelligence Posture View Renderer
3
+ *
4
+ * Phase 2: Intelligence Sections (Not Widgets)
5
+ * Phase 4: Visual Philosophy (Text-Only, Cinematic, Intelligence-Grade)
6
+ * Phase 5: Data Model Implication (UI-Driven Architecture)
7
+ *
8
+ * This view reads from SystemState, never computes values itself.
9
+ * Architecture: Runtime State → System Intelligence → UI Rendering
10
+ */
11
+ import type { AppState } from '../store.js';
12
+ /**
13
+ * Render Intelligence Posture View
14
+ * Pure function: receives state → returns rendered string
15
+ *
16
+ * Phase 5: Reads from SystemState, never computes
17
+ *
18
+ * @param state - Current application state
19
+ * @returns Rendered view as string (ready to console.log)
20
+ */
21
+ export declare function renderIntelligencePostureView(state: AppState): string;
22
+ //# sourceMappingURL=intelligence-posture-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligence-posture-view.d.ts","sourceRoot":"","sources":["../../src/ui/intelligence-posture-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CA2JrE"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Intelligence Posture View Renderer
3
+ *
4
+ * Phase 2: Intelligence Sections (Not Widgets)
5
+ * Phase 4: Visual Philosophy (Text-Only, Cinematic, Intelligence-Grade)
6
+ * Phase 5: Data Model Implication (UI-Driven Architecture)
7
+ *
8
+ * This view reads from SystemState, never computes values itself.
9
+ * Architecture: Runtime State → System Intelligence → UI Rendering
10
+ */
11
+ import { Section, StatusBar } from '../ui-primitives.js';
12
+ import { C_ACCENT, C_SUCCESS, C_WARN, C_ERROR, C_MUTED, C_LINK, C_TEXT, RESET, BOLD } from '../theme.js';
13
+ import { formatRelativeTime } from '../utils.js';
14
+ import { getSystemState } from '../system-state.js';
15
+ /**
16
+ * Render Intelligence Posture View
17
+ * Pure function: receives state → returns rendered string
18
+ *
19
+ * Phase 5: Reads from SystemState, never computes
20
+ *
21
+ * @param state - Current application state
22
+ * @returns Rendered view as string (ready to console.log)
23
+ */
24
+ export function renderIntelligencePostureView(state) {
25
+ const lines = [];
26
+ // Phase 5: Read from SystemState (single source of truth)
27
+ const systemState = getSystemState(state);
28
+ // INTEL BLOCK 1: GLOBAL SYSTEM POSTURE
29
+ const postureLines = [];
30
+ if (systemState.systemPosture.overallPosture === 'OPERATIONAL') {
31
+ postureLines.push(`POSTURE: ${C_SUCCESS}${BOLD}OPERATIONAL${RESET}`);
32
+ }
33
+ else if (systemState.systemPosture.overallPosture === 'CRITICAL') {
34
+ postureLines.push(`POSTURE: ${C_ERROR}${BOLD}CRITICAL${RESET}`);
35
+ }
36
+ else if (systemState.systemPosture.overallPosture === 'DEGRADED') {
37
+ postureLines.push(`POSTURE: ${C_WARN}${BOLD}DEGRADED${RESET}`);
38
+ }
39
+ else {
40
+ postureLines.push(`POSTURE: ${C_MUTED}${BOLD}OFFLINE${RESET}`);
41
+ }
42
+ postureLines.push(`MODE: ${C_ACCENT}${systemState.systemPosture.executionMode}${RESET}`);
43
+ if (systemState.systemPosture.riskLevel === 'HIGH') {
44
+ postureLines.push(`RISK: ${C_ERROR}HIGH${RESET}`);
45
+ }
46
+ else if (systemState.systemPosture.riskLevel === 'ELEVATED') {
47
+ postureLines.push(`RISK: ${C_WARN}ELEVATED${RESET}`);
48
+ }
49
+ else {
50
+ postureLines.push(`RISK: ${C_SUCCESS}LOW${RESET}`);
51
+ }
52
+ const lastChange = formatRelativeTime(systemState.systemPosture.lastStateChange);
53
+ postureLines.push(`LAST CHANGE: ${C_MUTED}${lastChange}${RESET}`);
54
+ lines.push(Section('GLOBAL SYSTEM POSTURE', postureLines));
55
+ lines.push('');
56
+ // INTEL BLOCK 2: NETWORK & ORIGIN AWARENESS
57
+ const networkLines = [];
58
+ networkLines.push(`ORIGIN: ${C_TEXT}${systemState.networkContext.operatorOrigin.region}${RESET} ${C_MUTED}${systemState.networkContext.operatorOrigin.networkType}${RESET}`);
59
+ networkLines.push(`GATEWAY: ${C_ACCENT}${systemState.networkContext.targetInfrastructure.gatewayRegion}${RESET}`);
60
+ networkLines.push(`DATABASE: ${C_ACCENT}${systemState.networkContext.targetInfrastructure.databaseRegion}${RESET}`);
61
+ if (systemState.networkContext.targetInfrastructure.latencyClass === 'LOW') {
62
+ networkLines.push(`LATENCY: ${C_SUCCESS}LOW${RESET}`);
63
+ }
64
+ else if (systemState.networkContext.targetInfrastructure.latencyClass === 'MEDIUM') {
65
+ networkLines.push(`LATENCY: ${C_WARN}MEDIUM${RESET}`);
66
+ }
67
+ else {
68
+ networkLines.push(`LATENCY: ${C_ERROR}HIGH${RESET}`);
69
+ }
70
+ lines.push(Section('NETWORK & ORIGIN AWARENESS', networkLines));
71
+ lines.push('');
72
+ // INTEL BLOCK 3: ACTIVE INTELLIGENCE ASSETS
73
+ const assetLines = [];
74
+ const totalText = `TOTAL: ${C_ACCENT}${systemState.assetRegistrySummary.total}${RESET}`;
75
+ const activeText = systemState.assetRegistrySummary.active > 0
76
+ ? `ACTIVE: ${C_SUCCESS}${systemState.assetRegistrySummary.active}${RESET}`
77
+ : `ACTIVE: ${C_MUTED}${systemState.assetRegistrySummary.active}${RESET}`;
78
+ const idleText = `IDLE: ${C_MUTED}${systemState.assetRegistrySummary.idle}${RESET}`;
79
+ const errorText = systemState.assetRegistrySummary.error > 0
80
+ ? `ERROR: ${C_ERROR}${systemState.assetRegistrySummary.error}${RESET}`
81
+ : `ERROR: ${C_MUTED}${systemState.assetRegistrySummary.error}${RESET}`;
82
+ assetLines.push(`${totalText} ${activeText} ${idleText} ${errorText}`);
83
+ if (systemState.assetRegistrySummary.highlighted) {
84
+ if (systemState.assetRegistrySummary.highlighted.status === 'ACTIVE') {
85
+ assetLines.push(`HIGHLIGHTED: ${C_SUCCESS}${systemState.assetRegistrySummary.highlighted.name}${RESET} ${C_MUTED}ACTIVE${RESET}`);
86
+ }
87
+ else if (systemState.assetRegistrySummary.highlighted.status === 'ERROR') {
88
+ assetLines.push(`HIGHLIGHTED: ${C_ERROR}${systemState.assetRegistrySummary.highlighted.name}${RESET} ${C_MUTED}ERROR${RESET}`);
89
+ }
90
+ else {
91
+ assetLines.push(`HIGHLIGHTED: ${C_ACCENT}${systemState.assetRegistrySummary.highlighted.name}${RESET} ${C_MUTED}IDLE${RESET}`);
92
+ }
93
+ }
94
+ else {
95
+ assetLines.push(`${C_MUTED}No assets available${RESET}`);
96
+ }
97
+ lines.push(Section('ACTIVE INTELLIGENCE ASSETS', assetLines));
98
+ lines.push('');
99
+ // INTEL BLOCK 4: LIVE OPERATIONS FEED
100
+ const feedLines = [];
101
+ const recentOps = systemState.operationFeed.slice(-3).reverse(); // Last 3, newest first
102
+ if (recentOps.length > 0) {
103
+ recentOps.forEach(event => {
104
+ if (event.severity === 'critical' || event.type === 'ERROR_DETECTED') {
105
+ feedLines.push(`${C_ERROR}${event.type}${RESET} ${C_TEXT}${event.description}${RESET} ${C_MUTED}${formatRelativeTime(event.timestamp)}${RESET}`);
106
+ }
107
+ else if (event.severity === 'warning' || event.type === 'CONNECTION_LOST') {
108
+ feedLines.push(`${C_WARN}${event.type}${RESET} ${C_TEXT}${event.description}${RESET} ${C_MUTED}${formatRelativeTime(event.timestamp)}${RESET}`);
109
+ }
110
+ else if (event.type === 'RUN_COMPLETED') {
111
+ feedLines.push(`${C_SUCCESS}${event.type}${RESET} ${C_TEXT}${event.description}${RESET} ${C_MUTED}${formatRelativeTime(event.timestamp)}${RESET}`);
112
+ }
113
+ else {
114
+ feedLines.push(`${C_ACCENT}${event.type}${RESET} ${C_TEXT}${event.description}${RESET} ${C_MUTED}${formatRelativeTime(event.timestamp)}${RESET}`);
115
+ }
116
+ });
117
+ }
118
+ else {
119
+ feedLines.push(`${C_MUTED}No recent operations${RESET}`);
120
+ }
121
+ lines.push(Section('LIVE OPERATIONS FEED', feedLines));
122
+ lines.push('');
123
+ // INTEL BLOCK 5: CAPABILITY READINESS
124
+ const capabilityLines = [];
125
+ if (systemState.capabilityFlags.gateway === 'READY') {
126
+ capabilityLines.push(`GATEWAY: ${C_SUCCESS}READY${RESET}`);
127
+ }
128
+ else {
129
+ capabilityLines.push(`GATEWAY: ${C_WARN}DEGRADED${RESET}`);
130
+ }
131
+ if (systemState.capabilityFlags.database === 'READY') {
132
+ capabilityLines.push(`DATABASE: ${C_SUCCESS}READY${RESET}`);
133
+ }
134
+ else {
135
+ capabilityLines.push(`DATABASE: ${C_WARN}NOT_INITIALIZED${RESET}`);
136
+ }
137
+ capabilityLines.push(`MEMORY: ${C_ACCENT}${systemState.capabilityFlags.memoryLayer}${RESET}`);
138
+ capabilityLines.push(`SECURITY: ${C_ACCENT}${systemState.capabilityFlags.security}${RESET}`);
139
+ if (systemState.capabilityFlags.rateLimiting === 'ENABLED') {
140
+ capabilityLines.push(`RATE LIMIT: ${C_SUCCESS}ENABLED${RESET}`);
141
+ }
142
+ else {
143
+ capabilityLines.push(`RATE LIMIT: ${C_MUTED}DISABLED${RESET}`);
144
+ }
145
+ lines.push(Section('CAPABILITY READINESS', capabilityLines));
146
+ lines.push('');
147
+ // COMMAND SURFACE
148
+ const commandLines = [];
149
+ commandLines.push(`${C_LINK}start${RESET}`);
150
+ commandLines.push(`${C_LINK}deploy${RESET}`);
151
+ commandLines.push(`${C_LINK}inspect${RESET}`);
152
+ commandLines.push(`${C_LINK}metrics${RESET}`);
153
+ commandLines.push(`${C_LINK}system${RESET}`);
154
+ lines.push(Section('COMMAND SURFACE', commandLines));
155
+ lines.push('');
156
+ // StatusBar
157
+ const modeText = state.localMode ? 'LOCAL' : (state.gatewayConnected ? 'REMOTE' : 'OFFLINE');
158
+ const statusBar = StatusBar({
159
+ mode: modeText,
160
+ connected: state.gatewayConnected,
161
+ target: state.gatewayUrl ? state.gatewayUrl.replace(/^https?:\/\//, '').substring(0, 30) : undefined,
162
+ workspace: state.currentUser?.username,
163
+ lastAction: 'posture',
164
+ });
165
+ lines.push(statusBar);
166
+ lines.push('');
167
+ return lines.join('\n');
168
+ }
169
+ //# sourceMappingURL=intelligence-posture-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligence-posture-view.js","sourceRoot":"","sources":["../../src/ui/intelligence-posture-view.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@
4
4
  */
5
5
  /**
6
6
  * Header: consistent brand bar at top
7
+ * Phase 4: Authority, not decoration
7
8
  * Format: 4Runr | AI AGENT OPERATING SYSTEM | vX.Y.Z | [MODE]
9
+ * Strong separator, not decorative box
8
10
  */
9
11
  export declare function Header(version: string, mode?: 'LOCAL' | 'REMOTE'): string;
10
12
  /**
@@ -19,8 +21,9 @@ export declare function StatusBar(params: {
19
21
  lastAction?: string;
20
22
  }): string;
21
23
  /**
22
- * Section: clean blocks with separators
23
- * Structure: Title (caps) | Separator | Lines (indented)
24
+ * Section: clean blocks with strong separators
25
+ * Phase 4: Structural separators, not decorative
26
+ * Structure: Title (ALL CAPS) | Full-width separator | Lines (indented)
24
27
  */
25
28
  export declare function Section(title: string, lines: string[]): string;
26
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ui-primitives.d.ts","sourceRoot":"","sources":["../src/ui-primitives.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAKzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAChC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAYT;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAM9D;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM,CAuCvF;AAED;;;GAGG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAC3C,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAcR;AASD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,MAAe,GAAG;IAC1E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,CAmCA;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpE"}
1
+ {"version":3,"file":"ui-primitives.d.ts","sourceRoot":"","sources":["../src/ui-primitives.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAUzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAChC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAYT;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAe9D;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM,CAuCvF;AAED;;;GAGG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAC3C,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAcR;AASD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,MAAe,GAAG;IAC1E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,CAmCA;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpE"}