instar 1.3.684 → 1.3.685

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.
@@ -11,6 +11,7 @@
11
11
  * routes on `enabled()`.
12
12
  */
13
13
  import { type RequestActor, type RequestChangeResult } from './DynamicMcpManager.js';
14
+ import { type PendingMcpApprovalView, type McpChangeKind } from './PendingMcpApprovalStore.js';
14
15
  import { type DynamicMcpConfig } from './dynamicMcpConfig.js';
15
16
  export interface DynamicMcpServicePrimitives {
16
17
  /** `<projectDir>` (for `.mcp.json`) and where `.instar/state/mcp-loaded` lives. */
@@ -45,6 +46,7 @@ export declare class DynamicMcpService {
45
46
  private readonly p;
46
47
  private readonly loadedSet;
47
48
  private readonly nonces;
49
+ private readonly pendingApprovals;
48
50
  private readonly manager;
49
51
  constructor(p: DynamicMcpServicePrimitives);
50
52
  enabled(): boolean;
@@ -56,5 +58,19 @@ export declare class DynamicMcpService {
56
58
  getSessionState(topicId: number): SessionMcpState;
57
59
  requestLoad(topicId: number, server: string, actor: RequestActor): Promise<RequestChangeResult>;
58
60
  requestOffload(topicId: number, server: string, actor: RequestActor): Promise<RequestChangeResult>;
61
+ /** Register a pending change for the tap surface and get back an opaque
62
+ * requestId to put in the approval link. The agent (which already holds the
63
+ * nonce from its needs-approval response) calls this; the nonce never travels
64
+ * in the URL. */
65
+ registerApproval(topicId: number, kind: McpChangeKind, server: string, nonce: string): string;
66
+ /** What the approval PAGE may render — details WITHOUT the nonce. */
67
+ peekApproval(requestId: string): PendingMcpApprovalView | null;
68
+ /** The PIN-gated submit: consume the pending request (single-use) and drive the
69
+ * change via the operator-approved actor. The caller (route) MUST have already
70
+ * verified the operator PIN — this method does NOT itself authenticate. Returns
71
+ * `unknown-request` when the requestId is absent/expired/already used. */
72
+ approveByRequestId(requestId: string): Promise<RequestChangeResult | {
73
+ status: 'unknown-request';
74
+ }>;
59
75
  }
60
76
  //# sourceMappingURL=DynamicMcpService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicMcpService.d.ts","sourceRoot":"","sources":["../../src/core/DynamicMcpService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAA0C,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7H,OAAO,EAA0B,KAAK,gBAAgB,EAAgB,MAAM,uBAAuB,CAAC;AAEpG,MAAM,WAAW,2BAA2B;IAC1C,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,iEAAiE;IACjE,MAAM,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IAC3C,+EAA+E;IAC/E,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,8EAA8E;IAC9E,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,qEAAqE;IACrE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAChE,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAClD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAJ9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEf,CAAC,EAAE,2BAA2B;IAkB3D,OAAO,IAAI,OAAO;IAElB,+DAA+D;IAC/D,OAAO,CAAC,cAAc;IAOtB,sEAAsE;IACtE,OAAO,CAAC,cAAc;IAStB,2DAA2D;IAC3D,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IAKjD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI/F,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAGnG"}
1
+ {"version":3,"file":"DynamicMcpService.d.ts","sourceRoot":"","sources":["../../src/core/DynamicMcpService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAA0C,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7H,OAAO,EAA2B,KAAK,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACxH,OAAO,EAA0B,KAAK,gBAAgB,EAAgB,MAAM,uBAAuB,CAAC;AAEpG,MAAM,WAAW,2BAA2B;IAC1C,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,iEAAiE;IACjE,MAAM,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IAC3C,+EAA+E;IAC/E,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,8EAA8E;IAC9E,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,qEAAqE;IACrE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAChE,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAClD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,iBAAiB;IAMhB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAL9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEf,CAAC,EAAE,2BAA2B;IAkB3D,OAAO,IAAI,OAAO;IAElB,+DAA+D;IAC/D,OAAO,CAAC,cAAc;IAOtB,sEAAsE;IACtE,OAAO,CAAC,cAAc;IAStB,2DAA2D;IAC3D,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IAKjD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI/F,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMlG;;;sBAGkB;IAClB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAI7F,qEAAqE;IACrE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI;IAI9D;;;+EAG2E;IACrE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAQ1G"}
@@ -15,11 +15,13 @@ import fs from 'node:fs';
15
15
  import { DynamicMcpManager } from './DynamicMcpManager.js';
16
16
  import { McpLoadedSetStore } from './McpLoadedSetStore.js';
17
17
  import { McpApprovalNonceStore } from './McpApprovalNonceStore.js';
18
+ import { PendingMcpApprovalStore } from './PendingMcpApprovalStore.js';
18
19
  import { resolveBaselineServers } from './dynamicMcpConfig.js';
19
20
  export class DynamicMcpService {
20
21
  p;
21
22
  loadedSet;
22
23
  nonces = new McpApprovalNonceStore();
24
+ pendingApprovals = new PendingMcpApprovalStore();
23
25
  manager;
24
26
  constructor(p) {
25
27
  this.p = p;
@@ -72,5 +74,30 @@ export class DynamicMcpService {
72
74
  requestOffload(topicId, server, actor) {
73
75
  return this.manager.requestChange({ topicId, op: 'offload', server, actor });
74
76
  }
77
+ // ── Operator-approval TAP surface (the nonce stays server-side) ──
78
+ /** Register a pending change for the tap surface and get back an opaque
79
+ * requestId to put in the approval link. The agent (which already holds the
80
+ * nonce from its needs-approval response) calls this; the nonce never travels
81
+ * in the URL. */
82
+ registerApproval(topicId, kind, server, nonce) {
83
+ return this.pendingApprovals.register({ topicId, kind, server, nonce });
84
+ }
85
+ /** What the approval PAGE may render — details WITHOUT the nonce. */
86
+ peekApproval(requestId) {
87
+ return this.pendingApprovals.peek(requestId);
88
+ }
89
+ /** The PIN-gated submit: consume the pending request (single-use) and drive the
90
+ * change via the operator-approved actor. The caller (route) MUST have already
91
+ * verified the operator PIN — this method does NOT itself authenticate. Returns
92
+ * `unknown-request` when the requestId is absent/expired/already used. */
93
+ async approveByRequestId(requestId) {
94
+ const p = this.pendingApprovals.consume(requestId);
95
+ if (!p)
96
+ return { status: 'unknown-request' };
97
+ const actor = { kind: 'operator-approved', nonce: p.nonce };
98
+ return p.kind === 'load'
99
+ ? this.requestLoad(p.topicId, p.server, actor)
100
+ : this.requestOffload(p.topicId, p.server, actor);
101
+ }
75
102
  }
76
103
  //# sourceMappingURL=DynamicMcpService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicMcpService.js","sourceRoot":"","sources":["../../src/core/DynamicMcpService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicMcpService.js","sourceRoot":"","sources":["../../src/core/DynamicMcpService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * PendingMcpApprovalStore — the server-side registry behind the dynamic-MCP
3
+ * operator-approval TAP surface (DYNAMIC-MCP-LIFECYCLE-SPEC follow-up). When a
4
+ * non-preapproved interactive change needs operator approval, the agent registers
5
+ * the pending change here and gets back an OPAQUE `requestId` to put in a tap link
6
+ * — the server-minted nonce stays SERVER-SIDE and never travels in the URL (the
7
+ * same posture as Secret Drop's opaque tokens, vs. a nonce-in-query-string leak).
8
+ *
9
+ * The approval PAGE reads the request via `peek` (which NEVER returns the nonce),
10
+ * renders "Approve load of X on topic N?", and the PIN-gated submit calls `consume`
11
+ * (which returns the nonce once + removes the entry) so the route can drive the
12
+ * existing `{kind:'operator-approved', nonce}` change. Single-use + TTL-bounded.
13
+ */
14
+ export type McpChangeKind = 'load' | 'offload';
15
+ export interface PendingMcpApproval {
16
+ topicId: number;
17
+ kind: McpChangeKind;
18
+ server: string;
19
+ nonce: string;
20
+ expiresAt: number;
21
+ }
22
+ /** What the approval page may see — deliberately WITHOUT the nonce. */
23
+ export interface PendingMcpApprovalView {
24
+ requestId: string;
25
+ topicId: number;
26
+ kind: McpChangeKind;
27
+ server: string;
28
+ }
29
+ export declare class PendingMcpApprovalStore {
30
+ private readonly ttlMs;
31
+ /** Injectable clock for tests; defaults to real time. */
32
+ private readonly now;
33
+ private readonly byId;
34
+ constructor(ttlMs?: number,
35
+ /** Injectable clock for tests; defaults to real time. */
36
+ now?: () => number);
37
+ /** Register a pending change; returns an opaque single-use requestId. */
38
+ register(input: {
39
+ topicId: number;
40
+ kind: McpChangeKind;
41
+ server: string;
42
+ nonce: string;
43
+ }): string;
44
+ /** Read a pending request for the approval page — NEVER exposes the nonce.
45
+ * Returns null when absent or expired (an expired entry is dropped). */
46
+ peek(requestId: string): PendingMcpApprovalView | null;
47
+ /** Consume (verify + invalidate) for the PIN-gated submit. Returns the full
48
+ * entry INCLUDING the nonce once, then removes it (single-use). Null when
49
+ * absent/expired. */
50
+ consume(requestId: string): PendingMcpApproval | null;
51
+ /** Best-effort sweep of expired entries. */
52
+ pruneExpired(): number;
53
+ /** Outstanding (unconsumed, unexpired) count — for status/tests. */
54
+ size(): number;
55
+ }
56
+ //# sourceMappingURL=PendingMcpApprovalStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingMcpApprovalStore.d.ts","sourceRoot":"","sources":["../../src/core/PendingMcpApprovalStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyC;gBAG3C,KAAK,GAAE,MAAuB;IAC/C,yDAAyD;IACxC,GAAG,GAAE,MAAM,MAAyB;IAGvD,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAShG;6EACyE;IACzE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI;IAOtD;;0BAEsB;IACtB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAQrD,4CAA4C;IAC5C,YAAY,IAAI,MAAM;IAOtB,oEAAoE;IACpE,IAAI,IAAI,MAAM;CACf"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * PendingMcpApprovalStore — the server-side registry behind the dynamic-MCP
3
+ * operator-approval TAP surface (DYNAMIC-MCP-LIFECYCLE-SPEC follow-up). When a
4
+ * non-preapproved interactive change needs operator approval, the agent registers
5
+ * the pending change here and gets back an OPAQUE `requestId` to put in a tap link
6
+ * — the server-minted nonce stays SERVER-SIDE and never travels in the URL (the
7
+ * same posture as Secret Drop's opaque tokens, vs. a nonce-in-query-string leak).
8
+ *
9
+ * The approval PAGE reads the request via `peek` (which NEVER returns the nonce),
10
+ * renders "Approve load of X on topic N?", and the PIN-gated submit calls `consume`
11
+ * (which returns the nonce once + removes the entry) so the route can drive the
12
+ * existing `{kind:'operator-approved', nonce}` change. Single-use + TTL-bounded.
13
+ */
14
+ import crypto from 'node:crypto';
15
+ const DEFAULT_TTL_MS = 10 * 60 * 1000; // 10 min — long enough for a human tap
16
+ export class PendingMcpApprovalStore {
17
+ ttlMs;
18
+ now;
19
+ byId = new Map();
20
+ constructor(ttlMs = DEFAULT_TTL_MS,
21
+ /** Injectable clock for tests; defaults to real time. */
22
+ now = () => Date.now()) {
23
+ this.ttlMs = ttlMs;
24
+ this.now = now;
25
+ }
26
+ /** Register a pending change; returns an opaque single-use requestId. */
27
+ register(input) {
28
+ const requestId = crypto.randomBytes(18).toString('base64url');
29
+ this.byId.set(requestId, {
30
+ topicId: input.topicId, kind: input.kind, server: input.server, nonce: input.nonce,
31
+ expiresAt: this.now() + this.ttlMs,
32
+ });
33
+ return requestId;
34
+ }
35
+ /** Read a pending request for the approval page — NEVER exposes the nonce.
36
+ * Returns null when absent or expired (an expired entry is dropped). */
37
+ peek(requestId) {
38
+ const e = this.byId.get(requestId);
39
+ if (!e)
40
+ return null;
41
+ if (this.now() > e.expiresAt) {
42
+ this.byId.delete(requestId);
43
+ return null;
44
+ }
45
+ return { requestId, topicId: e.topicId, kind: e.kind, server: e.server };
46
+ }
47
+ /** Consume (verify + invalidate) for the PIN-gated submit. Returns the full
48
+ * entry INCLUDING the nonce once, then removes it (single-use). Null when
49
+ * absent/expired. */
50
+ consume(requestId) {
51
+ const e = this.byId.get(requestId);
52
+ if (!e)
53
+ return null;
54
+ this.byId.delete(requestId); // single-use regardless of expiry
55
+ if (this.now() > e.expiresAt)
56
+ return null;
57
+ return e;
58
+ }
59
+ /** Best-effort sweep of expired entries. */
60
+ pruneExpired() {
61
+ const t = this.now();
62
+ let removed = 0;
63
+ for (const [id, e] of this.byId) {
64
+ if (t > e.expiresAt) {
65
+ this.byId.delete(id);
66
+ removed++;
67
+ }
68
+ }
69
+ return removed;
70
+ }
71
+ /** Outstanding (unconsumed, unexpired) count — for status/tests. */
72
+ size() { this.pruneExpired(); return this.byId.size; }
73
+ }
74
+ //# sourceMappingURL=PendingMcpApprovalStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingMcpApprovalStore.js","sourceRoot":"","sources":["../../src/core/PendingMcpApprovalStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAoBjC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,uCAAuC;AAE9E,MAAM,OAAO,uBAAuB;IAIf;IAEA;IALF,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE9D,YACmB,QAAgB,cAAc;IAC/C,yDAAyD;IACxC,MAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAFpC,UAAK,GAAL,KAAK,CAAyB;QAE9B,QAAG,GAAH,GAAG,CAAiC;IACpD,CAAC;IAEJ,yEAAyE;IACzE,QAAQ,CAAC,KAA8E;QACrF,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;YAClF,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK;SACnC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;6EACyE;IACzE,IAAI,CAAC,SAAiB;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC3E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3E,CAAC;IAED;;0BAEsB;IACtB,OAAO,CAAC,SAAiB;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC;QAC/D,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4CAA4C;IAC5C,YAAY;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QAAC,CAAC;QAC9F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oEAAoE;IACpE,IAAI,KAAa,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CAC/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
@@ -7197,6 +7197,108 @@ export function createRoutes(ctx) {
7197
7197
  };
7198
7198
  router.post('/mcp/load', (req, res) => { void handleMcpChange('load')(req, res); });
7199
7199
  router.post('/mcp/offload', (req, res) => { void handleMcpChange('offload')(req, res); });
7200
+ // POST /mcp/approve — the OPERATOR-AUTHENTICATED approval for a non-preapproved
7201
+ // load/offload. PIN-GATED (the dashboard PIN), so the agent — which only holds the
7202
+ // shared Bearer token and NEVER the PIN — structurally cannot reach this route to
7203
+ // self-approve (the C4 invariant: an interactive change completes only via a live
7204
+ // preapproval OR this operator-PIN-authenticated path). The operator supplies the
7205
+ // server-minted nonce (which the agent surfaced from its needs-approval response)
7206
+ // + the PIN; this consumes the nonce via the {kind:'operator-approved'} actor. A
7207
+ // wrong/expired nonce simply fails the gate and returns needs-approval again.
7208
+ const handleMcpApprove = async (req, res) => {
7209
+ const svc = ctx.dynamicMcpService;
7210
+ if (!svc || !svc.enabled()) {
7211
+ res.status(503).json({ error: 'dynamic-mcp disabled' });
7212
+ return;
7213
+ }
7214
+ if (!checkMandatePin(req, res))
7215
+ return; // dashboard-PIN gate (rate-limited); response already sent on failure
7216
+ const body = (req.body ?? {});
7217
+ const topicId = Number(body.topicId);
7218
+ const kind = body.kind === 'offload' ? 'offload' : 'load';
7219
+ const server = typeof body.server === 'string' ? body.server.trim() : '';
7220
+ const nonce = typeof body.nonce === 'string' ? body.nonce : '';
7221
+ if (!Number.isFinite(topicId) || !server || !nonce) {
7222
+ res.status(400).json({ error: 'topicId (number), server (string), and nonce (string) are required' });
7223
+ return;
7224
+ }
7225
+ const result = kind === 'load'
7226
+ ? await svc.requestLoad(topicId, server, { kind: 'operator-approved', nonce })
7227
+ : await svc.requestOffload(topicId, server, { kind: 'operator-approved', nonce });
7228
+ const httpStatus = result.status === 'applied' || result.status === 'no-op' ? 200
7229
+ : result.status === 'needs-approval' ? 403 // the nonce didn't match/expired → approval did NOT take
7230
+ : 409;
7231
+ res.status(httpStatus).json({ ok: result.status === 'applied' || result.status === 'no-op', ...result });
7232
+ };
7233
+ router.post('/mcp/approve', (req, res) => { void handleMcpApprove(req, res); });
7234
+ // ── Operator-approval TAP surface (Mobile-Complete: tap a link, enter PIN) ──
7235
+ // The agent registers a pending change (it holds the nonce from needs-approval) and
7236
+ // surfaces the returned link; the operator taps it, sees the request (NO nonce on
7237
+ // the page), and approves with the dashboard PIN. The nonce stays server-side
7238
+ // (opaque requestId in the URL), and the PIN gate keeps the agent (Bearer-only,
7239
+ // no PIN) from self-approving — the C4 invariant, made tappable.
7240
+ const mcpHtmlEscape = (s) => s.replace(/[&<>"']/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c]));
7241
+ // The agent (Bearer) registers a pending approval → opaque requestId + a tap URL.
7242
+ router.post('/mcp/approval-link', (req, res) => {
7243
+ const svc = ctx.dynamicMcpService;
7244
+ if (!svc || !svc.enabled()) {
7245
+ res.status(503).json({ error: 'dynamic-mcp disabled' });
7246
+ return;
7247
+ }
7248
+ const body = (req.body ?? {});
7249
+ const topicId = Number(body.topicId);
7250
+ const kind = body.kind === 'offload' ? 'offload' : 'load';
7251
+ const server = typeof body.server === 'string' ? body.server.trim() : '';
7252
+ const nonce = typeof body.nonce === 'string' ? body.nonce : '';
7253
+ if (!Number.isFinite(topicId) || !server || !nonce) {
7254
+ res.status(400).json({ error: 'topicId, server, nonce required' });
7255
+ return;
7256
+ }
7257
+ const requestId = svc.registerApproval(topicId, kind, server, nonce);
7258
+ const path = `/mcp/approve/${requestId}`;
7259
+ res.json({ ok: true, requestId, path, url: ctx.tunnel?.getExternalUrl(path) ?? `http://localhost:${ctx.config.port}${path}` });
7260
+ });
7261
+ // The operator opens the link → a tappable approval page (NO nonce, NO PIN shown).
7262
+ router.get('/mcp/approve/:requestId', (req, res) => {
7263
+ const svc = ctx.dynamicMcpService;
7264
+ if (!svc || !svc.enabled()) {
7265
+ res.status(503).type('html').send('<p>This approval feature is not enabled.</p>');
7266
+ return;
7267
+ }
7268
+ const view = svc.peekApproval(String(req.params.requestId));
7269
+ if (!view) {
7270
+ res.status(404).type('html').send('<p>This approval request is no longer valid (used or expired).</p>');
7271
+ return;
7272
+ }
7273
+ const verb = view.kind === 'load' ? 'load' : 'drop';
7274
+ res.type('html').send(`<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width,initial-scale=1"><title>Approve MCP change</title>
7275
+ <style>body{font-family:system-ui,sans-serif;max-width:30rem;margin:2rem auto;padding:0 1rem}button{font-size:1.1rem;padding:.6rem 1.2rem;width:100%}input{font-size:1.1rem;padding:.5rem;width:100%;box-sizing:border-box}</style></head>
7276
+ <body><h2>Approve a tool change?</h2>
7277
+ <p>The agent wants to <b>${mcpHtmlEscape(verb)}</b> the <b>${mcpHtmlEscape(view.server)}</b> tool for this conversation (topic ${view.topicId}).</p>
7278
+ <p>Enter your dashboard PIN to approve. The agent cannot approve this itself.</p>
7279
+ <form method="POST" action="/mcp/approve/${mcpHtmlEscape(view.requestId)}">
7280
+ <p><input type="password" name="pin" inputmode="numeric" autocomplete="off" placeholder="Dashboard PIN" required></p>
7281
+ <p><button type="submit">Approve</button></p></form></body></html>`);
7282
+ });
7283
+ // The PIN-gated submit → consume the request server-side + drive the change.
7284
+ router.post('/mcp/approve/:requestId', (req, res) => {
7285
+ void (async () => {
7286
+ const svc = ctx.dynamicMcpService;
7287
+ if (!svc || !svc.enabled()) {
7288
+ res.status(503).type('html').send('<p>Not enabled.</p>');
7289
+ return;
7290
+ }
7291
+ if (!checkMandatePin(req, res))
7292
+ return; // dashboard-PIN gate (rate-limited); response already sent on failure
7293
+ const result = await svc.approveByRequestId(String(req.params.requestId));
7294
+ if (result.status === 'unknown-request') {
7295
+ res.status(404).type('html').send('<p>This approval request is no longer valid (used or expired).</p>');
7296
+ return;
7297
+ }
7298
+ const ok = result.status === 'applied';
7299
+ res.status(ok ? 200 : 409).type('html').send(`<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width,initial-scale=1"><style>body{font-family:system-ui,sans-serif;max-width:30rem;margin:2rem auto;padding:0 1rem}</style></head><body><h2>${ok ? '✅ Approved' : '⚠️ Not applied'}</h2><p>${ok ? 'The tool change was approved and is being applied — the session will restart briefly and continue.' : `The change was not applied (status: ${mcpHtmlEscape(result.status)}). You can close this page.`}</p></body></html>`);
7300
+ })();
7301
+ });
7200
7302
  // ── Feedback-factory processing (feedback-factory-migration §191) ──
7201
7303
  // Wires the already-parity'd processUnprocessed clustering pass into a real
7202
7304
  // triggerable capability. Both routes are dev-gated: ctx.feedbackProcessing is