@mnemonik/cli 7.154.3 → 7.156.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/auth/credentials.js +35 -22
  2. package/dist/auth/index.js +35 -22
  3. package/dist/auth/installSession.js +21 -10
  4. package/dist/auth/status.js +21 -10
  5. package/dist/authorizationWords.js +21 -10
  6. package/dist/diagnostics.js +35 -22
  7. package/dist/digests.json +47 -43
  8. package/dist/hooksLog.js +3 -1
  9. package/dist/identity/migrate.js +35 -22
  10. package/dist/install/hosts.js +21 -10
  11. package/dist/install/journal.js +35 -22
  12. package/dist/install/journey.d.ts.map +1 -1
  13. package/dist/install/journey.js +42 -22
  14. package/dist/install/journey.js.map +1 -1
  15. package/dist/install/ownership.js +35 -22
  16. package/dist/install/transaction.js +35 -22
  17. package/dist/install/ui.js +35 -22
  18. package/dist/installSession.js +21 -10
  19. package/dist/installation.js +35 -22
  20. package/dist/launcher.js +35 -22
  21. package/dist/preflight.js +23 -10
  22. package/dist/project/eligibility.js +35 -22
  23. package/dist/project/records.js +35 -22
  24. package/dist/project.js +35 -22
  25. package/dist/router.js +35 -22
  26. package/dist/runtime/releaseSource.js +35 -22
  27. package/dist/runtime/selfUpdate.js +35 -22
  28. package/dist/runtime/signers.js +97 -1
  29. package/dist/runtime/store.js +3 -1
  30. package/dist/runtime/updateCheck.js +35 -22
  31. package/dist/sbom.json +21 -21
  32. package/dist/scanner/control.js +35 -22
  33. package/dist/scanner/data.js +21 -10
  34. package/dist/scanner/discover.js +23 -10
  35. package/dist/scanner/enable.d.ts +5 -0
  36. package/dist/scanner/enable.d.ts.map +1 -1
  37. package/dist/scanner/enable.js +52 -22
  38. package/dist/scanner/enable.js.map +1 -1
  39. package/dist/scanner/estimate.d.ts +41 -0
  40. package/dist/scanner/estimate.d.ts.map +1 -0
  41. package/dist/scanner/estimate.js +2461 -0
  42. package/dist/scanner/estimate.js.map +1 -0
  43. package/dist/scanner/picker.js +23 -10
  44. package/dist/scanner/service.js +35 -22
  45. package/dist/scanner/update.js +35 -22
  46. package/dist/scanner-release.json +24 -24
  47. package/dist/status.js +35 -22
  48. package/dist/vendor/local-setup.js +35 -22
  49. package/package.json +31 -31
