frely-cli 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.
Files changed (44) hide show
  1. package/README.md +157 -0
  2. package/dist/auth.d.ts +27 -0
  3. package/dist/auth.js +208 -0
  4. package/dist/auth.js.map +1 -0
  5. package/dist/device/control.d.ts +10 -0
  6. package/dist/device/control.js +164 -0
  7. package/dist/device/control.js.map +1 -0
  8. package/dist/device/identity.d.ts +16 -0
  9. package/dist/device/identity.js +49 -0
  10. package/dist/device/identity.js.map +1 -0
  11. package/dist/device/protocol.d.ts +34 -0
  12. package/dist/device/protocol.js +76 -0
  13. package/dist/device/protocol.js.map +1 -0
  14. package/dist/device/relay-client.d.ts +6 -0
  15. package/dist/device/relay-client.js +159 -0
  16. package/dist/device/relay-client.js.map +1 -0
  17. package/dist/device/state.d.ts +14 -0
  18. package/dist/device/state.js +34 -0
  19. package/dist/device/state.js.map +1 -0
  20. package/dist/diagnostics.d.ts +25 -0
  21. package/dist/diagnostics.js +64 -0
  22. package/dist/diagnostics.js.map +1 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +258 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/runtime/mcp.d.ts +3 -0
  27. package/dist/runtime/mcp.js +117 -0
  28. package/dist/runtime/mcp.js.map +1 -0
  29. package/dist/runtime/process-manager.d.ts +29 -0
  30. package/dist/runtime/process-manager.js +118 -0
  31. package/dist/runtime/process-manager.js.map +1 -0
  32. package/dist/runtime/relay-mcp.d.ts +9 -0
  33. package/dist/runtime/relay-mcp.js +101 -0
  34. package/dist/runtime/relay-mcp.js.map +1 -0
  35. package/dist/runtime/scheduler.d.ts +11 -0
  36. package/dist/runtime/scheduler.js +51 -0
  37. package/dist/runtime/scheduler.js.map +1 -0
  38. package/dist/runtime/workspace.d.ts +72 -0
  39. package/dist/runtime/workspace.js +318 -0
  40. package/dist/runtime/workspace.js.map +1 -0
  41. package/dist/service.d.ts +12 -0
  42. package/dist/service.js +142 -0
  43. package/dist/service.js.map +1 -0
  44. package/package.json +47 -0
