palizade 0.1.0 → 0.1.2
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 +216 -29
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/install-config.d.ts +37 -0
- package/dist/install-config.d.ts.map +1 -0
- package/dist/install-config.js +159 -0
- package/dist/install-config.js.map +1 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -10788,8 +10788,8 @@ var require_dist = __commonJS({
|
|
|
10788
10788
|
});
|
|
10789
10789
|
|
|
10790
10790
|
// src/index.ts
|
|
10791
|
-
var
|
|
10792
|
-
var
|
|
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,
|
|
25478
|
+
return resolveConfigPaths(parsed, (0, import_node_path.dirname)(absolute));
|
|
25479
25479
|
}
|
|
25480
|
-
function resolveConfigPaths(config2,
|
|
25480
|
+
function resolveConfigPaths(config2, baseDir = process.cwd()) {
|
|
25481
25481
|
return {
|
|
25482
25482
|
...config2,
|
|
25483
|
-
stateDir: (
|
|
25484
|
-
policy: (
|
|
25485
|
-
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: (
|
|
25489
|
-
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 ? (
|
|
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 ? (
|
|
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: (
|
|
25502
|
-
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 ? (
|
|
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((
|
|
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,
|
|
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,
|
|
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,
|
|
26113
|
-
server.close(() =>
|
|
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((
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
28775
|
+
if (!force && await exists2(path)) {
|
|
28589
28776
|
console.log(`Skipped existing ${path}`);
|
|
28590
28777
|
return;
|
|
28591
28778
|
}
|
|
28592
|
-
await (0,
|
|
28593
|
-
await (0,
|
|
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
|
|
28783
|
+
async function exists2(path) {
|
|
28597
28784
|
try {
|
|
28598
|
-
await (0,
|
|
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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"}
|