@@ -1090,6 +1090,7 @@ var init_secretPatterns = __esm({
1090
1090
  import { randomBytes } from "node:crypto";
1091
1091
  import { closeSync, constants, fstatSync, lstatSync as lstatSync2, mkdirSync as mkdirSync2, openSync, renameSync as renameSync2, statSync, unlinkSync as unlinkSync2, writeSync } from "node:fs";
1092
1092
  import { dirname as dirname3, join as join4 } from "node:path";
1093
+ import { open as openAsync, stat as statAsync } from "node:fs/promises";
1093
1094
  function hookTraceEnabled(env = process.env) {
1094
1095
  const value = env[HOOK_TRACE_ENV]?.trim().toLowerCase();
1095
1096
  return !value || !["off", "0", "false", "no", "disabled"].includes(value);
@@ -1279,7 +1280,88 @@ function startHookTrace(options) {
1279
1280
  trace.open();
1280
1281
  return trace;
1281
1282
  }
1282
- var HOOK_TRACE_MAX_BYTES, HOOK_TRACE_ENV, MAX_FIELDS, MAX_CALLS, MAX_ERROR_CHARS, SAFE_ID, SAFE_NAME, SAFE_ENUM, preparedDirectories, STALE_LOCK_MS, isObject, HookTrace, active;
1283
+ async function summarizeRecentHookCalls(host, options = {}) {
1284
+ const empty = { missed: 0, total: 0 };
1285
+ const now = options.now ?? Date.now();
1286
+ const since = now - (options.windowMs ?? HOOK_MISS_WINDOW_MS);
1287
+ let text;
1288
+ try {
1289
+ const file = hookTraceFile(host, options.stateDir);
1290
+ const size = (await statAsync(file)).size;
1291
+ const handle = await openAsync(file, "r");
1292
+ try {
1293
+ const length = Math.min(size, HOOK_MISS_TAIL_BYTES);
1294
+ const buffer = Buffer.alloc(length);
1295
+ await handle.read(buffer, 0, length, size - length);
1296
+ text = buffer.toString("utf8");
1297
+ } finally {
1298
+ await handle.close();
1299
+ }
1300
+ } catch {
1301
+ return empty;
1302
+ }
1303
+ const started = /* @__PURE__ */ new Map();
1304
+ const ended = /* @__PURE__ */ new Set();
1305
+ let missed = 0;
1306
+ let total = 0;
1307
+ for (const line of text.split("\n")) {
1308
+ let record2;
1309
+ try {
1310
+ record2 = JSON.parse(line);
1311
+ } catch {
1312
+ continue;
1313
+ }
1314
+ const at = Date.parse(record2.ts);
1315
+ if (!(at >= since))
1316
+ continue;
1317
+ if (record2.phase === "start")
1318
+ started.set(record2.id, at);
1319
+ else if (record2.phase === "end") {
1320
+ ended.add(record2.id);
1321
+ const answeredByPath = /* @__PURE__ */ new Map();
1322
+ for (const call of record2.calls ?? []) {
1323
+ const status = call.status ?? 0;
1324
+ const answered = call.error === void 0 && call.pending !== true && status > 0 && status < 500 && status !== 408 && status !== 429;
1325
+ answeredByPath.set(call.path, (answeredByPath.get(call.path) ?? false) || answered);
1326
+ }
1327
+ for (const answered of answeredByPath.values()) {
1328
+ total++;
1329
+ if (!answered)
1330
+ missed++;
1331
+ }
1332
+ }
1333
+ }
1334
+ for (const [id, at] of started) {
1335
+ if (ended.has(id) || now - at < 6e4)
1336
+ continue;
1337
+ total++;
1338
+ missed++;
1339
+ }
1340
+ return { missed, total };
1341
+ }
1342
+ function summaryFor(host, options) {
1343
+ const key = `${host}\0${options.stateDir ?? ""}\0${options.now ?? ""}`;
1344
+ const cached = summaries.get(key);
1345
+ if (cached)
1346
+ return cached;
1347
+ const entry = {
1348
+ read: Promise.resolve({})
1349
+ };
1350
+ entry.read = summarizeRecentHookCalls(host, options).then(({ missed, total }) => {
1351
+ const value = total > 0 ? { [HOOK_MISSES_HEADER]: `${missed}/${total}` } : {};
1352
+ entry.value = value;
1353
+ return value;
1354
+ });
1355
+ summaries.set(key, entry);
1356
+ return entry;
1357
+ }
1358
+ function hookMissesHeaders(host, options = {}) {
1359
+ return summaryFor(host, options).read;
1360
+ }
1361
+ function hookMissesHeadersIfReady(host, options = {}) {
1362
+ return summaryFor(host, options).value ?? {};
1363
+ }
1364
+ var HOOK_TRACE_MAX_BYTES, HOOK_TRACE_ENV, MAX_FIELDS, MAX_CALLS, MAX_ERROR_CHARS, SAFE_ID, SAFE_NAME, SAFE_ENUM, preparedDirectories, STALE_LOCK_MS, isObject, HookTrace, active, HOOK_MISS_WINDOW_MS, HOOK_MISS_TAIL_BYTES, HOOK_MISSES_HEADER, summaries;
1283
1365
  var init_hookTrace = __esm({
1284
1366
  "packages/shared/dist/hookTrace.js"() {
1285
1367
  "use strict";
@@ -1482,6 +1564,10 @@ var init_hookTrace = __esm({
1482
1564
  });
1483
1565
  }
1484
1566
  };
1567
+ HOOK_MISS_WINDOW_MS = 30 * 60 * 1e3;
1568
+ HOOK_MISS_TAIL_BYTES = 64 * 1024;
1569
+ HOOK_MISSES_HEADER = "x-mnemonik-hook-misses";
1570
+ summaries = /* @__PURE__ */ new Map();
1485
1571
  }
1486
1572
  });
1487
1573
 
@@ -2848,6 +2934,8 @@ __export(hookRuntime_exports, {
2848
2934
  GATE_OUTBOX_MAX_AGE_MS: () => GATE_OUTBOX_MAX_AGE_MS,
2849
2935
  GATE_OUTBOX_MAX_EVENTS: () => GATE_OUTBOX_MAX_EVENTS,
2850
2936
  GATE_OUTBOX_STRAY_MS: () => GATE_OUTBOX_STRAY_MS,
2937
+ HOOK_MISSES_HEADER: () => HOOK_MISSES_HEADER,
2938
+ HOOK_MISS_WINDOW_MS: () => HOOK_MISS_WINDOW_MS,
2851
2939
  HOOK_STDIN_MAX_BYTES: () => HOOK_STDIN_MAX_BYTES,
2852
2940
  HOOK_TRACE_ENV: () => HOOK_TRACE_ENV,
2853
2941
  HOOK_TRACE_MAX_BYTES: () => HOOK_TRACE_MAX_BYTES,
@@ -2876,6 +2964,8 @@ __export(hookRuntime_exports, {
2876
2964
  findProjectIdentityDetailed: () => findProjectIdentityDetailed,
2877
2965
  handoffProjectSetup: () => handoffProjectSetup,
2878
2966
  hash: () => hash,
2967
+ hookMissesHeaders: () => hookMissesHeaders,
2968
+ hookMissesHeadersIfReady: () => hookMissesHeadersIfReady,
2879
2969
  hookTraceDirectory: () => hookTraceDirectory,
2880
2970
  hookTraceEnabled: () => hookTraceEnabled,
2881
2971
  hookTraceFile: () => hookTraceFile,
@@ -2897,6 +2987,7 @@ __export(hookRuntime_exports, {
2897
2987
  setupResponse: () => setupResponse,
2898
2988
  startHookTrace: () => startHookTrace,
2899
2989
  summarizeHookOutput: () => summarizeHookOutput,
2990
+ summarizeRecentHookCalls: () => summarizeRecentHookCalls,
2900
2991
  takeGateEvents: () => takeGateEvents,
2901
2992
  validHookSessionId: () => validHookSessionId,
2902
2993
  verifyMinisign: () => verifyMinisign,
@@ -3101,6 +3192,8 @@ export {
3101
3192
  GATE_OUTBOX_MAX_AGE_MS,
3102
3193
  GATE_OUTBOX_MAX_EVENTS,
3103
3194
  GATE_OUTBOX_STRAY_MS,
3195
+ HOOK_MISSES_HEADER,
3196
+ HOOK_MISS_WINDOW_MS,
3104
3197
  HOOK_STDIN_MAX_BYTES,
3105
3198
  HOOK_TRACE_ENV,
3106
3199
  HOOK_TRACE_MAX_BYTES,
@@ -3129,6 +3222,8 @@ export {
3129
3222
  findProjectIdentityDetailed,
3130
3223
  handoffProjectSetup,
3131
3224
  hash,
3225
+ hookMissesHeaders,
3226
+ hookMissesHeadersIfReady,
3132
3227
  hookTraceDirectory,
3133
3228
  hookTraceEnabled,
3134
3229
  hookTraceFile,
@@ -3150,6 +3245,7 @@ export {
3150
3245
  setupResponse,
3151
3246
  startHookTrace,
3152
3247
  summarizeHookOutput,
3248
+ summarizeRecentHookCalls,
3153
3249
  takeGateEvents,
3154
3250
  validHookSessionId,
3155
3251
  verifyMinisign,
@@ -446,7 +446,7 @@ var init_secretPatterns = __esm({
446
446
  });
447
447
 
448
448
  // packages/shared/dist/hookTrace.js
449
- var HOOK_TRACE_MAX_BYTES;
449
+ var HOOK_TRACE_MAX_BYTES, HOOK_MISS_WINDOW_MS, HOOK_MISS_TAIL_BYTES;
450
450
  var init_hookTrace = __esm({
451
451
  "packages/shared/dist/hookTrace.js"() {
452
452
  "use strict";
@@ -454,6 +454,8 @@ var init_hookTrace = __esm({
454
454
  init_runtimeSigners();
455
455
  init_secretPatterns();
456
456
  HOOK_TRACE_MAX_BYTES = 2 * 1024 * 1024;
457
+ HOOK_MISS_WINDOW_MS = 30 * 60 * 1e3;
458
+ HOOK_MISS_TAIL_BYTES = 64 * 1024;
457
459
  }
458
460
  });
459
461
 
@@ -43,6 +43,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  mod
44
44
  ));
45
45
 
46
+ // packages/shared/dist/secretPatterns.js
47
+ var SECRET_LABEL, SECRET_LABEL_RE, LABELED_VALUE_RE;
48
+ var init_secretPatterns = __esm({
49
+ "packages/shared/dist/secretPatterns.js"() {
50
+ "use strict";
51
+ SECRET_LABEL = String.raw`[\w$-]*(?:api[_-]?key|secret|token|password|credential|auth)|aws_secret_access_key`;
52
+ SECRET_LABEL_RE = new RegExp(`^(?:${SECRET_LABEL}|MYSQL_PWD|SSHPASS)$`, "i");
53
+ LABELED_VALUE_RE = new RegExp(String.raw`(?<![\w$-])((["']?)(?:${SECRET_LABEL})\2\s*[:=]\s*)(?=\S)`, "gi");
54
+ }
55
+ });
56
+
46
57
  // node_modules/ignore/index.js
47
58
  var require_ignore = __commonJS({
48
59
  "node_modules/ignore/index.js"(exports, module2) {
@@ -885,17 +896,6 @@ var require_ignore = __commonJS({
885
896
  }
886
897
  });
887
898
 
888
- // packages/shared/dist/secretPatterns.js
889
- var SECRET_LABEL, SECRET_LABEL_RE, LABELED_VALUE_RE;
890
- var init_secretPatterns = __esm({
891
- "packages/shared/dist/secretPatterns.js"() {
892
- "use strict";
893
- SECRET_LABEL = String.raw`[\w$-]*(?:api[_-]?key|secret|token|password|credential|auth)|aws_secret_access_key`;
894
- SECRET_LABEL_RE = new RegExp(`^(?:${SECRET_LABEL}|MYSQL_PWD|SSHPASS)$`, "i");
895
- LABELED_VALUE_RE = new RegExp(String.raw`(?<![\w$-])((["']?)(?:${SECRET_LABEL})\2\s*[:=]\s*)(?=\S)`, "gi");
896
- }
897
- });
898
-
899
899
  // packages/shared/dist/protectedPaths.js
900
900
  var init_protectedPaths = __esm({
901
901
  "packages/shared/dist/protectedPaths.js"() {
@@ -1016,7 +1016,7 @@ var init_repositoryRoot = __esm({
1016
1016
  });
1017
1017
 
1018
1018
  // packages/shared/dist/hookTrace.js
1019
- var HOOK_TRACE_MAX_BYTES;
1019
+ var HOOK_TRACE_MAX_BYTES, HOOK_MISS_WINDOW_MS, HOOK_MISS_TAIL_BYTES;
1020
1020
  var init_hookTrace = __esm({
1021
1021
  "packages/shared/dist/hookTrace.js"() {
1022
1022
  "use strict";
@@ -1024,6 +1024,8 @@ var init_hookTrace = __esm({
1024
1024
  init_runtimeSigners();
1025
1025
  init_secretPatterns();
1026
1026
  HOOK_TRACE_MAX_BYTES = 2 * 1024 * 1024;
1027
+ HOOK_MISS_WINDOW_MS = 30 * 60 * 1e3;
1028
+ HOOK_MISS_TAIL_BYTES = 64 * 1024;
1027
1029
  }
1028
1030
  });
1029
1031
 
@@ -2736,9 +2738,6 @@ function getMcpInstructions() {
2736
2738
  }
2737
2739
  var MCP_INSTRUCTIONS = getMcpInstructions();
2738
2740
 
2739
- // packages/shared/dist/codeScanner.js
2740
- var import_ignore = __toESM(require_ignore(), 1);
2741
-
2742
2741
  // node_modules/web-tree-sitter/web-tree-sitter.js
2743
2742
  var __defProp2 = Object.defineProperty;
2744
2743
  var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
@@ -6787,9 +6786,6 @@ import { dirname, extname, join } from "node:path";
6787
6786
  import { fileURLToPath } from "node:url";
6788
6787
  var WASM_DIR = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
6789
6788
 
6790
- // packages/shared/dist/ast/astChunker.js
6791
- var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
6792
-
6793
6789
  // packages/shared/dist/redactCredentials.js
6794
6790
  var REDACTED = "<redacted credential>";
6795
6791
  var MAX_PEM_BODY_LENGTH = 8 * 1024;
@@ -7049,11 +7045,15 @@ var PATTERNS = [
7049
7045
 
7050
7046
  // packages/shared/dist/sourceRedaction.js
7051
7047
  init_secretPatterns();
7048
+ var MAX_SOURCE_REDACTION_BYTES = 10 * 1024 * 1024;
7052
7049
 
7053
- // packages/shared/dist/codeScanner.js
7050
+ // packages/shared/dist/ast/astChunker.js
7051
+ var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
7052
+
7053
+ // packages/shared/dist/fileSelection.js
7054
+ var import_ignore = __toESM(require_ignore(), 1);
7054
7055
  init_protectedPaths();
7055
7056
  init_projectIdentityFile();
7056
- var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
7057
7057
  var BUILT_IN_IGNORE_DIRS = [
7058
7058
  // JS / web
7059
7059
  "node_modules",
@@ -7210,22 +7210,35 @@ var DEFAULT_INCLUDE_EXTENSIONS = [
7210
7210
  ".nix",
7211
7211
  ".bzl"
7212
7212
  ];
7213
+ var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
7214
+ var DEFAULT_IGNORE_PATTERNS = [
7215
+ ...BUILT_IN_IGNORE_DIRS,
7216
+ ...BUILT_IN_IGNORE_FILE_PATTERNS
7217
+ ];
7218
+
7219
+ // packages/shared/dist/codeScanner.js
7220
+ var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
7213
7221
  var DEFAULT_OPTIONS = {
7214
7222
  maxChunkSize: 8e3,
7215
7223
  // ~2000 tokens
7216
7224
  minChunkSize: 100,
7217
- ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
7225
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
7218
7226
  includeExtensions: [...DEFAULT_INCLUDE_EXTENSIONS],
7219
7227
  maxAstParseBytes: MAX_AST_PARSE_BYTES,
7220
7228
  protectedPaths: []
7221
7229
  };
7222
- var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
7223
7230
 
7224
7231
  // packages/shared/dist/indexJudge.js
7225
7232
  var import_ignore2 = __toESM(require_ignore(), 1);
7226
7233
 
7227
7234
  // packages/shared/dist/index.js
7228
7235
  init_secretPatterns();
7236
+
7237
+ // packages/shared/dist/sourceRedactionPool.js
7238
+ var MB = 1024 * 1024;
7239
+ var LARGE_FILE_BYTES = 1 * MB;
7240
+
7241
+ // packages/shared/dist/index.js
7229
7242
  init_hookTimeouts();
7230
7243
 
7231
7244
  // packages/shared/dist/jitDeliveryAck.js
package/dist/sbom.json CHANGED
@@ -17,13 +17,13 @@
17
17
  }
18
18
  ],
19
19
  "component": {
20
- "bom-ref": "@mnemonik/cli@0.1.191",
20
+ "bom-ref": "@mnemonik/cli@0.1.195",
21
21
  "type": "library",
22
22
  "name": "@mnemonik/cli",
23
- "version": "0.1.191",
23
+ "version": "0.1.195",
24
24
  "scope": "required",
25
25
  "description": "Mnemonik installer and local project helper",
26
- "purl": "pkg:npm/%40mnemonik/cli@0.1.191",
26
+ "purl": "pkg:npm/%40mnemonik/cli@0.1.195",
27
27
  "properties": [],
28
28
  "externalReferences": [
29
29
  {
@@ -274,12 +274,12 @@
274
274
  ]
275
275
  },
276
276
  {
277
- "bom-ref": "@mnemonik/credentials@0.1.191",
277
+ "bom-ref": "@mnemonik/credentials@0.1.195",
278
278
  "type": "library",
279
279
  "name": "@mnemonik/credentials",
280
- "version": "0.1.191",
280
+ "version": "0.1.195",
281
281
  "scope": "required",
282
- "purl": "pkg:npm/%40mnemonik/credentials@0.1.191",
282
+ "purl": "pkg:npm/%40mnemonik/credentials@0.1.195",
283
283
  "properties": [],
284
284
  "externalReferences": [
285
285
  {
@@ -289,12 +289,12 @@
289
289
  ]
290
290
  },
291
291
  {
292
- "bom-ref": "@mnemonik/local-setup@0.1.191",
292
+ "bom-ref": "@mnemonik/local-setup@0.1.195",
293
293
  "type": "library",
294
294
  "name": "@mnemonik/local-setup",
295
- "version": "0.1.191",
295
+ "version": "0.1.195",
296
296
  "scope": "required",
297
- "purl": "pkg:npm/%40mnemonik/local-setup@0.1.191",
297
+ "purl": "pkg:npm/%40mnemonik/local-setup@0.1.195",
298
298
  "properties": [],
299
299
  "externalReferences": [
300
300
  {
@@ -304,14 +304,14 @@
304
304
  ]
305
305
  },
306
306
  {
307
- "bom-ref": "@mnemonik/shared@7.154.3",
307
+ "bom-ref": "@mnemonik/shared@7.156.0",
308
308
  "type": "library",
309
309
  "name": "@mnemonik/shared",
310
- "version": "7.154.3",
310
+ "version": "7.156.0",
311
311
  "scope": "required",
312
312
  "author": "Anthony",
313
313
  "description": "Shared constants and utilities for Mnemonik packages",
314
- "purl": "pkg:npm/%40mnemonik/shared@7.154.3",
314
+ "purl": "pkg:npm/%40mnemonik/shared@7.156.0",
315
315
  "properties": [],
316
316
  "externalReferences": [
317
317
  {
@@ -1187,11 +1187,11 @@
1187
1187
  ],
1188
1188
  "dependencies": [
1189
1189
  {
1190
- "ref": "@mnemonik/cli@0.1.191",
1190
+ "ref": "@mnemonik/cli@0.1.195",
1191
1191
  "dependsOn": [
1192
- "@mnemonik/credentials@0.1.191",
1193
- "@mnemonik/local-setup@0.1.191",
1194
- "@mnemonik/shared@7.154.3",
1192
+ "@mnemonik/credentials@0.1.195",
1193
+ "@mnemonik/local-setup@0.1.195",
1194
+ "@mnemonik/shared@7.156.0",
1195
1195
  "smol-toml@1.9.0"
1196
1196
  ]
1197
1197
  },
@@ -1246,20 +1246,20 @@
1246
1246
  ]
1247
1247
  },
1248
1248
  {
1249
- "ref": "@mnemonik/credentials@0.1.191",
1249
+ "ref": "@mnemonik/credentials@0.1.195",
1250
1250
  "dependsOn": [
1251
- "@mnemonik/local-setup@0.1.191"
1251
+ "@mnemonik/local-setup@0.1.195"
1252
1252
  ]
1253
1253
  },
1254
1254
  {
1255
- "ref": "@mnemonik/local-setup@0.1.191",
1255
+ "ref": "@mnemonik/local-setup@0.1.195",
1256
1256
  "dependsOn": [
1257
- "@mnemonik/shared@7.154.3",
1257
+ "@mnemonik/shared@7.156.0",
1258
1258
  "proper-lockfile@4.1.2"
1259
1259
  ]
1260
1260
  },
1261
1261
  {
1262
- "ref": "@mnemonik/shared@7.154.3",
1262
+ "ref": "@mnemonik/shared@7.156.0",
1263
1263
  "dependsOn": [
1264
1264
  "@vue/compiler-core@3.5.44",
1265
1265
  "@vue/compiler-sfc@3.5.44",
@@ -43,6 +43,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  mod
44
44
  ));
45
45
 
46
+ // packages/shared/dist/secretPatterns.js
47
+ var SECRET_LABEL, SECRET_LABEL_RE, LABELED_VALUE_RE;
48
+ var init_secretPatterns = __esm({
49
+ "packages/shared/dist/secretPatterns.js"() {
50
+ "use strict";
51
+ SECRET_LABEL = String.raw`[\w$-]*(?:api[_-]?key|secret|token|password|credential|auth)|aws_secret_access_key`;
52
+ SECRET_LABEL_RE = new RegExp(`^(?:${SECRET_LABEL}|MYSQL_PWD|SSHPASS)$`, "i");
53
+ LABELED_VALUE_RE = new RegExp(String.raw`(?<![\w$-])((["']?)(?:${SECRET_LABEL})\2\s*[:=]\s*)(?=\S)`, "gi");
54
+ }
55
+ });
56
+
46
57
  // node_modules/ignore/index.js
47
58
  var require_ignore = __commonJS({
48
59
  "node_modules/ignore/index.js"(exports, module2) {
@@ -885,17 +896,6 @@ var require_ignore = __commonJS({
885
896
  }
886
897
  });
887
898
 
888
- // packages/shared/dist/secretPatterns.js
889
- var SECRET_LABEL, SECRET_LABEL_RE, LABELED_VALUE_RE;
890
- var init_secretPatterns = __esm({
891
- "packages/shared/dist/secretPatterns.js"() {
892
- "use strict";
893
- SECRET_LABEL = String.raw`[\w$-]*(?:api[_-]?key|secret|token|password|credential|auth)|aws_secret_access_key`;
894
- SECRET_LABEL_RE = new RegExp(`^(?:${SECRET_LABEL}|MYSQL_PWD|SSHPASS)$`, "i");
895
- LABELED_VALUE_RE = new RegExp(String.raw`(?<![\w$-])((["']?)(?:${SECRET_LABEL})\2\s*[:=]\s*)(?=\S)`, "gi");
896
- }
897
- });
898
-
899
899
  // packages/shared/dist/protectedPaths.js
900
900
  var init_protectedPaths = __esm({
901
901
  "packages/shared/dist/protectedPaths.js"() {
@@ -1016,7 +1016,7 @@ var init_repositoryRoot = __esm({
1016
1016
  });
1017
1017
 
1018
1018
  // packages/shared/dist/hookTrace.js
1019
- var HOOK_TRACE_MAX_BYTES;
1019
+ var HOOK_TRACE_MAX_BYTES, HOOK_MISS_WINDOW_MS, HOOK_MISS_TAIL_BYTES;
1020
1020
  var init_hookTrace = __esm({
1021
1021
  "packages/shared/dist/hookTrace.js"() {
1022
1022
  "use strict";
@@ -1024,6 +1024,8 @@ var init_hookTrace = __esm({
1024
1024
  init_runtimeSigners();
1025
1025
  init_secretPatterns();
1026
1026
  HOOK_TRACE_MAX_BYTES = 2 * 1024 * 1024;
1027
+ HOOK_MISS_WINDOW_MS = 30 * 60 * 1e3;
1028
+ HOOK_MISS_TAIL_BYTES = 64 * 1024;
1027
1029
  }
1028
1030
  });
1029
1031
 
@@ -2732,9 +2734,6 @@ function getMcpInstructions() {
2732
2734
  }
2733
2735
  var MCP_INSTRUCTIONS = getMcpInstructions();
2734
2736
 
2735
- // packages/shared/dist/codeScanner.js
2736
- var import_ignore = __toESM(require_ignore(), 1);
2737
-
2738
2737
  // node_modules/web-tree-sitter/web-tree-sitter.js
2739
2738
  var __defProp2 = Object.defineProperty;
2740
2739
  var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
@@ -6783,9 +6782,6 @@ import { dirname, extname, join } from "node:path";
6783
6782
  import { fileURLToPath } from "node:url";
6784
6783
  var WASM_DIR = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
6785
6784
 
6786
- // packages/shared/dist/ast/astChunker.js
6787
- var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
6788
-
6789
6785
  // packages/shared/dist/redactCredentials.js
6790
6786
  var REDACTED = "<redacted credential>";
6791
6787
  var MAX_PEM_BODY_LENGTH = 8 * 1024;
@@ -7045,11 +7041,15 @@ var PATTERNS = [
7045
7041
 
7046
7042
  // packages/shared/dist/sourceRedaction.js
7047
7043
  init_secretPatterns();
7044
+ var MAX_SOURCE_REDACTION_BYTES = 10 * 1024 * 1024;
7048
7045
 
7049
- // packages/shared/dist/codeScanner.js
7046
+ // packages/shared/dist/ast/astChunker.js
7047
+ var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
7048
+
7049
+ // packages/shared/dist/fileSelection.js
7050
+ var import_ignore = __toESM(require_ignore(), 1);
7050
7051
  init_protectedPaths();
7051
7052
  init_projectIdentityFile();
7052
- var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
7053
7053
  var BUILT_IN_IGNORE_DIRS = [
7054
7054
  // JS / web
7055
7055
  "node_modules",
@@ -7206,22 +7206,35 @@ var DEFAULT_INCLUDE_EXTENSIONS = [
7206
7206
  ".nix",
7207
7207
  ".bzl"
7208
7208
  ];
7209
+ var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
7210
+ var DEFAULT_IGNORE_PATTERNS = [
7211
+ ...BUILT_IN_IGNORE_DIRS,
7212
+ ...BUILT_IN_IGNORE_FILE_PATTERNS
7213
+ ];
7214
+
7215
+ // packages/shared/dist/codeScanner.js
7216
+ var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
7209
7217
  var DEFAULT_OPTIONS = {
7210
7218
  maxChunkSize: 8e3,
7211
7219
  // ~2000 tokens
7212
7220
  minChunkSize: 100,
7213
- ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
7221
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
7214
7222
  includeExtensions: [...DEFAULT_INCLUDE_EXTENSIONS],
7215
7223
  maxAstParseBytes: MAX_AST_PARSE_BYTES,
7216
7224
  protectedPaths: []
7217
7225
  };
7218
- var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
7219
7226
 
7220
7227
  // packages/shared/dist/indexJudge.js
7221
7228
  var import_ignore2 = __toESM(require_ignore(), 1);
7222
7229
 
7223
7230
  // packages/shared/dist/index.js
7224
7231
  init_secretPatterns();
7232
+
7233
+ // packages/shared/dist/sourceRedactionPool.js
7234
+ var MB = 1024 * 1024;
7235
+ var LARGE_FILE_BYTES = 1 * MB;
7236
+
7237
+ // packages/shared/dist/index.js
7225
7238
  init_hookTimeouts();
7226
7239
 
7227
7240
  // packages/shared/dist/jitDeliveryAck.js
@@ -907,9 +907,6 @@ function getMcpInstructions() {
907
907
  }
908
908
  var MCP_INSTRUCTIONS = getMcpInstructions();
909
909
 
910
- // packages/shared/dist/codeScanner.js
911
- var import_ignore = __toESM(require_ignore(), 1);
912
-
913
910
  // node_modules/web-tree-sitter/web-tree-sitter.js
914
911
  var __defProp2 = Object.defineProperty;
915
912
  var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
@@ -4958,9 +4955,6 @@ import { dirname, extname, join } from "node:path";
4958
4955
  import { fileURLToPath } from "node:url";
4959
4956
  var WASM_DIR = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
4960
4957
 
4961
- // packages/shared/dist/ast/astChunker.js
4962
- var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
4963
-
4964
4958
  // packages/shared/dist/redactCredentials.js
4965
4959
  var REDACTED = "<redacted credential>";
4966
4960
  var MAX_PEM_BODY_LENGTH = 8 * 1024;
@@ -5223,8 +5217,14 @@ var SECRET_LABEL = String.raw`[\w$-]*(?:api[_-]?key|secret|token|password|creden
5223
5217
  var SECRET_LABEL_RE = new RegExp(`^(?:${SECRET_LABEL}|MYSQL_PWD|SSHPASS)$`, "i");
5224
5218
  var LABELED_VALUE_RE = new RegExp(String.raw`(?<![\w$-])((["']?)(?:${SECRET_LABEL})\2\s*[:=]\s*)(?=\S)`, "gi");
5225
5219
 
5226
- // packages/shared/dist/codeScanner.js
5227
- var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
5220
+ // packages/shared/dist/sourceRedaction.js
5221
+ var MAX_SOURCE_REDACTION_BYTES = 10 * 1024 * 1024;
5222
+
5223
+ // packages/shared/dist/ast/astChunker.js
5224
+ var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
5225
+
5226
+ // packages/shared/dist/fileSelection.js
5227
+ var import_ignore = __toESM(require_ignore(), 1);
5228
5228
  var BUILT_IN_IGNORE_DIRS = [
5229
5229
  // JS / web
5230
5230
  "node_modules",
@@ -5381,20 +5381,31 @@ var DEFAULT_INCLUDE_EXTENSIONS = [
5381
5381
  ".nix",
5382
5382
  ".bzl"
5383
5383
  ];
5384
+ var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
5385
+ var DEFAULT_IGNORE_PATTERNS = [
5386
+ ...BUILT_IN_IGNORE_DIRS,
5387
+ ...BUILT_IN_IGNORE_FILE_PATTERNS
5388
+ ];
5389
+
5390
+ // packages/shared/dist/codeScanner.js
5391
+ var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
5384
5392
  var DEFAULT_OPTIONS = {
5385
5393
  maxChunkSize: 8e3,
5386
5394
  // ~2000 tokens
5387
5395
  minChunkSize: 100,
5388
- ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
5396
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
5389
5397
  includeExtensions: [...DEFAULT_INCLUDE_EXTENSIONS],
5390
5398
  maxAstParseBytes: MAX_AST_PARSE_BYTES,
5391
5399
  protectedPaths: []
5392
5400
  };
5393
- var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
5394
5401
 
5395
5402
  // packages/shared/dist/indexJudge.js
5396
5403
  var import_ignore2 = __toESM(require_ignore(), 1);
5397
5404
 
5405
+ // packages/shared/dist/sourceRedactionPool.js
5406
+ var MB = 1024 * 1024;
5407
+ var LARGE_FILE_BYTES = 1 * MB;
5408
+
5398
5409
  // packages/shared/dist/runtimeSigners.js
5399
5410
  var ttl = 10 * 6e4;
5400
5411