crosscheck-mcp 0.1.11 → 0.1.13

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.
@@ -1,6 +1,31 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
3
3
 
4
+ /** A live bridge to a Python crosscheck-agent child. */
5
+ interface BridgeHandle {
6
+ /** Names of the tools exposed by the Python child (from its
7
+ * `tools/list` response). */
8
+ readonly toolNames: ReadonlySet<string>;
9
+ /** PID of the spawned Python child process, or `null` if the
10
+ * transport hasn't started yet / has already closed. Useful for
11
+ * shutdown verification and host-side diagnostics. */
12
+ readonly pid: number | null;
13
+ /** Forward a `tools/call` to the Python child and return the result
14
+ * envelope verbatim. */
15
+ callTool(name: string, args: Record<string, unknown>): Promise<{
16
+ content: {
17
+ type: string;
18
+ text: string;
19
+ }[];
20
+ isError?: boolean;
21
+ }>;
22
+ /** Re-fetch the tool list (in case the child surfaces new tools mid-
23
+ * session). Returns the new tool names. */
24
+ refreshTools(): Promise<ReadonlySet<string>>;
25
+ /** Tear down the bridge cleanly. Idempotent — repeat calls are no-ops. */
26
+ close(): Promise<void>;
27
+ }
28
+
4
29
  /** Per-call node-cache config block. Mirrors Python's CFG.node_cache. */
