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.
@@ -9820,9 +9820,9 @@ async function runDelegate(args, opts) {
9820
9820
  return await deferDelegate(args, opts.bridge);
9821
9821
  }
9822
9822
  return errorEnvelope10(
9823
- "DELEGATE_STORAGE_NOT_NATIVE",
9824
- "delegate requires a wired Storage adapter (for quota) or the Python bridge",
9825
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
9823
+ "DELEGATE_STORAGE_UNAVAILABLE",
9824
+ "delegate needs the local database (for quota tracking), which isn't available",
9825
+ "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."
9826
9826
  );
9827
9827
  }
9828
9828
  const storage = opts.storage;
@@ -9991,9 +9991,9 @@ async function runExplain(args, opts) {
9991
9991
  return await deferExplain(args, opts.bridge);
9992
9992
  }
9993
9993
  return errorEnvelope11(
9994
- "EXPLAIN_STORAGE_NOT_NATIVE",
9995
- "explain requires a wired Storage adapter or the Python bridge",
9996
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
9994
+ "EXPLAIN_STORAGE_UNAVAILABLE",
9995
+ "explain needs the local transcript/stats database, which isn't available",
9996
+ "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."
9997
9997
  );
9998
9998
  }
9999
9999
  const storage = opts.storage;
@@ -10756,9 +10756,9 @@ async function runRecall(args, opts) {
10756
10756
  return await deferRecall(args, opts.bridge);
10757
10757
  }
10758
10758
  return errorEnvelope12(
10759
- "RECALL_STORAGE_NOT_NATIVE",
10760
- "recall requires a wired Storage adapter or the Python bridge",
10761
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
10759
+ "RECALL_STORAGE_UNAVAILABLE",
10760
+ "recall needs the local database, which isn't available",
10761
+ "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."
10762
10762
  );
10763
10763
  }
10764
10764
  const filter = {};
@@ -10849,9 +10849,9 @@ async function runRecommendPanel(args, opts) {
10849
10849
  return await deferRecommendPanel(args, opts.bridge);
10850
10850
  }
10851
10851
  return errorEnvelope13(
10852
- "RECOMMEND_PANEL_STORAGE_NOT_NATIVE",
10853
- "recommend_panel requires a wired Storage adapter or the Python bridge",
10854
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
10852
+ "RECOMMEND_PANEL_STORAGE_UNAVAILABLE",
10853
+ "recommend_panel needs the local stats database, which isn't available",
10854
+ "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."
10855
10855
  );
10856
10856
  }
10857
10857
  const n = Math.max(1, clampInt2(args["n"], 1, 100, 2));
@@ -10959,9 +10959,9 @@ async function runScoreboard(args, opts) {
10959
10959
  return await deferScoreboard(args, opts.bridge);
10960
10960
  }
10961
10961
  return errorEnvelope14(
10962
- "SCOREBOARD_STORAGE_NOT_NATIVE",
10963
- "scoreboard requires a wired Storage adapter or the Python bridge",
10964
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
10962
+ "SCOREBOARD_STORAGE_UNAVAILABLE",
10963
+ "scoreboard needs the local stats database, which isn't available",
10964
+ "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."
10965
10965
  );
10966
10966
  }
10967
10967
  const topK = Math.max(1, clampInt3(args["top_k"], 1, 1e4, 20));
@@ -11136,9 +11136,9 @@ async function runSessionMemory(args, opts) {
11136
11136
  return await deferSessionMemory(args, opts.bridge);
11137
11137
  }
11138
11138
  return errorEnvelope15(
11139
- "SESSION_MEMORY_STORAGE_NOT_NATIVE",
11140
- "session_memory requires a wired Storage adapter or the Python bridge",
11141
- "Set CROSSCHECK_BRIDGE_PYTHON=1 to use the Python implementation, or wire a Storage adapter into the entrypoint."
11139
+ "SESSION_MEMORY_STORAGE_UNAVAILABLE",
11140
+ "session_memory needs the local database, which isn't available",
11141
+ "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."
11142
11142
  );
11143
11143
  }
