@superblocksteam/cli 2.0.143 → 2.0.144

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 (107) hide show
  1. package/README.md +1 -1
  2. package/dist/{acorn-AJDVE4QH.js → acorn-S3XDOUVU.js} +3 -3
  3. package/dist/{angular-HCD74UUN.js → angular-OWVUCDQR.js} +3 -3
  4. package/dist/{api-F6S327BR.js → api-TAPH6Y4J.js} +4 -4
  5. package/dist/{babel-DGXGAC2V.js → babel-5ELJZ5NQ.js} +3 -3
  6. package/dist/{chunk-IJCLINS2.js → chunk-3I6ZGWN5.js} +4 -4
  7. package/dist/{chunk-5OQ7NQV4.js → chunk-5RKQKN37.js} +3 -3
  8. package/dist/{chunk-PIDFAVJP.js → chunk-CYVUZ6D6.js} +196 -94
  9. package/dist/{chunk-PIDFAVJP.js.map → chunk-CYVUZ6D6.js.map} +1 -1
  10. package/dist/{chunk-BN5TUF3Y.js → chunk-GL4S3DN4.js} +4 -4
  11. package/dist/{chunk-S34EOP6X.js → chunk-J2UWOQA4.js} +6 -6
  12. package/dist/{chunk-USIYW3A4.js → chunk-LY3JPMKY.js} +3 -3
  13. package/dist/{chunk-VD5WKZGA.js → chunk-PEP3PEXO.js} +3 -3
  14. package/dist/{chunk-E2MD5ZBH.js → chunk-Q43TPOVK.js} +3 -3
  15. package/dist/{chunk-O2WVCRNM.js → chunk-Q5GMCMOT.js} +2 -2
  16. package/dist/{chunk-D5PQDEI6.js → chunk-QQE5UEK6.js} +4 -4
  17. package/dist/{chunk-6QQV5LEQ.js → chunk-SPTNX5AI.js} +3 -3
  18. package/dist/{chunk-FFCGZHEL.js → chunk-VJK7YL3J.js} +3 -3
  19. package/dist/{chunk-27IUQSAX.js → chunk-W54HMYUO.js} +3 -3
  20. package/dist/{chunk-C5XVC53E.js → chunk-XAZTX7N3.js} +4 -4
  21. package/dist/{chunk-TN3QNAXI.js → chunk-YIJVR5G5.js} +3 -3
  22. package/dist/{chunk-OPAOGRYR.js → chunk-YRLJYFA7.js} +6 -6
  23. package/dist/{chunk-JXYTQSRN.js → chunk-ZVBLKKWF.js} +3 -3
  24. package/dist/{chunk-IYOAZDIG.js → chunk-ZWRJVJHW.js} +3 -3
  25. package/dist/{cli-truncate-EY6G5XVS.js → cli-truncate-D7TFLX3S.js} +5 -5
  26. package/dist/commands/dev-parent.js +3 -3
  27. package/dist/{dd-trace-X6BCDZFK.js → dd-trace-U3XCSIMB.js} +7 -7
  28. package/dist/{dist-JBNFU3KF.js → dist-7SX2YTPP.js} +14 -14
  29. package/dist/{embedded-playwright-mcp-server-2ASGKCVK.js → embedded-playwright-mcp-server-G54QCOEY.js} +3 -3
  30. package/dist/{enquirer-CHX6BFNF.js → enquirer-B2R2NVDM.js} +4 -4
  31. package/dist/{estree-V3HH6CSB.js → estree-OYX5J4RB.js} +3 -3
  32. package/dist/{flow-LYVD3HXK.js → flow-WNHZYQFR.js} +3 -3
  33. package/dist/{getMachineId-bsd-ENXXSRHS.js → getMachineId-bsd-MK7O3R7X.js} +5 -5
  34. package/dist/{getMachineId-darwin-4D6IUTQ6.js → getMachineId-darwin-JSDRCJ5X.js} +5 -5
  35. package/dist/{getMachineId-linux-LIHRJEUH.js → getMachineId-linux-P2CBHLYA.js} +4 -4
  36. package/dist/{getMachineId-unsupported-BCZWGCE7.js → getMachineId-unsupported-LMLOPL2X.js} +4 -4
  37. package/dist/{getMachineId-win-LHKMWQEV.js → getMachineId-win-T22PGHW4.js} +5 -5
  38. package/dist/{glimmer-MHZASOJO.js → glimmer-BGV7N3DR.js} +3 -3
  39. package/dist/{graphql-CW7EUSGS.js → graphql-EODOYMY7.js} +3 -3
  40. package/dist/{html-BW7OUCKU.js → html-NP5HEU7O.js} +3 -3
  41. package/dist/{http-RBBCEWHG.js → http-7KMM2W3N.js} +13 -13
  42. package/dist/index.js +19 -19
  43. package/dist/{jiti-MPIN4J4M.js → jiti-GDPRTWYP.js} +3 -3
  44. package/dist/{log-update-QA5JAW4F.js → log-update-JZFESDU2.js} +6 -6
  45. package/dist/{markdown-7N4D66SE.js → markdown-6O7Y4XYY.js} +3 -3
  46. package/dist/{meriyah-O7NDPHVK.js → meriyah-SSJFYRMY.js} +3 -3
  47. package/dist/{postcss-RVIBE46M.js → postcss-4MIYHZHU.js} +3 -3
  48. package/dist/{read-pkg-DLPUGD3L.js → read-pkg-OBZOAGPV.js} +5 -5
  49. package/dist/{spans-XLTRZUJX.js → spans-FEFVEXJK.js} +4 -4
  50. package/dist/{src-GYWXJSR2.js → src-GNT3ICLH.js} +3 -3
  51. package/dist/{token-ZSR5DA2H.js → token-2RIOM65G.js} +5 -5
  52. package/dist/{token-util-GCRVCU73.js → token-util-5MSI23KF.js} +5 -5
  53. package/dist/{typescript-FUOY72ZB.js → typescript-JZ3VX46K.js} +3 -3
  54. package/dist/{wrap-ansi-NH7V6H4E.js → wrap-ansi-22YTBFFB.js} +5 -5
  55. package/dist/{yaml-EMVMCXGD.js → yaml-JVF3CN4J.js} +3 -3
  56. package/oclif.manifest.json +1 -1
  57. package/package.json +6 -6
  58. /package/dist/{acorn-AJDVE4QH.js.map → acorn-S3XDOUVU.js.map} +0 -0
  59. /package/dist/{angular-HCD74UUN.js.map → angular-OWVUCDQR.js.map} +0 -0
  60. /package/dist/{api-F6S327BR.js.map → api-TAPH6Y4J.js.map} +0 -0
  61. /package/dist/{babel-DGXGAC2V.js.map → babel-5ELJZ5NQ.js.map} +0 -0
  62. /package/dist/{chunk-IJCLINS2.js.map → chunk-3I6ZGWN5.js.map} +0 -0
  63. /package/dist/{chunk-5OQ7NQV4.js.map → chunk-5RKQKN37.js.map} +0 -0
  64. /package/dist/{chunk-BN5TUF3Y.js.map → chunk-GL4S3DN4.js.map} +0 -0
  65. /package/dist/{chunk-S34EOP6X.js.map → chunk-J2UWOQA4.js.map} +0 -0
  66. /package/dist/{chunk-USIYW3A4.js.map → chunk-LY3JPMKY.js.map} +0 -0
  67. /package/dist/{chunk-VD5WKZGA.js.map → chunk-PEP3PEXO.js.map} +0 -0
  68. /package/dist/{chunk-E2MD5ZBH.js.map → chunk-Q43TPOVK.js.map} +0 -0
  69. /package/dist/{chunk-O2WVCRNM.js.map → chunk-Q5GMCMOT.js.map} +0 -0
  70. /package/dist/{chunk-D5PQDEI6.js.map → chunk-QQE5UEK6.js.map} +0 -0
  71. /package/dist/{chunk-6QQV5LEQ.js.map → chunk-SPTNX5AI.js.map} +0 -0
  72. /package/dist/{chunk-FFCGZHEL.js.map → chunk-VJK7YL3J.js.map} +0 -0
  73. /package/dist/{chunk-27IUQSAX.js.map → chunk-W54HMYUO.js.map} +0 -0
  74. /package/dist/{chunk-C5XVC53E.js.map → chunk-XAZTX7N3.js.map} +0 -0
  75. /package/dist/{chunk-TN3QNAXI.js.map → chunk-YIJVR5G5.js.map} +0 -0
  76. /package/dist/{chunk-OPAOGRYR.js.map → chunk-YRLJYFA7.js.map} +0 -0
  77. /package/dist/{chunk-JXYTQSRN.js.map → chunk-ZVBLKKWF.js.map} +0 -0
  78. /package/dist/{chunk-IYOAZDIG.js.map → chunk-ZWRJVJHW.js.map} +0 -0
  79. /package/dist/{cli-truncate-EY6G5XVS.js.map → cli-truncate-D7TFLX3S.js.map} +0 -0
  80. /package/dist/{dd-trace-X6BCDZFK.js.map → dd-trace-U3XCSIMB.js.map} +0 -0
  81. /package/dist/{dist-JBNFU3KF.js.map → dist-7SX2YTPP.js.map} +0 -0
  82. /package/dist/{embedded-playwright-mcp-server-2ASGKCVK.js.map → embedded-playwright-mcp-server-G54QCOEY.js.map} +0 -0
  83. /package/dist/{enquirer-CHX6BFNF.js.map → enquirer-B2R2NVDM.js.map} +0 -0
  84. /package/dist/{estree-V3HH6CSB.js.map → estree-OYX5J4RB.js.map} +0 -0
  85. /package/dist/{flow-LYVD3HXK.js.map → flow-WNHZYQFR.js.map} +0 -0
  86. /package/dist/{getMachineId-bsd-ENXXSRHS.js.map → getMachineId-bsd-MK7O3R7X.js.map} +0 -0
  87. /package/dist/{getMachineId-darwin-4D6IUTQ6.js.map → getMachineId-darwin-JSDRCJ5X.js.map} +0 -0
  88. /package/dist/{getMachineId-linux-LIHRJEUH.js.map → getMachineId-linux-P2CBHLYA.js.map} +0 -0
  89. /package/dist/{getMachineId-unsupported-BCZWGCE7.js.map → getMachineId-unsupported-LMLOPL2X.js.map} +0 -0
  90. /package/dist/{getMachineId-win-LHKMWQEV.js.map → getMachineId-win-T22PGHW4.js.map} +0 -0
  91. /package/dist/{glimmer-MHZASOJO.js.map → glimmer-BGV7N3DR.js.map} +0 -0
  92. /package/dist/{graphql-CW7EUSGS.js.map → graphql-EODOYMY7.js.map} +0 -0
  93. /package/dist/{html-BW7OUCKU.js.map → html-NP5HEU7O.js.map} +0 -0
  94. /package/dist/{http-RBBCEWHG.js.map → http-7KMM2W3N.js.map} +0 -0
  95. /package/dist/{jiti-MPIN4J4M.js.map → jiti-GDPRTWYP.js.map} +0 -0
  96. /package/dist/{log-update-QA5JAW4F.js.map → log-update-JZFESDU2.js.map} +0 -0
  97. /package/dist/{markdown-7N4D66SE.js.map → markdown-6O7Y4XYY.js.map} +0 -0
  98. /package/dist/{meriyah-O7NDPHVK.js.map → meriyah-SSJFYRMY.js.map} +0 -0
  99. /package/dist/{postcss-RVIBE46M.js.map → postcss-4MIYHZHU.js.map} +0 -0
  100. /package/dist/{read-pkg-DLPUGD3L.js.map → read-pkg-OBZOAGPV.js.map} +0 -0
  101. /package/dist/{spans-XLTRZUJX.js.map → spans-FEFVEXJK.js.map} +0 -0
  102. /package/dist/{src-GYWXJSR2.js.map → src-GNT3ICLH.js.map} +0 -0
  103. /package/dist/{token-ZSR5DA2H.js.map → token-2RIOM65G.js.map} +0 -0
  104. /package/dist/{token-util-GCRVCU73.js.map → token-util-5MSI23KF.js.map} +0 -0
  105. /package/dist/{typescript-FUOY72ZB.js.map → typescript-JZ3VX46K.js.map} +0 -0
  106. /package/dist/{wrap-ansi-NH7V6H4E.js.map → wrap-ansi-22YTBFFB.js.map} +0 -0
  107. /package/dist/{yaml-EMVMCXGD.js.map → yaml-JVF3CN4J.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  if (typeof process === 'object' && process !== null &&
2
2
  process.env !== null && typeof process.env === 'object') {
3
3
  process.env.DD_GIT_REPOSITORY_URL = 'https://token@github.com/superblocksteam/superblocks.git';
4
- process.env.DD_GIT_COMMIT_SHA = '1aad56c62730d6ff55af106e15fc3d824552243f';
4
+ process.env.DD_GIT_COMMIT_SHA = '573ccc8978503d716b666b1259fb1851c4981bac';
5
5
  }
6
6
  import { createRequire as $dd_createRequire } from 'module';
7
7
  import { fileURLToPath as $dd_fileURLToPath } from 'url';
@@ -15,7 +15,7 @@ import {
15
15
  require_lib as require_lib2,
16
16
  require_lib2 as require_lib3,
17
17
  require_picocolors
18
- } from "./chunk-FFCGZHEL.js";
18
+ } from "./chunk-VJK7YL3J.js";
19
19
  import {
20
20
  debounce_default,
21
21
  get_default,
@@ -32,20 +32,20 @@ import {
32
32
  require_lib,
33
33
  require_slugify,
34
34
  throttle_default
35
- } from "./chunk-E2MD5ZBH.js";
35
+ } from "./chunk-Q43TPOVK.js";
36
36
  import {
37
37
  require_dd_trace,
38
38
  require_js_yaml,
39
39
  require_module_details_from_path,
40
40
  require_p_limit,
41
41
  require_path_to_regexp
42
- } from "./chunk-OPAOGRYR.js";
42
+ } from "./chunk-YRLJYFA7.js";
43
43
  import {
44
44
  require_commonjs
45
- } from "./chunk-USIYW3A4.js";
45
+ } from "./chunk-LY3JPMKY.js";
46
46
  import {
47
47
  require_dc_polyfill
48
- } from "./chunk-VD5WKZGA.js";
48
+ } from "./chunk-PEP3PEXO.js";
49
49
  import {
50
50
  ATTR_SUPERBLOCKS_BASE_URL,
51
51
  ATTR_SUPERBLOCKS_CSB_ID,
@@ -54,10 +54,10 @@ import {
54
54
  SERVICE_NAME,
55
55
  getEnvironmentFromHostname,
56
56
  otlpBaseUrl
57
- } from "./chunk-TN3QNAXI.js";
57
+ } from "./chunk-YIJVR5G5.js";
58
58
  import {
59
59
  require_token_error
60
- } from "./chunk-JXYTQSRN.js";
60
+ } from "./chunk-ZVBLKKWF.js";
61
61
  import {
62
62
  ROOT_CONTEXT,
63
63
  SpanKind,
@@ -70,7 +70,7 @@ import {
70
70
  metrics,
71
71
  propagation,
72
72
  trace
73
- } from "./chunk-5OQ7NQV4.js";
73
+ } from "./chunk-5RKQKN37.js";
74
74
  import {
75
75
  __commonJS,
76
76
  __esm,
@@ -79,7 +79,7 @@ import {
79
79
  __toCommonJS,
80
80
  __toESM,
81
81
  init_cjs_shims
82
- } from "./chunk-O2WVCRNM.js";
82
+ } from "./chunk-Q5GMCMOT.js";
83
83
 
