@superblocksteam/cli 2.0.142-next.3 → 2.0.142

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-ML3TZMLP.js → acorn-KXCBAFWI.js} +3 -3
  3. package/dist/{angular-FHNORR3R.js → angular-W2CRMTFW.js} +3 -3
  4. package/dist/{api-EH5TDOBQ.js → api-LARDW5IF.js} +4 -4
  5. package/dist/{babel-PVCF4EB3.js → babel-ET2JKKKV.js} +3 -3
  6. package/dist/{chunk-UELUMCEV.js → chunk-37IH2XAC.js} +3 -3
  7. package/dist/{chunk-NRNXUNMH.js → chunk-4BQDYYXS.js} +2 -2
  8. package/dist/{chunk-JGRXO3XB.js → chunk-5NOZF5M4.js} +3 -3
  9. package/dist/{chunk-CAF2IE3X.js → chunk-5UMGBSBC.js} +3 -3
  10. package/dist/{chunk-BAYV4EPM.js → chunk-CCXVP7XW.js} +3 -3
  11. package/dist/{chunk-77NCDVRX.js → chunk-D2KH4LW3.js} +4 -4
  12. package/dist/{chunk-ZR6AW4K4.js → chunk-D62VVYP7.js} +3 -3
  13. package/dist/{chunk-JQWBEMNQ.js → chunk-DMJEQIZY.js} +3 -3
  14. package/dist/{chunk-UGZJHSP4.js → chunk-JIIJQ7WB.js} +4 -4
  15. package/dist/{chunk-ALI6EY2R.js → chunk-JMQ7QZLC.js} +4 -4
  16. package/dist/{chunk-BOIW7ZJE.js → chunk-KETJT4EP.js} +3 -3
  17. package/dist/{chunk-PJDBLT6F.js → chunk-LZSD23I6.js} +3 -3
  18. package/dist/{chunk-PYLJ7BDT.js → chunk-MRLWUODZ.js} +3 -3
  19. package/dist/{chunk-HU45UFID.js → chunk-TCOFIPP4.js} +4 -4
  20. package/dist/{chunk-D2TKL2IW.js → chunk-TXEAU5S6.js} +6 -6
  21. package/dist/{chunk-KX3YUOW3.js → chunk-U6IRPEPT.js} +320 -125
  22. package/dist/{chunk-KX3YUOW3.js.map → chunk-U6IRPEPT.js.map} +1 -1
  23. package/dist/{chunk-O3BYNK4V.js → chunk-VTOGLK6A.js} +3 -3
  24. package/dist/{chunk-ZOWVJNSX.js → chunk-Z7XJV4QY.js} +6 -6
  25. package/dist/{cli-truncate-XHNEC6P3.js → cli-truncate-3F3O74VF.js} +5 -5
  26. package/dist/commands/dev-parent.js +3 -3
  27. package/dist/{dd-trace-XSLLLUGG.js → dd-trace-DIXLYL3I.js} +7 -7
  28. package/dist/{dist-JPJ7YPMT.js → dist-UTQHNH2H.js} +14 -14
  29. package/dist/{embedded-playwright-mcp-server-BE52JBIJ.js → embedded-playwright-mcp-server-AHPHYTW4.js} +3 -3
  30. package/dist/{enquirer-VTMYOGUV.js → enquirer-TKSCB76E.js} +4 -4
  31. package/dist/{estree-NAFN4TY3.js → estree-BWWXK5NG.js} +3 -3
  32. package/dist/{flow-HIC5XUV3.js → flow-BABUYUAN.js} +3 -3
  33. package/dist/{getMachineId-bsd-SDY76I4K.js → getMachineId-bsd-H5AFMDJ7.js} +5 -5
  34. package/dist/{getMachineId-darwin-XLXQ7FCA.js → getMachineId-darwin-UEKT5AQO.js} +5 -5
  35. package/dist/{getMachineId-linux-UVTCXTOR.js → getMachineId-linux-YKDZF5LG.js} +4 -4
  36. package/dist/{getMachineId-unsupported-VGRJN7P7.js → getMachineId-unsupported-N3UUYA7R.js} +4 -4
  37. package/dist/{getMachineId-win-EXEZFXWW.js → getMachineId-win-ATFA4LSW.js} +5 -5
  38. package/dist/{glimmer-QG3JQLKP.js → glimmer-PIGMF34I.js} +3 -3
  39. package/dist/{graphql-5QWE3C4C.js → graphql-WSH7PVPC.js} +3 -3
  40. package/dist/{html-2AAGPEDO.js → html-66PGBSYM.js} +3 -3
  41. package/dist/{http-U6RLKLBC.js → http-7MPCSF7B.js} +13 -13
  42. package/dist/index.js +19 -19
  43. package/dist/{jiti-C5VUXBEJ.js → jiti-3DAAO4VQ.js} +3 -3
  44. package/dist/{log-update-AEQWRKBR.js → log-update-LM3GWAF5.js} +6 -6
  45. package/dist/{markdown-KWPIGADX.js → markdown-GSUXGRSV.js} +3 -3
  46. package/dist/{meriyah-XUZ2BL3O.js → meriyah-ZXTRD3KN.js} +3 -3
  47. package/dist/{postcss-TE6DMYTF.js → postcss-IN2KOCZO.js} +3 -3
  48. package/dist/{read-pkg-H3FW2BS7.js → read-pkg-S5NV3S65.js} +5 -5
  49. package/dist/{spans-3TSVVTUQ.js → spans-CKW7WTIE.js} +4 -4
  50. package/dist/{src-IUHEMCTX.js → src-EAC6EB2M.js} +3 -3
  51. package/dist/{token-EYHUAX7U.js → token-CSICKUVA.js} +5 -5
  52. package/dist/{token-util-DXOFBULI.js → token-util-CDRNVU7M.js} +5 -5
  53. package/dist/{typescript-I3QY3QUY.js → typescript-NUKVIQFE.js} +3 -3
  54. package/dist/{wrap-ansi-UWKKAFR5.js → wrap-ansi-BZ6N5ACL.js} +5 -5
  55. package/dist/{yaml-TRKQ2BFV.js → yaml-BTJKYTDR.js} +3 -3
  56. package/oclif.manifest.json +1 -1
  57. package/package.json +6 -6
  58. /package/dist/{acorn-ML3TZMLP.js.map → acorn-KXCBAFWI.js.map} +0 -0
  59. /package/dist/{angular-FHNORR3R.js.map → angular-W2CRMTFW.js.map} +0 -0
  60. /package/dist/{api-EH5TDOBQ.js.map → api-LARDW5IF.js.map} +0 -0
  61. /package/dist/{babel-PVCF4EB3.js.map → babel-ET2JKKKV.js.map} +0 -0
  62. /package/dist/{chunk-UELUMCEV.js.map → chunk-37IH2XAC.js.map} +0 -0
  63. /package/dist/{chunk-NRNXUNMH.js.map → chunk-4BQDYYXS.js.map} +0 -0
  64. /package/dist/{chunk-JGRXO3XB.js.map → chunk-5NOZF5M4.js.map} +0 -0
  65. /package/dist/{chunk-CAF2IE3X.js.map → chunk-5UMGBSBC.js.map} +0 -0
  66. /package/dist/{chunk-BAYV4EPM.js.map → chunk-CCXVP7XW.js.map} +0 -0
  67. /package/dist/{chunk-77NCDVRX.js.map → chunk-D2KH4LW3.js.map} +0 -0
  68. /package/dist/{chunk-ZR6AW4K4.js.map → chunk-D62VVYP7.js.map} +0 -0
  69. /package/dist/{chunk-JQWBEMNQ.js.map → chunk-DMJEQIZY.js.map} +0 -0
  70. /package/dist/{chunk-UGZJHSP4.js.map → chunk-JIIJQ7WB.js.map} +0 -0
  71. /package/dist/{chunk-ALI6EY2R.js.map → chunk-JMQ7QZLC.js.map} +0 -0
  72. /package/dist/{chunk-BOIW7ZJE.js.map → chunk-KETJT4EP.js.map} +0 -0
  73. /package/dist/{chunk-PJDBLT6F.js.map → chunk-LZSD23I6.js.map} +0 -0
  74. /package/dist/{chunk-PYLJ7BDT.js.map → chunk-MRLWUODZ.js.map} +0 -0
  75. /package/dist/{chunk-HU45UFID.js.map → chunk-TCOFIPP4.js.map} +0 -0
  76. /package/dist/{chunk-D2TKL2IW.js.map → chunk-TXEAU5S6.js.map} +0 -0
  77. /package/dist/{chunk-O3BYNK4V.js.map → chunk-VTOGLK6A.js.map} +0 -0
  78. /package/dist/{chunk-ZOWVJNSX.js.map → chunk-Z7XJV4QY.js.map} +0 -0
  79. /package/dist/{cli-truncate-XHNEC6P3.js.map → cli-truncate-3F3O74VF.js.map} +0 -0
  80. /package/dist/{dd-trace-XSLLLUGG.js.map → dd-trace-DIXLYL3I.js.map} +0 -0
  81. /package/dist/{dist-JPJ7YPMT.js.map → dist-UTQHNH2H.js.map} +0 -0
  82. /package/dist/{embedded-playwright-mcp-server-BE52JBIJ.js.map → embedded-playwright-mcp-server-AHPHYTW4.js.map} +0 -0
  83. /package/dist/{enquirer-VTMYOGUV.js.map → enquirer-TKSCB76E.js.map} +0 -0
  84. /package/dist/{estree-NAFN4TY3.js.map → estree-BWWXK5NG.js.map} +0 -0
  85. /package/dist/{flow-HIC5XUV3.js.map → flow-BABUYUAN.js.map} +0 -0
  86. /package/dist/{getMachineId-bsd-SDY76I4K.js.map → getMachineId-bsd-H5AFMDJ7.js.map} +0 -0
  87. /package/dist/{getMachineId-darwin-XLXQ7FCA.js.map → getMachineId-darwin-UEKT5AQO.js.map} +0 -0
  88. /package/dist/{getMachineId-linux-UVTCXTOR.js.map → getMachineId-linux-YKDZF5LG.js.map} +0 -0
  89. /package/dist/{getMachineId-unsupported-VGRJN7P7.js.map → getMachineId-unsupported-N3UUYA7R.js.map} +0 -0
  90. /package/dist/{getMachineId-win-EXEZFXWW.js.map → getMachineId-win-ATFA4LSW.js.map} +0 -0
  91. /package/dist/{glimmer-QG3JQLKP.js.map → glimmer-PIGMF34I.js.map} +0 -0
  92. /package/dist/{graphql-5QWE3C4C.js.map → graphql-WSH7PVPC.js.map} +0 -0
  93. /package/dist/{html-2AAGPEDO.js.map → html-66PGBSYM.js.map} +0 -0
  94. /package/dist/{http-U6RLKLBC.js.map → http-7MPCSF7B.js.map} +0 -0
  95. /package/dist/{jiti-C5VUXBEJ.js.map → jiti-3DAAO4VQ.js.map} +0 -0
  96. /package/dist/{log-update-AEQWRKBR.js.map → log-update-LM3GWAF5.js.map} +0 -0
  97. /package/dist/{markdown-KWPIGADX.js.map → markdown-GSUXGRSV.js.map} +0 -0
  98. /package/dist/{meriyah-XUZ2BL3O.js.map → meriyah-ZXTRD3KN.js.map} +0 -0
  99. /package/dist/{postcss-TE6DMYTF.js.map → postcss-IN2KOCZO.js.map} +0 -0
  100. /package/dist/{read-pkg-H3FW2BS7.js.map → read-pkg-S5NV3S65.js.map} +0 -0
  101. /package/dist/{spans-3TSVVTUQ.js.map → spans-CKW7WTIE.js.map} +0 -0
  102. /package/dist/{src-IUHEMCTX.js.map → src-EAC6EB2M.js.map} +0 -0
  103. /package/dist/{token-EYHUAX7U.js.map → token-CSICKUVA.js.map} +0 -0
  104. /package/dist/{token-util-DXOFBULI.js.map → token-util-CDRNVU7M.js.map} +0 -0
  105. /package/dist/{typescript-I3QY3QUY.js.map → typescript-NUKVIQFE.js.map} +0 -0
  106. /package/dist/{wrap-ansi-UWKKAFR5.js.map → wrap-ansi-BZ6N5ACL.js.map} +0 -0
  107. /package/dist/{yaml-TRKQ2BFV.js.map → yaml-BTJKYTDR.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 = 'f177940e0261d240f37de507ffd62f44207ba6c9';
4
+ process.env.DD_GIT_COMMIT_SHA = 'dfd51cbb48484e4705f8b1c0ee9d5ca6020dc1ad';
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-BOIW7ZJE.js";
18
+ } from "./chunk-KETJT4EP.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-JQWBEMNQ.js";
35
+ } from "./chunk-DMJEQIZY.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-ZOWVJNSX.js";
42
+ } from "./chunk-Z7XJV4QY.js";
43
43
  import {
44
44
  require_commonjs
45
- } from "./chunk-JGRXO3XB.js";
45
+ } from "./chunk-5NOZF5M4.js";
46
46
  import {
47
47
  require_dc_polyfill
48
- } from "./chunk-UELUMCEV.js";
48
+ } from "./chunk-37IH2XAC.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-ZR6AW4K4.js";
57
+ } from "./chunk-D62VVYP7.js";
58
58
  import {
59
59
  require_token_error
60
- } from "./chunk-O3BYNK4V.js";
60
+ } from "./chunk-VTOGLK6A.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-PYLJ7BDT.js";
73
+ } from "./chunk-MRLWUODZ.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-NRNXUNMH.js";
82
+ } from "./chunk-4BQDYYXS.js";
83
83
 
