@synoikia/core 0.11.0 → 0.13.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 (37) hide show
  1. package/dist/app.d.ts +3 -0
  2. package/dist/app.js +4 -1
  3. package/dist/app.js.map +1 -1
  4. package/dist/approvals/service.d.ts +16 -4
  5. package/dist/approvals/service.js +41 -15
  6. package/dist/approvals/service.js.map +1 -1
  7. package/dist/auth/client-policy.d.ts +22 -0
  8. package/dist/auth/client-policy.js +41 -0
  9. package/dist/auth/client-policy.js.map +1 -0
  10. package/dist/gate/pipeline.js +4 -5
  11. package/dist/gate/pipeline.js.map +1 -1
  12. package/dist/http/admin/system.js +2 -0
  13. package/dist/http/admin/system.js.map +1 -1
  14. package/dist/http/mcp/approval-card.d.ts +2 -2
  15. package/dist/http/mcp/approval-card.js +20 -3
  16. package/dist/http/mcp/approval-card.js.map +1 -1
  17. package/dist/http/mcp/approval-routes.js +2 -2
  18. package/dist/http/mcp/approval-routes.js.map +1 -1
  19. package/dist/http/mcp/endpoint.d.ts +2 -0
  20. package/dist/http/mcp/endpoint.js +107 -3
  21. package/dist/http/mcp/endpoint.js.map +1 -1
  22. package/dist/http/mcp/pages.d.ts +3 -0
  23. package/dist/http/mcp/pages.js +12 -2
  24. package/dist/http/mcp/pages.js.map +1 -1
  25. package/dist/instances/manager.d.ts +8 -5
  26. package/dist/instances/manager.js +7 -1
  27. package/dist/instances/manager.js.map +1 -1
  28. package/dist/instances/settings.d.ts +2 -2
  29. package/dist/instances/settings.js +3 -3
  30. package/dist/instances/settings.js.map +1 -1
  31. package/dist/runtime/executions.d.ts +2 -0
  32. package/dist/runtime/executions.js +5 -1
  33. package/dist/runtime/executions.js.map +1 -1
  34. package/dist/settings.d.ts +8 -1
  35. package/dist/settings.js +14 -0
  36. package/dist/settings.js.map +1 -1
  37. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /** The approval card (design §5.7): an MCP Apps view that hosts render for `execute` and `resume` results.
2
- * It shows state and opens the approval page; it never decides. Static, no external origins. */
2
+ * It shows state, decides only in-session approvals, and opens the approval page. Static, no external origins. */
3
3
  export const APPROVAL_CARD_URI = 'ui://synoikia/approval';
4
4
  export const MCP_APP_MIME = 'text/html;profile=mcp-app';
5
5
  export const MCP_APPS_EXTENSION = 'io.modelcontextprotocol/ui';
