@datasynx/agentic-ai-cartography 2.7.0 → 2.8.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.
package/dist/cli.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  runDrift,
12
12
  runLocalDiscovery,
13
13
  startMcp
14
- } from "./chunk-HLWNO3RF.js";
14
+ } from "./chunk-5D5ZZEZM.js";
15
15
  import {
16
16
  entitiesToYaml,
17
17
  startApi,
@@ -4986,12 +4986,20 @@ ${infraSummary.substring(0, 12e3)}`;
4986
4986
  db.close();
4987
4987
  }
4988
4988
  });
4989
- program.command("mcp").description("Run the Model Context Protocol server (stdio by default) \u2014 the primary interface for AI agents").option("--http", "Use Streamable HTTP transport instead of stdio", false).option("--port <n>", "HTTP port", "3737").option("--host <h>", "HTTP host", "127.0.0.1").option("--allowed-hosts <list>", "Comma-separated Host allowlist (required for non-loopback --host)").option("--token <secret>", "Bearer token required on HTTP requests (or CARTOGRAPHY_HTTP_TOKEN); mandatory for non-loopback --host").option("--db <path>", "DB path").option("--session <id>", 'Session to serve (id or "latest")', "latest").option("--tenant <id>", "Tenant/organization whose topology to serve (alias: --org; default: local)").option("--org <id>", "Alias for --tenant").option("--no-semantic", "Disable semantic (vector) search").option("--plugins <list>", "Comma-separated scanner plugin package names to load (opt-in; or CARTOGRAPHY_PLUGINS)").option("--server-mode", "Run as a central collector: enable the authenticated POST /ingest write route + org-wide summary (implies --http; opt-in)", false).option("--anon-mode <mode>", "On ingest, reject|strip un-anonymized identifying fragments (server-mode)", "reject").option("--auth-required", "Reject unauthenticated requests even on loopback (RBAC required mode)", false).action(async (opts) => {
4989
+ program.command("mcp").description("Run the Model Context Protocol server (stdio by default) \u2014 the primary interface for AI agents").option("--http", "Use Streamable HTTP transport instead of stdio", false).option("--port <n>", "HTTP port", "3737").option("--host <h>", "HTTP host", "127.0.0.1").option("--allowed-hosts <list>", "Comma-separated Host allowlist (required for non-loopback --host)").option("--token <secret>", "Bearer token required on HTTP requests (or CARTOGRAPHY_HTTP_TOKEN); mandatory for non-loopback --host").option("--db <path>", "DB path").option("--session <id>", 'Session to serve (id or "latest")', "latest").option("--tenant <id>", "Tenant/organization whose topology to serve (alias: --org; default: local)").option("--org <id>", "Alias for --tenant").option("--no-semantic", "Disable semantic (vector) search").option("--plugins <list>", "Comma-separated scanner plugin package names to load (opt-in; or CARTOGRAPHY_PLUGINS)").option("--server-mode", "Run as a central collector: enable the authenticated POST /ingest write route + org-wide summary (implies --http; opt-in)", false).option("--anon-mode <mode>", "On ingest, reject|strip un-anonymized identifying fragments (server-mode)", "reject").option("--auth-required", "Reject unauthenticated requests even on loopback (RBAC required mode)", false).option("--store-backend <kind>", "Central store backend: sqlite (default) | graph (Neo4j/Memgraph, opt-in, 4.3)").option("--graph-url <url>", "Bolt URL for --store-backend graph (or CARTOGRAPHY_GRAPH_URL)").option("--graph-user <user>", "Graph DB user (or CARTOGRAPHY_GRAPH_USER)").option("--graph-password <pw>", "Graph DB password (or CARTOGRAPHY_GRAPH_PASSWORD)").action(async (opts) => {
4990
4990
  try {
4991
4991
  const anonMode = opts.anonMode;
4992
4992
  if (anonMode !== "reject" && anonMode !== "strip") {
4993
4993
  process.stderr.write(`
4994
4994
  error: --anon-mode must be 'reject' or 'strip' (got '${anonMode}')
4995
+ `);
4996
+ process.exitCode = 1;
4997
+ return;
4998
+ }
4999
+ const storeBackend = opts.storeBackend;
5000
+ if (storeBackend !== void 0 && storeBackend !== "sqlite" && storeBackend !== "graph") {
5001
+ process.stderr.write(`
5002
+ error: --store-backend must be 'sqlite' or 'graph' (got '${storeBackend}')
4995
5003
  `);
4996
5004
  process.exitCode = 1;
4997
5005
  return;
@@ -5009,7 +5017,11 @@ error: --anon-mode must be 'reject' or 'strip' (got '${anonMode}')
5009
5017
  plugins: opts.plugins ? String(opts.plugins).split(",").map((p) => p.trim()).filter(Boolean) : void 0,
5010
5018
  serverMode: opts.serverMode === true,
5011
5019
  anonMode,
5012
- authRequired: opts.authRequired === true
5020
+ authRequired: opts.authRequired === true,
5021
+ ...storeBackend ? { storeBackend } : {},
5022
+ ...opts.graphUrl ? { graphUrl: opts.graphUrl } : {},
5023
+ ...opts.graphUser ? { graphUser: opts.graphUser } : {},
5024
+ ...opts.graphPassword ? { graphPassword: opts.graphPassword } : {}
5013
5025
  });
5014
5026
  } catch (err) {
5015
5027
  process.stderr.write(`