@classcad/mcp 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +128 -87
  2. package/dist/app/SOURCE.txt +4 -0
  3. package/dist/app/assets/index-54a14bc0.css +8 -0
  4. package/dist/app/assets/index-c650c783.js +11257 -0
  5. package/dist/app/assets/troika-three-text.esm-188d86b5.js +220 -0
  6. package/dist/app/favicon.svg +98 -0
  7. package/dist/app/index.html +19 -0
  8. package/dist/app/manifest.json +14 -0
  9. package/dist/auth.d.ts +8 -0
  10. package/dist/auth.js +49 -10
  11. package/dist/auth.js.map +1 -1
  12. package/dist/backend.d.ts +8 -0
  13. package/dist/backend.js +39 -0
  14. package/dist/backend.js.map +1 -0
  15. package/dist/client.d.ts +48 -11
  16. package/dist/client.js +152 -167
  17. package/dist/client.js.map +1 -1
  18. package/dist/daemon.d.ts +0 -2
  19. package/dist/daemon.js +77 -62
  20. package/dist/daemon.js.map +1 -1
  21. package/dist/engine/key.d.ts +29 -0
  22. package/dist/engine/key.js +145 -0
  23. package/dist/engine/key.js.map +1 -0
  24. package/dist/engine/wasm-worker.js +7 -7
  25. package/dist/engine/wasm-worker.js.map +1 -1
  26. package/dist/engine/wasm.d.ts +16 -14
  27. package/dist/engine/wasm.js +22 -30
  28. package/dist/engine/wasm.js.map +1 -1
  29. package/dist/mcp-server.d.ts +4 -4
  30. package/dist/mcp-server.js +72 -28
  31. package/dist/mcp-server.js.map +1 -1
  32. package/dist/queue.js +1 -1
  33. package/dist/queue.js.map +1 -1
  34. package/dist/server.js +69 -36
  35. package/dist/server.js.map +1 -1
  36. package/dist/share/hub.d.ts +70 -0
  37. package/dist/share/hub.js +494 -0
  38. package/dist/share/hub.js.map +1 -0
  39. package/dist/share/protocol.d.ts +87 -0
  40. package/dist/share/protocol.js +54 -0
  41. package/dist/share/protocol.js.map +1 -0
  42. package/dist/share/relay.d.ts +45 -0
  43. package/dist/share/relay.js +230 -0
  44. package/dist/share/relay.js.map +1 -0
  45. package/dist/share/server.d.ts +27 -0
  46. package/dist/share/server.js +399 -0
  47. package/dist/share/server.js.map +1 -0
  48. package/dist/share/session.d.ts +120 -0
  49. package/dist/share/session.js +336 -0
  50. package/dist/share/session.js.map +1 -0
  51. package/dist/tools/auth.js +1 -1
  52. package/dist/tools/auth.js.map +1 -1
  53. package/dist/tools/docs.js +3 -2
  54. package/dist/tools/docs.js.map +1 -1
  55. package/dist/tools/lifecycle.js +36 -9
  56. package/dist/tools/lifecycle.js.map +1 -1
  57. package/dist/tools/share.d.ts +18 -0
  58. package/dist/tools/share.js +277 -0
  59. package/dist/tools/share.js.map +1 -0
  60. package/dist/tools/viewer.d.ts +1 -1
  61. package/dist/tools/viewer.js +11 -6
  62. package/dist/tools/viewer.js.map +1 -1
  63. package/dist/viewer-page/viewer.js +19 -2
  64. package/package.json +4 -3
  65. package/dist/bridge/protocol.d.ts +0 -87
  66. package/dist/bridge/protocol.js +0 -14
  67. package/dist/bridge/protocol.js.map +0 -1
  68. package/dist/bridge/server.d.ts +0 -35
  69. package/dist/bridge/server.js +0 -236
  70. package/dist/bridge/server.js.map +0 -1
  71. package/dist/tools/bridge.d.ts +0 -4
  72. package/dist/tools/bridge.js +0 -115
  73. package/dist/tools/bridge.js.map +0 -1
package/dist/auth.js CHANGED
@@ -26,13 +26,16 @@ import { randomBytes, timingSafeEqual } from 'node:crypto';
26
26
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
27
27
  import { homedir } from 'node:os';
28
28
  import { dirname, join } from 'node:path';
