@namzu/sdk 39.0.0 → 41.0.0

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 (289) hide show
  1. package/CHANGELOG.md +328 -0
  2. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  3. package/dist/bridge/a2a/mapper.js +8 -0
  4. package/dist/bridge/a2a/mapper.js.map +1 -1
  5. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  6. package/dist/bridge/sse/mapper.js +11 -0
  7. package/dist/bridge/sse/mapper.js.map +1 -1
  8. package/dist/connector/index.d.ts +2 -2
  9. package/dist/connector/index.d.ts.map +1 -1
  10. package/dist/connector/index.js +1 -1
  11. package/dist/connector/index.js.map +1 -1
  12. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  13. package/dist/connector/mcp/adapter.js +112 -10
  14. package/dist/connector/mcp/adapter.js.map +1 -1
  15. package/dist/connector/mcp/audio-admission.d.ts +17 -0
  16. package/dist/connector/mcp/audio-admission.d.ts.map +1 -0
  17. package/dist/connector/mcp/audio-admission.js +171 -0
  18. package/dist/connector/mcp/audio-admission.js.map +1 -0
  19. package/dist/connector/mcp/client.d.ts +252 -1
  20. package/dist/connector/mcp/client.d.ts.map +1 -1
  21. package/dist/connector/mcp/client.js +611 -39
  22. package/dist/connector/mcp/client.js.map +1 -1
  23. package/dist/connector/mcp/envelope.d.ts +91 -0
  24. package/dist/connector/mcp/envelope.d.ts.map +1 -0
  25. package/dist/connector/mcp/envelope.js +173 -0
  26. package/dist/connector/mcp/envelope.js.map +1 -0
  27. package/dist/connector/mcp/era.d.ts +130 -0
  28. package/dist/connector/mcp/era.d.ts.map +1 -0
  29. package/dist/connector/mcp/era.js +304 -0
  30. package/dist/connector/mcp/era.js.map +1 -0
  31. package/dist/connector/mcp/errors.d.ts +106 -0
  32. package/dist/connector/mcp/errors.d.ts.map +1 -0
  33. package/dist/connector/mcp/errors.js +154 -0
  34. package/dist/connector/mcp/errors.js.map +1 -0
  35. package/dist/connector/mcp/http-sse.d.ts +11 -0
  36. package/dist/connector/mcp/http-sse.d.ts.map +1 -1
  37. package/dist/connector/mcp/http-sse.js +21 -6
  38. package/dist/connector/mcp/http-sse.js.map +1 -1
  39. package/dist/connector/mcp/index.d.ts +7 -0
  40. package/dist/connector/mcp/index.d.ts.map +1 -1
  41. package/dist/connector/mcp/index.js +10 -0
  42. package/dist/connector/mcp/index.js.map +1 -1
  43. package/dist/connector/mcp/streamable-http.d.ts +83 -0
  44. package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
  45. package/dist/connector/mcp/streamable-http.js +177 -11
  46. package/dist/connector/mcp/streamable-http.js.map +1 -1
  47. package/dist/connector/mcp/x-mcp-header.d.ts +56 -0
  48. package/dist/connector/mcp/x-mcp-header.d.ts.map +1 -0
  49. package/dist/connector/mcp/x-mcp-header.js +254 -0
  50. package/dist/connector/mcp/x-mcp-header.js.map +1 -0
  51. package/dist/constants/mcp/index.d.ts +123 -15
  52. package/dist/constants/mcp/index.d.ts.map +1 -1
  53. package/dist/constants/mcp/index.js +135 -16
  54. package/dist/constants/mcp/index.js.map +1 -1
  55. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  56. package/dist/manager/agent/lifecycle.js +23 -0
  57. package/dist/manager/agent/lifecycle.js.map +1 -1
  58. package/dist/manager/run/persistence.d.ts +8 -0
  59. package/dist/manager/run/persistence.d.ts.map +1 -1
  60. package/dist/manager/run/persistence.js +12 -0
  61. package/dist/manager/run/persistence.js.map +1 -1
  62. package/dist/prompt/coding-agent-doctrine.d.ts +20 -0
  63. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  64. package/dist/prompt/coding-agent-doctrine.js +19 -3
  65. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  66. package/dist/prompt/index.d.ts +1 -1
  67. package/dist/prompt/index.d.ts.map +1 -1
  68. package/dist/prompt/index.js +1 -1
  69. package/dist/prompt/index.js.map +1 -1
  70. package/dist/public-runtime.d.ts +6 -4
  71. package/dist/public-runtime.d.ts.map +1 -1
  72. package/dist/public-runtime.js +8 -4
  73. package/dist/public-runtime.js.map +1 -1
  74. package/dist/public-tools.d.ts +11 -0
  75. package/dist/public-tools.d.ts.map +1 -1
  76. package/dist/public-tools.js +14 -0
  77. package/dist/public-tools.js.map +1 -1
  78. package/dist/registry/tool/execute.d.ts.map +1 -1
  79. package/dist/registry/tool/execute.js +2 -3
  80. package/dist/registry/tool/execute.js.map +1 -1
  81. package/dist/registry/tool/portable.d.ts +65 -0
  82. package/dist/registry/tool/portable.d.ts.map +1 -0
  83. package/dist/registry/tool/portable.js +244 -0
  84. package/dist/registry/tool/portable.js.map +1 -0
  85. package/dist/registry/tool/schema.d.ts +32 -5
  86. package/dist/registry/tool/schema.d.ts.map +1 -1
  87. package/dist/registry/tool/schema.js +35 -9
  88. package/dist/registry/tool/schema.js.map +1 -1
  89. package/dist/registry/toolset/catalog.js +8 -8
  90. package/dist/registry/toolset/catalog.js.map +1 -1
  91. package/dist/runtime/jobs/awaited-jobs.d.ts +215 -0
  92. package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -0
  93. package/dist/runtime/jobs/awaited-jobs.js +259 -0
  94. package/dist/runtime/jobs/awaited-jobs.js.map +1 -0
  95. package/dist/runtime/jobs/registry.d.ts +33 -2
  96. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  97. package/dist/runtime/jobs/registry.js +37 -0
  98. package/dist/runtime/jobs/registry.js.map +1 -1
  99. package/dist/runtime/query/executor.d.ts +28 -0
  100. package/dist/runtime/query/executor.d.ts.map +1 -1
  101. package/dist/runtime/query/executor.js +39 -1
  102. package/dist/runtime/query/executor.js.map +1 -1
  103. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -1
  104. package/dist/runtime/query/file-evidence-context.js +159 -43
  105. package/dist/runtime/query/file-evidence-context.js.map +1 -1
  106. package/dist/runtime/query/file-evidence-replay.d.ts +260 -0
  107. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -0
  108. package/dist/runtime/query/file-evidence-replay.js +647 -0
  109. package/dist/runtime/query/file-evidence-replay.js.map +1 -0
  110. package/dist/runtime/query/file-evidence-seed.d.ts +50 -0
  111. package/dist/runtime/query/file-evidence-seed.d.ts.map +1 -0
  112. package/dist/runtime/query/file-evidence-seed.js +100 -0
  113. package/dist/runtime/query/file-evidence-seed.js.map +1 -0
  114. package/dist/runtime/query/index.d.ts.map +1 -1
  115. package/dist/runtime/query/index.js +94 -2
  116. package/dist/runtime/query/index.js.map +1 -1
  117. package/dist/runtime/query/iteration/index.d.ts +87 -9
  118. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  119. package/dist/runtime/query/iteration/index.js +193 -28
  120. package/dist/runtime/query/iteration/index.js.map +1 -1
  121. package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
  122. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  123. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  124. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  125. package/dist/runtime/query/iteration/phases/tool-review.js +5 -1
  126. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  127. package/dist/runtime/query/plugin-hooks.d.ts +14 -0
  128. package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
  129. package/dist/runtime/query/plugin-hooks.js +18 -0
  130. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  131. package/dist/runtime/query/repeat-call.d.ts +17 -4
  132. package/dist/runtime/query/repeat-call.d.ts.map +1 -1
  133. package/dist/runtime/query/repeat-call.js +26 -19
  134. package/dist/runtime/query/repeat-call.js.map +1 -1
  135. package/dist/runtime/query/steering.d.ts +11 -1
  136. package/dist/runtime/query/steering.d.ts.map +1 -1
  137. package/dist/runtime/query/steering.js +12 -1
  138. package/dist/runtime/query/steering.js.map +1 -1
  139. package/dist/runtime/query/tooling.d.ts +2 -0
  140. package/dist/runtime/query/tooling.d.ts.map +1 -1
  141. package/dist/runtime/query/tooling.js +1 -0
  142. package/dist/runtime/query/tooling.js.map +1 -1
  143. package/dist/sandbox/provider/local.d.ts.map +1 -1
  144. package/dist/sandbox/provider/local.js +46 -3
  145. package/dist/sandbox/provider/local.js.map +1 -1
  146. package/dist/scheduler/completion-inbox.d.ts +48 -2
  147. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  148. package/dist/scheduler/completion-inbox.js +102 -10
  149. package/dist/scheduler/completion-inbox.js.map +1 -1
  150. package/dist/scheduler/local.d.ts.map +1 -1
  151. package/dist/scheduler/local.js +8 -0
  152. package/dist/scheduler/local.js.map +1 -1
  153. package/dist/store/run/disk.d.ts +35 -1
  154. package/dist/store/run/disk.d.ts.map +1 -1
  155. package/dist/store/run/disk.js +100 -0
  156. package/dist/store/run/disk.js.map +1 -1
  157. package/dist/tools/builtins/bash.d.ts.map +1 -1
  158. package/dist/tools/builtins/bash.js +4 -10
  159. package/dist/tools/builtins/bash.js.map +1 -1
  160. package/dist/tools/builtins/edit-apply.d.ts +126 -0
  161. package/dist/tools/builtins/edit-apply.d.ts.map +1 -0
  162. package/dist/tools/builtins/edit-apply.js +360 -0
  163. package/dist/tools/builtins/edit-apply.js.map +1 -0
  164. package/dist/tools/builtins/edit.d.ts +143 -1
  165. package/dist/tools/builtins/edit.d.ts.map +1 -1
  166. package/dist/tools/builtins/edit.js +37 -219
  167. package/dist/tools/builtins/edit.js.map +1 -1
  168. package/dist/tools/builtins/index.d.ts +1 -0
  169. package/dist/tools/builtins/index.d.ts.map +1 -1
  170. package/dist/tools/builtins/index.js +9 -3
  171. package/dist/tools/builtins/index.js.map +1 -1
  172. package/dist/tools/builtins/job.js +1 -1
  173. package/dist/tools/builtins/job.js.map +1 -1
  174. package/dist/tools/builtins/read-file.d.ts +2 -2
  175. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  176. package/dist/tools/builtins/read-file.js +50 -65
  177. package/dist/tools/builtins/read-file.js.map +1 -1
  178. package/dist/tools/builtins/read-render.d.ts +56 -0
  179. package/dist/tools/builtins/read-render.d.ts.map +1 -0
  180. package/dist/tools/builtins/read-render.js +73 -0
  181. package/dist/tools/builtins/read-render.js.map +1 -0
  182. package/dist/tools/builtins/wait-for-job-bounds.d.ts +67 -0
  183. package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -0
  184. package/dist/tools/builtins/wait-for-job-bounds.js +108 -0
  185. package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -0
  186. package/dist/tools/builtins/wait-for-job.d.ts +6 -0
  187. package/dist/tools/builtins/wait-for-job.d.ts.map +1 -0
  188. package/dist/tools/builtins/wait-for-job.js +162 -0
  189. package/dist/tools/builtins/wait-for-job.js.map +1 -0
  190. package/dist/tools/builtins/write-file.js +5 -0
  191. package/dist/tools/builtins/write-file.js.map +1 -1
  192. package/dist/tools/coordinator/index.d.ts.map +1 -1
  193. package/dist/tools/coordinator/index.js +1 -7
  194. package/dist/tools/coordinator/index.js.map +1 -1
  195. package/dist/tools/file-read-tracker.d.ts.map +1 -1
  196. package/dist/tools/file-read-tracker.js +88 -10
  197. package/dist/tools/file-read-tracker.js.map +1 -1
  198. package/dist/types/agent/scheduler.d.ts +20 -0
  199. package/dist/types/agent/scheduler.d.ts.map +1 -1
  200. package/dist/types/agent/task.d.ts +20 -0
  201. package/dist/types/agent/task.d.ts.map +1 -1
  202. package/dist/types/connector/mcp.d.ts +205 -0
  203. package/dist/types/connector/mcp.d.ts.map +1 -1
  204. package/dist/types/message/index.d.ts +1 -1
  205. package/dist/types/message/index.d.ts.map +1 -1
  206. package/dist/types/message/index.js +2 -0
  207. package/dist/types/message/index.js.map +1 -1
  208. package/dist/types/run/entity.d.ts +13 -0
  209. package/dist/types/run/entity.d.ts.map +1 -1
  210. package/dist/types/run/events.d.ts +56 -0
  211. package/dist/types/run/events.d.ts.map +1 -1
  212. package/dist/types/run/events.js.map +1 -1
  213. package/dist/types/run/store.d.ts +41 -0
  214. package/dist/types/run/store.d.ts.map +1 -1
  215. package/dist/types/sandbox/index.d.ts +83 -15
  216. package/dist/types/sandbox/index.d.ts.map +1 -1
  217. package/dist/types/sandbox/index.js.map +1 -1
  218. package/dist/types/tool/index.d.ts +109 -0
  219. package/dist/types/tool/index.d.ts.map +1 -1
  220. package/dist/types/tool/index.js.map +1 -1
  221. package/dist/utils/env.d.ts +19 -0
  222. package/dist/utils/env.d.ts.map +1 -0
  223. package/dist/utils/env.js +25 -0
  224. package/dist/utils/env.js.map +1 -0
  225. package/package.json +1 -1
  226. package/src/bridge/a2a/mapper.ts +8 -0
  227. package/src/bridge/sse/mapper.ts +11 -0
  228. package/src/connector/index.ts +27 -0
  229. package/src/connector/mcp/adapter.ts +123 -10
  230. package/src/connector/mcp/audio-admission.ts +173 -0
  231. package/src/connector/mcp/client.ts +694 -45
  232. package/src/connector/mcp/envelope.ts +235 -0
  233. package/src/connector/mcp/era.ts +400 -0
  234. package/src/connector/mcp/errors.ts +171 -0
  235. package/src/connector/mcp/http-sse.ts +23 -6
  236. package/src/connector/mcp/index.ts +37 -0
  237. package/src/connector/mcp/streamable-http.ts +199 -11
  238. package/src/connector/mcp/x-mcp-header.ts +322 -0
  239. package/src/constants/mcp/index.ts +145 -16
  240. package/src/manager/agent/lifecycle.ts +29 -0
  241. package/src/manager/run/persistence.ts +12 -0
  242. package/src/prompt/coding-agent-doctrine.ts +31 -4
  243. package/src/prompt/index.ts +1 -0
  244. package/src/public-runtime.ts +37 -1
  245. package/src/public-tools.ts +18 -0
  246. package/src/registry/tool/execute.ts +2 -4
  247. package/src/registry/tool/portable.ts +264 -0
  248. package/src/registry/tool/schema.ts +38 -8
  249. package/src/registry/toolset/catalog.ts +8 -9
  250. package/src/runtime/jobs/awaited-jobs.ts +271 -0
  251. package/src/runtime/jobs/registry.ts +50 -0
  252. package/src/runtime/query/executor.ts +49 -1
  253. package/src/runtime/query/file-evidence-context.ts +190 -46
  254. package/src/runtime/query/file-evidence-replay.ts +776 -0
  255. package/src/runtime/query/file-evidence-seed.ts +126 -0
  256. package/src/runtime/query/index.ts +104 -2
  257. package/src/runtime/query/iteration/index.ts +202 -28
  258. package/src/runtime/query/iteration/phases/context.ts +10 -0
  259. package/src/runtime/query/iteration/phases/tool-review.ts +4 -0
  260. package/src/runtime/query/plugin-hooks.ts +20 -0
  261. package/src/runtime/query/repeat-call.ts +28 -18
  262. package/src/runtime/query/steering.ts +11 -0
  263. package/src/runtime/query/tooling.ts +3 -0
  264. package/src/sandbox/provider/local.ts +45 -2
  265. package/src/scheduler/completion-inbox.ts +105 -9
  266. package/src/scheduler/local.ts +8 -0
  267. package/src/store/run/disk.ts +108 -0
  268. package/src/tools/builtins/bash.ts +4 -10
  269. package/src/tools/builtins/edit-apply.ts +456 -0
  270. package/src/tools/builtins/edit.ts +39 -270
  271. package/src/tools/builtins/index.ts +9 -3
  272. package/src/tools/builtins/job.ts +1 -1
  273. package/src/tools/builtins/read-file.ts +56 -77
  274. package/src/tools/builtins/read-render.ts +104 -0
  275. package/src/tools/builtins/wait-for-job-bounds.ts +179 -0
  276. package/src/tools/builtins/wait-for-job.ts +184 -0
  277. package/src/tools/builtins/write-file.ts +5 -0
  278. package/src/tools/coordinator/index.ts +1 -7
  279. package/src/tools/file-read-tracker.ts +85 -7
  280. package/src/types/agent/scheduler.ts +21 -0
  281. package/src/types/agent/task.ts +21 -0
  282. package/src/types/connector/mcp.ts +205 -1
  283. package/src/types/message/index.ts +2 -0
  284. package/src/types/run/entity.ts +14 -0
  285. package/src/types/run/events.ts +56 -0
  286. package/src/types/run/store.ts +42 -0
  287. package/src/types/sandbox/index.ts +84 -15
  288. package/src/types/tool/index.ts +104 -0
  289. package/src/utils/env.ts +23 -0
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
2
  import { zodToJsonSchema } from 'zod-to-json-schema';