@@ -26,6 +26,9 @@ html, body { margin: 0; background: transparent; color: var(--ink); font: 14px/1
26
26
  button { font: 600 13px/1.2 var(--sans); padding: 7px 14px; border-radius: 8px; border: 1px solid var(--brand); cursor: pointer;
27
27
  background: var(--brand); color: var(--on-brand); }
28
28
  button:hover { background: var(--brand-strong); }
29
+ button.alt { background: transparent; color: var(--ink); border-color: var(--line); }
30
+ button.alt:hover { background: var(--line); }
31
+ .acts { display: flex; flex-wrap: wrap; gap: 8px; }
29
32
  button.quiet { background: transparent; color: var(--no); border-color: var(--line); padding: 4px 10px; font-size: 12px; }
30
33
  .grant { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 12px; border: 1px solid var(--line);
31
34
  border-radius: 10px; background: var(--ok-bg); color: var(--ok); font-size: 12.5px; }
@@ -79,10 +82,17 @@ button.quiet { background: transparent; color: var(--no); border-color: var(--li
79
82
  ? '<span class="pill ok">✓ Approved</span>'
80
83
  : st === 'running' ? '<span class="pill ok">Running</span>'
81
84
  : '<span class="pill no">✕ ' + esc(st === 'done' ? (state.decision || 'finished').replace('_', ' ') : st.replace('_', ' ')) + '</span>';
85
+ const here = st === 'pending' && a.inSession === true;
86
+ const acts = st !== 'pending' ? ''
87
+ : here
88
+ ? '<div class="acts"><button class="alt" id="deny" type="button">Deny</button><button id="approve" type="button">Approve</button>' +
89
+ '<button class="alt" id="open" type="button">Review on the page ↗</button></div>'
90
+ : '<button id="open" type="button">Review and approve ↗</button>';
82
91
  html += '<div class="card"><div class="hd">Synoikia · approval needed</div><div class="bd">' +
83
92
  '<div class="t">' + esc(a.summary) + '</div><div class="op">' + esc(a.operationKey) + '</div>' +
84
- '<div class="ft">' + pill + (st === 'pending' ? '<button id="open" type="button">Review and approve ↗</button>' : '') + '</div>' +
85
- (st === 'pending' ? '<div class="note">Approve or deny on the Synoikia page. This chat continues by itself after you decide.</div>' : '') +
93
+ '<div class="ft">' + pill + acts + '</div>' +
94
+ (st === 'pending' ? '<div class="note">' + (here ? 'Approve or deny here, or review the details on the Synoikia page.' : 'Approve or deny on the Synoikia page.') +
95
+ ' This chat continues by itself after you decide.</div>' : '') +
86
96
  '</div></div>';
87
97
  }
88
98
  if (state.grant) {
@@ -93,6 +103,13 @@ button.quiet { background: transparent; color: var(--no); border-color: var(--li
93
103
  root.innerHTML = html;
94
104
  const open = document.getElementById('open');
95
105
  if (open) open.onclick = () => request('ui/open-link', { url: state.approval.url }).catch(() => {});
106
+ const decide = (approve) => () =>
107
+ request('tools/call', { name: 'approval_decide', arguments: { executionId: state.executionId, approve } })
108
+ .then(check).catch(() => {});
109
+ const yes = document.getElementById('approve');
110
+ if (yes) yes.onclick = decide(true);
111
+ const no = document.getElementById('deny');
112
+ if (no) no.onclick = decide(false);
96
113
  const revoke = document.getElementById('revoke');
97
114
  if (revoke) revoke.onclick = () =>
98
115
  request('tools/call', { name: 'session_grant_revoke', arguments: { grantId: state.grant.id } })
@@ -1 +1 @@
1
- {"version":3,"file":"approval-card.js","sourceRoot":"","sources":["../../../src/http/mcp/approval-card.ts"],"names":[],"mappings":"AAAA;gGACgG;AAEhG,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAyJnB,CAAC"}
1
+ {"version":3,"file":"approval-card.js","sourceRoot":"","sources":["../../../src/http/mcp/approval-card.ts"],"names":[],"mappings":"AAAA;kHACkH;AAElH,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA0KnB,CAAC"}
@@ -7,7 +7,7 @@ import { getSettings } from '../../settings.js';
7
7
  import { sha256 } from '../../auth/tokens.js';
8
8
  import { clientIp } from '../common.js';
9
9
  import { boundCsrf, checkBoundCsrf, renderLogin, uiSession } from './oauth-routes.js';
10
- import { approvalPage, errorPage } from './pages.js';
10
+ import { approvalPage, decidedPage, errorPage } from './pages.js';
11
11
  /** The approval page (design §5.3): deciding needs the call's owner, signed in on this page or named by the
12
12
  * endpoint's external provider, and a CSRF-protected POST, so neither the link holder nor a prefetch decides. */
13
13
  export function registerApprovalRoutes(app, ctx) {
@@ -125,7 +125,7 @@ export function registerApprovalRoutes(app, ctx) {
125
125
  const granted = sessionGrantUntil
126
126
  ? ` Ask operations of this client on /${data.instance.slug} run without asking until ${sessionGrantUntil.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}.`
127
127
  : '';
128
- return errorPage(c, approve ? 'Approved' : 'Denied', `${data.op.key} on /${data.instance.slug} was ${approve ? 'approved' : 'denied'}.${granted} You can close this page; your chat continues by itself.`, 200);
128
+ return decidedPage(c, approve ? 'Approved' : 'Denied', `${data.op.key} on /${data.instance.slug} was ${approve ? 'approved' : 'denied'}.${granted} Your chat continues by itself.`, data.approval.clientId);
129
129
  });
130
130
  }
131
131
  //# sourceMappingURL=approval-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-routes.js","sourceRoot":"","sources":["../../../src/http/mcp/approval-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-routes.js","sourceRoot":"","sources":["../../../src/http/mcp/approval-routes.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ export declare class McpEndpoints {
29
29
  /** Logs why a request was refused (the client gets the generic answer): `warn` for token-shaped
30
30
  * credentials, `debug` for bare probes; the reason is a quoted field, never the message. */
31
31
  private refused;
32
+ /** Applies the client policy (design §6.6); a refusal is logged and audited, and gets 403. */
33
+ private refuseClient;
32
34
  /** A 4xx/5xx from the MCP transport itself (bad JSON-RPC, wrong Accept header, …), with its message. */
33
35
  private logTransportError;
34
36
  handle(c: Context, slug: string): Promise<Response>;
@@ -1,13 +1,18 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { isIP } from 'node:net';
3
3
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import { DEFAULT_MAX_REQUEST_BODY_SIZE, readRequestBody, requestBodyTooLargeMessage, } from '@modelcontextprotocol/sdk/server/requestBody.js';
4
5
  import { WebStandardStreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js';
5
6
  import { z } from 'zod';
7
+ import { writeAudit } from '../../audit.js';
8
+ import { CLIENT_INFO_MAX, clientAllowed } from '../../auth/client-policy.js';
6
9
  import { authenticateMcp, ownerLive, principalLive, publicMcpBase } from '../../auth/mcp-auth.js';
7
10
  import { TOKEN_PREFIX } from '../../auth/mcp-tokens.js';
8
11
  import { ACCESS_PREFIX } from '../../auth/oauth.js';
9
12
  import { effectiveAuthMethods } from '../../instances/manager.js';
10
13
  import { executeCode, resumeExecution, searchCode } from '../../runtime/index.js';
14
+ import { getSettings } from '../../settings.js';
15
+ import { ServiceError } from '../../errors.js';
11
16
  import { clientIp } from '../common.js';
12
17
  import { APPROVAL_CARD_HTML, APPROVAL_CARD_URI, MCP_APP_MIME, MCP_APPS_EXTENSION } from './approval-card.js';
13
18
  /** `/{slug}` Streamable HTTP endpoints (design §2.2): one McpServer per session, bound to its instance
@@ -16,6 +21,39 @@ const SESSION_IDLE_MS = 30 * 60_000;
16
21
  /** Open MCP sessions per authenticated principal; a new one past the cap closes that principal's oldest. */
17
22
  export const MAX_SESSIONS_PER_PRINCIPAL = 16;
18
23
  const SERVER_VERSION = '0.1.0';
24
+ /** The `clientInfo` of an `initialize` message; malformed fields read as absent. */
25
+ const InitializeMessage = z.object({
26
+ method: z.literal('initialize'),
27
+ params: z
28
+ .object({
29
+ clientInfo: z
30
+ .object({
31
+ name: z.string().min(1).optional().catch(undefined),
32
+ version: z.string().optional().catch(undefined),
33
+ })
34
+ .optional()
35
+ .catch(undefined),
36
+ })
37
+ .optional()
38
+ .catch(undefined),
39
+ });
40
+ /** The clientInfo of an initialize body; the transport also takes one as a batch of one message. */
41
+ function initializeClientInfo(body) {
42
+ const msg = InitializeMessage.safeParse(Array.isArray(body) && body.length === 1 ? body[0] : body);
43
+ return msg.success ? { info: msg.data.params?.clientInfo ?? {} } : undefined;
44
+ }
45
+ /** Reads the body once, with the transport's own size limit and answers, so it can be checked first. */
46
+ async function readJsonBody(req) {
47
+ try {
48
+ const read = await readRequestBody(req, DEFAULT_MAX_REQUEST_BODY_SIZE);
49
+ if (read.tooLarge)
50
+ return { status: 413, message: requestBodyTooLargeMessage(DEFAULT_MAX_REQUEST_BODY_SIZE) };
51
+ return { body: JSON.parse(read.text) };
52
+ }
53
+ catch {
54
+ return { status: 400, message: 'Parse error: Invalid JSON' };
55
+ }
56
+ }
19
57
  const jsonRpcError = (code, message) => ({
20
58
  jsonrpc: '2.0',
21
59
  id: null,
@@ -35,6 +73,7 @@ function toolText(result, extras) {
35
73
  operationKey: result.approval.operationKey,
36
74
  summary: result.approval.summary,
37
75
  expiresAt: result.approval.expiresAt.toISOString(),
76
+ inSession: result.approval.inSession,
38
77
  },
39
78
  }
40
79
  : {}),
@@ -200,7 +239,7 @@ export class McpEndpoints {
200
239
  const rt = () => this.ctx.instances.runtime(instanceId);
201
240
  const manifest = rt().manifest;
202
241
  const server = new McpServer({ name: `synoikia/${rt().slug}`, version: SERVER_VERSION }, {
203
- instructions: `${manifest.name} via Synoikia. Use search to discover operations, then execute to call them. When execute returns awaiting_approval, show the link and call resume after the user decides.`,
242
+ instructions: `${manifest.name} via Synoikia. Use search to discover operations, then execute to call them. An approval can also happen inside the execute call, which then returns the result directly. When execute returns awaiting_approval, show the link and call resume after the user decides.`,
204
243
  capabilities: { extensions: { [MCP_APPS_EXTENSION]: {} } },
205
244
  });
206
245
  // Approval prompts (design §5.3): URL mode sends the human to our approval page; form mode is only
@@ -292,7 +331,7 @@ export class McpEndpoints {
292
331
  const signal = AbortSignal.any([extra.signal, closed]);
293
332
  return toolText(await resumeExecution(this.ctx.gateDeps(), rt(), caller(extra.sessionId), id, signal), extras());
294
333
  });
295
- // App-only (design §5.7): the approval card polls state and can end a grant; neither can approve.
334
+ // App-only (design §5.7): the approval card polls state, ends a grant, and decides only in-session approvals.
296
335
  server.registerTool('approval_status', {
297
336
  title: 'Approval status',
298
337
  description: 'State of a parked execution, for the approval card.',
@@ -304,6 +343,29 @@ export class McpEndpoints {
304
343
  const body = status ?? { state: 'not_found' };
305
344
  return { structuredContent: { ...body }, content: [{ type: 'text', text: JSON.stringify(body) }] };
306
345
  });
346
+ server.registerTool('approval_decide', {
347
+ title: 'Decide approval',
348
+ description: 'Approves or denies the in-session approval a parked execution waits on, for the approval card.',
349
+ inputSchema: { executionId, approve: z.boolean() },
350
+ annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: false },
351
+ _meta: appOnly,
352
+ }, ({ executionId: id, approve }) => {
353
+ // The owner check of approval_status; the approval service decides if the card may answer.
354
+ const approval = this.ctx.executions.currentApproval(id, identity.principal, instanceId);
355
+ let body = { decided: false, error: 'not_found' };
356
+ if (approval) {
357
+ try {
358
+ this.ctx.approvals.decideInSession(approval.approvalId, { approve, decidedBy: identity.label });
359
+ body = { decided: true };
360
+ }
361
+ catch (err) {
362
+ if (!(err instanceof ServiceError))
363
+ throw err;
364
+ body = { decided: false, error: err.code };
365
+ }
366
+ }
367
+ return { structuredContent: body, content: [{ type: 'text', text: JSON.stringify(body) }] };
368
+ });
307
369
  server.registerTool('session_grant_revoke', {
308
370
  title: 'Revoke session approval',
309
371
  description: 'Ends the session approval of this client on this endpoint, for the approval card.',
@@ -354,6 +416,26 @@ export class McpEndpoints {
354
416
  suppressed: suppressed || undefined,
355
417
  });
356
418
  }
419
+ /** Applies the client policy (design §6.6); a refusal is logged and audited, and gets 403. */
420
+ refuseClient(c, slug, instanceId, identity, name) {
421
+ const { clientPolicy } = getSettings(this.ctx.db, 'mcp');
422
+ if (clientAllowed(clientPolicy, name))
423
+ return undefined;
424
+ const clientName = name?.slice(0, CLIENT_INFO_MAX) ?? null;
425
+ this.refused(c, slug, 403, `MCP client not allowed by the client policy (${clientPolicy.mode} list)`, {
426
+ client: identity.label,
427
+ clientName: clientName ?? '(none)',
428
+ });
429
+ writeAudit(this.ctx.db, {
430
+ kind: 'auth',
431
+ decision: 'client_refused',
432
+ instanceId,
433
+ actorKind: 'mcp_client',
434
+ actorId: identity.label,
435
+ detail: { slug, clientName, mode: clientPolicy.mode },
436
+ }, this.ctx.now());
437
+ return c.json(jsonRpcError(-32003, 'This MCP client is not allowed on this server'), 403);
438
+ }
357
439
  /** A 4xx/5xx from the MCP transport itself (bad JSON-RPC, wrong Accept header, …), with its message. */
358
440
  async logTransportError(c, slug, response, principal) {
359
441
  if (response.status < 400)
@@ -426,6 +508,12 @@ export class McpEndpoints {
426
508
  });
427
509
  return c.json(jsonRpcError(-32001, 'Session not found'), 404);
428
510
  }
511
+ // A policy change applies to open sessions at their next request.
512
+ const refusal = this.refuseClient(c, slug, instance.id, auth.identity, s.clientName);
513
+ if (refusal) {
514
+ await this.closeSession(sessionId);
515
+ return refusal;
516
+ }
429
517
  s.lastSeen = Date.now();
430
518
  const response = await s.transport.handleRequest(c.req.raw);
431
519
  await this.logTransportError(c, slug, response, client);
@@ -435,6 +523,19 @@ export class McpEndpoints {
435
523
  this.refused(c, slug, 400, 'no Mcp-Session-Id on a non-POST request', { client });
436
524
  return c.json(jsonRpcError(-32000, 'Missing Mcp-Session-Id'), 400);
437
525
  }
526
+ const read = await readJsonBody(c.req.raw);
527
+ if ('status' in read) {
528
+ const response = c.json(jsonRpcError(read.status === 413 ? -32000 : -32700, read.message), read.status);
529
+ await this.logTransportError(c, slug, response, client);
530
+ return response;
531
+ }
532
+ const init = initializeClientInfo(read.body);
533
+ const clientName = init?.info.name;
534
+ if (init) {
535
+ const refusal = this.refuseClient(c, slug, instance.id, auth.identity, clientName);
536
+ if (refusal)
537
+ return refusal;
538
+ }
438
539
  try {
439
540
  await this.ctx.instances.ensureFresh(instance.id, { forceVersionCheck: true });
440
541
  }
@@ -460,14 +561,17 @@ export class McpEndpoints {
460
561
  closed,
461
562
  instanceId: instance.id,
462
563
  principal: auth.identity.principal,
564
+ clientName,
463
565
  lastSeen: Date.now(),
464
566
  });
465
567
  },
466
568
  onsessionclosed: (id) => void this.closeSession(id),
467
569
  });