29
- /** Firebase project whose accounts may use the MCP (classcad.ch / buerli.io accounts). */
30
- const PROJECT = process.env.CLASSCAD_AUTH_PROJECT || 'buerli';
29
+ import { AUTH_API_KEY, AUTH_PROJECT, AUTH_URL } from './backend.js';
30
+ /** Firebase project whose accounts may use the MCP (classcad.ch accounts; see backend.ts). */
31
+ const PROJECT = AUTH_PROJECT;
31
32
  /** The project's public web API key (the same one classcad.ch ships). */
32
- const API_KEY = process.env.CLASSCAD_AUTH_API_KEY || 'AIzaSyCzKhVOXJOwLtmK9SjCoEEIkZ6N7ilSp9E';
33
+ const API_KEY = AUTH_API_KEY;
33
34
  const TOKEN_URL = process.env.CLASSCAD_AUTH_TOKEN_URL || 'https://securetoken.googleapis.com/v1/token';
34
35
  /** The page that signs the user in and hands the token back. */
35
- const LOGIN_URL = process.env.CLASSCAD_AUTH_URL || 'https://classcad.ch/connect';
36
+ const LOGIN_URL = AUTH_URL;
37
+ /** The local engine's kept key belongs to the sign-in (engine/key.ts). */
38
+ const ENGINE_KEY_FILE = process.env.CLASSCAD_KEY_FILE || join(homedir(), '.classcad-mcp', 'engine-key.json');
36
39
  const AUTH_FILE = process.env.CLASSCAD_AUTH_FILE || join(homedir(), '.classcad-mcp', 'auth.json');
37
40
  const OFFLINE_GRACE_MS = 14 * 24 * 3600 * 1000;
38
41
  const LOGIN_TTL_MS = 15 * 60 * 1000;
@@ -78,10 +81,21 @@ async function exchange(refreshToken) {
78
81
  return {
79
82
  account: { uid: claims.user_id ?? claims.sub ?? body.user_id, email: claims.email ?? null, name: claims.name ?? null },
80
83
  refreshToken: body.refresh_token ?? refreshToken,
84
+ idToken: String(body.id_token),
81
85
  expiresAt: Date.now() + Number(body.expires_in ?? 3600) * 1000,
82
86
  };
83
87
  }
84
88
  let verifiedUntil = 0;
89
+ /** The ID token of the last exchange: what this machine shows a service that asks for its sign-in (idToken()). */
90
+ let shown = null;
91
+ /** Exchanges the stored token and keeps what came back: the sign-in is confirmed for another token lifetime. */
92
+ async function refresh(stored) {
93
+ const r = await exchange(stored.refreshToken);
94
+ writeStored({ ...stored, ...r.account, refreshToken: r.refreshToken, verifiedAt: Date.now() });
95
+ verifiedUntil = r.expiresAt - 60_000;
96
+ shown = { uid: r.account.uid, token: r.idToken, expiresAt: r.expiresAt };
97
+ return r.account;
98
+ }
85
99
  let checking = null;
86
100
  /** The current sign-in, checked against Firebase at most once per token lifetime. */