11144
11144
  const storage = opts.storage;
@@ -11841,7 +11841,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
11841
11841
  var DEFAULT_PACKAGE = "crosscheck-cli";
11842
11842
  var FETCH_TIMEOUT_MS = 3e3;
11843
11843
  function engineVersion() {
11844
- return true ? "0.1.12" : "0.0.0-dev";
11844
+ return true ? "0.1.13" : "0.0.0-dev";
11845
11845
  }
11846
11846
  function defaultUpdateCachePath() {
11847
11847
  const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");
@@ -12461,7 +12461,7 @@ function createTool(o, toolName, cheapDefault) {
12461
12461
  function orchestrateTool(providers, allowlist, bridge, moderator, storage, pricing, breakers, transcriptsDir, repoRoot, nodeCache) {
12462
12462
  return {
12463
12463
  name: "orchestrate",
12464
- 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.",
12464
+ 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.",
12465
12465
  inputSchema: {
12466
12466
  type: "object",
12467
12467
  additionalProperties: true,
@@ -12495,7 +12495,7 @@ function orchestrateTool(providers, allowlist, bridge, moderator, storage, prici
12495
12495
  function solveTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
12496
12496
  return {
12497
12497
  name: "solve",
12498
- 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.",
12498
+ 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.",
12499
12499
  inputSchema: {
12500
12500
  type: "object",
12501
12501
  additionalProperties: true,
@@ -12693,7 +12693,7 @@ function explainTool(storage, bridge, transcriptsDir) {
12693
12693
  function scoreboardTool(storage, bridge, eventsPath) {
12694
12694
  return {
12695
12695
  name: "scoreboard",
12696
- 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.",
12696
+ 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).",
12697
12697
  inputSchema: {
12698
12698
  type: "object",
12699
12699
  additionalProperties: true,
@@ -12712,7 +12712,7 @@ function scoreboardTool(storage, bridge, eventsPath) {
12712
12712
  function sessionMemoryTool(storage, bridge) {
12713
12713
  return {
12714
12714
  name: "session_memory",
12715
- 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.",
12715
+ 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).",
12716
12716
  inputSchema: {
12717
12717
  type: "object",
12718
12718
  additionalProperties: true,
@@ -13373,7 +13373,7 @@ async function flush() {
13373
13373
 
13374
13374
  // src/server.ts
13375
13375
  var SERVER_NAME = "crosscheck-agent";
13376
- var SERVER_VERSION = true ? "0.1.12" : "0.0.0-dev";
13376
+ var SERVER_VERSION = true ? "0.1.13" : "0.0.0-dev";
13377
13377
  function extractRunSummaryText(out) {
13378
13378
  if (out === null || typeof out !== "object" || Array.isArray(out)) return void 0;
13379
13379
  const rs = out["run_summary"];
@@ -13759,7 +13759,7 @@ async function main() {
13759
13759
  }
13760
13760
  let storage;
13761
13761
  if (process.env["CROSSCHECK_DB_DISABLED"] !== "1") {
13762
- const dbPath = process.env["CROSSCHECK_DB_PATH"] ?? resolveRepoFile(".crosscheck/db.sqlite");
13762
+ const dbPath = process.env["CROSSCHECK_DB_PATH"] ?? resolveRepoFile(".crosscheck/db.sqlite") ?? import_node_path17.default.join(cfgDataDir, "db.sqlite");
13763
13763
  if (dbPath) {
13764
13764
  try {
13765
13765
  (0, import_node_fs18.mkdirSync)(import_node_path17.default.dirname(dbPath), { recursive: true });
@@ -13772,7 +13772,7 @@ async function main() {
13772
13772
  );
13773
13773
  } catch (e) {
13774
13774
  process.stderr.write(
13775
- `crosscheck-agent: storage init failed (${e.message}); storage tools will defer to bridge
13775
+ `crosscheck-agent: storage init failed (${e.message}); storage-backed tools (recall, scoreboard, recommend_panel, session_memory, explain) will be unavailable
13776
13776
  `
13777
13777
  );
13778
13778
  storage = void 0;