@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
@@ -188,59 +188,25 @@ function deepMergePlainObjects(target, source) {
188
188
  function stampReplayed(response) {
189
189
  if (!response.structuredContent || typeof response.structuredContent !== "object") return;
190
190
  const sc = response.structuredContent;
191
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
191
192
  sc.replayed = true;
192
- if (Array.isArray(response.content)) {
193
- const first = response.content[0];
194
- if (first && first.type === "text" && typeof first.text === "string") {
195
- try {
196
- const parsed = JSON.parse(first.text);
197
- if (parsed && typeof parsed === "object") {
198
- parsed.replayed = true;
199
- first.text = JSON.stringify(parsed);
200
- }
201
- } catch {
202
- }
203
- }
204
- }
193
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
205
194
  }
206
195
  function stampBridge(response, callback, tool, mergedCount) {
207
196
  if (!response.structuredContent || typeof response.structuredContent !== "object") return;
208
197
  const marker = { callback, tool, merged_count: mergedCount };
209
198
  const sc = response.structuredContent;
199
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
210
200
  sc._bridge = marker;
211
- if (Array.isArray(response.content)) {
212
- const first = response.content[0];
213
- if (first && first.type === "text" && typeof first.text === "string") {
214
- try {
215
- const parsed = JSON.parse(first.text);
216
- if (parsed && typeof parsed === "object") {
217
- parsed._bridge = marker;
218
- first.text = JSON.stringify(parsed);
219
- }
220
- } catch {
221
- }
222
- }
223
- }
201
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
224
202
  }
225
203
  function stripEnvelopeEcho(response) {
226
204
  const cloned = cloneFormattedResponse(response);
227
205
  if (cloned.structuredContent && typeof cloned.structuredContent === "object") {
228
206
  const sc = cloned.structuredContent;
207
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(cloned, sc);
229
208
  delete sc.context;
230
- }
231
- if (Array.isArray(cloned.content)) {
232
- for (const item of cloned.content) {
233
- if (item && item.type === "text" && typeof item.text === "string") {
234
- try {
235
- const parsed = JSON.parse(item.text);
236
- if (parsed && typeof parsed === "object") {
237
- delete parsed.context;
238
- item.text = JSON.stringify(parsed);
239
- }
240
- } catch {
241
- }
242
- }
243
- }
209
+ syncContentJsonText(cloned, sc, mirrorsStructuredContent);
244
210
  }
245
211
  return cloned;
246
212
  }
@@ -1074,20 +1040,9 @@ function sanitizeAdcpErrorEnvelope(response) {
1074
1040
  }
1075
1041
  }
1076
1042
  if (!changed) return;
1043
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1077
1044
  sc.adcp_error = filtered;
1078
- if (Array.isArray(response.content)) {
1079
- const first = response.content[0];
1080
- if (first && first.type === "text" && typeof first.text === "string") {
1081
- try {
1082
- const parsed = JSON.parse(first.text);
1083
- if (parsed && typeof parsed === "object") {
1084
- parsed.adcp_error = filtered;
1085
- first.text = JSON.stringify(parsed);
1086
- }
1087
- } catch {
1088
- }
1089
- }
1090
- }
1045
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1091
1046
  }
