@snapback/cli 1.0.11 → 1.1.14

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 (41) hide show
  1. package/README.md +9 -9
  2. package/dist/{analysis-Z53F5FT2.js → analysis-C6XVLBAL.js} +3 -3
  3. package/dist/{analysis-Z53F5FT2.js.map → analysis-C6XVLBAL.js.map} +1 -1
  4. package/dist/{chunk-SVJ67PPQ.js → chunk-2TOJVUVJ.js} +296 -33
  5. package/dist/chunk-2TOJVUVJ.js.map +1 -0
  6. package/dist/chunk-5EQLSU5B.js +385 -0
  7. package/dist/chunk-5EQLSU5B.js.map +1 -0
  8. package/dist/{chunk-YOVA65PS.js → chunk-A3TUM7U4.js} +320 -63
  9. package/dist/chunk-A3TUM7U4.js.map +1 -0
  10. package/dist/{chunk-ISVRGBWT.js → chunk-LEXNOXPV.js} +6030 -632
  11. package/dist/chunk-LEXNOXPV.js.map +1 -0
  12. package/dist/{chunk-G7QXHNGB.js → chunk-OJNDAPC2.js} +41 -15
  13. package/dist/chunk-OJNDAPC2.js.map +1 -0
  14. package/dist/{chunk-NKBZIXCN.js → chunk-Q5XZ3DCB.js} +5 -5
  15. package/dist/{chunk-NKBZIXCN.js.map → chunk-Q5XZ3DCB.js.map} +1 -1
  16. package/dist/chunk-QLCHTUT5.js +1067 -0
  17. package/dist/chunk-QLCHTUT5.js.map +1 -0
  18. package/dist/dist-D2SHOZMS.js +8 -0
  19. package/dist/{dist-7UKXVKH3.js.map → dist-D2SHOZMS.js.map} +1 -1
  20. package/dist/{dist-7UKXVKH3.js → dist-L76VXYJ5.js} +3 -3
  21. package/dist/{dist-QFS5YG5L.js.map → dist-L76VXYJ5.js.map} +1 -1
  22. package/dist/dist-RPM72FHJ.js +5 -0
  23. package/dist/{dist-WKLJSPJT.js.map → dist-RPM72FHJ.js.map} +1 -1
  24. package/dist/index.js +30953 -15593
  25. package/dist/index.js.map +1 -1
  26. package/dist/learning-pruner-YSZSOOOC.js +7 -0
  27. package/dist/learning-pruner-YSZSOOOC.js.map +1 -0
  28. package/dist/{secure-credentials-6UMEU22H.js → secure-credentials-A4QHHOE2.js} +14 -6
  29. package/dist/secure-credentials-A4QHHOE2.js.map +1 -0
  30. package/dist/{snapback-dir-T3CRQRY6.js → snapback-dir-6QUSO6Y3.js} +3 -3
  31. package/dist/{snapback-dir-T3CRQRY6.js.map → snapback-dir-6QUSO6Y3.js.map} +1 -1
  32. package/dist/storage-H366UNAR.js +6 -0
  33. package/dist/storage-H366UNAR.js.map +1 -0
  34. package/package.json +8 -9
  35. package/dist/chunk-G7QXHNGB.js.map +0 -1
  36. package/dist/chunk-ISVRGBWT.js.map +0 -1
  37. package/dist/chunk-SVJ67PPQ.js.map +0 -1
  38. package/dist/chunk-YOVA65PS.js.map +0 -1
  39. package/dist/dist-QFS5YG5L.js +0 -5
  40. package/dist/dist-WKLJSPJT.js +0 -8
  41. package/dist/secure-credentials-6UMEU22H.js.map +0 -1
@@ -24,6 +24,67 @@ var __name2 = /* @__PURE__ */ __name((target, value) => __defProp(target, "name"
24
24
  value,
25
25
  configurable: true
26
26
  }), "__name");