87
101
  export function authStatus() {
@@ -95,10 +109,7 @@ export function authStatus() {
95
109
  return Promise.resolve({ signedIn: true, account });
96
110
  checking ??= (async () => {
97
111
  try {
98
- const r = await exchange(stored.refreshToken);
99
- writeStored({ ...stored, ...r.account, refreshToken: r.refreshToken, verifiedAt: Date.now() });
100
- verifiedUntil = r.expiresAt - 60_000;
101
- return { signedIn: true, account: r.account };
112
+ return { signedIn: true, account: await refresh(stored) };
102
113
  }
103
114
  catch (err) {
104
115
  if (err instanceof Rejected) {
@@ -115,11 +126,36 @@ export function authStatus() {
115
126
  })();
116
127
  return checking;
117
128
  }
129
+ /**
130
+ * This machine's sign-in, as a service outside can check it: a Firebase ID
131
+ * token (a JWT signed by Google, good for an hour). The share relay takes a
132
+ * session only from a machine that shows one (share/relay.ts). Null when the
133
+ * machine is not signed in, or Firebase cannot be reached for a new token.
134
+ */
135
+ /** `fresh`: not the one kept for the hour, for claims that changed since (a confirmed address, a new plan). */
136
+ export async function idToken(fresh = false) {
137
+ const stored = readStored();
138
+ if (!stored)
139
+ return null;
140
+ if (!fresh && shown && shown.uid === stored.uid && Date.now() < shown.expiresAt - 60_000)
141
+ return shown.token;
142
+ try {
143
+ await refresh(stored);
144
+ return shown?.token ?? null;
145
+ }
146
+ catch (err) {
147
+ if (err instanceof Rejected)
148
+ rmSync(AUTH_FILE, { force: true });
149
+ return null;
150
+ }
151
+ }
118
152
  /** Forgets the sign-in on this machine. */
119
153
  export function logout() {
120
154
  verifiedUntil = 0;
155
+ shown = null;
121
156
  const had = existsSync(AUTH_FILE);
122
157
  rmSync(AUTH_FILE, { force: true });
158
+ rmSync(ENGINE_KEY_FILE, { force: true });
123
159
  return had;
124
160
  }
125
161
  let pending = null;
@@ -139,10 +175,12 @@ export async function beginLogin(client) {
139
175
  const server = createServer((req, res) => handle(req, res).catch(err => send(res, 500, { ok: false, error: String(err?.message ?? err) })));
140
176
  await new Promise((res, rej) => server.once('error', rej).listen(0, '127.0.0.1', () => res()));
141
177
  const port = server.address().port;
142
- const q = new URLSearchParams({ port: String(port), state });
178
+ const expiresAt = Date.now() + LOGIN_TTL_MS;
179
+ // exp: the sign-in page does not hand a sign-in to a port nobody waits on any more
180
+ const q = new URLSearchParams({ port: String(port), state, exp: String(expiresAt) });
143
181
  if (client)
144
182
  q.set('client', client);
145
- const p = { url: `${LOGIN_URL}?${q}`, state, port, server, expiresAt: Date.now() + LOGIN_TTL_MS, done, resolve, reject };
183
+ const p = { url: `${LOGIN_URL}?${q}`, state, port, server, expiresAt, done, resolve, reject };
146
184
  pending = p;
147
185
  const timer = setTimeout(() => finish(p, new Error('the sign-in link expired')), LOGIN_TTL_MS);
148
186
  timer.unref();
@@ -171,6 +209,7 @@ export async function beginLogin(client) {
171
209
  const r = await exchange(String(body.token ?? ''));
172
210
  writeStored({ ...r.account, refreshToken: r.refreshToken, project: PROJECT, verifiedAt: Date.now() });
173
211
  verifiedUntil = r.expiresAt - 60_000;
212
+ shown = { uid: r.account.uid, token: r.idToken, expiresAt: r.expiresAt };
174
213
  send(res, 200, { ok: true, email: r.account.email, name: r.account.name });
175
214
  finish(p, r.account);
176
215
  }
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const BACKEND_NAME: string;
2
+ export declare const AUTH_PROJECT: string;
3
+ export declare const AUTH_API_KEY: string;
4
+ export declare const AUTH_URL: string;
5
+ /** The token exchange: a sign-in or an access token in, an engine key out. */
6
+ export declare const KEY_URL: string;
7
+ /** The relay sessions are shared on, unless CLASSCAD_RELAY_URL names another (share/relay.ts). */
8
+ export declare const RELAY_URL: string;
@@ -0,0 +1,39 @@
1
+ // backend.ts — which ClassCAD backend the MCP signs in to, gets its engine keys from, and shares
2
+ // sessions on.
3
+ //
4
+ // classcad (default) the plans backend (Firebase project classcad-app); sign-in on classcad.ch;
5
+ // sessions on the relay (classcad-share)
6
+ // develop the same backend, signed in on a develop build of classcad.ch
7
+ // (http://localhost:9090), for trying the sites and the MCP together;
8
+ // sessions on the develop relay (classcad-share-develop)
9
+ // staging the same backend, signed in on https://staging01.classcad.ch; the develop relay
10
+ //
11
+ // CLASSCAD_BACKEND picks one; CLASSCAD_AUTH_PROJECT, CLASSCAD_AUTH_API_KEY, CLASSCAD_AUTH_URL and
12
+ // CLASSCAD_KEY_URL still override single values (tests point them at stand-ins).
13
+ const classcad = {
14
+ project: 'classcad-app',
15
+ // The project's public web API key (the one classcad.ch ships)
16
+ apiKey: 'AIzaSyA3emzV1j-4WrUduiQ9JJuRGhrR1MNWiqY',
17
+ loginUrl: 'https://classcad.ch/connect',
18
+ keyUrl: 'https://europe-west1-classcad-app.cloudfunctions.net/api/v1/key',
19
+ // packages/relay, `npm run deploy` there
20
+ relayUrl: 'https://classcad-share.it-5ca.workers.dev',
21
+ };
22
+ // packages/relay, `npm run deploy:develop` there, from the develop branch: develop work never runs on
23
+ // the relay that users share on
24
+ const DEVELOP_RELAY_URL = 'https://classcad-share-develop.it-5ca.workers.dev';
25
+ const BACKENDS = {
26
+ classcad,
27
+ develop: { ...classcad, loginUrl: 'http://localhost:9090/connect', relayUrl: DEVELOP_RELAY_URL },
28
+ staging: { ...classcad, loginUrl: 'https://staging01.classcad.ch/connect', relayUrl: DEVELOP_RELAY_URL },
29
+ };
30
+ export const BACKEND_NAME = BACKENDS[process.env.CLASSCAD_BACKEND ?? ''] ? process.env.CLASSCAD_BACKEND : 'classcad';
31
+ const backend = BACKENDS[BACKEND_NAME];
32
+ export const AUTH_PROJECT = process.env.CLASSCAD_AUTH_PROJECT || backend.project;
33
+ export const AUTH_API_KEY = process.env.CLASSCAD_AUTH_API_KEY || backend.apiKey;
34
+ export const AUTH_URL = process.env.CLASSCAD_AUTH_URL || backend.loginUrl;
35
+ /** The token exchange: a sign-in or an access token in, an engine key out. */
36
+ export const KEY_URL = process.env.CLASSCAD_KEY_URL || backend.keyUrl;
37
+ /** The relay sessions are shared on, unless CLASSCAD_RELAY_URL names another (share/relay.ts). */
38
+ export const RELAY_URL = backend.relayUrl;
39
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,eAAe;AACf,EAAE;AACF,mGAAmG;AACnG,+DAA+D;AAC/D,sFAAsF;AACtF,4FAA4F;AAC5F,+EAA+E;AAC/E,wGAAwG;AACxG,EAAE;AACF,kGAAkG;AAClG,iFAAiF;AAIjF,MAAM,QAAQ,GAAY;IACxB,OAAO,EAAE,cAAc;IACvB,+DAA+D;IAC/D,MAAM,EAAE,yCAAyC;IACjD,QAAQ,EAAE,6BAA6B;IACvC,MAAM,EAAE,iEAAiE;IACzE,yCAAyC;IACzC,QAAQ,EAAE,2CAA2C;CACtD,CAAA;AAED,sGAAsG;AACtG,gCAAgC;AAChC,MAAM,iBAAiB,GAAG,mDAAmD,CAAA;AAE7E,MAAM,QAAQ,GAA4B;IACxC,QAAQ;IACR,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAChG,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,uCAAuC,EAAE,QAAQ,EAAE,iBAAiB,EAAE;CACzG,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,gBAA2B,CAAC,CAAC,CAAC,UAAU,CAAA;AAChI,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAA;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAA;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,QAAQ,CAAA;AACzE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAA;AACrE,kGAAkG;AAClG,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAA"}
package/dist/client.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import WebSocket from 'ws';
2
2
  import type { ApiResult, Graphic, Structure } from './types.js';
3
- import type { BridgeRegistry } from './bridge/server.js';
4
- import { type LocalEngine, type LocalWasmOptions } from './engine/wasm.js';
3
+ import { type EngineExecuteResult, type LocalEngine, type LocalWasmOptions } from './engine/wasm.js';
5
4
  export type EnginePolicy = 'auto' | 'drogon' | 'wasm';
6
- export type Transport = 'ws' | 'bridge' | 'wasm';
5
+ /** How a client reaches its engine: 'ws' a ClassCAD worker over WebSocket, 'wasm' the MCP's own engine. */
6
+ export type Transport = 'ws' | 'wasm';
7
7
  /**
8
8
  * Around a graphic pull inside a suppressed script: kernel graphics only —
9
9
  * the content the renderer contract has always been built on. Switched back
@@ -17,8 +17,6 @@ export type ConnectOptions = {
17
17
  connectTimeoutMs?: number;
18
18
  debug?: boolean;
19
19
  sessionId?: string | null;
20
- /** Accessor for the bridge registry (apps announcing share tokens); needed for reconnectBridge. */
21
- bridge?: () => BridgeRegistry | null;
22
20
  /** Which engine to use when no token/URL decides it. Default 'auto'. */
23
21
  engine?: EnginePolicy;
24
22
  /** Settings of the local WASM engine; null/undefined = no key = not available. */
@@ -26,6 +24,30 @@ export type ConnectOptions = {
26
24
  /** Where connection decisions are reported (stderr / daemon log). */
27
25
  log?: (msg: string) => void;
28
26
  };
27
+ /** Hears one reply of the MCP's own engine: the request, what the engine emitted for it, and who asked. */
28
+ export type EngineReplyListener = (req: Record<string, unknown>, res: EngineExecuteResult, origin: 'host' | 'guest') => void;
29
+ /**
30
+ * A frame of the session protocol that is not the answer to a request of this
31
+ * client: SessionJoined, PeerJoined, PeerLeft, Presence. One more is made up
32
+ * here: `Connected` (with `transport`), whenever the engine link was opened —
33
+ * whoever was known of the session before is not in this one.
34
+ */
35
+ export type SessionFrame = {
36
+ command: string;
37
+ [key: string]: any;
38
+ };
39
+ /**
40
+ * The graphic database settings the MCP's renders are built on (brep edges,
41
+ * sketch and structure-object graphics, tessellated curves). The database is
42
+ * the engine's, shared by everyone on it: a docked app's own settings must not
43
+ * switch these off (share/hub.ts keeps them on).
44
+ */
45
+ export declare const GRAPHIC_SETTINGS: {
46
+ isGraphicEnabled: boolean;
47
+ isCCGraphicEnabled: boolean;
48
+ isSketchGraphicEnabled: boolean;
49
+ doCurveTessellation: boolean;
50
+ };
29
51
  export type Client = {
30
52
  /** Raw request. Tracked as a potential mutation unless `opts.track === false`. */
31
53
  request: <T = unknown>(command: string, extra?: object, opts?: {
@@ -57,13 +79,28 @@ export type Client = {
57
79
  reconnect: (sessionId: string | null, engine?: EnginePolicy) => Promise<void>;
58
80
  /** Reconnect to a DIFFERENT server URL — e.g. a multi-client token/invite URL (`wss://…/?invite=…`), used verbatim. */
59
81
  reconnectUrl: (url: string) => Promise<void>;
82
+ /** Opens the engine link now (it opens by itself on the first request otherwise). */
83
+ open: () => Promise<void>;
84
+ /**
85
+ * A docked app's command, run on the MCP's own engine (transport 'wasm'):
86
+ * the raw request in, everything the engine emitted out. The caches follow
87
+ * (the app may have changed the model). See share/hub.ts.
88
+ */
89
+ relay: (req: Record<string, unknown>) => Promise<EngineExecuteResult>;
60
90
  /**
61
- * Attach to an in-app engine (WASM) through the bridge: the app announced
62
- * `token` on the MCP's bridge listener; from then on every engine command
63
- * is relayed to the app (engine.execute) instead of a WebSocket worker.
91
+ * Hears every reply of the MCP's own engine, whoever asked: `host` is this
92
+ * client, `guest` a docked app (relay). Returns the unsubscribe function.
64
93
  */
65
- reconnectBridge: (token: string) => Promise<void>;
66
- /** 'ws' (a ClassCAD worker over WebSocket), 'bridge' (an app's in-page engine) or 'wasm' (the MCP's own engine). */
94
+ onEngineReply: (listener: EngineReplyListener) => () => void;
95
+ /** Hears when the MCP's own engine was started or replaced (crash, timeout): its drawing is empty. */
96
+ onEngineStart: (listener: () => void) => () => void;
97
+ /** The complete graphic of the MCP's own engine: every container emitted so far that is still in the model. */
98
+ engineContainers: () => unknown[];
99
+ /** Hears the session frames a ClassCAD server sends this connection (peers, presence). Returns the unsubscribe function. */
100
+ onSessionFrame: (listener: (frame: SessionFrame) => void) => () => void;
101
+ /** Sends a frame that expects no answer to the ClassCAD server (presence). False when there is no open worker connection. */
102
+ sendFrame: (frame: SessionFrame) => boolean;
103
+ /** 'ws' (a ClassCAD worker over WebSocket) or 'wasm' (the MCP's own engine). */
67
104
  readonly transport: Transport;
68
105
  /** The engine policy in force when no token/URL decides ('auto' | 'drogon' | 'wasm'). */
69
106
  readonly engine: EnginePolicy;
@@ -71,7 +108,7 @@ export type Client = {
71
108
  readonly wasmAvailable: boolean;
72
109
  /** The running local engine, if any. */
73
110
  readonly localEngine: LocalEngine | null;
74
- /** The share token this client joined with (invite or bridge token), or null. */
111
+ /** The invite token this client joined a server session with, or null (its own session). */
75
112
  readonly shareToken: string | null;
76
113
  /** True while the engine link is usable. */
77
114
  readonly connected: boolean;