4runr-os 1.3.5 → 1.3.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.
- package/dist/ui/v3/commands/commandEngine.js +132 -96
- package/dist/ui/v3/commands/commandEngine.js.map +1 -1
- package/dist/ui/v3/config/gateway.d.ts +17 -14
- package/dist/ui/v3/config/gateway.d.ts.map +1 -1
- package/dist/ui/v3/config/gateway.js +18 -22
- package/dist/ui/v3/config/gateway.js.map +1 -1
- package/dist/ui/v3/state/defaultState.js +1 -1
- package/dist/ui/v3/state/defaultState.js.map +1 -1
- package/dist/ui/v3/state/uiStateBuilder.d.ts.map +1 -1
- package/dist/ui/v3/state/uiStateBuilder.js +7 -5
- package/dist/ui/v3/state/uiStateBuilder.js.map +1 -1
- package/dist/ui/v3/state/uiStateTypes.d.ts +4 -2
- package/dist/ui/v3/state/uiStateTypes.d.ts.map +1 -1
- package/dist/ui/v3/state/value.d.ts +16 -3
- package/dist/ui/v3/state/value.d.ts.map +1 -1
- package/dist/ui/v3/state/value.js +20 -2
- package/dist/ui/v3/state/value.js.map +1 -1
- package/dist/ui/v3/ui/panels/NetworkPanel.d.ts +12 -3
- package/dist/ui/v3/ui/panels/NetworkPanel.d.ts.map +1 -1
- package/dist/ui/v3/ui/panels/NetworkPanel.js +41 -16
- package/dist/ui/v3/ui/panels/NetworkPanel.js.map +1 -1
- package/dist/ui/v3/ui/phase1Runtime.d.ts.map +1 -1
- package/dist/ui/v3/ui/phase1Runtime.js +29 -31
- package/dist/ui/v3/ui/phase1Runtime.js.map +1 -1
- package/dist/ui/v3/v1Adapters/connect.d.ts +11 -8
- package/dist/ui/v3/v1Adapters/connect.d.ts.map +1 -1
- package/dist/ui/v3/v1Adapters/connect.js +56 -48
- package/dist/ui/v3/v1Adapters/connect.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* V1 Adapter: Gateway Connection
|
|
3
3
|
*
|
|
4
|
+
* Section 6.2: Gateway Connection Enforcement (FINAL, NON-NEGOTIABLE)
|
|
5
|
+
*
|
|
4
6
|
* Wraps V1 GatewayClient for connection management
|
|
5
7
|
* - No stdout writes
|
|
6
8
|
* - No UI imports
|
|
7
9
|
* - Returns structured { ok, data } or { ok, error }
|
|
8
|
-
* -
|
|
10
|
+
* - Always uses canonical gateway endpoint (no user-provided URL)
|
|
11
|
+
* - Enforces 5s timeout with AbortController
|
|
12
|
+
* - Maps failures to clear error codes
|
|
9
13
|
*/
|
|
10
14
|
import { GatewayClient } from '../../../gateway-client.js';
|
|
11
15
|
import { resolveGatewayUrl } from '../config/gateway.js';
|
|
@@ -91,50 +95,54 @@ function createClient(gatewayUrl, token, timeout) {
|
|
|
91
95
|
return new GatewayClient(config);
|
|
92
96
|
}
|
|
93
97
|
/**
|
|
94
|
-
* Try to connect to a specific gateway URL with 5s timeout
|
|
98
|
+
* Try to connect to a specific gateway URL with hard 5s timeout
|
|
99
|
+
* Section 6.2: Enforces real timeout with AbortController
|
|
95
100
|
* Returns success result or throws error
|
|
96
101
|
*/
|
|
97
102
|
async function tryConnect(gatewayUrl, token, timeoutMs = 5000) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
// Create AbortController for hard timeout enforcement
|
|
104
|
+
const abortController = new AbortController();
|
|
105
|
+
const timeoutId = setTimeout(() => {
|
|
106
|
+
abortController.abort();
|
|
107
|
+
}, timeoutMs);
|
|
108
|
+
try {
|
|
109
|
+
const client = createClient(gatewayUrl, token, timeoutMs);
|
|
110
|
+
// Note: GatewayClient uses axios which supports timeout, but we also use AbortController as safety net
|
|
111
|
+
await client.health();
|
|
112
|
+
clearTimeout(timeoutId);
|
|
113
|
+
return {
|
|
114
|
+
endpoint: gatewayUrl,
|
|
115
|
+
status: "CONNECTED",
|
|
116
|
+
ts: Date.now()
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
clearTimeout(timeoutId);
|
|
121
|
+
// Map AbortController abort to timeout error
|
|
122
|
+
if (error?.name === 'AbortError' || error?.code === 'ECONNABORTED') {
|
|
123
|
+
const timeoutError = new Error('Gateway unreachable (ETIMEDOUT)');
|
|
124
|
+
timeoutError.code = 'ETIMEDOUT';
|
|
125
|
+
throw timeoutError;
|
|
126
|
+
}
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
105
129
|
}
|
|
106
130
|
/**
|
|
107
|
-
* Connect to gateway
|
|
131
|
+
* Connect to gateway
|
|
132
|
+
*
|
|
133
|
+
* Section 6.2: Gateway Connection Enforcement (FINAL, NON-NEGOTIABLE)
|
|
108
134
|
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* 2. If saved URL exists, try it first
|
|
112
|
-
* 3. Otherwise, try common endpoints automatically
|
|
113
|
-
* 4. Save successful endpoint for next time
|
|
135
|
+
* Always uses canonical Gateway endpoint (no user-provided URL).
|
|
136
|
+
* Ignores endpointUrl parameter if provided (for backward compatibility only).
|
|
114
137
|
*
|
|
115
|
-
* @param endpointUrl
|
|
138
|
+
* @param endpointUrl Ignored - always uses resolveGatewayUrl() (kept for backward compatibility)
|
|
116
139
|
*/
|
|
117
140
|
export async function connect(endpointUrl) {
|
|
141
|
+
// Section 6.2: Always use canonical endpoint (ignore endpointUrl parameter)
|
|
142
|
+
const canonicalEndpoint = resolveGatewayUrl();
|
|
118
143
|
// Load auth token once
|
|
119
144
|
const token = loadAuthToken();
|
|
120
|
-
//
|
|
121
|
-
if (endpointUrl) {
|
|
122
|
-
try {
|
|
123
|
-
const result = await tryConnect(endpointUrl, token, 5000);
|
|
124
|
-
cachedClient = createClient(endpointUrl, token);
|
|
125
|
-
// Save successful URL for next time
|
|
126
|
-
saveGatewayUrl(endpointUrl);
|
|
127
|
-
return { ok: true, data: result };
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
// Handle error below
|
|
131
|
-
return handleConnectionError(error, endpointUrl);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Canonical endpoint resolution (no auto-discovery - single target)
|
|
135
|
-
// Priority: GATEWAY_URL env var → local dev → production
|
|
136
|
-
const canonicalEndpoint = resolveGatewayUrl();
|
|
137
|
-
// Try canonical endpoint with 5s timeout
|
|
145
|
+
// Try canonical endpoint with 5s hard timeout
|
|
138
146
|
try {
|
|
139
147
|
const result = await tryConnect(canonicalEndpoint, token, 5000);
|
|
140
148
|
cachedClient = createClient(canonicalEndpoint, token);
|
|
@@ -204,7 +212,7 @@ function handleConnectionError(error, attemptedUrl) {
|
|
|
204
212
|
};
|
|
205
213
|
}
|
|
206
214
|
}
|
|
207
|
-
//
|
|
215
|
+
// Section 6.2: Map timeout errors to clear error codes
|
|
208
216
|
const errorStr = errorMessage.toLowerCase();
|
|
209
217
|
if (error?.code === 'ECONNABORTED' ||
|
|
210
218
|
error?.code === 'ETIMEDOUT' ||
|
|
@@ -214,22 +222,22 @@ function handleConnectionError(error, attemptedUrl) {
|
|
|
214
222
|
return {
|
|
215
223
|
ok: false,
|
|
216
224
|
error: {
|
|
217
|
-
code: '
|
|
218
|
-
message:
|
|
219
|
-
nextAction: 'Start Gateway
|
|
225
|
+
code: 'ETIMEDOUT',
|
|
226
|
+
message: 'Gateway unreachable (ECONNREFUSED | ETIMEDOUT | ECONNABORTED)',
|
|
227
|
+
nextAction: 'Start Gateway service and run "connect"'
|
|
220
228
|
}
|
|
221
229
|
};
|
|
222
230
|
}
|
|
223
|
-
//
|
|
231
|
+
// Section 6.2: Map connection refused to clear error code
|
|
224
232
|
if (error?.code === 'ECONNREFUSED' ||
|
|
225
233
|
errorStr.includes('econnrefused') ||
|
|
226
234
|
errorStr.includes('refused')) {
|
|
227
235
|
return {
|
|
228
236
|
ok: false,
|
|
229
237
|
error: {
|
|
230
|
-
code: '
|
|
231
|
-
message:
|
|
232
|
-
nextAction: 'Start Gateway
|
|
238
|
+
code: 'ECONNREFUSED',
|
|
239
|
+
message: 'Gateway unreachable (ECONNREFUSED | ETIMEDOUT | ECONNABORTED)',
|
|
240
|
+
nextAction: 'Start Gateway service and run "connect"'
|
|
233
241
|
}
|
|
234
242
|
};
|
|
235
243
|
}
|
|
@@ -244,18 +252,18 @@ function handleConnectionError(error, attemptedUrl) {
|
|
|
244
252
|
ok: false,
|
|
245
253
|
error: {
|
|
246
254
|
code: 'GATEWAY_UNREACHABLE',
|
|
247
|
-
message:
|
|
248
|
-
nextAction: '
|
|
255
|
+
message: 'Gateway unreachable (ECONNREFUSED | ETIMEDOUT | ECONNABORTED)',
|
|
256
|
+
nextAction: 'Start Gateway service and run "connect"'
|
|
249
257
|
}
|
|
250
258
|
};
|
|
251
259
|
}
|
|
252
|
-
// Generic connection failure (normalized message
|
|
260
|
+
// Section 6.2: Generic connection failure (normalized message)
|
|
253
261
|
return {
|
|
254
262
|
ok: false,
|
|
255
263
|
error: {
|
|
256
|
-
code:
|
|
257
|
-
message:
|
|
258
|
-
nextAction: 'Start Gateway
|
|
264
|
+
code: errorCode,
|
|
265
|
+
message: 'Gateway unreachable (ECONNREFUSED | ETIMEDOUT | ECONNABORTED)',
|
|
266
|
+
nextAction: 'Start Gateway service and run "connect"'
|
|
259
267
|
}
|
|
260
268
|
};
|
|
261
269
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../../src/ui/v3/v1Adapters/connect.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../../src/ui/v3/v1Adapters/connect.ts"],"names":[],"mappings":"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"}
|