27
+ function generateFingerprint(data) {
28
+ const raw = `${data.userAgent}_${data.screenWidth}x${data.screenHeight}_${data.timezone}`;
29
+ let hash = 0;
30
+ for (let i = 0; i < raw.length; i++) {
31
+ const char = raw.charCodeAt(i);
32
+ hash = (hash << 5) - hash + char;
33
+ hash = hash & hash;
34
+ }
35
+ return `fp_${Math.abs(hash).toString(36)}`;
36
+ }
37
+ __name(generateFingerprint, "generateFingerprint");
38
+ __name2(generateFingerprint, "generateFingerprint");
39
+ function parseAttributionSource(url) {
40
+ const urlObj = new URL(url);
41
+ const utmSource = urlObj.searchParams.get("utm_source")?.toLowerCase();
42
+ if (!utmSource) {
43
+ return "direct";
44
+ }
45
+ if (utmSource.includes("facebook") || utmSource.includes("fb")) {
46
+ return "facebook";
47
+ }
48
+ if (utmSource.includes("google")) {
49
+ return "google";
50
+ }
51
+ if (utmSource.includes("twitter") || utmSource.includes("x.com")) {
52
+ return "twitter";
53
+ }
54
+ if (utmSource.includes("linkedin")) {
55
+ return "linkedin";
56
+ }
57
+ if (utmSource.includes("reddit")) {
58
+ return "reddit";
59
+ }
60
+ const ref = urlObj.searchParams.get("ref");
61
+ if (ref) {
62
+ return "referral";
63
+ }
64
+ return "organic";
65
+ }
66
+ __name(parseAttributionSource, "parseAttributionSource");
67
+ __name2(parseAttributionSource, "parseAttributionSource");
68
+ function extractUtmParams(url) {
69
+ const urlObj = new URL(url);
70
+ return {
71
+ utm_source: urlObj.searchParams.get("utm_source") || void 0,
72
+ utm_medium: urlObj.searchParams.get("utm_medium") || void 0,
73
+ utm_campaign: urlObj.searchParams.get("utm_campaign") || void 0,
74
+ utm_content: urlObj.searchParams.get("utm_content") || void 0,
75
+ utm_term: urlObj.searchParams.get("utm_term") || void 0
76
+ };
77
+ }
78
+ __name(extractUtmParams, "extractUtmParams");
79
+ __name2(extractUtmParams, "extractUtmParams");
80
+ function shouldMergeAttribution(existing, incoming) {
81
+ if (existing.source === incoming.source && existing.campaignId === incoming.campaignId) {
82
+ return true;
83
+ }
84
+ return false;
85
+ }
86
+ __name(shouldMergeAttribution, "shouldMergeAttribution");
87
+ __name2(shouldMergeAttribution, "shouldMergeAttribution");
27
88
  var AuthErrorCodeSchema = z.enum([
28
89
  "INVALID_CREDENTIALS",
29
90
  "USER_NOT_FOUND",
@@ -247,6 +308,137 @@ z.object({
247
308
  ]),
248
309
  callbackURL: z.string().url().optional()
249
310
  });
