onlymcp 0.17.0 → 0.19.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 (126) hide show
  1. package/LICENSE +33 -17
  2. package/README.md +1 -1
  3. package/dist/bin/cli.js +46 -583
  4. package/dist/bin/mcp.js +45 -73
  5. package/package.json +6 -10
  6. package/dist/apiBaseUrl.d.ts +0 -12
  7. package/dist/apiBaseUrl.js +0 -28
  8. package/dist/apiBaseUrl.js.map +0 -1
  9. package/dist/apiClient.d.ts +0 -296
  10. package/dist/apiClient.js +0 -224
  11. package/dist/apiClient.js.map +0 -1
  12. package/dist/auth/deviceLogin.d.ts +0 -5
  13. package/dist/auth/deviceLogin.js +0 -40
  14. package/dist/auth/deviceLogin.js.map +0 -1
  15. package/dist/auth/keyring.d.ts +0 -16
  16. package/dist/auth/keyring.js +0 -33
  17. package/dist/auth/keyring.js.map +0 -1
  18. package/dist/bin/cli.d.ts +0 -2
  19. package/dist/bin/cli.js.map +0 -1
  20. package/dist/bin/mcp.d.ts +0 -2
  21. package/dist/bin/mcp.js.map +0 -1
  22. package/dist/cache.d.ts +0 -7
  23. package/dist/cache.js +0 -32
  24. package/dist/cache.js.map +0 -1
  25. package/dist/deviceId.d.ts +0 -2
  26. package/dist/deviceId.js +0 -97
  27. package/dist/deviceId.js.map +0 -1
  28. package/dist/export/unpack.d.ts +0 -33
  29. package/dist/export/unpack.js +0 -54
  30. package/dist/export/unpack.js.map +0 -1
  31. package/dist/identity.d.ts +0 -29
  32. package/dist/identity.js +0 -116
  33. package/dist/identity.js.map +0 -1
  34. package/dist/import/collect.d.ts +0 -25
  35. package/dist/import/collect.js +0 -101
  36. package/dist/import/collect.js.map +0 -1
  37. package/dist/import/frontmatter.d.ts +0 -44
  38. package/dist/import/frontmatter.js +0 -93
  39. package/dist/import/frontmatter.js.map +0 -1
  40. package/dist/import/plan.d.ts +0 -74
  41. package/dist/import/plan.js +0 -190
  42. package/dist/import/plan.js.map +0 -1
  43. package/dist/import/prune.d.ts +0 -46
  44. package/dist/import/prune.js +0 -61
  45. package/dist/import/prune.js.map +0 -1
  46. package/dist/import/secrets.d.ts +0 -7
  47. package/dist/import/secrets.js +0 -77
  48. package/dist/import/secrets.js.map +0 -1
  49. package/dist/import/upload.d.ts +0 -21
  50. package/dist/import/upload.js +0 -99
  51. package/dist/import/upload.js.map +0 -1
  52. package/dist/install.d.ts +0 -81
  53. package/dist/install.js +0 -168
  54. package/dist/install.js.map +0 -1
  55. package/dist/instructions.d.ts +0 -4
  56. package/dist/instructions.js +0 -67
  57. package/dist/instructions.js.map +0 -1
  58. package/dist/memoryPath.d.ts +0 -1
  59. package/dist/memoryPath.js +0 -13
  60. package/dist/memoryPath.js.map +0 -1
  61. package/dist/memorySync.d.ts +0 -28
  62. package/dist/memorySync.js +0 -56
  63. package/dist/memorySync.js.map +0 -1
  64. package/dist/paths.d.ts +0 -18
  65. package/dist/paths.js +0 -62
  66. package/dist/paths.js.map +0 -1
  67. package/dist/registry/caveats.d.ts +0 -17
  68. package/dist/registry/caveats.js +0 -74
  69. package/dist/registry/caveats.js.map +0 -1
  70. package/dist/registry/clients.d.ts +0 -17
  71. package/dist/registry/clients.js +0 -402
  72. package/dist/registry/clients.js.map +0 -1
  73. package/dist/registry/index.d.ts +0 -6
  74. package/dist/registry/index.js +0 -7
  75. package/dist/registry/index.js.map +0 -1
  76. package/dist/registry/serverInfo.d.ts +0 -25
  77. package/dist/registry/serverInfo.js +0 -33
  78. package/dist/registry/serverInfo.js.map +0 -1
  79. package/dist/registry/servers.d.ts +0 -58
  80. package/dist/registry/servers.js +0 -259
  81. package/dist/registry/servers.js.map +0 -1
  82. package/dist/registry/toolHints.d.ts +0 -29
  83. package/dist/registry/toolHints.js +0 -41
  84. package/dist/registry/toolHints.js.map +0 -1
  85. package/dist/registry/types.d.ts +0 -71
  86. package/dist/registry/types.js +0 -6
  87. package/dist/registry/types.js.map +0 -1
  88. package/dist/skillFilePath.d.ts +0 -1
  89. package/dist/skillFilePath.js +0 -29
  90. package/dist/skillFilePath.js.map +0 -1
  91. package/dist/stubIgnore.d.ts +0 -22
  92. package/dist/stubIgnore.js +0 -29
  93. package/dist/stubIgnore.js.map +0 -1
  94. package/dist/stubs.d.ts +0 -12
  95. package/dist/stubs.js +0 -188
  96. package/dist/stubs.js.map +0 -1
  97. package/dist/tools/connections.d.ts +0 -154
  98. package/dist/tools/connections.js +0 -164
  99. package/dist/tools/connections.js.map +0 -1
  100. package/dist/tools/getAgentDefinition.d.ts +0 -26
  101. package/dist/tools/getAgentDefinition.js +0 -29
  102. package/dist/tools/getAgentDefinition.js.map +0 -1
  103. package/dist/tools/getSkill.d.ts +0 -26
  104. package/dist/tools/getSkill.js +0 -26
  105. package/dist/tools/getSkill.js.map +0 -1
  106. package/dist/tools/getSkillFile.d.ts +0 -27
  107. package/dist/tools/getSkillFile.js +0 -39
  108. package/dist/tools/getSkillFile.js.map +0 -1
  109. package/dist/tools/index.d.ts +0 -263
  110. package/dist/tools/index.js +0 -69
  111. package/dist/tools/index.js.map +0 -1
  112. package/dist/tools/lists.d.ts +0 -38
  113. package/dist/tools/lists.js +0 -39
  114. package/dist/tools/lists.js.map +0 -1
  115. package/dist/tools/memoryGraph.d.ts +0 -69
  116. package/dist/tools/memoryGraph.js +0 -128
  117. package/dist/tools/memoryGraph.js.map +0 -1
  118. package/dist/tools/memoryRead.d.ts +0 -25
  119. package/dist/tools/memoryRead.js +0 -33
  120. package/dist/tools/memoryRead.js.map +0 -1
  121. package/dist/tools/memoryWrite.d.ts +0 -27
  122. package/dist/tools/memoryWrite.js +0 -34
  123. package/dist/tools/memoryWrite.js.map +0 -1
  124. package/dist/tools/write.d.ts +0 -166
  125. package/dist/tools/write.js +0 -193
  126. package/dist/tools/write.js.map +0 -1
