crosscheck-mcp 0.1.12 → 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.
@@ -9816,9 +9816,9 @@ async function runDelegate(args, opts) {
9816
9816
  return await deferDelegate(args, opts.bridge);
9817
9817
  }
9818
9818
  return errorEnvelope10(
9819
- "DELEGATE_STORAGE_NOT_NATIVE",
9820
- "delegate requires a wired Storage adapter (for quota) or the Python bridge",
9821
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
9819
+ "DELEGATE_STORAGE_UNAVAILABLE",
9820
+ "delegate needs the local database (for quota tracking), which isn't available",
9821
+ "The engine stores data at <data dir>/db.sqlite (default ~/.crosscheck/db.sqlite). This usually means the native better-sqlite3 module failed to load \u2014 run `npx -y crosscheck-cli@latest doctor`, or set CROSSCHECK_DB_PATH to a writable location, then reconnect."
9822
9822
  );
9823
9823
  }
9824
9824
  const storage = opts.storage;
@@ -9987,9 +9987,9 @@ async function runExplain(args, opts) {
9987
9987
  return await deferExplain(args, opts.bridge);
9988
9988
  }
9989
9989
  return errorEnvelope11(
9990
- "EXPLAIN_STORAGE_NOT_NATIVE",
9991
- "explain requires a wired Storage adapter or the Python bridge",
9992
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
9990
+ "EXPLAIN_STORAGE_UNAVAILABLE",
9991
+ "explain needs the local transcript/stats database, which isn't available",
9992
+ "The engine stores data at <data dir>/db.sqlite (default ~/.crosscheck/db.sqlite). This usually means the native better-sqlite3 module failed to load \u2014 run `npx -y crosscheck-cli@latest doctor`, or set CROSSCHECK_DB_PATH to a writable location, then reconnect."
9993
9993
  );
9994
9994
  }
9995
9995
  const storage = opts.storage;
@@ -10752,9 +10752,9 @@ async function runRecall(args, opts) {
10752
10752
  return await deferRecall(args, opts.bridge);
10753
10753
  }
10754
10754
  return errorEnvelope12(
10755
- "RECALL_STORAGE_NOT_NATIVE",
10756
- "recall requires a wired Storage adapter or the Python bridge",
10757
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
10755
+ "RECALL_STORAGE_UNAVAILABLE",
10756
+ "recall needs the local database, which isn't available",
10757
+ "The engine stores data at <data dir>/db.sqlite (default ~/.crosscheck/db.sqlite). This usually means the native better-sqlite3 module failed to load \u2014 run `npx -y crosscheck-cli@latest doctor`, or set CROSSCHECK_DB_PATH to a writable location, then reconnect."
10758
10758
  );
10759
10759
  }
10760
10760
  const filter = {};
@@ -10845,9 +10845,9 @@ async function runRecommendPanel(args, opts) {
10845
10845
  return await deferRecommendPanel(args, opts.bridge);
10846
10846
  }
10847
10847
  return errorEnvelope13(
10848
- "RECOMMEND_PANEL_STORAGE_NOT_NATIVE",
10849
- "recommend_panel requires a wired Storage adapter or the Python bridge",
10850
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
10848
+ "RECOMMEND_PANEL_STORAGE_UNAVAILABLE",
10849
+ "recommend_panel needs the local stats database, which isn't available",
10850
+ "The engine stores stats at <data dir>/db.sqlite (default ~/.crosscheck/db.sqlite). This usually means the native better-sqlite3 module failed to load \u2014 run `npx -y crosscheck-cli@latest doctor`, or set CROSSCHECK_DB_PATH to a writable location, then reconnect."
10851
10851
  );
10852
10852
  }
10853
10853
  const n = Math.max(1, clampInt2(args["n"], 1, 100, 2));
@@ -10955,9 +10955,9 @@ async function runScoreboard(args, opts) {
10955
10955
  return await deferScoreboard(args, opts.bridge);
10956
10956
  }
