frely-cli 0.23.9 → 0.23.10
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/README.md +49 -20
- package/README.zh-CN.md +47 -19
- package/dist/agent/local/approvals.d.ts +24 -0
- package/dist/agent/local/approvals.js +79 -0
- package/dist/agent/local/approvals.js.map +1 -0
- package/dist/agent/local/command.d.ts +10 -0
- package/dist/agent/local/command.js +292 -0
- package/dist/agent/local/command.js.map +1 -0
- package/dist/agent/local/confine.d.ts +20 -0
- package/dist/agent/local/confine.js +52 -0
- package/dist/agent/local/confine.js.map +1 -0
- package/dist/agent/local/manifest.d.ts +17 -0
- package/dist/agent/local/manifest.js +55 -0
- package/dist/agent/local/manifest.js.map +1 -0
- package/dist/agent/local/model-proxy.d.ts +18 -0
- package/dist/agent/local/model-proxy.js +111 -0
- package/dist/agent/local/model-proxy.js.map +1 -0
- package/dist/agent/local/source.d.ts +28 -0
- package/dist/agent/local/source.js +64 -0
- package/dist/agent/local/source.js.map +1 -0
- package/dist/agent/local/store.d.ts +45 -0
- package/dist/agent/local/store.js +78 -0
- package/dist/agent/local/store.js.map +1 -0
- package/dist/agent/local/supervisor.d.ts +9 -0
- package/dist/agent/local/supervisor.js +62 -0
- package/dist/agent/local/supervisor.js.map +1 -0
- package/dist/agent-help.d.ts +118 -10
- package/dist/agent-help.js +25 -6
- package/dist/agent-help.js.map +1 -1
- package/dist/index.js +35 -5
- package/dist/index.js.map +1 -1
- package/dist/provider/control.d.ts +10 -0
- package/dist/provider/control.js +19 -0
- package/dist/provider/control.js.map +1 -1
- package/dist/provider/share.js +4 -1
- package/dist/provider/share.js.map +1 -1
- package/dist/runtime/sandbox.d.ts +20 -0
- package/dist/runtime/sandbox.js +39 -1
- package/dist/runtime/sandbox.js.map +1 -1
- package/dist/share/allowance.d.ts +8 -0
- package/dist/share/allowance.js +22 -0
- package/dist/share/allowance.js.map +1 -0
- package/dist/share/control.d.ts +2 -0
- package/dist/share/control.js +14 -10
- package/dist/share/control.js.map +1 -1
- package/dist/share/service-config.d.ts +39 -0
- package/dist/share/service-config.js +85 -0
- package/dist/share/service-config.js.map +1 -0
- package/dist/share/service-control.d.ts +15 -0
- package/dist/share/service-control.js +31 -0
- package/dist/share/service-control.js.map +1 -0
- package/dist/share/service-run.d.ts +55 -0
- package/dist/share/service-run.js +285 -0
- package/dist/share/service-run.js.map +1 -0
- package/dist/share/service-state.d.ts +16 -0
- package/dist/share/service-state.js +66 -0
- package/dist/share/service-state.js.map +1 -0
- package/dist/skill/access.d.ts +2 -2
- package/dist/skill/access.js +4 -2
- package/dist/skill/access.js.map +1 -1
- package/dist/skill/cloud-item.d.ts +2 -2
- package/dist/skill/cloud-item.js.map +1 -1
- package/dist/skill/entry.d.ts +1 -1
- package/dist/skill/entry.js +1 -1
- package/dist/skill/remote-mcp.d.ts +3 -0
- package/dist/skill/remote-mcp.js +7 -1
- package/dist/skill/remote-mcp.js.map +1 -1
- package/dist/skill/router.d.ts +6 -2
- package/dist/skill/router.js +4 -4
- package/dist/skill/router.js.map +1 -1
- package/dist/uninstall.d.ts +4 -0
- package/dist/uninstall.js +14 -0
- package/dist/uninstall.js.map +1 -1
- package/package.json +3 -2
package/dist/runtime/sandbox.js
CHANGED
|
@@ -242,6 +242,24 @@ function gitWriteDenials(workspaceRoot, allowGitConfig) {
|
|
|
242
242
|
}
|
|
243
243
|
export function buildSandboxConfig(workspaceRoot, allowedGroups = [], options = {}) {
|
|
244
244
|
const allowGitConfig = options.allowGitConfig === true;
|
|
245
|
+
if (options.network) {
|
|
246
|
+
return {
|
|
247
|
+
network: {
|
|
248
|
+
allowedDomains: [...options.network.allowedDomains],
|
|
249
|
+
deniedDomains: [],
|
|
250
|
+
// A restricted program gets no loopback of its own: on macOS this switch also lets it reach every other port on this computer.
|
|
251
|
+
allowLocalBinding: false,
|
|
252
|
+
...(options.network.mitmProxy ? { mitmProxy: { socketPath: options.network.mitmProxy.socketPath, domains: [...options.network.mitmProxy.domains] } } : {}),
|
|
253
|
+
...(options.parentProxy ? { parentProxy: options.parentProxy } : {}),
|
|
254
|
+
},
|
|
255
|
+
filesystem: {
|
|
256
|
+
denyRead: sensitiveReadPaths(allowedGroups),
|
|
257
|
+
allowWrite: [workspaceRoot, tmpdir(), ...writablePaths(allowedGroups)],
|
|
258
|
+
denyWrite: [...protectedWriteDenials(allowedGroups), ...gitWriteDenials(workspaceRoot, allowGitConfig)],
|
|
259
|
+
...(allowGitConfig ? { allowGitConfig: true } : {}),
|
|
260
|
+
},
|
|
261
|
+
};
|
|
262
|
+
}
|
|
245
263
|
return {
|
|
246
264
|
network: {
|
|
247
265
|
// Left open by default: an empty allowlist would break ordinary
|
|
@@ -278,6 +296,17 @@ export function sandboxUnavailableMessage(reason) {
|
|
|
278
296
|
+ "or set FRELY_SANDBOX=off on the device.";
|
|
279
297
|
}
|
|
280
298
|
let initialized;
|
|
299
|
+
/** Set by `restrictSandboxNetwork`; every command of this process then runs under it. */
|
|
300
|
+
let networkPolicy;
|
|
301
|
+
/**
|
|
302
|
+
* Narrows the network of every sandboxed command in this process. srt reads the network settings once when it starts, so this must be
|
|
303
|
+
* called before the first command; the MCP runtime never calls it and keeps the open default.
|
|
304
|
+
*/
|
|
305
|
+
export function restrictSandboxNetwork(policy) {
|
|
306
|
+
if (initialized)
|
|
307
|
+
throw new Error("The sandbox network can only be restricted before the first command runs.");
|
|
308
|
+
networkPolicy = policy;
|
|
309
|
+
}
|
|
281
310
|
/** The configuration srt was initialized with: what every command runs under, and what is put back after a git-config wrap. */
|
|
282
311
|
let baseConfig;
|
|
283
312
|
async function ensureInitialized(workspaceRoot) {
|
|
@@ -297,7 +326,7 @@ async function ensureInitialized(workspaceRoot) {
|
|
|
297
326
|
warnOnce(warning);
|
|
298
327
|
try {
|
|
299
328
|
// The proxy servers keep the upstream proxy they start with, so a changed proxy needs a restart of the service.
|
|
300
|
-
baseConfig = buildSandboxConfig(workspaceRoot, [], { parentProxy: resolveUpstreamProxy() });
|
|
329
|
+
baseConfig = buildSandboxConfig(workspaceRoot, [], { parentProxy: resolveUpstreamProxy(), ...(networkPolicy ? { network: networkPolicy } : {}) });
|
|
301
330
|
await SandboxManager.initialize(structuredClone(baseConfig));
|
|
302
331
|
return { ready: true };
|
|
303
332
|
}
|
|
@@ -516,10 +545,19 @@ export function sshConfigReadable() {
|
|
|
516
545
|
return false;
|
|
517
546
|
}
|
|
518
547
|
}
|
|
548
|
+
/** Stops srt's proxies and bridges. A process that confined its own work (`frely agent local`) calls this when done, or it never exits. */
|
|
549
|
+
export async function shutdownSandbox() {
|
|
550
|
+
if (!initialized)
|
|
551
|
+
return;
|
|
552
|
+
initialized = undefined;
|
|
553
|
+
baseConfig = undefined;
|
|
554
|
+
await SandboxManager.reset().catch(() => undefined);
|
|
555
|
+
}
|
|
519
556
|
/** Exposed for tests: resets the module-level init state and the underlying manager. */
|
|
520
557
|
export async function resetSandboxForTests() {
|
|
521
558
|
initialized = undefined;
|
|
522
559
|
baseConfig = undefined;
|
|
560
|
+
networkPolicy = undefined;
|
|
523
561
|
wrapQueue = Promise.resolve();
|
|
524
562
|
warned = false;
|
|
525
563
|
await SandboxManager.reset().catch(() => undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/runtime/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/runtime/sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Said wherever traffic is relayed through Frely: shares, services and local models all count against one weekly allowance. */
|
|
2
|
+
export declare const ALLOWANCE_NOTE = "Relayed traffic counts against your weekly relay allowance.";
|
|
3
|
+
export declare function remainingAllowanceLine(remainingBytes: number): string;
|
|
4
|
+
/**
|
|
5
|
+
* The two lines `frely service share` and `frely provider share` print: what is left of this week's relay allowance, then the note.
|
|
6
|
+
* When the amount cannot be fetched only the note is printed; the share itself never fails because of it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function relayAllowanceLines(fetchRemainingBytes: () => Promise<number>): Promise<string[]>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const MIB = 1024 * 1024;
|
|
2
|
+
/** Said wherever traffic is relayed through Frely: shares, services and local models all count against one weekly allowance. */
|
|
3
|
+
export const ALLOWANCE_NOTE = "Relayed traffic counts against your weekly relay allowance.";
|
|
4
|
+
export function remainingAllowanceLine(remainingBytes) {
|
|
5
|
+
return `${Math.floor(Math.max(0, remainingBytes) / MIB)} MiB of relay allowance left this week (UTC).`;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The two lines `frely service share` and `frely provider share` print: what is left of this week's relay allowance, then the note.
|
|
9
|
+
* When the amount cannot be fetched only the note is printed; the share itself never fails because of it.
|
|
10
|
+
*/
|
|
11
|
+
export async function relayAllowanceLines(fetchRemainingBytes) {
|
|
12
|
+
try {
|
|
13
|
+
const remaining = await fetchRemainingBytes();
|
|
14
|
+
if (Number.isFinite(remaining))
|
|
15
|
+
return [remainingAllowanceLine(remaining), ALLOWANCE_NOTE];
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
// Fall through to the note alone.
|
|
19
|
+
}
|
|
20
|
+
return [ALLOWANCE_NOTE];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=allowance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowance.js","sourceRoot":"","sources":["../../src/share/allowance.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAExB,gIAAgI;AAChI,MAAM,CAAC,MAAM,cAAc,GAAG,6DAA6D,CAAC;AAE5F,MAAM,UAAU,sBAAsB,CAAC,cAAsB;IAC3D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,GAAG,CAAC,+CAA+C,CAAC;AACzG,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,mBAA0C;IAClF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,OAAO,CAAC,cAAc,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/share/control.d.ts
CHANGED
|
@@ -14,3 +14,5 @@ export interface ShareControl {
|
|
|
14
14
|
}
|
|
15
15
|
/** Calls Frely's share route as the signed-in user; the device is this computer's enrolled device. */
|
|
16
16
|
export declare function accountShareControl(): Promise<ShareControl>;
|
|
17
|
+
/** A POST helper for one of Frely's device-relay routes, signed in as the user. */
|
|
18
|
+
export declare function accountRelayCaller(path: string): Promise<(body: Record<string, unknown>) => Promise<unknown>>;
|
package/dist/share/control.js
CHANGED
|
@@ -5,15 +5,8 @@ const TIMEOUT_MS = 20_000;
|
|
|
5
5
|
const SHARES_PATH = "/api/user/device-relay/shares";
|
|
6
6
|
/** Calls Frely's share route as the signed-in user; the device is this computer's enrolled device. */
|
|
7
7
|
export async function accountShareControl() {
|
|
8
|
-
const auth = await requireLogin();
|
|
9
8
|
const device = await ensureDevice();
|
|
10
|
-
const call =
|
|
11
|
-
const response = await relayFetch(auth.config.relayUrl, auth.credential, { method: "POST", body: JSON.stringify(body) });
|
|
12
|
-
const payload = await response.json().catch(() => null);
|
|
13
|
-
if (!response.ok)
|
|
14
|
-
throw new Error(publicError(payload, response.status));
|
|
15
|
-
return payload;
|
|
16
|
-
};
|
|
9
|
+
const call = await accountRelayCaller(SHARES_PATH);
|
|
17
10
|
return {
|
|
18
11
|
async create(input) { return parseShareGrant(await call({ action: "create", deviceId: device.deviceId, ...(input.ttlSeconds !== undefined ? { ttlSeconds: input.ttlSeconds } : {}) })); },
|
|
19
12
|
async heartbeat(sessionId) {
|
|
@@ -25,12 +18,23 @@ export async function accountShareControl() {
|
|
|
25
18
|
async revoke(sessionId) { await call({ action: "revoke", sessionId }); },
|
|
26
19
|
};
|
|
27
20
|
}
|
|
28
|
-
|
|
21
|
+
/** A POST helper for one of Frely's device-relay routes, signed in as the user. */
|
|
22
|
+
export async function accountRelayCaller(path) {
|
|
23
|
+
const auth = await requireLogin();
|
|
24
|
+
return async (body) => {
|
|
25
|
+
const response = await relayFetch(auth.config.relayUrl, auth.credential, path, { method: "POST", body: JSON.stringify(body) });
|
|
26
|
+
const payload = await response.json().catch(() => null);
|
|
27
|
+
if (!response.ok)
|
|
28
|
+
throw new Error(publicError(payload, response.status));
|
|
29
|
+
return payload;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async function relayFetch(relayUrl, credential, path, init) {
|
|
29
33
|
const controller = new AbortController();
|
|
30
34
|
const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
31
35
|
timer.unref?.();
|
|
32
36
|
try {
|
|
33
|
-
return await fetch(`${relayUrl}${
|
|
37
|
+
return await fetch(`${relayUrl}${path}`, { ...init, signal: controller.signal, redirect: "error", headers: { accept: "application/json", origin: relayUrl, "content-type": "application/json", ...(credential.scheme === "bearer" ? { authorization: `Bearer ${credential.value}` } : { cookie: credential.value }) } });
|
|
34
38
|
}
|
|
35
39
|
catch (error) {
|
|
36
40
|
if (controller.signal.aborted)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/share/control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAmB,MAAM,kBAAkB,CAAC;AAEpE,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAUpD,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/share/control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** What the relay returns for a service session (`POST /api/user/device-relay/services`, action session). */
|
|
2
|
+
export interface ServiceGrant {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly serviceShareId: string;
|
|
5
|
+
readonly expiresAt: string;
|
|
6
|
+
readonly node: string;
|
|
7
|
+
readonly bandwidthBytesPerSecond: number;
|
|
8
|
+
readonly remainingBytes: number;
|
|
9
|
+
readonly frpc: {
|
|
10
|
+
readonly serverAddr: string;
|
|
11
|
+
readonly serverPort: number;
|
|
12
|
+
readonly user: string;
|
|
13
|
+
readonly token: string;
|
|
14
|
+
readonly proxyName: "svc";
|
|
15
|
+
readonly proxyType: "stcp";
|
|
16
|
+
readonly secretKey: string;
|
|
17
|
+
readonly allowUsers: readonly string[];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export type ServiceType = "mcp" | "a2a";
|
|
21
|
+
/** A registered service as `register` and `list` return it. The local port is never part of it. */
|
|
22
|
+
export interface ServiceShareRecord {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly deviceId: string;
|
|
25
|
+
readonly type: ServiceType;
|
|
26
|
+
readonly label: string;
|
|
27
|
+
readonly createdAt: string;
|
|
28
|
+
}
|
|
29
|
+
export declare const SERVICE_SHARE_ID: RegExp;
|
|
30
|
+
/** Checks the grant's shape before anything of it reaches a process or a file; throws on anything unexpected. */
|
|
31
|
+
export declare function parseServiceGrant(value: unknown): ServiceGrant;
|
|
32
|
+
/** Checks a `register` / `list` row. */
|
|
33
|
+
export declare function parseServiceRecord(value: unknown): ServiceShareRecord;
|
|
34
|
+
/**
|
|
35
|
+
* The frpc config for a service: exactly one stcp proxy that points at a port on loopback. `localIP` is fixed here and the port comes
|
|
36
|
+
* from the author's own command line; the relay never supplies a target. No client plugin, no admin port and no other proxy type are written.
|
|
37
|
+
* The stcp key and `allowUsers` (Frely's visitor) come from the grant.
|
|
38
|
+
*/
|
|
39
|
+
export declare function serviceFrpcConfigToml(grant: ServiceGrant, localPort: number): string;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const HOST = /^(?:[A-Za-z0-9](?:[A-Za-z0-9.-]{0,251}[A-Za-z0-9])?|\[[0-9A-Fa-f:]{2,45}\])$/u;
|
|
2
|
+
const SECRET = /^[A-Za-z0-9_-]{20,128}$/u;
|
|
3
|
+
const VISITOR = /^[A-Za-z0-9_.-]{1,80}$/u;
|
|
4
|
+
export const SERVICE_SHARE_ID = /^svcs_[0-9a-f]{24}$/u;
|
|
5
|
+
/** Checks the grant's shape before anything of it reaches a process or a file; throws on anything unexpected. */
|
|
6
|
+
export function parseServiceGrant(value) {
|
|
7
|
+
const fail = () => { throw new Error("Frely returned an invalid service session."); };
|
|
8
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
9
|
+
return fail();
|
|
10
|
+
const grant = value, frpc = grant.frpc;
|
|
11
|
+
if (typeof grant.id !== "string" || !/^frps_[0-9a-f]{24}$/u.test(grant.id))
|
|
12
|
+
return fail();
|
|
13
|
+
if (typeof grant.serviceShareId !== "string" || !SERVICE_SHARE_ID.test(grant.serviceShareId))
|
|
14
|
+
return fail();
|
|
15
|
+
if (typeof grant.expiresAt !== "string" || !Number.isFinite(Date.parse(grant.expiresAt)) || typeof grant.node !== "string" || grant.node.length < 1 || grant.node.length > 64)
|
|
16
|
+
return fail();
|
|
17
|
+
if (typeof grant.bandwidthBytesPerSecond !== "number" || !Number.isFinite(grant.bandwidthBytesPerSecond) || grant.bandwidthBytesPerSecond < 0)
|
|
18
|
+
return fail();
|
|
19
|
+
if (typeof grant.remainingBytes !== "number" || !Number.isFinite(grant.remainingBytes) || grant.remainingBytes < 0)
|
|
20
|
+
return fail();
|
|
21
|
+
if (!frpc || typeof frpc !== "object" || Array.isArray(frpc))
|
|
22
|
+
return fail();
|
|
23
|
+
const { serverAddr, serverPort, user, token, proxyName, proxyType, secretKey, allowUsers } = frpc;
|
|
24
|
+
if (typeof serverAddr !== "string" || !HOST.test(serverAddr))
|
|
25
|
+
return fail();
|
|
26
|
+
if (typeof serverPort !== "number" || !Number.isInteger(serverPort) || serverPort < 1 || serverPort > 65535)
|
|
27
|
+
return fail();
|
|
28
|
+
if (user !== grant.id || typeof token !== "string" || !/^frs_[A-Za-z0-9_-]{20,64}$/u.test(token))
|
|
29
|
+
return fail();
|
|
30
|
+
if (proxyName !== "svc" || proxyType !== "stcp")
|
|
31
|
+
return fail();
|
|
32
|
+
if (typeof secretKey !== "string" || !SECRET.test(secretKey))
|
|
33
|
+
return fail();
|
|
34
|
+
if (!Array.isArray(allowUsers) || allowUsers.length < 1 || allowUsers.length > 4 || allowUsers.some((entry) => typeof entry !== "string" || !VISITOR.test(entry) || entry === "*"))
|
|
35
|
+
return fail();
|
|
36
|
+
return {
|
|
37
|
+
id: grant.id, serviceShareId: grant.serviceShareId, expiresAt: grant.expiresAt, node: grant.node,
|
|
38
|
+
bandwidthBytesPerSecond: grant.bandwidthBytesPerSecond, remainingBytes: grant.remainingBytes,
|
|
39
|
+
frpc: { serverAddr, serverPort, user, token, proxyName, proxyType, secretKey, allowUsers: [...allowUsers] },
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** Checks a `register` / `list` row. */
|
|
43
|
+
export function parseServiceRecord(value) {
|
|
44
|
+
const fail = () => { throw new Error("Frely returned an invalid service."); };
|
|
45
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
46
|
+
return fail();
|
|
47
|
+
const row = value;
|
|
48
|
+
if (typeof row.id !== "string" || !SERVICE_SHARE_ID.test(row.id) || typeof row.deviceId !== "string" || row.deviceId.length > 64)
|
|
49
|
+
return fail();
|
|
50
|
+
if (row.type !== "mcp" && row.type !== "a2a")
|
|
51
|
+
return fail();
|
|
52
|
+
if (typeof row.label !== "string" || row.label.length < 1 || row.label.length > 60)
|
|
53
|
+
return fail();
|
|
54
|
+
return { id: row.id, deviceId: row.deviceId, type: row.type, label: row.label, createdAt: typeof row.createdAt === "string" ? row.createdAt : "" };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The frpc config for a service: exactly one stcp proxy that points at a port on loopback. `localIP` is fixed here and the port comes
|
|
58
|
+
* from the author's own command line; the relay never supplies a target. No client plugin, no admin port and no other proxy type are written.
|
|
59
|
+
* The stcp key and `allowUsers` (Frely's visitor) come from the grant.
|
|
60
|
+
*/
|
|
61
|
+
export function serviceFrpcConfigToml(grant, localPort) {
|
|
62
|
+
if (!Number.isInteger(localPort) || localPort < 1 || localPort > 65535)
|
|
63
|
+
throw new Error("Invalid local port.");
|
|
64
|
+
const q = (text) => JSON.stringify(text);
|
|
65
|
+
return [
|
|
66
|
+
`serverAddr = ${q(grant.frpc.serverAddr.replace(/^\[|\]$/gu, ""))}`,
|
|
67
|
+
`serverPort = ${grant.frpc.serverPort}`,
|
|
68
|
+
`user = ${q(grant.frpc.user)}`,
|
|
69
|
+
`loginFailExit = true`,
|
|
70
|
+
`metadatas.token = ${q(grant.frpc.token)}`,
|
|
71
|
+
`transport.tls.enable = true`,
|
|
72
|
+
`log.to = "console"`,
|
|
73
|
+
`log.level = "warn"`,
|
|
74
|
+
``,
|
|
75
|
+
`[[proxies]]`,
|
|
76
|
+
`name = "svc"`,
|
|
77
|
+
`type = "stcp"`,
|
|
78
|
+
`secretKey = ${q(grant.frpc.secretKey)}`,
|
|
79
|
+
`allowUsers = [${grant.frpc.allowUsers.map(q).join(", ")}]`,
|
|
80
|
+
`localIP = "127.0.0.1"`,
|
|
81
|
+
`localPort = ${localPort}`,
|
|
82
|
+
``,
|
|
83
|
+
].join("\n");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=service-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-config.js","sourceRoot":"","sources":["../../src/share/service-config.ts"],"names":[],"mappings":"AAyBA,MAAM,IAAI,GAAG,+EAA+E,CAAC;AAC7F,MAAM,MAAM,GAAG,0BAA0B,CAAC;AAC1C,MAAM,OAAO,GAAG,yBAAyB,CAAC;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,iHAAiH;AACjH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,IAAI,GAAG,GAAU,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC/E,MAAM,KAAK,GAAG,KAAgC,EAAE,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;IACzG,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC1F,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC5G,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,EAAE,CAAC;IAC7L,IAAI,OAAO,KAAK,CAAC,uBAAuB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC7J,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAClI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC5E,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClG,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC5E,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,KAAK;QAAE,OAAO,IAAI,EAAE,CAAC;IAC3H,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAChH,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,IAAI,EAAE,CAAC;IAC/D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAClM,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChG,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;QAC5F,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAa,EAAE;KACxH,CAAC;AACJ,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,IAAI,GAAG,GAAU,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,EAAE,CAAC;IAChJ,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,EAAE,CAAC;IAC5D,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,EAAE,CAAC;IAClG,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB,EAAE,SAAiB;IAC1E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/G,MAAM,CAAC,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO;QACL,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE;QACnE,gBAAgB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE;QACvC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC9B,sBAAsB;QACtB,qBAAqB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC1C,6BAA6B;QAC7B,oBAAoB;QACpB,oBAAoB;QACpB,EAAE;QACF,aAAa;QACb,cAAc;QACd,eAAe;QACf,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACxC,iBAAiB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC3D,uBAAuB;QACvB,eAAe,SAAS,EAAE;QAC1B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ShareHeartbeat } from "./control.js";
|
|
2
|
+
import { type ServiceGrant, type ServiceShareRecord, type ServiceType } from "./service-config.js";
|
|
3
|
+
export interface ServiceControl {
|
|
4
|
+
register(input: {
|
|
5
|
+
type: ServiceType;
|
|
6
|
+
label: string;
|
|
7
|
+
}): Promise<ServiceShareRecord>;
|
|
8
|
+
list(): Promise<ServiceShareRecord[]>;
|
|
9
|
+
remove(serviceShareId: string): Promise<void>;
|
|
10
|
+
session(serviceShareId: string): Promise<ServiceGrant>;
|
|
11
|
+
heartbeat(sessionId: string): Promise<ShareHeartbeat>;
|
|
12
|
+
revoke(sessionId: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/** Calls Frely's service route as the signed-in user. Only the type and label are registered; the local port never leaves this computer. */
|
|
15
|
+
export declare function accountServiceControl(): Promise<ServiceControl>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ensureDevice } from "../device/control.js";
|
|
2
|
+
import { accountRelayCaller } from "./control.js";
|
|
3
|
+
import { parseServiceGrant, parseServiceRecord } from "./service-config.js";
|
|
4
|
+
const SERVICES_PATH = "/api/user/device-relay/services";
|
|
5
|
+
/** Calls Frely's service route as the signed-in user. Only the type and label are registered; the local port never leaves this computer. */
|
|
6
|
+
export async function accountServiceControl() {
|
|
7
|
+
const call = await accountRelayCaller(SERVICES_PATH);
|
|
8
|
+
return {
|
|
9
|
+
async register(input) {
|
|
10
|
+
const device = await ensureDevice();
|
|
11
|
+
return parseServiceRecord(await call({ action: "register", deviceId: device.deviceId, type: input.type, label: input.label }));
|
|
12
|
+
},
|
|
13
|
+
async list() {
|
|
14
|
+
const value = await call({ action: "list" });
|
|
15
|
+
const items = value && typeof value === "object" ? value.items : undefined;
|
|
16
|
+
if (!Array.isArray(items))
|
|
17
|
+
throw new Error("Frely returned an invalid service list.");
|
|
18
|
+
return items.map(parseServiceRecord);
|
|
19
|
+
},
|
|
20
|
+
async remove(serviceShareId) { await call({ action: "remove", serviceShareId }); },
|
|
21
|
+
async session(serviceShareId) { return parseServiceGrant(await call({ action: "session", serviceShareId })); },
|
|
22
|
+
async heartbeat(sessionId) {
|
|
23
|
+
const value = await call({ action: "heartbeat", sessionId });
|
|
24
|
+
if (!value || typeof value !== "object" || typeof value.active !== "boolean")
|
|
25
|
+
throw new Error("Frely returned an invalid service status.");
|
|
26
|
+
return value;
|
|
27
|
+
},
|
|
28
|
+
async revoke(sessionId) { await call({ action: "revoke", sessionId }); },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=service-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-control.js","sourceRoot":"","sources":["../../src/share/service-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAgE,MAAM,qBAAqB,CAAC;AAE1I,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAWxD,4IAA4I;AAC5I,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACrD,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,KAAK;YAClB,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,OAAO,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjI,CAAC;QACD,KAAK,CAAC,IAAI;YACR,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAA6B,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACtF,OAAO,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,KAAK,CAAC,SAAS,CAAC,SAAS;YACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAA8B,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACrK,OAAO,KAAuB,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type ServiceGrant, type ServiceType } from "./service-config.js";
|
|
2
|
+
import { type ServiceControl } from "./service-control.js";
|
|
3
|
+
import { type LocalService } from "./service-state.js";
|
|
4
|
+
import { ALLOWANCE_NOTE } from "./allowance.js";
|
|
5
|
+
import { type FrpcProcess } from "./run.js";
|
|
6
|
+
export { ALLOWANCE_NOTE };
|
|
7
|
+
export interface ServiceShareOptions {
|
|
8
|
+
readonly type: ServiceType;
|
|
9
|
+
readonly port: number;
|
|
10
|
+
readonly label: string;
|
|
11
|
+
readonly background: boolean;
|
|
12
|
+
readonly json: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function serviceUsage(): string;
|
|
15
|
+
export declare function parseServiceShareArguments(args: readonly string[]): ServiceShareOptions;
|
|
16
|
+
export interface ServiceSessionDeps {
|
|
17
|
+
readonly control: ServiceControl;
|
|
18
|
+
readonly ensureFrpc: () => Promise<string>;
|
|
19
|
+
readonly spawnFrpc: (binary: string, configPath: string) => FrpcProcess;
|
|
20
|
+
readonly write: (text: string) => void;
|
|
21
|
+
readonly signal: AbortSignal;
|
|
22
|
+
readonly heartbeatMs?: number;
|
|
23
|
+
readonly configLifetimeMs?: number;
|
|
24
|
+
/** Called once the session is up, with the grant (for the allowance line). */
|
|
25
|
+
readonly onGrant?: (grant: ServiceGrant) => void;
|
|
26
|
+
}
|
|
27
|
+
/** One session of one service: ask Frely for it, run frpc on it, heartbeat, and revoke when it ends. Returns why it ended. */
|
|
28
|
+
export declare function runServiceSession(service: Pick<LocalService, "serviceShareId" | "port">, deps: ServiceSessionDeps): Promise<{
|
|
29
|
+
reason: string;
|
|
30
|
+
stopped: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
export declare function allowanceLines(grant: ServiceGrant): string[];
|
|
33
|
+
/** Keeps one service connected until aborted: when a session ends for any reason but a stop, ask for a new one after a growing pause. */
|
|
34
|
+
export declare function keepServiceConnected(service: Pick<LocalService, "serviceShareId" | "port" | "label">, deps: ServiceSessionDeps, sleep?: (ms: number, signal: AbortSignal) => Promise<void>): Promise<void>;
|
|
35
|
+
/** Runs inside the device daemon: every service saved with `background` stays connected; a stop or removal in the state file ends it within seconds. */
|
|
36
|
+
export declare function superviseServices(options: {
|
|
37
|
+
signal: AbortSignal;
|
|
38
|
+
log: (text: string) => void;
|
|
39
|
+
pollMs?: number;
|
|
40
|
+
control?: () => Promise<ServiceControl>;
|
|
41
|
+
session?: Partial<ServiceSessionDeps>;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
export interface ServiceCommandIo {
|
|
44
|
+
readonly write: (text: string) => void;
|
|
45
|
+
}
|
|
46
|
+
export interface ServiceCommandDeps {
|
|
47
|
+
readonly control: () => Promise<ServiceControl>;
|
|
48
|
+
readonly probe: (port: number) => Promise<boolean>;
|
|
49
|
+
readonly ensureFrpc: () => Promise<string>;
|
|
50
|
+
readonly spawnFrpc: (binary: string, configPath: string) => FrpcProcess;
|
|
51
|
+
readonly signal: AbortSignal;
|
|
52
|
+
/** Installs / restarts the background service so it picks the service up. */
|
|
53
|
+
readonly installDaemon: () => Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
export declare function runServiceCommand(args: readonly string[], io: ServiceCommandIo, deps: ServiceCommandDeps): Promise<number>;
|