package/dist/apiClient.js DELETED
@@ -1,224 +0,0 @@
1
- import { hostname } from 'node:os';
2
- import { identityHeaders } from './identity.js';
3
- export class ApiError extends Error {
4
- code;
5
- params;
6
- status;
7
- constructor(code, params = {}, status = 0) {
8
- super(code);
9
- this.code = code;
10
- this.params = params;
11
- this.status = status;
12
- this.name = 'ApiError';
13
- }
14
- }
15
- export class ApiClient {
16
- baseUrl;
17
- token;
18
- constructor(baseUrl, token) {
19
- this.baseUrl = baseUrl;
20
- this.token = token;
21
- }
22
- async call(path, init = {}) {
23
- const tok = this.token();
24
- if (!tok)
25
- throw new ApiError('errors.NOT_LOGGED_IN');
26
- // Wer anruft, steht in den Koepfen - sonst schickt Node 'node' und das
27
- // Geraet heisst in der Liste genau so. Siehe identity.ts.
28
- const res = await fetch(`${this.baseUrl}${path}`, {
29
- ...init,
30
- headers: {
31
- ...(await identityHeaders()),
32
- ...(init.headers ?? {}),
33
- authorization: `Bearer ${tok}`,
34
- 'content-type': 'application/json',
35
- },
36
- });
37
- if (res.status === 204)
38
- return undefined;
39
- const body = await res.json().catch(() => ({}));
40
- if (!res.ok) {
41
- throw new ApiError(body.code ?? 'errors.UNKNOWN', body.params ?? {}, res.status);
42
- }
43
- return body;
44
- }
45
- getMe() {
46
- return this.call('/api/me');
47
- }
48
- /**
49
- * Tells the server this device just finished an import or a sync (POST
50
- * /api/devices/current/run), so the devices page can show when and how many files. The caller
51
- * treats a failure as nothing: an older server answers 404, and a report is never worth a
52
- * failed command. Five seconds at most, so a slow server cannot hold the command up.
53
- */
54
- reportRun(kind, files) {
55
- return this.call('/api/devices/current/run', {
56
- method: 'POST',
57
- body: JSON.stringify({ kind, files }),
58
- signal: AbortSignal.timeout(5000),
59
- });
60
- }
61
- /**
62
- * Ends this device's session on the server (POST /api/auth/sign-out, Better Auth's own sign-out:
63
- * the API's bearer plugin turns the token into the session cookie that endpoint reads). For
64
- * `onlymcp logout`, which forgets the login on this machine whatever this answers. Five seconds
65
- * at most, so an unreachable server cannot hold the logout up.
66
- */
67
- signOut() {
68
- return this.call('/api/auth/sign-out', {
69
- method: 'POST',
70
- body: '{}',
71
- signal: AbortSignal.timeout(5000),
72
- });
73
- }
74
- listSkills() {
75
- return this.call('/api/skills');
76
- }
77
- getSkill(name) {
78
- return this.call(`/api/skills/${encodeURIComponent(name)}`);
79
- }
80
- /**
81
- * Die Herkunft ist optional und wird WEGGELASSEN, nicht auf leer gesetzt,
82
- * wenn es keine gibt: ein fehlendes Feld heisst serverseitig "nicht
83
- * anfassen" (Spec 5, Regel 1). Ein `description: ''` mitzuschicken loeschte
84
- * die Beschreibung, die ein frueherer Import geschrieben hat.
85
- */
86
- putSkill(name, body, provenance = {}) {
87
- return this.call(`/api/skills/${encodeURIComponent(name)}`, { method: 'PUT', body: JSON.stringify({ body, ...provenance }) });
88
- }
89
- // Der Pfad wird Segment fuer Segment kodiert, genau wie bei readMemory:
90
- // encodeURIComponent ueber die ganze Zeichenkette machte aus jedem
91
- // Trennzeichen ein %2F, und die Platzhalter-Route saehe ein einziges langes
92
- // Segment statt eines Pfades.
93
- skillFileUrl(name, path) {
94
- const tail = path.split('/').map(encodeURIComponent).join('/');
95
- return `/api/skills/${encodeURIComponent(name)}/files/${tail}`;
96
- }
97
- getSkillFile(name, path) {
98
- return this.call(this.skillFileUrl(name, path));
99
- }
100
- putSkillFile(name, path, content, encoding = 'utf8') {
101
- return this.call(this.skillFileUrl(name, path), { method: 'PUT', body: JSON.stringify({ content, encoding }) });
102
- }
103
- listAgents() {
104
- return this.call('/api/agents');
105
- }
106
- putAgent(name, a) {
107
- return this.call(`/api/agents/${encodeURIComponent(name)}`, { method: 'PUT', body: JSON.stringify(a) });
108
- }
109
- /**
110
- * `use` says "I am loading this definition to run it", and the server counts
111
- * a load for the agent's "Used" line. Only `get_agent_definition` asks. Any
112
- * other read of the same route (the write tool looking at the previous state)
113
- * is not a use and must not send it.
114
- */
115
- getAgent(name, { use = false } = {}) {
116
- return this.call(`/api/agents/${encodeURIComponent(name)}${use ? '?use=1' : ''}`);
117
- }
118
- readMemory(path) {
119
- return this.call(this.memoryUrl(path));
120
- }
121
- writeMemory(path, content, deviceLabel) {
122
- return this.call(this.memoryUrl(path), { method: 'PUT', body: JSON.stringify({ content, deviceLabel }) });
123
- }
124
- // --- Loeschen und Auflisten, seit 0.9.0 ---------------------------------
125
- //
126
- // Bis dahin konnte dieser Client lesen und schreiben, aber nichts wegnehmen
127
- // und die Memory-Dateien nicht einmal aufzaehlen. Wer keinen Browser offen
128
- // hatte, kam an einen Tippfehler im Pfad nicht mehr heran.
129
- memoryUrl(path) {
130
- return `/api/memory/${path.split('/').map(encodeURIComponent).join('/')}`;
131
- }
132
- listMemory() {
133
- return this.call('/api/memory');
134
- }
135
- // --- Suchen, Baum und Verschieben (Paket 03 Aufgabe 14) -----------------
136
- searchContent(q, opts = {}) {
137
- const query = new URLSearchParams({ q });
138
- if (opts.types?.length)
139
- query.set('types', opts.types.join(','));
140
- if (opts.limit)
141
- query.set('limit', String(opts.limit));
142
- return this.call(`/api/search?${query.toString()}`);
143
- }
144
- memoryTree(scope = 'all') {
145
- return this.call(`/api/memory/tree?scope=${encodeURIComponent(scope)}`);
146
- }
147
- /**
148
- * A move is a write of the moved file and of every file whose links it rewrites, and the
149
- * server records the device each write came from. This machine's host name, as the
150
- * memory_write tool and the import name it, so a write and a move from here are one device.
151
- */
152
- moveMemory(from, to, updateLinks = true, deviceLabel = hostname()) {
153
- return this.call('/api/memory/move', {
154
- method: 'POST',
155
- body: JSON.stringify({ from, to, updateLinks, deviceLabel }),
156
- });
157
- }
158
- // --- Der Weg nach draussen ---------------------------------------------
159
- /**
160
- * Das Export-Archiv, als ROHE Antwort.
161
- *
162
- * Geht bewusst nicht durch `call`: das dort ist ein JSON-Client, und ein
163
- * Archiv von zwei Gigabyte durch `res.json()` zu schicken waere genau der
164
- * Fehler, den die Route auf ihrer Seite vermeidet. Der Aufrufer bekommt den
165
- * Strom und entscheidet, ob er ihn in eine Datei giesst oder auspackt.
166
- */
167
- async exportArchive(opts = {}) {
168
- const tok = this.token();
169
- if (!tok)
170
- throw new ApiError('errors.NOT_LOGGED_IN');
171
- const query = new URLSearchParams();
172
- if (opts.scope)
173
- query.set('scope', opts.scope);
174
- if (opts.types?.length)
175
- query.set('types', opts.types.join(','));
176
- const tail = query.size > 0 ? `?${query.toString()}` : '';
177
- const res = await fetch(`${this.baseUrl}/api/export${tail}`, {
178
- headers: { ...(await identityHeaders()), authorization: `Bearer ${tok}` },
179
- });
180
- if (!res.ok) {
181
- const body = (await res.json().catch(() => ({})));
182
- throw new ApiError(body.code ?? 'errors.UNKNOWN', body.params ?? {}, res.status);
183
- }
184
- return res;
185
- }
186
- deleteMemory(path) {
187
- return this.call(this.memoryUrl(path), { method: 'DELETE' });
188
- }
189
- deleteSkill(name) {
190
- return this.call(`/api/skills/${encodeURIComponent(name)}`, { method: 'DELETE' });
191
- }
192
- deleteSkillFile(name, path) {
193
- return this.call(this.skillFileUrl(name, path), { method: 'DELETE' });
194
- }
195
- deleteAgent(name) {
196
- return this.call(`/api/agents/${encodeURIComponent(name)}`, { method: 'DELETE' });
197
- }
198
- // --- Fremde MCP-Server -------------------------------------------------
199
- listConnections() {
200
- return this.call('/api/mcp-connections');
201
- }
202
- createConnection(input) {
203
- return this.call('/api/mcp-connections', {
204
- method: 'POST',
205
- body: JSON.stringify(input),
206
- });
207
- }
208
- updateConnection(id, patch) {
209
- return this.call(`/api/mcp-connections/${id}`, {
210
- method: 'PATCH',
211
- body: JSON.stringify(patch),
212
- });
213
- }
214
- deleteConnection(id) {
215
- return this.call(`/api/mcp-connections/${id}`, { method: 'DELETE' });
216
- }
217
- listCapabilities(id) {
218
- return this.call(`/api/mcp-connections/${id}/capabilities`);
219
- }
220
- toggleCapability(id, capId, enabled) {
221
- return this.call(`/api/mcp-connections/${id}/capabilities/${capId}`, { method: 'PATCH', body: JSON.stringify({ enabled }) });
222
- }
223
- }
224
- //# sourceMappingURL=apiClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- type Deps = {
2
- sleep: (ms: number) => Promise<void>;
3
- };
4
- export declare function pollForToken(baseUrl: string, deviceCode: string, intervalSeconds: number, deps?: Deps): Promise<string>;
5
- export {};
@@ -1,40 +0,0 @@
1
- import { ApiError } from '../apiClient.js';
2
- import { identityHeaders } from '../identity.js';
3
- const defaultDeps = {
4
- sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
5
- };
6
- export async function pollForToken(baseUrl, deviceCode, intervalSeconds, deps = defaultDeps) {
7
- let interval = intervalSeconds;
8
- for (;;) {
9
- await deps.sleep(interval * 1000);
10
- // Diese Anfrage ist die, die die Sitzung erzeugt - hier entscheidet sich,
11
- // wie das Geraet in der Liste heissen wird. Ohne die Koepfe schickt Node
12
- // 'node', und genau das stand vorher dort.
13
- const res = await fetch(`${baseUrl}/api/auth/device/token`, {
14
- method: 'POST',
15
- headers: { ...(await identityHeaders()), 'content-type': 'application/json' },
16
- body: JSON.stringify({
17
- grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
18
- device_code: deviceCode,
19
- client_id: 'onlymcp-cli',
20
- }),
21
- });
22
- const body = await res.json().catch(() => ({}));
23
- if (body.access_token)
24
- return body.access_token;
25
- switch (body.error) {
26
- case 'authorization_pending':
27
- break;
28
- case 'slow_down':
29
- interval += 5;
30
- break;
31
- case 'access_denied':
32
- throw new ApiError('errors.DEVICE_ACCESS_DENIED');
33
- case 'expired_token':
34
- throw new ApiError('errors.DEVICE_CODE_EXPIRED');
35
- default:
36
- throw new ApiError('errors.DEVICE_LOGIN_FAILED', { error: body.error });
37
- }
38
- }
39
- }
40
- //# sourceMappingURL=deviceLogin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deviceLogin.js","sourceRoot":"","sources":["../../src/auth/deviceLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,WAAW,GAAS;IACxB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,UAAkB,EAClB,eAAuB,EACvB,OAAa,WAAW;IAExB,IAAI,QAAQ,GAAG,eAAe,CAAC;IAC/B,SAAS,CAAC;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAClC,0EAA0E;QAC1E,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,wBAAwB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC7E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,UAAU,EAAE,8CAA8C;gBAC1D,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,aAAa;aACzB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAsB,CAAC;QAC1D,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,uBAAuB;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,CAAC;gBACd,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,IAAI,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YACpD,KAAK,eAAe;gBAClB,MAAM,IAAI,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACnD;gBACE,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * One entry of the system keyring. The CLI keeps its login under onlymcp /
3
- * session-token. A test names an entry of its own: the real one is the login of
4
- * whoever runs the tests, and until 2026-10-19 test/keyring.spec.ts cleared it
5
- * on every run, which logged the owner's CLI out after each local check.
6
- */
7
- export declare function keyringEntry(service: string, account: string): {
8
- save(token: string): void;
9
- read(): string | null;
10
- clear(): void;
11
- };
12
- export declare const Keyring: {
13
- save(token: string): void;
14
- read(): string | null;
15
- clear(): void;
16
- };
@@ -1,33 +0,0 @@
1
- import { Entry } from '@napi-rs/keyring';
2
- /**
3
- * One entry of the system keyring. The CLI keeps its login under onlymcp /
4
- * session-token. A test names an entry of its own: the real one is the login of
5
- * whoever runs the tests, and until 2026-10-19 test/keyring.spec.ts cleared it
6
- * on every run, which logged the owner's CLI out after each local check.
7
- */
8
- export function keyringEntry(service, account) {
9
- const entry = () => new Entry(service, account);
10
- return {
11
- save(token) {
12
- entry().setPassword(token);
13
- },
14
- read() {
15
- try {
16
- return entry().getPassword();
17
- }
18
- catch {
19
- return null;
20
- }
21
- },
22
- clear() {
23
- try {
24
- entry().deletePassword();
25
- }
26
- catch {
27
- /* nichts gespeichert */
28
- }
29
- },
30
- };
31
- }
32
- export const Keyring = keyringEntry('onlymcp', 'session-token');
33
- //# sourceMappingURL=keyring.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyring.js","sourceRoot":"","sources":["../../src/auth/keyring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAe;IAC3D,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO;QACL,IAAI,CAAC,KAAa;YAChB,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI;YACF,IAAI,CAAC;gBACH,OAAO,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK;YACH,IAAI,CAAC;gBACH,KAAK,EAAE,CAAC,cAAc,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC"}
package/dist/bin/cli.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
package/dist/bin/mcp.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/bin/mcp.ts"],"names":[],"mappings":"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"}
package/dist/cache.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export declare class TtlCache {
2
- private readonly dir;
3
- constructor(dir?: string);
4
- get(key: string): Promise<string | null>;
5
- set(key: string, value: string, ttlSeconds?: number): Promise<void>;
6
- clear(): Promise<void>;
7
- }
package/dist/cache.js DELETED
@@ -1,32 +0,0 @@
1
- import cacache from 'cacache';
2
- import { cacheDir } from './paths.js';
3
- const DEFAULT_TTL_SECONDS = Number(process.env.ONLYMCP_TTL_SECONDS ?? 6 * 60 * 60);
4
- export class TtlCache {
5
- dir;
6
- constructor(dir = cacheDir()) {
7
- this.dir = dir;
8
- }
9
- async get(key) {
10
- try {
11
- const entry = await cacache.get(this.dir, key);
12
- const meta = entry.metadata;
13
- if (!meta || meta.expiresAt <= Date.now()) {
14
- await cacache.rm.entry(this.dir, key);
15
- return null;
16
- }
17
- return entry.data.toString('utf8');
18
- }
19
- catch {
20
- return null;
21
- }
22
- }
23
- async set(key, value, ttlSeconds = DEFAULT_TTL_SECONDS) {
24
- await cacache.put(this.dir, key, value, {
25
- metadata: { expiresAt: Date.now() + ttlSeconds * 1000 },
26
- });
27
- }
28
- async clear() {
29
- await cacache.rm.all(this.dir);
30
- }
31
- }
32
- //# sourceMappingURL=cache.js.map
package/dist/cache.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAInF,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAc,QAAQ,EAAE;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,QAA4B,CAAC;YAChD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC1C,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,UAAU,GAAG,mBAAmB;QACpE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YACtC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,EAAiB;SACvE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export declare function resetDeviceIdCache(): void;
2
- export declare function deviceId(): Promise<string | null>;
package/dist/deviceId.js DELETED
@@ -1,97 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { link, mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
3
- import { basename, dirname, join } from 'node:path';
4
- import { deviceIdFile } from './paths.js';
5
- /**
6
- * The machine's id for the account's devices list (D1). Without it, every `onlymcp login` is a new device on the
7
- * server; with it, a login from this machine re-points its one row. It is a random UUID, not derived from anything
8
- * about the machine, and it is only ever sent to the OnlyMCP server the CLI talks to. Never fatal: a read-only home
9
- * or a full disk means the old behaviour (no header), not a broken command.
10
- *
11
- * Any UUID version the server takes as a device key is kept (the same pattern as normaliseDeviceKey in
12
- * api/src/devices/store.ts); a new one is a v4.
13
- */
14
- const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
15
- /** The one load of this process: parallel first calls (the MCP server starts several requests at once) share it. */
16
- let cached;
17
- export function resetDeviceIdCache() {
18
- cached = undefined;
19
- }
20
- export function deviceId() {
21
- cached ??= load();
22
- return cached;
23
- }
24
- async function read(file) {
25
- try {
26
- const value = (await readFile(file, 'utf8')).trim().toLowerCase();
27
- return UUID.test(value) ? value : null;
28
- }
29
- catch {
30
- return null;
31
- }
32
- }
33
- async function load() {
34
- const file = deviceIdFile();
35
- const existing = await read(file);
36
- if (existing)
37
- return existing;
38
- try {
39
- await mkdir(dirname(file), { recursive: true });
40
- return await create(file);
41
- }
42
- catch {
43
- return null;
44
- }
45
- }
46
- /**
47
- * What `link` fails with where the filesystem has no hard links: FAT/exFAT (EPERM), some FUSE and SMB mounts
48
- * (ENOTSUP, ENOSYS), a home spread over two filesystems (EXDEV).
49
- */
50
- const NO_HARD_LINKS = new Set(['EPERM', 'ENOTSUP', 'EOPNOTSUPP', 'ENOSYS', 'EXDEV']);
51
- /**
52
- * Creates the file with its content in one step, so that no other process ever reads it empty: the id goes into a
53
- * temporary file next to it first, and `link` gives it the final name only if that name is free. Two CLIs starting
54
- * together therefore end with one id: the second one's link fails with EEXIST, and it takes what the first wrote.
55
- * A corrupt file is replaced the same way (rename over it).
56
- *
57
- * Without hard links the id is written in place with `wx`, the way it was before `link`: still one id per machine,
58
- * only the moment between the create and the write is open there again. Better than no id, which would make every
59
- * login from such a home a new device.
60
- */
61
- async function create(file) {
62
- const fresh = randomUUID();
63
- const temp = join(dirname(file), `.${basename(file)}.${process.pid}.${randomUUID()}.tmp`);
64
- try {
65
- await writeFile(temp, `${fresh}\n`, { flag: 'wx', mode: 0o600 });
66
- try {
67
- await link(temp, file);
68
- return fresh;
69
- }
70
- catch (e) {
71
- const code = e.code;
72
- if (code !== 'EEXIST' && !NO_HARD_LINKS.has(code ?? ''))
73
- throw e;
74
- if (code !== 'EEXIST') {
75
- try {
76
- await writeFile(file, `${fresh}\n`, { flag: 'wx', mode: 0o600 });
77
- return fresh;
78
- }
79
- catch (inPlace) {
80
- if (inPlace.code !== 'EEXIST')
81
- throw inPlace;
82
- }
83
- }
84
- }
85
- const theirs = await read(file);
86
- if (theirs)
87
- return theirs;
88
- await rename(temp, file);
89
- // Another process may have replaced the same corrupt file a moment later: what is there now is the id.
90
- return (await read(file)) ?? fresh;
91
- }
92
- finally {
93
- // A leftover temporary file costs nothing; it must not cost the id.
94
- await rm(temp, { force: true }).catch(() => undefined);
95
- }
96
- }
97
- //# sourceMappingURL=deviceId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deviceId.js","sourceRoot":"","sources":["../src/deviceId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,IAAI,GAAG,2EAA2E,CAAC;AAEzF,oHAAoH;AACpH,IAAI,MAA0C,CAAC;AAE/C,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,KAAK,IAAI,EAAE,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAY;IAC9B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF;;;;;;;;;GASG;AACH,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1F,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAC;YAC/C,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBAAE,MAAM,CAAC,CAAC;YACjE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACjE,OAAO,KAAK,CAAC;gBACf,CAAC;gBAAC,OAAO,OAAO,EAAE,CAAC;oBACjB,IAAK,OAAiC,CAAC,IAAI,KAAK,QAAQ;wBAAE,MAAM,OAAO,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,uGAAuG;QACvG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IACrC,CAAC;YAAS,CAAC;QACT,oEAAoE;QACpE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -1,33 +0,0 @@
1
- export type UnpackResult = {
2
- written: number;
3
- /** Entries the archive named and this refused to turn into a file. */
4
- refused: string[];
5
- /**
6
- * Entries the disk itself would not take. The one that really happens is a
7
- * namespaced skill on Windows: `skills/superpowers:brainstorming/` is what
8
- * makes the round trip exact and is a name NTFS cannot create. Reported
9
- * rather than renamed - a rename would quietly turn a plugin skill into a
10
- * differently named personal one - and reported rather than thrown, so one
11
- * impossible name does not cost the other 2000 files.
12
- */
13
- failed: {
14
- path: string;
15
- reason: string;
16
- }[];
17
- };
18
- /**
19
- * An export archive laid out as plain files (package 03 task 12a, spec 8a).
20
- *
21
- * The result is exactly the directory `onlymcp import` reads back:
22
- * `memory/`, `skills/<name>/`, `agents/`, plus `connections.json` and
23
- * `manifest.json`, which the import ignores and a person can read.
24
- *
25
- * Two guards stand between a name inside the archive and a path on the disk,
26
- * and neither is the other's duplicate. The first refuses what a zip entry
27
- * must never contain - an absolute path, a `..` segment, a backslash that
28
- * Windows would read as a separator. The second resolves the result and
29
- * refuses anything that did not land under `dir` anyway. A zip is a file
30
- * format anybody can hand us, so "our own server wrote it" is not a reason to
31
- * trust a path in it.
32
- */
33
- export declare function unpackArchive(bytes: Uint8Array, dir: string): Promise<UnpackResult>;