4runr-os 2.8.6 → 2.8.7

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.
@@ -486,6 +486,9 @@ async function handleGatewayCommand(ctx, action) {
486
486
  case 'status':
487
487
  await handleGatewayStatus(ctx);
488
488
  break;
489
+ case 'detect':
490
+ await handleGatewayDetect(ctx);
491
+ break;
489
492
  default:
490
493
  ctx.server.sendError(ctx.ws, ctx.id, `Unknown gateway action: ${action}`);
491
494
  }
@@ -551,6 +554,50 @@ async function handleGatewayStatus(ctx) {
551
554
  },
552
555
  });
553
556
  }
557
+ async function handleGatewayDetect(ctx) {
558
+ if (!ctx.data?.url) {
559
+ ctx.server.sendError(ctx.ws, ctx.id, 'Gateway URL is required for detection');
560
+ return;
561
+ }
562
+ const url = ctx.data.url;
563
+ const isLocalhost = url.includes('localhost') || url.includes('127.0.0.1') || url.includes('0.0.0.0');
564
+ try {
565
+ // Try to connect to Gateway and check health
566
+ const client = new GatewayClient({ gatewayUrl: url, timeout: 5000 });
567
+ const health = await client.health();
568
+ // Gateway is running and healthy
569
+ ctx.server.sendResponse(ctx.ws, ctx.id, {
570
+ success: true,
571
+ data: {
572
+ available: true,
573
+ running: true,
574
+ url: url,
575
+ health: health,
576
+ isLocalhost: isLocalhost,
577
+ localBundleExists: isLocalhost ? checkLocalBundleExists() : false,
578
+ },
579
+ });
580
+ }
581
+ catch (error) {
582
+ // Gateway is not running or not reachable
583
+ // If it's localhost, check if local bundle exists
584
+ const localBundleExists = isLocalhost ? checkLocalBundleExists() : false;
585
+ ctx.server.sendResponse(ctx.ws, ctx.id, {
586
+ success: true,
587
+ data: {
588
+ available: false,
589
+ running: false,
590
+ url: url,
591
+ error: error.message || 'Gateway not reachable',
592
+ isLocalhost: isLocalhost,
593
+ localBundleExists: localBundleExists,
594
+ suggestion: localBundleExists
595
+ ? 'Local Gateway bundle detected but not running. Start it to connect.'
596
+ : 'Gateway not found. Use Setup Portal to configure Gateway.',
597
+ },
598
+ });
599
+ }
600
+ }
554
601
  // ============================================================
555
602
  // HELPER FUNCTIONS
556
603
  // ============================================================
@@ -562,6 +609,36 @@ function getConfigDir() {
562
609
  }
563
610
  return configDir;
564
611
  }