84
84
  // ../../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js
85
85
  var require_constants2 = __commonJS({
@@ -38276,6 +38276,34 @@ var require_freeCreditsTier = __commonJS({
38276
38276
  }
38277
38277
  });
38278
38278
 
38279
+ // ../../../shared/dist/types/billing/pricingModel.js
38280
+ var require_pricingModel = __commonJS({
38281
+ "../../../shared/dist/types/billing/pricingModel.js"(exports) {
38282
+ "use strict";
38283
+ init_cjs_shims();
38284
+ Object.defineProperty(exports, "__esModule", { value: true });
38285
+ exports.PricingModelEnum = void 0;
38286
+ exports.isCreditsPricing = isCreditsPricing;
38287
+ exports.isSeatsPricing = isSeatsPricing;
38288
+ exports.resolvePricingModel = resolvePricingModel;
38289
+ var PricingModelEnum;
38290
+ (function(PricingModelEnum2) {
38291
+ PricingModelEnum2["CREDITS"] = "credits";
38292
+ PricingModelEnum2["SEATS"] = "seats";
38293
+ })(PricingModelEnum || (exports.PricingModelEnum = PricingModelEnum = {}));
38294
+ function isCreditsPricing(pricingModel) {
38295
+ return pricingModel === PricingModelEnum.CREDITS;
38296
+ }
38297
+ function isSeatsPricing(pricingModel) {
38298
+ return !isCreditsPricing(pricingModel);
38299
+ }
38300
+ var KNOWN_PRICING_MODELS = new Set(Object.values(PricingModelEnum));
38301
+ function resolvePricingModel(rawFlagValue) {
38302
+ return typeof rawFlagValue === "string" && KNOWN_PRICING_MODELS.has(rawFlagValue) ? rawFlagValue : PricingModelEnum.SEATS;
38303
+ }
38304
+ }
38305
+ });
38306
+
38279
38307
  // ../../../shared/dist/types/billing/billing.js
38280
38308
  var require_billing = __commonJS({
38281
38309
  "../../../shared/dist/types/billing/billing.js"(exports) {
@@ -38348,6 +38376,7 @@ var require_billing2 = __commonJS({
38348
38376
  };
38349
38377
  Object.defineProperty(exports, "__esModule", { value: true });
38350
38378
  __exportStar(require_freeCreditsTier(), exports);
38379
+ __exportStar(require_pricingModel(), exports);
38351
38380
  __exportStar(require_billing(), exports);
38352
38381
  __exportStar(require_spendAlert(), exports);
38353
38382
  }
@@ -38382,6 +38411,7 @@ var require_quota_paywall = __commonJS({
38382
38411
  "dollar_commit_exhausted",
38383
38412
  "no_seat_assigned",
38384
38413
  "payment_past_due",
38414
+ "provisioning_error",
38385
38415
  "token_limit_exceeded",
38386
38416
  "trial_expired",
38387
38417
  "user_credit_limit_exceeded"
@@ -38399,6 +38429,9 @@ var require_quota_paywall = __commonJS({
38399
38429
  if (normalizedMessage.includes("trial_expired") || normalizedMessage.includes("ai trial period has ended") || normalizedMessage.includes("free trial has ended")) {
38400
38430
  return "trial_expired";
38401
38431
  }
38432
+ if (normalizedMessage.includes("provisioning_error") || normalizedMessage.includes("hasn't finished provisioning") || normalizedMessage.includes("has not finished provisioning")) {
38433
+ return "provisioning_error";
38434
+ }
38402
38435
  if (normalizedMessage.includes("token_limit_exceeded")) {
38403
38436
  return "token_limit_exceeded";
38404
38437
  }
@@ -38455,6 +38488,10 @@ var require_quota_paywall = __commonJS({
38455
38488
  user_credit_limit_exceeded: {
38456
38489
  title: "You've reached your assigned usage limit",
38457
38490
  subtitle: "Contact an admin to request an increase."
38491
+ },
38492
+ provisioning_error: {
38493
+ title: "Your organization's plan isn't fully set up yet",
38494
+ subtitle: "Your subscription is active, but its usage allowance hasn't finished provisioning. Try again in a few minutes \u2014 if this persists, contact support@superblocks.com."
38458
38495
  }
38459
38496
  };
38460
38497
  exports.AI_QUOTA_PAYWALL_PRICE_PER_SEAT_ANNUAL = 100;
@@ -58217,20 +58254,6 @@ var require_postgres = __commonJS({
58217
58254
  }
58218
58255
  }
58219
58256
  },
58220
- {
58221
- label: "Session policy JSON (optional)",
58222
- name: "authentication.custom.sessionPolicy.value",
58223
- startVersion: PostgresPluginVersions.V13,
58224
- componentType: index_js_1.FormComponentType.CODE_EDITOR,
58225
- language: index_js_1.EditorLanguage.JSON,
58226
- rules: [{ required: false }],
58227
- display: {
58228
- show: {
58229
- "authentication.authType": [index_js_1.PostgresAuthType.AWS_IAM_ROLE],
58230
- connectionType: ["fields"]
58231
- }
58232
- }
58233
- },
58234
58257
  // DATABASE USERNAME
58235
58258
  { ...BASE_DATABASE_USERNAME, startVersion: PostgresPluginVersions.V1, endVersion: PostgresPluginVersions.V10 },
58236
58259
  {
@@ -58268,6 +58291,23 @@ var require_postgres = __commonJS({
58268
58291
  }
58269
58292
  }
58270
58293
  },
58294
+ {
58295
+ label: "Session policy JSON (optional)",
58296
+ name: "authentication.custom.sessionPolicy.value",
58297
+ startVersion: PostgresPluginVersions.V13,
58298
+ componentType: index_js_1.FormComponentType.CODE_EDITOR,
58299
+ language: index_js_1.EditorLanguage.JSON,
58300
+ rules: [{ required: false }],
58301
+ style: {
58302
+ height: "100px"
58303
+ },
58304
+ display: {
58305
+ show: {
58306
+ "authentication.authType": [index_js_1.PostgresAuthType.AWS_IAM_ROLE],
58307
+ connectionType: ["fields"]
58308
+ }
58309
+ }
58310
+ },
58271
58311
  // DATABASE PASSWORD
58272
58312
  { ...BASE_DATABASE_PASSWORD, startVersion: PostgresPluginVersions.V1, endVersion: PostgresPluginVersions.V10 },
58273
58313
  {
@@ -66656,10 +66696,10 @@ var require_errorSanitizer = __commonJS({
66656
66696
  /(\bbasic\s+)\S+/gi,
66657
66697
  // Basic auth can contain any non-whitespace characters
66658
66698
  /(\bjwt\s+)[a-zA-Z0-9\-._~+/]+=*/gi,
66659
- /(\btoken[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
66660
- /(\bapi[_\s]?key[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
66661
- /(\baccess[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
66662
- /(\brefresh[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
66699
+ /(\btoken[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
66700
+ /(\bapi[_\s]?key[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
66701
+ /(\baccess[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
66702
+ /(\brefresh[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
66663
66703
  // JWT pattern (base64.base64.base64) - standalone tokens
66664
66704
  /\b[A-Za-z0-9-_]{20,}\.[A-Za-z0-9-_]{20,}\.[A-Za-z0-9-_]{20,}\b/g
66665
66705
  ];
@@ -78061,7 +78101,7 @@ var require_database_lifecycle = __commonJS({
78061
78101
  "use strict";
78062
78102
  init_cjs_shims();
78063
78103
  Object.defineProperty(exports, "__esModule", { value: true });
78064
- exports.CREDENTIAL_BEARING_DSN_SCHEMES = exports.SECRET_KEY_PATTERN = exports.PHYSICAL_DATABASE_INSTANCE_STATUSES = exports.CREDENTIAL_RESOLVERS = exports.DATABASE_LIFECYCLE_TAG_CAPABILITIES = exports.DATABASE_LIFECYCLE_TAG_ENVIRONMENT_PROFILES = exports.DATABASE_LIFECYCLE_TAG_ENGINES = exports.DATABASE_LIFECYCLE_TAG_OPERATIONS = exports.DATABASE_LIFECYCLE_CAPABILITY_MANAGED_IAM_V1 = exports.NATIVE_DB_IDENTIFIER_HASH_DOMAIN = exports.NATIVE_DB_IAM_AUTH_MODE = exports.NATIVE_DB_CONNECTOR_ROLE_NAME_PREFIX = exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION = exports.DATABASE_LIFECYCLE_MANAGED_BY = exports.DATABASE_ENGINES = exports.LIFECYCLE_ENVIRONMENTS = exports.LIFECYCLE_OPERATIONS = exports.LIFECYCLE_MIGRATION_STATES = exports.LIFECYCLE_STATES = exports.LIFECYCLE_NON_TERMINAL_STATES = exports.LIFECYCLE_TERMINAL_STATES = void 0;
78104
+ exports.CREDENTIAL_BEARING_DSN_SCHEMES = exports.SECRET_KEY_PATTERN = exports.PHYSICAL_DATABASE_INSTANCE_STATUSES = exports.CREDENTIAL_RESOLVERS = exports.DATABASE_LIFECYCLE_TAG_CAPABILITIES = exports.DATABASE_LIFECYCLE_TAG_ENVIRONMENT_PROFILES = exports.DATABASE_LIFECYCLE_TAG_ENGINES = exports.DATABASE_LIFECYCLE_TAG_OPERATIONS = exports.DATABASE_LIFECYCLE_CAPABILITY_MANAGED_IAM_V1 = exports.NATIVE_DB_IDENTIFIER_HASH_DOMAIN = exports.NATIVE_DB_IAM_AUTH_MODE = exports.NATIVE_DB_CONNECTOR_ROLE_NAME_PREFIX = exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSIONS = exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION = exports.DATABASE_LIFECYCLE_MANAGED_BY = exports.DATABASE_ENGINES = exports.LIFECYCLE_ENVIRONMENTS = exports.LIFECYCLE_OPERATIONS = exports.LIFECYCLE_MIGRATION_STATES = exports.LIFECYCLE_STATES = exports.LIFECYCLE_NON_TERMINAL_STATES = exports.LIFECYCLE_TERMINAL_STATES = void 0;
78065
78105
  exports.isReadyDatabaseBinding = isReadyDatabaseBinding;
78066
78106
  exports.computeRequirementKey = computeRequirementKey;
78067
78107
  exports.computeBindingKey = computeBindingKey;
@@ -78070,6 +78110,7 @@ var require_database_lifecycle = __commonJS({
78070
78110
  exports.nativeDbIamSessionPolicy = nativeDbIamSessionPolicy;
78071
78111
  exports.parseNativeDbIamDescriptor = parseNativeDbIamDescriptor;
78072
78112
  exports.computeNativeDbApplicationToken = computeNativeDbApplicationToken;
78113
+ exports.computeNativeDbBindingToken = computeNativeDbBindingToken;
78073
78114
  exports.computeNativeDbDatabaseName = computeNativeDbDatabaseName;
78074
78115
  exports.computeResourceKey = computeResourceKey;
78075
78116
  exports.isTerminalLifecycleState = isTerminalLifecycleState;
@@ -78085,7 +78126,8 @@ var require_database_lifecycle = __commonJS({
78085
78126
  exports.LIFECYCLE_ENVIRONMENTS = ["edit", "preview", "deployed"];
78086
78127
  exports.DATABASE_ENGINES = ["postgres", "snowflake", "snowflake_postgres", "lakebase"];
78087
78128
  exports.DATABASE_LIFECYCLE_MANAGED_BY = "database_lifecycle";
78088
- exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION = 1;
78129
+ exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION = 2;
78130
+ exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSIONS = [1, exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION];
78089
78131
  exports.NATIVE_DB_CONNECTOR_ROLE_NAME_PREFIX = "superblocks-native-db-connector";
78090
78132
  exports.NATIVE_DB_IAM_AUTH_MODE = "aws_iam_role";
78091
78133
  exports.NATIVE_DB_IDENTIFIER_HASH_DOMAIN = "superblocks-native-db:v1";
@@ -78136,12 +78178,12 @@ var require_database_lifecycle = __commonJS({
78136
78178
  const databaseIdentifier = typeof value2.database === "string" ? /^sbndb_([0-9a-f]{12})_([0-9a-f]{24})$/.exec(value2.database) : null;
78137
78179
  const usernameIdentifier = typeof value2.username === "string" ? /^sbndb_([0-9a-f]{12})_([0-9a-f]{24})_runtime$/.exec(value2.username) : null;
78138
78180
  const connectorRoleArn = typeof value2.connector_role_arn === "string" ? /^arn:aws:iam::(\d{12}):role\/(?:[\w+=,.@-]+\/)*[\w+=,.@-]+$/.exec(value2.connector_role_arn) : null;
78139
- if (!isNonEmptyString(value2.application_id) || value2.auth_descriptor_version !== exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION || value2.auth_mode !== exports.NATIVE_DB_IAM_AUTH_MODE || !isNonEmptyString(value2.aws_account_id) || !/^\d{12}$/.test(value2.aws_account_id) || !isNonEmptyString(value2.binding_id) || !isNonEmptyString(value2.cluster_resource_id) || !/^(cluster|db)-[A-Za-z0-9-]+$/.test(value2.cluster_resource_id) || !connectorRoleArn || connectorRoleArn[1] !== value2.aws_account_id || !databaseIdentifier || !usernameIdentifier || databaseIdentifier[1] !== usernameIdentifier[1] || !isValidNativeDbRdsHostname(value2.host, value2.region) || typeof value2.port !== "number" || !Number.isInteger(value2.port) || value2.port < 1 || value2.port > 65535 || !isCommercialAwsRegion(value2.region)) {
78181
+ if (!isNonEmptyString(value2.application_id) || !isNativeDbAuthDescriptorVersion(value2.auth_descriptor_version) || value2.auth_mode !== exports.NATIVE_DB_IAM_AUTH_MODE || !isNonEmptyString(value2.aws_account_id) || !/^\d{12}$/.test(value2.aws_account_id) || !isNonEmptyString(value2.binding_id) || !isNonEmptyString(value2.cluster_resource_id) || !/^(cluster|db)-[A-Za-z0-9-]+$/.test(value2.cluster_resource_id) || !connectorRoleArn || connectorRoleArn[1] !== value2.aws_account_id || !databaseIdentifier || !usernameIdentifier || databaseIdentifier[1] !== usernameIdentifier[1] || value2.auth_descriptor_version === exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION && databaseIdentifier[2] !== usernameIdentifier[2] || !isValidNativeDbRdsHostname(value2.host, value2.region) || typeof value2.port !== "number" || !Number.isInteger(value2.port) || value2.port < 1 || value2.port > 65535 || !isCommercialAwsRegion(value2.region)) {
78140
78182
  return void 0;
78141
78183
  }
78142
78184
  return {
78143
78185
  application_id: value2.application_id,
78144
- auth_descriptor_version: exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION,
78186
+ auth_descriptor_version: value2.auth_descriptor_version,
78145
78187
  auth_mode: exports.NATIVE_DB_IAM_AUTH_MODE,
78146
78188
  aws_account_id: value2.aws_account_id,
78147
78189
  binding_id: value2.binding_id,
@@ -78157,11 +78199,14 @@ var require_database_lifecycle = __commonJS({
78157
78199
  async function computeNativeDbApplicationToken(trustedApplicationId) {
78158
78200
  return (await computeNativeDbIdentifierToken("application", trustedApplicationId)).slice(0, 24);
78159
78201
  }
78202
+ async function computeNativeDbBindingToken(trustedBindingId) {
78203
+ return (await computeNativeDbIdentifierToken("database", trustedBindingId)).slice(0, 24);
78204
+ }
78160
78205
  async function computeNativeDbDatabaseName(deploymentToken, trustedDatabaseId) {
78161
78206
  if (!/^[0-9a-f]{12}$/.test(deploymentToken)) {
78162
78207
  throw new Error("Native database deployment token must be 12 lowercase hexadecimal characters");
78163
78208
  }
78164
- return `sbndb_${deploymentToken}_${(await computeNativeDbIdentifierToken("database", trustedDatabaseId)).slice(0, 24)}`;
78209
+ return `sbndb_${deploymentToken}_${await computeNativeDbBindingToken(trustedDatabaseId)}`;
78165
78210
  }
78166
78211
  async function computeNativeDbIdentifierToken(kind, trustedId) {
78167
78212
  if (!isNonEmptyString(trustedId)) {
@@ -78210,6 +78255,9 @@ var require_database_lifecycle = __commonJS({
78210
78255
  function isCommercialAwsRegion(value2) {
78211
78256
  return typeof value2 === "string" && /^[a-z]{2}-[a-z]+-[0-9]+$/.test(value2) && !value2.startsWith("cn-") && !value2.startsWith("us-gov-");
78212
78257
  }
78258
+ function isNativeDbAuthDescriptorVersion(value2) {
78259
+ return value2 === 1 || value2 === exports.NATIVE_DB_AUTH_DESCRIPTOR_VERSION;
78260
+ }
78213
78261
  function isNonEmptyString(value2) {
78214
78262
  return typeof value2 === "string" && value2.trim().length > 0;
78215
78263
  }
@@ -98056,15 +98104,15 @@ var require_api_files = __commonJS({
98056
98104
  exports.readAppApiYamlFile = readAppApiYamlFile4;
98057
98105
  exports.resolveLanguageSpecificStepContentFromBlocks = resolveLanguageSpecificStepContentFromBlocks2;
98058
98106
  async function writeApiFiles3(...args) {
98059
- const esmFunction = await import("./api-F6S327BR.js");
98107
+ const esmFunction = await import("./api-TAPH6Y4J.js");
98060
98108
  return esmFunction.writeApiFiles(...args);
98061
98109
  }
98062
98110
  async function readAppApiYamlFile4(...args) {
98063
- const esmFunction = await import("./api-F6S327BR.js");
98111
+ const esmFunction = await import("./api-TAPH6Y4J.js");
98064
98112
  return esmFunction.readAppApiYamlFile(...args);
98065
98113
  }
98066
98114
  async function resolveLanguageSpecificStepContentFromBlocks2(...args) {
98067
- const esmFunction = await import("./api-F6S327BR.js");
98115
+ const esmFunction = await import("./api-TAPH6Y4J.js");
98068
98116
  return esmFunction.resolveLanguageSpecificStepContentFromBlocks(...args);
98069
98117
  }
98070
98118
  }
@@ -104752,19 +104800,19 @@ var require_getMachineId = __commonJS({
104752
104800
  if (!getMachineIdImpl) {
104753
104801
  switch (process5.platform) {
104754
104802
  case "darwin":
104755
- getMachineIdImpl = (await import("./getMachineId-darwin-4D6IUTQ6.js")).getMachineId;
104803
+ getMachineIdImpl = (await import("./getMachineId-darwin-JSDRCJ5X.js")).getMachineId;
104756
104804
  break;
104757
104805
  case "linux":
104758
- getMachineIdImpl = (await import("./getMachineId-linux-LIHRJEUH.js")).getMachineId;
104806
+ getMachineIdImpl = (await import("./getMachineId-linux-P2CBHLYA.js")).getMachineId;
104759
104807
  break;
104760
104808
  case "freebsd":
104761
- getMachineIdImpl = (await import("./getMachineId-bsd-ENXXSRHS.js")).getMachineId;
104809
+ getMachineIdImpl = (await import("./getMachineId-bsd-MK7O3R7X.js")).getMachineId;
104762
104810
  break;
104763
104811
  case "win32":
104764
- getMachineIdImpl = (await import("./getMachineId-win-LHKMWQEV.js")).getMachineId;
104812
+ getMachineIdImpl = (await import("./getMachineId-win-T22PGHW4.js")).getMachineId;
104765
104813
  break;
104766
104814
  default:
104767
- getMachineIdImpl = (await import("./getMachineId-unsupported-BCZWGCE7.js")).getMachineId;
104815
+ getMachineIdImpl = (await import("./getMachineId-unsupported-LMLOPL2X.js")).getMachineId;
104768
104816
  break;
104769
104817
  }
104770
104818
  }
@@ -185967,8 +186015,8 @@ var require_get_vercel_oidc_token = __commonJS({
185967
186015
  }
185968
186016
  try {
185969
186017
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
185970
- await import("./token-util-GCRVCU73.js"),
185971
- await import("./token-ZSR5DA2H.js")
186018
+ await import("./token-util-5MSI23KF.js"),
186019
+ await import("./token-2RIOM65G.js")
185972
186020
  ]);
185973
186021
  if (!token2 || isExpired(getTokenPayload(token2))) {
185974
186022
  await refreshToken();
@@ -470728,7 +470776,7 @@ var require_config_loader = __commonJS({
470728
470776
  * @returns {Promise<{createJiti: Function|undefined, version: string;}>} A promise that fulfills with an object containing the jiti module's createJiti function and version.
470729
470777
  */
470730
470778
  static async loadJiti() {
470731
- const { createJiti } = await import("./jiti-MPIN4J4M.js");
470779
+ const { createJiti } = await import("./jiti-GDPRTWYP.js");
470732
470780
  const version3 = require_package5().version;
470733
470781
  return { createJiti, version: version3 };
470734
470782
  }
@@ -471057,7 +471105,7 @@ var require_eslint_helpers = __commonJS({
471057
471105
  }
471058
471106
  async function globMatch({ basePath, pattern }) {
471059
471107
  let found = false;
471060
- const { hfs } = await import("./src-GYWXJSR2.js");
471108
+ const { hfs } = await import("./src-GNT3ICLH.js");
471061
471109
  const patternToUse = normalizeToPosix(path81.relative(basePath, pattern));
471062
471110
  const matcher = new Minimatch2(patternToUse, MINIMATCH_OPTIONS);
471063
471111
  const walkSettings = {
@@ -471097,7 +471145,7 @@ var require_eslint_helpers = __commonJS({
471097
471145
  return new Minimatch2(patternToUse, MINIMATCH_OPTIONS);
471098
471146
  });
471099
471147
  const unmatchedPatterns = /* @__PURE__ */ new Set([...relativeToPatterns.keys()]);
471100
- const { hfs } = await import("./src-GYWXJSR2.js");
471148
+ const { hfs } = await import("./src-GNT3ICLH.js");
471101
471149
  const walk2 = hfs.walk(basePath, {
471102
471150
  async directoryFilter(entry) {
471103
471151
  if (!matchers.some((matcher) => matcher.match(entry.path, true))) {
@@ -537574,19 +537622,19 @@ var DEFAULT_SECRET_PATTERNS = [
537574
537622
  { pattern: /(\bbasic\s+)\S+/gi, replacement: "$1[REDACTED]" },
537575
537623
  { pattern: /(\bjwt\s+)[a-zA-Z0-9\-._~+/]+=*/gi, replacement: "$1[REDACTED]" },
537576
537624
  {
537577
- pattern: /(\btoken[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
537625
+ pattern: /(\btoken[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
537578
537626
  replacement: "$1[REDACTED]"
537579
537627
  },
537580
537628
  {
537581
- pattern: /(\bapi[_\s]?key[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
537629
+ pattern: /(\bapi[_\s]?key[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
537582
537630
  replacement: "$1[REDACTED]"
537583
537631
  },
537584
537632
  {
537585
- pattern: /(\baccess[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
537633
+ pattern: /(\baccess[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
537586
537634
  replacement: "$1[REDACTED]"
537587
537635
  },
537588
537636
  {
537589
- pattern: /(\brefresh[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
537637
+ pattern: /(\brefresh[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]{16,}=*/gi,
537590
537638
  replacement: "$1[REDACTED]"
537591
537639
  },
537592
537640
  // JWT pattern (base64.base64.base64) - standalone tokens
@@ -537780,7 +537828,7 @@ var CLOUD_PREM_REDACT_PATTERNS = [
537780
537828
  // Bearer tokens
537781
537829
  /\bbearer\s+[a-zA-Z0-9\-._~+/]+=*/gi,
537782
537830
  // API keys
537783
- /\bapi[_\s]?key[:\s=]+[a-zA-Z0-9\-._~+/]+=*/gi
537831
+ /\bapi[_\s]?key[:\s=]+[a-zA-Z0-9\-._~+/]{16,}=*/gi
537784
537832
  ];
537785
537833
  function redactSensitivePatterns(text3, patterns) {
537786
537834
  if (!text3 || typeof text3 !== "string")
@@ -539036,9 +539084,9 @@ var MetricsClient = class {
539036
539084
  /**
539037
539085
  * Creates or retrieves a counter and returns a handle.
539038
539086
  */
539039
- counter(name16) {
539087
+ counter(name16, options8) {
539040
539088
  if (!this.counters.has(name16)) {
539041
- this.counters.set(name16, this.meter.createCounter(name16));
539089
+ this.counters.set(name16, this.meter.createCounter(name16, options8));
539042
539090
  }
539043
539091
  const counter = this.counters.get(name16);
539044
539092
  return {
@@ -539079,7 +539127,15 @@ var MetricsClient = class {
539079
539127
  */
539080
539128
  histogram(name16, options8) {
539081
539129
  if (!this.histograms.has(name16)) {
539082
- this.histograms.set(name16, this.meter.createHistogram(name16, options8?.bucketBoundaries ? { advice: { explicitBucketBoundaries: options8.bucketBoundaries } } : void 0));
539130
+ this.histograms.set(name16, this.meter.createHistogram(name16, options8 ? {
539131
+ ...options8.bucketBoundaries ? {
539132
+ advice: {
539133
+ explicitBucketBoundaries: options8.bucketBoundaries
539134
+ }
539135
+ } : {},
539136
+ ...options8.description ? { description: options8.description } : {},
539137
+ ...options8.unit ? { unit: options8.unit } : {}
539138
+ } : void 0));
539083
539139
  }
539084
539140
  const histogram = this.histograms.get(name16);
539085
539141
  return {
@@ -539089,10 +539145,11 @@ var MetricsClient = class {
539089
539145
  };
539090
539146
  }
539091
539147
  /**
539092
- * Increments a counter by name (creates if not exists).
539148
+ * Increments a counter by name (creates if not exists). `options` is only
539149
+ * applied on the instrument's first registration; see `counter`.
539093
539150
  */
539094
- incCounter(name16, labels, value2 = 1) {
539095
- this.counter(name16).inc(labels, value2);
539151
+ incCounter(name16, labels, value2 = 1, options8) {
539152
+ this.counter(name16, options8).inc(labels, value2);
539096
539153
  }
539097
539154
  /**
539098
539155
  * Sets a gauge value by name (creates if not exists).
@@ -539101,10 +539158,11 @@ var MetricsClient = class {
539101
539158
  this.gauge(name16).set(labels, value2);
539102
539159
  }
539103
539160
  /**
539104
- * Observes a histogram value by name (creates if not exists).
539161
+ * Observes a histogram value by name (creates if not exists). `options` is
539162
+ * only applied on the instrument's first registration; see `histogram`.
539105
539163
  */
539106
- observeHistogram(name16, labels, value2) {
539107
- this.histogram(name16).observe(labels, value2);
539164
+ observeHistogram(name16, labels, value2, options8) {
539165
+ this.histogram(name16, options8).observe(labels, value2);
539108
539166
  }
539109
539167
  };
539110
539168
 
@@ -539506,7 +539564,7 @@ init_cjs_shims();
539506
539564
  // ../sdk/package.json
539507
539565
  var package_default = {
539508
539566
  name: "@superblocksteam/sdk",
539509
- version: "2.0.143",
539567
+ version: "2.0.144",
539510
539568
  description: "Superblocks JS SDK",
539511
539569
  homepage: "https://www.superblocks.com",
539512
539570
  license: "Superblocks Community Software License",
@@ -539863,7 +539921,7 @@ var config = void 0;
539863
539921
  var configured = false;
539864
539922
  var ddTracePromise = void 0;
539865
539923
  async function getDdTrace() {
539866
- ddTracePromise ??= import("./dd-trace-X6BCDZFK.js").then((module) => module.default);
539924
+ ddTracePromise ??= import("./dd-trace-U3XCSIMB.js").then((module) => module.default);
539867
539925
  return await ddTracePromise;
539868
539926
  }
539869
539927
  var deploymentType = (() => {
@@ -541975,6 +542033,7 @@ function normalizeProviderErrorData(data3) {
541975
542033
  if (isAiQuotaErrorData(data3)) {
541976
542034
  return {
541977
542035
  type: "clark_quota_exceeded",
542036
+ reason: data3.reason,
541978
542037
  message: data3.reason === "trial_expired" ? "Your organization's AI trial period has ended. Please contact sales to upgrade your plan." : "Your organization has used all of its available AI tokens. Please contact sales to upgrade your plan.",
541979
542038
  isClark: true
541980
542039
  };
@@ -541987,7 +542046,12 @@ function normalizeProviderErrorData(data3) {
541987
542046
  const reason = meta2.error?.reason;
541988
542047
  const type = (0, import_shared8.isAiQuotaPaywallReason)(reason) ? "clark_quota_exceeded" : getClarkErrorType(meta2.status);
541989
542048
  const message = typeof meta2.error?.message === "string" && meta2.error.message || typeof meta2.message === "string" && meta2.message || `Unknown Clark error: ${safeJsonStringify(data3)}`;
541990
- return { type, message, isClark: true };
542049
+ return {
542050
+ type,
542051
+ ...(0, import_shared8.isAiQuotaPaywallReason)(reason) ? { reason } : {},
542052
+ message,
542053
+ isClark: true
542054
+ };
541991
542055
  }
541992
542056
  return { message: `Unknown error format: ${safeJsonStringify(data3)}` };
541993
542057
  }
@@ -544359,7 +544423,7 @@ init_cjs_shims();
544359
544423
  // ../../../vite-plugin-file-sync/dist/ai-service/index.js
544360
544424
  init_cjs_shims();
544361
544425
  init_esm();
544362
- var import_ai10 = __toESM(require_dist9());
544426
+ var import_ai10 = __toESM(require_dist9(), 1);
544363
544427
  import { createHash as createHash5, randomUUID as randomUUID5 } from "node:crypto";
544364
544428
  import os6 from "node:os";
544365
544429
  import path52 from "node:path";
@@ -548817,7 +548881,7 @@ init_cjs_shims();
548817
548881
  init_cjs_shims();
548818
548882
 
548819
548883
  // ../../../vite-plugin-file-sync/dist/ai-service/index.js
548820
- var import_shared55 = __toESM(require_dist2());
548884
+ var import_shared55 = __toESM(require_dist2(), 1);
548821
548885
 
548822
548886
  // ../../../vite-plugin-file-sync/dist/migration/mark-api-testing-denied.js
548823
548887
  init_cjs_shims();
@@ -573757,7 +573821,7 @@ var MAX_ATTRIBUTE_LENGTH = 64e3;
573757
573821
  var LLMObsSpanWriter = null;
573758
573822
  async function loadLLMObsSpanWriter() {
573759
573823
  if (!LLMObsSpanWriter) {
573760
- const module = await import("./spans-XLTRZUJX.js");
573824
+ const module = await import("./spans-FEFVEXJK.js");
573761
573825
  LLMObsSpanWriter = module.default;
573762
573826
  }
573763
573827
  return LLMObsSpanWriter;
@@ -597919,6 +597983,19 @@ function promptFailureFromLlmError(error40) {
597919
597983
  function promptFailurePaywall(paywallReason) {
597920
597984
  return { origin: "user", paywallReason };
597921
597985
  }
597986
+ var GENERIC_PAYWALL_STOP_ADVICE = "I stopped because credits ran out. Add credits, then send any message to pick up from here.";
597987
+ function paywallStopAdvice(paywallReason) {
597988
+ switch (paywallReason) {
597989
+ case "user_credit_limit_exceeded":
597990
+ return "I stopped because you've reached your personal usage limit for this cycle. An org admin can raise it under Spend Management \u2014 then send any message to pick up from here.";
597991
+ case "payment_past_due":
597992
+ return "I stopped because your organization's subscription payment failed. An org admin can update the payment method under Manage Plan \u2014 then send any message to pick up from here.";
597993
+ case "provisioning_error":
597994
+ return "I stopped because your organization's plan hasn't finished provisioning, so its usage allowance isn't available yet. Try again in a few minutes \u2014 if this keeps happening, contact support@superblocks.com.";
597995
+ default:
597996
+ return GENERIC_PAYWALL_STOP_ADVICE;
597997
+ }
597998
+ }
597922
597999
  function promptFailurePlatform(platformReason) {
597923
598000
  return { origin: "platform", platformReason };
597924
598001
  }
@@ -599617,6 +599694,20 @@ async function getMigrationPolicyDecision(services, apiSourceContent) {
599617
599694
  }
599618
599695
  return null;
599619
599696
  }
599697
+ async function areAllDataIntegrationsNativeDb(apiSourceContent, services) {
599698
+ if (!services.integrationStore)
599699
+ return false;
599700
+ let integrationIds;
599701
+ try {
599702
+ integrationIds = extractIntegrationIdsFromSource2(apiSourceContent);
599703
+ } catch {
599704
+ return false;
599705
+ }
599706
+ const dataIntegrationIds = integrationIds.filter((id2) => !LANGUAGE_PLUGIN_IDS3.has(id2));
599707
+ if (dataIntegrationIds.length === 0)
599708
+ return false;
599709
+ return dataIntegrationIds.every((id2) => services.integrationStore.getHeader(id2)?.lifecycleState !== void 0);
599710
+ }
599620
599711
  var validateTestApiInput = (input = {}, mutations = []) => {
599621
599712
  const hasMutations = mutations?.length > 0;
599622
599713
  const description = input?.description;
@@ -599670,6 +599761,9 @@ var checkTestApiPermissions = async (services, input, _clark) => {
599670
599761
  if (mutations.length > 0) {
599671
599762
  validateTestApiInput(input, mutations);
599672
599763
  if (apiSourceContent) {
599764
+ if (await areAllDataIntegrationsNativeDb(apiSourceContent, services)) {
599765
+ return PermissionLevel.ALLOW;
599766
+ }
599673
599767
  const decision = await getMigrationPolicyDecision(services, apiSourceContent);
599674
599768
  if (decision === "allow")
599675
599769
  return PermissionLevel.ALLOW;
@@ -599740,6 +599834,9 @@ The description will be shown to the user in an approval prompt, so it must be c
599740
599834
  if (!hasWrites) {
599741
599835
  return [];
599742
599836
  }
599837
+ if (await areAllDataIntegrationsNativeDb(apiSourceContent, services)) {
599838
+ return [];
599839
+ }
599743
599840
  const migrationDecision = await getMigrationPolicyDecision(services, apiSourceContent);
599744
599841
  if (migrationDecision === "allow") {
599745
599842
  return [];
@@ -612034,7 +612131,7 @@ function assertCredentialRefDoesNotContainRawMaterial(value2) {
612034
612131
  // ../../../vite-plugin-file-sync/dist/ai-service/agent/tools/databases/dev-database-tasks.js
612035
612132
  var databaseRequirementSchema = external_exports.object({
612036
612133
  logicalName: external_exports.string().min(1).describe("The app-local database name. Becomes the lifecycle integration's display name. When wiring SDK APIs, derive a valid lowercase snake_case integrations map key from this name (replace non-alphanumeric with _, prefix db_ if empty/digit-leading/reserved; disambiguate collisions). Examples: 'pokemon_tracker' \u2192 pokemon_tracker; 'Orders DB' \u2192 orders_db. Do not use a generic key like 'db'."),
612037
- migrationDirectory: external_exports.string().optional().describe("Repo-relative path to the directory holding the app's SQL migrations. Set this explicitly when provisionDatabase should enable startApplyDevDatabaseMigrations; `db/migrations/` is the recommended convention. Files inside must match `<digits>_<description>.sql` (e.g. `0001_init.sql`, `0002_add_users.sql`); the leading digits are the sort key and the runner applies them in lexicographic order against the in-DB ledger.")
612134
+ migrationDirectory: external_exports.string().optional().describe("Repo-relative path to the directory holding the app's SQL migrations. Set this explicitly when provisionDatabase should enable startApplyDevDatabaseMigrations; `db/migrations/` is the recommended convention. Files inside must match `<digits>_<description>.sql` (e.g. `0001_init.sql`, `0002_add_users.sql`); the leading digits are the sort key and the runner applies them in lexicographic order against the in-DB ledger. Migrations run in edit and deployed \u2014 put seed/INSERT rows here only when deployed apps will always need that data; for edit-only test/demo data insert at runtime against the integration instead of a .sql seed migration.")
612038
612135
  });
612039
612136
  var provisionInputSchema = external_exports.object({
612040
612137
  requirement: databaseRequirementSchema
@@ -612070,7 +612167,7 @@ var provisionDevDatabaseTaskMetadata = {
612070
612167
  // dev environment name are platform-controlled, so they're not in the
612071
612168
  // input. BG wrapping (taskId, don't waitForTask, check first) is the
612072
612169
  // only behavioral delta from master.
612073
- description: "Create or reuse a lifecycle-managed dev database binding for this application on Amazon RDS as a BACKGROUND TASK. Clark provisions the database and returns lifecycle progress. Returns a taskId IMMEDIATELY while RDS provisioning runs in the background; the user already sees live progress in the chat's background-tasks indicator. DO NOT call waitForTask right after this \u2014 that defeats the whole point of a background task and blocks your turn for minutes while RDS spins up. Instead: keep working on whatever does NOT depend on the database (scaffold the UI, draft API code that will use the binding, write or read SQL migration files, plan next steps). When you reach a step that genuinely cannot proceed without the connection details, FIRST call checkTask({ taskId }) \u2014 it returns instantly. Only fall back to waitForTask if checkTask still reports state='running' AND you literally have no other useful work to do. On completion the result includes bindingKey, integrationId, lifecycleState, connectionMetadata, and credentialRefs. Use integrationId only for tool inputs or generated source code such as postgres(...); do not repeat internal UUIDs in user-facing chat. When declaring the integration in an SDK API, derive a valid lowercase snake_case integrations map key from requirement.logicalName (normalize non-alphanumeric to _, prefix db_ if needed, disambiguate collisions; e.g. pokemon_tracker \u2192 pokemon_tracker: postgres(POKEMON_TRACKER), Orders DB \u2192 orders_db) so code and TraceView match the database name \u2014 never a generic key like db. This task ONLY creates the database server + an integration; it does NOT apply SQL migrations \u2014 query attempts will fail with `relation \"X\" does not exist` until you call startApplyDevDatabaseMigrations. Cancellation only stops local polling; the underlying RDS provisioning continues on the server.",
612170
+ description: "Create or reuse a lifecycle-managed dev database binding for this application on Amazon RDS as a BACKGROUND TASK. Clark provisions the database and returns lifecycle progress. Returns a taskId IMMEDIATELY while RDS provisioning runs in the background; the user already sees live progress in the chat's background-tasks indicator. DO NOT call waitForTask right after this \u2014 that defeats the whole point of a background task and blocks your turn for minutes while RDS spins up. Instead: keep working on whatever does NOT depend on the database (scaffold the UI, draft API code that will use the binding, write SQL migration files, plan next steps). When you reach a step that genuinely cannot proceed without the connection details, FIRST call checkTask({ taskId }) \u2014 it returns instantly. Only fall back to waitForTask if checkTask still reports state='running' AND you literally have no other useful work to do. On completion the result includes bindingKey, integrationId, lifecycleState, connectionMetadata, and credentialRefs. Use integrationId only for tool inputs or generated source code such as postgres(...); do not repeat internal UUIDs in user-facing chat. When declaring the integration in an SDK API, derive a valid lowercase snake_case integrations map key from requirement.logicalName (normalize non-alphanumeric to _, prefix db_ if needed, disambiguate collisions; e.g. pokemon_tracker \u2192 pokemon_tracker: postgres(POKEMON_TRACKER), Orders DB \u2192 orders_db) so code and TraceView match the database name \u2014 never a generic key like db. This task ONLY creates the database server + an integration; it does NOT apply SQL migrations \u2014 query attempts will fail with `relation \"X\" does not exist` until you call startApplyDevDatabaseMigrations. Cancellation only stops local polling; the underlying RDS provisioning continues on the server.",
612074
612171
  externalHandleSchema: provisionHandleSchema,
612075
612172
  inputSchema: provisionInputSchema,
612076
612173
  name: "provisionDatabase",
@@ -612089,7 +612186,7 @@ var applyDevDatabaseMigrationsTaskMetadata = {
612089
612186
  // automatically, which is a lie when provisionDatabase didn't set
612090
612187
  // one). BG wrapping (taskId, don't waitForTask, check first) is the
612091
612188
  // only behavioral delta from master.
612092
- description: "Run the application's working-state SQL migrations against an existing Amazon RDS dev database binding as a BACKGROUND TASK. Returns a taskId IMMEDIATELY; the user already sees live progress in the chat's background-tasks indicator. DO NOT call waitForTask right after this \u2014 that defeats the whole point of a background task and blocks your turn while migrations run. Instead: keep working on anything that does not need migrations to have landed yet (UI scaffolding, additional API code, the next migration file). When you reach a step that genuinely needs migrationState='migrated' (for example, executing a SELECT against the new tables), FIRST call checkTask({ taskId }) \u2014 it returns instantly. Only fall back to waitForTask if checkTask still reports state='running' AND there is nothing else useful to do. REQUIRED after provisionDatabase if any application tables need to exist \u2014 provisioning only creates an empty RDS database. Reads SQL files from the binding's migrationDirectory set on provisionDatabase and applies any not yet recorded in the in-DB migration ledger; if provisionDatabase did not set a migrationDirectory, no SQL files are loaded. Re-firing is safe; already-applied versions are skipped. The terminal result includes migrationState='migrated' on success.",
612189
+ description: "Run the application's working-state SQL migrations against an existing Amazon RDS dev database binding as a BACKGROUND TASK. Returns a taskId IMMEDIATELY; the user already sees live progress in the chat's background-tasks indicator. DO NOT call waitForTask right after this \u2014 that defeats the whole point of a background task and blocks your turn while migrations run. Instead: keep working on anything that does not need migrations to have landed yet (UI scaffolding, additional API code, the next migration file). When you reach a step that genuinely needs migrationState='migrated' (for example, executing a SELECT against the new tables), FIRST call checkTask({ taskId }) \u2014 it returns instantly. Only fall back to waitForTask if checkTask still reports state='running' AND there is nothing else useful to do. REQUIRED after provisionDatabase if any application tables need to exist \u2014 provisioning only creates an empty RDS database. Reads SQL files from the binding's migrationDirectory set on provisionDatabase and applies any not yet recorded in the in-DB migration ledger; if provisionDatabase did not set a migrationDirectory, no SQL files are loaded. Seed/INSERT rows belong in migrations only when deployed apps will always need that data; for edit-only test/demo data insert at runtime against the integration instead of a .sql seed file. Re-firing is safe; already-applied versions are skipped. The terminal result includes migrationState='migrated' on success.",
612093
612190
  externalHandleSchema: applyMigrationsHandleSchema,
612094
612191
  inputSchema: applyMigrationsInputSchema,
612095
612192
  name: "startApplyDevDatabaseMigrations",
@@ -658693,7 +658790,7 @@ var PlaywrightMcpServerManager = class {
658693
658790
  this.logger.info(`Starting embedded Playwright MCP server: browser=${options8?.browser || "chromium"}, headless=${options8?.headless !== false}`);
658694
658791
  }
658695
658792
  try {
658696
- const { startEmbeddedPlaywrightMcpServer } = await import("./embedded-playwright-mcp-server-2ASGKCVK.js");
658793
+ const { startEmbeddedPlaywrightMcpServer } = await import("./embedded-playwright-mcp-server-G54QCOEY.js");
658697
658794
  this.server = await startEmbeddedPlaywrightMcpServer({
658698
658795
  storageStatePath: options8?.storageStatePath,
658699
658796
  jwt: options8?.jwt,
@@ -660831,7 +660928,7 @@ ${request.prompt}`;
660831
660928
  });
660832
660929
  void transitionTo({
660833
660930
  type: AGENT_CANCELED,
660834
- advice: "I stopped because credits ran out. Add credits, then send any message to pick up from here.",
660931
+ advice: paywallStopAdvice(paywallReason),
660835
660932
  paywallReason,
660836
660933
  failure: promptFailurePaywall(paywallReason)
660837
660934
  });
@@ -662254,6 +662351,11 @@ You can provision and manage lifecycle-controlled dev databases for the applicat
662254
662351
  - \`provisionDatabase\` \u2014 Create or reuse a lifecycle-managed dev database binding on Amazon RDS. Returns a taskId IMMEDIATELY while RDS provisioning runs in the background.
662255
662352
  - \`startApplyDevDatabaseMigrations\` \u2014 Run the binding's SQL migrations. Required after \`provisionDatabase\` if any application tables need to exist; provisioning only creates an empty RDS database.
662256
662353
  - \`checkTask\` (read-only, instant) and \`waitForTask\` (read-only, blocking) \u2014 Observe progress. PREFER \`checkTask\` and keep working on unrelated steps while a task runs; only fall back to \`waitForTask\` when \`checkTask\` still reports \`state='running'\` AND you literally have no other useful work to do.
662354
+
662355
+ **SQL migration contents:**
662356
+ - Migration \`.sql\` files (e.g. under \`db/migrations/\`) apply in **edit/preview and deployed** environments.
662357
+ - Put seed/INSERT rows in a migration \`.sql\` file only when the database will **always** need that data, including in deployed apps.
662358
+ - If you just need data for testing or demos in edit mode, do **not** generate a \`.sql\` seed migration \u2014 insert those rows at runtime against the provisioned integration instead of baking them into migrations that also run in deploy.
662257
662359
  ` : ""}${config4.features.nativeGitEnabled ? `**Resolving Git Merge Conflicts:**
662258
662360
  When a pull results in merge conflicts, you will be told which files have conflicts. Follow these rules:
662259
662361
  - Read ALL conflicted files before resolving anything \u2014 understand the full picture of what features, components, or modules were changed on each side.
@@ -668037,7 +668139,7 @@ var AiService = class extends import_shared55.TracedEventEmitter {
668037
668139
  this.getLogger().warn("[ai-service] Failed to persist pre-call paywall widget response", getErrorMeta2(err));
668038
668140
  }
668039
668141
  }
668040
- const advice = "I stopped because credits ran out. Add credits, then send any message to pick up from here.";
668142
+ const advice = paywallStopAdvice(paywallReason);
668041
668143
  const adviceId = randomUUID5();
668042
668144
  try {
668043
668145
  await this.chatSessionStore.recordAssistant({
@@ -669954,9 +670056,9 @@ ${request.prompt}`;
669954
670056
  init_cjs_shims();
669955
670057
  import { randomUUID as randomUUID6 } from "node:crypto";
669956
670058
  import { normalizePath as normalizePath7 } from "vite";
669957
- var import_shared61 = __toESM(require_dist2());
669958
- var import_shared62 = __toESM(require_dist2());
669959
- var import_shared63 = __toESM(require_dist2());
670059
+ var import_shared61 = __toESM(require_dist2(), 1);
670060
+ var import_shared62 = __toESM(require_dist2(), 1);
670061
+ var import_shared63 = __toESM(require_dist2(), 1);
669960
670062
 
669961
670063
  // ../../../vite-plugin-file-sync/dist/errors/make-server-error.js
669962
670064
  init_cjs_shims();
@@ -671844,8 +671946,8 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671844
671946
 
671845
671947
  // ../../../vite-plugin-file-sync/dist/lock-service/index.js
671846
671948
  init_cjs_shims();
671847
- var import_shared64 = __toESM(require_dist2());
671848
- var import_shared65 = __toESM(require_dist2());
671949
+ var import_shared64 = __toESM(require_dist2(), 1);
671950
+ var import_shared65 = __toESM(require_dist2(), 1);
671849
671951
 
671850
671952
  // ../../../vite-plugin-file-sync/dist/lock-service/activity-tracker.js
671851
671953
  init_cjs_shims();
@@ -672603,7 +672705,7 @@ var import_shared67 = __toESM(require_dist2());
672603
672705
  // ../../../vite-plugin-file-sync/package.json
672604
672706
  var package_default2 = {
672605
672707
  name: "@superblocksteam/vite-plugin-file-sync",
672606
- version: "2.0.143",
672708
+ version: "2.0.144",
672607
672709
  keywords: [
672608
672710
  "vite-plugin"
672609
672711
  ],
@@ -697060,7 +697162,7 @@ var parseYaml3;
697060
697162
  async function loadYaml(file2) {
697061
697163
  const content19 = await read_file_default(file2);
697062
697164
  if (!parseYaml3) {
697063
- ({ __parsePrettierYamlConfig: parseYaml3 } = await import("./yaml-EMVMCXGD.js"));
697165
+ ({ __parsePrettierYamlConfig: parseYaml3 } = await import("./yaml-JVF3CN4J.js"));
697064
697166
  }
697065
697167
  try {
697066
697168
  return parseYaml3(content19);
@@ -702454,7 +702556,7 @@ function createParsersAndPrinters(modules) {
702454
702556
  }
702455
702557
  var estreePlugin = createParsersAndPrinters([
702456
702558
  {
702457
- importPlugin: () => import("./estree-V3HH6CSB.js"),
702559
+ importPlugin: () => import("./estree-OYX5J4RB.js"),
702458
702560
  printers: ["estree", "estree-json"]
702459
702561
  }
702460
702562
  ]);
@@ -702478,11 +702580,11 @@ var languages = [
702478
702580
  ];
702479
702581
  var { parsers: parsers12, printers } = createParsersAndPrinters([
702480
702582
  {
702481
- importPlugin: () => import("./acorn-AJDVE4QH.js"),
702583
+ importPlugin: () => import("./acorn-S3XDOUVU.js"),
702482
702584
  parsers: ["acorn", "espree"]
702483
702585
  },
702484
702586
  {
702485
- importPlugin: () => import("./angular-HCD74UUN.js"),
702587
+ importPlugin: () => import("./angular-OWVUCDQR.js"),
702486
702588
  parsers: [
702487
702589
  "__ng_action",
702488
702590
  "__ng_binding",
@@ -702491,7 +702593,7 @@ var { parsers: parsers12, printers } = createParsersAndPrinters([
702491
702593
  ]
702492
702594
  },
702493
702595
  {
702494
- importPlugin: () => import("./babel-DGXGAC2V.js"),
702596
+ importPlugin: () => import("./babel-5ELJZ5NQ.js"),
702495
702597
  parsers: [
702496
702598
  "babel",
702497
702599
  "babel-flow",
@@ -702510,44 +702612,44 @@ var { parsers: parsers12, printers } = createParsersAndPrinters([
702510
702612
  ]
702511
702613
  },
702512
702614
  {
702513
- importPlugin: () => import("./flow-LYVD3HXK.js"),
702615
+ importPlugin: () => import("./flow-WNHZYQFR.js"),
702514
702616
  parsers: ["flow"]
702515
702617
  },
702516
702618
  {
702517
- importPlugin: () => import("./glimmer-MHZASOJO.js"),
702619
+ importPlugin: () => import("./glimmer-BGV7N3DR.js"),
702518
702620
  parsers: ["glimmer"],
702519
702621
  printers: ["glimmer"]
702520
702622
  },
702521
702623
  {
702522
- importPlugin: () => import("./graphql-CW7EUSGS.js"),
702624
+ importPlugin: () => import("./graphql-EODOYMY7.js"),
702523
702625
  parsers: ["graphql"],
702524
702626
  printers: ["graphql"]
702525
702627
  },
702526
702628
  {
702527
- importPlugin: () => import("./html-BW7OUCKU.js"),
702629
+ importPlugin: () => import("./html-NP5HEU7O.js"),
702528
702630
  parsers: ["html", "angular", "vue", "lwc", "mjml"],
702529
702631
  printers: ["html"]
702530
702632
  },
702531
702633
  {
702532
- importPlugin: () => import("./markdown-7N4D66SE.js"),
702634
+ importPlugin: () => import("./markdown-6O7Y4XYY.js"),
702533
702635
  parsers: ["markdown", "mdx", "remark"],
702534
702636
  printers: ["mdast"]
702535
702637
  },
702536
702638
  {
702537
- importPlugin: () => import("./meriyah-O7NDPHVK.js"),
702639
+ importPlugin: () => import("./meriyah-SSJFYRMY.js"),
702538
702640
  parsers: ["meriyah"]
702539
702641
  },
702540
702642
  {
702541
- importPlugin: () => import("./postcss-RVIBE46M.js"),
702643
+ importPlugin: () => import("./postcss-4MIYHZHU.js"),
702542
702644
  parsers: ["css", "less", "scss"],
702543
702645
  printers: ["postcss"]
702544
702646
  },
702545
702647
  {
702546
- importPlugin: () => import("./typescript-FUOY72ZB.js"),
702648
+ importPlugin: () => import("./typescript-JZ3VX46K.js"),
702547
702649
  parsers: ["typescript"]
702548
702650
  },
702549
702651
  {
702550
- importPlugin: () => import("./yaml-EMVMCXGD.js"),
702652
+ importPlugin: () => import("./yaml-JVF3CN4J.js"),
702551
702653
  parsers: ["yaml"],
702552
702654
  printers: ["yaml"]
702553
702655
  }
@@ -721185,7 +721287,7 @@ async function handleLockConflict(error40, lockSvc, span, logger25) {
721185
721287
  }
721186
721288
  async function readPkgJson(cwd) {
721187
721289
  try {
721188
- const { readPackage } = await import("./read-pkg-DLPUGD3L.js");
721290
+ const { readPackage } = await import("./read-pkg-OBZOAGPV.js");
721189
721291
  return await readPackage({ cwd });
721190
721292
  } catch {
721191
721293
  return null;
@@ -723060,4 +723162,4 @@ serve-static/index.js:
723060
723162
  chokidar/esm/index.js:
723061
723163
  (*! chokidar - MIT License (c) 2012 Paul Miller (paulmillr.com) *)
723062
723164
  */
723063
- //# sourceMappingURL=chunk-PIDFAVJP.js.map
723165
+ //# sourceMappingURL=chunk-CYVUZ6D6.js.map