3
3
  import { wrapUntrusted } from '../../tools/untrusted-envelope.js';
4
+ import { admitMcpAudioBatch } from './audio-admission.js';
5
+ import { MCPInputRequiredError, isMissingRequiredClientCapabilityError } from './errors.js';
4
6
  import { MCPHttpRedirectError } from './http-redirect.js';
5
7
  import { admitMcpImageBatch } from './image-admission.js';
6
8
  /** The resource type an MCP server returns to pin facts into working memory. */
@@ -311,11 +313,20 @@ const MAX_TUPLE_ARITY = 32;
311
313
  * down every run that offered the toolset. A faithful conversion that cannot
312
314
  * be sent is strictly worse than a lossy one that can.
313
315
  *
314
- * Hence the narrow gate. A tuple is emitted only where the server itself
315
- * pinned the arity and closed the tail, because that renders as bounded
316
- * `prefixItems` — the one positional shape measured as accepted, and the same
317
- * shape a first-party builtin already ships. Everything else keeps the
318
- * permissive array and gains the positional shape in its description.
316
+ * NO positional shape is a construct every wire accepts. That was measured the
317
+ * expensive way: `items: [a, b]` is refused by a wire validating against JSON
318
+ * Schema 2020-12, `prefixItems: [a, b]` is unknown to a draft-07 one — which
319
+ * DROPS it silently rather than complaining — and only three of the ten
320
+ * drivers convert between them. So the rendering boundary now collapses every
321
+ * tuple to a uniform array (`registry/tool/portable.ts`), and this function's
322
+ * job changed with it: the tuple it returns is the PARSER, which still refuses
323
+ * a wrongly-typed or wrongly-ordered call, while the positions reach the model
324
+ * as prose in the description — the one channel every wire carries intact.
325
+ *
326
+ * Hence the narrow gate, which still matters: a tuple is a parser strict
327
+ * enough to reject a shorter array, so it is built only where the server
328
+ * itself pinned the arity and closed the tail. Everything else keeps the
329
+ * permissive array. Either way the positional shape is described.
319
330
  *
