@adcp/sdk 14.0.0-beta.10 → 14.0.0-beta.12

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 (208) hide show
  1. package/bin/adcp-storyboard-sandbox.js +16 -0
  2. package/bin/adcp.js +28 -30
  3. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  4. package/dist/lib/core/SingleAgentClient.d.mts +2 -1
  5. package/dist/lib/core/SingleAgentClient.d.ts +2 -1
  6. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  7. package/dist/lib/core/SingleAgentClient.js +113 -64
  8. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  9. package/dist/lib/core/SingleAgentClient.mjs +113 -64
  10. package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
  11. package/dist/lib/index.d.mts +1 -1
  12. package/dist/lib/index.d.ts +1 -1
  13. package/dist/lib/index.d.ts.map +1 -1
  14. package/dist/lib/index.js.map +1 -1
  15. package/dist/lib/index.mjs.map +1 -1
  16. package/dist/lib/protocols/a2a.d.mts +10 -3
  17. package/dist/lib/protocols/a2a.d.ts +10 -3
  18. package/dist/lib/protocols/a2a.d.ts.map +1 -1
  19. package/dist/lib/protocols/a2a.js +162 -34
  20. package/dist/lib/protocols/a2a.js.map +1 -1
  21. package/dist/lib/protocols/a2a.mjs +166 -34
  22. package/dist/lib/protocols/a2a.mjs.map +1 -1
  23. package/dist/lib/schemas/index.d.mts +385 -1
  24. package/dist/lib/schemas/index.d.ts +385 -1
  25. package/dist/lib/schemas/index.d.ts.map +1 -1
  26. package/dist/lib/schemas/index.js +13 -0
  27. package/dist/lib/schemas/index.js.map +1 -1
  28. package/dist/lib/schemas/index.mjs +11 -0
  29. package/dist/lib/schemas/index.mjs.map +1 -1
  30. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  31. package/dist/lib/server/a2a-adapter.d.mts +59 -33
  32. package/dist/lib/server/a2a-adapter.d.ts +59 -33
  33. package/dist/lib/server/a2a-adapter.d.ts.map +1 -1
  34. package/dist/lib/server/a2a-adapter.js +278 -67
  35. package/dist/lib/server/a2a-adapter.js.map +1 -1
  36. package/dist/lib/server/a2a-adapter.mjs +280 -68
  37. package/dist/lib/server/a2a-adapter.mjs.map +1 -1
  38. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  39. package/dist/lib/server/create-adcp-server.js +35 -108
  40. package/dist/lib/server/create-adcp-server.js.map +1 -1
  41. package/dist/lib/server/create-adcp-server.mjs +37 -109
  42. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  43. package/dist/lib/server/decisioning/index.d.mts +2 -0
  44. package/dist/lib/server/decisioning/index.d.ts +2 -0
  45. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  46. package/dist/lib/server/decisioning/index.js +5 -2
  47. package/dist/lib/server/decisioning/index.js.map +1 -1
  48. package/dist/lib/server/decisioning/index.mjs +3 -1
  49. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  50. package/dist/lib/server/decisioning/response-summary.d.mts +33 -0
  51. package/dist/lib/server/decisioning/response-summary.d.ts +34 -0
  52. package/dist/lib/server/decisioning/response-summary.d.ts.map +1 -0
  53. package/dist/lib/server/decisioning/response-summary.js +62 -0
  54. package/dist/lib/server/decisioning/response-summary.js.map +1 -0
  55. package/dist/lib/server/decisioning/response-summary.mjs +37 -0
  56. package/dist/lib/server/decisioning/response-summary.mjs.map +1 -0
  57. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  58. package/dist/lib/server/decisioning/runtime/from-platform.js +27 -5
  59. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  60. package/dist/lib/server/decisioning/runtime/from-platform.mjs +27 -5
  61. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  62. package/dist/lib/server/decisioning/specialisms/sales.d.mts +7 -1
  63. package/dist/lib/server/decisioning/specialisms/sales.d.ts +7 -1
  64. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  65. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  66. package/dist/lib/server/index.d.mts +1 -1
  67. package/dist/lib/server/index.d.ts +1 -1
  68. package/dist/lib/server/index.d.ts.map +1 -1
  69. package/dist/lib/server/index.js.map +1 -1
  70. package/dist/lib/server/index.mjs.map +1 -1
  71. package/dist/lib/server/responses.d.ts.map +1 -1
  72. package/dist/lib/server/responses.js +9 -1
  73. package/dist/lib/server/responses.js.map +1 -1
  74. package/dist/lib/server/responses.mjs +8 -1
  75. package/dist/lib/server/responses.mjs.map +1 -1
  76. package/dist/lib/signing/agent-context.d.mts +1 -0
  77. package/dist/lib/signing/agent-context.d.ts +1 -0
  78. package/dist/lib/signing/agent-context.d.ts.map +1 -1
  79. package/dist/lib/signing/agent-context.js +37 -2
  80. package/dist/lib/signing/agent-context.js.map +1 -1
  81. package/dist/lib/signing/agent-context.mjs +38 -3
  82. package/dist/lib/signing/agent-context.mjs.map +1 -1
  83. package/dist/lib/signing/agent-fetch.d.mts +1 -2
  84. package/dist/lib/signing/agent-fetch.d.ts +1 -2
  85. package/dist/lib/signing/agent-fetch.d.ts.map +1 -1
  86. package/dist/lib/signing/agent-fetch.js +2 -0
  87. package/dist/lib/signing/agent-fetch.js.map +1 -1
  88. package/dist/lib/signing/agent-fetch.mjs +2 -0
  89. package/dist/lib/signing/agent-fetch.mjs.map +1 -1
  90. package/dist/lib/signing/agent-resolver/etld.js.map +1 -1
  91. package/dist/lib/signing/agent-resolver/etld.mjs.map +1 -1
  92. package/dist/lib/testing/client.d.mts +6 -0
  93. package/dist/lib/testing/client.d.ts +6 -0
  94. package/dist/lib/testing/client.d.ts.map +1 -1
  95. package/dist/lib/testing/client.js +76 -4
  96. package/dist/lib/testing/client.js.map +1 -1
  97. package/dist/lib/testing/client.mjs +75 -4
  98. package/dist/lib/testing/client.mjs.map +1 -1
  99. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  100. package/dist/lib/testing/compliance/comply.js +6 -0
  101. package/dist/lib/testing/compliance/comply.js.map +1 -1
  102. package/dist/lib/testing/compliance/comply.mjs +7 -1
  103. package/dist/lib/testing/compliance/comply.mjs.map +1 -1
  104. package/dist/lib/testing/storyboard/context.d.ts.map +1 -1
  105. package/dist/lib/testing/storyboard/context.js +9 -4
  106. package/dist/lib/testing/storyboard/context.js.map +1 -1
  107. package/dist/lib/testing/storyboard/context.mjs +9 -4
  108. package/dist/lib/testing/storyboard/context.mjs.map +1 -1
  109. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
  110. package/dist/lib/testing/storyboard/request-builder.js +28 -4
  111. package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
  112. package/dist/lib/testing/storyboard/request-builder.mjs +28 -4
  113. package/dist/lib/testing/storyboard/request-builder.mjs.map +1 -1
  114. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.d.mts +15 -0
  115. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.d.ts +16 -0
  116. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.d.ts.map +1 -0
  117. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.js +106 -0
  118. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.js.map +1 -0
  119. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.mjs +82 -0
  120. package/dist/lib/testing/storyboard/request-signing/functional-dispatch.mjs.map +1 -0
  121. package/dist/lib/testing/storyboard/request-signing/test-kit.d.mts +15 -0
  122. package/dist/lib/testing/storyboard/request-signing/test-kit.d.ts +15 -0
  123. package/dist/lib/testing/storyboard/request-signing/test-kit.d.ts.map +1 -1
  124. package/dist/lib/testing/storyboard/request-signing/test-kit.js +58 -0
  125. package/dist/lib/testing/storyboard/request-signing/test-kit.js.map +1 -1
  126. package/dist/lib/testing/storyboard/request-signing/test-kit.mjs +58 -0
  127. package/dist/lib/testing/storyboard/request-signing/test-kit.mjs.map +1 -1
  128. package/dist/lib/testing/storyboard/request-signing/vector-loader.d.mts +2 -0
  129. package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts +2 -0
  130. package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts.map +1 -1
  131. package/dist/lib/testing/storyboard/request-signing/vector-loader.js +7 -1
  132. package/dist/lib/testing/storyboard/request-signing/vector-loader.js.map +1 -1
  133. package/dist/lib/testing/storyboard/request-signing/vector-loader.mjs +6 -1
  134. package/dist/lib/testing/storyboard/request-signing/vector-loader.mjs.map +1 -1
  135. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  136. package/dist/lib/testing/storyboard/runner.js +31 -7
  137. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  138. package/dist/lib/testing/storyboard/runner.mjs +31 -7
  139. package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
  140. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  141. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  142. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  143. package/dist/lib/testing/storyboard/validations.js +18 -7
  144. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  145. package/dist/lib/testing/storyboard/validations.mjs +18 -7
  146. package/dist/lib/testing/storyboard/validations.mjs.map +1 -1
  147. package/dist/lib/testing/storyboard/webhook-receiver.d.ts.map +1 -1
  148. package/dist/lib/testing/storyboard/webhook-receiver.js +32 -20
  149. package/dist/lib/testing/storyboard/webhook-receiver.js.map +1 -1
  150. package/dist/lib/testing/storyboard/webhook-receiver.mjs +32 -20
  151. package/dist/lib/testing/storyboard/webhook-receiver.mjs.map +1 -1
  152. package/dist/lib/testing/types.d.mts +10 -0
  153. package/dist/lib/testing/types.d.ts +10 -0
  154. package/dist/lib/testing/types.d.ts.map +1 -1
  155. package/dist/lib/testing/types.js.map +1 -1
  156. package/dist/lib/types/comply-test-controller.d.ts +1 -14
  157. package/dist/lib/types/core.generated.d.mts +1 -1
  158. package/dist/lib/types/core.generated.d.ts +1 -1
  159. package/dist/lib/types/core.generated.d.ts.map +1 -1
  160. package/dist/lib/types/core.generated.js.map +1 -1
  161. package/dist/lib/types/get-products.d.ts +1 -14
  162. package/dist/lib/types/schemas.generated.d.ts +519 -571
  163. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  164. package/dist/lib/types/schemas.generated.js +2 -2
  165. package/dist/lib/types/schemas.generated.js.map +1 -1
  166. package/dist/lib/types/schemas.generated.mjs +2 -2
  167. package/dist/lib/types/schemas.generated.mjs.map +1 -1
  168. package/dist/lib/types/tools.generated.d.mts +1 -1
  169. package/dist/lib/types/tools.generated.d.ts +1 -1
  170. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  171. package/dist/lib/types/tools.generated.js.map +1 -1
  172. package/dist/lib/utils/a2a-artifacts.d.ts.map +1 -1
  173. package/dist/lib/utils/a2a-artifacts.js +2 -2
  174. package/dist/lib/utils/a2a-artifacts.js.map +1 -1
  175. package/dist/lib/utils/a2a-artifacts.mjs +2 -2
  176. package/dist/lib/utils/a2a-artifacts.mjs.map +1 -1
  177. package/dist/lib/utils/a2a-discovery.d.mts +3 -3
  178. package/dist/lib/utils/a2a-discovery.d.ts +3 -3
  179. package/dist/lib/utils/a2a-discovery.js +1 -1
  180. package/dist/lib/utils/a2a-discovery.js.map +1 -1
  181. package/dist/lib/utils/a2a-discovery.mjs +1 -1
  182. package/dist/lib/utils/a2a-discovery.mjs.map +1 -1
  183. package/dist/lib/utils/tool-request-schemas.d.mts +31 -31
  184. package/dist/lib/utils/tool-request-schemas.d.ts +31 -31
  185. package/dist/lib/v2/projection/index.d.mts +2 -0
  186. package/dist/lib/v2/projection/index.d.ts +2 -0
  187. package/dist/lib/v2/projection/index.d.ts.map +1 -1
  188. package/dist/lib/v2/projection/index.js +3 -0
  189. package/dist/lib/v2/projection/index.js.map +1 -1
  190. package/dist/lib/v2/projection/index.mjs +2 -0
  191. package/dist/lib/v2/projection/index.mjs.map +1 -1
  192. package/dist/lib/v2/projection/legacy-normalization.d.mts +24 -0
  193. package/dist/lib/v2/projection/legacy-normalization.d.ts +25 -0
  194. package/dist/lib/v2/projection/legacy-normalization.d.ts.map +1 -0
  195. package/dist/lib/v2/projection/legacy-normalization.js +32 -0
  196. package/dist/lib/v2/projection/legacy-normalization.js.map +1 -0
  197. package/dist/lib/v2/projection/legacy-normalization.mjs +8 -0
  198. package/dist/lib/v2/projection/legacy-normalization.mjs.map +1 -0
  199. package/dist/lib/version.d.mts +3 -3
  200. package/dist/lib/version.d.ts +3 -3
  201. package/dist/lib/version.js +3 -3
  202. package/dist/lib/version.js.map +1 -1
  203. package/dist/lib/version.mjs +3 -3
  204. package/dist/lib/version.mjs.map +1 -1
  205. package/docs/guides/BUILD-AN-AGENT.md +42 -6
  206. package/docs/llms.txt +2 -2
  207. package/docs/migration-13-to-14.md +17 -0
  208. package/package.json +44 -41
