@mnemonik/cli 7.154.2 → 7.155.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.
Files changed (59) 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 +57 -53
  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.d.ts +2 -0
  26. package/dist/router.d.ts.map +1 -1
  27. package/dist/router.js +66 -43
  28. package/dist/router.js.map +1 -1
  29. package/dist/runtime/releaseSource.js +35 -22
  30. package/dist/runtime/selfUpdate.d.ts +11 -1
  31. package/dist/runtime/selfUpdate.d.ts.map +1 -1
  32. package/dist/runtime/selfUpdate.js +52 -26
  33. package/dist/runtime/selfUpdate.js.map +1 -1
  34. package/dist/runtime/signers.js +177 -22
  35. package/dist/runtime/store.js +81 -22
  36. package/dist/runtime/updateCheck.js +35 -22
  37. package/dist/sbom.json +21 -21
  38. package/dist/scanner/control.js +35 -22
  39. package/dist/scanner/data.js +21 -10
  40. package/dist/scanner/discover.js +23 -10
  41. package/dist/scanner/enable.d.ts +5 -0
  42. package/dist/scanner/enable.d.ts.map +1 -1
  43. package/dist/scanner/enable.js +52 -22
  44. package/dist/scanner/enable.js.map +1 -1
  45. package/dist/scanner/estimate.d.ts +41 -0
  46. package/dist/scanner/estimate.d.ts.map +1 -0
  47. package/dist/scanner/estimate.js +2461 -0
  48. package/dist/scanner/estimate.js.map +1 -0
  49. package/dist/scanner/picker.js +23 -10
  50. package/dist/scanner/service.js +35 -22
  51. package/dist/scanner/update.js +35 -22
  52. package/dist/scanner-release.json +24 -24
  53. package/dist/status.d.ts +6 -0
  54. package/dist/status.d.ts.map +1 -1
  55. package/dist/status.js +39 -23
  56. package/dist/status.js.map +1 -1
  57. package/dist/vendor/local-setup.js +35 -22
  58. package/dist/vendor/shared/runtimeReader.js +110 -21
  59. package/package.json +31 -31
package/dist/sbom.json CHANGED
@@ -17,13 +17,13 @@
17
17
  }
18
18
  ],
