@fentaris/edge 0.2.1 → 0.3.0
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/agent.d.ts +8 -3
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +99 -17
- package/dist/agent.js.map +1 -1
- package/dist/cli.d.ts +7 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +90 -5
- package/dist/cli.js.map +1 -1
- package/dist/daemon.d.ts +67 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +244 -0
- package/dist/daemon.js.map +1 -0
- package/dist/enrollment.d.ts +12 -1
- package/dist/enrollment.d.ts.map +1 -1
- package/dist/enrollment.js +27 -3
- package/dist/enrollment.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -3
- package/dist/index.js.map +1 -1
- package/dist/installation.d.ts +232 -0
- package/dist/installation.d.ts.map +1 -0
- package/dist/installation.js +897 -0
- package/dist/installation.js.map +1 -0
- package/dist/localControl.d.ts +50 -0
- package/dist/localControl.d.ts.map +1 -0
- package/dist/localControl.js +148 -0
- package/dist/localControl.js.map +1 -0
- package/dist/platform.d.ts +3 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +19 -8
- package/dist/platform.js.map +1 -1
- package/dist/redaction.d.ts +2 -0
- package/dist/redaction.d.ts.map +1 -1
- package/dist/redaction.js +8 -0
- package/dist/redaction.js.map +1 -1
- package/dist/runtime.d.ts +27 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +189 -15
- package/dist/runtime.js.map +1 -1
- package/dist/service.d.ts +96 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +144 -0
- package/dist/service.js.map +1 -0
- package/dist/setup.d.ts +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +9 -2
- package/dist/setup.js.map +1 -1
- package/package.json +3 -3
package/dist/agent.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type EdgeObservedFacts } from "@fentaris/core";
|
|
2
|
+
import { EdgeEnrollmentService, type DeviceAuthorizationRequest, type EdgeJoinMetadata, type EdgeConnection, type EdgeConnectionClient } from "./enrollment.js";
|
|
2
3
|
import { type EdgePlatform } from "./platform.js";
|
|
3
|
-
import { type EdgeConnectionRuntime, type EdgeRuntimeSummary, type EdgeRuntimeSummaryProvider } from "./runtime.js";
|
|
4
|
+
import { type EdgeConnectionRuntime, type EdgeRuntimeSummary, type EdgeRuntimeSummaryProvider, type EdgeInstallationLocalControl } from "./runtime.js";
|
|
4
5
|
export type { EdgeRuntimeSummary, EdgeRuntimeSummaryProvider } from "./runtime.js";
|
|
5
6
|
export interface EdgeAgentStatus extends EdgeRuntimeSummary {
|
|
6
7
|
readonly enrolled: boolean;
|
|
@@ -16,16 +17,20 @@ export interface EdgeAgentOptions {
|
|
|
16
17
|
platform: EdgePlatform;
|
|
17
18
|
runtime?: EdgeConnectionRuntime;
|
|
18
19
|
runtimeSummary?: EdgeRuntimeSummaryProvider;
|
|
20
|
+
observedFacts?: () => EdgeObservedFacts;
|
|
19
21
|
}
|
|
20
22
|
/** Enrollment and connection lifecycle used by the CLI and embedders. */
|
|
21
23
|
export declare class EdgeAgent {
|
|
22
24
|
private readonly options;
|
|
23
25
|
private active?;
|
|
24
26
|
constructor(options: EdgeAgentOptions);
|
|
25
|
-
login(): Promise<import("./enrollment.js").EdgeLoginResult>;
|
|
27
|
+
login(metadata?: EdgeJoinMetadata): Promise<import("./enrollment.js").EdgeLoginResult>;
|
|
26
28
|
connect(): Promise<void>;
|
|
27
29
|
reconnect(): Promise<void>;
|
|
30
|
+
waitUntilDisconnected(): Promise<void>;
|
|
31
|
+
isConnected(): boolean;
|
|
28
32
|
status(): Promise<EdgeAgentStatus>;
|
|
33
|
+
installationControl(): EdgeInstallationLocalControl | undefined;
|
|
29
34
|
disconnect(): Promise<void>;
|
|
30
35
|
revoke(): Promise<void>;
|
|
31
36
|
}
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EAGrB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAuBtB,YAAY,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,qBAAqB,CAAC;IAClC,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,iBAAiB,CAAC;CACzC;AAED,yEAAyE;AACzE,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,MAAM,CAAC,CAAiB;gBAEH,OAAO,EAAE,gBAAgB;IAEhD,KAAK,CAAC,QAAQ,GAAE,gBAAqB;IAMrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5C,WAAW,IAAI,OAAO;IAIhB,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAoBxC,mBAAmB,IAAI,4BAA4B,GAAG,SAAS;IAIzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAM9B;AAED,6EAA6E;AAC7E,qBAAa,6BAA8B,YAAW,oBAAoB;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAuC;IAEjG,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAwJ9F;AAYD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAuE9E"}
|
package/dist/agent.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { randomBytes, sign } from "node:crypto";
|
|
2
|
-
import { hostname } from "node:os";
|
|
2
|
+
import { arch, hostname, platform as operatingSystem } from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { EDGE_PROTOCOL_VERSION, edgeError, parseEdgeProtocolMessage, } from "@fentaris/core";
|
|
4
|
+
import { EDGE_PROTOCOL_VERSION, EDGE_SUPPORTED_PROTOCOL_VERSIONS, edgeError, InMemoryInstallationMutationLock, parseEdgeProtocolMessage, } from "@fentaris/core";
|
|
5
5
|
import { EdgeEnrollmentService, HttpDeviceAuthorizationProvider, HttpEdgeEnrollmentClient, } from "./enrollment.js";
|
|
6
6
|
import { ProtectedJsonStore, nodeEdgePlatform, } from "./platform.js";
|
|
7
7
|
import { EdgeAgentRuntime, } from "./runtime.js";
|
|
8
8
|
import { LocalSetupManager, NodeTerminalSetupPrompter, TerminalSetupProvider, } from "./setup.js";
|
|
9
9
|
import { EdgeWorkloadSupervisor, ExecutableAllowlistPolicy, } from "./supervisor.js";
|
|
10
10
|
import { StdioEdgeWorkloadFactory } from "./stdioWorkload.js";
|
|
11
|
+
import { BoundedInstallerRunner, InstallationConsentManager, InstallationCoordinator, ManagedInstallationSourceResolver, ProtectedInstallationState, commandIsolationAdapter, createDefaultInstallationProviders, } from "./installation.js";
|
|
11
12
|
/** Enrollment and connection lifecycle used by the CLI and embedders. */
|
|
12
13
|
export class EdgeAgent {
|
|
13
14
|
options;
|
|
@@ -15,8 +16,8 @@ export class EdgeAgent {
|
|
|
15
16
|
constructor(options) {
|
|
16
17
|
this.options = options;
|
|
17
18
|
}
|
|
18
|
-
async login() {
|
|
19
|
-
const login = await this.options.enrollment.login();
|
|
19
|
+
async login(metadata = {}) {
|
|
20
|
+
const login = await this.options.enrollment.login(metadata);
|
|
20
21
|
await this.connect();
|
|
21
22
|
return login;
|
|
22
23
|
}
|
|
@@ -33,6 +34,7 @@ export class EdgeAgent {
|
|
|
33
34
|
publicKey: credentials.keyPair.publicKey,
|
|
34
35
|
privateKey: credentials.keyPair.privateKey,
|
|
35
36
|
runtime: this.options.runtime,
|
|
37
|
+
observedFacts: this.options.observedFacts?.() ?? defaultObservedFacts(),
|
|
36
38
|
});
|
|
37
39
|
const active = this.active;
|
|
38
40
|
void active.closed?.finally(() => {
|
|
@@ -44,6 +46,18 @@ export class EdgeAgent {
|
|
|
44
46
|
await this.disconnect();
|
|
45
47
|
await this.connect();
|
|
46
48
|
}
|
|
49
|
+
async waitUntilDisconnected() {
|
|
50
|
+
const active = this.active;
|
|
51
|
+
if (!active)
|
|
52
|
+
return;
|
|
53
|
+
if (active.closed)
|
|
54
|
+
await active.closed;
|
|
55
|
+
else
|
|
56
|
+
await new Promise(() => undefined);
|
|
57
|
+
}
|
|
58
|
+
isConnected() {
|
|
59
|
+
return this.active !== undefined;
|
|
60
|
+
}
|
|
47
61
|
async status() {
|
|
48
62
|
const config = await this.options.platform.configStore.load();
|
|
49
63
|
const summary = await this.options.runtimeSummary?.summary() ?? {
|
|
@@ -63,6 +77,9 @@ export class EdgeAgent {
|
|
|
63
77
|
...(this.active ? { connectedAt: this.active.connectedAt } : {}),
|
|
64
78
|
};
|
|
65
79
|
}
|
|
80
|
+
installationControl() {
|
|
81
|
+
return this.options.runtime?.installationControl?.();
|
|
82
|
+
}
|
|
66
83
|
async disconnect() {
|
|
67
84
|
const active = this.active;
|
|
68
85
|
this.active = undefined;
|
|
@@ -88,7 +105,7 @@ export class WebSocketEdgeConnectionClient {
|
|
|
88
105
|
}
|
|
89
106
|
const socket = this.webSocketFactory(url.toString());
|
|
90
107
|
const nonce = randomBytes(32).toString("base64url");
|
|
91
|
-
const proof = sign(null, Buffer.from(`${input.edgeNodeId}.${nonce}`), input.privateKey).toString("base64url");
|
|
108
|
+
const proof = sign(null, Buffer.from(`${input.edgeNodeId}.${nonce}.edge.hello`), input.privateKey).toString("base64url");
|
|
92
109
|
let ack;
|
|
93
110
|
let heartbeat;
|
|
94
111
|
let runtimeDisconnected = false;
|
|
@@ -136,12 +153,10 @@ export class WebSocketEdgeConnectionClient {
|
|
|
136
153
|
kind: "edge.hello",
|
|
137
154
|
tenantId: input.tenantId,
|
|
138
155
|
edgeNodeId: input.edgeNodeId,
|
|
139
|
-
supportedVersions:
|
|
156
|
+
supportedVersions: EDGE_SUPPORTED_PROTOCOL_VERSIONS,
|
|
140
157
|
nonce,
|
|
141
158
|
proof,
|
|
142
159
|
deviceCredential: input.deviceCredential,
|
|
143
|
-
accessToken: input.accessToken,
|
|
144
|
-
publicKey: input.publicKey,
|
|
145
160
|
}));
|
|
146
161
|
}, { once: true });
|
|
147
162
|
socket.addEventListener("message", (event) => {
|
|
@@ -156,25 +171,51 @@ export class WebSocketEdgeConnectionClient {
|
|
|
156
171
|
throw edgeError("EDGE_PROTOCOL", "Edge gateway acknowledged a different device identity.");
|
|
157
172
|
}
|
|
158
173
|
ack = message;
|
|
174
|
+
const publishPresence = async () => {
|
|
175
|
+
if (!ack || ack.protocolVersion < 2)
|
|
176
|
+
return;
|
|
177
|
+
const snapshot = await input.runtime?.presenceSnapshot?.() ?? { readiness: [] };
|
|
178
|
+
const reportedAt = Date.now();
|
|
179
|
+
await send({
|
|
180
|
+
version: ack.protocolVersion,
|
|
181
|
+
kind: "edge.presence",
|
|
182
|
+
tenantId: ack.tenantId,
|
|
183
|
+
edgeNodeId: ack.edgeNodeId,
|
|
184
|
+
connectionGeneration: ack.connectionGeneration,
|
|
185
|
+
observed: input.observedFacts ?? defaultObservedFacts(reportedAt),
|
|
186
|
+
...snapshot,
|
|
187
|
+
reportedAt,
|
|
188
|
+
});
|
|
189
|
+
};
|
|
159
190
|
await input.runtime?.connected({
|
|
191
|
+
protocolVersion: message.protocolVersion,
|
|
160
192
|
claims: {
|
|
161
193
|
tenantId: message.tenantId,
|
|
162
194
|
edgeNodeId: message.edgeNodeId,
|
|
163
195
|
connectionGeneration: message.connectionGeneration,
|
|
164
196
|
},
|
|
165
197
|
send,
|
|
198
|
+
publishPresence,
|
|
166
199
|
});
|
|
200
|
+
await publishPresence();
|
|
167
201
|
heartbeat = setInterval(() => {
|
|
168
202
|
if (!ack || socket.readyState !== WebSocket.OPEN)
|
|
169
203
|
return;
|
|
170
|
-
void
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
204
|
+
void (async () => {
|
|
205
|
+
const snapshot = ack && ack.protocolVersion >= 2
|
|
206
|
+
? await input.runtime?.presenceSnapshot?.() ?? { readiness: [] }
|
|
207
|
+
: undefined;
|
|
208
|
+
await send({
|
|
209
|
+
version: ack.protocolVersion,
|
|
210
|
+
kind: "edge.heartbeat",
|
|
211
|
+
tenantId: ack.tenantId,
|
|
212
|
+
edgeNodeId: ack.edgeNodeId,
|
|
213
|
+
connectionGeneration: ack.connectionGeneration,
|
|
214
|
+
sentAt: Date.now(),
|
|
215
|
+
...(snapshot?.capacity ? { capacity: snapshot.capacity } : {}),
|
|
216
|
+
...(snapshot?.load ? { load: snapshot.load } : {}),
|
|
217
|
+
});
|
|
218
|
+
})().catch(() => socket.close(1011, "edge heartbeat failed"));
|
|
178
219
|
}, 10_000);
|
|
179
220
|
heartbeat.unref?.();
|
|
180
221
|
resolve(message);
|
|
@@ -184,6 +225,7 @@ export class WebSocketEdgeConnectionClient {
|
|
|
184
225
|
throw edgeError("EDGE_PROTOCOL", "Unexpected edge handshake frame after authentication.");
|
|
185
226
|
}
|
|
186
227
|
if (message.kind !== "edge.desired-state"
|
|
228
|
+
&& message.kind !== "edge.installation-control"
|
|
187
229
|
&& message.kind !== "mcp.request"
|
|
188
230
|
&& message.kind !== "mcp.cancel") {
|
|
189
231
|
throw edgeError("EDGE_PROTOCOL", "Unexpected message kind from the edge control plane.");
|
|
@@ -216,16 +258,27 @@ export class WebSocketEdgeConnectionClient {
|
|
|
216
258
|
};
|
|
217
259
|
}
|
|
218
260
|
}
|
|
261
|
+
function defaultObservedFacts(reportedAt = Date.now()) {
|
|
262
|
+
return {
|
|
263
|
+
platform: operatingSystem(),
|
|
264
|
+
architecture: arch(),
|
|
265
|
+
agentVersion: "0.1.0",
|
|
266
|
+
executionFeatures: ["mcp-stdio"],
|
|
267
|
+
reportedAt,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
219
270
|
export function createDefaultEdgeAgent(options) {
|
|
220
271
|
const platform = options.platform ?? nodeEdgePlatform();
|
|
221
272
|
const enrollment = new EdgeEnrollmentService({
|
|
222
273
|
platform,
|
|
274
|
+
controlPlaneUrl: options.controlPlaneUrl,
|
|
223
275
|
authorization: new HttpDeviceAuthorizationProvider(options.controlPlaneUrl),
|
|
224
276
|
enrollment: new HttpEdgeEnrollmentClient(options.controlPlaneUrl),
|
|
225
277
|
callbacks: { onVerification: options.onVerification },
|
|
226
278
|
hostnameLabel: hostname,
|
|
227
279
|
});
|
|
228
280
|
const runtimeRef = {};
|
|
281
|
+
const installationRef = {};
|
|
229
282
|
const setup = new LocalSetupManager({
|
|
230
283
|
store: new ProtectedJsonStore(path.join(platform.paths.dataDir, "grants.json")),
|
|
231
284
|
credentials: platform.credentialStore,
|
|
@@ -234,6 +287,11 @@ export function createDefaultEdgeAgent(options) {
|
|
|
234
287
|
const activeSupervisor = supervisor;
|
|
235
288
|
await Promise.all(deploymentIds.map((deploymentId) => activeSupervisor.blockDeployment(deploymentId)));
|
|
236
289
|
},
|
|
290
|
+
resolveInstalledArtifact: (reference) => {
|
|
291
|
+
if (!installationRef.current)
|
|
292
|
+
throw edgeError("EDGE_SETUP_REQUIRED", "Managed installation is not initialized.");
|
|
293
|
+
return installationRef.current.resolveArtifact(reference);
|
|
294
|
+
},
|
|
237
295
|
});
|
|
238
296
|
const supervisor = new EdgeWorkloadSupervisor({
|
|
239
297
|
setup,
|
|
@@ -249,7 +307,31 @@ export function createDefaultEdgeAgent(options) {
|
|
|
249
307
|
return runtimeRef.current.reportCapabilityManifest(deploymentId, recipeDigest, manifest);
|
|
250
308
|
},
|
|
251
309
|
});
|
|
252
|
-
const
|
|
310
|
+
const installationState = new ProtectedInstallationState(new ProtectedJsonStore(path.join(platform.paths.dataDir, "installations.json")));
|
|
311
|
+
const installationConsent = new InstallationConsentManager(installationState);
|
|
312
|
+
const installationRunner = new BoundedInstallerRunner(commandIsolationAdapter({
|
|
313
|
+
executable: process.env.FENTARIS_EDGE_INSTALLATION_SANDBOX,
|
|
314
|
+
}));
|
|
315
|
+
const installationSource = new ManagedInstallationSourceResolver({
|
|
316
|
+
credentials: platform.credentialStore,
|
|
317
|
+
local: { resolve: (grantRef) => setup.resolveGrantedPath(grantRef) },
|
|
318
|
+
});
|
|
319
|
+
const installation = new InstallationCoordinator({
|
|
320
|
+
state: installationState,
|
|
321
|
+
consent: installationConsent,
|
|
322
|
+
lock: new InMemoryInstallationMutationLock(),
|
|
323
|
+
providers: createDefaultInstallationProviders({ source: installationSource, runner: installationRunner }),
|
|
324
|
+
installationRoot: path.join(platform.paths.dataDir, "managed-installations"),
|
|
325
|
+
stagingRoot: path.join(platform.paths.dataDir, "installation-staging"),
|
|
326
|
+
terminateProcess: async (pid) => {
|
|
327
|
+
try {
|
|
328
|
+
process.kill(process.platform === "win32" ? pid : -pid, "SIGKILL");
|
|
329
|
+
}
|
|
330
|
+
catch { /* already stopped */ }
|
|
331
|
+
},
|
|
332
|
+
});
|
|
333
|
+
installationRef.current = installation;
|
|
334
|
+
const runtime = new EdgeAgentRuntime({ setup, supervisor, installation });
|
|
253
335
|
runtimeRef.current = runtime;
|
|
254
336
|
return new EdgeAgent({
|
|
255
337
|
enrollment,
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { EdgeAgent } from "./agent.js";
|
|
2
|
+
import type { EdgeServiceOperation, EdgeServiceResult } from "./service.js";
|
|
2
3
|
export interface EdgeCliIo {
|
|
3
4
|
out(value: string): void;
|
|
4
5
|
error(value: string): void;
|
|
5
6
|
}
|
|
6
|
-
export
|
|
7
|
+
export interface EdgeCliOperations {
|
|
8
|
+
installService(): Promise<EdgeServiceResult>;
|
|
9
|
+
service(operation: EdgeServiceOperation): Promise<EdgeServiceResult>;
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare function runEdgeCli(argv: readonly string[], agent: EdgeAgent, io: EdgeCliIo, operations?: EdgeCliOperations): Promise<number>;
|
|
7
13
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG5E,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,EACb,UAAU,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,CAAC,CA+EjB"}
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { redactEdgeValue, safeEdgeError } from "./redaction.js";
|
|
2
|
-
export async function runEdgeCli(argv, agent, io) {
|
|
2
|
+
export async function runEdgeCli(argv, agent, io, operations) {
|
|
3
3
|
const command = argv[0] ?? "status";
|
|
4
4
|
try {
|
|
5
5
|
switch (command) {
|
|
@@ -10,25 +10,73 @@ export async function runEdgeCli(argv, agent, io) {
|
|
|
10
10
|
edgeNodeId: result.config.edgeNodeId,
|
|
11
11
|
tenantId: result.config.tenantId,
|
|
12
12
|
connected: true,
|
|
13
|
+
warnings: ["fentaris-edge login is deprecated; use fentaris edge join <control-plane-url>."],
|
|
13
14
|
})));
|
|
14
15
|
return 0;
|
|
15
16
|
}
|
|
17
|
+
case "join": {
|
|
18
|
+
const parsed = parseJoin(argv.slice(1));
|
|
19
|
+
const result = await agent.login(parsed.metadata);
|
|
20
|
+
let service;
|
|
21
|
+
const warnings = [];
|
|
22
|
+
if (!parsed.noService) {
|
|
23
|
+
if (!operations)
|
|
24
|
+
throw new Error("Persistent service operations are unavailable in this embedding.");
|
|
25
|
+
try {
|
|
26
|
+
service = await operations.installService();
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
warnings.push("Persistent service installation was unavailable; enrollment identity was retained.");
|
|
30
|
+
if (parsed.requireService)
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
await agent.disconnect();
|
|
35
|
+
const envelope = {
|
|
36
|
+
ok: true,
|
|
37
|
+
data: {
|
|
38
|
+
status: result.repeated ? "already-enrolled" : "enrolled",
|
|
39
|
+
device: { name: parsed.metadata.name ?? result.config.hostnameLabel ?? "edge-device" },
|
|
40
|
+
service: service ?? { persistent: false, adapter: "foreground" },
|
|
41
|
+
},
|
|
42
|
+
pagination: null,
|
|
43
|
+
warnings,
|
|
44
|
+
nextActions: service?.persistent ? [] : [{ description: "Run Edge in the foreground", command: "fentaris edge run" }],
|
|
45
|
+
};
|
|
46
|
+
io.out(parsed.json ? JSON.stringify(envelope) : `${envelope.data.device.name} ${envelope.data.status}`);
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
case "run":
|
|
50
|
+
if (!operations)
|
|
51
|
+
throw new Error("Persistent Edge runtime is unavailable in this embedding.");
|
|
52
|
+
await operations.run();
|
|
53
|
+
return 0;
|
|
54
|
+
case "service": {
|
|
55
|
+
if (!operations)
|
|
56
|
+
throw new Error("Persistent service operations are unavailable in this embedding.");
|
|
57
|
+
const operation = serviceOperation(argv[1]);
|
|
58
|
+
io.out(JSON.stringify({ ok: true, data: await operations.service(operation), pagination: null, warnings: [], nextActions: [] }));
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
16
61
|
case "status":
|
|
17
|
-
io.out(JSON.stringify(redactEdgeValue(
|
|
62
|
+
io.out(JSON.stringify(redactEdgeValue({
|
|
63
|
+
...await agent.status(),
|
|
64
|
+
warnings: ["fentaris-edge status is deprecated; use fentaris edge status."],
|
|
65
|
+
})));
|
|
18
66
|
return 0;
|
|
19
67
|
case "disconnect":
|
|
20
68
|
await agent.disconnect();
|
|
21
|
-
io.out(JSON.stringify({ status: "disconnected" }));
|
|
69
|
+
io.out(JSON.stringify({ status: "disconnected", warnings: ["fentaris-edge disconnect is deprecated; use fentaris edge disconnect."] }));
|
|
22
70
|
return 0;
|
|
23
71
|
case "revoke":
|
|
24
72
|
await agent.revoke();
|
|
25
|
-
io.out(JSON.stringify({ status: "revoked" }));
|
|
73
|
+
io.out(JSON.stringify({ status: "revoked", warnings: ["fentaris-edge revoke is deprecated; use fentaris edge revoke."] }));
|
|
26
74
|
return 0;
|
|
27
75
|
case "add":
|
|
28
76
|
io.error("MCP definitions and assignments are managed by Fentaris; fentaris-edge has no add command.");
|
|
29
77
|
return 2;
|
|
30
78
|
default:
|
|
31
|
-
io.error("Usage: fentaris-edge <login|status|disconnect|revoke>");
|
|
79
|
+
io.error("Usage: fentaris-edge <join|run|service|login|status|disconnect|revoke>");
|
|
32
80
|
return 2;
|
|
33
81
|
}
|
|
34
82
|
}
|
|
@@ -37,4 +85,41 @@ export async function runEdgeCli(argv, agent, io) {
|
|
|
37
85
|
return 1;
|
|
38
86
|
}
|
|
39
87
|
}
|
|
88
|
+
function parseJoin(argv) {
|
|
89
|
+
const metadata = { tags: [] };
|
|
90
|
+
let json = false;
|
|
91
|
+
let noService = false;
|
|
92
|
+
let requireService = false;
|
|
93
|
+
for (let index = 1; index < argv.length; index += 1) {
|
|
94
|
+
const value = argv[index];
|
|
95
|
+
if (value === "--json")
|
|
96
|
+
json = true;
|
|
97
|
+
else if (value === "--no-service")
|
|
98
|
+
noService = true;
|
|
99
|
+
else if (value === "--service")
|
|
100
|
+
requireService = true;
|
|
101
|
+
else if (value === "--name" || value === "--description" || value === "--tag") {
|
|
102
|
+
const next = argv[index + 1];
|
|
103
|
+
if (!next)
|
|
104
|
+
throw new Error(`${value} requires a value.`);
|
|
105
|
+
if (value === "--name")
|
|
106
|
+
metadata.name = next;
|
|
107
|
+
else if (value === "--description")
|
|
108
|
+
metadata.description = next;
|
|
109
|
+
else
|
|
110
|
+
metadata.tags.push(next);
|
|
111
|
+
index += 1;
|
|
112
|
+
}
|
|
113
|
+
else if (value?.startsWith("-"))
|
|
114
|
+
throw new Error(`Unknown join option ${value}.`);
|
|
115
|
+
}
|
|
116
|
+
if (noService && requireService)
|
|
117
|
+
throw new Error("--service and --no-service cannot be combined.");
|
|
118
|
+
return { metadata, json, noService, requireService };
|
|
119
|
+
}
|
|
120
|
+
function serviceOperation(value) {
|
|
121
|
+
if (value === "install" || value === "start" || value === "stop" || value === "restart" || value === "uninstall")
|
|
122
|
+
return value;
|
|
123
|
+
throw new Error("service requires install, start, stop, restart, or uninstall.");
|
|
124
|
+
}
|
|
40
125
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { EdgeAgent, EdgeAgentStatus } from "./agent.js";
|
|
2
|
+
import type { JsonStore } from "./platform.js";
|
|
3
|
+
export type EdgePersistentLifecycleState = "stopped" | "starting" | "connecting" | "reconciling" | "ready" | "backoff" | "terminal" | "stopping";
|
|
4
|
+
export interface EdgePersistentStatus {
|
|
5
|
+
readonly state: EdgePersistentLifecycleState;
|
|
6
|
+
readonly updatedAt: number;
|
|
7
|
+
readonly attempt: number;
|
|
8
|
+
readonly connectedSince?: number;
|
|
9
|
+
readonly nextReconnectAt?: number;
|
|
10
|
+
readonly errorCategory?: "transient" | "terminal";
|
|
11
|
+
readonly errorCode?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface EdgeSingletonLease {
|
|
14
|
+
release(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export interface EdgeSingletonLock {
|
|
17
|
+
acquire(): Promise<EdgeSingletonLease>;
|
|
18
|
+
}
|
|
19
|
+
/** Owner-created filesystem singleton lock for one local Edge agent. */
|
|
20
|
+
export declare class FileEdgeSingletonLock implements EdgeSingletonLock {
|
|
21
|
+
private readonly lockFile;
|
|
22
|
+
constructor(lockFile: string);
|
|
23
|
+
acquire(): Promise<EdgeSingletonLease>;
|
|
24
|
+
private openOwnedLock;
|
|
25
|
+
}
|
|
26
|
+
export interface EdgeReconnectPolicy {
|
|
27
|
+
readonly initialDelayMs?: number;
|
|
28
|
+
readonly maxDelayMs?: number;
|
|
29
|
+
readonly multiplier?: number;
|
|
30
|
+
readonly jitterRatio?: number;
|
|
31
|
+
readonly stableConnectionMs?: number;
|
|
32
|
+
readonly terminalRetryMs?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface EdgePersistentAgentOptions {
|
|
35
|
+
readonly agent: EdgeAgent;
|
|
36
|
+
readonly lock: EdgeSingletonLock;
|
|
37
|
+
readonly statusStore: JsonStore<EdgePersistentStatus>;
|
|
38
|
+
readonly reconnect?: EdgeReconnectPolicy;
|
|
39
|
+
readonly now?: () => number;
|
|
40
|
+
readonly random?: () => number;
|
|
41
|
+
readonly sleep?: (ms: number, signal: AbortSignal) => Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
/** Long-running supervised Edge lifecycle with safe reconnect and shutdown. */
|
|
44
|
+
export declare class EdgePersistentAgent {
|
|
45
|
+
private readonly options;
|
|
46
|
+
private readonly now;
|
|
47
|
+
private readonly random;
|
|
48
|
+
private readonly sleep;
|
|
49
|
+
private readonly reconnect;
|
|
50
|
+
private controller?;
|
|
51
|
+
private running?;
|
|
52
|
+
private lease?;
|
|
53
|
+
private reconnectRequested;
|
|
54
|
+
constructor(options: EdgePersistentAgentOptions);
|
|
55
|
+
start(): Promise<void>;
|
|
56
|
+
wait(): Promise<void>;
|
|
57
|
+
stop(): Promise<void>;
|
|
58
|
+
reconnectNow(): Promise<void>;
|
|
59
|
+
status(): Promise<EdgePersistentStatus & {
|
|
60
|
+
readonly agent: EdgeAgentStatus;
|
|
61
|
+
}>;
|
|
62
|
+
private runLoop;
|
|
63
|
+
private writeStatus;
|
|
64
|
+
}
|
|
65
|
+
export declare function classifyReconnectError(error: unknown): "transient" | "terminal";
|
|
66
|
+
export declare function reconnectDelay(attempt: number, policy: Required<EdgeReconnectPolicy>, random?: () => number): number;
|
|
67
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|