612
+ /**
613
+ * Check if local Gateway bundle exists
614
+ * Returns true if Gateway files are present in the installation
615
+ */
616
+ function checkLocalBundleExists() {
617
+ try {
618
+ // Check for Gateway app directory
619
+ const gatewayPath = path.resolve(__dirname, '../../apps/gateway');
620
+ if (fs.existsSync(gatewayPath)) {
621
+ // Check for key Gateway files
622
+ const packageJsonPath = path.join(gatewayPath, 'package.json');
623
+ const indexPath = path.join(gatewayPath, 'dist/index.js');
624
+ if (fs.existsSync(packageJsonPath)) {
625
+ return true;
626
+ }
627
+ if (fs.existsSync(indexPath)) {
628
+ return true;
629
+ }
630
+ }
631
+ // Check for bundled Gateway in package
632
+ const bundledGatewayPath = path.resolve(__dirname, '../gateway');
633
+ if (fs.existsSync(bundledGatewayPath)) {
634
+ return true;
635
+ }
636
+ return false;
637
+ }
638
+ catch {
639
+ return false;
640
+ }
641
+ }
565
642
  function loadCustomAgents() {
566
643
  const agents = new Map();
567
644
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"tui-handlers.js","sourceRoot":"","sources":["../src/tui-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-handlers.js","sourceRoot":"","sources":["../src/tui-handlers.ts"],"names":[],"mappings":"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"}
@@ -46,10 +46,36 @@ impl OperationMode {
46
46
 
47
47
  #[derive(Debug, Clone, PartialEq)]
48
48
  pub enum PortalField {
49
+ GatewayType,
49
50
  GatewayUrl,
50
51
  Username,
51
52
  }
52
53
 
54
+ #[derive(Debug, Clone, PartialEq)]
55
+ pub enum GatewayType {
56
+ FourRunrServer, // External 4Runr cloud server
57
+ LocalBundle, // Local Gateway bundle (included with Full OS)
58
+ CustomUrl, // User's own Gateway server
59
+ }
60
+
61
+ impl GatewayType {
62
+ pub fn as_str(&self) -> &str {
63
+ match self {
64
+ GatewayType::FourRunrServer => "4Runr Server",
65
+ GatewayType::LocalBundle => "Local Bundle",
66
+ GatewayType::CustomUrl => "Custom URL",
67
+ }
68
+ }
69
+
70
+ pub fn default_url(&self) -> &str {
71
+ match self {
72
+ GatewayType::FourRunrServer => "https://gateway.4runr.com",
73
+ GatewayType::LocalBundle => "http://localhost:3001",
74
+ GatewayType::CustomUrl => "",
75
+ }
76
+ }
77
+ }
78
+
53
79
  #[derive(Debug, Clone)]
54
80
  pub struct ConnectionPortalState {
55
81
  pub gateway_url: String,
@@ -58,6 +84,24 @@ pub struct ConnectionPortalState {
58
84
  pub connecting: bool,
59
85
  pub error: Option<String>,
60
86
  pub last_successful_url: Option<String>,
87
+ pub selected_gateway_type: GatewayType,
88
+ pub detecting: bool,
89
+ pub detection_result: Option<DetectionResult>,
90
+ }
91
+
92
+ #[derive(Debug, Clone)]
93
+ pub struct DetectionResult {
94
+ pub available: bool,
95
+ pub running: bool,
96
+ pub is_localhost: bool,
97
+ pub local_bundle_exists: bool,
98
+ pub suggestion: Option<String>,
99
+ pub error: Option<String>,
100
+ }
101
+
102
+ #[derive(Debug, Clone)]
103
+ pub struct SetupPortalState {
104
+ pub selected_gateway_type: GatewayType,
61
105
  }
62
106
 
63
107
  impl Default for ConnectionPortalState {
@@ -65,10 +109,13 @@ impl Default for ConnectionPortalState {
65
109
  Self {
66
110
  gateway_url: "http://localhost:3001".to_string(),
67
111
  username: String::new(),
68
- focused_field: PortalField::GatewayUrl,
112
+ focused_field: PortalField::GatewayType,
69
113
  connecting: false,
70
114
  error: None,
71
115
  last_successful_url: None,
116
+ selected_gateway_type: GatewayType::LocalBundle,
117
+ detecting: false,
118
+ detection_result: None,
72
119
  }
73
120
  }
74
121
  }
@@ -77,16 +124,32 @@ impl ConnectionPortalState {
77
124
  pub fn reset(&mut self) {
78
125
  self.gateway_url = self.last_successful_url.clone().unwrap_or_else(|| "http://localhost:3001".to_string());
79
126
  self.username = String::new();
80
- self.focused_field = PortalField::GatewayUrl;
127
+ self.focused_field = PortalField::GatewayType;
81
128
  self.connecting = false;
82
129
  self.error = None;
130
+ self.selected_gateway_type = GatewayType::LocalBundle;
131
+ self.detecting = false;
132
+ self.detection_result = None;
83
133
  }
84
134
 
85
135
  pub fn toggle_field(&mut self) {
86
136
  self.focused_field = match self.focused_field {
137
+ PortalField::GatewayType => PortalField::GatewayUrl,
87
138
  PortalField::GatewayUrl => PortalField::Username,
88
- PortalField::Username => PortalField::GatewayUrl,
139
+ PortalField::Username => PortalField::GatewayType,
140
+ };
141
+ }
142
+
143
+ pub fn cycle_gateway_type(&mut self) {
144
+ self.selected_gateway_type = match self.selected_gateway_type {
145
+ GatewayType::LocalBundle => GatewayType::FourRunrServer,
146
+ GatewayType::FourRunrServer => GatewayType::CustomUrl,
147
+ GatewayType::CustomUrl => GatewayType::LocalBundle,
89
148
  };
149
+ // Update URL when type changes
150
+ self.gateway_url = self.selected_gateway_type.default_url().to_string();
151
+ // Clear detection result when type changes
152
+ self.detection_result = None;
90
153
  }
91
154
  }
92
155
 
@@ -159,12 +222,15 @@ pub struct AppState {
159
222
  pub settings: SettingsState,
160
223
  pub agent_list: AgentListState,
161
224
  pub connection_portal: ConnectionPortalState,
225
+ pub setup_portal: SetupPortalState,
162
226
 
163
227
  // Command tracking for response handling (Step 5.1)
164
228
  pub pending_agent_create_id: Option<String>,
165
229
  pub pending_agent_list_id: Option<String>,
166
230
  pub pending_agent_delete_id: Option<String>,
167
231
  pub pending_gateway_connect_id: Option<String>,
232
+ pub pending_gateway_detect_id: Option<String>,
233
+ pub pending_bundle_check_id: Option<String>,
168
234
 
169
235
  // Deletion confirmation (Step 5.5)
170
236
  pub agent_delete_requested: bool,
@@ -231,10 +297,13 @@ impl Default for AppState {
231
297
  settings: SettingsState::default(),
232
298
  agent_list: AgentListState::default(),
233
299
  connection_portal: ConnectionPortalState::default(),
300
+ setup_portal: SetupPortalState::default(),
234
301
  pending_agent_create_id: None,
235
302
  pending_agent_list_id: None,
236
303
  pending_agent_delete_id: None,
237
304
  pending_gateway_connect_id: None,
305
+ pending_gateway_detect_id: None,
306
+ pending_bundle_check_id: None,
238
307
  agent_delete_requested: false,
239
308
  operation_mode: OperationMode::Local,
240
309
  cache: Cache::new().ok(),
@@ -243,6 +312,30 @@ impl Default for AppState {
243
312
  }
244
313
  }
245
314
 
315
+ #[derive(Debug, Clone)]
316
+ pub struct SetupPortalState {
317
+ pub selected_gateway_type: GatewayType,
318
+ pub bundle_checking: bool,
319
+ pub bundle_check_result: Option<BundleCheckResult>,
320
+ }
321
+
322
+ #[derive(Debug, Clone)]
323
+ pub struct BundleCheckResult {
324
+ pub exists: bool,
325
+ pub running: bool,
326
+ pub error: Option<String>,
327
+ }
328
+
329
+ impl Default for SetupPortalState {
330
+ fn default() -> Self {
331
+ Self {
332
+ selected_gateway_type: GatewayType::LocalBundle,
333
+ bundle_checking: false,
334
+ bundle_check_result: None,
335
+ }
336
+ }
337
+ }
338
+
246
339
  #[derive(Debug, Clone)]
247
340
  pub struct AgentListState {
248
341
  pub agents: Vec<AgentInfo>,
@@ -457,6 +550,11 @@ impl App {
457
550
  return self.handle_connection_portal_input(key, ws_client);
458
551
  }
459
552
 
553
+ // === SETUP PORTAL INPUT HANDLING ===
554
+ if self.state.navigation.current_screen() == &Screen::SetupPortal {
555
+ return self.handle_setup_portal_input(key, ws_client);
556
+ }
557
+
460
558
  // === AGENT LIST INPUT HANDLING ===
461
559
  if self.state.navigation.current_screen() == &Screen::AgentList {
462
560
  return self.handle_agent_list_input(key);
@@ -593,6 +691,10 @@ impl App {
593
691
  self.state.connection_portal.reset();
594
692
  self.state.logs.push_back("[NAV] Opening Connection Portal...".into());
595
693
  }
694
+ "setup" | "setup gateway" | "setup portal" => {
695
+ self.push_overlay(Screen::SetupPortal);
696
+ self.state.logs.push_back("[NAV] Opening Setup Portal...".into());
697
+ }
596
698
  "disconnect" => {
597
699
  // Disconnect from Gateway
598
700
  if let Some(ws) = ws_client {
@@ -762,6 +864,10 @@ impl App {
762
864
  use crate::ui::connection_portal;
763
865
  connection_portal::render(f, &self.state);
764
866
  }
867
+ Screen::SetupPortal => {
868
+ use crate::ui::setup_portal;
869
+ setup_portal::render(f, &self.state);
870
+ }
765
871
  Screen::Confirmation { message, action } => {
766
872
  // TODO: Implement confirmation popup
767
873
  // For now, just render the base screen
@@ -1473,8 +1579,16 @@ impl App {
1473
1579
  }
1474
1580
  }
1475
1581
 
1476
- // Disable input if connecting
1477
- if self.state.connection_portal.connecting {
1582
+ // Handle F1 - Open Setup Portal (always available, even during connecting/detecting)
1583
+ if key.code == KeyCode::F(1) {
1584
+ self.add_log("[NAV] Opening Setup Portal...".to_string());
1585
+ self.push_overlay(Screen::SetupPortal);
1586
+ self.request_render("open_setup_portal");
1587
+ return Ok(false);
1588
+ }
1589
+
1590
+ // Disable other input if connecting or detecting
1591
+ if self.state.connection_portal.connecting || self.state.connection_portal.detecting {
1478
1592
  return Ok(false);
1479
1593
  }
1480
1594
 
@@ -1492,16 +1606,11 @@ impl App {
1492
1606
  self.request_render("portal_field_toggle");
1493
1607
  }
1494
1608
 
1495
- // Enter - Connect to Gateway
1609
+ // Enter - Detect Gateway first, then connect
1496
1610
  KeyCode::Enter => {
1497
1611
  let url = self.state.connection_portal.gateway_url.clone();
1498
- let username = if self.state.connection_portal.username.is_empty() {
1499
- None
1500
- } else {
1501
- Some(self.state.connection_portal.username.clone())
1502
- };
1503
1612
 
1504
- // Validate URL format
1613
+ // Validate URL format first
1505
1614
  if url.is_empty() {
1506
1615
  self.state.connection_portal.error = Some("Gateway URL is required".to_string());
1507
1616
  self.request_render("portal_error");
@@ -1514,47 +1623,45 @@ impl App {
1514
1623
  return Ok(false);
1515
1624
  }
1516
1625
 
1517
- // Set connecting state
1518
- self.state.connection_portal.connecting = true;
1626
+ // First, detect if Gateway is available
1627
+ self.state.connection_portal.detecting = true;
1519
1628
  self.state.connection_portal.error = None;
1629
+ self.state.connection_portal.detection_result = None;
1520
1630
 
1521
- // Send gateway.connect command
1631
+ // Send gateway.detect command
1522
1632
  if let Some(ws) = ws_client {
1523
- let connect_data = if let Some(username) = username {
1524
- serde_json::json!({
1525
- "url": url,
1526
- "username": username
1527
- })
1528
- } else {
1529
- serde_json::json!({
1530
- "url": url
1531
- })
1532
- };
1633
+ let detect_data = serde_json::json!({
1634
+ "url": url
1635
+ });
1533
1636
 
1534
- match ws.send_command("gateway.connect", Some(connect_data)) {
1637
+ match ws.send_command("gateway.detect", Some(detect_data)) {
1535
1638
  Ok(id) => {
1536
1639
  let short_id = &id[id.len().saturating_sub(8)..];
1537
- self.add_log(format!("[GATEWAY] Connecting to {} (id: {})", url, short_id));
1538
- self.state.pending_gateway_connect_id = Some(id);
1640
+ self.add_log(format!("[GATEWAY] Detecting Gateway at {} (id: {})", url, short_id));
1641
+ self.state.pending_gateway_detect_id = Some(id);
1539
1642
  }
1540
1643
  Err(e) => {
1541
- self.state.connection_portal.connecting = false;
1542
- self.state.connection_portal.error = Some(format!("Failed to send command: {}", e));
1543
- self.add_log(format!("[ERROR] Gateway connection failed: {}", e));
1644
+ self.state.connection_portal.detecting = false;
1645
+ self.state.connection_portal.error = Some(format!("Failed to detect Gateway: {}", e));
1646
+ self.add_log(format!("[ERROR] Gateway detection failed: {}", e));
1544
1647
  }
1545
1648
  }
1546
1649
  } else {
1547
- self.state.connection_portal.connecting = false;
1650
+ self.state.connection_portal.detecting = false;
1548
1651
  self.state.connection_portal.error = Some("WebSocket not connected".to_string());
1549
- self.add_log("[ERROR] WebSocket not connected. Cannot connect to Gateway.".to_string());
1652
+ self.add_log("[ERROR] WebSocket not connected. Cannot detect Gateway.".to_string());
1550
1653
  }
1551
1654
 
1552
- self.request_render("portal_connect");
1655
+ self.request_render("portal_detect");
1553
1656
  }
1554
1657
 
1555
1658
  // Typing - edit focused field
1556
1659
  KeyCode::Char(c) => {
1557
1660
  match self.state.connection_portal.focused_field {
1661
+ PortalField::GatewayType => {
1662
+ // Cycle through Gateway types with any key press
1663
+ self.state.connection_portal.cycle_gateway_type();
1664
+ }
1558
1665
  PortalField::GatewayUrl => {
1559
1666
  self.state.connection_portal.gateway_url.push(c);
1560
1667
  }
@@ -1569,6 +1676,9 @@ impl App {
1569
1676
  // Backspace - delete character
1570
1677
  KeyCode::Backspace => {
1571
1678
  match self.state.connection_portal.focused_field {
1679
+ PortalField::GatewayType => {
1680
+ // No backspace action for type selector
1681
+ }
1572
1682
  PortalField::GatewayUrl => {
1573
1683
  self.state.connection_portal.gateway_url.pop();
1574
1684
  }
@@ -1585,5 +1695,105 @@ impl App {
1585
1695
 
1586
1696
  Ok(false)
1587
1697
  }
1698
+
1699
+ // ============================================================
1700
+ // SETUP PORTAL INPUT HANDLING
1701
+ // ============================================================
1702
+
1703
+ fn handle_setup_portal_input(&mut self, key: KeyEvent, ws_client: Option<&WebSocketClient>) -> antml::Result<bool> {
1704
+ match key.code {
1705
+ // ESC - Cancel and close portal
1706
+ KeyCode::Esc => {
1707
+ self.pop_overlay();
1708
+ self.add_log("[NAV] Setup Portal closed".to_string());
1709
+ self.request_render("setup_portal_close");
1710
+ }
1711
+
1712
+ // F2 - Go directly to Connection Portal
1713
+ KeyCode::F(2) => {
1714
+ self.pop_overlay();
1715
+ self.push_overlay(Screen::ConnectionPortal);
1716
+ self.add_log("[NAV] Opening Connection Portal...".to_string());
1717
+ self.request_render("open_connection_portal");
1718
+ }
1719
+
1720
+ // Disable other input if checking
1721
+ _ if self.state.setup_portal.bundle_checking => {
1722
+ return Ok(false);
1723
+ }
1724
+
1725
+ // Up/Down - Navigate options
1726
+ KeyCode::Up => {
1727
+ self.state.setup_portal.selected_gateway_type = match self.state.setup_portal.selected_gateway_type {
1728
+ GatewayType::FourRunrServer => GatewayType::LocalBundle,
1729
+ GatewayType::LocalBundle => GatewayType::CustomUrl,
1730
+ GatewayType::CustomUrl => GatewayType::CustomUrl, // Stay at bottom
1731
+ };
1732
+ self.request_render("setup_portal_nav");
1733
+ }
1734
+
1735
+ KeyCode::Down => {
1736
+ self.state.setup_portal.selected_gateway_type = match self.state.setup_portal.selected_gateway_type {
1737
+ GatewayType::LocalBundle => GatewayType::FourRunrServer,
1738
+ GatewayType::FourRunrServer => GatewayType::CustomUrl,
1739
+ GatewayType::CustomUrl => GatewayType::LocalBundle, // Wrap to top
1740
+ };
1741
+ self.request_render("setup_portal_nav");
1742
+ }
1743
+
1744
+ // Enter - Proceed with selected option
1745
+ KeyCode::Enter => {
1746
+ match self.state.setup_portal.selected_gateway_type {
1747
+ GatewayType::LocalBundle => {
1748
+ // Check if bundle exists first
1749
+ self.state.setup_portal.bundle_checking = true;
1750
+ self.state.setup_portal.bundle_check_result = None;
1751
+ self.add_log("[SETUP] Checking Local Bundle availability...".to_string());
1752
+
1753
+ // Send gateway.detect command to check localhost:3001
1754
+ if let Some(ws) = ws_client {
1755
+ let detect_data = serde_json::json!({
1756
+ "url": "http://localhost:3001"
1757
+ });
1758
+
1759
+ match ws.send_command("gateway.detect", Some(detect_data)) {
1760
+ Ok(id) => {
1761
+ self.state.pending_bundle_check_id = Some(id);
1762
+ }
1763
+ Err(e) => {
1764
+ self.state.setup_portal.bundle_checking = false;
1765
+ self.add_log(format!("[ERROR] Failed to check bundle: {}", e));
1766
+ }
1767
+ }
1768
+ } else {
1769
+ self.state.setup_portal.bundle_checking = false;
1770
+ self.add_log("[ERROR] WebSocket not connected".to_string());
1771
+ }
1772
+ }
1773
+ GatewayType::FourRunrServer => {
1774
+ // Pre-fill 4Runr Server URL and open connection portal
1775
+ self.state.connection_portal.selected_gateway_type = GatewayType::FourRunrServer;
1776
+ self.state.connection_portal.gateway_url = "https://gateway.4runr.com".to_string();
1777
+ self.add_log("[SETUP] 4Runr Server selected".to_string());
1778
+ self.pop_overlay();
1779
+ self.push_overlay(Screen::ConnectionPortal);
1780
+ }
1781
+ GatewayType::CustomUrl => {
1782
+ // Open connection portal with custom URL selected
1783
+ self.state.connection_portal.selected_gateway_type = GatewayType::CustomUrl;
1784
+ self.state.connection_portal.gateway_url = String::new();
1785
+ self.add_log("[SETUP] Custom URL selected".to_string());
1786
+ self.pop_overlay();
1787
+ self.push_overlay(Screen::ConnectionPortal);
1788
+ }
1789
+ }
1790
+ self.request_render("setup_portal_proceed");
1791
+ }
1792
+
1793
+ _ => {}
1794
+ }
1795
+
1796
+ Ok(false)
1797
+ }
1588
1798
  }
1589
1799