frely-cli 0.7.1 → 0.8.3

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 (91) hide show
  1. package/README.md +25 -35
  2. package/README.zh-CN.md +25 -35
  3. package/dist/agent/agent-service.d.ts +77 -0
  4. package/dist/agent/agent-service.js +348 -0
  5. package/dist/agent/agent-service.js.map +1 -0
  6. package/dist/agent/app-install.d.ts +49 -0
  7. package/dist/agent/app-install.js +133 -0
  8. package/dist/agent/app-install.js.map +1 -0
  9. package/dist/agent/app-key.d.ts +14 -0
  10. package/dist/agent/app-key.js +46 -0
  11. package/dist/agent/app-key.js.map +1 -0
  12. package/dist/agent/compose.d.ts +23 -0
  13. package/dist/agent/compose.js +42 -0
  14. package/dist/agent/compose.js.map +1 -0
  15. package/dist/agent/ops-server.d.ts +18 -0
  16. package/dist/agent/ops-server.js +175 -0
  17. package/dist/agent/ops-server.js.map +1 -0
  18. package/dist/agent/ops-stdio.d.ts +5 -0
  19. package/dist/agent/ops-stdio.js +47 -0
  20. package/dist/agent/ops-stdio.js.map +1 -0
  21. package/dist/agent/ops.d.ts +25 -0
  22. package/dist/agent/ops.js +82 -0
  23. package/dist/agent/ops.js.map +1 -0
  24. package/dist/agent/protocol.d.ts +72 -0
  25. package/dist/agent/protocol.js +195 -0
  26. package/dist/agent/protocol.js.map +1 -0
  27. package/dist/agent/supervisor.d.ts +80 -0
  28. package/dist/agent/supervisor.js +278 -0
  29. package/dist/agent/supervisor.js.map +1 -0
  30. package/dist/agent/task-store.d.ts +82 -0
  31. package/dist/agent/task-store.js +220 -0
  32. package/dist/agent/task-store.js.map +1 -0
  33. package/dist/agent/tool-executor.d.ts +28 -0
  34. package/dist/agent/tool-executor.js +113 -0
  35. package/dist/agent/tool-executor.js.map +1 -0
  36. package/dist/agent/worktrees.d.ts +35 -0
  37. package/dist/agent/worktrees.js +143 -0
  38. package/dist/agent/worktrees.js.map +1 -0
  39. package/dist/agent-help.d.ts +198 -210
  40. package/dist/agent-help.js +47 -62
  41. package/dist/agent-help.js.map +1 -1
  42. package/dist/cloud.d.ts +1 -1
  43. package/dist/cloud.js +6 -13
  44. package/dist/cloud.js.map +1 -1
  45. package/dist/device/protocol.d.ts +11 -2
  46. package/dist/device/protocol.js +18 -2
  47. package/dist/device/protocol.js.map +1 -1
  48. package/dist/device/relay-client.d.ts +10 -1
  49. package/dist/device/relay-client.js +38 -11
  50. package/dist/device/relay-client.js.map +1 -1
  51. package/dist/diagnostics.js +12 -4
  52. package/dist/diagnostics.js.map +1 -1
  53. package/dist/index.js +195 -141
  54. package/dist/index.js.map +1 -1
  55. package/dist/key-budget.js +2 -2
  56. package/dist/key-budget.js.map +1 -1
  57. package/dist/mcp-authorization.js +9 -7
  58. package/dist/mcp-authorization.js.map +1 -1
  59. package/dist/mcp-command.d.ts +12 -4
  60. package/dist/mcp-command.js +54 -48
  61. package/dist/mcp-command.js.map +1 -1
  62. package/dist/provider/state.d.ts +2 -0
  63. package/dist/provider/state.js +1 -0
  64. package/dist/provider/state.js.map +1 -1
  65. package/dist/runtime/mcp-lease.js +1 -1
  66. package/dist/runtime/mcp-lease.js.map +1 -1
  67. package/dist/runtime/mcp.d.ts +139 -0
  68. package/dist/runtime/mcp.js +30 -0
  69. package/dist/runtime/mcp.js.map +1 -1
  70. package/dist/runtime/relay-agent.d.ts +25 -0
  71. package/dist/runtime/relay-agent.js +63 -0
  72. package/dist/runtime/relay-agent.js.map +1 -0
  73. package/dist/runtime/relay-mcp.d.ts +3 -1
  74. package/dist/runtime/relay-mcp.js +6 -1
  75. package/dist/runtime/relay-mcp.js.map +1 -1
  76. package/dist/runtime/relay-session.d.ts +2 -2
  77. package/dist/runtime/relay-session.js +1 -1
  78. package/dist/runtime/relay-session.js.map +1 -1
  79. package/dist/runtime/sandbox.d.ts +2 -0
  80. package/dist/runtime/sandbox.js +13 -0
  81. package/dist/runtime/sandbox.js.map +1 -1
  82. package/dist/runtime/workspace-registry.js +1 -1
  83. package/dist/skill/access.d.ts +4 -2
  84. package/dist/skill/access.js +7 -3
  85. package/dist/skill/access.js.map +1 -1
  86. package/dist/upgrade/installation.js +1 -1
  87. package/dist/upgrade/installation.js.map +1 -1
  88. package/dist/workspace-command.d.ts +1 -1
  89. package/dist/workspace-command.js +2 -2
  90. package/dist/workspace-command.js.map +1 -1
  91. package/package.json +1 -1
