@node9/proxy 2.47.0 → 2.47.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.js CHANGED
@@ -35,6 +35,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
35
35
  ));
36
36
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
37
37
 
38
+ // node_modules/tsup/assets/cjs_shims.js
39
+ var getImportMetaUrl, importMetaUrl;
40
+ var init_cjs_shims = __esm({
41
+ "node_modules/tsup/assets/cjs_shims.js"() {
42
+ "use strict";
43
+ getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
44
+ importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
45
+ }
46
+ });
47
+
38
48
  // src/audit/hasher.ts
39
49
  function canonicalise(value) {
40
50
  return _canonicalise(value, /* @__PURE__ */ new WeakSet());
@@ -66,6 +76,7 @@ var import_crypto;
66
76
  var init_hasher = __esm({
67
77
  "src/audit/hasher.ts"() {
68
78
  "use strict";
79
+ init_cjs_shims();
69
80
  import_crypto = require("crypto");
70
81
  }
71
82
  });
@@ -81,6 +92,7 @@ var import_async_hooks, als;
81
92
  var init_forecast_context = __esm({
82
93
  "src/auth/forecast-context.ts"() {
83
94
  "use strict";
95
+ init_cjs_shims();
84
96
  import_async_hooks = require("async_hooks");
85
97
  als = new import_async_hooks.AsyncLocalStorage();
86
98
  }
@@ -667,11 +679,29 @@ function resolveCheckMap(settings) {
667
679
  for (const c of CHECKS) out[c.id] = checkValue(settings, c.id);
668
680
  return out;
669
681
  }
682
+ function getSyntax() {
683
+ if (syntax === null) {
684
+ const req = (0, import_module.createRequire)(__filename2);
685
+ syntax = req("mvdan-sh").syntax;
686
+ }
687
+ return syntax;
688
+ }
689
+ function lazy(compute) {
690
+ let done = false;
691
+ let value;
692
+ return () => {
693
+ if (!done) {
694
+ value = compute();
695
+ done = true;
696
+ }
697
+ return value;
698
+ };
699
+ }
670
700
  function isGoNode(v) {
671
701
  return v !== null && typeof v === "object" && typeof v.Pos === "function";
672
702
  }
673
703
  function toPlainTree(goNode) {
674
- const kind = syntax.NodeType(goNode);
704
+ const kind = getSyntax().NodeType(goNode);
675
705
  const out = { kind, pos: goNode.Pos().Offset(), end: goNode.End().Offset() };
676
706
  const spec = KINDS[kind];
677
707
  if (!spec) {
@@ -861,12 +891,12 @@ function judgeInlineCode(language, code, isProtected) {
861
891
  category
862
892
  };
863
893
  }
864
- const path31 = protectedLiteral(text, isProtected);
865
- if (path31) {
894
+ const path210 = protectedLiteral(text, isProtected);
895
+ if (path210) {
866
896
  return {
867
897
  outcome: "dangerous",
868
898
  what: WHAT["reads-protected"],
869
- evidence: path31.slice(0, 60),
899
+ evidence: path210.slice(0, 60),
870
900
  category: "reads-protected"
871
901
  };
872
902
  }
@@ -902,7 +932,7 @@ function parseShared(command) {
902
932
  }
903
933
  let parsed;
904
934
  try {
905
- parsed = toPlainTree(sharedParser.Parse(command, "cmd"));
935
+ parsed = toPlainTree(sharedParser().Parse(command, "cmd"));
906
936
  } catch {
907
937
  parsed = PARSE_FAIL;
908
938
  }
@@ -1450,7 +1480,7 @@ function redirStdinOps() {
1450
1480
  }
1451
1481
  function deriveBinaryOp(sample) {
1452
1482
  try {
1453
- const f = toPlainTree(sharedParser.Parse(sample, "cmd"));
1483
+ const f = toPlainTree(sharedParser().Parse(sample, "cmd"));
1454
1484
  let op = -1;
1455
1485
  walk(f, (node) => {
1456
1486
  const n = node;
@@ -1894,7 +1924,7 @@ function recordTopLevelAssignments(f) {
1894
1924
  }
1895
1925
  function probeBinOp(src) {
1896
1926
  try {
1897
- const cmd = toPlainTree(syntax2.NewParser().Parse(src, "probe"))?.Stmts?.[0]?.Cmd;
1927
+ const cmd = toPlainTree(getSyntax().NewParser().Parse(src, "probe"))?.Stmts?.[0]?.Cmd;
1898
1928
  if (cmd && cmd.kind === "BinaryCmd") return cmd.Op;
1899
1929
  } catch {
1900
1930
  }
@@ -1904,9 +1934,9 @@ function recordTopLevelStmt(stmt) {
1904
1934
  if (!stmt || !stmt.Cmd) return false;
1905
1935
  const t = stmt.Cmd.kind;
1906
1936
  if (t === "BinaryCmd") {
1907
- if (!AND_OR_OPS.has(stmt.Cmd.Op)) return false;
1937
+ if (!andOrOps().AND_OR_OPS.has(stmt.Cmd.Op)) return false;
1908
1938
  if (!recordTopLevelStmt(stmt.Cmd.X)) return false;
1909
- if (stmt.Cmd.Op === AND_OP) return recordTopLevelStmt(stmt.Cmd.Y);
1939
+ if (stmt.Cmd.Op === andOrOps().AND_OP) return recordTopLevelStmt(stmt.Cmd.Y);
1910
1940
  return true;
1911
1941
  }
1912
1942
  if (t !== "CallExpr" && t !== "DeclClause") return false;
@@ -2357,7 +2387,7 @@ function isWaivableCleanupTarget(p) {
2357
2387
  }
2358
2388
  function deriveRedirOp(sample) {
2359
2389
  try {
2360
- const f = toPlainTree(sharedParser.Parse(sample, "cmd"));
2390
+ const f = toPlainTree(sharedParser().Parse(sample, "cmd"));
2361
2391
  let op = -1;
2362
2392
  walk(f, (node) => {
2363
2393
  const n = node;
@@ -2376,9 +2406,9 @@ function collectSameCommandCreations(f) {
2376
2406
  for (const stmt of stmts) {
2377
2407
  if (!stmt || !stmt.Cmd || stmt.Cmd.kind !== "CallExpr") continue;
2378
2408
  const redirs = stmt.Redirs || [];
2379
- if (!redirs.some((r) => r && REDIR_HEREDOC_OPS.has(r.Op))) continue;
2409
+ if (!redirs.some((r) => r && REDIR_HEREDOC_OPS().has(r.Op))) continue;
2380
2410
  for (const r of redirs) {
2381
- if (r && REDIR_TRUNCATE_OPS.has(r.Op) && r.N == null) {
2411
+ if (r && REDIR_TRUNCATE_OPS().has(r.Op) && r.N == null) {
2382
2412
  const w = resolveWordLiteral(r.Word);
2383
2413
  if (w) created.add(stripDotSlash(w));
2384
2414
  }
@@ -2948,7 +2978,7 @@ function literalShellPayload(words, name) {
2948
2978
  function jailedRedirectRead(stmt) {
2949
2979
  const redirs = stmt.Redirs || [];
2950
2980
  for (const r of redirs) {
2951
- if (!r || !REDIR_FILE_IN_OPS.has(r.Op)) continue;
2981
+ if (!r || !REDIR_FILE_IN_OPS().has(r.Op)) continue;
2952
2982
  const p = resolveWordLiteral(r.Word);
2953
2983
  if (p === null || p === "") continue;
2954
2984
  const hit = matchSensitivePath(p);
@@ -3030,9 +3060,9 @@ function ruleServerMatches(rule, serverLabel) {
3030
3060
  if (rule.notServer && label2 && matchesPattern(label2, rule.notServer)) return false;
3031
3061
  return true;
3032
3062
  }
3033
- function getNestedValue(obj, path31) {
3063
+ function getNestedValue(obj, path210) {
3034
3064
  if (!obj || typeof obj !== "object") return null;
3035
- const segments2 = path31.split(".");
3065
+ const segments2 = path210.split(".");
3036
3066
  for (const seg of segments2) {
3037
3067
  if (FORBIDDEN_PATH_SEGMENTS.has(seg)) return null;
3038
3068
  }
@@ -3244,7 +3274,7 @@ function runnablePrefix(command) {
3244
3274
  let text = command;
3245
3275
  for (let attempt = 0; attempt < 32; attempt++) {
3246
3276
  try {
3247
- return toPlainTree(syntax3.NewParser().Parse(text, ""));
3277
+ return toPlainTree(getSyntax().NewParser().Parse(text, ""));
3248
3278
  } catch (error) {
3249
3279
  const message = String(typeof error?.Error === "function" ? error.Error() : error?.message);
3250
3280
  const line = Number(/^(\d+):/.exec(message)?.[1]);
@@ -3289,7 +3319,7 @@ function wordValues(word, state) {
3289
3319
  const name = node.Param?.Value;
3290
3320
  const known = name === "PWD" ? state.cwd : state.vars.get(name);
3291
3321
  if (node.Exp) {
3292
- if (!DEFAULT_OPS.has(node.Exp.Op)) return null;
3322
+ if (!ops().DEFAULT_OPS.has(node.Exp.Op)) return null;
3293
3323
  if (known && known.length) return toWords(known, quoted);
3294
3324
  const fallback = expand(node.Exp.Word?.Parts ?? [], quoted);
3295
3325
  return fallback.dynamic ? null : fallback.out.map(asWord);
@@ -3636,7 +3666,7 @@ function collectShellFileAccesses(command, context = {}) {
3636
3666
  const urls = [];
3637
3667
  let dir2 = null;
3638
3668
  let remoteName = false;
3639
- let document = false;
3669
+ let document2 = false;
3640
3670
  let serverNamed = false;
3641
3671
  const take = (flag, value) => {
3642
3672
  if (!value) return;
@@ -3644,7 +3674,7 @@ function collectShellFileAccesses(command, context = {}) {
3644
3674
  if (sent) add("read", sent, state, { upload: true });
3645
3675
  if (DOWNLOAD_OUTPUT_FLAGS[name].includes(flag)) {
3646
3676
  if (["-O", "--output-document", "--out"].includes(flag) || name === "aria2c" && flag === "-o")
3647
- document = true;
3677
+ document2 = true;
3648
3678
  if (value.value !== "-" || value.pattern || value.dynamic) outputs.push(value);
3649
3679
  } else if (DOWNLOAD_DIR_FLAGS[name].includes(flag)) dir2 = value;
3650
3680
  else if (name === "wget" && (flag === "-i" || flag === "--input-file")) serverNamed = true;
@@ -3689,7 +3719,7 @@ function collectShellFileAccesses(command, context = {}) {
3689
3719
  add("write", { value: "", pattern: spelled.value.replace(/#\d+/g, "*"), dot: true }, state);
3690
3720
  else add("write", spelled, state);
3691
3721
  }
3692
- const remote = name === "curl" ? remoteName || serverNamed : !document || serverNamed;
3722
+ const remote = name === "curl" ? remoteName || serverNamed : !document2 || serverNamed;
3693
3723
  if (!remote) return;
3694
3724
  const into = dir2?.value ? dir2.value.replace(/\/+$/, "") : ".";
3695
3725
  if (serverNamed || urls.length === 0) {
@@ -3814,7 +3844,7 @@ function collectShellFileAccesses(command, context = {}) {
3814
3844
  function stdinText(stmt) {
3815
3845
  for (const redir of stmt?.Redirs ?? []) {
3816
3846
  if (redir.Hdoc) return resolveWordLiteral(redir.Hdoc);
3817
- if (redir.Op === HERE_STRING) return resolveWordLiteral(redir.Word);
3847
+ if (redir.Op === ops().HERE_STRING) return resolveWordLiteral(redir.Word);
3818
3848
  }
3819
3849
  return null;
3820
3850
  }
@@ -3844,10 +3874,10 @@ function collectShellFileAccesses(command, context = {}) {
3844
3874
  for (const redir of stmt.Redirs ?? []) {
3845
3875
  substitutions(redir.Word, state, depth);
3846
3876
  for (const word of wordValues(redir.Word, state)) {
3847
- if (WRITES.has(redir.Op))
3848
- add("write", word, state, APPENDS.has(redir.Op) ? { append: true } : {});
3849
- if (READS.has(redir.Op)) add("read", word, state, sends ? { upload: true } : {});
3850
- if (redir.Op === DUP_OUT && word.value && !/^\d+$/.test(word.value))
3877
+ if (ops().WRITES.has(redir.Op))
3878
+ add("write", word, state, ops().APPENDS.has(redir.Op) ? { append: true } : {});
3879
+ if (ops().READS.has(redir.Op)) add("read", word, state, sends ? { upload: true } : {});
3880
+ if (redir.Op === ops().DUP_OUT && word.value && !/^\d+$/.test(word.value))
3851
3881
  add("write", word, state);
3852
3882
  }
3853
3883
  substitutions(redir.Hdoc, state, depth);
@@ -3879,16 +3909,17 @@ function collectShellFileAccesses(command, context = {}) {
3879
3909
  const seen = clone(state);
3880
3910
  let pureAnd = true;
3881
3911
  segments2.forEach(({ op, part }, i) => {
3882
- if (op === AND || op === OR) {
3883
- if (i > 0 && op === AND && pureAnd && state.onSuccess) state.cwd = state.onSuccess;
3884
- if (i > 0 && op === OR) merge(state, seen);
3912
+ if (op === ops().AND || op === ops().OR) {
3913
+ if (i > 0 && op === ops().AND && pureAnd && state.onSuccess)
3914
+ state.cwd = state.onSuccess;
3915
+ if (i > 0 && op === ops().OR) merge(state, seen);
3885
3916
  statement(part, state, depth + 1);
3886
3917
  } else {
3887
3918
  statement(part, clone(state), depth + 1);
3888
3919
  if (i > 0 && readsScriptFromStdin(part))
3889
3920
  nestedPayload(producedText(segments2[i - 1].part), clone(state), depth);
3890
3921
  }
3891
- if (i > 0 && op !== AND) pureAnd = false;
3922
+ if (i > 0 && op !== ops().AND) pureAnd = false;
3892
3923
  merge(seen, state);
3893
3924
  });
3894
3925
  merge(state, seen);
@@ -4012,8 +4043,8 @@ function collectFileAccesses(tool, args, context = {}, inspection = {}) {
4012
4043
  }
4013
4044
  return out;
4014
4045
  }
4015
- function within(path31, root) {
4016
- return path31 === root || path31.startsWith(root === "/" ? "/" : root + "/");
4046
+ function within(path210, root) {
4047
+ return path210 === root || path210.startsWith(root === "/" ? "/" : root + "/");
4017
4048
  }
4018
4049
  function hits(access, paths, directories, context) {
4019
4050
  const home = context.homeDirs?.[0] ?? "~";
@@ -5216,7 +5247,7 @@ function shellWriteUnseen(command, target) {
5216
5247
  );
5217
5248
  const redirs = n.Redirs || [];
5218
5249
  const redirectsTo = redirs.some((r) => r.Word && resolveWordLiteral(r.Word) === target);
5219
- const readsFromFile = redirs.some((r) => r.Op === RDR_IN && r.Word && !r.Hdoc);
5250
+ const readsFromFile = redirs.some((r) => r.Op === RDR_IN() && r.Word && !r.Hdoc);
5220
5251
  const named = words.includes(target);
5221
5252
  if (!redirectsTo && !named) return true;
5222
5253
  const head = unwrapCommandHead(words);
@@ -6332,14 +6363,14 @@ function mavenGet(words, from, out) {
6332
6363
  push(out, "Maven", "mvn dependency:get", coord, exact, artifact ?? coord);
6333
6364
  }
6334
6365
  function composerPackages(words, from, manager, out) {
6335
- const ops = operands(words, from, COMPOSER_VALUE_FLAGS);
6336
- const specs = manager === "composer create-project" ? ops.slice(0, 1) : ops;
6366
+ const ops2 = operands(words, from, COMPOSER_VALUE_FLAGS);
6367
+ const specs = manager === "composer create-project" ? ops2.slice(0, 1) : ops2;
6337
6368
  for (const raw of specs) {
6338
6369
  const sep = raw.search(/[:=]/);
6339
6370
  const name = sep < 0 ? raw : raw.slice(0, sep);
6340
6371
  if (!COMPOSER_NAME_RE.test(name)) continue;
6341
6372
  let ver = sep < 0 ? void 0 : raw.slice(sep + 1);
6342
- if (manager === "composer create-project" && ver === void 0) ver = ops[2] ?? void 0;
6373
+ if (manager === "composer create-project" && ver === void 0) ver = ops2[2] ?? void 0;
6343
6374
  push(out, "Packagist", manager, name.toLowerCase(), exactVersion(ver), raw);
6344
6375
  }
6345
6376
  }
@@ -7270,9 +7301,9 @@ function bareToolName(toolName) {
7270
7301
  const parts = toolName.split("__");
7271
7302
  return (parts.length >= 3 ? parts.slice(2).join("__") : toolName).toLowerCase();
7272
7303
  }
7273
- function valuesAt(args, path31) {
7304
+ function valuesAt(args, path210) {
7274
7305
  let cursors = [args];
7275
- for (const rawSegment of path31.split(".")) {
7306
+ for (const rawSegment of path210.split(".")) {
7276
7307
  const isArray = rawSegment.endsWith("[]");
7277
7308
  const key = isArray ? rawSegment.slice(0, -2) : rawSegment;
7278
7309
  const next = [];
@@ -7303,8 +7334,8 @@ function extractToolDestinations(toolName, args) {
7303
7334
  try {
7304
7335
  const out = [];
7305
7336
  const paths = DESTINATION_ARGS.get(bareToolName(toolName)) ?? [];
7306
- for (const path31 of paths) {
7307
- for (const value of valuesAt(args, path31)) {
7337
+ for (const path210 of paths) {
7338
+ for (const value of valuesAt(args, path210)) {
7308
7339
  const host2 = hostOf(value);
7309
7340
  if (host2) out.push({ host: host2, binary: toolName, raw: value });
7310
7341
  }
@@ -7330,8 +7361,8 @@ function ssrfDestinationFloor(toolName, args, opts = {}) {
7330
7361
  try {
7331
7362
  const paths = DESTINATION_ARGS.get(bareToolName(toolName));
7332
7363
  if (!paths) return null;
7333
- for (const path31 of paths) {
7334
- for (const value of valuesAt(args, path31)) {
7364
+ for (const path210 of paths) {
7365
+ for (const value of valuesAt(args, path210)) {
7335
7366
  const host2 = hostOf(value);
7336
7367
  if (!host2) continue;
7337
7368
  const m = classifySsrf(host2);
@@ -7340,7 +7371,7 @@ function ssrfDestinationFloor(toolName, args, opts = {}) {
7340
7371
  const decision = ssrfFloorDecision(m, written, opts);
7341
7372
  if (decision === null) continue;
7342
7373
  const reason = decision === "review" ? ssrfDisguisedReason(m, written) : ssrfReason(m, host2);
7343
- return { ...m, argPath: path31, host: host2, reason, decision };
7374
+ return { ...m, argPath: path210, host: host2, reason, decision };
7344
7375
  }
7345
7376
  }
7346
7377
  return null;
@@ -8994,21 +9025,23 @@ function matchCanaryArgs(args, values) {
8994
9025
  return null;
8995
9026
  }
8996
9027
  }
8997
- var import_picomatch, import_safe_regex2, import_picomatch2, import_mvdan_sh, import_mvdan_sh2, import_mvdan_sh3, import_safe_regex22, import_crypto2, import_crypto3, import_crypto4, import_crypto5, MAX_REGEX_LENGTH, REGEX_CACHE_MAX, regexCache, aws_default, bash_safe_default, docker_default, filesystem_default, github_default, k8s_default, mongodb_default, postgres_default, project_jail_default, redis_default, finance_default, identity_default, publishing_default, settings_default, branches_default, ACTION_TEMPLATES, ACTION_CHECKS, GAP, prog, httpTo, httpWrite, HTTP_WRITE, HTTP_WRITE_ANY, NOT_STRIPE_TEST, postTo, STRIPE_OBJECTS, APP_SHIELD_SPECS, APP_SHIELDS, APP_SHIELD_NAMES, APP_SERVER_GLOB, GENERAL_ACTION_RULES, BUILTIN_SHIELDS, SSRF_MAX_HOST, METADATA_ADDRESSES, STRICT_TIERS, METADATA_HOSTNAMES, v4Octets, TIER_REASON, CHECK_TEXT, LEVELS, MODE_VALUES, SOFT, STRICT, BLOCK_ALL, LEVEL_CHECKS, VERDICTS, CHECK_VERDICT_RANK, ALL, BUILTIN_DANGEROUS_WORDS, PRODUCT_CHECKS, SHIELD_RULE_NAME, SHIELD_RULES_FOLDED_INTO_PRODUCT, CHECKS, CHECK_BY_ID, LEGACY_TO_ID, PROJECT_JAIL_BLOCK_READ, OVERRIDE_PREFIX, LABEL_WRAPPERS, LEGACY_READERS, syntax, KINDS, STRUCTS, unknownKinds, INVISIBLE_RE, INVISIBLE_ONE, HOMOGLYPHS, HOMOGLYPH_RE, MAX_BLOBS, MIN_DECODED, BASE64_RUN_RE, HEX_RUN_RE, HEX_ESCAPE_RUN_RE, SYSTEM_AUTH_FILES, SYSTEM_AUTH_DIRS, PASSWORD_HASH_FILES, STARTUP_NAMES, SYSTEM_DIRS, SYSTEM_DIRS_EXEMPT, UPLOAD_SYSTEM_DIRS, AGENT_INSTRUCTION_FILES, AGENT_INSTRUCTION_DIRS, LEGACY_SYSTEM_PATH_RE, MAX_INLINE_CODE, WHAT, OUTSIDE, pyImport, either, PYTHON, NODE, PERL, RUBY, PHP, TABLES, STRING_LITERAL, syntax2, sharedParser, MESSAGE_FLAGS, SHELL_INTERPRETERS, DOWNLOAD_CMDS, NORMALIZE_CACHE_MAX, normalizeCache, codeBodiesCache, AST_CACHE_MAX, astCache, PARSE_FAIL, INTERPRETER_LINE, PROGRAM_DIR, ACCESS_VIEW_CACHE_MAX, accessViewCache, MAX_READING_PAYLOADS, STDIN_CODE_INTERPRETERS, RUNS_TEXT_ELSEWHERE, defaultExpansionOps, VARIABLE_READERS, FS_READ_TOOLS, GREP_SHAPE, PATTERN_VERBS, PATTERN_VERB_NAMES, GREP_FILE_OPERANDS, READER_VALUE_LETTERS, FILE_OPERAND_FLAGS, SCP_VALUE_FLAGS, CURL_SOURCE_FLAGS, CURL_VALUE_LETTERS, WGET_VALUE_LETTERS, TAR_VALUE_LETTERS, ZIP_VALUE_LETTERS, RSYNC_VALUE_LETTERS, RSYNC_SKIP, CP_VALUE_LETTERS, INSTALL_VALUE_LETTERS, COPY_VERBS, TAR_MODE_WORD, COPY_VERB_HEADS, FS_OP_PRESCREEN_RE, HOME_CACHE_ALLOWLIST, SENSITIVE_PATH_RULES, AST_FS_REGEX_RULES, SQL_DB_CLIS, SQL_DDL_RE, CHMOD_OPEN_PERM_TOKENS, COMMAND_WRAPPERS, INLINE_INTERPRETER, RUNNER_WRAPPERS, _redirStdinOps, _listOps, WRAPPER_TAKES_TARGET, FIND_EXEC_FLAGS, FS_MUTATION_TOOLS, INTERP_LEADING_TARGET, MAX_PAYLOAD_NESTING, payloadNesting, MAX_INLINE_CALLS, INLINE_EXEC_FALLBACK, UNREADABLE_SOURCE, SCRIPT_RUNNERS, SCRIPT_RUNNER_VALUE_FLAGS, MAX_SCRIPT_OPERANDS, NET_BINARIES, VALUE_FLAGS, HOME_VARIABLES, assignmentTable, currentStmtOffset, PAYLOAD_BUDGET, payloadBudget, seenPayloads, UNANALYSABLE_NESTING, ASSIGNMENT_HEADS, AND_OP, OR_OP, AND_OR_OPS, MAX_CALL_DEPTH, MAX_CALL_WALKS, callDepth, callWalks, FS_OP_CACHE_MAX, fsOpCache, stripDotSlash, REDIR_TRUNCATE_OPS, REDIR_FILE_IN_OPS, REDIR_HEREDOC_OPS, FIND_OPTIONS, COPY_RULE_OF, isReaderWord, positionalAfter, NONE, UNKNOWN, FORBIDDEN_PATH_SEGMENTS, BASH_TOOL_NAMES, MCP_EXECUTORS, BUILTIN_FIELDS, ARGV_FIELDS, BARE_WORD, MAX_ARGV_CHARACTERS, syntax3, MAX_ALTERNATIVES, MAX_CALL_DEPTH2, MAX_CALL_WALKS2, POSITIONAL, MAX_DEPTH, MAX_PAYLOAD_DEPTH, unique, clone, SENDING_STDIN, DOWNLOAD_SHORT_VALUE, DOWNLOAD_LONG_VALUE, DOWNLOAD_OUTPUT_FLAGS, DOWNLOAD_DIR_FLAGS, base, quoteGlob, asWord, WRITES, APPENDS, READS, DUP_OUT, HERE_STRING, AND, OR, DEFAULT_OPS, exempt, RANK, SEQUENCE_OPS, BIP39_ENGLISH, BIP39_PUBLIC_VECTORS, indices, lengths, hash, MAX_MNEMONIC_HASHES, SECRET_VIEW_LIMITS, IBAN_LENGTH, IBAN_BBAN_SHAPE, B58, B58_INDEX, XPRV_VERSIONS, B62, CRC32_TABLE, GITHUB_TOKEN_RE, B64URL, B64URL_INDEX, CASK_TWO_ZERO_SUFFIX, CASK_FOUR_ZERO_SUFFIX, CF_ODD, CF_EVEN, SPANISH_LETTERS, HETU_CHARS, VERHOEFF_D, VERHOEFF_P, MAX, UNTRUSTED_TOOLS, INJECTION_SIGNALS, MENTION_QUOTE_RE, MENTION_WORD_RE, ASSIGNMENT_CONTEXT_RE, DLP_STOPWORDS, REFERENCE_VALUE_RE, IDENTIFIER_VALUE_RE, PATH_VALUE_RE, DOTTED_REFERENCE_RE, CONCATENATION_RE, EMAIL_VALUE_RE, FIXTURE_NAME_RE, DERIVATIVE_NAME_RE, QUERY_CREDENTIAL_VALUE_RE, OTP_SECRET_RE, OTP_DOC_SECRETS, ASSIGNED_SECRET_VALUE_RE, ASSIGNED_SECRET_NAME_RE, NAME_KEYWORD_RE, ARN_CONTEXT_RE, CIPHER_KEY_NAME_RE, CIPHER_NAME_PARTS, CIPHER_KEY_VALUE_RE, LARAVEL_KEY_VALUE_RE, SQL_PASSWORD_VALUE_RE, GRAFANA_KEY_VALUE_RE, BASIC_VALUE_RE, BASIC_PAIR_RE, BASIC_HEADER_RE, BASIC_HEADER_PAIR_RE, BASIC_PLACEHOLDER_RE, BASIC_TEMPLATE_MARKERS, DROPBOX_SECRET_RE, OTP_CAPTURE_RE, DB_URL_PASSWORD_RE, DLP_PATTERNS, DLP_PATTERNS_GLOBAL, SENSITIVE_PATH_PATTERNS, SENSITIVE_PATH_REGEXES, MAX_DEPTH2, MAX_STRING_BYTES, MAX_JSON_PARSE_BYTES, BATCH_SEPARATOR, IMPERATIVE, SECRET_TARGET, GUARD, SIGNALS, DESTINATION_RE, REUSED_SIGNALS, NEVER_NEGATED, NEGATION_BEFORE, RDR_IN, COPY_VERBS2, LITERAL_VERBS, GIT_PRESCREEN_RE, MAX_PAYLOAD_DEPTH2, MAX_ALIAS_DEPTH, CACHE_MAX, cache, PAYLOAD_SHELLS, CONFIG_SCOPE_FLAGS, CONFIG_VALUE_FLAGS, GLOBAL_VALUE_OPTIONS, GLOBAL_FLAG_OPTIONS, MAX_LOOP_ITEMS, GitWalk, POSITIONAL2, FORCE_PUSH, DESTRUCTIVE, UNREADABLE, PUSH_LONG_VALUE, BRANCH_LONG_VALUE, TAG_LONG_VALUE, CLEAN_LONG_VALUE, HOOKS_BYPASS, NO_VERIFY_SUBS, HOOK_KILL_SWITCHES, COMMIT_LONG_VALUE, CHMOD_OPTION_RE, STAGE_ALL, ADD_LONG_VALUE, CHECK_ID, RULE_NAME, INERT_LINE_RE, CHECK_ID2, INSTRUCTION_NAMES, SETTINGS_RE, HOOK_WORDS_RE, SHELLS, NETCATS, NET_CLIENTS, SENDERS, NETCAT_EXEC_LONG, DECL_DUMPS, PROC_ENVIRON_RE, DEV_NET_RE, SOCAT_PROGRAM_RE, SOCAT_NET_RE, PRESCREEN_RE, MAX_PAYLOAD_DEPTH3, CACHE_MAX2, cache2, dupInOp, REVERSE_SHELL_DESCRIPTION, ENV_EXFIL_DESCRIPTION, DYNAMIC_WORD, MULTICALL, SHELL_VALUE_OPTIONS, INTERPRETERS, OutboundWalk, NPM_INSTALL_VERBS, NPM_EXEC_VERBS, PNPM_INSTALL_VERBS, YARN_INSTALL_VERBS, BUN_INSTALL_VERBS, DLX_VERBS, NON_REGISTRY_RE, NPM_NAME_RE, EXACT_SEMVER_RE, NPM_VALUE_FLAGS, PNPM_VALUE_FLAGS, YARN_VALUE_FLAGS, BUN_VALUE_FLAGS, PIP_VALUE_FLAGS, UV_VALUE_FLAGS, POETRY_VALUE_FLAGS, PIPENV_VALUE_FLAGS, PIPX_VALUE_FLAGS, PY_SPEC_RE, PY_EXACT_RE, EXACT_VERSION_RE, GEM_NAME_RE, GEM_VALUE_FLAGS, BUNDLE_VALUE_FLAGS, CRATE_NAME_RE, CARGO_ADD_VALUE_FLAGS, CARGO_INSTALL_VALUE_FLAGS, GO_VALUE_FLAGS, GO_PATH_RE, NUGET_NAME_RE, DOTNET_ADD_VALUE_FLAGS, DOTNET_TOOL_VALUE_FLAGS, NUGET_VALUE_FLAGS, MAVEN_COORD_RE, COMPOSER_NAME_RE, COMPOSER_VALUE_FLAGS, EDITOR_HEADS, EXTENSION_ID_RE, MANAGER_HEADS, SHELLS2, MAX_NESTING, SHELL_VALUE_FLAGS, NPM_FAMILY, PIP_FAMILY, NPM_FETCH_VERBS, PIP_FETCH_VERBS, NPM_FLAGS, PIP_FLAGS, NPM_VARS, PIP_VARS, PRESCREEN_RE2, PIP_ATTACHED_RE, MAX_PAYLOAD_DEPTH4, PUBLIC_REGISTRY_HOSTS, TUNING_FIELDS, MAP_GOVERNED, KNOB_GOVERNED, CONFIGURABLE_CHECK_IDS, DEFAULT_EGRESS_ALLOWLIST, PRIVATE_HOST_SUFFIXES, SOURCE_COMMANDS, SINK_COMMANDS, OBFUSCATORS, SENSITIVE_PATTERNS, FLAGS_WITH_VALUES, DESTINATION_ARGS, MCP_DESTINATION_KEYS, ARGUMENT_SCAN_LIMITS, RUN_CHAR, runChar, VERDICT_RANK, SQL_DML_KEYWORDS, MAX_DESTINATIONS, MAX_SCAN_CHARS, EMAIL_RE, URL_RE, IBAN_RE, RECIPIENT_KEYS, DESTRUCTIVE_VERB_RE, PII_EMAIL_RE, PII_SSN_RE, PII_PHONE_RE, PII_CC16_RE, PII_CC15_RE, PII_CC14_RE, PII_CC13_RE, PII_CC19_RE, CARD_PATTERNS, PII_ROUTING_RE, ROUTING_LABEL_RE, ROUTING_LABEL_WINDOW, NATIONAL_ID_SHAPES, NATIONAL_ID_LABEL_RE, NATIONAL_ID_LABEL_CS_RE, idLabelIn, NATIONAL_ID_LABEL_WINDOW, NATIONAL_ID_GUARD_RE, PII_IBAN_RE, REALTIME_PII_PATTERNS, MAX_PII_SCAN_BYTES, IBAN_DESTINATION_KEYS, WHOLE_IBAN_RE, JSON_ESCAPE_RE, JSON_ESCAPES, MASKED_KINDS, ENTRY_RE, IBAN_TEXT_RE, EMAIL_TEXT_RE, ACCOUNT_KEY_RE, ACCOUNT_VALUE_RE, MAX_MASK_DEPTH, EMPTY, CURL_SEND_FLAGS, WGET_SEND_FLAGS, IWR_SEND_FLAGS, WRITE_METHODS, GH_READ, GH_WRITE, GH_HOSTNAME_FLAGS, GH_REPO_VALUE_FLAGS, GH_API_VALUE_FLAGS, GIT_FETCH, PUBLISH, SHELLS3, OWN_HEADS, MAX_DEPTH3, CWD_CHANGERS, TERMINAL_ESCAPE_RE, LOOP_MAX_RECORDS, CANARY_MIN_LENGTH, MAX_TEXT, MAX_DEPTH4, MAX_JSON_PARSE, URL_DEPTH, B64_DEPTH, MIN_SEGMENT, SEPARATORS, stripSeparators, looksText, CANARY_DECODERS, VIEWS, LONG_OUTPUT_THRESHOLD_BYTES;
9028
+ var import_url, import_picomatch, import_safe_regex2, import_picomatch2, import_module, import_safe_regex22, import_crypto2, import_crypto3, import_crypto4, import_crypto5, getFilename, __filename2, MAX_REGEX_LENGTH, REGEX_CACHE_MAX, regexCache, aws_default, bash_safe_default, docker_default, filesystem_default, github_default, k8s_default, mongodb_default, postgres_default, project_jail_default, redis_default, finance_default, identity_default, publishing_default, settings_default, branches_default, ACTION_TEMPLATES, ACTION_CHECKS, GAP, prog, httpTo, httpWrite, HTTP_WRITE, HTTP_WRITE_ANY, NOT_STRIPE_TEST, postTo, STRIPE_OBJECTS, APP_SHIELD_SPECS, APP_SHIELDS, APP_SHIELD_NAMES, APP_SERVER_GLOB, GENERAL_ACTION_RULES, BUILTIN_SHIELDS, SSRF_MAX_HOST, METADATA_ADDRESSES, STRICT_TIERS, METADATA_HOSTNAMES, v4Octets, TIER_REASON, CHECK_TEXT, LEVELS, MODE_VALUES, SOFT, STRICT, BLOCK_ALL, LEVEL_CHECKS, VERDICTS, CHECK_VERDICT_RANK, ALL, BUILTIN_DANGEROUS_WORDS, PRODUCT_CHECKS, SHIELD_RULE_NAME, SHIELD_RULES_FOLDED_INTO_PRODUCT, CHECKS, CHECK_BY_ID, LEGACY_TO_ID, PROJECT_JAIL_BLOCK_READ, OVERRIDE_PREFIX, LABEL_WRAPPERS, LEGACY_READERS, syntax, KINDS, STRUCTS, unknownKinds, INVISIBLE_RE, INVISIBLE_ONE, HOMOGLYPHS, HOMOGLYPH_RE, MAX_BLOBS, MIN_DECODED, BASE64_RUN_RE, HEX_RUN_RE, HEX_ESCAPE_RUN_RE, SYSTEM_AUTH_FILES, SYSTEM_AUTH_DIRS, PASSWORD_HASH_FILES, STARTUP_NAMES, SYSTEM_DIRS, SYSTEM_DIRS_EXEMPT, UPLOAD_SYSTEM_DIRS, AGENT_INSTRUCTION_FILES, AGENT_INSTRUCTION_DIRS, LEGACY_SYSTEM_PATH_RE, MAX_INLINE_CODE, WHAT, OUTSIDE, pyImport, either, PYTHON, NODE, PERL, RUBY, PHP, TABLES, STRING_LITERAL, sharedParser, MESSAGE_FLAGS, SHELL_INTERPRETERS, DOWNLOAD_CMDS, NORMALIZE_CACHE_MAX, normalizeCache, codeBodiesCache, AST_CACHE_MAX, astCache, PARSE_FAIL, INTERPRETER_LINE, PROGRAM_DIR, ACCESS_VIEW_CACHE_MAX, accessViewCache, MAX_READING_PAYLOADS, STDIN_CODE_INTERPRETERS, RUNS_TEXT_ELSEWHERE, defaultExpansionOps, VARIABLE_READERS, FS_READ_TOOLS, GREP_SHAPE, PATTERN_VERBS, PATTERN_VERB_NAMES, GREP_FILE_OPERANDS, READER_VALUE_LETTERS, FILE_OPERAND_FLAGS, SCP_VALUE_FLAGS, CURL_SOURCE_FLAGS, CURL_VALUE_LETTERS, WGET_VALUE_LETTERS, TAR_VALUE_LETTERS, ZIP_VALUE_LETTERS, RSYNC_VALUE_LETTERS, RSYNC_SKIP, CP_VALUE_LETTERS, INSTALL_VALUE_LETTERS, COPY_VERBS, TAR_MODE_WORD, COPY_VERB_HEADS, FS_OP_PRESCREEN_RE, HOME_CACHE_ALLOWLIST, SENSITIVE_PATH_RULES, AST_FS_REGEX_RULES, SQL_DB_CLIS, SQL_DDL_RE, CHMOD_OPEN_PERM_TOKENS, COMMAND_WRAPPERS, INLINE_INTERPRETER, RUNNER_WRAPPERS, _redirStdinOps, _listOps, WRAPPER_TAKES_TARGET, FIND_EXEC_FLAGS, FS_MUTATION_TOOLS, INTERP_LEADING_TARGET, MAX_PAYLOAD_NESTING, payloadNesting, MAX_INLINE_CALLS, INLINE_EXEC_FALLBACK, UNREADABLE_SOURCE, SCRIPT_RUNNERS, SCRIPT_RUNNER_VALUE_FLAGS, MAX_SCRIPT_OPERANDS, NET_BINARIES, VALUE_FLAGS, HOME_VARIABLES, assignmentTable, currentStmtOffset, PAYLOAD_BUDGET, payloadBudget, seenPayloads, UNANALYSABLE_NESTING, ASSIGNMENT_HEADS, andOrOps, MAX_CALL_DEPTH, MAX_CALL_WALKS, callDepth, callWalks, FS_OP_CACHE_MAX, fsOpCache, stripDotSlash, REDIR_TRUNCATE_OPS, REDIR_FILE_IN_OPS, REDIR_HEREDOC_OPS, FIND_OPTIONS, COPY_RULE_OF, isReaderWord, positionalAfter, NONE, UNKNOWN, FORBIDDEN_PATH_SEGMENTS, BASH_TOOL_NAMES, MCP_EXECUTORS, BUILTIN_FIELDS, ARGV_FIELDS, BARE_WORD, MAX_ARGV_CHARACTERS, MAX_ALTERNATIVES, MAX_CALL_DEPTH2, MAX_CALL_WALKS2, POSITIONAL, MAX_DEPTH, MAX_PAYLOAD_DEPTH, unique, clone, SENDING_STDIN, DOWNLOAD_SHORT_VALUE, DOWNLOAD_LONG_VALUE, DOWNLOAD_OUTPUT_FLAGS, DOWNLOAD_DIR_FLAGS, base, quoteGlob, asWord, ops, exempt, RANK, SEQUENCE_OPS, BIP39_ENGLISH, BIP39_PUBLIC_VECTORS, indices, lengths, hash, MAX_MNEMONIC_HASHES, SECRET_VIEW_LIMITS, IBAN_LENGTH, IBAN_BBAN_SHAPE, B58, B58_INDEX, XPRV_VERSIONS, B62, CRC32_TABLE, GITHUB_TOKEN_RE, B64URL, B64URL_INDEX, CASK_TWO_ZERO_SUFFIX, CASK_FOUR_ZERO_SUFFIX, CF_ODD, CF_EVEN, SPANISH_LETTERS, HETU_CHARS, VERHOEFF_D, VERHOEFF_P, MAX, UNTRUSTED_TOOLS, INJECTION_SIGNALS, MENTION_QUOTE_RE, MENTION_WORD_RE, ASSIGNMENT_CONTEXT_RE, DLP_STOPWORDS, REFERENCE_VALUE_RE, IDENTIFIER_VALUE_RE, PATH_VALUE_RE, DOTTED_REFERENCE_RE, CONCATENATION_RE, EMAIL_VALUE_RE, FIXTURE_NAME_RE, DERIVATIVE_NAME_RE, QUERY_CREDENTIAL_VALUE_RE, OTP_SECRET_RE, OTP_DOC_SECRETS, ASSIGNED_SECRET_VALUE_RE, ASSIGNED_SECRET_NAME_RE, NAME_KEYWORD_RE, ARN_CONTEXT_RE, CIPHER_KEY_NAME_RE, CIPHER_NAME_PARTS, CIPHER_KEY_VALUE_RE, LARAVEL_KEY_VALUE_RE, SQL_PASSWORD_VALUE_RE, GRAFANA_KEY_VALUE_RE, BASIC_VALUE_RE, BASIC_PAIR_RE, BASIC_HEADER_RE, BASIC_HEADER_PAIR_RE, BASIC_PLACEHOLDER_RE, BASIC_TEMPLATE_MARKERS, DROPBOX_SECRET_RE, OTP_CAPTURE_RE, DB_URL_PASSWORD_RE, DLP_PATTERNS, DLP_PATTERNS_GLOBAL, SENSITIVE_PATH_PATTERNS, SENSITIVE_PATH_REGEXES, MAX_DEPTH2, MAX_STRING_BYTES, MAX_JSON_PARSE_BYTES, BATCH_SEPARATOR, IMPERATIVE, SECRET_TARGET, GUARD, SIGNALS, DESTINATION_RE, REUSED_SIGNALS, NEVER_NEGATED, NEGATION_BEFORE, RDR_IN, COPY_VERBS2, LITERAL_VERBS, GIT_PRESCREEN_RE, MAX_PAYLOAD_DEPTH2, MAX_ALIAS_DEPTH, CACHE_MAX, cache, PAYLOAD_SHELLS, CONFIG_SCOPE_FLAGS, CONFIG_VALUE_FLAGS, GLOBAL_VALUE_OPTIONS, GLOBAL_FLAG_OPTIONS, MAX_LOOP_ITEMS, GitWalk, POSITIONAL2, FORCE_PUSH, DESTRUCTIVE, UNREADABLE, PUSH_LONG_VALUE, BRANCH_LONG_VALUE, TAG_LONG_VALUE, CLEAN_LONG_VALUE, HOOKS_BYPASS, NO_VERIFY_SUBS, HOOK_KILL_SWITCHES, COMMIT_LONG_VALUE, CHMOD_OPTION_RE, STAGE_ALL, ADD_LONG_VALUE, CHECK_ID, RULE_NAME, INERT_LINE_RE, CHECK_ID2, INSTRUCTION_NAMES, SETTINGS_RE, HOOK_WORDS_RE, SHELLS, NETCATS, NET_CLIENTS, SENDERS, NETCAT_EXEC_LONG, DECL_DUMPS, PROC_ENVIRON_RE, DEV_NET_RE, SOCAT_PROGRAM_RE, SOCAT_NET_RE, PRESCREEN_RE, MAX_PAYLOAD_DEPTH3, CACHE_MAX2, cache2, dupInOp, REVERSE_SHELL_DESCRIPTION, ENV_EXFIL_DESCRIPTION, DYNAMIC_WORD, MULTICALL, SHELL_VALUE_OPTIONS, INTERPRETERS, OutboundWalk, NPM_INSTALL_VERBS, NPM_EXEC_VERBS, PNPM_INSTALL_VERBS, YARN_INSTALL_VERBS, BUN_INSTALL_VERBS, DLX_VERBS, NON_REGISTRY_RE, NPM_NAME_RE, EXACT_SEMVER_RE, NPM_VALUE_FLAGS, PNPM_VALUE_FLAGS, YARN_VALUE_FLAGS, BUN_VALUE_FLAGS, PIP_VALUE_FLAGS, UV_VALUE_FLAGS, POETRY_VALUE_FLAGS, PIPENV_VALUE_FLAGS, PIPX_VALUE_FLAGS, PY_SPEC_RE, PY_EXACT_RE, EXACT_VERSION_RE, GEM_NAME_RE, GEM_VALUE_FLAGS, BUNDLE_VALUE_FLAGS, CRATE_NAME_RE, CARGO_ADD_VALUE_FLAGS, CARGO_INSTALL_VALUE_FLAGS, GO_VALUE_FLAGS, GO_PATH_RE, NUGET_NAME_RE, DOTNET_ADD_VALUE_FLAGS, DOTNET_TOOL_VALUE_FLAGS, NUGET_VALUE_FLAGS, MAVEN_COORD_RE, COMPOSER_NAME_RE, COMPOSER_VALUE_FLAGS, EDITOR_HEADS, EXTENSION_ID_RE, MANAGER_HEADS, SHELLS2, MAX_NESTING, SHELL_VALUE_FLAGS, NPM_FAMILY, PIP_FAMILY, NPM_FETCH_VERBS, PIP_FETCH_VERBS, NPM_FLAGS, PIP_FLAGS, NPM_VARS, PIP_VARS, PRESCREEN_RE2, PIP_ATTACHED_RE, MAX_PAYLOAD_DEPTH4, PUBLIC_REGISTRY_HOSTS, TUNING_FIELDS, MAP_GOVERNED, KNOB_GOVERNED, CONFIGURABLE_CHECK_IDS, DEFAULT_EGRESS_ALLOWLIST, PRIVATE_HOST_SUFFIXES, SOURCE_COMMANDS, SINK_COMMANDS, OBFUSCATORS, SENSITIVE_PATTERNS, FLAGS_WITH_VALUES, DESTINATION_ARGS, MCP_DESTINATION_KEYS, ARGUMENT_SCAN_LIMITS, RUN_CHAR, runChar, VERDICT_RANK, SQL_DML_KEYWORDS, MAX_DESTINATIONS, MAX_SCAN_CHARS, EMAIL_RE, URL_RE, IBAN_RE, RECIPIENT_KEYS, DESTRUCTIVE_VERB_RE, PII_EMAIL_RE, PII_SSN_RE, PII_PHONE_RE, PII_CC16_RE, PII_CC15_RE, PII_CC14_RE, PII_CC13_RE, PII_CC19_RE, CARD_PATTERNS, PII_ROUTING_RE, ROUTING_LABEL_RE, ROUTING_LABEL_WINDOW, NATIONAL_ID_SHAPES, NATIONAL_ID_LABEL_RE, NATIONAL_ID_LABEL_CS_RE, idLabelIn, NATIONAL_ID_LABEL_WINDOW, NATIONAL_ID_GUARD_RE, PII_IBAN_RE, REALTIME_PII_PATTERNS, MAX_PII_SCAN_BYTES, IBAN_DESTINATION_KEYS, WHOLE_IBAN_RE, JSON_ESCAPE_RE, JSON_ESCAPES, MASKED_KINDS, ENTRY_RE, IBAN_TEXT_RE, EMAIL_TEXT_RE, ACCOUNT_KEY_RE, ACCOUNT_VALUE_RE, MAX_MASK_DEPTH, EMPTY, CURL_SEND_FLAGS, WGET_SEND_FLAGS, IWR_SEND_FLAGS, WRITE_METHODS, GH_READ, GH_WRITE, GH_HOSTNAME_FLAGS, GH_REPO_VALUE_FLAGS, GH_API_VALUE_FLAGS, GIT_FETCH, PUBLISH, SHELLS3, OWN_HEADS, MAX_DEPTH3, CWD_CHANGERS, TERMINAL_ESCAPE_RE, LOOP_MAX_RECORDS, CANARY_MIN_LENGTH, MAX_TEXT, MAX_DEPTH4, MAX_JSON_PARSE, URL_DEPTH, B64_DEPTH, MIN_SEGMENT, SEPARATORS, stripSeparators, looksText, CANARY_DECODERS, VIEWS, LONG_OUTPUT_THRESHOLD_BYTES;
8998
9029
  var init_dist = __esm({
8999
9030
  "packages/policy-engine/dist/index.mjs"() {
9000
9031
  "use strict";
9032
+ init_cjs_shims();
9033
+ import_url = require("url");
9001
9034
  import_picomatch = __toESM(require("picomatch"), 1);
9002
9035
  import_safe_regex2 = __toESM(require("safe-regex2"), 1);
9003
9036
  import_picomatch2 = __toESM(require("picomatch"), 1);
9004
- import_mvdan_sh = __toESM(require("mvdan-sh"), 1);
9005
- import_mvdan_sh2 = __toESM(require("mvdan-sh"), 1);
9006
- import_mvdan_sh3 = __toESM(require("mvdan-sh"), 1);
9037
+ import_module = require("module");
9007
9038
  import_safe_regex22 = __toESM(require("safe-regex2"), 1);
9008
9039
  import_crypto2 = require("crypto");
9009
9040
  import_crypto3 = require("crypto");
9010
9041
  import_crypto4 = require("crypto");
9011
9042
  import_crypto5 = __toESM(require("crypto"), 1);
9043
+ getFilename = () => (0, import_url.fileURLToPath)(importMetaUrl);
9044
+ __filename2 = /* @__PURE__ */ getFilename();
9012
9045
  MAX_REGEX_LENGTH = 256;
9013
9046
  REGEX_CACHE_MAX = 500;
9014
9047
  regexCache = /* @__PURE__ */ new Map();
@@ -11653,7 +11686,7 @@ var init_dist = __esm({
11653
11686
  return s.untrustedContent.afterExposure === "log-only" ? "log" : "review";
11654
11687
  }
11655
11688
  };
11656
- ({ syntax } = import_mvdan_sh2.default);
11689
+ syntax = null;
11657
11690
  KINDS = {
11658
11691
  File: { nodes: ["Stmts"] },
11659
11692
  Stmt: { nodes: ["Cmd", "Redirs"], scalars: ["Negated", "Background", "Coprocess"] },
@@ -11993,8 +12026,7 @@ var init_dist = __esm({
11993
12026
  php: PHP
11994
12027
  };
11995
12028
  STRING_LITERAL = /(['"`])((?:\\.|(?!\1)[^\\\n]){1,4096})\1/g;
11996
- ({ syntax: syntax2 } = import_mvdan_sh.default);
11997
- sharedParser = syntax2.NewParser();
12029
+ sharedParser = lazy(() => getSyntax().NewParser());
11998
12030
  MESSAGE_FLAGS = /* @__PURE__ */ new Set([
11999
12031
  "-m",
12000
12032
  "--message",
@@ -12959,9 +12991,14 @@ var init_dist = __esm({
12959
12991
  path: ""
12960
12992
  };
12961
12993
  ASSIGNMENT_HEADS = /* @__PURE__ */ new Set(["export", "declare", "local", "readonly", "typeset"]);
12962
- AND_OP = probeBinOp("a && b");
12963
- OR_OP = probeBinOp("a || b");
12964
- AND_OR_OPS = new Set([AND_OP, OR_OP].filter((o) => o !== null));
12994
+ andOrOps = lazy(() => {
12995
+ const and = probeBinOp("a && b");
12996
+ const or = probeBinOp("a || b");
12997
+ return {
12998
+ AND_OP: and,
12999
+ AND_OR_OPS: new Set([and, or].filter((o) => o !== null))
13000
+ };
13001
+ });
12965
13002
  MAX_CALL_DEPTH = 4;
12966
13003
  MAX_CALL_WALKS = 256;
12967
13004
  callDepth = 0;
@@ -12969,14 +13006,13 @@ var init_dist = __esm({
12969
13006
  FS_OP_CACHE_MAX = 5e3;
12970
13007
  fsOpCache = /* @__PURE__ */ new Map();
12971
13008
  stripDotSlash = (p) => p.replace(/^\.\//, "");
12972
- REDIR_TRUNCATE_OPS = /* @__PURE__ */ new Set([deriveRedirOp(">_f")]);
12973
- REDIR_FILE_IN_OPS = new Set(
12974
- [deriveRedirOp("cat < f"), deriveRedirOp("cat <> f")].filter((op) => op >= 0)
13009
+ REDIR_TRUNCATE_OPS = lazy(() => /* @__PURE__ */ new Set([deriveRedirOp(">_f")]));
13010
+ REDIR_FILE_IN_OPS = lazy(
13011
+ () => new Set([deriveRedirOp("cat < f"), deriveRedirOp("cat <> f")].filter((op) => op >= 0))
13012
+ );
13013
+ REDIR_HEREDOC_OPS = lazy(
13014
+ () => /* @__PURE__ */ new Set([deriveRedirOp("cat <<X\nX"), deriveRedirOp("cat <<-X\nX")])
12975
13015
  );
12976
- REDIR_HEREDOC_OPS = /* @__PURE__ */ new Set([
12977
- deriveRedirOp("cat <<X\nX"),
12978
- deriveRedirOp("cat <<-X\nX")
12979
- ]);
12980
13016
  FIND_OPTIONS = /* @__PURE__ */ new Set(["-H", "-L", "-P"]);
12981
13017
  COPY_RULE_OF = {
12982
13018
  "shield:project-jail:block-read-ssh": "shield:project-jail:review-copy-ssh",
@@ -13013,7 +13049,6 @@ var init_dist = __esm({
13013
13049
  ARGV_FIELDS = ["args", "argv"];
13014
13050
  BARE_WORD = /^[A-Za-z0-9_./+:@%,-]+$/;
13015
13051
  MAX_ARGV_CHARACTERS = 262144;
13016
- ({ syntax: syntax3 } = import_mvdan_sh3.default);
13017
13052
  MAX_ALTERNATIVES = 64;
13018
13053
  MAX_CALL_DEPTH2 = 4;
13019
13054
  MAX_CALL_WALKS2 = 256;
@@ -13091,31 +13126,35 @@ var init_dist = __esm({
13091
13126
  base = (s) => (s ?? "").replace(/\/+$/, "").split("/").pop() ?? "";
13092
13127
  quoteGlob = (s) => s.replace(/[\\*?\[\]{}()!+@]/g, "\\$&");
13093
13128
  asWord = (p) => ({ value: p.value, ...p.glob ? { pattern: p.pattern } : {} });
13094
- WRITES = new Set([">x", ">>x", ">|x", "&>x", "&>>x", "<>x"].map(opOf));
13095
- APPENDS = new Set([">>x", "&>>x"].map(opOf));
13096
- READS = new Set(["<x", "<>x"].map(opOf));
13097
- DUP_OUT = opOf(">&x");
13098
- HERE_STRING = opOf("<<<x");
13099
- AND = parseShared("a && b").Stmts[0].Cmd.Op;
13100
- OR = parseShared("a || b").Stmts[0].Cmd.Op;
13101
- DEFAULT_OPS = new Set(
13102
- ["${x:-y}", "${x-y}", "${x:=y}", "${x=y}"].map(
13103
- (s) => parseShared(`echo ${s}`).Stmts[0].Cmd.Args[1].Parts[0].Exp.Op
13129
+ ops = lazy(() => ({
13130
+ WRITES: new Set([">x", ">>x", ">|x", "&>x", "&>>x", "<>x"].map(opOf)),
13131
+ APPENDS: new Set([">>x", "&>>x"].map(opOf)),
13132
+ READS: new Set(["<x", "<>x"].map(opOf)),
13133
+ /** `>&word` with a non-numeric word is `&>word` in bash. */
13134
+ DUP_OUT: opOf(">&x"),
13135
+ HERE_STRING: opOf("<<<x"),
13136
+ AND: parseShared("a && b").Stmts[0].Cmd.Op,
13137
+ OR: parseShared("a || b").Stmts[0].Cmd.Op,
13138
+ /** `${x:-d}` `${x-d}` `${x:=d}` `${x=d}`: the default is the value when x is unset. */
13139
+ DEFAULT_OPS: new Set(
13140
+ ["${x:-y}", "${x-y}", "${x:=y}", "${x=y}"].map(
13141
+ (s) => parseShared(`echo ${s}`).Stmts[0].Cmd.Args[1].Parts[0].Exp.Op
13142
+ )
13104
13143
  )
13105
- );
13144
+ }));
13106
13145
  exempt = (p) => SYSTEM_DIRS_EXEMPT.some((d) => within(p, d));
13107
13146
  RANK = { allow: 0, review: 1, block: 2 };
13108
- SEQUENCE_OPS = (() => {
13109
- const ops = /* @__PURE__ */ new Set();
13147
+ SEQUENCE_OPS = lazy(() => {
13148
+ const ops2 = /* @__PURE__ */ new Set();
13110
13149
  for (const text of ["x && y", "x || y"]) {
13111
13150
  try {
13112
13151
  const f = parseShared(text);
13113
- if (typeof f !== "symbol") ops.add(f.Stmts[0].Cmd.Op);
13152
+ if (typeof f !== "symbol") ops2.add(f.Stmts[0].Cmd.Op);
13114
13153
  } catch {
13115
13154
  }
13116
13155
  }
13117
- return ops;
13118
- })();
13156
+ return ops2;
13157
+ });
13119
13158
  BIP39_ENGLISH = `abandon
13120
13159
  ability
13121
13160
  able
@@ -16265,13 +16304,13 @@ zoo`.split("\n");
16265
16304
  );
16266
16305
  NEVER_NEGATED = /* @__PURE__ */ new Set([SIGNALS[1].any[0]]);
16267
16306
  NEGATION_BEFORE = /\b(never|do not|don'?t|must not|mustn'?t|should not|shouldn'?t|not allowed to|forbidden to|avoid|without|no|not)\b[^.!?;:\n]{0,24}$/i;
16268
- RDR_IN = (() => {
16307
+ RDR_IN = lazy(() => {
16269
16308
  try {
16270
16309
  return parseShared("x <y").Stmts[0].Redirs[0].Op;
16271
16310
  } catch {
16272
16311
  return null;
16273
16312
  }
16274
- })();
16313
+ });
16275
16314
  COPY_VERBS2 = /* @__PURE__ */ new Set([
16276
16315
  "cp",
16277
16316
  "mv",
@@ -18281,6 +18320,7 @@ var import_fs, import_path, import_os, import_crypto6, LOCAL_AUDIT_LOG, HOOK_DEB
18281
18320
  var init_audit = __esm({
18282
18321
  "src/audit/index.ts"() {
18283
18322
  "use strict";
18323
+ init_cjs_shims();
18284
18324
  import_fs = __toESM(require("fs"));
18285
18325
  import_path = __toESM(require("path"));
18286
18326
  import_os = __toESM(require("os"));
@@ -18300,16 +18340,20 @@ __export(src_exports, {
18300
18340
  protect: () => protect
18301
18341
  });
18302
18342
  module.exports = __toCommonJS(src_exports);
18343
+ init_cjs_shims();
18303
18344
 
18304
18345
  // src/core.ts
18346
+ init_cjs_shims();
18305
18347
  init_audit();
18306
18348
 
18307
18349
  // src/config/index.ts
18350
+ init_cjs_shims();
18308
18351
  var import_fs4 = __toESM(require("fs"));
18309
18352
  var import_path4 = __toESM(require("path"));
18310
18353
  var import_os4 = __toESM(require("os"));
18311
18354
 
18312
18355
  // src/config-schema.ts
18356
+ init_cjs_shims();
18313
18357
  var import_zod = require("zod");
18314
18358
  var noNewlines = import_zod.z.string().refine((s) => !s.includes("\n") && !s.includes("\r"), {
18315
18359
  message: "Value must not contain literal newline characters (use \\n instead)"
@@ -18581,12 +18625,14 @@ function sanitizeConfig(raw) {
18581
18625
  }
18582
18626
 
18583
18627
  // src/shields.ts
18628
+ init_cjs_shims();
18584
18629
  var import_fs2 = __toESM(require("fs"));
18585
18630
  var import_path2 = __toESM(require("path"));
18586
18631
  var import_os2 = __toESM(require("os"));
18587
18632
  init_dist();
18588
18633
 
18589
18634
  // src/shields/build.ts
18635
+ init_cjs_shims();
18590
18636
  init_dist();
18591
18637
  function escapeRegex(s) {
18592
18638
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
@@ -18745,6 +18791,7 @@ function readShieldOverrides() {
18745
18791
  }
18746
18792
 
18747
18793
  // src/config/managed.ts
18794
+ init_cjs_shims();
18748
18795
  var MODE_ORDER = ["observe", "audit", "soft", "standard", "strict", "block-all"];
18749
18796
  var EGRESS_MODE_ORDER = ["off", "review", "block"];
18750
18797
  function rankIn(order, value) {
@@ -18867,6 +18914,7 @@ function applyManagedApprovers(local, managed) {
18867
18914
  }
18868
18915
 
18869
18916
  // src/auth/trusted-hosts.ts
18917
+ init_cjs_shims();
18870
18918
  var import_fs3 = __toESM(require("fs"));
18871
18919
  var import_path3 = __toESM(require("path"));
18872
18920
  var import_os3 = __toESM(require("os"));
@@ -18927,6 +18975,7 @@ init_dist();
18927
18975
  init_dist();
18928
18976
 
18929
18977
  // src/config/v2.ts
18978
+ init_cjs_shims();
18930
18979
  init_dist();
18931
18980
  init_dist();
18932
18981
  var CONFIG_FILE_VERSION_2 = "2";
@@ -19053,6 +19102,7 @@ init_dist();
19053
19102
  init_dist();
19054
19103
 
19055
19104
  // src/auth/api-url.ts
19105
+ init_cjs_shims();
19056
19106
  var DEFAULT_API_URL = "https://api.node9.ai/api/v1/intercept";
19057
19107
  var LOOPBACK = /* @__PURE__ */ new Set(["127.0.0.1", "localhost", "::1", "[::1]", "0.0.0.0"]);
19058
19108
  var HOST_ALLOW_ENV = "NODE9_API_HOST_ALLOW";
@@ -20339,13 +20389,16 @@ function applyUntrustedContent(cur, raw, replaceLists = false, isProject = false
20339
20389
  }
20340
20390
 
20341
20391
  // src/utils/regex.ts
20392
+ init_cjs_shims();
20342
20393
  init_dist();
20343
20394
 
20344
20395
  // src/policy/index.ts
20396
+ init_cjs_shims();
20345
20397
  init_dist();
20346
20398
  var import_fs13 = __toESM(require("fs"));
20347
20399
 
20348
20400
  // src/utils/read-capped.ts
20401
+ init_cjs_shims();
20349
20402
  var import_fs5 = __toESM(require("fs"));
20350
20403
  function readCapped(file2, maxBytes, openFlags = "r") {
20351
20404
  if (maxBytes < 0) return null;
@@ -20388,6 +20441,7 @@ function readCappedText(file2, maxBytes, openFlags = "r") {
20388
20441
  var import_path13 = __toESM(require("path"));
20389
20442
 
20390
20443
  // src/dlp.ts
20444
+ init_cjs_shims();
20391
20445
  var import_fs6 = __toESM(require("fs"));
20392
20446
  var import_path5 = __toESM(require("path"));
20393
20447
  init_dist();
@@ -20410,6 +20464,7 @@ function scanFilePath(filePath, cwd = process.cwd(), options = {}) {
20410
20464
  }
20411
20465
 
20412
20466
  // src/policy/gate-order.ts
20467
+ init_cjs_shims();
20413
20468
  var PRE_ENGINE_GATES = ["file", "dlp", "pii", "package"];
20414
20469
  var GATE_LABELS = {
20415
20470
  dlpBlock: "\u{1F6A8} Node9 DLP (Secret Detected)",
@@ -20621,6 +20676,7 @@ function combineWithEngine(gates, engine, opts = { panicMode: false }) {
20621
20676
  }
20622
20677
 
20623
20678
  // src/policy/file-access.ts
20679
+ init_cjs_shims();
20624
20680
  var import_fs7 = __toESM(require("fs"));
20625
20681
  var import_os5 = __toESM(require("os"));
20626
20682
  var import_path6 = __toESM(require("path"));
@@ -20738,11 +20794,13 @@ function prepareFileAccesses(tool, args, cwd = process.cwd(), inspection = {}, h
20738
20794
  }
20739
20795
 
20740
20796
  // src/supply-chain/check.ts
20797
+ init_cjs_shims();
20741
20798
  var import_picomatch3 = __toESM(require("picomatch"));
20742
20799
  var import_path10 = __toESM(require("path"));
20743
20800
  init_dist();
20744
20801
 
20745
20802
  // src/supply-chain/osv-index.ts
20803
+ init_cjs_shims();
20746
20804
  var import_fs9 = __toESM(require("fs"));
20747
20805
  var import_os6 = __toESM(require("os"));
20748
20806
  var import_path8 = __toESM(require("path"));
@@ -20750,6 +20808,7 @@ var import_crypto8 = require("crypto");
20750
20808
  init_dist();
20751
20809
 
20752
20810
  // src/utils/atomic-write.ts
20811
+ init_cjs_shims();
20753
20812
  var import_fs8 = __toESM(require("fs"));
20754
20813
  var import_path7 = __toESM(require("path"));
20755
20814
  var import_crypto7 = require("crypto");
@@ -20859,7 +20918,11 @@ function entryCovers(entry, version) {
20859
20918
  return (entry.ranges ?? []).some((r) => inRange(version, r));
20860
20919
  }
20861
20920
 
20921
+ // src/supply-chain/osv-online.ts
20922
+ init_cjs_shims();
20923
+
20862
20924
  // src/supply-chain/net.ts
20925
+ init_cjs_shims();
20863
20926
  var DEFAULTS = {
20864
20927
  osvBucket: "https://osv-vulnerabilities.storage.googleapis.com",
20865
20928
  osvApi: "https://api.osv.dev",
@@ -20941,9 +21004,11 @@ async function queryOsvMalicious(queries) {
20941
21004
  }
20942
21005
 
20943
21006
  // src/supply-chain/registry.ts
21007
+ init_cjs_shims();
20944
21008
  var import_semver2 = require("semver");
20945
21009
 
20946
21010
  // src/supply-chain/provenance.ts
21011
+ init_cjs_shims();
20947
21012
  var import_semver = require("semver");
20948
21013
  var TIMEOUT_MS2 = 1500;
20949
21014
  var MAX_BYTES = 256 * 1024;
@@ -21162,6 +21227,7 @@ async function registryInfo(eco, name, version, freshWindowMs, raw) {
21162
21227
  }
21163
21228
 
21164
21229
  // src/supply-chain/local-resolve.ts
21230
+ init_cjs_shims();
21165
21231
  var import_fs10 = __toESM(require("fs"));
21166
21232
  var import_path9 = __toESM(require("path"));
21167
21233
  var MAX_LEVELS = 32;
@@ -21448,6 +21514,7 @@ async function runPackageCheck(toolName, args, cfg, cwd, opts = {}) {
21448
21514
  }
21449
21515
 
21450
21516
  // src/supply-chain/registries.ts
21517
+ init_cjs_shims();
21451
21518
  var import_os7 = __toESM(require("os"));
21452
21519
  var import_path11 = __toESM(require("path"));
21453
21520
  var import_fs11 = __toESM(require("fs"));
@@ -21585,6 +21652,7 @@ function configuredRegistryHosts(cwd, env = process.env, home = import_os7.defau
21585
21652
  }
21586
21653
 
21587
21654
  // src/utils/provenance.ts
21655
+ init_cjs_shims();
21588
21656
  var import_fs12 = __toESM(require("fs"));
21589
21657
  var import_path12 = __toESM(require("path"));
21590
21658
  var import_os8 = __toESM(require("os"));
@@ -21734,6 +21802,7 @@ function isIgnoredTool2(toolName) {
21734
21802
  }
21735
21803
 
21736
21804
  // src/auth/state.ts
21805
+ init_cjs_shims();
21737
21806
  var import_fs14 = __toESM(require("fs"));
21738
21807
  var import_path14 = __toESM(require("path"));
21739
21808
  var import_os9 = __toESM(require("os"));
@@ -21827,6 +21896,7 @@ function getPersistentDecision(toolName) {
21827
21896
  }
21828
21897
 
21829
21898
  // src/auth/daemon.ts
21899
+ init_cjs_shims();
21830
21900
  var import_fs15 = __toESM(require("fs"));
21831
21901
  var import_http = __toESM(require("http"));
21832
21902
  var import_net4 = __toESM(require("net"));
@@ -21835,6 +21905,7 @@ var import_os10 = __toESM(require("os"));
21835
21905
  init_forecast_context();
21836
21906
 
21837
21907
  // src/auth/decision-record.ts
21908
+ init_cjs_shims();
21838
21909
  var CHANNELS = ["terminal", "monitor", "native", "cloud"];
21839
21910
  var PERSON_CHANNELS = /* @__PURE__ */ new Set([
21840
21911
  "terminal",
@@ -21983,19 +22054,30 @@ function recordFromLegacyWait(body, now = Date.now()) {
21983
22054
 
21984
22055
  // src/auth/daemon.ts
21985
22056
  var ACTIVITY_SOCKET_PATH = process.platform === "win32" ? "\\\\.\\pipe\\node9-activity" : import_path15.default.join(import_os10.default.tmpdir(), "node9-activity.sock");
21986
- function notifyActivitySocket(data) {
22057
+ var ACTIVITY_SOCKET_TIMEOUT_MS = 500;
22058
+ function notifyActivitySocket(data, opts = {}) {
21987
22059
  if (forecastRun()) return Promise.resolve(false);
21988
22060
  return new Promise((resolve) => {
22061
+ let settled = false;
22062
+ let sock = null;
22063
+ const finish = (ok) => {
22064
+ if (settled) return;
22065
+ settled = true;
22066
+ clearTimeout(timer);
22067
+ if (!ok) sock?.destroy();
22068
+ resolve(ok);
22069
+ };
22070
+ const timer = setTimeout(() => finish(false), opts.timeoutMs ?? ACTIVITY_SOCKET_TIMEOUT_MS);
21989
22071
  try {
21990
22072
  const payload = JSON.stringify(data);
21991
- const sock = import_net4.default.createConnection(ACTIVITY_SOCKET_PATH);
22073
+ sock = import_net4.default.createConnection(opts.socketPath ?? ACTIVITY_SOCKET_PATH);
21992
22074
  sock.on("connect", () => {
21993
- sock.on("close", () => resolve(true));
22075
+ sock.on("close", () => finish(true));
21994
22076
  sock.end(payload);
21995
22077
  });
21996
- sock.on("error", () => resolve(false));
22078
+ sock.on("error", () => finish(false));
21997
22079
  } catch {
21998
- resolve(false);
22080
+ finish(false);
21999
22081
  }
22000
22082
  });
22001
22083
  }
@@ -22396,14 +22478,17 @@ async function resolveViaDaemon(id, decision, internalToken, source, record) {
22396
22478
  }
22397
22479
 
22398
22480
  // src/auth/orchestrator.ts
22481
+ init_cjs_shims();
22399
22482
  var import_crypto10 = require("crypto");
22400
22483
 
22401
22484
  // src/apps/state.ts
22485
+ init_cjs_shims();
22402
22486
  var import_fs17 = __toESM(require("fs"));
22403
22487
  var import_os12 = __toESM(require("os"));
22404
22488
  var import_path17 = __toESM(require("path"));
22405
22489
 
22406
22490
  // src/apps/catalog.ts
22491
+ init_cjs_shims();
22407
22492
  var APP_CATALOG = [
22408
22493
  {
22409
22494
  slug: "redis",
@@ -22533,9 +22618,15 @@ var APP_BY_SLUG = new Map(
22533
22618
  init_audit();
22534
22619
 
22535
22620
  // src/daemon/mcp-tools.ts
22621
+ init_cjs_shims();
22536
22622
  var import_fs16 = __toESM(require("fs"));
22537
22623
  var import_path16 = __toESM(require("path"));
22538
22624
  var import_os11 = __toESM(require("os"));
22625
+
22626
+ // src/mcp-cmd.ts
22627
+ init_cjs_shims();
22628
+
22629
+ // src/daemon/mcp-tools.ts
22539
22630
  function getMcpToolsFile() {
22540
22631
  return import_path16.default.join(import_os11.default.homedir(), ".node9", "mcp-tools.json");
22541
22632
  }
@@ -22659,10 +22750,12 @@ var import_os21 = __toESM(require("os"));
22659
22750
  var import_path30 = __toESM(require("path"));
22660
22751
 
22661
22752
  // src/ui/native.ts
22753
+ init_cjs_shims();
22662
22754
  var import_child_process = require("child_process");
22663
22755
  var import_path19 = __toESM(require("path"));
22664
22756
 
22665
22757
  // src/context-sniper.ts
22758
+ init_cjs_shims();
22666
22759
  var import_path18 = __toESM(require("path"));
22667
22760
  function smartTruncate(str, maxLen = 500) {
22668
22761
  if (str.length <= maxLen) return str;
@@ -22765,6 +22858,7 @@ function computeRiskMetadata(args, tier, blockedByLabel, matchedField, matchedWo
22765
22858
  }
22766
22859
 
22767
22860
  // src/utils/safe-text.ts
22861
+ init_cjs_shims();
22768
22862
  init_dist();
22769
22863
 
22770
22864
  // src/ui/native.ts
@@ -23002,12 +23096,14 @@ end run`;
23002
23096
  }
23003
23097
 
23004
23098
  // src/canary/registry.ts
23099
+ init_cjs_shims();
23005
23100
  var import_fs19 = __toESM(require("fs"));
23006
23101
  var import_os14 = __toESM(require("os"));
23007
23102
  var import_path21 = __toESM(require("path"));
23008
23103
  init_dist();
23009
23104
 
23010
23105
  // src/shields/jail.ts
23106
+ init_cjs_shims();
23011
23107
  var import_fs18 = __toESM(require("fs"));
23012
23108
  var import_os13 = __toESM(require("os"));
23013
23109
  var import_path20 = __toESM(require("path"));
@@ -23085,6 +23181,7 @@ function canaryValues() {
23085
23181
  init_dist();
23086
23182
 
23087
23183
  // src/auth/session-script.ts
23184
+ init_cjs_shims();
23088
23185
  var import_fs20 = __toESM(require("fs"));
23089
23186
  var import_os15 = __toESM(require("os"));
23090
23187
  var import_path22 = __toESM(require("path"));
@@ -23180,10 +23277,12 @@ init_audit();
23180
23277
  init_dist();
23181
23278
 
23182
23279
  // src/exposure/known-hosts.ts
23280
+ init_cjs_shims();
23183
23281
  var import_fs22 = __toESM(require("fs"));
23184
23282
  var import_path24 = __toESM(require("path"));
23185
23283
 
23186
23284
  // src/utils/git-remotes.ts
23285
+ init_cjs_shims();
23187
23286
  var import_fs21 = __toESM(require("fs"));
23188
23287
  var import_path23 = __toESM(require("path"));
23189
23288
  init_dist();
@@ -23327,6 +23426,7 @@ function knownProjectHosts(dir2) {
23327
23426
  }
23328
23427
 
23329
23428
  // src/exposure/writes.ts
23429
+ init_cjs_shims();
23330
23430
  var import_fs23 = __toESM(require("fs"));
23331
23431
  var import_os16 = __toESM(require("os"));
23332
23432
  var import_path25 = __toESM(require("path"));
@@ -23401,12 +23501,14 @@ function judgeWritesAfterExposure(opts) {
23401
23501
  }
23402
23502
 
23403
23503
  // src/exposure/marker.ts
23504
+ init_cjs_shims();
23404
23505
  var import_crypto9 = __toESM(require("crypto"));
23405
23506
  var import_fs24 = __toESM(require("fs"));
23406
23507
  var import_os17 = __toESM(require("os"));
23407
23508
  var import_path26 = __toESM(require("path"));
23408
23509
 
23409
23510
  // src/daemon/exposure-store.ts
23511
+ init_cjs_shims();
23410
23512
  var SESSION_EXPOSURE_TTL_MS = 4 * 60 * 60 * 1e3;
23411
23513
 
23412
23514
  // src/exposure/marker.ts
@@ -23431,6 +23533,7 @@ function maybeSessionExposed(sessionId) {
23431
23533
  }
23432
23534
 
23433
23535
  // src/exposure/roles.ts
23536
+ init_cjs_shims();
23434
23537
  var import_fs25 = __toESM(require("fs"));
23435
23538
  var EXPOSURE_LABEL = "\u{1F6E1}\uFE0F Node9 Exposure";
23436
23539
  var AGENT_INTERNAL_PREFIXES = ["ccd_", "visualize"];
@@ -23525,6 +23628,7 @@ function sourceWord(toolName) {
23525
23628
  }
23526
23629
 
23527
23630
  // src/auth/trusted-recipients.ts
23631
+ init_cjs_shims();
23528
23632
  var import_fs26 = __toESM(require("fs"));
23529
23633
  var import_path27 = __toESM(require("path"));
23530
23634
  var import_os18 = __toESM(require("os"));
@@ -23578,6 +23682,7 @@ function isTrustedRecipient(value) {
23578
23682
  init_forecast_context();
23579
23683
 
23580
23684
  // src/auth/cloud.ts
23685
+ init_cjs_shims();
23581
23686
  var import_fs27 = __toESM(require("fs"));
23582
23687
  var import_os19 = __toESM(require("os"));
23583
23688
  var import_path28 = __toESM(require("path"));
@@ -23750,6 +23855,7 @@ async function resolveNode9SaaS(requestId, creds, approved, decidedBy) {
23750
23855
  }
23751
23856
 
23752
23857
  // src/loop-detector.ts
23858
+ init_cjs_shims();
23753
23859
  var import_fs28 = __toESM(require("fs"));
23754
23860
  var import_path29 = __toESM(require("path"));
23755
23861
  var import_os20 = __toESM(require("os"));
@@ -23801,6 +23907,7 @@ function recordAndCheck(tool, args, threshold = 3, windowMs = 12e4) {
23801
23907
  }
23802
23908
 
23803
23909
  // src/policy/negotiation.ts
23910
+ init_cjs_shims();
23804
23911
  var BLOCKED_BY = " is blocked by ";
23805
23912
  var DASH_BLOCKED_BY = " \u2014 blocked by ";
23806
23913
  var SHIELD = " shield";
@@ -23819,6 +23926,7 @@ function asApprovalRequest(description) {
23819
23926
  }
23820
23927
 
23821
23928
  // src/auth/card-result.ts
23929
+ init_cjs_shims();
23822
23930
  var CHANNEL_NAMES = {
23823
23931
  terminal: "Terminal (node9 tail)",
23824
23932
  monitor: "node9 monitor",