84
84
  // ../../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js
85
85
  var require_constants2 = __commonJS({
@@ -98056,15 +98056,15 @@ var require_api_files = __commonJS({
98056
98056
  exports.readAppApiYamlFile = readAppApiYamlFile4;
98057
98057
  exports.resolveLanguageSpecificStepContentFromBlocks = resolveLanguageSpecificStepContentFromBlocks2;
98058
98058
  async function writeApiFiles3(...args) {
98059
- const esmFunction = await import("./api-EH5TDOBQ.js");
98059
+ const esmFunction = await import("./api-LARDW5IF.js");
98060
98060
  return esmFunction.writeApiFiles(...args);
98061
98061
  }
98062
98062
  async function readAppApiYamlFile4(...args) {
98063
- const esmFunction = await import("./api-EH5TDOBQ.js");
98063
+ const esmFunction = await import("./api-LARDW5IF.js");
98064
98064
  return esmFunction.readAppApiYamlFile(...args);
98065
98065
  }
98066
98066
  async function resolveLanguageSpecificStepContentFromBlocks2(...args) {
98067
- const esmFunction = await import("./api-EH5TDOBQ.js");
98067
+ const esmFunction = await import("./api-LARDW5IF.js");
98068
98068
  return esmFunction.resolveLanguageSpecificStepContentFromBlocks(...args);
98069
98069
  }
98070
98070
  }
@@ -104752,19 +104752,19 @@ var require_getMachineId = __commonJS({
104752
104752
  if (!getMachineIdImpl) {
104753
104753
  switch (process5.platform) {
104754
104754
  case "darwin":
104755
- getMachineIdImpl = (await import("./getMachineId-darwin-XLXQ7FCA.js")).getMachineId;
104755
+ getMachineIdImpl = (await import("./getMachineId-darwin-UEKT5AQO.js")).getMachineId;
104756
104756
  break;
104757
104757
  case "linux":
104758
- getMachineIdImpl = (await import("./getMachineId-linux-UVTCXTOR.js")).getMachineId;
104758
+ getMachineIdImpl = (await import("./getMachineId-linux-YKDZF5LG.js")).getMachineId;
104759
104759
  break;
104760
104760
  case "freebsd":
104761
- getMachineIdImpl = (await import("./getMachineId-bsd-SDY76I4K.js")).getMachineId;
104761
+ getMachineIdImpl = (await import("./getMachineId-bsd-H5AFMDJ7.js")).getMachineId;
104762
104762
  break;
104763
104763
  case "win32":
104764
- getMachineIdImpl = (await import("./getMachineId-win-EXEZFXWW.js")).getMachineId;
104764
+ getMachineIdImpl = (await import("./getMachineId-win-ATFA4LSW.js")).getMachineId;
104765
104765
  break;
104766
104766
  default:
104767
- getMachineIdImpl = (await import("./getMachineId-unsupported-VGRJN7P7.js")).getMachineId;
104767
+ getMachineIdImpl = (await import("./getMachineId-unsupported-N3UUYA7R.js")).getMachineId;
104768
104768
  break;
104769
104769
  }
104770
104770
  }
@@ -185967,8 +185967,8 @@ var require_get_vercel_oidc_token = __commonJS({
185967
185967
  }
185968
185968
  try {
185969
185969
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
185970
- await import("./token-util-DXOFBULI.js"),
185971
- await import("./token-EYHUAX7U.js")
185970
+ await import("./token-util-CDRNVU7M.js"),
185971
+ await import("./token-CSICKUVA.js")
185972
185972
  ]);
185973
185973
  if (!token2 || isExpired(getTokenPayload(token2))) {
185974
185974
  await refreshToken();
@@ -189615,7 +189615,7 @@ Learn more: \x1B[34m${moreInfoURL}\x1B[0m
189615
189615
  }, {})
189616
189616
  };
189617
189617
  }
189618
- var import_api35 = (init_esm(), __toCommonJS(esm_exports));
189618
+ var import_api36 = (init_esm(), __toCommonJS(esm_exports));
189619
189619
  var noopTracer = {
189620
189620
  startSpan() {
189621
189621
  return noopSpan;
@@ -189682,7 +189682,7 @@ Learn more: \x1B[34m${moreInfoURL}\x1B[0m
189682
189682
  if (tracer3) {
189683
189683
  return tracer3;
189684
189684
  }
189685
- return import_api35.trace.getTracer("ai");
189685
+ return import_api36.trace.getTracer("ai");
189686
189686
  }
189687
189687
  var import_api210 = (init_esm(), __toCommonJS(esm_exports));
189688
189688
  async function recordSpan({
@@ -470728,7 +470728,7 @@ var require_config_loader = __commonJS({
470728
470728
  * @returns {Promise<{createJiti: Function|undefined, version: string;}>} A promise that fulfills with an object containing the jiti module's createJiti function and version.
470729
470729
  */
470730
470730
  static async loadJiti() {
470731
- const { createJiti } = await import("./jiti-C5VUXBEJ.js");
470731
+ const { createJiti } = await import("./jiti-3DAAO4VQ.js");
470732
470732
  const version3 = require_package5().version;
470733
470733
  return { createJiti, version: version3 };
470734
470734
  }
@@ -471057,7 +471057,7 @@ var require_eslint_helpers = __commonJS({
471057
471057
  }
471058
471058
  async function globMatch({ basePath, pattern }) {
471059
471059
  let found = false;
471060
- const { hfs } = await import("./src-IUHEMCTX.js");
471060
+ const { hfs } = await import("./src-EAC6EB2M.js");
471061
471061
  const patternToUse = normalizeToPosix(path81.relative(basePath, pattern));
471062
471062
  const matcher = new Minimatch2(patternToUse, MINIMATCH_OPTIONS);
471063
471063
  const walkSettings = {
@@ -471097,7 +471097,7 @@ var require_eslint_helpers = __commonJS({
471097
471097
  return new Minimatch2(patternToUse, MINIMATCH_OPTIONS);
471098
471098
  });
471099
471099
  const unmatchedPatterns = /* @__PURE__ */ new Set([...relativeToPatterns.keys()]);
471100
- const { hfs } = await import("./src-IUHEMCTX.js");
471100
+ const { hfs } = await import("./src-EAC6EB2M.js");
471101
471101
  const walk2 = hfs.walk(basePath, {
471102
471102
  async directoryFilter(entry) {
471103
471103
  if (!matchers.some((matcher) => matcher.match(entry.path, true))) {
@@ -539506,7 +539506,7 @@ init_cjs_shims();
539506
539506
  // ../sdk/package.json
539507
539507
  var package_default = {
539508
539508
  name: "@superblocksteam/sdk",
539509
- version: "2.0.142-next.3",
539509
+ version: "2.0.142",
539510
539510
  description: "Superblocks JS SDK",
539511
539511
  homepage: "https://www.superblocks.com",
539512
539512
  license: "Superblocks Community Software License",
@@ -539863,7 +539863,7 @@ var config = void 0;
539863
539863
  var configured = false;
539864
539864
  var ddTracePromise = void 0;
539865
539865
  async function getDdTrace() {
539866
- ddTracePromise ??= import("./dd-trace-XSLLLUGG.js").then((module) => module.default);
539866
+ ddTracePromise ??= import("./dd-trace-DIXLYL3I.js").then((module) => module.default);
539867
539867
  return await ddTracePromise;
539868
539868
  }
539869
539869
  var deploymentType = (() => {
@@ -544359,7 +544359,7 @@ init_cjs_shims();
544359
544359
  // ../../../vite-plugin-file-sync/dist/ai-service/index.js
544360
544360
  init_cjs_shims();
544361
544361
  init_esm();
544362
- var import_ai10 = __toESM(require_dist9(), 1);
544362
+ var import_ai10 = __toESM(require_dist9());
544363
544363
  import { createHash as createHash5, randomUUID as randomUUID5 } from "node:crypto";
544364
544364
  import os6 from "node:os";
544365
544365
  import path52 from "node:path";
@@ -548817,7 +548817,7 @@ init_cjs_shims();
548817
548817
  init_cjs_shims();
548818
548818
 
548819
548819
  // ../../../vite-plugin-file-sync/dist/ai-service/index.js
548820
- var import_shared55 = __toESM(require_dist2(), 1);
548820
+ var import_shared55 = __toESM(require_dist2());
548821
548821
 
548822
548822
  // ../../../vite-plugin-file-sync/dist/migration/mark-api-testing-denied.js
548823
548823
  init_cjs_shims();
@@ -571179,6 +571179,7 @@ var ClarkChatLanguageModel = class {
571179
571179
  throw error40;
571180
571180
  }
571181
571181
  let finishReason;
571182
+ let providerMetadata;
571182
571183
  let usage = toUsage();
571183
571184
  let streamStartEnqueued = false;
571184
571185
  return {
@@ -571222,9 +571223,11 @@ var ClarkChatLanguageModel = class {
571222
571223
  forwardAsActivity(controller, value2);
571223
571224
  break;
571224
571225
  }
571226
+ const providerMetadata2 = asProviderMetadata(value2.providerMetadata);
571225
571227
  controller.enqueue({
571226
571228
  type: "text-start",
571227
- id: id2
571229
+ id: id2,
571230
+ ...providerMetadata2 && { providerMetadata: providerMetadata2 }
571228
571231
  });
571229
571232
  break;
571230
571233
  }
@@ -571374,23 +571377,22 @@ var ClarkChatLanguageModel = class {
571374
571377
  });
571375
571378
  break;
571376
571379
  }
571377
- // Token usage is replaced each time, not added up. The stream
571378
- // sends per-step usage on every "finish-step" and the final
571379
- // total on the last "finish" chunk. Since "finish" comes last,
571380
- // its total wins, so the usage we report at the end is correct.
571381
- // (The client adds usage up across steps itself; here we only
571382
- // report one call.)
571383
- case "finish": {
571384
- finishReason = asString(value2.finishReason);
571385
- const usageData = asUsage(value2.usage ?? value2.totalUsage);
571386
- usage = toUsage(usageData);
571387
- break;
571388
- }
571380
+ // Finish reason and usage are replaced each time, not added up.
571381
+ // The final "finish" total wins. Compaction provider metadata
571382
+ // can arrive on "finish-step" first, so retain the latest
571383
+ // non-empty value for the synthesized finish event.
571384
+ case "finish":
571389
571385
  case "finish-step": {
571390
571386
  finishReason = asString(value2.finishReason);
571391
571387
  const usageData = asUsage(value2.usage ?? value2.totalUsage);
571392
571388
  usage = toUsage(usageData);
571393
- forwardAsActivity(controller, value2);
571389
+ const nextProviderMetadata = asProviderMetadata(value2.providerMetadata);
571390
+ if (nextProviderMetadata != null && Object.keys(nextProviderMetadata).length > 0) {
571391
+ providerMetadata = nextProviderMetadata;
571392
+ }
571393
+ if (value2.type === "finish-step") {
571394
+ forwardAsActivity(controller, value2);
571395
+ }
571394
571396
  break;
571395
571397
  }
571396
571398
  case "error": {
@@ -571446,7 +571448,8 @@ var ClarkChatLanguageModel = class {
571446
571448
  controller.enqueue({
571447
571449
  type: "finish",
571448
571450
  finishReason: toFinishReason(finishReason),
571449
- usage
571451
+ usage,
571452
+ ...providerMetadata && { providerMetadata }
571450
571453
  });
571451
571454
  }
571452
571455
  })),
@@ -573754,7 +573757,7 @@ var MAX_ATTRIBUTE_LENGTH = 64e3;
573754
573757
  var LLMObsSpanWriter = null;
573755
573758
  async function loadLLMObsSpanWriter() {
573756
573759
  if (!LLMObsSpanWriter) {
573757
- const module = await import("./spans-3TSVVTUQ.js");
573760
+ const module = await import("./spans-CKW7WTIE.js");
573758
573761
  LLMObsSpanWriter = module.default;
573759
573762
  }
573760
573763
  return LLMObsSpanWriter;
@@ -597634,6 +597637,8 @@ var CLEAR_TOOL_USES_TRIGGER_TOKENS = 1e5;
597634
597637
  var COMPACT_TRIGGER_TOKENS = 15e4;
597635
597638
  var KEEP_RECENT_TOOL_USES = 6;
597636
597639
  var CLEAR_AT_LEAST_TOKENS = 1e4;
597640
+ var MIN_CLEAR_TOOL_USES_TRIGGER_TOKENS = 3e4;
597641
+ var MIN_COMPACT_TRIGGER_TOKENS = 5e4;
597637
597642
  function selectContextManagementStrategy(options8) {
597638
597643
  if (options8.serverContextManagementEnabled === true) {
597639
597644
  return {
@@ -597703,12 +597708,36 @@ var ContextManagementConfig = class _ContextManagementConfig {
597703
597708
  */
597704
597709
  static buildEdits(options8) {
597705
597710
  const t15 = options8?.thresholds;
597711
+ const configuredClearToolUsesTriggerTokens = t15?.clearToolUsesTriggerTokens ?? CLEAR_TOOL_USES_TRIGGER_TOKENS;
597712
+ const configuredCompactTriggerTokens = t15?.compactTriggerTokens ?? COMPACT_TRIGGER_TOKENS;
597713
+ const clearToolUsesTriggerTokens = Math.max(configuredClearToolUsesTriggerTokens, MIN_CLEAR_TOOL_USES_TRIGGER_TOKENS);
597714
+ const compactProviderMinimumTriggerTokens = Math.max(configuredCompactTriggerTokens, MIN_COMPACT_TRIGGER_TOKENS);
597715
+ const compactTriggerTokens = Math.max(compactProviderMinimumTriggerTokens, clearToolUsesTriggerTokens + 1);
597716
+ if (configuredClearToolUsesTriggerTokens !== clearToolUsesTriggerTokens || configuredCompactTriggerTokens !== compactProviderMinimumTriggerTokens) {
597717
+ getLogger3().warnStructured?.("Clamped server context management thresholds to provider minimums", {
597718
+ clear_tool_uses_min_trigger_tokens: MIN_CLEAR_TOOL_USES_TRIGGER_TOKENS,
597719
+ clear_tool_uses_effective_trigger_tokens: clearToolUsesTriggerTokens,
597720
+ clear_tool_uses_trigger_tokens: configuredClearToolUsesTriggerTokens,
597721
+ compact_effective_trigger_tokens: compactTriggerTokens,
597722
+ compact_min_trigger_tokens: MIN_COMPACT_TRIGGER_TOKENS,
597723
+ compact_trigger_tokens: configuredCompactTriggerTokens,
597724
+ event: "server_context_management_threshold_clamped"
597725
+ });
597726
+ }
597727
+ if (compactProviderMinimumTriggerTokens !== compactTriggerTokens) {
597728
+ getLogger3().warnStructured?.("Adjusted server context management thresholds to preserve clear-before-compact ordering", {
597729
+ clear_tool_uses_effective_trigger_tokens: clearToolUsesTriggerTokens,
597730
+ compact_effective_trigger_tokens: compactTriggerTokens,
597731
+ compact_trigger_tokens: configuredCompactTriggerTokens,
597732
+ event: "server_context_management_threshold_order_adjusted"
597733
+ });
597734
+ }
597706
597735
  const excludeTools = options8?.excludeTools && options8.excludeTools.length > 0 ? [...options8.excludeTools] : void 0;
597707
597736
  const clearToolUsesEdit = {
597708
597737
  type: "clear_tool_uses_20250919",
597709
597738
  trigger: {
597710
597739
  type: "input_tokens",
597711
- value: t15?.clearToolUsesTriggerTokens ?? CLEAR_TOOL_USES_TRIGGER_TOKENS
597740
+ value: clearToolUsesTriggerTokens
597712
597741
  },
597713
597742
  keep: {
597714
597743
  type: "tool_uses",
@@ -597725,7 +597754,7 @@ var ContextManagementConfig = class _ContextManagementConfig {
597725
597754
  type: "compact_20260112",
597726
597755
  trigger: {
597727
597756
  type: "input_tokens",
597728
- value: t15?.compactTriggerTokens ?? COMPACT_TRIGGER_TOKENS
597757
+ value: compactTriggerTokens
597729
597758
  }
597730
597759
  };
597731
597760
  return [clearToolUsesEdit, compactEdit];
@@ -597798,11 +597827,14 @@ function processLLMConfig(llmConfig, defaultBudgetTokens = 5e3, logContext, cont
597798
597827
  thresholds: contextManagementOptions.thresholds ?? llmConfig?.serverContextManagement
597799
597828
  });
597800
597829
  }
597830
+ const shouldDisableAutomaticPromptCache = contextManagement !== void 0 && llmConfig?.provider === "bedrock";
597801
597831
  const providerOptions = {
597802
597832
  anthropic: {
597803
597833
  ...thinkingOptions.anthropic ?? {},
597804
597834
  ...contextManagement && { contextManagement },
597805
- cacheControl: { type: "ephemeral" }
597835
+ ...!shouldDisableAutomaticPromptCache && {
597836
+ cacheControl: { type: "ephemeral" }
597837
+ }
597806
597838
  },
597807
597839
  bedrock: thinkingOptions.bedrock ?? {}
597808
597840
  };
@@ -646790,6 +646822,9 @@ var METRIC_SERVER_COMPACTION_MESSAGES_REMOVED = "superblocks.clark.context.serve
646790
646822
  var METRIC_SERVER_COMPACTION_INPUT_TOKENS_BEFORE = "superblocks.clark.context.server_compaction.input_tokens_before";
646791
646823
  var METRIC_SERVER_COMPACTION_INPUT_TOKENS_AFTER = "superblocks.clark.context.server_compaction.input_tokens_after";
646792
646824
  var METRIC_SERVER_COMPACTION_INPUT_TOKENS_REMOVED = "superblocks.clark.context.server_compaction.input_tokens_removed";
646825
+ var METRIC_SERVER_CLEAR_TOOL_USES = "superblocks.clark.context.server_clear_tool_uses";
646826
+ var METRIC_SERVER_CLEAR_TOOL_USES_COUNT = "superblocks.clark.context.server_clear_tool_uses.tool_uses_cleared";
646827
+ var METRIC_SERVER_CLEAR_TOOL_USES_INPUT_TOKENS = "superblocks.clark.context.server_clear_tool_uses.input_tokens_cleared";
646793
646828
  var DURATION_BUCKETS_SECONDS2 = [0.05, 0.25, 1, 3, 10, 30];
646794
646829
  var FILE_BYTES_BUCKETS = [
646795
646830
  64 * 1024,
@@ -646915,6 +646950,20 @@ var ClarkContextMetrics = class {
646915
646950
  description: "Conversation messages removed by server-side compaction.",
646916
646951
  unit: "{message}",
646917
646952
  advice: { explicitBucketBoundaries: MESSAGE_COUNT_BUCKETS }
646953
+ }),
646954
+ serverClearToolUsesCounter: meter.createCounter(METRIC_SERVER_CLEAR_TOOL_USES, {
646955
+ description: "Count of Anthropic server-side clear_tool_uses edits applied.",
646956
+ unit: "{clear}"
646957
+ }),
646958
+ serverClearToolUsesCountHistogram: meter.createHistogram(METRIC_SERVER_CLEAR_TOOL_USES_COUNT, {
646959
+ description: "Tool use/result pairs cleared by Anthropic server-side clear_tool_uses.",
646960
+ unit: "{tool_use}",
646961
+ advice: { explicitBucketBoundaries: MESSAGE_COUNT_BUCKETS }
646962
+ }),
646963
+ serverClearToolUsesInputTokensHistogram: meter.createHistogram(METRIC_SERVER_CLEAR_TOOL_USES_INPUT_TOKENS, {
646964
+ description: "Input tokens cleared by Anthropic server-side clear_tool_uses.",
646965
+ unit: "{token}",
646966
+ advice: { explicitBucketBoundaries: TOKEN_COUNT_BUCKETS }
646918
646967
  })
646919
646968
  };
646920
646969
  return this.cachedInstruments;
@@ -646987,6 +647036,16 @@ var ClarkContextMetrics = class {
646987
647036
  instruments.serverCompactionInputTokensRemovedHistogram.record(clampCount(input.inputTokensBefore - input.inputTokensAfter), attributes2);
646988
647037
  }
646989
647038
  }
647039
+ recordServerClearToolUses(input) {
647040
+ const instruments = this.getInstruments();
647041
+ instruments.serverClearToolUsesCounter.add(1);
647042
+ if (input.clearedToolUses !== void 0) {
647043
+ instruments.serverClearToolUsesCountHistogram.record(clampCount(input.clearedToolUses));
647044
+ }
647045
+ if (input.clearedInputTokens !== void 0) {
647046
+ instruments.serverClearToolUsesInputTokensHistogram.record(clampCount(input.clearedInputTokens));
647047
+ }
647048
+ }
646990
647049
  /** Drop cached instrument bindings (tests swap the global provider). */
646991
647050
  _resetForTesting() {
646992
647051
  this.cachedInstruments?.documentCountGauge.removeCallback(this.observeDocumentCounts);
@@ -647021,6 +647080,10 @@ function recordServerCompaction(input) {
647021
647080
  const { applicationId: _applicationId, organizationId: _organizationId, ...metricsInput } = input;
647022
647081
  clarkContextMetrics.recordServerCompaction(metricsInput);
647023
647082
  }
647083
+ function recordServerClearToolUses(input) {
647084
+ const { applicationId: _applicationId, organizationId: _organizationId, ...metricsInput } = input;
647085
+ clarkContextMetrics.recordServerClearToolUses(metricsInput);
647086
+ }
647024
647087
 
647025
647088
  // ../../../vite-plugin-file-sync/dist/ai-service/llm/context-v2/storage/local.js
647026
647089
  var logger5 = getPrefixedLogger("[context-storage]");
@@ -650752,6 +650815,7 @@ var ContextV2 = class _ContextV2 {
650752
650815
  }
650753
650816
  updateConfig(config4) {
650754
650817
  this.config = { ...this.config, ...config4 };
650818
+ this.invalidateMessageCache();
650755
650819
  this.compaction.updateConfig(config4);
650756
650820
  }
650757
650821
  /**
@@ -657222,10 +657286,15 @@ var ContextObserver = class {
657222
657286
  contextHandle;
657223
657287
  released = false;
657224
657288
  serverCompactionStarted = false;
657289
+ compactionDetected = false;
657290
+ clearToolUseMetricsRecorded = false;
657225
657291
  constructor(options8) {
657226
657292
  this.contextHandle = options8.contextHandle;
657227
657293
  }
657228
657294
  attach(events, _config) {
657295
+ events.on("session:start", () => {
657296
+ this.resetAttemptDedupeState();
657297
+ });
657229
657298
  events.on("chunk", async (chunk) => {
657230
657299
  await this.onChunk(chunk);
657231
657300
  });
@@ -657237,9 +657306,11 @@ var ContextObserver = class {
657237
657306
  });
657238
657307
  events.on("retry", () => {
657239
657308
  this.interruptServerCompaction();
657309
+ this.resetAttemptDedupeState();
657240
657310
  });
657241
657311
  events.on("fallback", () => {
657242
657312
  this.interruptServerCompaction();
657313
+ this.resetAttemptDedupeState();
657243
657314
  });
657244
657315
  events.on("session:complete", () => {
657245
657316
  this.release("complete");
@@ -657282,6 +657353,11 @@ var ContextObserver = class {
657282
657353
  }
657283
657354
  }
657284
657355
  async onStreamFinish(result, _session) {
657356
+ try {
657357
+ await this.detectCompaction(result);
657358
+ } catch (err) {
657359
+ logger19.error(`detectCompaction threw, ignoring: ${err instanceof Error ? err.message : String(err)}`);
657360
+ }
657285
657361
  await this.contextHandle.context.endTurn(result.totalUsage);
657286
657362
  }
657287
657363
  /**
@@ -657307,30 +657383,42 @@ var ContextObserver = class {
657307
657383
  * we still want to log, so we read both.
657308
657384
  */
657309
657385
  async detectCompaction(step) {
657310
- const providerMeta = step.providerMetadata;
657311
- const anthropicMeta = providerMeta?.anthropic;
657312
- const contextMgmt = anthropicMeta?.contextManagement;
657313
- const iterations = Array.isArray(anthropicMeta?.iterations) ? anthropicMeta.iterations : void 0;
657386
+ const responseProviderMeta = step.response?.providerMetadata;
657387
+ const stepAnthropic = step.providerMetadata?.anthropic;
657388
+ const responseAnthropic = responseProviderMeta?.anthropic;
657389
+ const contextMgmt = stepAnthropic?.contextManagement ?? responseAnthropic?.contextManagement;
657390
+ const iterationsRaw = stepAnthropic?.iterations ?? responseAnthropic?.iterations;
657391
+ const iterations = Array.isArray(iterationsRaw) ? iterationsRaw : void 0;
657314
657392
  const appliedEdits = Array.isArray(contextMgmt?.appliedEdits) ? contextMgmt.appliedEdits : void 0;
657315
657393
  const compactedViaIterations = iterations?.some((iter) => iter.type === "compaction");
657316
657394
  const compactedViaEdits = appliedEdits?.some((edit) => edit.type === "compact_20260112");
657317
- if (compactedViaIterations || compactedViaEdits) {
657395
+ if ((compactedViaIterations || compactedViaEdits) && !this.compactionDetected) {
657318
657396
  logger19.info("Server-side compaction detected in response", {
657319
657397
  iterations: iterations?.map((i2) => i2.type),
657320
657398
  edits: appliedEdits?.map((e) => e.type)
657321
657399
  });
657322
657400
  try {
657323
657401
  await this.contextHandle.context.onCompactionDetected();
657402
+ this.compactionDetected = true;
657324
657403
  } finally {
657325
657404
  this.serverCompactionStarted = false;
657326
657405
  }
657327
657406
  }
657328
657407
  const clearEdit = appliedEdits?.find((edit) => edit.type === "clear_tool_uses_20250919");
657329
- if (clearEdit) {
657408
+ if (clearEdit && !this.clearToolUseMetricsRecorded) {
657409
+ const clearedToolUses = clearEdit.clearedToolUses ?? clearEdit.cleared_tool_uses;
657410
+ const clearedInputTokens = clearEdit.clearedInputTokens ?? clearEdit.cleared_input_tokens;
657330
657411
  logger19.info("Server-side clear_tool_uses applied", {
657331
- clearedToolUses: clearEdit.clearedToolUses,
657332
- clearedInputTokens: clearEdit.clearedInputTokens
657412
+ clearedToolUses,
657413
+ clearedInputTokens
657333
657414
  });
657415
+ if (clearedToolUses !== void 0 || clearedInputTokens !== void 0) {
657416
+ recordServerClearToolUses({
657417
+ clearedInputTokens,
657418
+ clearedToolUses
657419
+ });
657420
+ this.clearToolUseMetricsRecorded = true;
657421
+ }
657334
657422
  }
657335
657423
  }
657336
657424
  release(serverCompactionOutcome) {
@@ -657356,6 +657444,10 @@ var ContextObserver = class {
657356
657444
  this.serverCompactionStarted = false;
657357
657445
  }
657358
657446
  }
657447
+ resetAttemptDedupeState() {
657448
+ this.compactionDetected = false;
657449
+ this.clearToolUseMetricsRecorded = false;
657450
+ }
657359
657451
  };
657360
657452
  function isServerCompactionStartChunk(chunk) {
657361
657453
  if (chunk.type === "text-start") {
@@ -658601,7 +658693,7 @@ var PlaywrightMcpServerManager = class {
658601
658693
  this.logger.info(`Starting embedded Playwright MCP server: browser=${options8?.browser || "chromium"}, headless=${options8?.headless !== false}`);
658602
658694
  }
658603
658695
  try {
658604
- const { startEmbeddedPlaywrightMcpServer } = await import("./embedded-playwright-mcp-server-BE52JBIJ.js");
658696
+ const { startEmbeddedPlaywrightMcpServer } = await import("./embedded-playwright-mcp-server-AHPHYTW4.js");
658605
658697
  this.server = await startEmbeddedPlaywrightMcpServer({
658606
658698
  storageStatePath: options8?.storageStatePath,
658607
658699
  jwt: options8?.jwt,
@@ -658982,6 +659074,26 @@ async function readMigrationTurnRecords(appRootDirPath) {
658982
659074
  }
658983
659075
  return records;
658984
659076
  }
659077
+ async function getNormalMigrationTurnSummary(appRootDirPath) {
659078
+ const records = await readMigrationTurnRecords(appRootDirPath);
659079
+ let dispatched = false;
659080
+ let settledOutcome;
659081
+ for (const record2 of records) {
659082
+ if (record2.retryMode !== "none") {
659083
+ continue;
659084
+ }
659085
+ if (record2.event === "dispatched") {
659086
+ dispatched = true;
659087
+ } else {
659088
+ settledOutcome = record2.outcome;
659089
+ }
659090
+ }
659091
+ return {
659092
+ dispatched,
659093
+ settled: settledOutcome !== void 0,
659094
+ ...settledOutcome !== void 0 ? { settledOutcome } : {}
659095
+ };
659096
+ }
658985
659097
  async function hasSettledNormalMigrationTurn(appRootDirPath) {
658986
659098
  const records = await readMigrationTurnRecords(appRootDirPath);
658987
659099
  return records.some((record2) => record2.event === "settled" && record2.retryMode === "none" && record2.outcome === "success");
@@ -659248,6 +659360,7 @@ REQUIREMENTS:
659248
659360
 
659249
659361
  // ../../../vite-plugin-file-sync/dist/ai-service/quota-client.js
659250
659362
  init_cjs_shims();
659363
+ var DEFAULT_QUOTA_CHECK_TIMEOUT_MS = 5e3;
659251
659364
  async function checkAiQuota(options8) {
659252
659365
  const { superblocksBaseUrl, jwt: jwt2, logger: logger25 } = options8;
659253
659366
  const fetchFn = options8.fetchFn ?? fetch;
@@ -659262,7 +659375,8 @@ async function checkAiQuota(options8) {
659262
659375
  superblocksBaseUrl,
659263
659376
  jwt: jwt2,
659264
659377
  logger: logger25,
659265
- fetchFn
659378
+ fetchFn,
659379
+ timeoutMs: options8.timeoutMs ?? DEFAULT_QUOTA_CHECK_TIMEOUT_MS
659266
659380
  });
659267
659381
  tracer3.annotate(span, {
659268
659382
  metadata: {
@@ -659274,11 +659388,13 @@ async function checkAiQuota(options8) {
659274
659388
  return result;
659275
659389
  });
659276
659390
  }
659277
- async function fetchQuota({ superblocksBaseUrl, jwt: jwt2, logger: logger25, fetchFn }) {
659391
+ async function fetchQuota({ superblocksBaseUrl, jwt: jwt2, logger: logger25, fetchFn, timeoutMs }) {
659278
659392
  try {
659279
659393
  const url4 = `${superblocksBaseUrl}/api/v1/ai/quota`;
659394
+ const signal = AbortSignal.timeout(timeoutMs);
659280
659395
  const response = await fetchFn(url4, {
659281
659396
  method: "GET",
659397
+ signal,
659282
659398
  headers: {
659283
659399
  Authorization: `Bearer ${jwt2}`,
659284
659400
  "Content-Type": "application/json"
@@ -667689,15 +667805,10 @@ var AiService = class extends import_shared55.TracedEventEmitter {
667689
667805
  recordAutoDispatchOutcome(reason);
667690
667806
  return { dispatched: false, reason };
667691
667807
  }
667692
- if (this.clark.context.pendingToolPermissionRequest) {
667693
- recordAutoDispatchOutcome("pending-tool-permission");
667694
- return { dispatched: false, reason: "pending-tool-permission" };
667695
- }
667696
- if (this.clark.state === ClarkStateNames.AwaitingUser) {
667697
- if (this.clark.context.activeInteractiveMessage || this.clark.context.deferredInteractiveMessage) {
667698
- recordAutoDispatchOutcome("awaiting-interactive-response");
667699
- return { dispatched: false, reason: "awaiting-interactive-response" };
667700
- }
667808
+ if (this.isAwaitingInteractiveResponse()) {
667809
+ const reason = this.clark.context.pendingToolPermissionRequest ? "pending-tool-permission" : "awaiting-interactive-response";
667810
+ recordAutoDispatchOutcome(reason);
667811
+ return { dispatched: false, reason };
667701
667812
  }
667702
667813
  this.migrationTurnTriggered = true;
667703
667814
  const checklist = await readPersistedChecklist(this.appRootDirPath);
@@ -669731,6 +669842,26 @@ ${request.prompt}`;
669731
669842
  isAwaitingUser() {
669732
669843
  return this.clark.state === ClarkStateNames.AwaitingUser;
669733
669844
  }
669845
+ /**
669846
+ * True when finalize (or similar) must wait for the user to resolve an
669847
+ * interactive prompt or tool-permission widget. Unlike {@link isAwaitingUser},
669848
+ * Clark's resting `AwaitingUser` FSM state after a completed turn does not
669849
+ * count — only outstanding interactive/deferred messages or pending tool
669850
+ * permissions block.
669851
+ *
669852
+ * Advice-only `AGENT_NEEDS_USER_INPUT` handoffs (plain assistant text,
669853
+ * no widget) intentionally do not block: the migration UI gate
669854
+ * (`hasActiveInteractivePrompt`) uses the same narrow signal.
669855
+ */
669856
+ isAwaitingInteractiveResponse() {
669857
+ if (this.clark.context.pendingToolPermissionRequest) {
669858
+ return true;
669859
+ }
669860
+ if (this.clark.state !== ClarkStateNames.AwaitingUser) {
669861
+ return false;
669862
+ }
669863
+ return Boolean(this.clark.context.activeInteractiveMessage || this.clark.context.deferredInteractiveMessage);
669864
+ }
669734
669865
  /**
669735
669866
  * Check if Clark is currently generating code.
669736
669867
  * Used by lock-service to determine if lock should be held during generation.
@@ -669823,9 +669954,9 @@ ${request.prompt}`;
669823
669954
  init_cjs_shims();
669824
669955
  import { randomUUID as randomUUID6 } from "node:crypto";
669825
669956
  import { normalizePath as normalizePath7 } from "vite";
669826
- var import_shared61 = __toESM(require_dist2(), 1);
669827
- var import_shared62 = __toESM(require_dist2(), 1);
669828
- var import_shared63 = __toESM(require_dist2(), 1);
669957
+ var import_shared61 = __toESM(require_dist2());
669958
+ var import_shared62 = __toESM(require_dist2());
669959
+ var import_shared63 = __toESM(require_dist2());
669829
669960
 
669830
669961
  // ../../../vite-plugin-file-sync/dist/errors/make-server-error.js
669831
669962
  init_cjs_shims();
@@ -670628,6 +670759,31 @@ async function generateDraftDiff(appRootDirPath, specificPaths = []) {
670628
670759
  return diffLines3.join("\n");
670629
670760
  }
670630
670761
 
670762
+ // ../../../vite-plugin-file-sync/dist/sync-service/draft-state-report-metrics.js
670763
+ init_cjs_shims();
670764
+ init_esm();
670765
+ var METER_NAME15 = "superblocks.dev-server.sync";
670766
+ var resultCounter;
670767
+ var durationHistogram;
670768
+ function getResultCounter() {
670769
+ resultCounter ??= metrics.getMeter(METER_NAME15).createCounter("superblocks_dev_server.sync.draft_state_report", {
670770
+ description: "Outcome of server draft-state reports."
670771
+ });
670772
+ return resultCounter;
670773
+ }
670774
+ function getDurationHistogram() {
670775
+ durationHistogram ??= metrics.getMeter(METER_NAME15).createHistogram("superblocks_dev_server.sync.draft_state_report.duration", {
670776
+ description: "Draft-state report latency from queue insertion through completion.",
670777
+ unit: "ms"
670778
+ });
670779
+ return durationHistogram;
670780
+ }
670781
+ function recordDraftStateReport(outcome, durationMs) {
670782
+ const attributes2 = { outcome };
670783
+ getResultCounter().add(1, attributes2);
670784
+ getDurationHistogram().record(durationMs, attributes2);
670785
+ }
670786
+
670631
670787
  // ../../../vite-plugin-file-sync/dist/sync-service/hash-cache.js
670632
670788
  init_cjs_shims();
670633
670789
  var CACHE_DURATION_MS2 = 1e3 * 60 * 60 * 6;
@@ -670829,12 +670985,13 @@ function getSyncErrorLogLevel(error40) {
670829
670985
  }
670830
670986
  return "error";
670831
670987
  }
670832
- function logSyncError(logger25, error40, message) {
670988
+ function logSyncError(logger25, error40, message, attributes2 = {}) {
670989
+ const errorMeta = { ...attributes2, ...getErrorMeta2(error40) };
670833
670990
  const level = getSyncErrorLogLevel(error40);
670834
670991
  if (level === "warn") {
670835
- logger25.error(`${message} [expected]`, getErrorMeta2(error40));
670992
+ logger25.error(`${message} [expected]`, errorMeta);
670836
670993
  } else {
670837
- logger25.error(message, getErrorMeta2(error40));
670994
+ logger25.error(message, errorMeta);
670838
670995
  }
670839
670996
  }
670840
670997
  function isTransientAiAcceptUploadError(error40) {
@@ -670857,6 +671014,8 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
670857
671014
  fsOperationQueue;
670858
671015
  // A queue to ensure that the actual sync operations are executed one at a time
670859
671016
  syncOperationQueue = new OperationQueue();
671017
+ draftStateReportQueue = new OperationQueue();
671018
+ draftStateReports = /* @__PURE__ */ new Map();
670860
671019
  /** This will be defined if (and only if) a sync is currently pending */
670861
671020
  pendingSyncUp;
670862
671021
  /** When true, `uploadDirectory()` short-circuits so the migration can
@@ -670927,6 +671086,7 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
670927
671086
  this.pendingSyncUp = void 0;
670928
671087
  this.lastSyncedDirectoryHash = void 0;
670929
671088
  this.lastSyncedGenerationNumber = void 0;
671089
+ this.draftStateReports.clear();
670930
671090
  this.lastCommitId = void 0;
670931
671091
  this.synchronizationStatus = SyncronizationStatus.SERVER_AHEAD;
670932
671092
  this.getLogger().info(`[sync-service] switched branch context from '${previousBranchName}' to '${nextBranchName}'`);
@@ -671424,7 +671584,7 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671424
671584
  this.getLogger().info("[sync-service] Draft file created", {
671425
671585
  filePath: normalizedFilePath
671426
671586
  });
671427
- this.emit("draftStateChanged", true);
671587
+ this.notifyDraftStateChanged(true);
671428
671588
  }
671429
671589
  /**
671430
671590
  * Creates the marker file only for a draft edit or addition.
@@ -671438,7 +671598,7 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671438
671598
  const fullPath = `${this.appRootDirPath}/${filePath}`;
671439
671599
  await createDraftMarkerOnly(fullPath, this.appRootDirPath);
671440
671600
  });
671441
- this.emit("draftStateChanged", true);
671601
+ this.notifyDraftStateChanged(true);
671442
671602
  }
671443
671603
  /**
671444
671604
  * Creates a draft deletion by backing up the file and removing it from the workspace.
@@ -671451,7 +671611,7 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671451
671611
  const fullPath = `${this.appRootDirPath}/${filePath}`;
671452
671612
  await createDraftDelete(fullPath, this.appRootDirPath);
671453
671613
  });
671454
- this.emit("draftStateChanged", true);
671614
+ this.notifyDraftStateChanged(true);
671455
671615
  }
671456
671616
  /**
671457
671617
  * Discards all local draft changes by restoring original files and removing draft additions.
@@ -671466,7 +671626,7 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671466
671626
  });
671467
671627
  await this.uploadDirectory(source2);
671468
671628
  await this.uploadDirectoryNowIfNeeded(source2);
671469
- this.emit("draftStateChanged", false);
671629
+ this.notifyDraftStateChanged(false);
671470
671630
  }
671471
671631
  /**
671472
671632
  * Commits all draft changes by removing .sbswap.edit and .sbswap.add markers.
@@ -671487,7 +671647,7 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671487
671647
  });
671488
671648
  const uploadResult = await this.uploadCommittedDraftForSource(source2, checkpointAttemptId);
671489
671649
  const result = uploadResult.result;
671490
- this.emit("draftStateChanged", false);
671650
+ this.notifyDraftStateChanged(false);
671491
671651
  this.getLogger().info(`[sync-service] commitLocalDraftChanges upload result commitId=${result.commitId ?? "none"}`);
671492
671652
  if (source2 === "ai:accept") {
671493
671653
  const checkpointLog = classifyCheckpointResult(result.commitId, result.checkpointSkipped);
@@ -671619,18 +671779,40 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671619
671779
  * Reports draft state to the server
671620
671780
  */
671621
671781
  async reportDraftStateToServer(hasDraft) {
671622
- try {
671623
- await this._rpcClient.call(async (rpcClient) => {
671624
- await rpcClient.call.v3.application.draftState.set({
671625
- applicationId: this.applicationId,
671626
- branchName: this._branchName,
671627
- hasDraft
671782
+ const branchName = this._branchName;
671783
+ const startedAt = performance.now();
671784
+ const attributes2 = {
671785
+ "application.id": this.applicationId,
671786
+ "branch.name": branchName,
671787
+ "draft.has_draft": hasDraft
671788
+ };
671789
+ const report = this.draftStateReportQueue.enqueue(async () => {
671790
+ try {
671791
+ await this._rpcClient.call(async (rpcClient) => {
671792
+ await rpcClient.call.v3.application.draftState.set({
671793
+ applicationId: this.applicationId,
671794
+ branchName,
671795
+ hasDraft
671796
+ });
671628
671797
  });
671629
- });
671630
- this.getLogger().info(`[sync-service] Reported draft state to server: hasDraft=${hasDraft}`);
671631
- } catch (error40) {
671632
- logSyncError(this.getLogger(), error40, "[sync-service] Failed to report draft state to server");
671633
- }
671798
+ this.logInfoStructured("[sync-service] Reported draft state to server", attributes2);
671799
+ recordDraftStateReport("success", performance.now() - startedAt);
671800
+ return true;
671801
+ } catch (error40) {
671802
+ logSyncError(this.getLogger(), error40, "[sync-service] Failed to report draft state to server", attributes2);
671803
+ recordDraftStateReport("error", performance.now() - startedAt);
671804
+ return false;
671805
+ }
671806
+ });
671807
+ this.draftStateReports.set(hasDraft, report);
671808
+ return report;
671809
+ }
671810
+ async waitForDraftStateReport(hasDraft) {
671811
+ return await this.draftStateReports.get(hasDraft) ?? false;
671812
+ }
671813
+ notifyDraftStateChanged(hasDraft) {
671814
+ this.emit("draftStateChanged", hasDraft);
671815
+ void this.reportDraftStateToServer(hasDraft);
671634
671816
  }
671635
671817
  /**
671636
671818
  * Clears the drafts directory without restoring or uploading.
@@ -671642,14 +671824,14 @@ var SyncService = class extends import_shared61.TracedEventEmitter {
671642
671824
  await cleanUpDraftsDirectory(this.appRootDirPath);
671643
671825
  this.getLogger().info("[sync-service] Drafts directory cleared");
671644
671826
  });
671645
- this.emit("draftStateChanged", false);
671827
+ this.notifyDraftStateChanged(false);
671646
671828
  }
671647
671829
  };
671648
671830
 
671649
671831
  // ../../../vite-plugin-file-sync/dist/lock-service/index.js
671650
671832
  init_cjs_shims();
671651
- var import_shared64 = __toESM(require_dist2(), 1);
671652
- var import_shared65 = __toESM(require_dist2(), 1);
671833
+ var import_shared64 = __toESM(require_dist2());
671834
+ var import_shared65 = __toESM(require_dist2());
671653
671835
 
671654
671836
  // ../../../vite-plugin-file-sync/dist/lock-service/activity-tracker.js
671655
671837
  init_cjs_shims();
@@ -672407,7 +672589,7 @@ var import_shared67 = __toESM(require_dist2());
672407
672589
  // ../../../vite-plugin-file-sync/package.json
672408
672590
  var package_default2 = {
672409
672591
  name: "@superblocksteam/vite-plugin-file-sync",
672410
- version: "2.0.142-next.3",
672592
+ version: "2.0.142",
672411
672593
  keywords: [
672412
672594
  "vite-plugin"
672413
672595
  ],
@@ -673529,18 +673711,22 @@ var SocketManager = class extends import_shared73.TracedEventEmitter {
673529
673711
  ],
673530
673712
  aiAcceptDraft: [
673531
673713
  async (request, _context) => {
673714
+ if (!syncService) {
673715
+ throw new Error("Sync service not available");
673716
+ }
673532
673717
  getLogger3().info("[aiAcceptDraft] accept draft start", {
673533
- applicationId: syncService?.applicationId,
673534
- branchName: syncService?.branchName,
673718
+ applicationId: syncService.applicationId,
673719
+ branchName: syncService.branchName,
673535
673720
  silently: request.silently
673536
673721
  });
673537
- const result = await syncService?.commitLocalDraftChanges("ai:accept");
673722
+ const result = await syncService.commitLocalDraftChanges("ai:accept");
673538
673723
  getLogger3().info("[aiAcceptDraft] draft commit completed", {
673539
- applicationId: syncService?.applicationId,
673540
- branchName: syncService?.branchName,
673724
+ applicationId: syncService.applicationId,
673725
+ branchName: syncService.branchName,
673541
673726
  commitId: result?.commitId,
673542
673727
  hasCommitId: Boolean(result?.commitId)
673543
673728
  });
673729
+ const draftStateReport = syncService.waitForDraftStateReport(false);
673544
673730
  await aiService?.handleUserAcceptedDraft(request.silently);
673545
673731
  getLogger3().info("[aiAcceptDraft] accepted draft chat state handled", {
673546
673732
  applicationId: syncService?.applicationId,
@@ -673548,6 +673734,10 @@ var SocketManager = class extends import_shared73.TracedEventEmitter {
673548
673734
  commitId: result?.commitId,
673549
673735
  silently: request.silently
673550
673736
  });
673737
+ const draftStateCleared = await draftStateReport;
673738
+ if (draftStateCleared !== true) {
673739
+ throw new Error("Failed to clear server draft state");
673740
+ }
673551
673741
  if (result?.commitId) {
673552
673742
  if (aiService && syncService) {
673553
673743
  void (async () => {
@@ -696801,7 +696991,7 @@ var parseYaml3;
696801
696991
  async function loadYaml(file2) {
696802
696992
  const content19 = await read_file_default(file2);
696803
696993
  if (!parseYaml3) {
696804
- ({ __parsePrettierYamlConfig: parseYaml3 } = await import("./yaml-TRKQ2BFV.js"));
696994
+ ({ __parsePrettierYamlConfig: parseYaml3 } = await import("./yaml-BTJKYTDR.js"));
696805
696995
  }
696806
696996
  try {
696807
696997
  return parseYaml3(content19);
@@ -702195,7 +702385,7 @@ function createParsersAndPrinters(modules) {
702195
702385
  }
702196
702386
  var estreePlugin = createParsersAndPrinters([
702197
702387
  {
702198
- importPlugin: () => import("./estree-NAFN4TY3.js"),
702388
+ importPlugin: () => import("./estree-BWWXK5NG.js"),
702199
702389
  printers: ["estree", "estree-json"]
702200
702390
  }
702201
702391
  ]);
@@ -702219,11 +702409,11 @@ var languages = [
702219
702409
  ];
702220
702410
  var { parsers: parsers12, printers } = createParsersAndPrinters([
702221
702411
  {
702222
- importPlugin: () => import("./acorn-ML3TZMLP.js"),
702412
+ importPlugin: () => import("./acorn-KXCBAFWI.js"),
702223
702413
  parsers: ["acorn", "espree"]
702224
702414
  },
702225
702415
  {
702226
- importPlugin: () => import("./angular-FHNORR3R.js"),
702416
+ importPlugin: () => import("./angular-W2CRMTFW.js"),
702227
702417
  parsers: [
702228
702418
  "__ng_action",
702229
702419
  "__ng_binding",
@@ -702232,7 +702422,7 @@ var { parsers: parsers12, printers } = createParsersAndPrinters([
702232
702422
  ]
702233
702423
  },
702234
702424
  {
702235
- importPlugin: () => import("./babel-PVCF4EB3.js"),
702425
+ importPlugin: () => import("./babel-ET2JKKKV.js"),
702236
702426
  parsers: [
702237
702427
  "babel",
702238
702428
  "babel-flow",
@@ -702251,44 +702441,44 @@ var { parsers: parsers12, printers } = createParsersAndPrinters([
702251
702441
  ]
702252
702442
  },
702253
702443
  {
702254
- importPlugin: () => import("./flow-HIC5XUV3.js"),
702444
+ importPlugin: () => import("./flow-BABUYUAN.js"),
702255
702445
  parsers: ["flow"]
702256
702446
  },
702257
702447
  {
702258
- importPlugin: () => import("./glimmer-QG3JQLKP.js"),
702448
+ importPlugin: () => import("./glimmer-PIGMF34I.js"),
702259
702449
  parsers: ["glimmer"],
702260
702450
  printers: ["glimmer"]
702261
702451
  },
702262
702452
  {
702263
- importPlugin: () => import("./graphql-5QWE3C4C.js"),
702453
+ importPlugin: () => import("./graphql-WSH7PVPC.js"),
702264
702454
  parsers: ["graphql"],
702265
702455
  printers: ["graphql"]
702266
702456
  },
702267
702457
  {
702268
- importPlugin: () => import("./html-2AAGPEDO.js"),
702458
+ importPlugin: () => import("./html-66PGBSYM.js"),
702269
702459
  parsers: ["html", "angular", "vue", "lwc", "mjml"],
702270
702460
  printers: ["html"]
702271
702461
  },
702272
702462
  {
702273
- importPlugin: () => import("./markdown-KWPIGADX.js"),
702463
+ importPlugin: () => import("./markdown-GSUXGRSV.js"),
702274
702464
  parsers: ["markdown", "mdx", "remark"],
702275
702465
  printers: ["mdast"]
702276
702466
  },
702277
702467
  {
702278
- importPlugin: () => import("./meriyah-XUZ2BL3O.js"),
702468
+ importPlugin: () => import("./meriyah-ZXTRD3KN.js"),
702279
702469
  parsers: ["meriyah"]
702280
702470
  },
702281
702471
  {
702282
- importPlugin: () => import("./postcss-TE6DMYTF.js"),
702472
+ importPlugin: () => import("./postcss-IN2KOCZO.js"),
702283
702473
  parsers: ["css", "less", "scss"],
702284
702474
  printers: ["postcss"]
702285
702475
  },
702286
702476
  {
702287
- importPlugin: () => import("./typescript-I3QY3QUY.js"),
702477
+ importPlugin: () => import("./typescript-NUKVIQFE.js"),
702288
702478
  parsers: ["typescript"]
702289
702479
  },
702290
702480
  {
702291
- importPlugin: () => import("./yaml-TRKQ2BFV.js"),
702481
+ importPlugin: () => import("./yaml-BTJKYTDR.js"),
702292
702482
  parsers: ["yaml"],
702293
702483
  printers: ["yaml"]
702294
702484
  }
@@ -705974,9 +706164,10 @@ async function resolveStatus(appRootDir, opts = {}) {
705974
706164
  pathExists4(join40(appRootDir, SCRATCH_DIR_NAME6, "v2-backup")),
705975
706165
  pathExists4(stateFilePath)
705976
706166
  ]);
705977
- const [checklist, integrations] = await Promise.all([
706167
+ const [checklist, integrations, initialTurn] = await Promise.all([
705978
706168
  readPersistedChecklist(appRootDir),
705979
- hasV2Backup ? collectMigrationIntegrations(appRootDir) : collectPreMigrationIntegrations(appRootDir)
706169
+ hasV2Backup ? collectMigrationIntegrations(appRootDir) : collectPreMigrationIntegrations(appRootDir),
706170
+ getNormalMigrationTurnSummary(appRootDir)
705980
706171
  ]);
705981
706172
  const checklistPayload = checklist ? {
705982
706173
  overallStatus: checklist.overallStatus,
@@ -705987,6 +706178,7 @@ async function resolveStatus(appRootDir, opts = {}) {
705987
706178
  return {
705988
706179
  ...inMemoryStatus,
705989
706180
  hasV2Backup,
706181
+ initialTurn,
705990
706182
  checklist: checklistPayload,
705991
706183
  ...integrations !== void 0 && { integrations }
705992
706184
  };
@@ -705996,6 +706188,7 @@ async function resolveStatus(appRootDir, opts = {}) {
705996
706188
  return {
705997
706189
  state: isMigrationScratchRehydrateInFlight() ? "translating" : "idle",
705998
706190
  hasV2Backup,
706191
+ initialTurn,
705999
706192
  ...unsupportedStatus,
706000
706193
  checklist: checklistPayload,
706001
706194
  ...integrations !== void 0 && { integrations }
@@ -706015,6 +706208,7 @@ async function resolveStatus(appRootDir, opts = {}) {
706015
706208
  backupCommitId,
706016
706209
  migrationCommitId,
706017
706210
  hasV2Backup,
706211
+ initialTurn,
706018
706212
  checklist: checklistPayload,
706019
706213
  ...integrations !== void 0 && { integrations },
706020
706214
  ...integrationWritePolicy !== void 0 && { integrationWritePolicy }
@@ -706026,6 +706220,7 @@ async function resolveStatus(appRootDir, opts = {}) {
706026
706220
  backupCommitId,
706027
706221
  migrationCommitId,
706028
706222
  hasV2Backup,
706223
+ initialTurn,
706029
706224
  checklist: checklistPayload,
706030
706225
  ...integrations !== void 0 && { integrations },
706031
706226
  ...integrationWritePolicy !== void 0 && { integrationWritePolicy }
@@ -706041,6 +706236,7 @@ async function resolveStatus(appRootDir, opts = {}) {
706041
706236
  backupCommitId,
706042
706237
  migrationCommitId,
706043
706238
  hasV2Backup,
706239
+ initialTurn,
706044
706240
  checklist: checklistPayload,
706045
706241
  ...integrations !== void 0 && { integrations },
706046
706242
  ...integrationWritePolicy !== void 0 && { integrationWritePolicy }
@@ -706053,6 +706249,7 @@ async function resolveStatus(appRootDir, opts = {}) {
706053
706249
  backupCommitId,
706054
706250
  migrationCommitId,
706055
706251
  hasV2Backup,
706252
+ initialTurn,
706056
706253
  checklist: checklistPayload,
706057
706254
  ...integrations !== void 0 && { integrations },
706058
706255
  ...integrationWritePolicy !== void 0 && { integrationWritePolicy }
@@ -706064,6 +706261,7 @@ async function resolveStatus(appRootDir, opts = {}) {
706064
706261
  backupCommitId,
706065
706262
  migrationCommitId,
706066
706263
  hasV2Backup,
706264
+ initialTurn,
706067
706265
  checklist: checklistPayload,
706068
706266
  ...integrations !== void 0 && { integrations },
706069
706267
  ...integrationWritePolicy !== void 0 && { integrationWritePolicy }
@@ -706589,10 +706787,10 @@ function registerMigrationRoutes(server, options8) {
706589
706787
  return;
706590
706788
  }
706591
706789
  const aiService = getAiService?.();
706592
- if (aiService?.isBusy() || aiService?.isAwaitingUser()) {
706790
+ if (aiService?.isBusy() || aiService?.isAwaitingInteractiveResponse()) {
706593
706791
  res.statusCode = 409;
706594
706792
  res.end(JSON.stringify({
706595
- error: aiService.isAwaitingUser() ? "Clark is waiting for your reply. Resolve the prompt in the chat before finishing the migration." : "Clark is still finishing the migration. Try again in a moment.",
706793
+ error: aiService?.isAwaitingInteractiveResponse() ? "Clark is waiting for your reply. Resolve the prompt in the chat before finishing the migration." : "Clark is still finishing the migration. Try again in a moment.",
706596
706794
  state: status.state
706597
706795
  }));
706598
706796
  return;
@@ -708360,12 +708558,9 @@ function fileSyncVitePlugin(pluginParams, options8) {
708360
708558
  hasHadAnyDrafts = true;
708361
708559
  logger25.debug("hasHadAnyDrafts set to true");
708362
708560
  }
708363
- void (async () => {
708364
- void socketManager.callEditorClients((socket) => {
708365
- return socket.call.aiSetDraftState({ hasDraft });
708366
- });
708367
- await syncService.reportDraftStateToServer(hasDraft);
708368
- })();
708561
+ void socketManager.callEditorClients((socket) => {
708562
+ return socket.call.aiSetDraftState({ hasDraft });
708563
+ });
708369
708564
  });
708370
708565
  let contextPersistCount = 0;
708371
708566
  const uploadContextNow = async () => {
@@ -720921,7 +721116,7 @@ async function handleLockConflict(error40, lockSvc, span, logger25) {
720921
721116
  }
720922
721117
  async function readPkgJson(cwd) {
720923
721118
  try {
720924
- const { readPackage } = await import("./read-pkg-H3FW2BS7.js");
721119
+ const { readPackage } = await import("./read-pkg-S5NV3S65.js");
720925
721120
  return await readPackage({ cwd });
720926
721121
  } catch {
720927
721122
  return null;
@@ -722796,4 +722991,4 @@ serve-static/index.js:
722796
722991
  chokidar/esm/index.js:
722797
722992
  (*! chokidar - MIT License (c) 2012 Paul Miller (paulmillr.com) *)
722798
722993
  */
722799
- //# sourceMappingURL=chunk-KX3YUOW3.js.map
722994
+ //# sourceMappingURL=chunk-U6IRPEPT.js.map