@wrongstack/core 0.4.0 → 0.4.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.
@@ -1167,7 +1167,15 @@ var ENV_MAP = {
1167
1167
  function isPrimitiveArray(a) {
1168
1168
  return a.every((v) => v === null || typeof v !== "object");
1169
1169
  }
1170
- var FORBIDDEN_PROTO_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
1170
+ var FORBIDDEN_PROTO_KEYS = /* @__PURE__ */ new Set([
1171
+ "__proto__",
1172
+ "constructor",
1173
+ "prototype",
1174
+ "__defineGetter__",
1175
+ "__defineSetter__",
1176
+ "__lookupGetter__",
1177
+ "__lookupSetter__"
1178
+ ]);
1171
1179
  function deepMerge(base, patch) {
1172
1180
  if (typeof base !== "object" || base === null) return patch ?? base;
1173
1181
  if (typeof patch !== "object" || patch === null) return base;
@@ -2197,12 +2205,15 @@ var PATTERNS = [
2197
2205
  { type: "redis_uri", regex: /redis:\/\/[^\s"'`]+/g },
2198
2206
  {
2199
2207
  type: "bearer_token",
2200
- regex: /(?<![A-Za-z0-9_.~+/-])Bearer\s+[A-Za-z0-9._~+/-]{20,}=*(?![A-Za-z0-9_.~+/-])/g
2208
+ // Bounded at 512 chars to prevent catastrophic backtracking on adversarial input.
2209
+ // Negative lookahead is a simple single-char check — no backtracking risk.
2210
+ regex: /(?<![A-Za-z0-9_.~+/-])Bearer\s+[A-Za-z0-9._~+/-]{20,512}=*(?![A-Za-z0-9_.~+/-])/g
2201
2211
  },
2202
2212
  {
2203
2213
  type: "high_entropy_env",
2204
- // Value-side word boundary + length gate to avoid matching short random strings
2205
- regex: /\b([A-Z_]{4,}(?:KEY|TOKEN|SECRET|PASSWORD|PWD))\s*[:=]\s*['"]?([A-Za-z0-9_/+=-]{20,})['"]?(?!\s*[A-Za-z_]{4,}(?:KEY|TOKEN|SECRET|PASSWORD|PWD))/g
2214
+ // Value bounded at 512 chars; negative lookahead simplified to avoid
2215
+ // nested quantifier backtracking on adversarial input.
2216
+ regex: /\b([A-Z_]{4,}(?:KEY|TOKEN|SECRET|PASSWORD|PWD))\s*[:=]\s*['"]?([A-Za-z0-9_/+=-]{20,512})['"]?/g
2206
2217
  }
2207
2218
  ];
2208
2219
  var SCRUB_CHUNK_BYTES = 64 * 1024;
@@ -2415,7 +2426,7 @@ function walkCount(node, vault, counter) {
2415
2426
  if (Array.isArray(node)) {
2416
2427
  return node.map((item) => walkCount(item, vault, counter));
2417
2428
  }
2418
- const out = {};
2429
+ const out = /* @__PURE__ */ Object.create(null);
2419
2430
  for (const [k, v] of Object.entries(node)) {
2420
2431
  if (typeof v === "string" && isSecretField2(k) && !vault.isEncrypted(v) && v.length > 0) {
2421
2432
  out[k] = vault.encrypt(v);
@@ -2428,7 +2439,15 @@ function walkCount(node, vault, counter) {
2428
2439
  }
2429
2440
  return out;
2430
2441
  }
2431
- var FORBIDDEN_PROTO_KEYS2 = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
2442
+ var FORBIDDEN_PROTO_KEYS2 = /* @__PURE__ */ new Set([
2443
+ "__proto__",
2444
+ "constructor",
2445
+ "prototype",
2446
+ "__defineGetter__",
2447
+ "__defineSetter__",
2448
+ "__lookupGetter__",
2449
+ "__lookupSetter__"
2450
+ ]);
2432
2451
  function deepMerge2(a, b) {
2433
2452
  const out = { ...a };
2434
2453
  for (const [k, v] of Object.entries(b)) {
@@ -9162,7 +9181,6 @@ var githubServer = () => ({
9162
9181
  transport: "stdio",
9163
9182
  command: "npx",
9164
9183
  args: ["-y", "@modelcontextprotocol/server-github"],
9165
- env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_PERSONAL_ACCESS_TOKEN ?? "" },
9166
9184
  permission: "confirm"
9167
9185
  });
9168
9186
  var context7Server = () => ({
@@ -9178,7 +9196,6 @@ var braveSearchServer = () => ({
9178
9196
  transport: "stdio",
9179
9197
  command: "npx",
9180
9198
  args: ["-y", "@modelcontextprotocol/server-brave-search"],
9181
- env: { BRAVE_SEARCH_API_KEY: process.env.BRAVE_SEARCH_API_KEY ?? "" },
9182
9199
  permission: "confirm"
9183
9200
  });
9184
9201
  var blockServer = () => ({
@@ -9195,7 +9212,6 @@ var everArtServer = () => ({
9195
9212
  transport: "stdio",
9196
9213
  command: "npx",
9197
9214
  args: ["-y", "@modelcontextprotocol/server-everart"],
9198
- env: { EVERART_API_KEY: process.env.EVERART_API_KEY ?? "" },
9199
9215
  permission: "confirm"
9200
9216
  });
9201
9217
  var slackServer = () => ({
@@ -9204,10 +9220,6 @@ var slackServer = () => ({
9204
9220
  transport: "stdio",
9205
9221
  command: "npx",
9206
9222
  args: ["-y", "@modelcontextprotocol/server-slack"],
9207
- env: {
9208
- SLACK_BOT_TOKEN: process.env.SLACK_BOT_TOKEN ?? "",
9209
- SLACK_TEAM_ID: process.env.SLACK_TEAM_ID ?? ""
9210
- },
9211
9223
  permission: "confirm"
9212
9224
  });
9213
9225
  var awsServer = () => ({
@@ -9224,7 +9236,6 @@ var googleMapsServer = () => ({
9224
9236
  transport: "stdio",
9225
9237
  command: "npx",
9226
9238
  args: ["-y", "@modelcontextprotocol/server-google-maps"],
9227
- env: { GOOGLE_MAPS_API_KEY: process.env.GOOGLE_MAPS_API_KEY ?? "" },
9228
9239
  permission: "confirm"
9229
9240
  });
9230
9241
  var sentinelServer = () => ({
@@ -9241,10 +9252,7 @@ var zaiVisionServer = () => ({
9241
9252
  transport: "stdio",
9242
9253
  command: "npx",
9243
9254
  args: ["-y", "@z_ai/mcp-server@latest"],
9244
- env: {
9245
- Z_AI_API_KEY: process.env.Z_AI_API_KEY ?? "",
9246
- Z_AI_MODE: process.env.Z_AI_MODE ?? "ZAI"
9247
- },
9255
+ env: { Z_AI_MODE: "ZAI" },
9248
9256
  allowedTools: [
9249
9257
  "image_analysis",
9250
9258
  "extract_text_from_screenshot",
@@ -9262,10 +9270,9 @@ var miniMaxVisionServer = () => ({
9262
9270
  command: "uvx",
9263
9271
  args: ["minimax-coding-plan-mcp", "-y"],
9264
9272
  env: {
9265
- MINIMAX_API_KEY: process.env.MINIMAX_API_KEY ?? "",
9266
- MINIMAX_MCP_BASE_PATH: process.env.MINIMAX_MCP_BASE_PATH ?? "./.wrongstack/minimax-output",
9267
- MINIMAX_API_HOST: process.env.MINIMAX_API_HOST ?? "https://api.minimax.io",
9268
- MINIMAX_API_RESOURCE_MODE: process.env.MINIMAX_API_RESOURCE_MODE ?? "url"
9273
+ MINIMAX_MCP_BASE_PATH: "./.wrongstack/minimax-output",
9274
+ MINIMAX_API_HOST: "https://api.minimax.io",
9275
+ MINIMAX_API_RESOURCE_MODE: "url"
9269
9276
  },
9270
9277
  allowedTools: ["understand_image"],
9271
9278
  permission: "auto"