@@ -65,7 +65,8 @@ import {
65
65
  syncAccountsResponse,
66
66
  syncGovernanceResponse,
67
67
  reportUsageResponse,
68
- toStructuredContent
68
+ toStructuredContent,
69
+ _getExplicitResponseSummary
69
70
  } from "./responses.mjs";
70
71
  import { TOOL_REQUEST_SCHEMAS } from "../utils/tool-request-schemas.mjs";
71
72
  import { defineProposalRefinementCapabilities } from "../negotiation/seller.mjs";
@@ -252,59 +253,25 @@ function deepMergePlainObjects(target, source) {
252
253
  function stampReplayed(response) {
253
254
  if (!response.structuredContent || typeof response.structuredContent !== "object") return;
254
255
  const sc = response.structuredContent;
256
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
255
257
  sc.replayed = true;
256
- if (Array.isArray(response.content)) {
257
- const first = response.content[0];
258
- if (first && first.type === "text" && typeof first.text === "string") {
259
- try {
260
- const parsed = JSON.parse(first.text);
261
- if (parsed && typeof parsed === "object") {
262
- parsed.replayed = true;
263
- first.text = JSON.stringify(parsed);
264
- }
265
- } catch {
266
- }
267
- }
268
- }
258
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
269
259
  }
270
260
  function stampBridge(response, callback, tool, mergedCount) {
271
261
  if (!response.structuredContent || typeof response.structuredContent !== "object") return;
272
262
  const marker = { callback, tool, merged_count: mergedCount };
273
263
  const sc = response.structuredContent;
264
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
274
265
  sc._bridge = marker;
275
- if (Array.isArray(response.content)) {
276
- const first = response.content[0];
277
- if (first && first.type === "text" && typeof first.text === "string") {
278
- try {
279
- const parsed = JSON.parse(first.text);
280
- if (parsed && typeof parsed === "object") {
281
- parsed._bridge = marker;
282
- first.text = JSON.stringify(parsed);
283
- }
284
- } catch {
285
- }
286
- }
287
- }
266
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
288
267
  }
289
268
  function stripEnvelopeEcho(response) {
290
269
  const cloned = cloneFormattedResponse(response);
291
270
  if (cloned.structuredContent && typeof cloned.structuredContent === "object") {
292
271
  const sc = cloned.structuredContent;
272
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(cloned, sc);
293
273
  delete sc.context;
294
- }
295
- if (Array.isArray(cloned.content)) {
296
- for (const item of cloned.content) {
297
- if (item && item.type === "text" && typeof item.text === "string") {
298
- try {
299
- const parsed = JSON.parse(item.text);
300
- if (parsed && typeof parsed === "object") {
301
- delete parsed.context;
302
- item.text = JSON.stringify(parsed);
303
- }
304
- } catch {
305
- }
306
- }
307
- }
274
+ syncContentJsonText(cloned, sc, mirrorsStructuredContent);
308
275
  }
309
276
  return cloned;
310
277
  }
@@ -1138,20 +1105,9 @@ function sanitizeAdcpErrorEnvelope(response) {
1138
1105
  }
1139
1106
  }