5
30
  interface NodeCacheCfg {
6
31
  /** Master enable flag. Defaults to true when the cfg block exists
@@ -332,31 +357,6 @@ interface BreakerCfg {
332
357
  max_dag_depth?: number;
333
358
  }
334
359
 
335
- /** A live bridge to a Python crosscheck-agent child. */
336
- interface BridgeHandle {
337
- /** Names of the tools exposed by the Python child (from its
338
- * `tools/list` response). */
339
- readonly toolNames: ReadonlySet<string>;
340
- /** PID of the spawned Python child process, or `null` if the
341
- * transport hasn't started yet / has already closed. Useful for
342
- * shutdown verification and host-side diagnostics. */
343
- readonly pid: number | null;
344
- /** Forward a `tools/call` to the Python child and return the result
345
- * envelope verbatim. */
346
- callTool(name: string, args: Record<string, unknown>): Promise<{
347
- content: {
348
- type: string;
349
- text: string;
350
- }[];
351
- isError?: boolean;
352
- }>;
353
- /** Re-fetch the tool list (in case the child surfaces new tools mid-
354
- * session). Returns the new tool names. */
355
- refreshTools(): Promise<ReadonlySet<string>>;
356
- /** Tear down the bridge cleanly. Idempotent — repeat calls are no-ops. */
357
- close(): Promise<void>;
358
- }
359
-
360
360
  interface PricingDoc {
361
361
  /** `<provider>` -> `<model>` -> ModelRates. */
362
362
  [provider: string]: unknown;
@@ -438,6 +438,16 @@ interface ConfigPinningConfig {
438
438
  reject_drift?: boolean;
439
439
  }
440
440
 
441
+ interface FetchConfig {
442
+ enabled?: boolean;
443
+ url_allowlist?: readonly string[];
444
+ max_bytes?: number;
445
+ max_bytes_per_session?: number;
446
+ max_unique_hosts_per_session?: number;
447
+ timeout_s?: number;
448
+ evidence_dir?: string;
449
+ }
450
+
441
451
  declare const SERVER_NAME = "crosscheck-agent";
442
452
  declare const SERVER_VERSION: string;
443
453
  interface CreateServerOptions {
@@ -483,6 +493,15 @@ interface CreateServerOptions {
483
493
  /** PR-7: env-equivalent of CROSSCHECK_REJECT_CONFIG_DRIFT=1.
484
494
  * When true, drift gate fires regardless of \`configPinning.reject_drift\`. */
485
495
  rejectConfigDriftEnv?: boolean;
496
+ /** CFG.fetch — fetch tool allowlist + egress caps + evidence dir. Without
497
+ * it, the fetch tool's allowlist is empty (deny-all). */
498
+ fetchConfig?: FetchConfig;
499
+ /** CFG.moderator — default moderator/synthesis provider (lowercased). */
500
+ moderatorDefault?: string;
501
+ /** CFG.bench.goldens_dir — default goldens directory for the bench tool. */
502
+ benchGoldensDir?: string;
503
+ /** CFG.events_log — path for the structured-event ND-JSON sink (scoreboard). */
504
+ eventsPath?: string;
486
505
  }
487
506
  /**
488
507
  * Create a not-yet-connected MCP server with the current tool surface
@@ -1,6 +1,31 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
3
3
 
4
+ /** A live bridge to a Python crosscheck-agent child. */
5
+ interface BridgeHandle {
6
+ /** Names of the tools exposed by the Python child (from its
7
+ * `tools/list` response). */
8
+ readonly toolNames: ReadonlySet<string>;
9
+ /** PID of the spawned Python child process, or `null` if the
10
+ * transport hasn't started yet / has already closed. Useful for
11
+ * shutdown verification and host-side diagnostics. */
12
+ readonly pid: number | null;
13
+ /** Forward a `tools/call` to the Python child and return the result
14
+ * envelope verbatim. */
15
+ callTool(name: string, args: Record<string, unknown>): Promise<{
16
+ content: {
17
+ type: string;
18
+ text: string;
19
+ }[];
20
+ isError?: boolean;
21
+ }>;
22
+ /** Re-fetch the tool list (in case the child surfaces new tools mid-
23
+ * session). Returns the new tool names. */
24
+ refreshTools(): Promise<ReadonlySet<string>>;
25
+ /** Tear down the bridge cleanly. Idempotent — repeat calls are no-ops. */
26
+ close(): Promise<void>;
27
+ }
28
+
4
29
  /** Per-call node-cache config block. Mirrors Python's CFG.node_cache. */
5
30
  interface NodeCacheCfg {
6
31
  /** Master enable flag. Defaults to true when the cfg block exists
@@ -332,31 +357,6 @@ interface BreakerCfg {
332
357
  max_dag_depth?: number;
333
358
  }
334
359
 
335
- /** A live bridge to a Python crosscheck-agent child. */
336
- interface BridgeHandle {
337
- /** Names of the tools exposed by the Python child (from its
338
- * `tools/list` response). */
339
- readonly toolNames: ReadonlySet<string>;
340
- /** PID of the spawned Python child process, or `null` if the
341
- * transport hasn't started yet / has already closed. Useful for
342
- * shutdown verification and host-side diagnostics. */
343
- readonly pid: number | null;
344
- /** Forward a `tools/call` to the Python child and return the result
345
- * envelope verbatim. */
346
- callTool(name: string, args: Record<string, unknown>): Promise<{
347
- content: {
348
- type: string;
349
- text: string;
350
- }[];
351
- isError?: boolean;
352
- }>;
353
- /** Re-fetch the tool list (in case the child surfaces new tools mid-
354
- * session). Returns the new tool names. */
355
- refreshTools(): Promise<ReadonlySet<string>>;
356
- /** Tear down the bridge cleanly. Idempotent — repeat calls are no-ops. */
357
- close(): Promise<void>;
358
- }
359
-
360
360
  interface PricingDoc {
361
361
  /** `<provider>` -> `<model>` -> ModelRates. */
362
362
  [provider: string]: unknown;
@@ -438,6 +438,16 @@ interface ConfigPinningConfig {
438
438
  reject_drift?: boolean;
439
439
  }
440
440
 
441
+ interface FetchConfig {
442
+ enabled?: boolean;
443
+ url_allowlist?: readonly string[];
444
+ max_bytes?: number;
445
+ max_bytes_per_session?: number;
446
+ max_unique_hosts_per_session?: number;
447
+ timeout_s?: number;
448
+ evidence_dir?: string;
449
+ }
450
+
441
451
  declare const SERVER_NAME = "crosscheck-agent";
442
452
  declare const SERVER_VERSION: string;
443
453
  interface CreateServerOptions {
@@ -483,6 +493,15 @@ interface CreateServerOptions {
483
493
  /** PR-7: env-equivalent of CROSSCHECK_REJECT_CONFIG_DRIFT=1.
484
494
  * When true, drift gate fires regardless of \`configPinning.reject_drift\`. */
485
495
  rejectConfigDriftEnv?: boolean;
496
+ /** CFG.fetch — fetch tool allowlist + egress caps + evidence dir. Without
497
+ * it, the fetch tool's allowlist is empty (deny-all). */
498
+ fetchConfig?: FetchConfig;
499
+ /** CFG.moderator — default moderator/synthesis provider (lowercased). */
500
+ moderatorDefault?: string;
501
+ /** CFG.bench.goldens_dir — default goldens directory for the bench tool. */
502
+ benchGoldensDir?: string;
503
+ /** CFG.events_log — path for the structured-event ND-JSON sink (scoreboard). */
504
+ eventsPath?: string;
486
505
  }
487
506
  /**
488
507
  * Create a not-yet-connected MCP server with the current tool surface