311
+ var EMAIL_PRIORITY_VALUES = {
312
+ high: 1,
313
+ medium: 5,
314
+ low: 10
315
+ };
316
+ var TEMPLATE_PRIORITIES = {
317
+ // High priority
318
+ welcome: "high",
319
+ trial_started: "high",
320
+ payment_receipt: "high",
321
+ payment_failed: "high",
322
+ // Medium priority
323
+ setup_help: "medium",
324
+ trial_reminder_3_days: "medium",
325
+ trial_reminder_1_day: "medium",
326
+ trial_expired: "medium",
327
+ pioneer_welcome: "medium",
328
+ milestone_achieved: "medium",
329
+ tier_celebration: "medium",
330
+ referral_success: "medium",
331
+ conversion_success: "medium",
332
+ // Low priority
333
+ no_snapshot_reminder: "low",
334
+ inactive_reminder: "low"
335
+ };
336
+ function getTemplatePriority(template) {
337
+ return TEMPLATE_PRIORITIES[template] || "medium";
338
+ }
339
+ __name(getTemplatePriority, "getTemplatePriority");
340
+ __name2(getTemplatePriority, "getTemplatePriority");
341
+ function getPriorityValue(priority) {
342
+ return EMAIL_PRIORITY_VALUES[priority];
343
+ }
344
+ __name(getPriorityValue, "getPriorityValue");
345
+ __name2(getPriorityValue, "getPriorityValue");
346
+ function calculateSendTime(delayMs) {
347
+ return new Date(Date.now() + delayMs);
348
+ }
349
+ __name(calculateSendTime, "calculateSendTime");
350
+ __name2(calculateSendTime, "calculateSendTime");
351
+ var TIER_FEATURES = {
352
+ free: [
353
+ "api_access"
354
+ ],
355
+ pro: [
356
+ "cloud_backup",
357
+ "api_access",
358
+ "advanced_analytics",
359
+ "unlimited_workspaces",
360
+ "cli_full_features"
361
+ ],
362
+ team: [
363
+ "cloud_backup",
364
+ "api_access",
365
+ "advanced_analytics",
366
+ "unlimited_workspaces",
367
+ "cli_full_features",
368
+ "team_dashboard",
369
+ "multi_workspace",
370
+ "priority_support"
371
+ ],
372
+ enterprise: [
373
+ "cloud_backup",
374
+ "api_access",
375
+ "advanced_analytics",
376
+ "unlimited_workspaces",
377
+ "cli_full_features",
378
+ "team_dashboard",
379
+ "multi_workspace",
380
+ "sso_authentication",
381
+ "audit_logs",
382
+ "priority_support",
383
+ "custom_retention"
384
+ ]
385
+ };
386
+ var TIER_LIMITS = {
387
+ free: {
388
+ cloud_backup: 0,
389
+ api_access: 100,
390
+ unlimited_workspaces: 1
391
+ },
392
+ pro: {
393
+ cloud_backup: 100 * 1024,
394
+ api_access: 1e5,
395
+ unlimited_workspaces: null
396
+ },
397
+ team: {
398
+ cloud_backup: 500 * 1024,
399
+ api_access: 1e6,
400
+ unlimited_workspaces: null
401
+ },
402
+ enterprise: {
403
+ cloud_backup: null,
404
+ api_access: null,
405
+ unlimited_workspaces: null
406
+ }
407
+ };
408
+ var PIONEER_TIER_THRESHOLDS = {
409
+ grower: 250,
410
+ cultivator: 750,
411
+ guardian: 1500
412
+ };
413
+ function calculatePioneerTier(points) {
414
+ if (points >= PIONEER_TIER_THRESHOLDS.guardian) {
415
+ return "guardian";
416
+ }
417
+ if (points >= PIONEER_TIER_THRESHOLDS.cultivator) {
418
+ return "cultivator";
419
+ }
420
+ if (points >= PIONEER_TIER_THRESHOLDS.grower) {
421
+ return "grower";
422
+ }
423
+ return "seedling";
424
+ }
425
+ __name(calculatePioneerTier, "calculatePioneerTier");
426
+ __name2(calculatePioneerTier, "calculatePioneerTier");
427
+ function getTierFeatures(tier) {
428
+ return TIER_FEATURES[tier] || [];
429
+ }
430
+ __name(getTierFeatures, "getTierFeatures");
431
+ __name2(getTierFeatures, "getTierFeatures");
432
+ function isFeatureAvailableAtTier(feature, tier) {
433
+ return TIER_FEATURES[tier]?.includes(feature) || false;
434
+ }
435
+ __name(isFeatureAvailableAtTier, "isFeatureAvailableAtTier");
436
+ __name2(isFeatureAvailableAtTier, "isFeatureAvailableAtTier");
437
+ function getTierLimit(tier, feature) {
438
+ return TIER_LIMITS[tier]?.[feature] ?? null;
439
+ }
440
+ __name(getTierLimit, "getTierLimit");
441
+ __name2(getTierLimit, "getTierLimit");
250
442
  (class {
251
443
  static {
252
444
  __name(this, "EventBus");
@@ -502,6 +694,33 @@ function setSpanStatusFromHttp(span, statusCode, options) {
502
694
  }
503
695
  __name(setSpanStatusFromHttp, "setSpanStatusFromHttp");
504
696
  __name2(setSpanStatusFromHttp, "setSpanStatusFromHttp");
697
+ function createDefaultWorkspace(userId, repoPath) {
698
+ return {
699
+ workspaceId: `ws_default_${userId}`,
700
+ workspaceName: "Personal Workspace",
701
+ repoPath,
702
+ userId,
703
+ permissions: {
704
+ read: true,
705
+ write: true,
706
+ manage: true,
707
+ invite: false
708
+ },
709
+ resolvedFrom: "default_workspace"
710
+ };
711
+ }
712
+ __name(createDefaultWorkspace, "createDefaultWorkspace");
713
+ __name2(createDefaultWorkspace, "createDefaultWorkspace");
714
+ function hasPermission(binding, permission) {
715
+ return binding.permissions[permission];
716
+ }
717
+ __name(hasPermission, "hasPermission");
718
+ __name2(hasPermission, "hasPermission");
719
+ function generateCacheKey(repoPath, userId) {
720
+ return `workspace_resolution:${userId}:${repoPath}`;
721
+ }
722
+ __name(generateCacheKey, "generateCacheKey");
723
+ __name2(generateCacheKey, "generateCacheKey");
505
724
  var SessionSchemaVersion = "sb.session.v1";
506
725
  var ChangeOpSchema = z.enum([
507
726
  "created",
@@ -1203,30 +1422,6 @@ var RiskScoreSchema = z.object({
1203
1422
  factors: z.array(z.string()),
1204
1423
  severity: RiskSeveritySchema
1205
1424
  });
1206
- z.object({
1207
- id: z.string(),
1208
- timestamp: z.number(),
1209
- version: z.string().default("1.0"),
1210
- meta: z.record(z.string(), z.any()).optional(),
1211
- files: z.array(z.string()).optional(),
1212
- fileContents: z.record(z.string(), z.string()).optional()
1213
- });
1214
- z.object({
1215
- path: z.string(),
1216
- size: z.number(),
1217
- createdAt: z.number(),
1218
- updatedAt: z.number(),
1219
- hash: z.string().optional(),
1220
- permissions: z.string().optional()
1221
- });
1222
- z.object({
1223
- id: z.string(),
1224
- name: z.string(),
1225
- description: z.string().optional(),
1226
- createdAt: z.number(),
1227
- createdBy: z.string().optional(),
1228
- tags: z.array(z.string()).optional()
1229
- });
1230
1425
  z.object({
1231
1426
  metrics: z.record(z.string(), z.number()),
1232
1427
  trends: z.record(z.string(), z.array(z.number())),
@@ -1346,7 +1541,7 @@ var CheckpointTypeSchema = z.enum([
1346
1541
  "POST",
1347
1542
  "PRE_ROLLBACK"
1348
1543
  ]);
1349
- var SnapshotSchema2 = z.object({
1544
+ var SnapshotSchema = z.object({
1350
1545
  id: z.string(),
1351
1546
  timestamp: z.number(),
1352
1547
  version: z.string().optional().default("1.0"),
@@ -1382,7 +1577,7 @@ z.object({
1382
1577
  timestamp: z.number(),
1383
1578
  files: z.array(FileStateSchema)
1384
1579
  });
1385
- SnapshotSchema2.extend({
1580
+ SnapshotSchema.extend({
1386
1581
  name: z.string(),
1387
1582
  fileStates: z.array(FileStateSchema).optional(),
1388
1583
  isProtected: z.boolean(),
@@ -2314,7 +2509,7 @@ var init_SessionRollback = __esm({
2314
2509
  throw new Error(`Missing hash for ${change.op} operation on ${change.p}`);
2315
2510
  }
2316
2511
  const blobResult = await this.blobStore.get(hash);
2317
- if (!blobResult.ok) {
2512
+ if (!blobResult.success) {
2318
2513
  throw new Error(`Failed to retrieve blob ${hash}: ${blobResult.error.message}`);
2319
2514
  }
2320
2515
  const content = blobResult.value;
@@ -3290,6 +3485,23 @@ function assertPathWithinRoot(path11, root, invariantId) {
3290
3485
  __name(assertPathWithinRoot, "assertPathWithinRoot");
3291
3486
  __name4(assertPathWithinRoot, "assertPathWithinRoot");
3292
3487
  var SNAPBACK_LAYER_RULES = [
3488
+ {
3489
+ id: "web-no-platform",
3490
+ description: "Web layer (apps/web) cannot import @snapback/platform directly - use SDK/API instead",
3491
+ source: [
3492
+ "apps/web"
3493
+ ],
3494
+ target: [
3495
+ "@snapback/platform",
3496
+ "packages/platform"
3497
+ ],
3498
+ type: "no-dependency",
3499
+ severity: "error",
3500
+ exclude: [
3501
+ "tests/integration",
3502
+ "app/api"
3503
+ ]
3504
+ },
3293
3505
  {
3294
3506
  id: "presentation-no-infrastructure",
3295
3507
  description: "Presentation layer (apps/) cannot import @snapback/infrastructure directly",
@@ -7180,9 +7392,10 @@ var PrivacyValidator = class {
7180
7392
  "absolutePath"
7181
7393
  ];
7182
7394
  const props = this.getAllProps(data);
7183
- for (const prop of forbidden) {
7184
- if (props.includes(prop)) {
7185
- console.warn(`Privacy violation: forbidden property '${prop}' in request`);
7395
+ for (const prop of props) {
7396
+ const propName = prop.split(".").pop() || prop;
7397
+ if (forbidden.includes(propName)) {
7398
+ console.warn(`Privacy violation: forbidden property '${propName}' in request`);
7186
7399
  return false;
7187
7400
  }
7188
7401
  }
@@ -9168,7 +9381,7 @@ var SessionManager = class {
9168
9381
  if (change.op !== "deleted") {
9169
9382
  const content = await fs3.readFile(absPath);
9170
9383
  const result = await this.options.blobStore.put(content);
9171
- if (result.ok) {
9384
+ if (result.success) {
9172
9385
  change.hNew = result.value;
9173
9386
  }
9174
9387
  }
@@ -9353,8 +9566,8 @@ var FileConflictResolver = class {
9353
9566
  */
9354
9567
  async resolveAndWrite(targetPath, content, _originalMetadata) {
9355
9568
  try {
9356
- const hasPermission = await this.checkPermissions(targetPath);
9357
- if (!hasPermission) {
9569
+ const hasPermission2 = await this.checkPermissions(targetPath);
9570
+ if (!hasPermission2) {
9358
9571
  this.logger.debug("No write permission for target path", {
9359
9572
  targetPath
9360
9573
  });
@@ -12009,14 +12222,18 @@ var DiffCalculator = class {
12009
12222
  removed++;
12010
12223
  i++;
12011
12224
  previewLineCount++;
12012
- if (previewLineCount >= maxPreviewLines) break;
12225
+ if (previewLineCount >= maxPreviewLines) {
12226
+ break;
12227
+ }
12013
12228
  }
12014
12229
  while (j < snapshotLines.length && snapshotLines[j] !== lcs[k] && previewLineCount < maxPreviewLines) {
12015
12230
  previewLines.push(`+ ${snapshotLines[j]}`);
12016
12231
  added++;
12017
12232
  j++;
12018
12233
  previewLineCount++;
12019
- if (previewLineCount >= maxPreviewLines) break;
12234
+ if (previewLineCount >= maxPreviewLines) {
12235
+ break;
12236
+ }
12020
12237
  }
12021
12238
  if (previewLineCount < maxPreviewLines) {
12022
12239
  previewLines.push(` ${lcs[k]}`);
@@ -12496,8 +12713,8 @@ var DistributedTokenManager = class {
12496
12713
  * This file is part of SnapBack OSS.
12497
12714
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12498
12715
  *
12499
- * Source: packages/contracts/src/auth/errors.ts
12500
- * Generated: 2026-01-11T17:16:21.775Z
12716
+ * Source: packages/contracts/src/api/attribution.ts
12717
+ * Generated: 2026-01-21T15:53:26.202Z
12501
12718
  */
12502
12719
  /**
12503
12720
  * @license Apache-2.0
@@ -12506,8 +12723,18 @@ var DistributedTokenManager = class {
12506
12723
  * This file is part of SnapBack OSS.
12507
12724
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12508
12725
  *
12726
+ * Source: packages/contracts/src/auth/errors.ts
12727
+ * Generated: 2026-01-21T15:53:26.205Z
12728
+ */
12729
+ /**
12730
+ * @license Apache-2.0
12731
+ * @copyright SnapBack Contributors
12732
+ *
12733
+ * This file is part of SnapBack OSS.
12734
+ * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12735
+ *
12509
12736
  * Source: packages/contracts/src/auth/session.ts
12510
- * Generated: 2026-01-11T17:16:21.776Z
12737
+ * Generated: 2026-01-21T15:53:26.205Z
12511
12738
  */
12512
12739
  /**
12513
12740
  * @license Apache-2.0
@@ -12517,7 +12744,7 @@ var DistributedTokenManager = class {
12517
12744
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12518
12745
  *
12519
12746
  * Source: packages/contracts/src/auth/api.ts
12520
- * Generated: 2026-01-11T17:16:21.775Z
12747
+ * Generated: 2026-01-21T15:53:26.204Z
12521
12748
  */
12522
12749
  /**
12523
12750
  * @license Apache-2.0
@@ -12527,7 +12754,27 @@ var DistributedTokenManager = class {
12527
12754
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12528
12755
  *
12529
12756
  * Source: packages/contracts/src/auth/index.ts
12530
- * Generated: 2026-01-11T17:16:21.775Z
12757
+ * Generated: 2026-01-21T15:53:26.205Z
12758
+ */
12759
+ /**
12760
+ * @license Apache-2.0
12761
+ * @copyright SnapBack Contributors
12762
+ *
12763
+ * This file is part of SnapBack OSS.
12764
+ * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12765
+ *
12766
+ * Source: packages/contracts/src/email/email-service.ts
12767
+ * Generated: 2026-01-21T15:53:26.205Z
12768
+ */
12769
+ /**
12770
+ * @license Apache-2.0
12771
+ * @copyright SnapBack Contributors
12772
+ *
12773
+ * This file is part of SnapBack OSS.
12774
+ * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12775
+ *
12776
+ * Source: packages/contracts/src/entitlements.ts
12777
+ * Generated: 2026-01-21T15:53:26.206Z
12531
12778
  */
12532
12779
  /**
12533
12780
  * @license Apache-2.0
@@ -12537,7 +12784,7 @@ var DistributedTokenManager = class {
12537
12784
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12538
12785
  *
12539
12786
  * Source: packages/contracts/src/eventBus.ts
12540
- * Generated: 2026-01-11T17:16:21.776Z
12787
+ * Generated: 2026-01-21T15:53:26.206Z
12541
12788
  */
12542
12789
  /**
12543
12790
  * @license Apache-2.0
@@ -12547,7 +12794,7 @@ var DistributedTokenManager = class {
12547
12794
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12548
12795
  *
12549
12796
  * Source: packages/contracts/src/features.ts
12550
- * Generated: 2026-01-11T17:16:21.778Z
12797
+ * Generated: 2026-01-21T15:53:26.208Z
12551
12798
  */
12552
12799
  /**
12553
12800
  * @license Apache-2.0
@@ -12557,7 +12804,7 @@ var DistributedTokenManager = class {
12557
12804
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12558
12805
  *
12559
12806
  * Source: packages/contracts/src/id-generator.ts
12560
- * Generated: 2026-01-11T17:16:21.779Z
12807
+ * Generated: 2026-01-21T15:53:26.208Z
12561
12808
  */
12562
12809
  /**
12563
12810
  * @license Apache-2.0
@@ -12567,7 +12814,7 @@ var DistributedTokenManager = class {
12567
12814
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12568
12815
  *
12569
12816
  * Source: packages/contracts/src/logger.ts
12570
- * Generated: 2026-01-11T17:16:21.779Z
12817
+ * Generated: 2026-01-21T15:53:26.209Z
12571
12818
  */
12572
12819
  /**
12573
12820
  * @license Apache-2.0
@@ -12577,7 +12824,7 @@ var DistributedTokenManager = class {
12577
12824
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12578
12825
  *
12579
12826
  * Source: packages/contracts/src/observability/InstrumentationProvider.ts
12580
- * Generated: 2026-01-11T17:16:21.780Z
12827
+ * Generated: 2026-01-21T15:53:26.209Z
12581
12828
  */
12582
12829
  /**
12583
12830
  * @license Apache-2.0
@@ -12587,7 +12834,7 @@ var DistributedTokenManager = class {
12587
12834
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12588
12835
  *
12589
12836
  * Source: packages/contracts/src/observability/SemanticConventions.ts
12590
- * Generated: 2026-01-11T17:16:21.780Z
12837
+ * Generated: 2026-01-21T15:53:26.209Z
12591
12838
  */
12592
12839
  /**
12593
12840
  * @license Apache-2.0
@@ -12597,7 +12844,7 @@ var DistributedTokenManager = class {
12597
12844
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12598
12845
  *
12599
12846
  * Source: packages/contracts/src/observability/types.ts
12600
- * Generated: 2026-01-11T17:16:21.781Z
12847
+ * Generated: 2026-01-21T15:53:26.209Z
12601
12848
  */
12602
12849
  /**
12603
12850
  * @license Apache-2.0
@@ -12607,7 +12854,7 @@ var DistributedTokenManager = class {
12607
12854
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12608
12855
  *
12609
12856
  * Source: packages/contracts/src/observability/utils.ts
12610
- * Generated: 2026-01-11T17:16:21.781Z
12857
+ * Generated: 2026-01-21T15:53:26.209Z
12611
12858
  */
12612
12859
  /**
12613
12860
  * @license Apache-2.0
@@ -12617,7 +12864,17 @@ var DistributedTokenManager = class {
12617
12864
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12618
12865
  *
12619
12866
  * Source: packages/contracts/src/observability/index.ts
12620
- * Generated: 2026-01-11T17:16:21.780Z
12867
+ * Generated: 2026-01-21T15:53:26.209Z
12868
+ */
12869
+ /**
12870
+ * @license Apache-2.0
12871
+ * @copyright SnapBack Contributors
12872
+ *
12873
+ * This file is part of SnapBack OSS.
12874
+ * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12875
+ *
12876
+ * Source: packages/contracts/src/workspace/workspace-resolution.ts
12877
+ * Generated: 2026-01-21T15:53:26.213Z
12621
12878
  */
12622
12879
  /**
12623
12880
  * @license Apache-2.0
@@ -12627,7 +12884,7 @@ var DistributedTokenManager = class {
12627
12884
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12628
12885
  *
12629
12886
  * Source: packages/contracts/src/session.ts
12630
- * Generated: 2026-01-11T17:16:21.783Z
12887
+ * Generated: 2026-01-21T15:53:26.211Z
12631
12888
  */
12632
12889
  /**
12633
12890
  * @license Apache-2.0
@@ -12637,7 +12894,7 @@ var DistributedTokenManager = class {
12637
12894
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12638
12895
  *
12639
12896
  * Source: packages/contracts/src/session/file-modification.ts
12640
- * Generated: 2026-01-11T17:16:21.782Z
12897
+ * Generated: 2026-01-21T15:53:26.211Z
12641
12898
  */
12642
12899
  /**
12643
12900
  * @license Apache-2.0
@@ -12647,7 +12904,7 @@ var DistributedTokenManager = class {
12647
12904
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12648
12905
  *
12649
12906
  * Source: packages/contracts/src/session/index.ts
12650
- * Generated: 2026-01-11T17:16:21.783Z
12907
+ * Generated: 2026-01-21T15:53:26.211Z
12651
12908
  */
12652
12909
  /**
12653
12910
  * @license Apache-2.0
@@ -12657,7 +12914,7 @@ var DistributedTokenManager = class {
12657
12914
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12658
12915
  *
12659
12916
  * Source: packages/contracts/src/signals/index.ts
12660
- * Generated: 2026-01-11T17:16:21.783Z
12917
+ * Generated: 2026-01-21T15:53:26.211Z
12661
12918
  */
12662
12919
  /**
12663
12920
  * @license Apache-2.0
@@ -12667,7 +12924,7 @@ var DistributedTokenManager = class {
12667
12924
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12668
12925
  *
12669
12926
  * Source: packages/contracts/src/types/analysis.ts
12670
- * Generated: 2026-01-11T17:16:21.783Z
12927
+ * Generated: 2026-01-21T15:53:26.212Z
12671
12928
  */
12672
12929
  /**
12673
12930
  * @license Apache-2.0
@@ -12677,7 +12934,7 @@ var DistributedTokenManager = class {
12677
12934
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12678
12935
  *
12679
12936
  * Source: packages/contracts/src/types/branded.ts
12680
- * Generated: 2026-01-11T17:16:21.784Z
12937
+ * Generated: 2026-01-21T15:53:26.212Z
12681
12938
  */
12682
12939
  /**
12683
12940
  * @license Apache-2.0
@@ -12687,7 +12944,7 @@ var DistributedTokenManager = class {
12687
12944
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12688
12945
  *
12689
12946
  * Source: packages/contracts/src/types/config.ts
12690
- * Generated: 2026-01-11T17:16:21.784Z
12947
+ * Generated: 2026-01-21T15:53:26.212Z
12691
12948
  */
12692
12949
  /**
12693
12950
  * @license Apache-2.0
@@ -12697,7 +12954,7 @@ var DistributedTokenManager = class {
12697
12954
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12698
12955
  *
12699
12956
  * Source: packages/contracts/src/types/protection.ts
12700
- * Generated: 2026-01-11T17:16:21.784Z
12957
+ * Generated: 2026-01-21T15:53:26.212Z
12701
12958
  */
12702
12959
  /**
12703
12960
  * @license Apache-2.0
@@ -12707,7 +12964,7 @@ var DistributedTokenManager = class {
12707
12964
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12708
12965
  *
12709
12966
  * Source: packages/contracts/src/types/protection-utils.ts
12710
- * Generated: 2026-01-11T17:16:21.784Z
12967
+ * Generated: 2026-01-21T15:53:26.212Z
12711
12968
  */
12712
12969
  /**
12713
12970
  * @license Apache-2.0
@@ -12717,7 +12974,7 @@ var DistributedTokenManager = class {
12717
12974
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12718
12975
  *
12719
12976
  * Source: packages/contracts/src/schemas.ts
12720
- * Generated: 2026-01-11T17:16:21.782Z
12977
+ * Generated: 2026-01-21T15:53:26.211Z
12721
12978
  */
12722
12979
  /**
12723
12980
  * @license Apache-2.0
@@ -12727,7 +12984,7 @@ var DistributedTokenManager = class {
12727
12984
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12728
12985
  *
12729
12986
  * Source: packages/contracts/src/types/snapshot.ts
12730
- * Generated: 2026-01-11T17:16:21.785Z
12987
+ * Generated: 2026-01-21T15:53:26.213Z
12731
12988
  */
12732
12989
  /**
12733
12990
  * @license Apache-2.0
@@ -12737,9 +12994,9 @@ var DistributedTokenManager = class {
12737
12994
  * Auto-generated from packages/contracts - DO NOT EDIT DIRECTLY.
12738
12995
  *
12739
12996
  * Source: packages/contracts/src/index.ts
12740
- * Generated: 2026-01-11T17:16:21.779Z
12997
+ * Generated: 2026-01-21T15:53:26.208Z
12741
12998
  */
12742
12999
 
12743
13000
  export { AIPresenceDetector, AI_EXTENSION_IDS, ApiError, AuthenticationError, AuthorizationError, BurstHeuristicsDetector, ConfigDetector, CorruptedDataError, CursorDetector, DEFAULT_EXPERIENCE_THRESHOLDS, DEFAULT_MAX_SIZE, DEFAULT_RISK_THRESHOLDS, DEFAULT_THRESHOLDS, DefaultRiskAnalyzer, DeviceAuthClient, DiffCalculator, DistributedTokenManager, EncryptionService, ExperienceClassifier, FileChangeAnalyzer, FileConflictResolver, ID_PREFIX, InputValidationError, LRUCache, LocalStorage, MemoryStorage, MissingContentError, NoOpLogger, NodeTimerService, PathValidationError, PrivacySanitizer, PrivacyValidator, ProtectionClient, ProtectionDecisionEngine, ProtectionManager, RISK_FACTOR_DESCRIPTIONS, RateLimitError, RateLimiter, RetryPresets, RiskAnalyzer, SNAPBACK_LAYER_RULES, SessionCoordinator, SessionDeduplication, SessionManager, SessionRecovery, SessionRollback, SessionSummaryGenerator, SessionTagger, SnapBackError, SnapBackRCParser, Snapback, SnapbackClient, SnapshotClient, SnapshotCreationError, SnapshotDeletionService, SnapshotDuplicateError, SnapshotError, SnapshotIconStrategy, SnapshotManager, SnapshotNamingStrategy, SnapshotNotFoundError, SnapshotProtectedError, SnapshotRestoreError, SnapshotVerificationError, SnapshotVersionError, StorageBroker, StorageBrokerAdapter, StorageConnectionError, StorageError, StorageError2, StorageFullError, StorageFullError2, StorageIOError, StorageLockError, StorageLockError2, THRESHOLDS, TokenBucket, ValidationError, all, allOrErrors, analyze, andThen, applyAutomaticFix, areEqual, assertDefined, assertNonEmptyArray, assertNonEmptyString, assertPathWithinRoot, assertPositiveNumber, atomicWriteFile, atomicWriteFileSync, calculateBackoff, configureInvariant, createChangeSummary, createConfig, createDashboardMetricsClient, createDeviceAuthClient, createRule, createScopedInvariant, createSnapshotWithRetry, createSnapshotWithRetrySafe, createThresholds, createTokenBucket, defaultConfig, describeRiskFactor, describeRiskFactors, diagnoseSnapshotFailure, ensureSnapBackError, err, evaluatePolicy, formatDiagnosis, fromPromise, fromPromiseWith, generateAuditId, generateCheckpointId, generateId22 as generateId2, generateSessionId, generateSnapshotId2 as generateSnapshotId, getBlobPath, getDepth, getInvariantConfig, getStandardRiskFactors, getViolationCounts, hashContent, hashFilePath, hashWorkspaceId, ingestTelemetry, invariant, isApiError, isConsumptionAllowed, isConsumptionDenied, isErr, isKnownRiskFactor, isOk, isRateLimitAllowed, isRateLimitDenied, isRetryableError, isSnapBackError, isSnapshotError, isStorageError, isValidId, isValidationError, isWithin, makeSafeSessionFinalizedEvent, makeSafeSessionStartedEvent, map, mapErr, match, normalize, ok, parseIdPrefix, parseIdTimestamp, randomId, resetThresholds, resetViolationCounts, runArchCheck, sequence, sha256, softInvariant, tap, tapErr, toError, toError2, toPromise, tryAll, tryCatch, tryCatchAsync, typeInvariant, unwrap, unwrapOr, unwrapOrElse, updateThresholds, withRetry };
12744
- //# sourceMappingURL=chunk-YOVA65PS.js.map
12745
- //# sourceMappingURL=chunk-YOVA65PS.js.map
13001
+ //# sourceMappingURL=chunk-A3TUM7U4.js.map
13002
+ //# sourceMappingURL=chunk-A3TUM7U4.js.map