palizade 0.1.0 → 0.1.1

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/index.cjs CHANGED
@@ -10788,8 +10788,8 @@ var require_dist = __commonJS({
10788
10788
  });
10789
10789
 
10790
10790
  // src/index.ts
10791
- var import_promises7 = require("node:fs/promises");
10792
- var import_node_path7 = require("node:path");
10791
+ var import_promises8 = require("node:fs/promises");
10792
+ var import_node_path8 = require("node:path");
10793
10793
 
10794
10794
  // ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/esm.mjs
10795
10795
  var import_index = __toESM(require_commander(), 1);
@@ -25475,41 +25475,44 @@ async function loadConfig(path = "palizade.yaml", cwd = process.cwd()) {
25475
25475
  const absolute = (0, import_node_path.resolve)(cwd, path);
25476
25476
  const raw = await (0, import_promises.readFile)(absolute, "utf8");
25477
25477
  const parsed = palizadeConfigSchema.parse(import_yaml.default.parse(raw));
25478
- return resolveConfigPaths(parsed, cwd);
25478
+ return resolveConfigPaths(parsed, (0, import_node_path.dirname)(absolute));
25479
25479
  }
25480
- function resolveConfigPaths(config2, cwd = process.cwd()) {
25480
+ function resolveConfigPaths(config2, baseDir = process.cwd()) {
25481
25481
  return {
25482
25482
  ...config2,
25483
- stateDir: (0, import_node_path.resolve)(cwd, config2.stateDir),
25484
- policy: (0, import_node_path.resolve)(cwd, config2.policy),
25485
- lockfile: (0, import_node_path.resolve)(cwd, config2.lockfile),
25483
+ stateDir: resolvePath(baseDir, config2.stateDir),
25484
+ policy: resolvePath(baseDir, config2.policy),
25485
+ lockfile: resolvePath(baseDir, config2.lockfile),
25486
25486
  audit: {
25487
25487
  ...config2.audit,
25488
- jsonl: (0, import_node_path.resolve)(cwd, config2.audit.jsonl),
25489
- sqlite: (0, import_node_path.resolve)(cwd, config2.audit.sqlite)
25488
+ jsonl: resolvePath(baseDir, config2.audit.jsonl),
25489
+ sqlite: resolvePath(baseDir, config2.audit.sqlite)
25490
25490
  },
25491
25491
  detectors: {
25492
25492
  ...config2.detectors,
25493
- onnxModelPath: config2.detectors.onnxModelPath ? (0, import_node_path.resolve)(cwd, config2.detectors.onnxModelPath) : void 0,
25493
+ onnxModelPath: config2.detectors.onnxModelPath ? resolvePath(baseDir, config2.detectors.onnxModelPath) : void 0,
25494
25494
  promptGuard2: {
25495
25495
  ...config2.detectors.promptGuard2,
25496
- cacheDir: config2.detectors.promptGuard2.cacheDir ? (0, import_node_path.resolve)(cwd, config2.detectors.promptGuard2.cacheDir) : void 0
25496
+ cacheDir: config2.detectors.promptGuard2.cacheDir ? resolvePath(baseDir, config2.detectors.promptGuard2.cacheDir) : void 0
25497
25497
  }
25498
25498
  },
25499
25499
  taint: {
25500
25500
  ...config2.taint,
25501
- sqlite: (0, import_node_path.resolve)(cwd, config2.taint.sqlite),
25502
- keyPath: (0, import_node_path.resolve)(cwd, config2.taint.keyPath)
25501
+ sqlite: resolvePath(baseDir, config2.taint.sqlite),
25502
+ keyPath: resolvePath(baseDir, config2.taint.keyPath)
25503
25503
  },
25504
25504
  servers: Object.fromEntries(Object.entries(config2.servers).map(([name, server]) => [
25505
25505
  name,
25506
25506
  {
25507
25507
  ...server,
25508
- cwd: server.cwd ? (0, import_node_path.resolve)(cwd, server.cwd) : cwd
25508
+ cwd: server.cwd ? resolvePath(baseDir, server.cwd) : baseDir
25509
25509
  }
25510
25510
  ]))
25511
25511
  };
25512
25512
  }
25513
+ function resolvePath(baseDir, path) {
25514
+ return (0, import_node_path.isAbsolute)(path) ? path : (0, import_node_path.resolve)(baseDir, path);
25515
+ }
25513
25516
 
25514
25517
  // ../core/dist/classifier.js
25515
25518
  var SINK_RE = /\b(send|post|put|patch|delete|write|save|exec|shell|run|spawn|email|sms|publish|commit|push|upload|http|fetch|request|webhook)\b/iu;
@@ -26051,7 +26054,7 @@ var LocalhostApprovalProvider = class {
26051
26054
  this.options = options;
26052
26055
  }
26053
26056
  async requestApproval(request) {
26054
- return await new Promise((resolve4) => {
26057
+ return await new Promise((resolve5) => {
26055
26058
  let settled = false;
26056
26059
  let tokenUsed = false;
26057
26060
  const token = (0, import_node_crypto3.randomBytes)(32).toString("base64url");
@@ -26071,7 +26074,7 @@ var LocalhostApprovalProvider = class {
26071
26074
  }
26072
26075
  tokenUsed = true;
26073
26076
  const approved = url2.searchParams.get("approved") === "true";
26074
- settle(server, resolve4, {
26077
+ settle(server, resolve5, {
26075
26078
  approved,
26076
26079
  reason: approved ? "approved in localhost browser" : "denied in localhost browser",
26077
26080
  approver: "localhost"
@@ -26099,7 +26102,7 @@ var LocalhostApprovalProvider = class {
26099
26102
  if (settled) {
26100
26103
  return;
26101
26104
  }
26102
- settle(server, resolve4, {
26105
+ settle(server, resolve5, {
26103
26106
  approved: this.options.defaultDecision === "allow",
26104
26107
  reason: `localhost approval timed out; defaulted to ${this.options.defaultDecision}`,
26105
26108
  approver: "localhost"
@@ -26109,8 +26112,8 @@ var LocalhostApprovalProvider = class {
26109
26112
  });
26110
26113
  }
26111
26114
  };
26112
- function settle(server, resolve4, decision) {
26113
- server.close(() => resolve4(decision));
26115
+ function settle(server, resolve5, decision) {
26116
+ server.close(() => resolve5(decision));
26114
26117
  }
26115
26118
  function renderApprovalPage(request, token) {
26116
26119
  const rows = [
@@ -27463,7 +27466,7 @@ async function collectToolsFromStdioServer(server, timeoutMs = 5e3) {
27463
27466
  });
27464
27467
  const peer = new LineJsonRpcPeer(child.stdout, child.stdin);
27465
27468
  const id = (0, import_node_crypto4.randomUUID)();
27466
- return await new Promise((resolve4, reject) => {
27469
+ return await new Promise((resolve5, reject) => {
27467
27470
  const timeout = setTimeout(() => {
27468
27471
  child.kill();
27469
27472
  reject(new Error("Timed out waiting for tools/list"));
@@ -27472,7 +27475,7 @@ async function collectToolsFromStdioServer(server, timeoutMs = 5e3) {
27472
27475
  if ("id" in message && message.id === id && "result" in message) {
27473
27476
  clearTimeout(timeout);
27474
27477
  child.kill();
27475
- resolve4(message.result.tools ?? []);
27478
+ resolve5(message.result.tools ?? []);
27476
27479
  }
27477
27480
  if ("id" in message && message.id === id && "error" in message) {
27478
27481
  clearTimeout(timeout);
@@ -28216,6 +28219,166 @@ function createApprovalProvider(config2) {
28216
28219
  return new TerminalApprovalProvider({ defaultDecision: config2.approvals.default });
28217
28220
  }
28218
28221
 
28222
+ // src/install-config.ts
28223
+ var import_promises7 = require("node:fs/promises");
28224
+ var import_node_os = require("node:os");
28225
+ var import_node_path7 = require("node:path");
28226
+ async function installClientConfig(options) {
28227
+ const client = options.client ?? "claude-desktop";
28228
+ const cwd = options.cwd ?? process.cwd();
28229
+ const clientConfigPath = options.clientConfigPath ? (0, import_node_path7.resolve)(cwd, options.clientConfigPath) : resolveClientConfigPath(client);
28230
+ const palizadeConfigPath = resolvePalizadeConfigPath(options.configPath, cwd);
28231
+ const entryName = options.entryName ?? `palizade-${options.serverName}`;
28232
+ const entry = makeEntry({
28233
+ serverName: options.serverName,
28234
+ palizadeConfigPath,
28235
+ cliPath: options.cliPath,
28236
+ nodePath: options.nodePath
28237
+ });
28238
+ const warnings = await validatePalizadeConfig(palizadeConfigPath);
28239
+ const existed = await exists(clientConfigPath);
28240
+ const config2 = existed ? await readClientConfig(clientConfigPath) : { mcpServers: {} };
28241
+ const mcpServers = ensureMcpServers(config2, clientConfigPath);
28242
+ if (Object.prototype.hasOwnProperty.call(mcpServers, entryName) && !options.force) {
28243
+ throw new Error(
28244
+ `MCP server entry '${entryName}' already exists in ${clientConfigPath}. Use --force to overwrite it.
28245
+ Existing entry:
28246
+ ${JSON.stringify(mcpServers[entryName], null, 2)}`
28247
+ );
28248
+ }
28249
+ mcpServers[entryName] = entry;
28250
+ const configJson = `${JSON.stringify(config2, null, 2)}
28251
+ `;
28252
+ if (options.dryRun) {
28253
+ return {
28254
+ client,
28255
+ clientConfigPath,
28256
+ entryName,
28257
+ entry,
28258
+ existed,
28259
+ written: false,
28260
+ warnings,
28261
+ configJson
28262
+ };
28263
+ }
28264
+ await (0, import_promises7.mkdir)((0, import_node_path7.dirname)(clientConfigPath), { recursive: true });
28265
+ if (existed) {
28266
+ const backupPath = `${clientConfigPath}.bak`;
28267
+ await (0, import_promises7.copyFile)(clientConfigPath, backupPath);
28268
+ await (0, import_promises7.writeFile)(clientConfigPath, configJson, "utf8");
28269
+ return {
28270
+ client,
28271
+ clientConfigPath,
28272
+ entryName,
28273
+ entry,
28274
+ existed,
28275
+ written: true,
28276
+ warnings,
28277
+ configJson,
28278
+ backupPath
28279
+ };
28280
+ }
28281
+ await (0, import_promises7.writeFile)(clientConfigPath, configJson, "utf8");
28282
+ return {
28283
+ client,
28284
+ clientConfigPath,
28285
+ entryName,
28286
+ entry,
28287
+ existed,
28288
+ written: true,
28289
+ warnings,
28290
+ configJson
28291
+ };
28292
+ }
28293
+ function selectInstallConfigPath(commandOptions, rootOptions) {
28294
+ return cliOptionValue(commandOptions, "config") ?? cliOptionValue(rootOptions, "config");
28295
+ }
28296
+ function resolvePalizadeConfigPath(configPath, cwd = process.cwd()) {
28297
+ return (0, import_node_path7.resolve)(cwd, configPath ?? "./palizade.yaml");
28298
+ }
28299
+ function resolveClientConfigPath(client, platform = (0, import_node_os.platform)(), env = process.env, homeDir = (0, import_node_os.homedir)()) {
28300
+ if (client !== "claude-desktop") {
28301
+ throw new Error(`Unsupported client '${client}'. Supported clients: claude-desktop.`);
28302
+ }
28303
+ if (platform === "win32") {
28304
+ if (!env.APPDATA) {
28305
+ throw new Error("APPDATA is not set; use --client-config to provide the Claude Desktop config path.");
28306
+ }
28307
+ return import_node_path7.win32.join(env.APPDATA, "Claude", "claude_desktop_config.json");
28308
+ }
28309
+ if (platform === "darwin") {
28310
+ return import_node_path7.posix.join(homeDir, "Library", "Application Support", "Claude", "claude_desktop_config.json");
28311
+ }
28312
+ return import_node_path7.posix.join(homeDir, ".config", "Claude", "claude_desktop_config.json");
28313
+ }
28314
+ function cliOptionValue(options, name) {
28315
+ const source = options.getOptionValueSource(name);
28316
+ if (!source || source === "default") {
28317
+ return void 0;
28318
+ }
28319
+ const value = options.getOptionValue(name);
28320
+ return typeof value === "string" ? value : void 0;
28321
+ }
28322
+ function getRunningCliPath(argv1 = process.argv[1]) {
28323
+ if (argv1 && argv1.trim() !== "") {
28324
+ return (0, import_node_path7.resolve)(argv1);
28325
+ }
28326
+ throw new Error("Unable to determine the running Palizade CLI path.");
28327
+ }
28328
+ async function readClientConfig(path) {
28329
+ const raw = await (0, import_promises7.readFile)(path, "utf8");
28330
+ try {
28331
+ const parsed = JSON.parse(raw);
28332
+ if (!isRecord(parsed)) {
28333
+ throw new Error("top-level JSON value must be an object");
28334
+ }
28335
+ return parsed;
28336
+ } catch (error51) {
28337
+ const reason = error51 instanceof Error ? error51.message : String(error51);
28338
+ throw new Error(`Failed to parse Claude Desktop config at ${path}: ${reason}. Refusing to overwrite it.`);
28339
+ }
28340
+ }
28341
+ function ensureMcpServers(config2, path) {
28342
+ const existing = config2.mcpServers;
28343
+ if (existing === void 0) {
28344
+ const mcpServers = {};
28345
+ config2.mcpServers = mcpServers;
28346
+ return mcpServers;
28347
+ }
28348
+ if (!isRecord(existing)) {
28349
+ throw new Error(`Expected mcpServers in ${path} to be an object. Refusing to overwrite it.`);
28350
+ }
28351
+ return existing;
28352
+ }
28353
+ function makeEntry(options) {
28354
+ const cliPath = (0, import_node_path7.resolve)(options.cliPath ?? getRunningCliPath());
28355
+ const nodePath = options.nodePath ?? process.execPath;
28356
+ return {
28357
+ command: nodePath,
28358
+ args: [cliPath, "wrap", options.serverName, "-c", options.palizadeConfigPath]
28359
+ };
28360
+ }
28361
+ async function validatePalizadeConfig(path) {
28362
+ if (await exists(path)) {
28363
+ return [];
28364
+ }
28365
+ return [`Warning: Palizade config does not exist yet: ${path}`];
28366
+ }
28367
+ async function exists(path) {
28368
+ try {
28369
+ await (0, import_promises7.stat)(path);
28370
+ return true;
28371
+ } catch (error51) {
28372
+ if (error51.code === "ENOENT") {
28373
+ return false;
28374
+ }
28375
+ throw error51;
28376
+ }
28377
+ }
28378
+ function isRecord(value) {
28379
+ return typeof value === "object" && value !== null && !Array.isArray(value);
28380
+ }
28381
+
28219
28382
  // src/templates.ts
28220
28383
  var DEFAULT_CONFIG = `stateDir: .palizade
28221
28384
  policy: policies/default.yaml
@@ -28420,15 +28583,39 @@ program2.name("palizade").description("MCP-native prompt-injection firewall and
28420
28583
  program2.command("init").description("Create a starter palizade.yaml, default policy, and state directory").option("--force", "Overwrite existing files", false).action(async (options) => {
28421
28584
  await writeIfMissing("palizade.yaml", DEFAULT_CONFIG, options.force);
28422
28585
  await writeIfMissing("policies/default.yaml", DEFAULT_POLICY, options.force);
28423
- await (0, import_promises7.mkdir)(".palizade", { recursive: true });
28586
+ await (0, import_promises8.mkdir)(".palizade", { recursive: true });
28424
28587
  console.log("Initialized Palizade config, default policy, and .palizade state directory.");
28425
28588
  });
28589
+ program2.command("install-config").description("Install a Palizade wrapper entry into an MCP client config").argument("<serverName>", "Server name from palizade.yaml").option("--client <name>", "Target client", "claude-desktop").option("--config <path>", "Path to this project's palizade.yaml").option("--client-config <path>", "Override the client config file location").option("--name <entryName>", "Name for the mcpServers entry").option("--dry-run", "Print the resulting config to stdout without writing", false).option("--force", "Overwrite an existing mcpServers entry", false).action(async (serverName, options, command) => {
28590
+ const result = await installClientConfig({
28591
+ serverName,
28592
+ client: options.client,
28593
+ configPath: selectInstallConfigPath(command, program2),
28594
+ clientConfigPath: options.clientConfig,
28595
+ entryName: options.name,
28596
+ dryRun: options.dryRun,
28597
+ force: options.force,
28598
+ cliPath: getRunningCliPath()
28599
+ });
28600
+ for (const warning of result.warnings) {
28601
+ console.warn(warning);
28602
+ }
28603
+ if (options.dryRun) {
28604
+ console.log(result.configJson);
28605
+ return;
28606
+ }
28607
+ console.log(`Updated ${result.clientConfigPath}`);
28608
+ console.log(`Entry: ${result.entryName}`);
28609
+ console.log(`Command: ${result.entry.command} ${result.entry.args.join(" ")}`);
28610
+ console.log(result.backupPath ? `Backup: ${result.backupPath}` : "Backup: none (created new config file)");
28611
+ console.log("Fully quit and reopen Claude Desktop for the change to take effect.");
28612
+ });
28426
28613
  var detectors = program2.command("detectors").description("Manage optional detector models");
28427
28614
  detectors.command("install").description("Download an optional detector model").argument("<name>", "Detector name, currently: promptguard2").option("--model <model>", "Hugging Face model id", PROMPT_GUARD_2_ONNX_MODEL).option("--cache-dir <dir>", "Model cache directory", ".palizade/models").action(async (name, options) => {
28428
28615
  if (name !== "promptguard2") {
28429
28616
  throw new Error(`Unknown detector '${name}'.`);
28430
28617
  }
28431
- await (0, import_promises7.mkdir)(options.cacheDir, { recursive: true });
28618
+ await (0, import_promises8.mkdir)(options.cacheDir, { recursive: true });
28432
28619
  console.log(`Downloading ${options.model} to ${options.cacheDir}...`);
28433
28620
  await downloadPromptGuard2({ model: options.model, cacheDir: options.cacheDir });
28434
28621
  console.log("Prompt Guard 2 is installed. Enable detectors.promptGuard2.enabled in palizade.yaml.");
@@ -28572,7 +28759,7 @@ taint.command("prune").description("Prune expired taint records").action(async (
28572
28759
  program2.command("doctor").description("Validate local Palizade configuration").action(async () => {
28573
28760
  const configPath = program2.opts().config;
28574
28761
  const config2 = await loadConfig(configPath);
28575
- console.log(`Config: ${(0, import_node_path7.resolve)(configPath)}`);
28762
+ console.log(`Config: ${(0, import_node_path8.resolve)(configPath)}`);
28576
28763
  console.log(`Policy: ${config2.policy}`);
28577
28764
  console.log(`Lockfile: ${config2.lockfile}`);
28578
28765
  console.log(`Audit JSONL: ${config2.audit.jsonl}`);
@@ -28585,17 +28772,17 @@ program2.parseAsync().catch((error51) => {
28585
28772
  process.exitCode = 1;
28586
28773
  });
28587
28774
  async function writeIfMissing(path, content, force) {
28588
- if (!force && await exists(path)) {
28775
+ if (!force && await exists2(path)) {
28589
28776
  console.log(`Skipped existing ${path}`);
28590
28777
  return;
28591
28778
  }
28592
- await (0, import_promises7.mkdir)((0, import_node_path7.dirname)(path), { recursive: true });
28593
- await (0, import_promises7.writeFile)(path, content, "utf8");
28779
+ await (0, import_promises8.mkdir)((0, import_node_path8.dirname)(path), { recursive: true });
28780
+ await (0, import_promises8.writeFile)(path, content, "utf8");
28594
28781
  console.log(`Wrote ${path}`);
28595
28782
  }
28596
- async function exists(path) {
28783
+ async function exists2(path) {
28597
28784
  try {
28598
- await (0, import_promises7.stat)(path);
28785
+ await (0, import_promises8.stat)(path);
28599
28786
  return true;
28600
28787
  } catch (error51) {
28601
28788
  if (error51.code === "ENOENT") {
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import { collectToolsFromStdioServer, createRuntime, loadConfig, LockfileStore,
6
6
  import { JsonlAuditSink, parseDuration, verifyAuditChain } from "@palizade/audit";
7
7
  import { HeuristicDetector, PromptGuard2Detector, downloadPromptGuard2, PROMPT_GUARD_2_ONNX_MODEL } from "@palizade/detectors";
8
8
  import { SqliteTaintStore } from "@palizade/taint";
9
+ import { getRunningCliPath, installClientConfig, selectInstallConfigPath } from "./install-config.js";
9
10
  import { DEFAULT_CONFIG, DEFAULT_POLICY } from "./templates.js";
10
11
  const program = new Command();
11
12
  program
@@ -17,11 +18,45 @@ program.command("init")
17
18
  .description("Create a starter palizade.yaml, default policy, and state directory")
18
19
  .option("--force", "Overwrite existing files", false)
19
20
  .action(async (options) => {
21
+ // Keep generated paths relative; loadConfig resolves them against palizade.yaml's directory.
20
22
  await writeIfMissing("palizade.yaml", DEFAULT_CONFIG, options.force);
21
23
  await writeIfMissing("policies/default.yaml", DEFAULT_POLICY, options.force);
22
24
  await mkdir(".palizade", { recursive: true });
23
25
  console.log("Initialized Palizade config, default policy, and .palizade state directory.");
24
26
  });
27
+ program.command("install-config")
28
+ .description("Install a Palizade wrapper entry into an MCP client config")
29
+ .argument("<serverName>", "Server name from palizade.yaml")
30
+ .option("--client <name>", "Target client", "claude-desktop")
31
+ .option("--config <path>", "Path to this project's palizade.yaml")
32
+ .option("--client-config <path>", "Override the client config file location")
33
+ .option("--name <entryName>", "Name for the mcpServers entry")
34
+ .option("--dry-run", "Print the resulting config to stdout without writing", false)
35
+ .option("--force", "Overwrite an existing mcpServers entry", false)
36
+ .action(async (serverName, options, command) => {
37
+ const result = await installClientConfig({
38
+ serverName,
39
+ client: options.client,
40
+ configPath: selectInstallConfigPath(command, program),
41
+ clientConfigPath: options.clientConfig,
42
+ entryName: options.name,
43
+ dryRun: options.dryRun,
44
+ force: options.force,
45
+ cliPath: getRunningCliPath()
46
+ });
47
+ for (const warning of result.warnings) {
48
+ console.warn(warning);
49
+ }
50
+ if (options.dryRun) {
51
+ console.log(result.configJson);
52
+ return;
53
+ }
54
+ console.log(`Updated ${result.clientConfigPath}`);
55
+ console.log(`Entry: ${result.entryName}`);
56
+ console.log(`Command: ${result.entry.command} ${result.entry.args.join(" ")}`);
57
+ console.log(result.backupPath ? `Backup: ${result.backupPath}` : "Backup: none (created new config file)");
58
+ console.log("Fully quit and reopen Claude Desktop for the change to take effect.");
59
+ });
25
60
  const detectors = program.command("detectors")
26
61
  .description("Manage optional detector models");
27
62
  detectors.command("install")
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface OptionValueReader {
2
+ getOptionValue(name: string): unknown;
3
+ getOptionValueSource(name: string): string | undefined;
4
+ }
5
+ export interface InstallConfigOptions {
6
+ serverName: string;
7
+ client?: string | undefined;
8
+ configPath?: string | undefined;
9
+ clientConfigPath?: string | undefined;
10
+ entryName?: string | undefined;
11
+ dryRun?: boolean | undefined;
12
+ force?: boolean | undefined;
13
+ cwd?: string | undefined;
14
+ cliPath?: string | undefined;
15
+ nodePath?: string | undefined;
16
+ }
17
+ export interface InstallConfigResult {
18
+ client: string;
19
+ clientConfigPath: string;
20
+ entryName: string;
21
+ entry: ClientMcpServerEntry;
22
+ existed: boolean;
23
+ written: boolean;
24
+ warnings: string[];
25
+ configJson: string;
26
+ backupPath?: string;
27
+ }
28
+ export interface ClientMcpServerEntry {
29
+ command: string;
30
+ args: string[];
31
+ }
32
+ export declare function installClientConfig(options: InstallConfigOptions): Promise<InstallConfigResult>;
33
+ export declare function selectInstallConfigPath(commandOptions: OptionValueReader, rootOptions: OptionValueReader): string | undefined;
34
+ export declare function resolvePalizadeConfigPath(configPath: string | undefined, cwd?: string): string;
35
+ export declare function resolveClientConfigPath(client: string, platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv, homeDir?: string): string;
36
+ export declare function getRunningCliPath(argv1?: string | undefined): string;
37
+ //# sourceMappingURL=install-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-config.d.ts","sourceRoot":"","sources":["../src/install-config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsErG;AAED,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAE7H;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAgB,GAAG,MAAM,CAErG;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,kBAAe,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,OAAO,SAAY,GAAG,MAAM,CAclJ;AAWD,wBAAgB,iBAAiB,CAAC,KAAK,qBAAkB,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,159 @@
1
+ import { copyFile, mkdir, readFile, stat, writeFile } from "node:fs/promises";
2
+ import { homedir, platform as osPlatform } from "node:os";
3
+ import { dirname, posix, resolve, win32 } from "node:path";
4
+ export async function installClientConfig(options) {
5
+ const client = options.client ?? "claude-desktop";
6
+ const cwd = options.cwd ?? process.cwd();
7
+ const clientConfigPath = options.clientConfigPath
8
+ ? resolve(cwd, options.clientConfigPath)
9
+ : resolveClientConfigPath(client);
10
+ const palizadeConfigPath = resolvePalizadeConfigPath(options.configPath, cwd);
11
+ const entryName = options.entryName ?? `palizade-${options.serverName}`;
12
+ const entry = makeEntry({
13
+ serverName: options.serverName,
14
+ palizadeConfigPath,
15
+ cliPath: options.cliPath,
16
+ nodePath: options.nodePath
17
+ });
18
+ const warnings = await validatePalizadeConfig(palizadeConfigPath);
19
+ const existed = await exists(clientConfigPath);
20
+ const config = existed ? await readClientConfig(clientConfigPath) : { mcpServers: {} };
21
+ const mcpServers = ensureMcpServers(config, clientConfigPath);
22
+ if (Object.prototype.hasOwnProperty.call(mcpServers, entryName) && !options.force) {
23
+ throw new Error(`MCP server entry '${entryName}' already exists in ${clientConfigPath}. ` +
24
+ `Use --force to overwrite it.\nExisting entry:\n${JSON.stringify(mcpServers[entryName], null, 2)}`);
25
+ }
26
+ mcpServers[entryName] = entry;
27
+ const configJson = `${JSON.stringify(config, null, 2)}\n`;
28
+ if (options.dryRun) {
29
+ return {
30
+ client,
31
+ clientConfigPath,
32
+ entryName,
33
+ entry,
34
+ existed,
35
+ written: false,
36
+ warnings,
37
+ configJson
38
+ };
39
+ }
40
+ await mkdir(dirname(clientConfigPath), { recursive: true });
41
+ if (existed) {
42
+ const backupPath = `${clientConfigPath}.bak`;
43
+ await copyFile(clientConfigPath, backupPath);
44
+ await writeFile(clientConfigPath, configJson, "utf8");
45
+ return {
46
+ client,
47
+ clientConfigPath,
48
+ entryName,
49
+ entry,
50
+ existed,
51
+ written: true,
52
+ warnings,
53
+ configJson,
54
+ backupPath
55
+ };
56
+ }
57
+ await writeFile(clientConfigPath, configJson, "utf8");
58
+ return {
59
+ client,
60
+ clientConfigPath,
61
+ entryName,
62
+ entry,
63
+ existed,
64
+ written: true,
65
+ warnings,
66
+ configJson
67
+ };
68
+ }
69
+ export function selectInstallConfigPath(commandOptions, rootOptions) {
70
+ return cliOptionValue(commandOptions, "config") ?? cliOptionValue(rootOptions, "config");
71
+ }
72
+ export function resolvePalizadeConfigPath(configPath, cwd = process.cwd()) {
73
+ return resolve(cwd, configPath ?? "./palizade.yaml");
74
+ }
75
+ export function resolveClientConfigPath(client, platform = osPlatform(), env = process.env, homeDir = homedir()) {
76
+ if (client !== "claude-desktop") {
77
+ throw new Error(`Unsupported client '${client}'. Supported clients: claude-desktop.`);
78
+ }
79
+ if (platform === "win32") {
80
+ if (!env.APPDATA) {
81
+ throw new Error("APPDATA is not set; use --client-config to provide the Claude Desktop config path.");
82
+ }
83
+ return win32.join(env.APPDATA, "Claude", "claude_desktop_config.json");
84
+ }
85
+ if (platform === "darwin") {
86
+ return posix.join(homeDir, "Library", "Application Support", "Claude", "claude_desktop_config.json");
87
+ }
88
+ return posix.join(homeDir, ".config", "Claude", "claude_desktop_config.json");
89
+ }
90
+ function cliOptionValue(options, name) {
91
+ const source = options.getOptionValueSource(name);
92
+ if (!source || source === "default") {
93
+ return undefined;
94
+ }
95
+ const value = options.getOptionValue(name);
96
+ return typeof value === "string" ? value : undefined;
97
+ }
98
+ export function getRunningCliPath(argv1 = process.argv[1]) {
99
+ if (argv1 && argv1.trim() !== "") {
100
+ return resolve(argv1);
101
+ }
102
+ throw new Error("Unable to determine the running Palizade CLI path.");
103
+ }
104
+ async function readClientConfig(path) {
105
+ const raw = await readFile(path, "utf8");
106
+ try {
107
+ const parsed = JSON.parse(raw);
108
+ if (!isRecord(parsed)) {
109
+ throw new Error("top-level JSON value must be an object");
110
+ }
111
+ return parsed;
112
+ }
113
+ catch (error) {
114
+ const reason = error instanceof Error ? error.message : String(error);
115
+ throw new Error(`Failed to parse Claude Desktop config at ${path}: ${reason}. Refusing to overwrite it.`);
116
+ }
117
+ }
118
+ function ensureMcpServers(config, path) {
119
+ const existing = config.mcpServers;
120
+ if (existing === undefined) {
121
+ const mcpServers = {};
122
+ config.mcpServers = mcpServers;
123
+ return mcpServers;
124
+ }
125
+ if (!isRecord(existing)) {
126
+ throw new Error(`Expected mcpServers in ${path} to be an object. Refusing to overwrite it.`);
127
+ }
128
+ return existing;
129
+ }
130
+ function makeEntry(options) {
131
+ const cliPath = resolve(options.cliPath ?? getRunningCliPath());
132
+ const nodePath = options.nodePath ?? process.execPath;
133
+ return {
134
+ command: nodePath,
135
+ args: [cliPath, "wrap", options.serverName, "-c", options.palizadeConfigPath]
136
+ };
137
+ }
138
+ async function validatePalizadeConfig(path) {
139
+ if (await exists(path)) {
140
+ return [];
141
+ }
142
+ return [`Warning: Palizade config does not exist yet: ${path}`];
143
+ }
144
+ async function exists(path) {
145
+ try {
146
+ await stat(path);
147
+ return true;
148
+ }
149
+ catch (error) {
150
+ if (error.code === "ENOENT") {
151
+ return false;
152
+ }
153
+ throw error;
154
+ }
155
+ }
156
+ function isRecord(value) {
157
+ return typeof value === "object" && value !== null && !Array.isArray(value);
158
+ }
159
+ //# sourceMappingURL=install-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-config.js","sourceRoot":"","sources":["../src/install-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "palizade",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "MCP-native prompt-injection firewall and security proxy.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",