@intutic/mcp-governance-proxy 2.1.0 → 2.2.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 (55) hide show
  1. package/README.md +33 -18
  2. package/dist/anomaly/index.d.ts +2 -1
  3. package/dist/anomaly/index.d.ts.map +1 -1
  4. package/dist/anomaly/index.js.map +1 -1
  5. package/dist/approvalHold.d.ts +65 -0
  6. package/dist/approvalHold.d.ts.map +1 -0
  7. package/dist/approvalHold.js +142 -0
  8. package/dist/approvalHold.js.map +1 -0
  9. package/dist/config.d.ts +6 -1
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +1 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/daemon/healthMonitor.d.ts +2 -0
  14. package/dist/daemon/healthMonitor.d.ts.map +1 -1
  15. package/dist/daemon/healthMonitor.js +60 -26
  16. package/dist/daemon/healthMonitor.js.map +1 -1
  17. package/dist/daemon/instrumentation.d.ts +2 -2
  18. package/dist/daemon/instrumentation.js +2 -2
  19. package/dist/daemon/policyCache.d.ts +23 -0
  20. package/dist/daemon/policyCache.d.ts.map +1 -1
  21. package/dist/daemon/policyCache.js +28 -7
  22. package/dist/daemon/policyCache.js.map +1 -1
  23. package/dist/emitter.d.ts +43 -9
  24. package/dist/emitter.d.ts.map +1 -1
  25. package/dist/emitter.js +23 -43
  26. package/dist/emitter.js.map +1 -1
  27. package/dist/httpJson.d.ts +19 -0
  28. package/dist/httpJson.d.ts.map +1 -0
  29. package/dist/httpJson.js +62 -0
  30. package/dist/httpJson.js.map +1 -0
  31. package/dist/identity.d.ts +27 -0
  32. package/dist/identity.d.ts.map +1 -0
  33. package/dist/identity.js +36 -0
  34. package/dist/identity.js.map +1 -0
  35. package/dist/interceptor.d.ts +88 -4
  36. package/dist/interceptor.d.ts.map +1 -1
  37. package/dist/interceptor.js +161 -11
  38. package/dist/interceptor.js.map +1 -1
  39. package/dist/policy.d.ts +84 -1
  40. package/dist/policy.d.ts.map +1 -1
  41. package/dist/policy.js +160 -39
  42. package/dist/policy.js.map +1 -1
  43. package/dist/proxy.d.ts +12 -7
  44. package/dist/proxy.d.ts.map +1 -1
  45. package/dist/proxy.js +81 -26
  46. package/dist/proxy.js.map +1 -1
  47. package/dist/registryObserver.d.ts +33 -0
  48. package/dist/registryObserver.d.ts.map +1 -0
  49. package/dist/registryObserver.js +59 -0
  50. package/dist/registryObserver.js.map +1 -0
  51. package/dist/version.d.ts +12 -0
  52. package/dist/version.d.ts.map +1 -0
  53. package/dist/version.js +13 -0
  54. package/dist/version.js.map +1 -0
  55. package/package.json +4 -4
package/dist/proxy.js CHANGED
@@ -30,7 +30,7 @@ import * as node_child from 'node:child_process';
30
30
  import * as node_readline from 'node:readline';
31
31
  import { createStderrLogger as createLogger } from './stderrLog.js';
32
32
  import { PolicyClient } from './policy.js';
33
- import { GovernanceEmitter } from './emitter.js';
33
+ import { GovernanceEmitter, detectionFinding } from './emitter.js';
34
34
  import { ToolCallInterceptor } from './interceptor.js';
35
35
  import { redactText as redactMcpText } from './dlp.js';
36
36
  import { scanText, injectionSeverity, setDynamicInjectionPatterns } from './injection.js';
@@ -39,6 +39,10 @@ import { SessionState } from './session.js';
39
39
  import { ValkeySessionStore } from './sessionStore.js';
40
40
  import { WasmRunner } from './wasm/runner.js';
41
41
  import { checkTofu, decideTofuAction } from './tofu.js';
42
+ import { RegistryObserver } from './registryObserver.js';
43
+ import { ApprovalHolds } from './approvalHold.js';
44
+ import { callerIdentity } from './identity.js';
45
+ import { PACKAGE_VERSION } from './version.js';
42
46
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
43
47
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
44
48
  import { z } from 'zod';
@@ -57,6 +61,22 @@ function buildBlockResponse(id, reason) {
57
61
  },
58
62
  };
59
63
  }
64
+ /**
65
+ * The JSON-RPC error for a call held for approval. Same code as a block (the
66
+ * call did not run), a message that says "held" rather than "blocked", and
67
+ * the hold id in `data` for a client that reads it programmatically.
68
+ */
69
+ function buildHoldResponse(id, reason, holdId) {
70
+ return {
71
+ jsonrpc: '2.0',
72
+ id,
73
+ error: {
74
+ code: -32603,
75
+ message: `[Intutic Governance] Tool call ${reason}`,
76
+ data: { status: 'pending_approval', holdId },
77
+ },
78
+ };
79
+ }
60
80
  /**
61
81
  * Write a JSON-RPC frame to stdout (the ONLY valid place to write in a stdio MCP proxy).
62
82
  */