1140
1107
  if (!changed) return;
1108
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1141
1109
  sc.adcp_error = filtered;
1142
- if (Array.isArray(response.content)) {
1143
- const first = response.content[0];
1144
- if (first && first.type === "text" && typeof first.text === "string") {
1145
- try {
1146
- const parsed = JSON.parse(first.text);
1147
- if (parsed && typeof parsed === "object") {
1148
- parsed.adcp_error = filtered;
1149
- first.text = JSON.stringify(parsed);
1150
- }
1151
- } catch {
1152
- }
1153
- }
1154
- }
1110
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1155
1111
  }
1156
1112
  const PAYLOAD_ERROR_FIELDS = /* @__PURE__ */ new Set([
1157
1113
  "code",
@@ -1186,11 +1142,15 @@ function enrichErrorTwoLayer(response, toolName, toolsWithErrorArm) {
1186
1142
  const envValid = env != null && typeof env === "object" && typeof env.code === "string";
1187
1143
  const payloadList = sc.errors;
1188
1144
  const payloadValid = Array.isArray(payloadList) && payloadList.length > 0;
1189
- if (payloadValid && sanitizePayloadErrors(sc)) syncContentJsonText(response, sc);
1145
+ const mirrorsBeforePayloadSanitization = contentTextMirrorsStructuredContent(response, sc);
1146
+ if (payloadValid && sanitizePayloadErrors(sc)) {
1147
+ syncContentJsonText(response, sc, mirrorsBeforePayloadSanitization);
1148
+ }
1190
1149
  if (envValid && !payloadValid) {
1150
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1191
1151
  sc.errors = [projectEnvelopeToPayloadError(env)];
1192
1152
  applyArmDiscriminators(sc, descriptor);
1193
- syncContentJsonText(response, sc);
1153
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1194
1154
  return;
1195
1155
  }
1196
1156
  if (!envValid && payloadValid) {
@@ -1198,9 +1158,10 @@ function enrichErrorTwoLayer(response, toolName, toolsWithErrorArm) {
1198
1158
  if (first && typeof first === "object") {
1199
1159
  const projected = projectPayloadErrorToEnvelope(first);
1200
1160
  if (typeof projected.code === "string" && typeof projected.message === "string") {
1161
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1201
1162
  sc.adcp_error = projected;
1202
1163
  applyArmDiscriminators(sc, descriptor);
1203
- syncContentJsonText(response, sc);
1164
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1204
1165
  }
1205
1166
  }
1206
1167
  return;
@@ -1211,17 +1172,15 @@ function applyArmDiscriminators(sc, descriptor) {
1211
1172
  if (!(key in sc)) sc[key] = value;
1212
1173
  }
1213
1174
  }
1214
- function syncContentJsonText(response, structuredContent) {
1215
- if (!Array.isArray(response.content)) return;
1175
+ function contentTextMirrorsStructuredContent(response, structuredContent) {
1176
+ if (!Array.isArray(response.content)) return false;
1216
1177
  const first = response.content[0];
1217
- if (!first || first.type !== "text" || typeof first.text !== "string") return;
1218
- let parsed;
1219
- try {
1220
- parsed = JSON.parse(first.text);
1221
- } catch {
1222
- return;
1223
- }
1224
- if (parsed == null || typeof parsed !== "object" || Array.isArray(parsed)) return;
1178
+ return first?.type === "text" && first.text === JSON.stringify(structuredContent);
1179
+ }
1180
+ function syncContentJsonText(response, structuredContent, mirroredBeforeMutation) {
1181
+ if (!mirroredBeforeMutation || !Array.isArray(response.content)) return;
1182
+ const first = response.content[0];
1183
+ if (!first || first.type !== "text") return;
1225
1184
  first.text = JSON.stringify(structuredContent);
1226
1185
  }
1227
1186
  function missingGetProductsCacheScopeIssue() {
@@ -1247,28 +1206,18 @@ function normalizeGetProductsCacheScope(response, params, account, authInfo, exp
1247
1206
  })
1248
1207
  );
1249
1208
  }
1209
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1250
1210
  sc.cache_scope = "public";
1251
- syncContentJsonText(response, sc);
1211
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1252
1212
  return void 0;
1253
1213
  }
1254
1214
  function injectContextIntoResponse(response, context) {
1255
1215
  if (context === null || typeof context !== "object" || Array.isArray(context)) return;
1256
1216
  const sc = response.structuredContent;
1257
1217
  if (sc && typeof sc === "object" && !("context" in sc)) {
1218
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1258
1219
  sc.context = context;
1259
- if (Array.isArray(response.content)) {
1260
- const first = response.content[0];
1261
- if (first && first.type === "text" && typeof first.text === "string") {
1262
- try {
1263
- const parsed = JSON.parse(first.text);
1264
- if (parsed && typeof parsed === "object" && !("context" in parsed)) {
1265
- parsed.context = context;
1266
- first.text = JSON.stringify(parsed);
1267
- }
1268
- } catch {
1269
- }
1270
- }
1271
- }
1220
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1272
1221
  }
1273
1222
  }
1274
1223
  function injectEnvelopeStatusIntoResponse(response, toolName) {
@@ -1277,20 +1226,9 @@ function injectEnvelopeStatusIntoResponse(response, toolName) {
1277
1226
  if ("status" in sc) return;
1278
1227
  if (STATUS_FREE_SYNC_RESPONSE_TOOLS.has(toolName)) return;
1279
1228
  const status = response.isError === true ? "failed" : "completed";
1229
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1280
1230
  sc.status = status;
1281
- if (Array.isArray(response.content)) {
1282
- const first = response.content[0];
1283
- if (first && first.type === "text" && typeof first.text === "string") {
1284
- try {
1285
- const parsed = JSON.parse(first.text);
1286
- if (parsed && typeof parsed === "object" && !("status" in parsed)) {
1287
- parsed.status = status;
1288
- first.text = JSON.stringify(parsed);
1289
- }
1290
- } catch {
1291
- }
1292
- }
1293
- }
1231
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1294
1232
  }
1295
1233
  const MEDIA_BUY_RESPONSE_TOOLS_REQUIRING_STATUS_SPLIT = /* @__PURE__ */ new Set([
1296
1234
  "create_media_buy",
@@ -1314,29 +1252,19 @@ function normalizeMediaBuyStatusCollision(response, toolName) {
1314
1252
  if (typeof status !== "string" || !MEDIA_BUY_STATUS_VALUES.has(status)) return;
1315
1253
  const looksLikeMediaBuyPayload = typeof sc.media_buy_id === "string" || "media_buy_status" in sc || Array.isArray(sc.packages);
1316
1254
  if (!looksLikeMediaBuyPayload) return;
1255
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1317
1256
  if (sc.media_buy_status === void 0) sc.media_buy_status = status;
1318
1257
  delete sc.status;
1319
- syncContentJsonText(response, sc);
1258
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1320
1259
  }
1321
1260
  function injectVersionIntoResponse(response, servedVersion) {
1322
1261
  if (!servedVersion) return;
1323
1262
  const wireVersion = toReleasePrecisionVersion(servedVersion);
1324
1263
  const sc = response.structuredContent;
1325
1264
  if (sc && typeof sc === "object" && !("adcp_version" in sc)) {
1265
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1326
1266
  sc.adcp_version = wireVersion;
1327
- if (Array.isArray(response.content)) {
1328
- const first = response.content[0];
1329
- if (first && first.type === "text" && typeof first.text === "string") {
1330
- try {
1331
- const parsed = JSON.parse(first.text);
1332
- if (parsed && typeof parsed === "object" && !("adcp_version" in parsed)) {
1333
- parsed.adcp_version = wireVersion;
1334
- first.text = JSON.stringify(parsed);
1335
- }
1336
- } catch {
1337
- }
1338
- }
1339
- }
1267
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1340
1268
  }
1341
1269
  }
1342
1270
  function resolveEffectiveSignedRequestPolicy(signedRequests, capabilityRequestSigning, adcpVersion) {
@@ -2901,7 +2829,7 @@ function createAdcpServer(config) {
2901
2829
  const sc = formatted.structuredContent;
2902
2830
  if (sc && typeof sc === "object") {
2903
2831
  const merged = mergeSeededProductsIntoResponse(sc, seeded);
2904
- formatted = wrap(merged);
2832
+ formatted = wrap(merged, _getExplicitResponseSummary(formatted));
2905
2833
  stampBridge(formatted, "getSeededProducts", toolName, seeded.length);
2906
2834
  }
2907
2835
  }