1092
1047
  const PAYLOAD_ERROR_FIELDS = /* @__PURE__ */ new Set([
1093
1048
  "code",
@@ -1122,11 +1077,15 @@ function enrichErrorTwoLayer(response, toolName, toolsWithErrorArm) {
1122
1077
  const envValid = env != null && typeof env === "object" && typeof env.code === "string";
1123
1078
  const payloadList = sc.errors;
1124
1079
  const payloadValid = Array.isArray(payloadList) && payloadList.length > 0;
1125
- if (payloadValid && sanitizePayloadErrors(sc)) syncContentJsonText(response, sc);
1080
+ const mirrorsBeforePayloadSanitization = contentTextMirrorsStructuredContent(response, sc);
1081
+ if (payloadValid && sanitizePayloadErrors(sc)) {
1082
+ syncContentJsonText(response, sc, mirrorsBeforePayloadSanitization);
1083
+ }
1126
1084
  if (envValid && !payloadValid) {
1085
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1127
1086
  sc.errors = [projectEnvelopeToPayloadError(env)];
1128
1087
  applyArmDiscriminators(sc, descriptor);
1129
- syncContentJsonText(response, sc);
1088
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1130
1089
  return;
1131
1090
  }
1132
1091
  if (!envValid && payloadValid) {
@@ -1134,9 +1093,10 @@ function enrichErrorTwoLayer(response, toolName, toolsWithErrorArm) {
1134
1093
  if (first && typeof first === "object") {
1135
1094
  const projected = projectPayloadErrorToEnvelope(first);
1136
1095
  if (typeof projected.code === "string" && typeof projected.message === "string") {
1096
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1137
1097
  sc.adcp_error = projected;
1138
1098
  applyArmDiscriminators(sc, descriptor);
1139
- syncContentJsonText(response, sc);
1099
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1140
1100
  }
1141
1101
  }
1142
1102
  return;
@@ -1147,17 +1107,15 @@ function applyArmDiscriminators(sc, descriptor) {
1147
1107
  if (!(key in sc)) sc[key] = value;
1148
1108
  }
1149
1109
  }
1150
- function syncContentJsonText(response, structuredContent) {
1151
- if (!Array.isArray(response.content)) return;
1110
+ function contentTextMirrorsStructuredContent(response, structuredContent) {
1111
+ if (!Array.isArray(response.content)) return false;
1152
1112
  const first = response.content[0];
1153
- if (!first || first.type !== "text" || typeof first.text !== "string") return;
1154
- let parsed;
1155
- try {
1156
- parsed = JSON.parse(first.text);
1157
- } catch {
1158
- return;
1159
- }
1160
- if (parsed == null || typeof parsed !== "object" || Array.isArray(parsed)) return;
1113
+ return first?.type === "text" && first.text === JSON.stringify(structuredContent);
1114
+ }
1115
+ function syncContentJsonText(response, structuredContent, mirroredBeforeMutation) {
1116
+ if (!mirroredBeforeMutation || !Array.isArray(response.content)) return;
1117
+ const first = response.content[0];
1118
+ if (!first || first.type !== "text") return;
1161
1119
  first.text = JSON.stringify(structuredContent);
1162
1120
  }
1163
1121
  function missingGetProductsCacheScopeIssue() {
@@ -1183,28 +1141,18 @@ function normalizeGetProductsCacheScope(response, params, account, authInfo, exp
1183
1141
  })
1184
1142
  );
1185
1143
  }
1144
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1186
1145
  sc.cache_scope = "public";
1187
- syncContentJsonText(response, sc);
1146
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1188
1147
  return void 0;
1189
1148
  }
1190
1149
  function injectContextIntoResponse(response, context) {
1191
1150
  if (context === null || typeof context !== "object" || Array.isArray(context)) return;
1192
1151
  const sc = response.structuredContent;
1193
1152
  if (sc && typeof sc === "object" && !("context" in sc)) {
1153
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1194
1154
  sc.context = context;
1195
- if (Array.isArray(response.content)) {
1196
- const first = response.content[0];
1197
- if (first && first.type === "text" && typeof first.text === "string") {
1198
- try {
1199
- const parsed = JSON.parse(first.text);
1200
- if (parsed && typeof parsed === "object" && !("context" in parsed)) {
1201
- parsed.context = context;
1202
- first.text = JSON.stringify(parsed);
1203
- }
1204
- } catch {
1205
- }
1206
- }
1207
- }
1155
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1208
1156
  }
1209
1157
  }
1210
1158
  function injectEnvelopeStatusIntoResponse(response, toolName) {
@@ -1213,20 +1161,9 @@ function injectEnvelopeStatusIntoResponse(response, toolName) {
1213
1161
  if ("status" in sc) return;
1214
1162
  if (import_envelope_status_compat.STATUS_FREE_SYNC_RESPONSE_TOOLS.has(toolName)) return;
1215
1163
  const status = response.isError === true ? "failed" : "completed";
1164
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1216
1165
  sc.status = status;
1217
- if (Array.isArray(response.content)) {
1218
- const first = response.content[0];
1219
- if (first && first.type === "text" && typeof first.text === "string") {
1220
- try {
1221
- const parsed = JSON.parse(first.text);
1222
- if (parsed && typeof parsed === "object" && !("status" in parsed)) {
1223
- parsed.status = status;
1224
- first.text = JSON.stringify(parsed);
1225
- }
1226
- } catch {
1227
- }
1228
- }
1229
- }
1166
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1230
1167
  }
1231
1168
  const MEDIA_BUY_RESPONSE_TOOLS_REQUIRING_STATUS_SPLIT = /* @__PURE__ */ new Set([
1232
1169
  "create_media_buy",
@@ -1250,29 +1187,19 @@ function normalizeMediaBuyStatusCollision(response, toolName) {
1250
1187
  if (typeof status !== "string" || !MEDIA_BUY_STATUS_VALUES.has(status)) return;
1251
1188
  const looksLikeMediaBuyPayload = typeof sc.media_buy_id === "string" || "media_buy_status" in sc || Array.isArray(sc.packages);
1252
1189
  if (!looksLikeMediaBuyPayload) return;
1190
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1253
1191
  if (sc.media_buy_status === void 0) sc.media_buy_status = status;
1254
1192
  delete sc.status;
1255
- syncContentJsonText(response, sc);
1193
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1256
1194
  }
1257
1195
  function injectVersionIntoResponse(response, servedVersion) {
1258
1196
  if (!servedVersion) return;
1259
1197
  const wireVersion = (0, import_version.toReleasePrecisionVersion)(servedVersion);
1260
1198
  const sc = response.structuredContent;
1261
1199
  if (sc && typeof sc === "object" && !("adcp_version" in sc)) {
1200
+ const mirrorsStructuredContent = contentTextMirrorsStructuredContent(response, sc);
1262
1201
  sc.adcp_version = wireVersion;
1263
- if (Array.isArray(response.content)) {
1264
- const first = response.content[0];
1265
- if (first && first.type === "text" && typeof first.text === "string") {
1266
- try {
1267
- const parsed = JSON.parse(first.text);
1268
- if (parsed && typeof parsed === "object" && !("adcp_version" in parsed)) {
1269
- parsed.adcp_version = wireVersion;
1270
- first.text = JSON.stringify(parsed);
1271
- }
1272
- } catch {
1273
- }
1274
- }
1275
- }
1202
+ syncContentJsonText(response, sc, mirrorsStructuredContent);
1276
1203
  }
1277
1204
  }
1278
1205
  function resolveEffectiveSignedRequestPolicy(signedRequests, capabilityRequestSigning, adcpVersion) {
@@ -2837,7 +2764,7 @@ function createAdcpServer(config) {
2837
2764
  const sc = formatted.structuredContent;
2838
2765
  if (sc && typeof sc === "object") {
2839
2766
  const merged = (0, import_test_controller_bridge.mergeSeededProductsIntoResponse)(sc, seeded);
2840
- formatted = wrap(merged);
2767
+ formatted = wrap(merged, (0, import_responses._getExplicitResponseSummary)(formatted));
2841
2768
  stampBridge(formatted, "getSeededProducts", toolName, seeded.length);
2842
2769
  }
2843
2770
  }