10957
10957
  return errorEnvelope14(
10958
- "SCOREBOARD_STORAGE_NOT_NATIVE",
10959
- "scoreboard requires a wired Storage adapter or the Python bridge",
10960
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
10958
+ "SCOREBOARD_STORAGE_UNAVAILABLE",
10959
+ "scoreboard needs the local stats database, which isn't available",
10960
+ "The engine stores stats at <data dir>/db.sqlite (default ~/.crosscheck/db.sqlite). This usually means the native better-sqlite3 module failed to load \u2014 run `npx -y crosscheck-cli@latest doctor`, or set CROSSCHECK_DB_PATH to a writable location, then reconnect."
10961
10961
  );
10962
10962
  }
10963
10963
  const topK = Math.max(1, clampInt3(args["top_k"], 1, 1e4, 20));
@@ -11132,9 +11132,9 @@ async function runSessionMemory(args, opts) {
11132
11132
  return await deferSessionMemory(args, opts.bridge);
11133
11133
  }
11134
11134
  return errorEnvelope15(
11135
- "SESSION_MEMORY_STORAGE_NOT_NATIVE",
11136
- "session_memory requires a wired Storage adapter or the Python bridge",
11137
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
11135
+ "SESSION_MEMORY_STORAGE_UNAVAILABLE",
11136
+ "session_memory needs the local database, which isn't available",
11137
+ "The engine stores data at <data dir>/db.sqlite (default ~/.crosscheck/db.sqlite). This usually means the native better-sqlite3 module failed to load \u2014 run `npx -y crosscheck-cli@latest doctor`, or set CROSSCHECK_DB_PATH to a writable location, then reconnect."
11138
11138
  );
11139
11139
  }
11140
11140
  const storage = opts.storage;
@@ -11837,7 +11837,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
11837
11837
  var DEFAULT_PACKAGE = "crosscheck-cli";
11838
11838
  var FETCH_TIMEOUT_MS = 3e3;
11839
11839
  function engineVersion() {
11840
- return true ? "0.1.12" : "0.0.0-dev";
11840
+ return true ? "0.1.13" : "0.0.0-dev";
11841
11841
  }