@@ -37,7 +37,7 @@ export async function inspectMcpMetadata() {
37
37
  if (value.version !== 1 || typeof value.relayUrl !== "string" || typeof value.mcpResource !== "string" || typeof value.userId !== "string")
38
38
  throw new Error("MCP configuration is invalid.");
39
39
  value.grant = validateView(value.grant);
40
- value.mcpResource = validateMcpResource(value.mcpResource, value.grant.deviceId);
40
+ value.mcpResource = validateMcpResource(value.mcpResource);
41
41
  return value;
42
42
  }
43
43
  async function writeMetadata(metadata) {
@@ -56,7 +56,7 @@ export async function loadMcpAuthorization() {
56
56
  return null;
57
57
  const raw = await credentialStore.getPassword(SERVICE, account(metadata));
58
58
  if (!raw)
59
- throw new Error("MCP secure credential is unavailable. Run frely mcp renew; no replacement key was generated.");
59
+ throw new Error("MCP secure credential is unavailable. Run frely mcp --days 90 to renew; no replacement key was generated.");
60
60
  const value = JSON.parse(raw);
61
61
  if (value.version !== 1 || JSON.stringify(value.metadata) !== JSON.stringify(metadata) || typeof value.privateKeyPem !== "string")
62
62
  throw new Error("MCP credential does not match its authorization.");
@@ -79,7 +79,7 @@ export async function requireMcpAuthorization(workspace) {
79
79
  const current = await readView(response);
80
80
  assertMcpActive(current);
81
81
  if (JSON.stringify(current) !== JSON.stringify(authorization.grant))
82
- throw new Error("MCP authorization changed. Run frely mcp renew.");
82
+ throw new Error("MCP authorization changed. Run frely mcp --days 90 to renew.");
83
83
  return authorization;
84
84
  }
85
85
  export async function setupMcpAuthorization(workspaceInput, daysInput, renew = false, notify) {
@@ -169,7 +169,7 @@ export async function revokeMcpAuthorization() {
169
169
  }
170
170
  export function assertMcpActive(view, now = Date.now()) {
171
171
  if (view.status !== "active" || !view.expiresAt || !Number.isFinite(Date.parse(view.expiresAt)) || Date.parse(view.expiresAt) <= now) {
172
- throw new Error("MCP_AUTHORIZATION_EXPIRED: run frely mcp renew. Basic features remain available.");
172
+ throw new Error("MCP_AUTHORIZATION_EXPIRED: run frely mcp to renew. Basic features remain available.");
173
173
  }
174
174
  }
175
175
  function validateView(input) {
@@ -189,7 +189,9 @@ function validateView(input) {
189
189
  return { id: value.id, deviceId: value.deviceId, workspace: value.workspace, keyThumbprint: value.keyThumbprint,
190
190
  days: value.days, approvalDeadline: value.approvalDeadline, approvedAt: value.approvedAt, expiresAt: value.expiresAt, status: value.status };
191
191
  }
192
- function validateMcpResource(input, deviceId) {
192
+ // One account-level URL reaches every MCP-enabled device; tools select a device by argument.
193
+ const DEVICE_MCP_PATH = "/mcp/devices";
194
+ function validateMcpResource(input) {
193
195
  if (typeof input !== "string" || input.length > 4096)
194
196
  throw new Error("MCP resource URL is invalid.");
195
197
  let url;
@@ -200,7 +202,7 @@ function validateMcpResource(input, deviceId) {
200
202
  throw new Error("MCP resource URL is invalid.");
201
203
  }
202
204
  const loopbackHttp = url.protocol === "http:" && ["127.0.0.1", "localhost", "::1"].includes(url.hostname);
203
- if ((url.protocol !== "https:" && !loopbackHttp) || url.username || url.password || url.search || url.hash || url.pathname !== `/mcp/${deviceId}`) {
205
+ if ((url.protocol !== "https:" && !loopbackHttp) || url.username || url.password || url.search || url.hash || url.pathname !== DEVICE_MCP_PATH) {
204
206
  throw new Error("MCP resource URL is invalid.");
205
207
  }
206
208
  return url.toString();
@@ -211,7 +213,7 @@ async function readRequest(response) {
211
213
  const payload = await response.json();
212
214
  const grant = validateView(payload);
213
215
  const record = payload;
214
- return { grant, mcpResource: validateMcpResource(record.mcpResource, grant.deviceId) };
216
+ return { grant, mcpResource: validateMcpResource(record.mcpResource) };
215
217
  }
216
218
  async function readView(response) {
217
219
  if (!response.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-authorization.js","sourceRoot":"","sources":["../src/mcp-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,OAAO,GAAG,gCAAgC,CAAC;AACjD,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,6BAA6B,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEtI,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA8B;IAA1D,YAA4B,IAAY,EAAkB,MAAc,EAAE,OAAe;QACvF,KAAK,CAAC,OAAO,CAAC,CAAC;QADW,SAAI,GAAJ,IAAI,CAAQ;QAAkB,WAAM,GAAN,MAAM,CAAQ;QAEtE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AASD,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACtK,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,UAAU,eAAe,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC9J,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7L,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AACD,KAAK,UAAU,aAAa,CAAC,QAAqB;IAChD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAChE,CAAC;AACD,MAAM,OAAO,GAAG,CAAC,QAAqB,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAE1H,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAqB;IAC/D,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACvM,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClI,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;AACzG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,SAAkB;IAC9D,MAAM,aAAa,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1E,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAChN,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACnK,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,cAAc,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/I,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACxI,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,cAAsB,EAAE,SAA2B,EAAE,KAAK,GAAG,KAAK,EAC5G,MAA0G;IAC1G,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1D,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACtG,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;WACnH,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACzF,IAAI,CAAC;YACH,OAAO,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,MAAM,KAAK,CAAC;YACjG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,uBAAuB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IACD,yFAAyF;IACzF,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC;QAAC,IAAI,MAAM,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAAC,CAAC;YACxH,CAAC;QAAC,IAAI,CAAC,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAAC,CAAC;IAC9H,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpH,MAAM,QAAQ,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5J,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS;YAC3I,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa;YACvG,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAChQ,IAAI,QAAQ,GAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACrJ,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAsB,CAAC,CAAC,CAAC;IACxJ,MAAM,IAAI,EAAE,CAAC,CAAC,mEAAmE;IACjF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,uBAAuB,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtG,MAAM,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,cAAc,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjI,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC7O,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC3C,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;gBAAE,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACpG,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxE,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrJ,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACjL,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9E,wEAAwE;IACxE,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;AAClC,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,IAA0B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;QACrI,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AACD,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3H,MAAM,KAAK,GAAG,KAA6B,CAAC;IAC5C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;WAC1H,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;WACxH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACrH,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;eAC1E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACvJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;QAC7G,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACjJ,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAc,EAAE,QAAgB;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtG,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAAC,CAAC;IACxF,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1G,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,QAAQ,EAAE,EAAE,CAAC;QAClJ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AACD,KAAK,UAAU,WAAW,CAAC,QAAkB;IAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,OAAkC,CAAC;IAClD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzF,CAAC;AACD,KAAK,UAAU,QAAQ,CAAC,QAAkB;IACxC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7D,OAAO,YAAY,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,QAAkB;IAC1D,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,IAAI,CAAC;QAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3H,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5F,CAAC,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C,QAAQ,CAAC,MAAM,IAAI,CAAC;IAClI,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"mcp-authorization.js","sourceRoot":"","sources":["../src/mcp-authorization.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
1
  import { type McpAuthorization } from "./mcp-authorization.js";
2
2
  import { installMcpService } from "./service.js";
3
3
  /**
4
- * Keep the public device-MCP entry client-neutral. `setup` is implicit when no
5
- * subcommand is given; every other action must be named explicitly.
4
+ * Keep the public device-MCP entry client-neutral. A bare `frely mcp` is the
5
+ * idempotent entry (internally `setup`); every other action must be named.
6
6
  */
7
7
  export declare function normalizeMcpArgs(input: readonly string[]): string[];
8
- /** Bootstrap only an unconfigured device; existing grants retain their workspace and lifecycle. */
9
- export declare function resolveMcpUrlAuthorization(notify: (message: string) => void, installService?: typeof installMcpService): Promise<McpAuthorization>;
8
+ /**
9
+ * `frely mcp`: set up an unconfigured device, renew an expired grant (or when
10
+ * `--days` is given), and otherwise return the existing authorization unchanged.
11
+ * All prompts go through `notify` so stdout can carry only the URL or JSON.
12
+ */
13
+ export declare function ensureMcpAuthorization(input: {
14
+ workspace?: string;
15
+ days?: string;
16
+ notify: (message: string) => void;
17
+ }, installService?: typeof installMcpService): Promise<McpAuthorization>;
@@ -1,9 +1,10 @@
1
- import { homedir } from "node:os";
1
+ import { realpath } from "node:fs/promises";
2
+ import { resolve } from "node:path";
2
3
  import { inspectMcpMetadata, requireMcpAuthorization, setupMcpAuthorization } from "./mcp-authorization.js";
3
4
  import { installMcpService } from "./service.js";
4
5
  /**
5
- * Keep the public device-MCP entry client-neutral. `setup` is implicit when no
6
- * subcommand is given; every other action must be named explicitly.
6
+ * Keep the public device-MCP entry client-neutral. A bare `frely mcp` is the
7
+ * idempotent entry (internally `setup`); every other action must be named.
7
8
  */
8
9
  export function normalizeMcpArgs(input) {
9
10
  const args = [...input];
@@ -11,53 +12,43 @@ export function normalizeMcpArgs(input) {
11
12
  return args;
12
13
  if (args.slice(1).some((arg) => arg === "--help" || arg === "-h") || args[1] === "help")
13
14
  return ["mcp", "help"];
15
+ // Upgrade bridge: Windows upgrade commands printed by 0.7.x run `mcp service stop|start`.
16
+ if (args[1] === "service" && args.length === 3 && (args[2] === "start" || args[2] === "stop"))
17
+ return ["mcp", args[2]];
14
18
  if (!args[1] || args[1].startsWith("-"))
15
19
  args.splice(1, 0, "setup");
20
+ else if (!["workspace", "stop", "start", "remove", "serve", "stdio"].includes(args[1]))
21
+ throw new Error("Unknown device MCP command. Run frely mcp --help.");
16
22
  const action = args[1];
17
- const valueOptions = {
18
- setup: ["--workspace", "--days"], renew: ["--workspace", "--days"],
19
- url: [], revoke: [],
20
- serve: ["--workspace", "--service-config-home", "--service-credential-store"],
21
- stdio: ["--workspace"],
22
- };
23
- const flags = {
24
- url: ["--json"],
25
- serve: ["--provider-only"],
26
- "workspace.list": ["--json"],
27
- };
28
- if (action === "service") {
29
- if (!args[2] || !["start", "stop", "uninstall"].includes(args[2]))
30
- throw new Error("Use frely mcp service start|stop|uninstall. Inspect status with frely doctor.");
31
- if (args.length > 3)
32
- throw new Error("Unsupported MCP service option. Run frely mcp --help.");
23
+ if (action === "stop" || action === "start" || action === "remove") {
24
+ if (args.length > 2)
25
+ throw new Error("Unsupported MCP option. Run frely mcp --help.");
33
26
  return args;
34
27
  }
35
28
  if (action === "workspace") {
36
29
  const subaction = args[2];
37
- if (!subaction || !["add", "list", "remove"].includes(subaction)) {
38
- throw new Error("Use frely mcp workspace add|list|remove. Run frely mcp --help.");
39
- }
40
- if (subaction === "add") {
41
- if (!args[3])
42
- throw new Error("frely mcp workspace add requires a path argument.");
43
- if (args.length > 4)
44
- throw new Error("Unsupported workspace add option. Run frely mcp --help.");
45
- }
46
- else if (subaction === "list") {
47
- if (args.length > 3 && !args.slice(3).every((arg) => arg === "--json")) {
48
- throw new Error("Unsupported workspace list option. Run frely mcp --help.");
49
- }
50
- }
51
- else if (subaction === "remove") {
52
- if (!args[3])
53
- throw new Error("frely mcp workspace remove requires a path argument.");
54
- if (args.length > 4)
55
- throw new Error("Unsupported workspace remove option. Run frely mcp --help.");
30
+ if (subaction === undefined || subaction === "--json") {
31
+ if (args.length > 3 || (subaction !== undefined && subaction !== "--json"))
32
+ throw new Error("Unsupported workspace option. Run frely mcp --help.");
33
+ return ["mcp", "workspace", "list", ...args.slice(2)];
56
34
  }
35
+ if (subaction !== "add" && subaction !== "remove")
36
+ throw new Error("Use frely mcp workspace [add|remove <path>]. Run frely mcp --help.");
37
+ if (!args[3])
38
+ throw new Error(`frely mcp workspace ${subaction} requires a path argument.`);
39
+ if (args.length > 4)
40
+ throw new Error(`Unsupported workspace ${subaction} option. Run frely mcp --help.`);
57
41
  return args;
58
42
  }
59
- if (!Object.hasOwn(valueOptions, action))
60
- throw new Error("Unknown device MCP command. Run frely mcp --help.");
43
+ const valueOptions = {
44
+ setup: ["--workspace", "--days"],
45
+ serve: ["--workspace", "--service-config-home", "--service-credential-store"],
46
+ stdio: ["--workspace"],
47
+ };
48
+ const flags = {
49
+ setup: ["--json"],
50
+ serve: ["--provider-only"],
51
+ };
61
52
  const seen = new Set();
62
53
  for (let i = 2; i < args.length; i++) {
63
54
  const arg = args[i];
@@ -75,17 +66,32 @@ export function normalizeMcpArgs(input) {
75
66
  }
76
67
  return args;
77
68
  }
78
- /** Bootstrap only an unconfigured device; existing grants retain their workspace and lifecycle. */
79
- export async function resolveMcpUrlAuthorization(notify, installService = installMcpService) {
80
- if (await inspectMcpMetadata())
69
+ function grantInactive(metadata, now = Date.now()) {
70
+ const expiresAt = metadata.grant.expiresAt ? Date.parse(metadata.grant.expiresAt) : NaN;
71
+ return metadata.grant.status !== "active" || !Number.isFinite(expiresAt) || expiresAt <= now;
72
+ }
73
+ /**
74
+ * `frely mcp`: set up an unconfigured device, renew an expired grant (or when
75
+ * `--days` is given), and otherwise return the existing authorization unchanged.
76
+ * All prompts go through `notify` so stdout can carry only the URL or JSON.
77
+ */
78
+ export async function ensureMcpAuthorization(input, installService = installMcpService) {
79
+ const metadata = await inspectMcpMetadata();
80
+ if (metadata && input.workspace !== undefined) {
81
+ const requested = await realpath(resolve(input.workspace));
82
+ if (requested !== metadata.grant.workspace) {
83
+ throw new Error(`Device MCP is already enabled for ${metadata.grant.workspace}. Add another directory with frely mcp workspace add <path>, or run frely mcp remove first to change the primary workspace.`);
84
+ }
85
+ }
86
+ if (metadata && !grantInactive(metadata) && input.days === undefined)
81
87
  return requireMcpAuthorization();
82
- const workspace = homedir();
83
- notify(`No MCP workspace is configured. Setting up your home directory: ${workspace}\n`);
84
- const authorization = await setupMcpAuthorization(workspace, undefined, false, ({ verificationUri, keyThumbprint, days }) => {
85
- notify(`Device MCP execution authorization: ${days} days\nMCP key: ${keyThumbprint}\nApprove: ${verificationUri}\n`);
88
+ const workspace = metadata?.grant.workspace ?? input.workspace ?? process.cwd();
89
+ input.notify(metadata ? `Renewing device MCP authorization for ${workspace}\n` : `Enabling device MCP for ${workspace}\n`);
90
+ const authorization = await setupMcpAuthorization(workspace, input.days, Boolean(metadata), ({ verificationUri, keyThumbprint, days }) => {
91
+ input.notify(`Device MCP execution authorization: ${days} days\nMCP key: ${keyThumbprint}\nApprove: ${verificationUri}\n`);
86
92
  });
87
93
  const service = await installService(authorization.grant.workspace);
88
- notify(`Background service: ${service.active ? "running" : "installed"}\n`);
94
+ input.notify(`Background service: ${service.active ? "running" : "installed"}\n`);
89
95
  return authorization;
90
96
  }
91
97
  //# sourceMappingURL=mcp-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export interface LocalProviderBinding {
6
6
  providerBaseUrl: string;
7
7
  models: string[];
8
8
  createdAt: string;
9
+ /** Prepared on the server but not finalized yet; `frely provider share` resumes it. */
10
+ pending?: boolean;
9
11
  }
10
12
  export declare function localProviderStatePath(): string;
11
13
  export declare function listLocalProviders(): Promise<LocalProviderBinding[]>;
@@ -91,6 +91,7 @@ function parseProvider(value) {
91
91
  providerBaseUrl: String(record.providerBaseUrl ?? ""),
92
92
  models: Array.isArray(record.models) ? record.models.map(String) : [],
93
93
  createdAt: String(record.createdAt ?? ""),
94
+ ...(record.pending === true ? { pending: true } : {}),
94
95
  };
95
96
  validateProvider(provider);
96
97
  return provider;
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/provider/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/provider/state.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export class McpLease {
21
21
  assert() {
22
22
  if (this.controller.signal.aborted || this.wall() >= this.expiresAt || this.elapsed() >= this.elapsedDeadline) {
23
23
  this.close();
24
- throw new Error("MCP_AUTHORIZATION_EXPIRED: remote execution is disabled; run frely mcp renew.");
24
+ throw new Error("MCP_AUTHORIZATION_EXPIRED: remote execution is disabled; run frely mcp to renew.");
25
25
  }
26
26
  }
27
27
  close() { clearTimeout(this.timer); this.controller.abort(); }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-lease.js","sourceRoot":"","sources":["../../src/runtime/mcp-lease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,iGAAiG;AACjG,MAAM,OAAO,QAAQ;IAIE;IAAkC;IACpC;IAA0C;IAJpD,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,KAAK,CAA4C;IACxC,eAAe,CAAS;IACzC,YAAqB,eAAuB,EAAW,SAAiB,EACrD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAmB,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QADzE,oBAAe,GAAf,eAAe,CAAQ;QAAW,cAAS,GAAT,SAAS,CAAQ;QACrD,SAAI,GAAJ,IAAI,CAAmB;QAAmB,YAAO,GAAP,OAAO,CAA0B;QAC5F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IACD,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9G,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IACD,KAAK,KAAW,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5D,GAAG;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"mcp-lease.js","sourceRoot":"","sources":["../../src/runtime/mcp-lease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,iGAAiG;AACjG,MAAM,OAAO,QAAQ;IAIE;IAAkC;IACpC;IAA0C;IAJpD,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,KAAK,CAA4C;IACxC,eAAe,CAAS;IACzC,YAAqB,eAAuB,EAAW,SAAiB,EACrD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAmB,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QADzE,oBAAe,GAAf,eAAe,CAAQ;QAAW,cAAS,GAAT,SAAS,CAAQ;QACrD,SAAI,GAAJ,IAAI,CAAmB;QAAmB,YAAO,GAAP,OAAO,CAA0B;QAC5F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IACD,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9G,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,KAAK,KAAW,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5D,GAAG;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -6,6 +6,145 @@ export interface McpRuntimeOptions {
6
6
  signal?: AbortSignal;
7
7
  maxConcurrentCommands?: number;
8
8
  onToolError?: (requestId: string | number, tool: string, error: unknown) => void;
9
+ /** Enabled toolsets on the current MCP authorization; absent or empty means workspace only (plan §6.4). */
10
+ getToolsets?: () => string[];
11
+ /** Bridge for agent_* tools (frely-app toolset). Without it agent tools stay hidden. */
12
+ callAgent?: (op: string, args: Record<string, unknown>) => Promise<unknown>;
9
13
  }
14
+ /** agent_* MCP tools exposed when the frely-app toolset is enabled (plan §5). */
15
+ export declare const AGENT_TOOLS: readonly [{
16
+ readonly op: "agent_start_task";
17
+ readonly description: "Start an agent task in a worktree. Returns immediately; poll agent_get_task/agent_get_events.";
18
+ readonly properties: {
19
+ readonly goal: {
20
+ default?: string;
21
+ type: string;
22
+ description: string;
23
+ };
24
+ readonly workspace: {
25
+ default?: string;
26
+ type: string;
27
+ description: string;
28
+ };
29
+ readonly model: {
30
+ default?: string;
31
+ type: string;
32
+ description: string;
33
+ };
34
+ readonly maxCostUsd: {
35
+ readonly type: "number";
36
+ readonly minimum: 0.01;
37
+ readonly maximum: 50;
38
+ };
39
+ };
40
+ readonly required: readonly ["goal"];
41
+ }, {
42
+ readonly op: "agent_list_tasks";
43
+ readonly description: "List agent tasks for a workspace.";
44
+ readonly properties: {
45
+ readonly workspace: {
46
+ default?: string;
47
+ type: string;
48
+ description: string;
49
+ };
50
+ };
51
+ readonly required: readonly [];
52
+ }, {
53
+ readonly op: "agent_get_task";
54
+ readonly description: "Fetch one agent task by id.";
55
+ readonly properties: {
56
+ readonly taskId: {
57
+ default?: string;
58
+ type: string;
59
+ description: string;
60
+ };
61
+ };
62
+ readonly required: readonly ["taskId"];
63
+ }, {
64
+ readonly op: "agent_get_events";
65
+ readonly description: "Page agent task events from a cursor.";
66
+ readonly properties: {
67
+ readonly taskId: {
68
+ default?: string;
69
+ type: string;
70
+ description: string;
71
+ };
72
+ readonly cursor: {
73
+ readonly type: "integer";
74
+ readonly minimum: 0;
75
+ };
76
+ };
77
+ readonly required: readonly ["taskId"];
78
+ }, {
79
+ readonly op: "agent_send_message";
80
+ readonly description: "Send a user message to a running agent task.";
81
+ readonly properties: {
82
+ readonly taskId: {
83
+ default?: string;
84
+ type: string;
85
+ description: string;
86
+ };
87
+ readonly message: {
88
+ default?: string;
89
+ type: string;
90
+ description: string;
91
+ };
92
+ };
93
+ readonly required: readonly ["taskId", "message"];
94
+ }, {
95
+ readonly op: "agent_get_diff";
96
+ readonly description: "Get the unified diff of a task worktree.";
97
+ readonly properties: {
98
+ readonly taskId: {
99
+ default?: string;
100
+ type: string;
101
+ description: string;
102
+ };
103
+ readonly path: {
104
+ default?: string;
105
+ type: string;
106
+ description: string;
107
+ };
108
+ };
109
+ readonly required: readonly ["taskId"];
110
+ }, {
111
+ readonly op: "agent_request_merge";
112
+ readonly description: "Ask the task to wrap up and produce a merge request.";
113
+ readonly properties: {
114
+ readonly taskId: {
115
+ default?: string;
116
+ type: string;
117
+ description: string;
118
+ };
119
+ readonly note: {
120
+ default?: string;
121
+ type: string;
122
+ description: string;
123
+ };
124
+ };
125
+ readonly required: readonly ["taskId"];
126
+ }, {
127
+ readonly op: "agent_discard_task";
128
+ readonly description: "Discard a task and delete its worktree.";
129
+ readonly properties: {
130
+ readonly taskId: {
131
+ default?: string;
132
+ type: string;
133
+ description: string;
134
+ };
135
+ };
136
+ readonly required: readonly ["taskId"];
137
+ }, {
138
+ readonly op: "agent_cancel_task";
139
+ readonly description: "Cancel a task; the worktree is kept.";
140
+ readonly properties: {
141
+ readonly taskId: {
142
+ default?: string;
143
+ type: string;
144
+ description: string;
145
+ };
146
+ };
147
+ readonly required: readonly ["taskId"];
148
+ }];
10
149
  export declare function createMcpServer(workspaceInput: string, options?: McpRuntimeOptions): Promise<Server>;
11
150
  export declare function startStdioMcp(workspaceInput: string, options?: McpRuntimeOptions): Promise<void>;
@@ -7,6 +7,26 @@ import { safeEnv, Workspace } from "./workspace.js";
7
7
  import { VERSION } from "../version.js";
8
8
  import { ensureWorkspaceRegistered, listWorkspaces } from "./workspace-registry.js";
9
9
  import { resolveWorkspace } from "./workspace-router.js";
10
+ /** agent_* MCP tools exposed when the frely-app toolset is enabled (plan §5). */
11
+ export const AGENT_TOOLS = [
12
+ { op: "agent_start_task", description: "Start an agent task in a worktree. Returns immediately; poll agent_get_task/agent_get_events.", properties: { goal: stringSchema("What the task should accomplish"), workspace: stringSchema("Workspace root (defaults to the relay workspace)"), model: stringSchema("Model id"), maxCostUsd: { type: "number", minimum: 0.01, maximum: 50 } }, required: ["goal"] },
13
+ { op: "agent_list_tasks", description: "List agent tasks for a workspace.", properties: { workspace: stringSchema("Workspace root (defaults to the relay workspace)") }, required: [] },
14
+ { op: "agent_get_task", description: "Fetch one agent task by id.", properties: { taskId: stringSchema("Task id") }, required: ["taskId"] },
15
+ { op: "agent_get_events", description: "Page agent task events from a cursor.", properties: { taskId: stringSchema("Task id"), cursor: { type: "integer", minimum: 0 } }, required: ["taskId"] },
16
+ { op: "agent_send_message", description: "Send a user message to a running agent task.", properties: { taskId: stringSchema("Task id"), message: stringSchema("Message text") }, required: ["taskId", "message"] },
17
+ { op: "agent_get_diff", description: "Get the unified diff of a task worktree.", properties: { taskId: stringSchema("Task id"), path: stringSchema("Limit the diff to one path") }, required: ["taskId"] },
18
+ { op: "agent_request_merge", description: "Ask the task to wrap up and produce a merge request.", properties: { taskId: stringSchema("Task id"), note: stringSchema("Instruction for wrapping up") }, required: ["taskId"] },
19
+ { op: "agent_discard_task", description: "Discard a task and delete its worktree.", properties: { taskId: stringSchema("Task id") }, required: ["taskId"] },
20
+ { op: "agent_cancel_task", description: "Cancel a task; the worktree is kept.", properties: { taskId: stringSchema("Task id") }, required: ["taskId"] },
21
+ ];
22
+ function enabledToolsets(options) {
23
+ try {
24
+ return options.getToolsets?.() ?? ["workspace"];
25
+ }
26
+ catch {
27
+ return ["workspace"];
28
+ }
29
+ }
10
30
  export async function createMcpServer(workspaceInput, options = {}) {
11
31
  // Ensure the primary workspace is registered
12
32
  await ensureWorkspaceRegistered(workspaceInput);
@@ -59,6 +79,9 @@ export async function createMcpServer(workspaceInput, options = {}) {
59
79
  stop();
60
80
  server.onclose = () => { options.signal?.removeEventListener("abort", stop); stop(); };
61
81
  server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [
82
+ ...((enabledToolsets(options).includes("frely-app") && options.callAgent)
83
+ ? AGENT_TOOLS.map((entry) => tool(entry.op, entry.description, entry.properties, { readOnly: entry.op === "agent_get_task" || entry.op === "agent_get_events" || entry.op === "agent_list_tasks" }))
84
+ : []),
62
85
  tool("workspace_info", "Return the active workspace root.", {}, { readOnly: true }),
63
86
  tool("list_directory", "List one workspace directory.", { path: stringSchema("Relative directory path", ".") }, { readOnly: true }),
64
87
  tool("stat_path", "Inspect one workspace file or directory.", { path: stringSchema("Relative path") }, { readOnly: true }),
@@ -91,6 +114,13 @@ export async function createMcpServer(workspaceInput, options = {}) {
91
114
  const name = request.params.name;
92
115
  const args = (request.params.arguments ?? {});
93
116
  try {
117
+ if (name.startsWith("agent_")) {
118
+ if (!enabledToolsets(options).includes("frely-app") || !options.callAgent) {
119
+ throw new Error("Agent tools are not enabled for this MCP permission. Enable Frely app tools on the Frely connections page.");
120
+ }
121
+ const result = await options.callAgent(name, args);
122
+ return { content: [{ type: "text", text: typeof result === "string" ? result : JSON.stringify(result) }] };
123
+ }
94
124
  const result = await dispatch(name, args, workspaces, primaryRoot, processes, workspaceScheduler, commandScheduler, processScheduler, AbortSignal.any([lifecycle.signal, extra.signal]));
95
125
  return { content: [{ type: "text", text: typeof result === "string" ? result : JSON.stringify(result) }] };
96
126
  }