320
331
  * The subtlety worth stating, because it inverts the intuition: positional
321
332
  * `items`/`prefixItems` does not constrain LENGTH. Without `minItems` the
@@ -338,7 +349,12 @@ function positionalToZod(positional, schema, depth) {
338
349
  const members = positional.map((member) => jsonSchemaPropertyToZod(member, depth + 1));
339
350
  // Never `.rest()`. It renders a tail schema this wire has not been measured
340
351
  // against, and the gate above has already established there is no tail.
341
- return z.tuple(members);
352
+ //
353
+ // Described as well as parsed: the rendering collapses the tuple to a
354
+ // uniform array, so without this sentence the model would be shown "two of
355
+ // string-or-number" for a schema the parser reads as "a string then a
356
+ // number" — and would learn the difference only from a rejected call.
357
+ return z.tuple(members).describe(describePositional(positional));
342
358
  }
343
359
  /** The positional shape in prose, for the cases a tuple cannot carry. */
344
360
  function describePositional(positional) {
@@ -459,11 +475,59 @@ readOnlyHintTrusted = false) {
459
475
  },
460
476
  };
461
477
  }
478
+ // MRTR: a conforming server never sends this, since namzu declares
479
+ // `clientCapabilities: {}` — but a non-conforming one, or a second
480
+ // `input_required` after the one automatic retry `MCPClient`
481
+ // already made, is named here rather than reaching the caller as
482
+ // an unexplained rejection. No side effect is known to have
483
+ // happened on this path (the spec's model is that a call ending
484
+ // in `input_required` has not truly run yet), so a retry — of
485
+ // this tool, or a different approach entirely — is safe.
486
+ if (error instanceof MCPInputRequiredError) {
487
+ const requested = error.inputRequests.map((request) => request.method);
488
+ return frameServerResult({
489
+ success: false,
490
+ output: '',
491
+ error: `MCP tool "${tool.name}" on server "${serverName}" asked for input this client has no way to supply${requested.length > 0 ? ` (${requested.join(', ')})` : ''}.`,
492
+ data: {
493
+ code: 'mcp_tool_input_required',
494
+ server: serverName,
495
+ tool: tool.name,
496
+ requested,
497
+ retrySafety: 'safe',
498
+ },
499
+ }, serverName, tool.name);
500
+ }
501
+ // Same principle, for the other outcome a no-capability host is
502
+ // genuinely likely to see: the server refused before running the
503
+ // tool because this client never declared a capability it needs.
504
+ if (isMissingRequiredClientCapabilityError(error)) {
505
+ const requiredCapabilities = requiredCapabilitiesFrom(error.data);
506
+ return frameServerResult({
507
+ success: false,
508
+ output: '',
509
+ error: `MCP tool "${tool.name}" on server "${serverName}" requires client capabilities this client did not declare${requiredCapabilities.length > 0 ? ` (${requiredCapabilities.join(', ')})` : ''}.`,
510
+ data: {
511
+ code: 'mcp_tool_missing_client_capability',
512
+ server: serverName,
513
+ tool: tool.name,
514
+ requiredCapabilities,
515
+ retrySafety: 'safe',
516
+ },
517
+ }, serverName, tool.name);
518
+ }
462
519
  throw error;