11842
11842
  function defaultUpdateCachePath() {
11843
11843
  const base = process.env["CROSSCHECK_DATA_DIR"] || path10.join(os.homedir() || os.tmpdir(), ".crosscheck");
@@ -12457,7 +12457,7 @@ function createTool(o, toolName, cheapDefault) {
12457
12457
  function orchestrateTool(providers, allowlist, bridge, moderator, storage, pricing, breakers, transcriptsDir, repoRoot, nodeCache) {
12458
12458
  return {
12459
12459
  name: "orchestrate",
12460
- description: "Plan and execute a DAG of LLM subtasks. Either supply a `goal` (planner will draft the DAG) OR a hand-authored `dag`. Workers run topologically; recombine produces a single `final`. v1 native covers the plain sequential flow + cheap_mode (per-node tier picking); reactive (mid-flight DAG updates) still requires the Python bridge.",
12460
+ description: "Plan and execute a DAG of LLM subtasks. Either supply a `goal` (planner will draft the DAG) OR a hand-authored `dag`. Workers run topologically; recombine produces a single `final`. Covers the sequential flow, cheap_mode (per-node tier picking), and reactive (mid-flight DAG updates) \u2014 all native.",
12461
12461
  inputSchema: {
12462
12462
  type: "object",
12463
12463
  additionalProperties: true,
@@ -12491,7 +12491,7 @@ function orchestrateTool(providers, allowlist, bridge, moderator, storage, prici
12491
12491
  function solveTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
12492
12492
  return {
12493
12493
  name: "solve",
12494
- description: "Iterative LLM solver. Generates a proposal, verifies it against the supplied verifier, and retries with feedback up to max_attempts. Native verifier kinds: regex_response. shell-kind verifiers require the Python bridge for sandboxing.",
12494
+ description: "Iterative LLM solver. Generates a proposal, verifies it against the supplied verifier, and retries with feedback up to max_attempts. Verifier kinds: regex_response and shell (run in a native sandbox with wall-clock + optional memory/CPU limits). With target_path, returns a unified-diff patch.",
12495
12495
  inputSchema: {
12496
12496
  type: "object",
12497
12497
  additionalProperties: true,
@@ -12689,7 +12689,7 @@ function explainTool(storage, bridge, transcriptsDir) {
12689
12689
  function scoreboardTool(storage, bridge, eventsPath) {
12690
12690
  return {
12691
12691
  name: "scoreboard",
12692
- description: "Aggregate provider ballot stats + delegation counts + table totals. Supports top_k (rank limit) and recent_limit (tail of events.jsonl when configured). Requires a wired Storage adapter; falls back to the Python bridge when not available.",
12692
+ description: "Aggregate provider ballot stats + delegation counts + table totals. Supports top_k (rank limit) and recent_limit (tail of events.jsonl when configured). Reads the engine's local stats database (auto-created at <data dir>/db.sqlite).",
12693
12693
  inputSchema: {
12694
12694
  type: "object",
12695
12695
  additionalProperties: true,
@@ -12708,7 +12708,7 @@ function scoreboardTool(storage, bridge, eventsPath) {
12708
12708
  function sessionMemoryTool(storage, bridge) {
12709
12709
  return {
12710
12710
  name: "session_memory",
12711
- description: "CRUD over the per-session working memory ledger. Actions: list, add, mark_stale, clear. Requires a wired Storage adapter; falls back to the Python bridge when not available.",
12711
+ description: "CRUD over the per-session working memory ledger. Actions: list, add, mark_stale, clear. Uses the engine's local database (auto-created at <data dir>/db.sqlite).",
12712
12712
  inputSchema: {
12713
12713
  type: "object",
12714
12714
  additionalProperties: true,
@@ -13369,7 +13369,7 @@ async function flush() {
13369
13369
 
13370
13370
  // src/server.ts
13371
13371
  var SERVER_NAME = "crosscheck-agent";
13372
- var SERVER_VERSION = true ? "0.1.12" : "0.0.0-dev";
13372
+ var SERVER_VERSION = true ? "0.1.13" : "0.0.0-dev";
13373
13373
  function extractRunSummaryText(out) {
13374
13374
  if (out === null || typeof out !== "object" || Array.isArray(out)) return void 0;
13375
13375
  const rs = out["run_summary"];
@@ -13755,7 +13755,7 @@ async function main() {
13755
13755
  }
13756
13756
  let storage;
13757
13757
  if (process.env["CROSSCHECK_DB_DISABLED"] !== "1") {
13758
- const dbPath = process.env["CROSSCHECK_DB_PATH"] ?? resolveRepoFile(".crosscheck/db.sqlite");
13758
+ const dbPath = process.env["CROSSCHECK_DB_PATH"] ?? resolveRepoFile(".crosscheck/db.sqlite") ?? path14.join(cfgDataDir, "db.sqlite");
13759
13759
  if (dbPath) {
13760
13760
  try {
13761
13761
  mkdirSync9(path14.dirname(dbPath), { recursive: true });
@@ -13768,7 +13768,7 @@ async function main() {
13768
13768
  );
13769
13769
  } catch (e) {
13770
13770
  process.stderr.write(
13771
- `crosscheck-agent: storage init failed (${e.message}); storage tools will defer to bridge
13771
+ `crosscheck-agent: storage init failed (${e.message}); storage-backed tools (recall, scoreboard, recommend_panel, session_memory, explain) will be unavailable
13772
13772
  `
13773
13773
  );
13774
13774
  storage = void 0;