19
19
  "component": {
20
- "bom-ref": "@mnemonik/cli@0.1.190",
20
+ "bom-ref": "@mnemonik/cli@0.1.194",
21
21
  "type": "library",
22
22
  "name": "@mnemonik/cli",
23
- "version": "0.1.190",
23
+ "version": "0.1.194",
24
24
  "scope": "required",
25
25
  "description": "Mnemonik installer and local project helper",
26
- "purl": "pkg:npm/%40mnemonik/cli@0.1.190",
26
+ "purl": "pkg:npm/%40mnemonik/cli@0.1.194",
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.190",
277
+ "bom-ref": "@mnemonik/credentials@0.1.194",
278
278
  "type": "library",
279
279
  "name": "@mnemonik/credentials",
280
- "version": "0.1.190",
280
+ "version": "0.1.194",
281
281
  "scope": "required",
282
- "purl": "pkg:npm/%40mnemonik/credentials@0.1.190",
282
+ "purl": "pkg:npm/%40mnemonik/credentials@0.1.194",
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.190",
292
+ "bom-ref": "@mnemonik/local-setup@0.1.194",
293
293
  "type": "library",
294
294
  "name": "@mnemonik/local-setup",
295
- "version": "0.1.190",
295
+ "version": "0.1.194",
296
296
  "scope": "required",
297
- "purl": "pkg:npm/%40mnemonik/local-setup@0.1.190",
297
+ "purl": "pkg:npm/%40mnemonik/local-setup@0.1.194",
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.2",
307
+ "bom-ref": "@mnemonik/shared@7.155.2",
308
308
  "type": "library",
309
309
  "name": "@mnemonik/shared",
310
- "version": "7.154.2",
310
+ "version": "7.155.2",
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.2",
314
+ "purl": "pkg:npm/%40mnemonik/shared@7.155.2",
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.190",
1190
+ "ref": "@mnemonik/cli@0.1.194",
1191
1191
  "dependsOn": [
1192
- "@mnemonik/credentials@0.1.190",
1193
- "@mnemonik/local-setup@0.1.190",
1194
- "@mnemonik/shared@7.154.2",
1192
+ "@mnemonik/credentials@0.1.194",
1193
+ "@mnemonik/local-setup@0.1.194",
1194
+ "@mnemonik/shared@7.155.2",
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.190",
1249
+ "ref": "@mnemonik/credentials@0.1.194",
1250
1250
  "dependsOn": [
1251
- "@mnemonik/local-setup@0.1.190"
1251
+ "@mnemonik/local-setup@0.1.194"
1252
1252
  ]
1253
1253
  },
1254
1254
  {
1255
- "ref": "@mnemonik/local-setup@0.1.190",
1255
+ "ref": "@mnemonik/local-setup@0.1.194",
1256
1256
  "dependsOn": [
1257
- "@mnemonik/shared@7.154.2",
1257
+ "@mnemonik/shared@7.155.2",
1258
1258
  "proper-lockfile@4.1.2"
1259
1259
  ]
1260
1260
  },
1261
1261
  {
1262
- "ref": "@mnemonik/shared@7.154.2",
1262
+ "ref": "@mnemonik/shared@7.155.2",
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
 
@@ -912,9 +912,6 @@ function getMcpInstructions() {
912
912
  }
913
913
  var MCP_INSTRUCTIONS = getMcpInstructions();
914
914
 
915
- // packages/shared/dist/codeScanner.js
916
- var import_ignore = __toESM(require_ignore(), 1);
917
-
918
915
  // node_modules/web-tree-sitter/web-tree-sitter.js
919
916
  var __defProp2 = Object.defineProperty;
920
917
  var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
@@ -4963,9 +4960,6 @@ import { dirname, extname, join } from "node:path";
4963
4960
  import { fileURLToPath } from "node:url";
4964
4961
  var WASM_DIR = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
4965
4962
 
4966
- // packages/shared/dist/ast/astChunker.js
4967
- var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
4968
-
4969
4963
  // packages/shared/dist/redactCredentials.js
4970
4964
  var REDACTED = "<redacted credential>";
4971
4965
  var MAX_PEM_BODY_LENGTH = 8 * 1024;
@@ -5228,6 +5222,15 @@ var SECRET_LABEL = String.raw`[\w$-]*(?:api[_-]?key|secret|token|password|creden
5228
5222
  var SECRET_LABEL_RE = new RegExp(`^(?:${SECRET_LABEL}|MYSQL_PWD|SSHPASS)$`, "i");
5229
5223
  var LABELED_VALUE_RE = new RegExp(String.raw`(?<![\w$-])((["']?)(?:${SECRET_LABEL})\2\s*[:=]\s*)(?=\S)`, "gi");
5230
5224
 
5225
+ // packages/shared/dist/sourceRedaction.js
5226
+ var MAX_SOURCE_REDACTION_BYTES = 10 * 1024 * 1024;
5227
+
5228
+ // packages/shared/dist/ast/astChunker.js
5229
+ var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
5230
+
5231
+ // packages/shared/dist/fileSelection.js
5232
+ var import_ignore = __toESM(require_ignore(), 1);
5233
+
5231
5234
  // packages/shared/dist/projectIdentityFile.js
5232
5235
  import { lstat, readFile } from "node:fs/promises";
5233
5236
  import { join as join2 } from "node:path";
@@ -5318,8 +5321,7 @@ async function readIdentityFile(dir, options = {}) {
5318
5321
  }
5319
5322
  }
5320
5323
 
5321
- // packages/shared/dist/codeScanner.js
5322
- var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
5324
+ // packages/shared/dist/fileSelection.js
5323
5325
  var BUILT_IN_IGNORE_DIRS = [
5324
5326
  // JS / web
5325
5327
  "node_modules",
@@ -5476,20 +5478,31 @@ var DEFAULT_INCLUDE_EXTENSIONS = [
5476
5478
  ".nix",
5477
5479
  ".bzl"
5478
5480
  ];
5481
+ var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
5482
+ var DEFAULT_IGNORE_PATTERNS = [
5483
+ ...BUILT_IN_IGNORE_DIRS,
5484
+ ...BUILT_IN_IGNORE_FILE_PATTERNS
5485
+ ];
5486
+
5487
+ // packages/shared/dist/codeScanner.js
5488
+ var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
5479
5489
  var DEFAULT_OPTIONS = {
5480
5490
  maxChunkSize: 8e3,
5481
5491
  // ~2000 tokens
5482
5492
  minChunkSize: 100,
5483
- ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
5493
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
5484
5494
  includeExtensions: [...DEFAULT_INCLUDE_EXTENSIONS],
5485
5495
  maxAstParseBytes: MAX_AST_PARSE_BYTES,
5486
5496
  protectedPaths: []
5487
5497
  };
5488
- var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
5489
5498
 
5490
5499
  // packages/shared/dist/indexJudge.js
5491
5500
  var import_ignore2 = __toESM(require_ignore(), 1);
5492
5501
 
5502
+ // packages/shared/dist/sourceRedactionPool.js
5503
+ var MB = 1024 * 1024;
5504
+ var LARGE_FILE_BYTES = 1 * MB;
5505
+
5493
5506
  // packages/shared/dist/runtimeSigners.js
5494
5507
  var ttl = 10 * 6e4;
5495
5508
 
@@ -8,6 +8,7 @@ import { type ScannerServiceOptions } from './service.js';
8
8
  import { type Journal } from '../install/journal.js';
9
9
  import { type ProjectExecutor } from '../project.js';
10
10
  import { type ScannerConsentDraft } from './picker.js';
11
+ import { type FolderCount, type ServerEstimate } from './estimate.js';
11
12
  export interface Consent {
12
13
  userId: string;
13
14
  roots: string[];
@@ -71,6 +72,8 @@ export interface EnableOptions extends ScannerServiceOptions {
71
72
  authorize?: (selection?: ScannerConsentDraft, installation?: string) => Promise<string>;
72
73
  projectExecutor?: ProjectExecutor;
73
74
  projectStateDir?: string;
75
+ /** Counts the files the scanner will index (tests replace the walk). */
76
+ countFiles?: (roots: readonly string[]) => Promise<FolderCount>;
74
77
  }
75
78
  export interface PreparedScanner {
76
79
  roots: string[];
@@ -81,6 +84,8 @@ export interface PreparedScanner {
81
84
  apply(journal?: Journal, roots?: readonly string[]): Promise<ReturnType<typeof serializeReadiness>>;
82
85
  rollback(journal: Journal): Promise<void>;
83
86
  complete(document: ReturnType<typeof serializeReadiness>): Promise<void>;
87
+ /** The server's time estimate for indexing this many files; null when it cannot say. */
88
+ estimate?(files: number): Promise<ServerEstimate | null>;
84
89
  }
85
90
  export declare function enableScanner(options: EnableOptions): Promise<ReturnType<typeof serializeReadiness>>;
86
91
  /** The scanner lease spans browser review, Apply and compensation. */
@@ -1 +1 @@
1
- {"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../src/scanner/enable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../src/scanner/enable.ts"],"names":[],"mappings":"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"}
@@ -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"() {
@@ -1347,7 +1347,7 @@ var init_repositoryRoot = __esm({
1347
1347
  });
1348
1348
 
1349
1349
  // packages/shared/dist/hookTrace.js
1350
- var HOOK_TRACE_MAX_BYTES;
1350
+ var HOOK_TRACE_MAX_BYTES, HOOK_MISS_WINDOW_MS, HOOK_MISS_TAIL_BYTES;
1351
1351
  var init_hookTrace = __esm({
1352
1352
  "packages/shared/dist/hookTrace.js"() {
1353
1353
  "use strict";
@@ -1355,6 +1355,8 @@ var init_hookTrace = __esm({
1355
1355
  init_runtimeSigners();
1356
1356
  init_secretPatterns();
1357
1357
  HOOK_TRACE_MAX_BYTES = 2 * 1024 * 1024;
1358
+ HOOK_MISS_WINDOW_MS = 30 * 60 * 1e3;
1359
+ HOOK_MISS_TAIL_BYTES = 64 * 1024;
1358
1360
  }
1359
1361
  });
1360
1362
 
@@ -3069,9 +3071,6 @@ function getMcpInstructions() {
3069
3071
  }
3070
3072
  var MCP_INSTRUCTIONS = getMcpInstructions();
3071
3073
 
3072
- // packages/shared/dist/codeScanner.js
3073
- var import_ignore = __toESM(require_ignore(), 1);
3074
-
3075
3074
  // node_modules/web-tree-sitter/web-tree-sitter.js
3076
3075
  var __defProp2 = Object.defineProperty;
3077
3076
  var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
@@ -7120,9 +7119,6 @@ import { dirname, extname, join } from "node:path";
7120
7119
  import { fileURLToPath } from "node:url";
7121
7120
  var WASM_DIR = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
7122
7121
 
7123
- // packages/shared/dist/ast/astChunker.js
7124
- var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
7125
-
7126
7122
  // packages/shared/dist/redactCredentials.js
7127
7123
  var REDACTED = "<redacted credential>";
7128
7124
  var MAX_PEM_BODY_LENGTH = 8 * 1024;
@@ -7382,11 +7378,15 @@ var PATTERNS = [
7382
7378
 
7383
7379
  // packages/shared/dist/sourceRedaction.js
7384
7380
  init_secretPatterns();
7381
+ var MAX_SOURCE_REDACTION_BYTES = 10 * 1024 * 1024;
7385
7382
 
7386
- // packages/shared/dist/codeScanner.js
7383
+ // packages/shared/dist/ast/astChunker.js
7384
+ var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
7385
+
7386
+ // packages/shared/dist/fileSelection.js
7387
+ var import_ignore = __toESM(require_ignore(), 1);
7387
7388
  init_protectedPaths();
7388
7389
  init_projectIdentityFile();
7389
- var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
7390
7390
  var BUILT_IN_IGNORE_DIRS = [
7391
7391
  // JS / web
7392
7392
  "node_modules",
@@ -7543,22 +7543,35 @@ var DEFAULT_INCLUDE_EXTENSIONS = [
7543
7543
  ".nix",
7544
7544
  ".bzl"
7545
7545
  ];
7546
+ var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
7547
+ var DEFAULT_IGNORE_PATTERNS = [
7548
+ ...BUILT_IN_IGNORE_DIRS,
7549
+ ...BUILT_IN_IGNORE_FILE_PATTERNS
7550
+ ];
7551
+
7552
+ // packages/shared/dist/codeScanner.js
7553
+ var MAX_SCANNED_FILE_BYTES = 10 * 1024 * 1024;
7546
7554
  var DEFAULT_OPTIONS = {
7547
7555
  maxChunkSize: 8e3,
7548
7556
  // ~2000 tokens
7549
7557
  minChunkSize: 100,
7550
- ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
7558
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
7551
7559
  includeExtensions: [...DEFAULT_INCLUDE_EXTENSIONS],
7552
7560
  maxAstParseBytes: MAX_AST_PARSE_BYTES,
7553
7561
  protectedPaths: []
7554
7562
  };
7555
- var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
7556
7563
 
7557
7564
  // packages/shared/dist/indexJudge.js
7558
7565
  var import_ignore2 = __toESM(require_ignore(), 1);
7559
7566
 
7560
7567
  // packages/shared/dist/index.js
7561
7568
  init_secretPatterns();
7569
+
7570
+ // packages/shared/dist/sourceRedactionPool.js
7571
+ var MB = 1024 * 1024;
7572
+ var LARGE_FILE_BYTES = 1 * MB;
7573
+
7574
+ // packages/shared/dist/index.js
7562
7575
  init_hookTimeouts();
7563
7576
 
7564
7577
  // packages/shared/dist/jitDeliveryAck.js
@@ -7961,6 +7974,10 @@ import {
7961
7974
  projectLimitMessage
7962
7975
  } from "../project.js";
7963
7976
  import { consentDraft, runScannerBoundaryPicker } from "./picker.js";
7977
+ import {
7978
+ countIndexableFiles,
7979
+ onboardingEstimateLines
7980
+ } from "./estimate.js";
7964
7981
  var scannerStateBytes = (state) => Buffer.from(`${JSON.stringify(state, null, 2)}
7965
7982
  `);
7966
7983
  var SCANNER_APPROVAL_WAIT = "Waiting for approval in your browser, up to 10 minutes.";
@@ -8049,6 +8066,13 @@ async function enableScanner(options) {
8049
8066
  }
8050
8067
  }
8051
8068
  prepared.roots.splice(0, prepared.roots.length, ...connected);
8069
+ if (!options.nonInteractive && connected.length) {
8070
+ const count = await (options.countFiles ?? countIndexableFiles)(connected).catch(
8071
+ () => ({ files: 0, bytes: 0, partial: true })
8072
+ );
8073
+ const estimate = count.files ? await (prepared.estimate?.(count.files) ?? Promise.resolve(null)).catch(() => null) : null;
8074
+ for (const line of onboardingEstimateLines(count, estimate)) options.output.line(line);
8075
+ }
8052
8076
  const document = await prepared.apply(options.journal, connected);
8053
8077
  if (document.installation.state === "READY") await prepared.complete(document);
8054
8078
  if (!options.nonInteractive) {
@@ -8229,6 +8253,12 @@ async function prepareScanner(options, work) {
8229
8253
  rollback: async (journal) => {
8230
8254
  await restoreScannerInstall(journal, options);
8231
8255
  },
8256
+ estimate: async (files) => await request(
8257
+ "GET",
8258
+ `/api/v1/scan/ingest/estimate?files=${files}`,
8259
+ void 0,
8260
+ true
8261
+ ),
8232
8262
  apply: async (journal, roots = approvedRoots) => {
8233
8263
  const put = async (targetPath, content) => {
8234
8264
  if (!journal) return atomicWrite(targetPath, content);