@@ -0,0 +1,142 @@
1
+ import { execFile as execFileCallback } from "node:child_process";
2
+ import { chmod, mkdir, readFile, realpath, rm, writeFile } from "node:fs/promises";
3
+ import { homedir } from "node:os";
4
+ import { dirname, join, resolve } from "node:path";
5
+ import { promisify } from "node:util";
6
+ const execFile = promisify(execFileCallback);
7
+ const LABEL = "cloud.frely.cli-mcp";
8
+ export async function installMcpService(workspaceInput) {
9
+ const workspace = await realpath(resolve(workspaceInput));
10
+ const entry = await realpath(process.argv[1] ?? "");
11
+ const stateDir = frelyStateDir();
12
+ await mkdir(stateDir, { recursive: true, mode: 0o700 });
13
+ await chmod(stateDir, 0o700).catch(() => undefined);
14
+ await writeServiceConfig(workspace);
15
+ if (process.platform === "darwin") {
16
+ const path = launchAgentPath();
17
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
18
+ await writeFile(path, launchAgentPlist(entry, workspace, stateDir), { mode: 0o600 });
19
+ const domain = `gui/${process.getuid?.() ?? 0}`;
20
+ await execFile("launchctl", ["bootout", domain, path]).catch(() => undefined);
21
+ await execFile("launchctl", ["bootstrap", domain, path]);
22
+ await execFile("launchctl", ["kickstart", "-k", `${domain}/${LABEL}`]);
23
+ return serviceStatus();
24
+ }
25
+ if (process.platform === "linux") {
26
+ const path = systemdUnitPath();
27
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
28
+ await writeFile(path, systemdUnit(entry, workspace), { mode: 0o600 });
29
+ await execFile("systemctl", ["--user", "daemon-reload"]);
30
+ await execFile("systemctl", ["--user", "enable", "--now", "frely-mcp.service"]);
31
+ return serviceStatus();
32
+ }
33
+ throw new Error("Background MCP service setup supports macOS and Linux. Use `frely mcp serve` on this platform.");
34
+ }
35
+ export async function startMcpService() {
36
+ if (process.platform === "darwin") {
37
+ const path = launchAgentPath();
38
+ const domain = `gui/${process.getuid?.() ?? 0}`;
39
+ await execFile("launchctl", ["bootstrap", domain, path]).catch(async () => {
40
+ await execFile("launchctl", ["kickstart", "-k", `${domain}/${LABEL}`]);
41
+ });
42
+ return serviceStatus();
43
+ }
44
+ if (process.platform === "linux") {
45
+ await execFile("systemctl", ["--user", "start", "frely-mcp.service"]);
46
+ return serviceStatus();
47
+ }
48
+ throw new Error("Background MCP service is not supported on this platform.");
49
+ }
50
+ export async function stopMcpService() {
51
+ if (process.platform === "darwin") {
52
+ const path = launchAgentPath();
53
+ await execFile("launchctl", ["bootout", `gui/${process.getuid?.() ?? 0}`, path]).catch(() => undefined);
54
+ return serviceStatus();
55
+ }
56
+ if (process.platform === "linux") {
57
+ await execFile("systemctl", ["--user", "stop", "frely-mcp.service"]).catch(() => undefined);
58
+ return serviceStatus();
59
+ }
60
+ throw new Error("Background MCP service is not supported on this platform.");
61
+ }
62
+ export async function uninstallMcpService() {
63
+ await stopMcpService().catch(() => undefined);
64
+ if (process.platform === "darwin")
65
+ await rm(launchAgentPath(), { force: true });
66
+ else if (process.platform === "linux") {
67
+ await execFile("systemctl", ["--user", "disable", "frely-mcp.service"]).catch(() => undefined);
68
+ await rm(systemdUnitPath(), { force: true });
69
+ await execFile("systemctl", ["--user", "daemon-reload"]).catch(() => undefined);
70
+ }
71
+ await rm(serviceConfigPath(), { force: true });
72
+ }
73
+ export async function serviceStatus() {
74
+ const config = await readServiceConfig();
75
+ if (process.platform === "darwin") {
76
+ const path = launchAgentPath();
77
+ const installed = await fileExists(path);
78
+ let active = false;
79
+ if (installed) {
80
+ const domain = `gui/${process.getuid?.() ?? 0}`;
81
+ active = await execFile("launchctl", ["print", `${domain}/${LABEL}`]).then(() => true, () => false);
82
+ }
83
+ return { installed, active, platform: "darwin", ...(config ? { workspace: config.workspace } : {}), ...(installed ? { definitionPath: path } : {}) };
84
+ }
85
+ if (process.platform === "linux") {
86
+ const path = systemdUnitPath();
87
+ const installed = await fileExists(path);
88
+ const active = installed && await execFile("systemctl", ["--user", "is-active", "--quiet", "frely-mcp.service"]).then(() => true, () => false);
89
+ return { installed, active, platform: "linux", ...(config ? { workspace: config.workspace } : {}), ...(installed ? { definitionPath: path } : {}) };
90
+ }
91
+ return { installed: false, active: false, platform: process.platform, ...(config ? { workspace: config.workspace } : {}) };
92
+ }
93
+ function frelyConfigDir() {
94
+ return join(process.env.XDG_CONFIG_HOME || join(homedir(), ".config"), "frely");
95
+ }
96
+ function frelyStateDir() {
97
+ return join(process.env.XDG_STATE_HOME || join(homedir(), ".local", "state"), "frely");
98
+ }
99
+ function serviceConfigPath() {
100
+ return join(frelyConfigDir(), "mcp-service.json");
101
+ }
102
+ function launchAgentPath() {
103
+ return join(homedir(), "Library", "LaunchAgents", `${LABEL}.plist`);
104
+ }
105
+ function systemdUnitPath() {
106
+ return join(frelyConfigDir(), "systemd", "user", "frely-mcp.service");
107
+ }
108
+ async function writeServiceConfig(workspace) {
109
+ const path = serviceConfigPath();
110
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
111
+ await writeFile(path, `${JSON.stringify({ version: 1, workspace }, null, 2)}\n`, { mode: 0o600 });
112
+ }
113
+ async function readServiceConfig() {
114
+ const raw = await readFile(serviceConfigPath(), "utf8").catch(() => null);
115
+ if (!raw)
116
+ return null;
117
+ try {
118
+ const value = JSON.parse(raw);
119
+ return typeof value.workspace === "string" ? { workspace: value.workspace } : null;
120
+ }
121
+ catch {
122
+ return null;
123
+ }
124
+ }
125
+ async function fileExists(path) {
126
+ return readFile(path).then(() => true, () => false);
127
+ }
128
+ function launchAgentPlist(entry, workspace, stateDir) {
129
+ const path = process.env.PATH || "/usr/local/bin:/usr/bin:/bin";
130
+ return `<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0"><dict>\n<key>Label</key><string>${LABEL}</string>\n<key>ProgramArguments</key><array><string>${xml(process.execPath)}</string><string>${xml(entry)}</string><string>mcp</string><string>serve</string><string>--workspace</string><string>${xml(workspace)}</string></array>\n<key>EnvironmentVariables</key><dict><key>PATH</key><string>${xml(path)}</string></dict>\n<key>RunAtLoad</key><true/><key>KeepAlive</key><true/>\n<key>StandardOutPath</key><string>${xml(join(stateDir, "mcp.log"))}</string>\n<key>StandardErrorPath</key><string>${xml(join(stateDir, "mcp.log"))}</string>\n</dict></plist>\n`;
131
+ }
132
+ function systemdUnit(entry, workspace) {
133
+ const path = process.env.PATH || "/usr/local/bin:/usr/bin:/bin";
134
+ return `[Unit]\nDescription=Frely MCP Device Relay\nAfter=network-online.target\n\n[Service]\nType=simple\nExecStart=${systemdQuote(process.execPath)} ${systemdQuote(entry)} mcp serve --workspace ${systemdQuote(workspace)}\nRestart=always\nRestartSec=3\nEnvironment=${systemdQuote(`PATH=${path}`)}\n\n[Install]\nWantedBy=default.target\n`;
135
+ }
136
+ function xml(value) {
137
+ return value.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;").replace(/'/gu, "&apos;");
138
+ }
139
+ function systemdQuote(value) {
140
+ return `"${value.replace(/\\/gu, "\\\\").replace(/"/gu, '\\"')}"`;
141
+ }
142
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "frely-cli",
3
+ "version": "0.3.0",
4
+ "description": "Frely account CLI and local MCP runtime",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/FrelyHQ/frely-cli.git"
8
+ },
9
+ "homepage": "https://github.com/FrelyHQ/frely-cli#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/FrelyHQ/frely-cli/issues"
12
+ },
13
+ "type": "module",
14
+ "bin": {
15
+ "frely": "dist/index.js"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "scripts": {
22
+ "build": "rm -rf dist && tsc -p tsconfig.build.json",
23
+ "check": "tsc -p tsconfig.json --noEmit",
24
+ "test": "rm -rf .test-dist && tsc -p tsconfig.test.json && node --test .test-dist/**/*.test.js && rm -rf .test-dist",
25
+ "start": "node dist/index.js",
26
+ "prepack": "npm run check && npm test && npm run build"
27
+ },
28
+ "engines": {
29
+ "node": ">=22"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "dependencies": {
35
+ "@modelcontextprotocol/sdk": "^1.18.1",
36
+ "keytar": "^7.9.0",
37
+ "ws": "^8.18.3"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.18.1",
41
+ "@types/ws": "^8.18.1",
42
+ "typescript": "^5.9.2"
43
+ },
44
+ "allowScripts": {
45
+ "keytar@7.9.0": true
46
+ }
47
+ }