463
520
  }
464
521
  },
465
522
  };
466
523
  }
524
+ /** Read `-32021`'s `data.requiredCapabilities` defensively — it is a server's own claim, not a validated shape. */
525
+ function requiredCapabilitiesFrom(data) {
526
+ if (typeof data !== 'object' || data === null)
527
+ return [];
528
+ const required = data.requiredCapabilities;
529
+ return Array.isArray(required) ? required.filter((c) => typeof c === 'string') : [];
530
+ }
467
531
  export function toolDefinitionToMCPTool(tool) {
468
532
  return {
469
533
  name: tool.name,
@@ -536,6 +600,8 @@ export function mcpToolResultToToolResult(result) {
536
600
  .join('\n');
537
601
  const imageBlocks = result.content.filter((block) => block.type === 'image');
538
602
  const imagesAdmitted = admitMcpImageBatch(imageBlocks);
603
+ const audioBlocks = result.content.filter((block) => block.type === 'audio');
604
+ const audiosAdmitted = admitMcpAudioBatch(audioBlocks);
539
605
  // Non-text blocks used to be filtered out and never seen again: a
540
606
  // bridged MCP server returning a chart, a screenshot or a PDF had that
541
607
  // content silently discarded, even though `types/connector/mcp.ts`
@@ -543,6 +609,13 @@ export function mcpToolResultToToolResult(result) {
543
609
  // as model-visible content when any are present.
544
610
  const blocks = [];
545
611
  const pins = [];
612
+ // Set only by a block type that has no `ToolResultBlock` shape of its
613
+ // own and is rendered as a plain text pointer instead (`resource_link`
614
+ // today). Without this, a result made up entirely of such pointers
615
+ // would compute `hasRichContent` false — every pushed block LOOKS like
616
+ // ordinary text — and the whole `content` array, the pointer's only
617
+ // carrier, would be dropped by the `hasRichContent` gate below.
618
+ let hasNamedPointer = false;
546
619
  for (const block of result.content) {
547
620
  if (block.type === 'resource' && block.resource?.mimeType === WORKING_STATE_MIME) {
548
621
  // A server pins facts by returning them as a resource of this type:
@@ -569,14 +642,32 @@ export function mcpToolResultToToolResult(result) {
569
642
  : {}),
570
643
  });
571
644
  }
645
+ else if (block.type === 'resource_link') {
646
+ // A resource_link never carries content, admitted or not — it is
647
+ // a pointer the model cannot dereference, so it is named rather
648
+ // than pretended to be present, exactly like a URI-only embedded
649
+ // resource just below.
650
+ blocks.push({
651
+ type: 'text',
652
+ text: `[MCP resource link: ${block.name} (${block.uri})]`,
653
+ });
654
+ hasNamedPointer = true;
655
+ }
572
656
  else if (block.type === 'resource' && block.resource?.text) {
573
657
  // A resource with inline text is readable content; one that is
574
- // only a URI is a pointer the model cannot dereference, so it is
575
- // named rather than pretended to be present.
658
+ // only a URI, or only a `blob`, is a pointer the model cannot
659
+ // dereference, so it is named rather than pretended to be
660
+ // present — here, that means it is left out of `blocks`
661
+ // entirely rather than rendered as fabricated text.
576
662
  blocks.push({ type: 'text', text: block.resource.text });
577
663
  }
664
+ // `audio` has no `ToolResultBlock` shape of its own today, so it is
665
+ // summarized into `output` below rather than pushed here — the
666
+ // same reasoning that keeps a withheld image out of plain text,
667
+ // applied to a media type this adapter cannot pass through as
668
+ // bytes at all yet.
578
669
  }
579
- const hasRichContent = blocks.some((b) => b.type !== 'text');
670
+ const hasRichContent = hasNamedPointer || blocks.some((b) => b.type !== 'text');
580
671
  // A server may answer with a structured payload and skip the
581
672
  // compatibility text block. Serializing it is the difference between
582
673
  // the model reading the answer and reading nothing at all — the call
@@ -588,7 +679,18 @@ export function mcpToolResultToToolResult(result) {
588
679
  const invalidImageNotice = imageBlocks.length > 0 && !imagesAdmitted
589
680
  ? '[MCP image batch withheld from model input: one or more blocks are not complete supported raster containers matching their declared media types.]'
590
681
  : '';
591
- const output = [visibleText, invalidImageNotice].filter((part) => part.length > 0).join('\n');
682
+ // Audio has no `ToolResultBlock` carrier, so an admitted clip is named
683
+ // in `output` by its media type instead of being dumped into `content`
684
+ // as base64 text — the same mistake this adapter already fixed once for
685
+ // screenshots. A withheld batch gets the same notice shape as images.
686
+ const audioNotice = audioBlocks.length === 0
687
+ ? ''
688
+ : audiosAdmitted
689
+ ? `[MCP audio: ${audioBlocks.map((block) => block.mimeType).join(', ')}]`
690
+ : '[MCP audio batch withheld from model input: one or more blocks are not complete supported audio containers matching their declared media types.]';
691
+ const output = [visibleText, invalidImageNotice, audioNotice]
692
+ .filter((part) => part.length > 0)
693
+ .join('\n');
592
694
  return {
593
695
  ...(pins.length > 0 ? { workingState: pins } : {}),
594
696
  success: !result.isError,
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/connector/mcp/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/connector/mcp/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { MCPContentBlock } from '../../types/connector/index.js';
2
+ type MCPAudioBlock = Extract<MCPContentBlock, {
3
+ type: 'audio';
4
+ }>;
5
+ /**
6
+ * Admit an MCP audio batch atomically before any member becomes model input.
7
+ *
8
+ * Mirrors `admitMcpImageBatch`: a remote server controls the declared MIME
9
+ * and bytes, canonical base64 is only an encoding property, and the decoded
10
+ * value must also be a complete, bounded container whose framing agrees
11
+ * with the declared media type. One bad member withholds the complete batch
12
+ * so a model is never shown a partial result while the host retains every
13
+ * raw block for inspection.
14
+ */
15
+ export declare function admitMcpAudioBatch(audios: readonly MCPAudioBlock[]): boolean;
16
+ export {};
17
+ //# sourceMappingURL=audio-admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-admission.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/audio-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAIrE,KAAK,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AA4JhE;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAE5E"}
@@ -0,0 +1,171 @@
1
+ const MAX_ENCODED_BYTES = 24 * 1024 * 1024;
2
+ const AUDIO_MEDIA_TYPES = new Set(['audio/wav', 'audio/mpeg', 'audio/ogg']);
3
+ function isAudioMediaType(value) {
4
+ return AUDIO_MEDIA_TYPES.has(value);
5
+ }
6
+ function decodeCanonicalBase64(value) {
7
+ if (value.length === 0 || value.length > MAX_ENCODED_BYTES)
8
+ return null;
9
+ if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)) {
10
+ return null;
11
+ }
12
+ const decoded = Buffer.from(value, 'base64');
13
+ return decoded.toString('base64') === value ? decoded : null;
14
+ }
15
+ /**
16
+ * A canonical RIFF/WAVE container: the size field agrees with the buffer
17
+ * length, and walking its chunks (word-aligned, as RIFF requires) lands
18
+ * exactly on the end of the buffer having seen both a `fmt ` and a `data`
19
+ * chunk. Mirrors the WebP walker in `image-admission.ts`, which is the same
20
+ * RIFF container format wearing a different fourCC.
21
+ */
22
+ function isWav(bytes) {
23
+ const buffer = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
24
+ if (bytes.length < 12 ||
25
+ buffer.toString('ascii', 0, 4) !== 'RIFF' ||
26
+ buffer.readUInt32LE(4) + 8 !== bytes.length ||
27
+ buffer.toString('ascii', 8, 12) !== 'WAVE') {
28
+ return false;
29
+ }
30
+ let offset = 12;
31
+ let sawFmt = false;
32
+ let sawData = false;
33
+ while (offset + 8 <= bytes.length) {
34
+ const chunkId = buffer.toString('ascii', offset, offset + 4);
35
+ const chunkSize = buffer.readUInt32LE(offset + 4);
36
+ const dataStart = offset + 8;
37
+ const dataEnd = dataStart + chunkSize;
38
+ if (dataEnd < dataStart || dataEnd > bytes.length)
39
+ return false;
40
+ if (chunkId === 'fmt ') {
41
+ if (chunkSize < 16)
42
+ return false;
43
+ sawFmt = true;
44
+ }
45
+ if (chunkId === 'data')
46
+ sawData = true;
47
+ // RIFF chunks are padded to an even byte count; the pad byte is not
48
+ // counted in chunkSize but is present in the stream.
49
+ offset = dataEnd + (chunkSize % 2);
50
+ }
51
+ return sawFmt && sawData && offset === bytes.length;
52
+ }
53
+ /**
54
+ * A sequence of Ogg pages, each framed by its `OggS` capture pattern and a
55
+ * segment table whose declared sizes account for every byte of payload.
56
+ * Page checksums are not verified — the framing itself, consumed exactly to
57
+ * the end of the buffer, is what this admits or refuses.
58
+ */
59
+ function isOgg(bytes) {
60
+ const buffer = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
61
+ let offset = 0;
62
+ let sawPage = false;
63
+ while (offset + 27 <= bytes.length) {
64
+ if (buffer.toString('ascii', offset, offset + 4) !== 'OggS')
65
+ return false;
66
+ if (bytes[offset + 4] !== 0)
67
+ return false; // stream_structure_version
68
+ const segmentCount = bytes[offset + 26] ?? 0;
69
+ const segmentTableStart = offset + 27;
70
+ if (segmentTableStart + segmentCount > bytes.length)
71
+ return false;
72
+ let payloadLength = 0;
73
+ for (let i = 0; i < segmentCount; i += 1) {
74
+ payloadLength += bytes[segmentTableStart + i] ?? 0;
75
+ }
76
+ const payloadEnd = segmentTableStart + segmentCount + payloadLength;
77
+ if (payloadEnd > bytes.length)
78
+ return false;
79
+ sawPage = true;
80
+ offset = payloadEnd;
81
+ }
82
+ return sawPage && offset === bytes.length;
83
+ }
84
+ // MPEG-1 Layer III bitrates in kbps, indexed by the header's 4-bit field.
85
+ // Index 0 (free bitrate) and 15 (reserved) are both treated as unsupported.
86
+ const MPEG1_L3_BITRATES = [
87
+ 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0,
88
+ ];
89
+ const MPEG1_SAMPLE_RATES = [44100, 48000, 32000, 0];
90
+ /** Frame length in bytes for an MPEG-1 Layer III frame, or null if the header is malformed/unsupported. */
91
+ function mp3FrameLength(headerByte1, headerByte2) {
92
+ const versionBits = (headerByte1 >> 3) & 0x3;
93
+ const layerBits = (headerByte1 >> 1) & 0x3;
94
+ if (versionBits !== 0x3 || layerBits !== 0x1)
95
+ return null; // MPEG-1, Layer III only
96
+ const bitrateIndex = (headerByte2 >> 4) & 0xf;
97
+ const sampleRateIndex = (headerByte2 >> 2) & 0x3;
98
+ const padding = (headerByte2 >> 1) & 0x1;
99
+ if (bitrateIndex === 0 || bitrateIndex === 0xf || sampleRateIndex === 0x3)
100
+ return null;
101
+ const bitrate = MPEG1_L3_BITRATES[bitrateIndex];
102
+ const sampleRate = MPEG1_SAMPLE_RATES[sampleRateIndex];
103
+ if (!bitrate || !sampleRate)
104
+ return null;
105
+ return Math.floor((144 * bitrate * 1000) / sampleRate) + padding;
106
+ }
107
+ function id3v2TagLength(bytes, buffer) {
108
+ if (bytes.length < 10 || buffer.toString('ascii', 0, 3) !== 'ID3')
109
+ return 0;
110
+ // Synchsafe integer: 7 significant bits per byte, big-endian.
111
+ const size = ((bytes[6] ?? 0) & 0x7f) * 0x200000 +
112
+ ((bytes[7] ?? 0) & 0x7f) * 0x4000 +
113
+ ((bytes[8] ?? 0) & 0x7f) * 0x80 +
114
+ ((bytes[9] ?? 0) & 0x7f);
115
+ return 10 + size;
116
+ }
117
+ /**
118
+ * MPEG-1 Layer III frames, one after another with no trailing bytes: an
119
+ * optional ID3v2 tag is skipped, then every remaining byte must belong to a
120
+ * syntactically valid frame header whose declared length reaches exactly
121
+ * the next frame (or the end of the buffer). Other MPEG versions and layers
122
+ * are refused rather than approximated.
123
+ */
124
+ function isMp3(bytes) {
125
+ const buffer = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
126
+ const offsetAfterTag = id3v2TagLength(bytes, buffer);
127
+ if (offsetAfterTag + 4 > bytes.length)
128
+ return false;
129
+ let offset = offsetAfterTag;
130
+ let sawFrame = false;
131
+ while (offset + 4 <= bytes.length) {
132
+ if (bytes[offset] !== 0xff || ((bytes[offset + 1] ?? 0) & 0xe0) !== 0xe0)
133
+ return false;
134
+ const frameLength = mp3FrameLength(bytes[offset + 1] ?? 0, bytes[offset + 2] ?? 0);
135
+ if (frameLength === null || frameLength < 4 || offset + frameLength > bytes.length) {
136
+ return false;
137
+ }
138
+ sawFrame = true;
139
+ offset += frameLength;
140
+ }
141
+ return sawFrame && offset === bytes.length;
142
+ }
143
+ function audioIsAdmitted(block) {
144
+ if (!isAudioMediaType(block.mimeType))
145
+ return false;
146
+ const bytes = decodeCanonicalBase64(block.data);
147
+ if (!bytes)
148
+ return false;
149
+ switch (block.mimeType) {
150
+ case 'audio/wav':
151
+ return isWav(bytes);
152
+ case 'audio/ogg':
153
+ return isOgg(bytes);
154
+ case 'audio/mpeg':
155
+ return isMp3(bytes);
156
+ }
157
+ }
158
+ /**
159
+ * Admit an MCP audio batch atomically before any member becomes model input.
160
+ *
161
+ * Mirrors `admitMcpImageBatch`: a remote server controls the declared MIME
162
+ * and bytes, canonical base64 is only an encoding property, and the decoded
163
+ * value must also be a complete, bounded container whose framing agrees
164
+ * with the declared media type. One bad member withholds the complete batch
165
+ * so a model is never shown a partial result while the host retains every
166
+ * raw block for inspection.
167
+ */
168
+ export function admitMcpAudioBatch(audios) {
169
+ return audios.length === 0 || audios.every(audioIsAdmitted);
170
+ }
171
+ //# sourceMappingURL=audio-admission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-admission.js","sourceRoot":"","sources":["../../../src/connector/mcp/audio-admission.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAK1C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;AAE3F,SAAS,gBAAgB,CAAC,KAAa;IACtC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAuB,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB;QAAE,OAAO,IAAI,CAAA;IACvE,IAAI,CAAC,kEAAkE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,KAAK,CAAC,KAAiB;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC5E,IACC,KAAK,CAAC,MAAM,GAAG,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM;QAC3C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EACzC,CAAC;QACF,OAAO,KAAK,CAAA;IACb,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,OAAO,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;QACrC,IAAI,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAC/D,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,SAAS,GAAG,EAAE;gBAAE,OAAO,KAAK,CAAA;YAChC,MAAM,GAAG,IAAI,CAAA;QACd,CAAC;QACD,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO,GAAG,IAAI,CAAA;QACtC,oEAAoE;QACpE,qDAAqD;QACrD,MAAM,GAAG,OAAO,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,MAAM,IAAI,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,CAAA;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,KAAiB;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC5E,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,OAAO,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM;YAAE,OAAO,KAAK,CAAA;QACzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA,CAAC,2BAA2B;QACrE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,iBAAiB,GAAG,MAAM,GAAG,EAAE,CAAA;QACrC,IAAI,iBAAiB,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QACjE,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,aAAa,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACnD,CAAC;QACD,MAAM,UAAU,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAA;QACnE,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAC3C,OAAO,GAAG,IAAI,CAAA;QACd,MAAM,GAAG,UAAU,CAAA;IACpB,CAAC;IACD,OAAO,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,CAAA;AAC1C,CAAC;AAED,0EAA0E;AAC1E,4EAA4E;AAC5E,MAAM,iBAAiB,GAAsB;IAC5C,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CACnE,CAAA;AACD,MAAM,kBAAkB,GAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;AAEtE,2GAA2G;AAC3G,SAAS,cAAc,CAAC,WAAmB,EAAE,WAAmB;IAC/D,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;IAC5C,MAAM,SAAS,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;IAC1C,IAAI,WAAW,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA,CAAC,yBAAyB;IACnF,MAAM,YAAY,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;IAC7C,MAAM,eAAe,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;IAChD,MAAM,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,GAAG,IAAI,eAAe,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IACtF,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAA;IACtD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,OAAO,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB,EAAE,MAAc;IACxD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,CAAC,CAAA;IAC3E,8DAA8D;IAC9D,MAAM,IAAI,GACT,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ;QACnC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM;QACjC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;QAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACzB,OAAO,EAAE,GAAG,IAAI,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,KAAK,CAAC,KAAiB;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC5E,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACpD,IAAI,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,MAAM,GAAG,cAAc,CAAA;IAC3B,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,OAAO,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QACtF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAClF,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC,IAAI,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACpF,OAAO,KAAK,CAAA;QACb,CAAC;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,MAAM,IAAI,WAAW,CAAA;IACtB,CAAC;IACD,OAAO,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,CAAA;AAC3C,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB;IAC5C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IACnD,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,WAAW;YACf,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,KAAK,WAAW;YACf,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,KAAK,YAAY;YAChB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAgC;IAClE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC5D,CAAC"}