468
570
  await server.connect(transport);
469
- const response = await transport.handleRequest(c.req.raw);
571
+ const response = await transport.handleRequest(c.req.raw, { parsedBody: read.body });
470
572
  await this.logTransportError(c, slug, response, client);
573
+ if (transport.sessionId && clientName)
574
+ this.ctx.seenClients.record(clientName, init?.info.version, client);
471
575
  if (!transport.sessionId) {
472
576
  // Not a valid initialize request: nothing to keep.
473
577
  await transport.close().catch(() => undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/http/mcp/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/http/mcp/endpoint.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import type { Context } from 'hono';
2
+ export declare const CLOSE_SCRIPT = "window.close();";
2
3
  export declare function errorPage(c: Context, title: string, message: string, status?: 200 | 400 | 403 | 404): Response | Promise<Response>;
4
+ /** After a decision on the approval page: tries to close the tab, else sends the user back to the chat. */
5
+ export declare function decidedPage(c: Context, title: string, message: string, client: string | null): Response | Promise<Response>;
3
6
  export interface LoginView {
4
7
  purpose: string;
5
8
  continueTo: string;
@@ -1,3 +1,4 @@
1
+ import { createHash } from 'node:crypto';
1
2
  import { html, raw } from 'hono/html';
2
3
  // Synoikia tokens. The CSP allows no external fonts, so the brand faces apply only when installed
3
4
  // locally; the stacks fall back to the closest system faces.
@@ -49,8 +50,10 @@ const BRAND = `<div class="brand"><svg viewBox="0 0 120 120" width="36" height="
49
50
  <g class="dwellings"><rect x="52" y="8" width="16" height="16" rx="4"/><rect x="96" y="52" width="16" height="16" rx="4"/>
50
51
  <rect x="52" y="96" width="16" height="16" rx="4"/><rect x="8" y="52" width="16" height="16" rx="4"/></g>
51
52
  <rect class="hearth" x="48" y="48" width="24" height="24" rx="6"/></svg><span>Syn<span class="root">oikia</span></span></div>`;
52
- function page(c, title, body, status = 200) {
53
- c.header('Content-Security-Policy', "default-src 'none'; style-src 'unsafe-inline'; img-src data:; frame-ancestors 'none'; base-uri 'none'");
53
+ export const CLOSE_SCRIPT = 'window.close();';
54
+ const CLOSE_SCRIPT_SRC = `'sha256-${createHash('sha256').update(CLOSE_SCRIPT).digest('base64')}'`;
55
+ function page(c, title, body, status = 200, closeTab = false) {
56
+ c.header('Content-Security-Policy', `default-src 'none'; style-src 'unsafe-inline'; img-src data:;${closeTab ? ` script-src ${CLOSE_SCRIPT_SRC};` : ''} frame-ancestors 'none'; base-uri 'none'`);
54
57
  c.header('X-Frame-Options', 'DENY');
55
58
  c.header('Referrer-Policy', 'no-referrer');
56
59
  c.header('Cache-Control', 'no-store');
@@ -67,6 +70,7 @@ function page(c, title, body, status = 200) {
67
70
  <body>
68
71
  ${raw(BRAND)}
69
72
  <main>${body}</main>
73
+ ${closeTab ? raw(`<script>${CLOSE_SCRIPT}</script>`) : ''}
70
74
  </body>
71
75
  </html>`, status);
72
76
  }
@@ -74,6 +78,12 @@ export function errorPage(c, title, message, status = 400) {
74
78
  return page(c, title, html `<h1>${title}</h1>
75
79
  <p class="sub">${message}</p>`, status);
76
80
  }
81
+ /** After a decision on the approval page: tries to close the tab, else sends the user back to the chat. */
82
+ export function decidedPage(c, title, message, client) {
83
+ return page(c, title, html `<h1>${title}</h1>
84
+ <p class="sub">${message}</p>
85
+ <p>Done — return to your chat${client ? html ` (<strong>${client}</strong>)` : ''}. You can close this tab.</p>`, 200, true);
86
+ }
77
87
  export function loginPage(c, v, status = 200) {
78
88
  return page(c, 'Sign in', html `<h1>Sign in</h1>
79
89
  <p class="sub">${v.purpose}</p>
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/http/mcp/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/http/mcp/pages.ts"],"names":[],"mappings":"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"}
@@ -90,7 +90,7 @@ export declare class InstanceManager {
90
90
  lastSyncStatus: string | null;
91
91
  settings: {
92
92
  approvalTimeoutMs: number;
93
- formElicitationApprovals: "off" | "writes";
93
+ formElicitationApprovals: "ask" | "off";
94
94
  sessionGrantMaxHours: number;
95
95
  executePerMinute: number;
96
96
  writesPerMinute: number;
@@ -168,7 +168,7 @@ export declare class InstanceManager {
168
168
  lastSyncStatus: string | null;
169
169
  settings: {
170
170
  approvalTimeoutMs: number;
171
- formElicitationApprovals: "off" | "writes";
171
+ formElicitationApprovals: "ask" | "off";
172
172
  sessionGrantMaxHours: number;
173
173
  executePerMinute: number;
174
174
  writesPerMinute: number;
@@ -205,7 +205,10 @@ export declare class InstanceManager {
205
205
  /** Scrubs an instance's secret values out of plugin/upstream error text before it is stored or sent. */
206
206
  private scrubError;
207
207
  /** Startup step: removes stored instance settings fields the current schema rejects. */
208
- normalizeStoredSettings(): string[];
208
+ normalizeStoredSettings(): {
209
+ changed: string[];
210
+ inSessionOff: string[];
211
+ };
209
212
  /** Everything the gate needs for one instance. */
210
213
  runtime(instanceId: string): InstanceRuntime;
211
214
  status(instanceId: string): InstanceStatus;
@@ -225,7 +228,7 @@ export declare class InstanceManager {
225
228
  lastSyncStatus: string | null;
226
229
  settings: {
227
230
  approvalTimeoutMs: number;
228
- formElicitationApprovals: "off" | "writes";
231
+ formElicitationApprovals: "ask" | "off";
229
232
  sessionGrantMaxHours: number;
230
233
  executePerMinute: number;
231
234
  writesPerMinute: number;
@@ -271,7 +274,7 @@ export declare class InstanceManager {
271
274
  lastSyncStatus: string | null;
272
275
  settings: {
273
276
  approvalTimeoutMs: number;
274
- formElicitationApprovals: "off" | "writes";
277
+ formElicitationApprovals: "ask" | "off";
275
278
  sessionGrantMaxHours: number;
276
279
  executePerMinute: number;
277
280
  writesPerMinute: number;
@@ -227,10 +227,16 @@ export class InstanceManager {
227
227
  /** Startup step: removes stored instance settings fields the current schema rejects. */
228
228
  normalizeStoredSettings() {
229
229
  const changed = [];
230
+ const inSessionOff = [];
230
231
  for (const row of this.db.select().from(pluginInstances).all()) {
231
232
  const { cleaned, dropped } = cleanInstanceSettings(row.settings, `/${row.slug} settings`);
232
233
  if (!dropped.length)
233
234
  continue;
235
+ if (dropped.includes('formElicitationApprovals') || dropped.includes('*')) {
236
+ const stored = row.settings?.formElicitationApprovals;
237
+ if (stored !== undefined && stored !== 'off')
238
+ inSessionOff.push(row.slug);
239
+ }
234
240
  this.db
235
241
  .update(pluginInstances)
236
242
  .set({ settings: cleaned })
@@ -238,7 +244,7 @@ export class InstanceManager {
238
244
  .run();
239
245
  changed.push(row.slug);
240
246
  }
241
- return changed;
247
+ return { changed, inSessionOff };
242
248
  }
243
249
  /** Everything the gate needs for one instance. */
244
250
  runtime(instanceId) {