@@ -84,13 +104,13 @@ function writeFrame(frame) {
84
104
  *
85
105
  * tools/list curation (the Uber-gateway mechanism): when the workspace
86
106
  * declares an additive allowlist, tools outside it are removed from the
87
- * listing — an agent that never sees a tool does not hallucinate calls to
107
+ * listing, as are tools the registry disables on this server — an agent that never sees a tool does not hallucinate calls to
88
108
  * it, and the call-time block in the interceptor stays as the enforcement
89
109
  * backstop. Operator description overrides apply to what remains, which is
90
110
  * also the counter to a poisoned upstream description — the pin detects the
91
111
  * change; the override controls what the agent actually reads.
92
112
  */
93
- export function processServerLine(raw, pending, allowedTools, overrides, injectionAction = 'warn', injectionPatterns = []) {
113
+ export function processServerLine(raw, pending, allowedTools, overrides, injectionAction = 'warn', injectionPatterns = [], disabledTools = []) {
94
114
  // Workspace-supplied injection patterns (TD-436), on top of the floor.
95
115
  // Idempotent when the list has not changed, so this is cheap per line.
96
116
  setDynamicInjectionPatterns(injectionPatterns);
@@ -192,7 +212,7 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
192
212
  redactedTool,
193
213
  redactions,
194
214
  injectionFindings,
195
- dlpEscalationReason: dlpEscalationFinding?.reason,
215
+ dlpEscalation: dlpEscalationFinding ?? undefined,
196
216
  };
197
217
  }
198
218
  if (req.method === 'tools/list') {
@@ -201,10 +221,16 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
201
221
  return { line: raw };
202
222
  let hidden = 0;
203
223
  let overridden = 0;
224
+ const upstreamNames = tools
225
+ .map((t) => t['name'])
226
+ .filter((n) => typeof n === 'string');
204
227
  let kept = tools;
205
- if (allowedTools.length > 0) {
228
+ if (allowedTools.length > 0 || disabledTools.length > 0) {
206
229
  kept = kept.filter((t) => {
207
- const keep = typeof t['name'] === 'string' && allowedTools.includes(t['name']);
230
+ const name = t['name'];
231
+ const keep = typeof name === 'string' &&
232
+ (allowedTools.length === 0 || allowedTools.includes(name)) &&
233
+ !disabledTools.includes(name);
208
234
  if (!keep)
209
235
  hidden += 1;
210
236
  return keep;
@@ -251,9 +277,10 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
251
277
  return {
252
278
  line: raw,
253
279
  toolsListTools: kept,
280
+ toolsListUpstreamNames: upstreamNames,
254
281
  toolsListMsgId: msg.id,
255
282
  injectionFindings,
256
- toolPoisoningReason: toolPoisoningFinding?.reason,
283
+ toolPoisoning: toolPoisoningFinding ?? undefined,
257
284
  };
258
285
  }
259
286
  msg.result['tools'] = kept;
@@ -261,9 +288,10 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
261
288
  line: JSON.stringify(msg),
262
289
  curated: { hidden, overridden },
263
290
  toolsListTools: kept,
291
+ toolsListUpstreamNames: upstreamNames,
264
292
  toolsListMsgId: msg.id,
265
293
  injectionFindings,
266
- toolPoisoningReason: toolPoisoningFinding?.reason,
294
+ toolPoisoning: toolPoisoningFinding ?? undefined,
267
295
  };
268
296
  }
269
297
  return { line: raw };
@@ -317,6 +345,9 @@ export function handleHarnessLine(line, pending, interceptor, forward, session)
317
345
  log.warn({ action: 'tool_blocked', toolName, reason: decision.reason }, 'Tool call blocked by governance proxy');
318
346
  writeFrame(buildBlockResponse(msg.id, decision.reason));
319
347
  }
348
+ else if (decision.action === 'hold') {
349
+ writeFrame(buildHoldResponse(msg.id, decision.reason, decision.holdId));
350
+ }
320
351
  else {
321
352
  // Allow: the response now needs inspecting on the way back —
322
353
  // registered BEFORE forwarding, or a fast server could answer
@@ -368,11 +399,14 @@ export class McpGovernanceProxy {
368
399
  * runs, not a second one (see `policy.ts`'s `start(onTick)`).
369
400
  */
370
401
  wasmRunner;
402
+ /** Reports this proxy's server to the registry; absent for the standalone `intutic` entry, which fronts none. */
403
+ registryObserver;
371
404
  realServer = null;
372
405
  constructor(config) {
373
406
  this.config = config;
374
407
  this.policy = new PolicyClient(config.controlPlaneUrl, config.apiKey, config.workspaceId, config.policyTtlMs, config.mcpProxyMode);
375
- this.emitter = new GovernanceEmitter(config.controlPlaneUrl, config.apiKey, config.eventsFilePath, config.workspaceId, config.mcpProxyMode);
408
+ const identity = callerIdentity(config.apiKey, config.serverName, config.sessionScope);
409
+ this.emitter = new GovernanceEmitter(config.controlPlaneUrl, config.apiKey, config.eventsFilePath, config.workspaceId, config.mcpProxyMode, identity);
376
410
  // The standalone `intutic` entry fronts no real server and records no
377
411
  // calls worth sharing; every wrapped server gets the shared window.
378
412
  this.sessionStore =
@@ -382,7 +416,10 @@ export class McpGovernanceProxy {
382
416
  ? 'Anomaly session window shared with sibling proxies through Valkey'
383
417
  : 'Anomaly session window is per-process');
384
418
  this.wasmRunner = new WasmRunner(config.mcpWasmDir);
385
- this.interceptor = new ToolCallInterceptor(this.policy, this.emitter, config.failOpen, config.serverName, config.mcpInjectionAction, this.session, config.mcpAnomalyMode, config.mcpAnomalyOverrides, this.wasmRunner, config.workspaceId);
419
+ this.registryObserver = config.standalone
420
+ ? undefined
421
+ : new RegistryObserver(config.controlPlaneUrl, config.apiKey, config.serverName, config.remoteTransport ?? 'stdio');
422
+ this.interceptor = new ToolCallInterceptor(this.policy, this.emitter, config.failOpen, config.serverName, config.mcpInjectionAction, this.session, config.mcpAnomalyMode, config.mcpAnomalyOverrides, this.wasmRunner, config.workspaceId, new ApprovalHolds(config.controlPlaneUrl, config.apiKey, config.workspaceId, config.serverName, identity));
386
423
  }
387
424
  /**
388
425
  * The tools/call decision engine — exposed so `remoteBridge.ts` can drive
@@ -414,6 +451,7 @@ export class McpGovernanceProxy {
414
451
  this.ensureWasmWatch();
415
452
  return this.wasmRunner.rescan();
416
453
  });
454
+ void this.registryObserver?.observe();
417
455
  }
418
456
  wasmWatch = null;
419
457
  /**
@@ -457,7 +495,7 @@ export class McpGovernanceProxy {
457
495
  log.info({ action: 'standalone_start', workspaceId: this.config.workspaceId }, 'Starting Intutic MCP governance server (standalone mode)');
458
496
  const server = new McpServer({
459
497
  name: 'intutic',
460
- version: '0.1.0',
498
+ version: PACKAGE_VERSION,
461
499
  });
462
500
  const cpUrl = this.config.controlPlaneUrl;
463
501
  const apiKey = this.config.apiKey;
@@ -543,9 +581,9 @@ export class McpGovernanceProxy {
543
581
  * (tofu.ts), which does file I/O — the ONLY case this awaits before
544
582
  * writing; every other line is forwarded exactly as fast as before.
545
583
  *
546
- * On a TOFU mismatch, honors `mcpProxyFailBehavior` via `config.failOpen` —
547
- * the SAME field `interceptor.ts` already reads for its own fail-open/
548
- * fail-closed branches, not a new mechanism: fail-open logs and forwards
584
+ * On a TOFU mismatch, honors `mcpProxyFailBehavior` via the interceptor's
585
+ * `failOpen` — the SAME value its own fail-open/fail-closed branches read,
586
+ * not a new mechanism: fail-open logs and forwards
549
587
  * the (possibly curated) tools/list response as normal; fail-closed
550
588
  * replaces it with a JSON-RPC error naming the server and the setting,
551
589
  * mirroring `buildBlockResponse`'s existing wording style.
@@ -558,7 +596,7 @@ export class McpGovernanceProxy {
558
596
  */
559
597
  async handleServerLine(rawLine, pending) {
560
598
  const injectionAction = this.policy.getInjectionAction() ?? this.config.mcpInjectionAction;
561
- const outcome = processServerLine(rawLine, pending, this.policy.getAllowedTools(), this.policy.getToolDescriptionOverrides(), injectionAction, this.policy.getInjectionPatterns());
599
+ const outcome = processServerLine(rawLine, pending, this.policy.getAllowedTools(), this.policy.getToolDescriptionOverrides(), injectionAction, this.policy.getInjectionPatterns(), this.policy.getRegistry()?.disabledTools[this.config.serverName] ?? []);
562
600
  if (outcome.injectionFindings) {
563
601
  for (const finding of outcome.injectionFindings) {
564
602
  const severity = injectionSeverity(finding.patterns, finding.source);
@@ -571,7 +609,14 @@ export class McpGovernanceProxy {
571
609
  severity,
572
610
  withheld: outcome.injectionBlocked === true && finding.source === 'tool_result',
573
611
  }, 'Prompt-injection pattern matched in MCP response traffic');
574
- this.emitter.emit('injection_detected', finding.toolName, undefined, reason, severity);
612
+ const withheld = outcome.injectionBlocked === true && finding.source === 'tool_result';
613
+ this.emitter.emit('injection_detected', finding.toolName, undefined, reason, {
614
+ detectorId: `injection:${finding.source}`,
615
+ kind: 'prompt_injection',
616
+ disposition: withheld ? 'kill' : 'steer',
617
+ severity,
618
+ confidence: 1,
619
+ });
575
620
  // tools/list description findings are report-only in v1 (never
576
621
  // blocked by injection alone — curation + TOFU already govern the
577
622
  // listing); only a `tool_result` finding can carry
@@ -587,24 +632,34 @@ export class McpGovernanceProxy {
587
632
  toolName: outcome.redactedTool,
588
633
  redactions: outcome.redactions,
589
634
  }, 'Sensitive data redacted from a tool result before it reached the agent');
590
- this.emitter.emit('tool_redacted', outcome.redactedTool, undefined, `Result redacted: ${(outcome.redactions ?? []).join('; ')}`, outcome.dlpEscalationReason ? 'high' : undefined);
635
+ this.emitter.emit('tool_redacted', outcome.redactedTool, undefined, `Result redacted: ${(outcome.redactions ?? []).join('; ')}`, {
636
+ detectorId: 'result_redaction',
637
+ kind: 'data_exfiltration',
638
+ disposition: 'steer',
639
+ severity: outcome.dlpEscalation ? 'high' : 'medium',
640
+ confidence: 1,
641
+ });
591
642
  }
592
- if (outcome.dlpEscalationReason) {
643
+ if (outcome.dlpEscalation) {
593
644
  // Phase 2's dlp_escalation: severity escalation only, never a new
594
- // block — see `ServerLineOutcome.dlpEscalationReason`'s doc comment.
595
- log.warn({ action: 'anomaly_detected', detectorId: 'dlp_escalation', toolName: outcome.redactedTool }, outcome.dlpEscalationReason);
596
- this.emitter.emit('anomaly_detected', outcome.redactedTool ?? 'unknown', undefined, outcome.dlpEscalationReason, 'high');
645
+ // block — see `ServerLineOutcome.dlpEscalation`'s doc comment. So the
646
+ // finding records `steer`, what it did, not the detector's declared kill.
647
+ log.warn({ action: 'anomaly_detected', detectorId: 'dlp_escalation', toolName: outcome.redactedTool }, outcome.dlpEscalation.reason);
648
+ this.emitter.emit('anomaly_detected', outcome.redactedTool ?? 'unknown', undefined, outcome.dlpEscalation.reason, detectionFinding(outcome.dlpEscalation, 'steer', 'high'));
597
649
  }
598
650
  if (outcome.curated) {
599
651
  log.info({ action: 'tools_list_curated', ...outcome.curated }, 'tools/list curated: allowlist filtering and/or description overrides applied');
600
652
  }
601
- if (outcome.toolPoisoningReason) {
653
+ if (outcome.toolPoisoning) {
602
654
  // Phase 2's tool_poisoning: report-only (Steer), same as Phase 1's
603
655
  // tools/list description injection scan — never blocks the listing.
604
- log.warn({ action: 'anomaly_detected', detectorId: 'tool_poisoning' }, outcome.toolPoisoningReason);
605
- this.emitter.emit('anomaly_detected', this.config.serverName, undefined, outcome.toolPoisoningReason, 'low');
656
+ log.warn({ action: 'anomaly_detected', detectorId: 'tool_poisoning' }, outcome.toolPoisoning.reason);
657
+ this.emitter.emit('anomaly_detected', this.config.serverName, undefined, outcome.toolPoisoning.reason, detectionFinding(outcome.toolPoisoning, 'steer', 'low'));
606
658
  }
607
659
  if (outcome.toolsListTools) {
660
+ // The registry gets the server's own tool names, before curation:
661
+ // per-tool toggles must be able to re-enable a tool curation hid.
662
+ void this.registryObserver?.observe(outcome.toolsListUpstreamNames ?? []);
608
663
  // Cache the post-curation tools/list for Phase 2's tool_poisoning
609
664
  // detector (already applied above, from this same outcome) and for
610
665
  // Phase 3's WASM rule context (`tools` field) once that lands.
@@ -625,7 +680,7 @@ export class McpGovernanceProxy {
625
680
  // this package — fail-open forwards, fail-closed refuses — never a
626
681
  // silent skip either way.
627
682
  log.error({ action: 'tofu_check_error', err: err.message }, 'TOFU check failed');
628
- if (!this.config.failOpen) {
683
+ if (!this.interceptor.failOpen) {
629
684
  writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, `TOFU pin check for MCP server "${serverName}" failed (could not read/write ` +
630
685
  `~/.intutic/mcp-pins/). Blocked by workspace policy (fail-closed mode). ` +
631
686
  `Contact your administrator or update mcpProxyFailBehavior to open.`));
@@ -649,7 +704,7 @@ export class McpGovernanceProxy {
649
704
  log.info({ action: 'tofu_first_contact', serverName, fingerprint: tofu.fingerprint }, 'MCP server tool definitions pinned on first contact');
650
705
  }
651
706
  else if (tofu.status === 'mismatch') {
652
- const action = decideTofuAction(tofu, serverName, this.config.failOpen);
707
+ const action = decideTofuAction(tofu, serverName, this.interceptor.failOpen);
653
708
  const reason = action.reason ?? 'MCP server tool definitions changed since first pinned.';
654
709
  log.warn({
655
710
  action: 'mcp_server_definition_changed',
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,aAAa,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,2BAA2B,EAAwB,MAAM,gBAAgB,CAAA;AAC/G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAA2B,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAEnE,MAAM,GAAG,GAAG,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAqBhD;;GAEG;AACH,SAAS,kBAAkB,CAAC,EAA0B,EAAE,MAAc;IACpE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,KAAK,EAAE,sDAAsD;YACpE,OAAO,EAAE,2CAA2C,MAAM,EAAE;SAC7D;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AACpD,CAAC;AAmED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,OAA6C,EAC7C,YAA+B,EAC/B,SAA2C,EAC3C,kBAAoC,MAAM,EAC1C,oBAAuC,EAAE;IAEzC,uEAAuE;IACvE,uEAAuE;IACvE,2BAA2B,CAAC,iBAAiB,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;IAClC,IAAI,GAA2D,CAAA;IAC/D,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA,CAAC,gDAAgD;IACvE,CAAC;IACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA,CAAC,eAAe;IACjF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;IAC9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACtB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;IAEvE,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAA;QAExC,qEAAqE;QACrE,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,0DAA0D;QAC1D,IAAI,UAAU,GAAG,UAAU,CAAA;QAC3B,IAAI,SAAS,GAA4B,GAAG,CAAC,MAAM,CAAA;QACnD,IAAI,YAAgC,CAAA;QACpC,IAAI,UAAgC,CAAA;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,YAAY,GAAG,KAAK,CAAA;YACpB,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAA;gBAC3D,UAAU,GAAG,QAAQ,CAAA;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,GAAoB;oBAChC,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EACL,oEAAoE;4BACpE,uEAAuE;4BACvE,uBAAuB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBAC1E;iBACF,CAAA;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA;YACrE,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,6DAA6D;QAC7D,oEAAoE;QACpE,sEAAsE;QACtE,aAAa;QACb,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC9C,IAAI,iBAAyD,CAAA;QAC7D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,iBAAiB,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAA;YAC7F,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;gBAChC,6DAA6D;gBAC7D,iEAAiE;gBACjE,oDAAoD;gBACpD,MAAM,iBAAiB,GAAoB;oBACzC,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EACL,sEAAsE;4BACtE,eAAe,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;4BAC3E,+BAA+B;qBAClC;iBACF,CAAA;gBACD,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;oBACvC,YAAY;oBACZ,UAAU;oBACV,iBAAiB;oBACjB,gBAAgB,EAAE,IAAI;iBACvB,CAAA;YACH,CAAC;YACD,sEAAsE;QACxE,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,oEAAoE;QACpE,oDAAoD;QACpD,MAAM,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE1E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,KAAK,SAAS,IAAI,CAAC,oBAAoB;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAE3G,GAAG,CAAC,MAAM,GAAG,SAAS,CAAA;QACtB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACzB,YAAY;YACZ,UAAU;YACV,iBAAiB;YACjB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM;SAClD,CAAA;IACH,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAC/C,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,IAAI,GAAG,KAAuC,CAAA;QAClD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC9E,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,CAAC,CAAA;gBACtB,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;YACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9D,CAAC,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;gBAClC,UAAU,IAAI,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,sEAAsE;QACtE,IAAI,iBAAyD,CAAA;QAC7D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAA;YACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ;gBAAE,SAAQ;YACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;YACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACnC,iBAAiB,KAAK,EAAE,CAAA;YACxB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAClF,CAAC;QAED,uEAAuE;QACvE,iEAAiE;QACjE,iEAAiE;QACjE,2DAA2D;QAC3D,MAAM,oBAAoB,GAAG,aAAa,CACxC,IAAI;aACD,MAAM,CAAC,CAAC,CAAC,EAAmD,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;aAC7F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CACvH,CAAA;QAED,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,kCAAkC;QAClC,IAAI,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,GAAG;gBACT,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,iBAAiB;gBACjB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM;aAClD,CAAA;QACH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;QAC1B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACzB,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;YAC/B,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,GAAG,CAAC,EAAE;YACtB,iBAAiB;YACjB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM;SAClD,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,OAA6C,EAC7C,WAAgC,EAChC,OAA+B,EAC/B,OAAsB;IAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,IAAI,GAAmB,CAAA;IACvB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAA;QACjG,OAAM;IACR,CAAC;IAED,2DAA2D;IAC3D,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QAC/C,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAwC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,IAAI,WAAW,CAAA;QAC5C,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,EAAE,CAAA;QAEzC,sCAAsC;QACtC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAChC,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAC7D,uCAAuC,CACxC,CAAA;gBACD,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YACzD,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,8DAA8D;gBAC9D,gBAAgB;gBAChB,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACzD,CAAC;gBACD,qEAAqE;gBACrE,kEAAkE;gBAClE,kEAAkE;gBAClE,oEAAoE;gBACpE,kBAAkB;gBAClB,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,8DAA8D;YAC9D,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,kCAAkC,CAAC,CAAA;YAC3G,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,OAAO,kBAAkB;IA0BA;IAzBZ,MAAM,CAAc;IACpB,OAAO,CAAmB;IAC1B,WAAW,CAAqB;IACjD;;;;;;;;;OASG;IACc,OAAO,CAAc;IACtC,4GAA4G;IAC3F,YAAY,CAAgC;IAC7D;;;;;OAKG;IACc,UAAU,CAAY;IAC/B,UAAU,GAAmC,IAAI,CAAA;IAEzD,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAC5B,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,CACpB,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAClC,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,CACpB,CAAA;QAED,sEAAsE;QACtE,oEAAoE;QACpE,IAAI,CAAC,YAAY;YACf,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/F,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QACzF,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,EAC1H,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY;YACtC,CAAC,CAAC,mEAAmE;YACrE,CAAC,CAAC,uCAAuC,CAC5C,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEnD,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,CACxC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,kBAAkB,EACzB,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,mBAAmB,EAC1B,IAAI,CAAC,UAAU,EACf,MAAM,CAAC,WAAW,CACnB,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,SAAS,GAA0B,IAAI,CAAA;IAE/C;;;;;OAKG;IACK,eAAe;QACrB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IACzF,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;QAC/B,KAAK,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAED,gFAAgF;IAEhF;;;;OAIG;IACK,KAAK,CAAC,aAAa;QACzB,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EACpE,0DAA0D,CAC3D,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;QAmB3C,KAAK,UAAU,gBAAgB,CAAC,IAAY;YAC1C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,EAAE;oBACzC,OAAO,EAAE;wBACP,eAAe,EAAE,UAAU,MAAM,EAAE;wBACnC,gBAAgB,EAAE,WAAW;qBAC9B;oBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;iBAClC,CAAC,CAAA;gBACF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;gBACjE,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;gBACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAA;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,SAAS,eAAe,CAAC,MAA+C,EAAE,IAAY;YACpF,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW;gBAClC,CAAC,CAAC,yCAAyC,IAAI,2CAA2C;gBAC1F,CAAC,CAAC,oCAAoC,IAAI,GAAG,CAAA;QACjD,CAAC;QAED,kCAAkC;QAClC,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,mGAAmG,EACnG,EAAE,EACF,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE;gBACtB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAI,MAAM,CAAC,IAAgC,EAAE;gBACpG,CAAC,CAAC;oBACE,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK;oBACnB,WAAW;oBACX,KAAK,EACH,MAAM,CAAC,MAAM,KAAK,WAAW;wBAC3B,CAAC,CAAC,qCAAqC;wBACvC,CAAC,CAAC,2BAA2B;iBAClC,CAAA;YAEL,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAA;QACH,CAAC,CACF,CAAA;QAED,0BAA0B;QAC1B,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,sEAAsE,EACtE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,EAClG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,4BAA4B,WAAW,UAAU,KAAK,EAAE,CACzD,CAAA;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE;gBACpB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YAExC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAA;QACH,CAAC,CACF,CAAA;QAED,+BAA+B;QAC/B,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,8FAA8F,EAC9F,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,EACvG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,iCAAiC,WAAW,UAAU,KAAK,EAAE,CAC9D,CAAA;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE;gBACpB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;YAE7C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAA;QACH,CAAC,CACF,CAAA;QAED,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;QAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,0BAA0B,CAAC,CAAA;QAEpE,sDAAsD;QACtD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAClC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC7B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,iFAAiF;IAEjF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,OAA6C;QAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;QAC1F,MAAM,OAAO,GAAG,iBAAiB,CAC/B,OAAO,EACP,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAC7B,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,EACzC,eAAe,EACf,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CACnC,CAAA;QACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBACpE,MAAM,MAAM,GAAG,2CAA2C,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,QAAQ,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;gBAClI,GAAG,CAAC,IAAI,CACN;oBACE,MAAM,EAAE,oBAAoB;oBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,QAAQ;oBACR,QAAQ,EAAE,OAAO,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa;iBAChF,EACD,0DAA0D,CAC3D,CAAA;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACtF,+DAA+D;gBAC/D,kEAAkE;gBAClE,mDAAmD;gBACnD,sBAAsB;gBACtB,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CACN;gBACE,MAAM,EAAE,iBAAiB;gBACzB,QAAQ,EAAE,OAAO,CAAC,YAAY;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,EACD,wEAAwE,CACzE,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,eAAe,EACf,OAAO,CAAC,YAAY,EACpB,SAAS,EACT,oBAAoB,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3D,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACjD,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAChC,kEAAkE;YAClE,qEAAqE;YACrE,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,EAC5F,OAAO,CAAC,mBAAmB,CAC5B,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QAC1H,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EACpD,8EAA8E,CAC/E,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAChC,mEAAmE;YACnE,oEAAoE;YACpE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;YACnG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC9G,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,kEAAkE;YAClE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,CAAC,OAAO,CAAC,YAAY,CACvB,OAAO,CAAC,cAAc;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAmD,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;iBAC7F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,WAAW,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC,CAAC,CACN,CAAA;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;YACzC,IAAI,IAA2C,CAAA;YAC/C,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;YACrF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,6DAA6D;gBAC7D,oEAAoE;gBACpE,mEAAmE;gBACnE,0BAA0B;gBAC1B,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAA;gBAC3F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC1B,UAAU,CACR,kBAAkB,CAChB,OAAO,CAAC,cAAc,IAAI,IAAI,EAC9B,kCAAkC,UAAU,iCAAiC;wBAC3E,yEAAyE;wBACzE,oEAAoE,CACvE,CACF,CAAA;oBACD,OAAM;gBACR,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;gBACzC,OAAM;YACR,CAAC;YAED,oEAAoE;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,kEAAkE;YAClE,wEAAwE;YACxE,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC/D,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;gBACpC,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAC3E,qDAAqD,CACtD,CAAA;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACvE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,yDAAyD,CAAA;gBACzF,GAAG,CAAC,IAAI,CACN;oBACE,MAAM,EAAE,+BAA+B;oBACvC,UAAU;oBACV,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;oBAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,OAAO,EAAE,MAAM,CAAC,KAAK;iBACtB,EACD,MAAM,CACP,CAAA;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;gBAEjF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;oBACtE,OAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,QAAQ;QACpB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAA;QAEpD,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC1E,+BAA+B,CAChC,CAAA;QAED,oEAAoE;QACpE,kCAAkC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,4BAA4B;QAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,GAAI,EAAE,IAAI,EAAE;YAC9C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,qDAAqD;SAC1F,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;YAClC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAA;YACpF,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,EAAE,CAAA;YACnB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAA;QACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;QAEhD,oEAAoE;QACpE,yEAAyE;QACzE,sEAAsE;QACtE,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;QAE1D,sEAAsE;QACtE,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC;YAC7C,KAAK,EAAE,UAAU,CAAC,MAAO;YACzB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;QACF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YAC9B,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,gEAAgE;QAChE,yEAAyE;QACzE,+CAA+C;QAC/C,MAAM,EAAE,GAAG,aAAa,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAEnF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBACvD,UAAU,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;YACnC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,sCAAsC,CAAC,CAAA;YAC5E,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,EAAE,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,mCAAmC;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACrC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAA;gBAChF,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,+BAA+B,CAAC,CAAA;gBAC7F,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * registryObserver.ts — tells the control plane which MCP server this proxy
3
+ * fronts, and which tools it declares.
4
+ *
5
+ * The MCP daemon's heartbeat reports the servers it finds in harness configs,
6
+ * but a per-session proxy runs without the daemon on most machines, and only
7
+ * the proxy ever sees a server's tools/list. So the proxy reports its own
8
+ * server: once at start (so a server refused under a `deny` default still
9
+ * reaches the approval queue, even if its tools/list never gets through) and
10
+ * again whenever the tool names it sees change (so the registry can offer
11
+ * per-tool toggles). The control plane creates a candidate on first sight and
12
+ * notifies the workspace.
13
+ *
14
+ * Best-effort and quiet: a failed report costs one registry refresh, never a
15
+ * tool call.
16
+ *
17
+ * @module
18
+ */
19
+ export declare class RegistryObserver {
20
+ private readonly controlPlaneUrl;
21
+ private readonly apiKey;
22
+ private readonly serverName;
23
+ private readonly transport;
24
+ private lastReported;
25
+ constructor(controlPlaneUrl: string, apiKey: string, serverName: string, transport: 'stdio' | 'http' | 'sse');
26
+ /**
27
+ * Reports the server, with `tools` when known. A report identical to the
28
+ * last successful one is skipped. Without an API key, or without a
29
+ * `--server-name` to report, there is nothing the registry could record.
30
+ */
31
+ observe(tools?: readonly string[]): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=registryObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registryObserver.d.ts","sourceRoot":"","sources":["../src/registryObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,YAAY,CAAsB;gBAGvB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK;IAGtD;;;;OAIG;IACG,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBxD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * registryObserver.ts — tells the control plane which MCP server this proxy
3
+ * fronts, and which tools it declares.
4
+ *
5
+ * The MCP daemon's heartbeat reports the servers it finds in harness configs,
6
+ * but a per-session proxy runs without the daemon on most machines, and only
7
+ * the proxy ever sees a server's tools/list. So the proxy reports its own
8
+ * server: once at start (so a server refused under a `deny` default still
9
+ * reaches the approval queue, even if its tools/list never gets through) and
10
+ * again whenever the tool names it sees change (so the registry can offer
11
+ * per-tool toggles). The control plane creates a candidate on first sight and
12
+ * notifies the workspace.
13
+ *
14
+ * Best-effort and quiet: a failed report costs one registry refresh, never a
15
+ * tool call.
16
+ *
17
+ * @module
18
+ */
19
+ import { createStderrLogger as createLogger } from './stderrLog.js';
20
+ import { postJson } from './httpJson.js';
21
+ const log = createLogger('mcp-proxy-registry');
22
+ export class RegistryObserver {
23
+ controlPlaneUrl;
24
+ apiKey;
25
+ serverName;
26
+ transport;
27
+ lastReported = null;
28
+ constructor(controlPlaneUrl, apiKey, serverName, transport) {
29
+ this.controlPlaneUrl = controlPlaneUrl;
30
+ this.apiKey = apiKey;
31
+ this.serverName = serverName;
32
+ this.transport = transport;
33
+ }
34
+ /**
35
+ * Reports the server, with `tools` when known. A report identical to the
36
+ * last successful one is skipped. Without an API key, or without a
37
+ * `--server-name` to report, there is nothing the registry could record.
38
+ */
39
+ async observe(tools) {
40
+ if (!this.apiKey || this.serverName === 'unknown')
41
+ return;
42
+ const toolNames = tools ? [...new Set(tools)].sort() : undefined;
43
+ const key = JSON.stringify(toolNames ?? null);
44
+ if (key === this.lastReported || (toolNames === undefined && this.lastReported !== null))
45
+ return;
46
+ try {
47
+ await postJson(`${this.controlPlaneUrl}/api/v1/mcp/servers/observe`, this.apiKey, {
48
+ serverName: this.serverName,
49
+ transport: this.transport,
50
+ ...(toolNames ? { tools: toolNames } : {}),
51
+ });
52
+ this.lastReported = key;
53
+ }
54
+ catch (err) {
55
+ log.debug({ action: 'registry_observe_failed', err: err.message }, 'Could not report this MCP server to the registry');
56
+ }
57
+ }
58
+ }
59
+ //# sourceMappingURL=registryObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registryObserver.js","sourceRoot":"","sources":["../src/registryObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAA;AAE9C,MAAM,OAAO,gBAAgB;IAIR;IACA;IACA;IACA;IANX,YAAY,GAAkB,IAAI,CAAA;IAE1C,YACmB,eAAuB,EACvB,MAAc,EACd,UAAkB,EAClB,SAAmC;QAHnC,oBAAe,GAAf,eAAe,CAAQ;QACvB,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAA0B;IACnD,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,KAAyB;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;QAC7C,IAAI,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;YAAE,OAAM;QAChG,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,6BAA6B,EAAE,IAAI,CAAC,MAAM,EAAE;gBAChF,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,kDAAkD,CAAC,CAAA;QACnI,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * version.ts — this package's own version, read from its package.json.
3
+ *
4
+ * The standalone `intutic` MCP server reports it to clients in its
5
+ * `initialize` response. It was a hard-coded `'0.1.0'` that never moved with
6
+ * a release. `../package.json` resolves from both `src/` (tests) and `dist/`
7
+ * (the published build), and npm always ships package.json.
8
+ *
9
+ * @module
10
+ */
11
+ export declare const PACKAGE_VERSION: string;
12
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,eAAO,MAAM,eAAe,EAAE,MAA2F,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * version.ts — this package's own version, read from its package.json.
3
+ *
4
+ * The standalone `intutic` MCP server reports it to clients in its
5
+ * `initialize` response. It was a hard-coded `'0.1.0'` that never moved with
6
+ * a release. `../package.json` resolves from both `src/` (tests) and `dist/`
7
+ * (the published build), and npm always ships package.json.
8
+ *
9
+ * @module
10
+ */
11
+ import { createRequire } from 'node:module';
12
+ export const PACKAGE_VERSION = createRequire(import.meta.url)('../package.json').version;
13
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAY,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intutic/mcp-governance-proxy",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Intutic MCP Governance Proxy — transparent stdio proxy that intercepts all tools/call JSON-RPC messages and applies workspace SOP policy before forwarding to real MCP servers",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -33,9 +33,9 @@
33
33
  "@opentelemetry/semantic-conventions": "^1.43.0",
34
34
  "ioredis": "^5",
35
35
  "zod": "^3",
36
- "@intutic/id": "2.1.0",
37
- "@intutic/logger": "2.1.0",
38
- "@intutic/shared-types": "2.1.0"
36
+ "@intutic/id": "2.2.0",
37
+ "@intutic/logger": "2.2.0",
38
+ "@intutic/shared-types": "2.2.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^22",