effect 4.1.0 → 4.1.1

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 (354) hide show
  1. package/README.md +30 -0
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/dist/BigDecimal.d.ts +139 -7
  4. package/dist/BigDecimal.d.ts.map +1 -1
  5. package/dist/BigDecimal.js +83 -14
  6. package/dist/BigDecimal.js.map +1 -1
  7. package/dist/Equal.d.ts +2 -2
  8. package/dist/Equal.d.ts.map +1 -1
  9. package/dist/Equal.js +3 -3
  10. package/dist/Equal.js.map +1 -1
  11. package/dist/Hash.d.ts +3 -2
  12. package/dist/Hash.d.ts.map +1 -1
  13. package/dist/Hash.js +5 -4
  14. package/dist/Hash.js.map +1 -1
  15. package/dist/Iterable.d.ts.map +1 -1
  16. package/dist/Iterable.js +11 -8
  17. package/dist/Iterable.js.map +1 -1
  18. package/dist/Path.d.ts.map +1 -1
  19. package/dist/Path.js +5 -1
  20. package/dist/Path.js.map +1 -1
  21. package/dist/Pool.d.ts.map +1 -1
  22. package/dist/Pool.js +2 -1
  23. package/dist/Pool.js.map +1 -1
  24. package/dist/Schema.d.ts +2 -1
  25. package/dist/Schema.d.ts.map +1 -1
  26. package/dist/Schema.js +2 -1
  27. package/dist/Schema.js.map +1 -1
  28. package/dist/SchemaRepresentation.d.ts +4 -2
  29. package/dist/SchemaRepresentation.d.ts.map +1 -1
  30. package/dist/SchemaRepresentation.js +4 -2
  31. package/dist/SchemaRepresentation.js.map +1 -1
  32. package/dist/SchemaTransformation.d.ts +2 -2
  33. package/dist/SchemaTransformation.js +2 -2
  34. package/dist/ai/McpClient.d.ts +171 -19
  35. package/dist/ai/McpClient.d.ts.map +1 -1
  36. package/dist/ai/McpClient.js +277 -66
  37. package/dist/ai/McpClient.js.map +1 -1
  38. package/dist/ai/McpSchema.d.ts +108 -0
  39. package/dist/ai/McpSchema.d.ts.map +1 -1
  40. package/dist/ai/McpSchema.js +99 -0
  41. package/dist/ai/McpSchema.js.map +1 -1
  42. package/dist/ai/McpServer.d.ts +120 -6
  43. package/dist/ai/McpServer.d.ts.map +1 -1
  44. package/dist/ai/McpServer.js +215 -34
  45. package/dist/ai/McpServer.js.map +1 -1
  46. package/dist/ai/Prompt.d.ts.map +1 -1
  47. package/dist/ai/Prompt.js +20 -11
  48. package/dist/ai/Prompt.js.map +1 -1
  49. package/dist/ai/Tool.d.ts.map +1 -1
  50. package/dist/ai/Tool.js +5 -7
  51. package/dist/ai/Tool.js.map +1 -1
  52. package/dist/ai/internal/mcpCore.js +72 -3
  53. package/dist/ai/internal/mcpCore.js.map +1 -1
  54. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +3 -1
  55. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  56. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +3 -1
  57. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  58. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +3 -1
  59. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  60. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +3 -1
  61. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  62. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +42 -7
  63. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  64. package/dist/ai/internal/mcpProtocol.js +12 -0
  65. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  66. package/dist/ai/internal/mcpRuntime.js +3 -3
  67. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  68. package/dist/ai/internal/mcpSkills.d.ts +2 -0
  69. package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
  70. package/dist/ai/internal/mcpSkills.js +428 -0
  71. package/dist/ai/internal/mcpSkills.js.map +1 -0
  72. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  73. package/dist/cluster/ClusterWorkflowEngine.js +15 -5
  74. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  75. package/dist/cluster/Reply.d.ts +1 -1
  76. package/dist/cluster/Reply.d.ts.map +1 -1
  77. package/dist/cluster/Reply.js.map +1 -1
  78. package/dist/cluster/Sharding.d.ts.map +1 -1
  79. package/dist/cluster/Sharding.js +4 -1
  80. package/dist/cluster/Sharding.js.map +1 -1
  81. package/dist/cluster/internal/entityManager.js +15 -7
  82. package/dist/cluster/internal/entityManager.js.map +1 -1
  83. package/dist/crypto/Aead.d.ts +2 -1
  84. package/dist/crypto/Aead.d.ts.map +1 -1
  85. package/dist/crypto/Aead.js +2 -2
  86. package/dist/crypto/Aead.js.map +1 -1
  87. package/dist/crypto/Cipher.d.ts +2 -1
  88. package/dist/crypto/Cipher.d.ts.map +1 -1
  89. package/dist/crypto/Cipher.js +2 -2
  90. package/dist/crypto/Cipher.js.map +1 -1
  91. package/dist/crypto/KeyAgreement.d.ts +3 -2
  92. package/dist/crypto/KeyAgreement.d.ts.map +1 -1
  93. package/dist/crypto/KeyAgreement.js +2 -2
  94. package/dist/crypto/KeyAgreement.js.map +1 -1
  95. package/dist/crypto/KeyFormat.d.ts +33 -1
  96. package/dist/crypto/KeyFormat.d.ts.map +1 -1
  97. package/dist/crypto/KeyFormat.js.map +1 -1
  98. package/dist/crypto/KeyWrap.d.ts +4 -3
  99. package/dist/crypto/KeyWrap.d.ts.map +1 -1
  100. package/dist/crypto/KeyWrap.js +2 -2
  101. package/dist/crypto/KeyWrap.js.map +1 -1
  102. package/dist/crypto/Mac.d.ts +2 -1
  103. package/dist/crypto/Mac.d.ts.map +1 -1
  104. package/dist/crypto/Mac.js +2 -2
  105. package/dist/crypto/Mac.js.map +1 -1
  106. package/dist/crypto/Signature.d.ts +3 -2
  107. package/dist/crypto/Signature.d.ts.map +1 -1
  108. package/dist/crypto/Signature.js +2 -2
  109. package/dist/crypto/Signature.js.map +1 -1
  110. package/dist/crypto/WebCrypto.d.ts +19 -0
  111. package/dist/crypto/WebCrypto.d.ts.map +1 -1
  112. package/dist/crypto/WebCrypto.js.map +1 -1
  113. package/dist/crypto/internal/asymmetric.js.map +1 -1
  114. package/dist/crypto/internal/key.js +3 -2
  115. package/dist/crypto/internal/key.js.map +1 -1
  116. package/dist/encoding/Base64Url.d.ts.map +1 -1
  117. package/dist/encoding/Base64Url.js +26 -3
  118. package/dist/encoding/Base64Url.js.map +1 -1
  119. package/dist/encoding/Ndjson.d.ts +5 -4
  120. package/dist/encoding/Ndjson.d.ts.map +1 -1
  121. package/dist/encoding/Ndjson.js +6 -5
  122. package/dist/encoding/Ndjson.js.map +1 -1
  123. package/dist/encoding/Sse.d.ts +3 -1
  124. package/dist/encoding/Sse.d.ts.map +1 -1
  125. package/dist/encoding/Sse.js +5 -3
  126. package/dist/encoding/Sse.js.map +1 -1
  127. package/dist/eventlog/EventLog.d.ts +7 -0
  128. package/dist/eventlog/EventLog.d.ts.map +1 -1
  129. package/dist/eventlog/EventLog.js +7 -0
  130. package/dist/eventlog/EventLog.js.map +1 -1
  131. package/dist/eventlog/EventLogServer.d.ts +7 -1
  132. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  133. package/dist/eventlog/EventLogServer.js +27 -12
  134. package/dist/eventlog/EventLogServer.js.map +1 -1
  135. package/dist/eventlog/EventLogServerEncrypted.d.ts +10 -0
  136. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  137. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  138. package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
  139. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  140. package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
  141. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  142. package/dist/eventlog/EventLogSessionAuth.d.ts +21 -0
  143. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  144. package/dist/eventlog/EventLogSessionAuth.js +22 -0
  145. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  146. package/dist/graphql/GraphQLClient.d.ts +3 -1
  147. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  148. package/dist/graphql/GraphQLClient.js.map +1 -1
  149. package/dist/graphql/GraphQLClientError.d.ts +14 -9
  150. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  151. package/dist/graphql/GraphQLClientError.js +14 -21
  152. package/dist/graphql/GraphQLClientError.js.map +1 -1
  153. package/dist/graphql/GraphQLProtocol.d.ts +12 -3
  154. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  155. package/dist/graphql/GraphQLProtocol.js +4 -1
  156. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  157. package/dist/http/HttpClient.d.ts +189 -7
  158. package/dist/http/HttpClient.d.ts.map +1 -1
  159. package/dist/http/HttpClient.js +75 -2
  160. package/dist/http/HttpClient.js.map +1 -1
  161. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  162. package/dist/http/HttpServerRequest.js +38 -22
  163. package/dist/http/HttpServerRequest.js.map +1 -1
  164. package/dist/http/internal/mimeTypes.d.ts +4 -1
  165. package/dist/http/internal/mimeTypes.d.ts.map +1 -1
  166. package/dist/http/internal/mimeTypes.js +4 -1
  167. package/dist/http/internal/mimeTypes.js.map +1 -1
  168. package/dist/http-api/HttpApiSchema.js +1 -1
  169. package/dist/http-api/HttpApiSchema.js.map +1 -1
  170. package/dist/internal/dateTime.js +49 -24
  171. package/dist/internal/dateTime.js.map +1 -1
  172. package/dist/internal/effect.js +10 -0
  173. package/dist/internal/effect.js.map +1 -1
  174. package/dist/internal/glob.js +234 -56
  175. package/dist/internal/glob.js.map +1 -1
  176. package/dist/internal/graphql.js +21 -7
  177. package/dist/internal/graphql.js.map +1 -1
  178. package/dist/internal/graphqlHeaders.d.ts +7 -0
  179. package/dist/internal/graphqlHeaders.d.ts.map +1 -1
  180. package/dist/internal/graphqlHeaders.js +11 -0
  181. package/dist/internal/graphqlHeaders.js.map +1 -1
  182. package/dist/internal/request.js +29 -42
  183. package/dist/internal/request.js.map +1 -1
  184. package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
  185. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  186. package/dist/internal/version.js +1 -1
  187. package/dist/jose/JoseError.d.ts +285 -0
  188. package/dist/jose/JoseError.d.ts.map +1 -0
  189. package/dist/jose/JoseError.js +269 -0
  190. package/dist/jose/JoseError.js.map +1 -0
  191. package/dist/jose/Jwe.d.ts +128 -0
  192. package/dist/jose/Jwe.d.ts.map +1 -0
  193. package/dist/jose/Jwe.js +134 -0
  194. package/dist/jose/Jwe.js.map +1 -0
  195. package/dist/jose/Jwk.d.ts +597 -0
  196. package/dist/jose/Jwk.d.ts.map +1 -0
  197. package/dist/jose/Jwk.js +503 -0
  198. package/dist/jose/Jwk.js.map +1 -0
  199. package/dist/jose/Jwks.d.ts +236 -0
  200. package/dist/jose/Jwks.d.ts.map +1 -0
  201. package/dist/jose/Jwks.js +306 -0
  202. package/dist/jose/Jwks.js.map +1 -0
  203. package/dist/jose/Jws.d.ts +177 -0
  204. package/dist/jose/Jws.d.ts.map +1 -0
  205. package/dist/jose/Jws.js +183 -0
  206. package/dist/jose/Jws.js.map +1 -0
  207. package/dist/jose/Jwt.d.ts +270 -0
  208. package/dist/jose/Jwt.d.ts.map +1 -0
  209. package/dist/jose/Jwt.js +293 -0
  210. package/dist/jose/Jwt.js.map +1 -0
  211. package/dist/jose/index.d.ts +51 -0
  212. package/dist/jose/index.d.ts.map +1 -0
  213. package/dist/jose/index.js +52 -0
  214. package/dist/jose/index.js.map +1 -0
  215. package/dist/jose/internal/compact.d.ts +2 -0
  216. package/dist/jose/internal/compact.d.ts.map +1 -0
  217. package/dist/jose/internal/compact.js +179 -0
  218. package/dist/jose/internal/compact.js.map +1 -0
  219. package/dist/net/Host.d.ts.map +1 -1
  220. package/dist/net/Host.js +5 -10
  221. package/dist/net/Host.js.map +1 -1
  222. package/dist/observability/OtlpSerialization.d.ts +1 -1
  223. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  224. package/dist/observability/OtlpSerialization.js +10 -4
  225. package/dist/observability/OtlpSerialization.js.map +1 -1
  226. package/dist/observability/internal/otlpProtobuf.js +3 -3
  227. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  228. package/dist/observability/internal/protobuf.js +6 -0
  229. package/dist/observability/internal/protobuf.js.map +1 -1
  230. package/dist/persistence/CircuitBreaker.d.ts +98 -38
  231. package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
  232. package/dist/persistence/CircuitBreaker.js +67 -29
  233. package/dist/persistence/CircuitBreaker.js.map +1 -1
  234. package/dist/persistence/RateLimiter.d.ts +8 -0
  235. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  236. package/dist/persistence/RateLimiter.js +63 -12
  237. package/dist/persistence/RateLimiter.js.map +1 -1
  238. package/dist/persistence/index.d.ts +1 -1
  239. package/dist/persistence/index.js +1 -1
  240. package/dist/reactivity/AtomRegistry.js +17 -7
  241. package/dist/reactivity/AtomRegistry.js.map +1 -1
  242. package/dist/rpc/Rpc.d.ts +1 -1
  243. package/dist/rpc/Rpc.d.ts.map +1 -1
  244. package/dist/rpc/Rpc.js.map +1 -1
  245. package/dist/rpc/RpcClient.d.ts +14 -2
  246. package/dist/rpc/RpcClient.d.ts.map +1 -1
  247. package/dist/rpc/RpcClient.js +38 -21
  248. package/dist/rpc/RpcClient.js.map +1 -1
  249. package/dist/rpc/RpcMessage.d.ts +3 -2
  250. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  251. package/dist/rpc/RpcMessage.js.map +1 -1
  252. package/dist/sql/Migrator.d.ts +9 -1
  253. package/dist/sql/Migrator.d.ts.map +1 -1
  254. package/dist/sql/Migrator.js +18 -6
  255. package/dist/sql/Migrator.js.map +1 -1
  256. package/dist/sql/SqlClient.d.ts +38 -3
  257. package/dist/sql/SqlClient.d.ts.map +1 -1
  258. package/dist/sql/SqlClient.js +4 -3
  259. package/dist/sql/SqlClient.js.map +1 -1
  260. package/dist/sql/Statement.d.ts +41 -3
  261. package/dist/sql/Statement.d.ts.map +1 -1
  262. package/dist/sql/Statement.js +24 -20
  263. package/dist/sql/Statement.js.map +1 -1
  264. package/dist/workflow/Workflow.d.ts +4 -0
  265. package/dist/workflow/Workflow.d.ts.map +1 -1
  266. package/dist/workflow/Workflow.js.map +1 -1
  267. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  268. package/dist/workflow/WorkflowEngine.js +5 -0
  269. package/dist/workflow/WorkflowEngine.js.map +1 -1
  270. package/package.json +5 -1
  271. package/src/BigDecimal.ts +170 -16
  272. package/src/Equal.ts +3 -3
  273. package/src/Hash.ts +5 -4
  274. package/src/Iterable.ts +8 -5
  275. package/src/Path.ts +6 -1
  276. package/src/Pool.ts +2 -1
  277. package/src/Schema.ts +3 -2
  278. package/src/SchemaRepresentation.ts +4 -2
  279. package/src/SchemaTransformation.ts +2 -2
  280. package/src/ai/McpClient.ts +488 -91
  281. package/src/ai/McpSchema.ts +119 -0
  282. package/src/ai/McpServer.ts +261 -38
  283. package/src/ai/Prompt.ts +16 -11
  284. package/src/ai/Tool.ts +5 -10
  285. package/src/ai/internal/mcpCore.ts +165 -12
  286. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +3 -1
  287. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +3 -1
  288. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -1
  289. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -1
  290. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +41 -7
  291. package/src/ai/internal/mcpProtocol.ts +15 -0
  292. package/src/ai/internal/mcpRuntime.ts +6 -3
  293. package/src/ai/internal/mcpSkills.ts +480 -0
  294. package/src/cluster/ClusterWorkflowEngine.ts +22 -8
  295. package/src/cluster/Reply.ts +1 -1
  296. package/src/cluster/Sharding.ts +4 -1
  297. package/src/cluster/internal/entityManager.ts +24 -10
  298. package/src/crypto/Aead.ts +3 -3
  299. package/src/crypto/Cipher.ts +3 -3
  300. package/src/crypto/KeyAgreement.ts +4 -4
  301. package/src/crypto/KeyFormat.ts +30 -1
  302. package/src/crypto/KeyWrap.ts +6 -6
  303. package/src/crypto/Mac.ts +3 -3
  304. package/src/crypto/Signature.ts +4 -4
  305. package/src/crypto/WebCrypto.ts +20 -0
  306. package/src/crypto/internal/asymmetric.ts +2 -1
  307. package/src/crypto/internal/key.ts +12 -5
  308. package/src/encoding/Base64Url.ts +27 -3
  309. package/src/encoding/Ndjson.ts +6 -5
  310. package/src/encoding/Sse.ts +5 -3
  311. package/src/eventlog/EventLog.ts +7 -0
  312. package/src/eventlog/EventLogServer.ts +31 -12
  313. package/src/eventlog/EventLogServerEncrypted.ts +5 -0
  314. package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
  315. package/src/eventlog/EventLogSessionAuth.ts +26 -0
  316. package/src/graphql/GraphQLClient.ts +3 -1
  317. package/src/graphql/GraphQLClientError.ts +15 -22
  318. package/src/graphql/GraphQLProtocol.ts +12 -3
  319. package/src/http/HttpClient.ts +210 -11
  320. package/src/http/HttpServerRequest.ts +61 -23
  321. package/src/http/internal/mimeTypes.ts +4 -1
  322. package/src/http-api/HttpApiSchema.ts +1 -1
  323. package/src/internal/dateTime.ts +54 -24
  324. package/src/internal/effect.ts +6 -0
  325. package/src/internal/glob.ts +279 -63
  326. package/src/internal/graphql.ts +27 -9
  327. package/src/internal/graphqlHeaders.ts +13 -0
  328. package/src/internal/request.ts +51 -58
  329. package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
  330. package/src/internal/version.ts +1 -1
  331. package/src/jose/JoseError.ts +329 -0
  332. package/src/jose/Jwe.ts +196 -0
  333. package/src/jose/Jwk.ts +777 -0
  334. package/src/jose/Jwks.ts +418 -0
  335. package/src/jose/Jws.ts +312 -0
  336. package/src/jose/Jwt.ts +493 -0
  337. package/src/jose/index.ts +58 -0
  338. package/src/jose/internal/compact.ts +195 -0
  339. package/src/net/Host.ts +5 -10
  340. package/src/observability/OtlpSerialization.ts +13 -5
  341. package/src/observability/internal/otlpProtobuf.ts +6 -6
  342. package/src/observability/internal/protobuf.ts +10 -0
  343. package/src/persistence/CircuitBreaker.ts +113 -48
  344. package/src/persistence/RateLimiter.ts +84 -15
  345. package/src/persistence/index.ts +1 -1
  346. package/src/reactivity/AtomRegistry.ts +19 -8
  347. package/src/rpc/Rpc.ts +3 -1
  348. package/src/rpc/RpcClient.ts +44 -24
  349. package/src/rpc/RpcMessage.ts +3 -2
  350. package/src/sql/Migrator.ts +35 -18
  351. package/src/sql/SqlClient.ts +43 -8
  352. package/src/sql/Statement.ts +52 -22
  353. package/src/workflow/Workflow.ts +4 -0
  354. package/src/workflow/WorkflowEngine.ts +5 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Connects to MCP servers with scoped Effect clients.
3
3
  *
4
- * Clients discover tools, prompts and resources using the protocol revision selected by
5
- * their transport. `callTool` returns tool-reported errors as results; supplying a schema
4
+ * Clients discover tools, prompts, resources and Agent Skills using the protocol revision
5
+ * selected by their transport. `callTool` returns tool-reported errors as results; supplying a schema
6
6
  * turns them into a `ToolError` reason that retains the original result. Transport and
7
7
  * protocol failures fail the Effect. Interactive server requests, subscriptions, OAuth
8
8
  * and retries are not included.
@@ -12,11 +12,13 @@
12
12
  */
13
13
  import * as ByteSize from "../ByteSize.js";
14
14
  import * as Context from "../Context.js";
15
+ import * as Digest from "../crypto/Digest.js";
15
16
  import * as Deferred from "../Deferred.js";
16
17
  import * as Duration from "../Duration.js";
17
18
  import * as Effect from "../Effect.js";
18
19
  import * as Base64 from "../encoding/Base64.js";
19
20
  import * as Sse from "../encoding/Sse.js";
21
+ import * as Equal from "../Equal.js";
20
22
  import * as HttpClient from "../http/HttpClient.js";
21
23
  import * as HttpClientRequest from "../http/HttpClientRequest.js";
22
24
  import * as Layer from "../Layer.js";
@@ -27,8 +29,10 @@ import * as Queue from "../Queue.js";
27
29
  import * as Schema from "../Schema.js";
28
30
  import * as Stream from "../Stream.js";
29
31
  import { BASE64_SENTINEL_PREFIX, BASE64_SENTINEL_SUFFIX } from "./internal/mcpProtocol.js";
32
+ import * as McpSkills from "./internal/mcpSkills.js";
30
33
  import { ClosedError, ConfigurationError, HttpError, isMcpClientError, LimitError, McpClientError, ProtocolError, TimeoutError, ToolError, TransportError, UnsupportedError, ValidationError } from "./McpClientError.js";
31
34
  import * as McpSchema from "./McpSchema.js";
35
+ import * as Prompt from "./Prompt.js";
32
36
  import * as Tool from "./Tool.js";
33
37
  import * as Toolkit from "./Toolkit.js";
34
38
  /**
@@ -57,9 +61,20 @@ export const isMcpClient = value => Predicate.hasProperty(value, TypeId);
57
61
  *
58
62
  * `name`, `version` and the optional `title`, `description`, `websiteUrl` and
59
63
  * `icons` identify the client to the server. `timeout` defaults to 60 seconds
60
- * and bounds initialization and each complete `listTools`, `listPrompts` or
61
- * `listResources` scan. `callTool`, `getPrompt` and `readResource` have no
62
- * deadline unless their own `timeout` option is supplied.
64
+ * and bounds initialization and each complete `listTools`, `listPrompts`,
65
+ * `listResources`, `listSkills` or `readResourceDirectory` scan.
66
+ * `discoveryLimits` sets the default scan limits of 100 pages and 10,000
67
+ * items. `callTool`, `getPrompt`, `readResource`, `getSkill` and
68
+ * `readSkillResource` have no deadline unless their own `timeout` option is
69
+ * supplied.
70
+ *
71
+ * `extensions` selects the protocol extensions the client declares. With
72
+ * `skills: true` it declares the Skills extension (SEP-2640) and enables
73
+ * `listSkills`, `getSkill`, `readResourceDirectory` and `readSkillResource`;
74
+ * without it they fail with a `ConfigurationError`. They run only against a
75
+ * server that declares the extension too, and skill entries are checked
76
+ * against its rules. `readSkillResource` checks digests with SHA-256 on
77
+ * `crypto.subtle`.
63
78
  * Schema decoding requires the schema's services from the caller.
64
79
  *
65
80
  * @stability experimental
@@ -72,6 +87,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
72
87
  const version = protocol.protocolVersion;
73
88
  const modern = version === "2026-07-28";
74
89
  const timeout = options.timeout ?? DEFAULT_TIMEOUT;
90
+ const discoveryLimits = yield* resolveDiscoveryLimits(options.discoveryLimits, DEFAULT_DISCOVERY_LIMITS);
75
91
  const closed = yield* Deferred.make();
76
92
  yield* Effect.addFinalizer(() => Deferred.fail(closed, fail(new ClosedError({
77
93
  description: "MCP client scope closed"
@@ -87,10 +103,16 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
87
103
  });
88
104
  // Modern requests carry the client identity in every request.
89
105
  // https://modelcontextprotocol.io/specification/2026-07-28/basic/index
106
+ const skillsEnabled = options.extensions?.skills === true;
107
+ const clientCapabilities = skillsEnabled ? {
108
+ extensions: {
109
+ [McpSkills.EXTENSION_ID]: {}
110
+ }
111
+ } : {};
90
112
  const meta = {
91
113
  "io.modelcontextprotocol/protocolVersion": version,
92
114
  "io.modelcontextprotocol/clientInfo": clientInfo,
93
- "io.modelcontextprotocol/clientCapabilities": {}
115
+ "io.modelcontextprotocol/clientCapabilities": clientCapabilities
94
116
  };
95
117
  const request = Effect.fnUntraced(function* (method, params, tool) {
96
118
  const rpc = protocol.clientRpcs.requests.get(method);
@@ -152,7 +174,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
152
174
  if (!modern) {
153
175
  return yield* request("initialize", {
154
176
  protocolVersion: version,
155
- capabilities: {},
177
+ capabilities: clientCapabilities,
156
178
  clientInfo
157
179
  });
158
180
  }
@@ -196,27 +218,135 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
196
218
  const call = (kind, method, params, tool) => capabilities[kind] === undefined ? Effect.fail(fail(new UnsupportedError({
197
219
  description: `Server does not advertise ${kind}`
198
220
  }))) : request(method, params, tool);
199
- const list = kind => Effect.fnUntraced(function* (_options) {
200
- if (capabilities[kind] === undefined) return [];
221
+ const paginate = Effect.fnUntraced(function* (label, method, key, params, limits) {
201
222
  const items = [];
202
223
  const cursors = new Set();
203
224
  let cursor;
204
- for (let page = 0; page < MAX_DISCOVERY_PAGES; page++) {
205
- const result = yield* request(`${kind}/list`, cursor === undefined ? {} : {
225
+ for (let page = 0; page < limits.maxPages; page++) {
226
+ const result = yield* request(method, cursor === undefined ? params : {
227
+ ...params,
206
228
  cursor
207
229
  });
208
- if (items.length + result[kind].length > MAX_DISCOVERY_ITEMS) {
209
- return yield* limitError(`MCP ${kind} discovery exceeded its item limit`);
230
+ if (items.length + result[key].length > limits.maxItems) {
231
+ return yield* limitError(`MCP ${label} discovery exceeded its item limit`);
210
232
  }
211
- items.push(...result[kind]);
233
+ for (const item of result[key]) items.push(item);
212
234
  if (result.nextCursor === undefined) return items;
213
235
  if (cursors.has(result.nextCursor)) {
214
- return yield* limitError(`MCP ${kind} discovery repeated a cursor`);
236
+ return yield* limitError(`MCP ${label} discovery repeated a cursor`);
215
237
  }
216
238
  cursors.add(cursor = result.nextCursor);
217
239
  }
218
- return yield* limitError(`MCP ${kind} discovery exceeded its page limit`);
240
+ return yield* limitError(`MCP ${label} discovery exceeded its page limit`);
241
+ });
242
+ const list = kind => Effect.fnUntraced(function* (callOptions) {
243
+ const limits = yield* resolveDiscoveryLimits(callOptions?.limits, discoveryLimits);
244
+ if (capabilities[kind] === undefined) return [];
245
+ return yield* paginate(kind, `${kind}/list`, kind, {}, limits);
219
246
  }, (effect, callOptions) => withDeadline(effect, `${kind} discovery`, callOptions?.timeout ?? timeout));
247
+ // Hosts must not call the extension's methods unless the server declares it,
248
+ // and the extension requires the resources capability.
249
+ const skillsSettings = capabilities.extensions?.[McpSkills.EXTENSION_ID];
250
+ const servesSkills = isRecord(skillsSettings) && capabilities.resources !== undefined;
251
+ const servesDirectories = servesSkills && isRecord(skillsSettings) && skillsSettings.directoryRead === true;
252
+ const digest = yield* Effect.provide(Digest.Digest, Digest.layerWebCrypto);
253
+ const invalid = description => Effect.fail(fail(new ValidationError({
254
+ description
255
+ })));
256
+ const unsupported = description => Effect.fail(fail(new UnsupportedError({
257
+ description
258
+ })));
259
+ const requireSkillsOption = skillsEnabled ? Effect.void : Effect.fail(fail(new ConfigurationError({
260
+ description: "MCP skills methods require extensions: { skills: true }"
261
+ })));
262
+ const decodeSkill = Effect.fnUntraced(function* (entry) {
263
+ const skill = yield* decodeUnknown(McpSchema.Skill, entry);
264
+ const problem = McpSkills.entryProblem(skill);
265
+ return problem === undefined ? skill : yield* invalid(`Invalid MCP skill ${skill.uri}: ${problem}`);
266
+ });
267
+ const listSkills = Effect.fnUntraced(function* (options) {
268
+ yield* requireSkillsOption;
269
+ const limits = yield* resolveDiscoveryLimits(options?.limits, discoveryLimits);
270
+ if (!servesSkills) return [];
271
+ const entries = yield* paginate("skills", "skills/list", "skills", {}, limits);
272
+ // A catalog that changes between pages can list a skill twice; the first entry wins.
273
+ const skills = new Map();
274
+ for (const entry of entries) {
275
+ const decoded = yield* Effect.result(decodeSkill(entry));
276
+ if (decoded._tag === "Failure") {
277
+ if (options?.onInvalidSkill === undefined) return yield* Effect.fail(decoded.failure);
278
+ yield* options.onInvalidSkill({
279
+ entry,
280
+ error: decoded.failure
281
+ });
282
+ continue;
283
+ }
284
+ if (!skills.has(decoded.success.uri)) skills.set(decoded.success.uri, decoded.success);
285
+ }
286
+ return Array.from(skills.values());
287
+ }, (effect, callOptions) => withDeadline(effect, "skills discovery", callOptions?.timeout ?? timeout));
288
+ const getSkill = Effect.fnUntraced(function* (params, _options) {
289
+ yield* requireSkillsOption;
290
+ if (!servesSkills) return yield* unsupported("Server does not declare the MCP Skills extension");
291
+ const result = yield* request("skills/get", {
292
+ uri: params.uri
293
+ });
294
+ const skill = yield* decodeSkill(result.skill);
295
+ return skill.uri === params.uri ? skill : yield* invalid(`MCP server returned skill ${skill.uri} for ${params.uri}`);
296
+ }, (effect, _params, callOptions) => withDeadline(effect, "skills/get", callOptions?.timeout));
297
+ const readResourceDirectory = Effect.fnUntraced(function* (params, options) {
298
+ yield* requireSkillsOption;
299
+ const limits = yield* resolveDiscoveryLimits(options?.limits, discoveryLimits);
300
+ if (!servesDirectories) {
301
+ return yield* unsupported("Server does not declare directory reads for the MCP Skills extension");
302
+ }
303
+ const entries = yield* paginate("directory", "resources/directory/read", "resources", {
304
+ uri: params.uri
305
+ }, limits);
306
+ // A directory that changes between pages can list a child twice; the first entry wins.
307
+ const children = new Map();
308
+ for (const entry of entries) {
309
+ const child = yield* decodeUnknown(McpSchema.Resource, entry);
310
+ if (!McpSkills.isDirectChild(params.uri, child.uri)) {
311
+ return yield* invalid(`${child.uri} is not a child of the MCP directory ${params.uri}`);
312
+ }
313
+ if (!children.has(child.uri)) children.set(child.uri, child);
314
+ }
315
+ return Array.from(children.values());
316
+ }, (effect, _params, callOptions) => withDeadline(effect, "directory discovery", callOptions?.timeout ?? timeout));
317
+ const readSkillResource = Effect.fnUntraced(function* (params, _options) {
318
+ yield* requireSkillsOption;
319
+ const {
320
+ skill,
321
+ uri
322
+ } = params;
323
+ // A file missing from the manifest is a change to the skill, not a file to
324
+ // trust. A dynamic skill has no manifest, so any file in its directory is read.
325
+ const manifest = skill.resources === "dynamic" ? undefined : skill.resources;
326
+ const listed = manifest?.find(resource => resource.uri === uri);
327
+ if (manifest === undefined ? !McpSkills.isSkillFile(skill.uri, uri) : listed === undefined) {
328
+ return yield* invalid(`${uri} is not a file of the MCP skill ${skill.uri}`);
329
+ }
330
+ const result = yield* call("resources", "resources/read", {
331
+ uri
332
+ });
333
+ const [content, ...rest] = result.contents;
334
+ if (content === undefined || rest.length > 0 || content.uri !== uri) {
335
+ return yield* invalid(`MCP resources/read returned other contents than ${uri}`);
336
+ }
337
+ const bytes = "text" in content ? encoder.encode(content.text) : content.blob;
338
+ if (listed !== undefined) {
339
+ const actual = `sha256:${yield* digest.digestHex(Digest.sha256, bytes)}`;
340
+ if (bytes.byteLength !== listed.size || actual !== listed.digest) {
341
+ return yield* invalid(`${uri} does not match the digest and size listed by the MCP skill ${skill.uri}`);
342
+ }
343
+ }
344
+ if (uri !== skill.uri) return result;
345
+ // Verified bytes can still carry other frontmatter than the listing, and
346
+ // hosts must not load a skill whose two descriptions differ.
347
+ const frontmatter = McpSkills.parseFrontmatter("text" in content ? content.text : decoder.decode(bytes));
348
+ return frontmatter !== undefined && Equal.equals(frontmatter, skill.frontmatter) ? result : yield* invalid(`The frontmatter of ${uri} differs from the frontmatter listed for the MCP skill`);
349
+ }, (effect, _params, callOptions) => withDeadline(effect, "resources/read", callOptions?.timeout));
220
350
  const listTools = list("tools");
221
351
  const callTool = Effect.fnUntraced(function* (params, _options) {
222
352
  const result = yield* call("tools", "tools/call", {
@@ -239,6 +369,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
239
369
  return {
240
370
  [TypeId]: TypeId,
241
371
  protocolVersion: version,
372
+ capabilities,
242
373
  serverInfo,
243
374
  instructions,
244
375
  listTools: callOptions => listTools(callOptions).pipe(Effect.map(tools => tools.filter(tool => transport.isCallable(tool)))),
@@ -253,6 +384,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
253
384
  readResource: (params, callOptions) => withDeadline(call("resources", "resources/read", {
254
385
  uri: params.uri
255
386
  }), "resources/read", callOptions?.timeout),
387
+ listSkills,
388
+ getSkill,
389
+ readResourceDirectory,
390
+ readSkillResource,
256
391
  callTool: callTool
257
392
  };
258
393
  });
@@ -260,57 +395,76 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
260
395
  // Toolkit
261
396
  // =============================================================================
262
397
  /**
263
- * Discovers remote tools and binds their handlers using the standard Toolkit implementation.
398
+ * Annotation containing the remote descriptor used to bind an MCP tool.
264
399
  *
265
400
  * **Details**
266
401
  *
267
- * Pass an optional prefix such as `"reports__"` to qualify model tool names.
268
- * Remote JSON Schemas are advertised without local schema import. Results become
269
- * text; tool-reported and operational failures fail the Effect. Use `Tool.make`
270
- * or `Tool.dynamic` with `Toolkit.make` for custom validation, approval or results.
271
- * Build a new toolkit to discover changes between model turns.
402
+ * The descriptor is server-provided and should be treated as untrusted.
272
403
  *
273
404
  * @stability experimental
274
- * @category constructors
275
- * @since 4.0.6
405
+ * @category services
406
+ * @since 4.1.1
276
407
  */
277
- export const toolkit = /*#__PURE__*/Effect.fnUntraced(function* (client, prefix = "") {
278
- const descriptors = yield* client.listTools();
279
- const tools = [];
280
- const handlers = Object.create(null);
281
- for (const descriptor of descriptors) {
282
- const name = `${prefix}${descriptor.name}`;
283
- if (!/^[a-zA-Z0-9_-]{1,64}$/.test(name) || Object.hasOwn(handlers, name)) {
284
- return yield* fail(new ConfigurationError({
285
- description: `Invalid or duplicate MCP model tool name: ${name}`
286
- }));
287
- }
288
- tools.push(Tool.dynamic(name, {
289
- parameters: descriptor.inputSchema,
290
- description: descriptor.description,
291
- success: Schema.String,
292
- failure: McpClientError
293
- }).annotate(Tool.Strict, false));
294
- handlers[name] = Effect.fnUntraced(function* (params) {
295
- const args = yield* decodeToolArguments(params).pipe(Effect.mapError(cause => fail(new ValidationError({
296
- description: "MCP tool arguments must be a JSON object",
297
- cause
298
- }))));
299
- const result = yield* client.callTool({
300
- tool: descriptor,
301
- arguments: args
302
- });
303
- if (result.isError === true) {
304
- return yield* fail(new ToolError({
305
- result
408
+ export class ToolDescriptor extends /*#__PURE__*/Context.Service()("effect/ai/McpClient/ToolDescriptor") {}
409
+ export function toolkit(client, options = "") {
410
+ return Effect.gen(function* () {
411
+ const config = typeof options === "string" ? {
412
+ prefix: options
413
+ } : options;
414
+ const descriptors = config.tools ?? (yield* client.listTools());
415
+ const complete = config.resultMode === "complete";
416
+ const success = complete ? McpSchema.CallToolResult : Schema.String;
417
+ const failureMode = config.failureMode ?? "error";
418
+ const tools = [];
419
+ const handlers = Object.create(null);
420
+ for (const descriptor of descriptors) {
421
+ const name = `${config.prefix ?? ""}${descriptor.name}`;
422
+ if (!/^[a-zA-Z0-9_-]{1,64}$/.test(name) || Object.hasOwn(handlers, name)) {
423
+ return yield* fail(new ConfigurationError({
424
+ description: `Invalid or duplicate MCP model tool name: ${name}`
306
425
  }));
307
426
  }
308
- return yield* toText(result);
309
- });
310
- }
311
- const toolkit = Toolkit.make(...tools);
312
- return yield* toolkit.pipe(Effect.provideContext(yield* toolkit.toHandlers(handlers)));
313
- });
427
+ const spec = {
428
+ parameters: descriptor.inputSchema,
429
+ description: descriptor.description,
430
+ success,
431
+ failure: McpClientError,
432
+ toModelOutput: complete ? toModelOutput : undefined
433
+ };
434
+ // The identical branches narrow `failureMode` to a single `RemoteTool` member.
435
+ let tool = (failureMode === "return" ? Tool.dynamic(name, {
436
+ ...spec,
437
+ failureMode
438
+ }) : Tool.dynamic(name, {
439
+ ...spec,
440
+ failureMode
441
+ })).annotate(Tool.Strict, false).annotate(ToolDescriptor, descriptor);
442
+ if (config.trustAnnotations && descriptor.annotations !== undefined) {
443
+ tool = tool.annotate(Tool.Readonly, descriptor.annotations.readOnlyHint).annotate(Tool.Destructive, descriptor.annotations.destructiveHint).annotate(Tool.Idempotent, descriptor.annotations.idempotentHint).annotate(Tool.OpenWorld, descriptor.annotations.openWorldHint);
444
+ if (descriptor.annotations.title !== undefined) tool = tool.annotate(Tool.Title, descriptor.annotations.title);
445
+ }
446
+ tools.push(config.transformTool === undefined ? tool : config.transformTool(tool, descriptor));
447
+ handlers[name] = Effect.fnUntraced(function* (params) {
448
+ const args = yield* decodeToolArguments(params).pipe(Effect.mapError(cause => fail(new ValidationError({
449
+ description: "MCP tool arguments must be a JSON object",
450
+ cause
451
+ }))));
452
+ const result = yield* client.callTool({
453
+ tool: descriptor,
454
+ arguments: args
455
+ }, {
456
+ timeout: config.timeout
457
+ });
458
+ if (result.isError === true) return yield* fail(new ToolError({
459
+ result
460
+ }));
461
+ return complete ? result : yield* toText(result);
462
+ });
463
+ }
464
+ const toolkit = Toolkit.make(...tools);
465
+ return yield* toolkit.pipe(Effect.provideContext(yield* toolkit.toHandlers(handlers)));
466
+ });
467
+ }
314
468
  // =============================================================================
315
469
  // Transports
316
470
  // =============================================================================
@@ -612,8 +766,10 @@ const TransportTypeId = "~effect/ai/McpClient/Transport";
612
766
  const DEFAULT_MAX_MESSAGE_BYTES = /*#__PURE__*/ByteSize.mebibytes(16);
613
767
  const DEFAULT_TIMEOUT = /*#__PURE__*/Duration.seconds(60);
614
768
  const CLOSE_TIMEOUT = /*#__PURE__*/Duration.seconds(5);
615
- const MAX_DISCOVERY_PAGES = 100;
616
- const MAX_DISCOVERY_ITEMS = 10_000;
769
+ const DEFAULT_DISCOVERY_LIMITS = {
770
+ maxPages: 100,
771
+ maxItems: 10_000
772
+ };
617
773
  const HEADER_TOKEN = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
618
774
  const encoder = /*#__PURE__*/new TextEncoder();
619
775
  const decoder = /*#__PURE__*/new TextDecoder();
@@ -623,6 +779,16 @@ const fail = reason => new McpClientError({
623
779
  const limitError = description => fail(new LimitError({
624
780
  description
625
781
  }));
782
+ const resolveDiscoveryLimits = (limits, defaults) => {
783
+ const maxPages = limits?.maxPages ?? defaults.maxPages;
784
+ const maxItems = limits?.maxItems ?? defaults.maxItems;
785
+ return Number.isSafeInteger(maxPages) && maxPages >= 0 && Number.isSafeInteger(maxItems) && maxItems >= 0 ? Effect.succeed({
786
+ maxPages,
787
+ maxItems
788
+ }) : Effect.fail(fail(new ConfigurationError({
789
+ description: "MCP discovery limits must be nonnegative safe integers"
790
+ })));
791
+ };
626
792
  const validationError = cause => fail(new ValidationError({
627
793
  description: "Invalid MCP payload",
628
794
  cause
@@ -681,7 +847,8 @@ const parseMessage = /*#__PURE__*/Effect.fnUntraced(function* (text, maxBytes) {
681
847
  });
682
848
  const isRequest = message => "method" in message && "id" in message;
683
849
  const isResponse = message => !("method" in message);
684
- // The client advertises no capabilities, so it answers pings and declines every other server request.
850
+ // The client advertises no capability that lets a server send it requests, so it answers pings and
851
+ // declines every other server request.
685
852
  const replyToServer = request => request.method === "ping" ? {
686
853
  jsonrpc: "2.0",
687
854
  id: request.id,
@@ -781,9 +948,53 @@ const routingHeaders = /*#__PURE__*/Effect.fnUntraced(function* (message, tool)
781
948
  }
782
949
  return headers;
783
950
  });
784
- // =============================================================================
785
- // Internal: Toolkit
786
- // =============================================================================
951
+ const toModelOutput = result => {
952
+ const parts = [];
953
+ for (const block of result.content) {
954
+ switch (block.type) {
955
+ case "text":
956
+ {
957
+ parts.push(Prompt.textPart({
958
+ text: block.text
959
+ }));
960
+ break;
961
+ }
962
+ case "image":
963
+ case "audio":
964
+ {
965
+ parts.push(Prompt.filePart({
966
+ mediaType: block.mimeType,
967
+ data: block.data
968
+ }));
969
+ break;
970
+ }
971
+ case "resource_link":
972
+ {
973
+ parts.push(Prompt.textPart({
974
+ text: resourceLinkText(block)
975
+ }));
976
+ break;
977
+ }
978
+ case "resource":
979
+ {
980
+ parts.push("text" in block.resource ? Prompt.textPart({
981
+ text: block.resource.text
982
+ }) : Prompt.filePart({
983
+ mediaType: block.resource.mimeType ?? "application/octet-stream",
984
+ data: block.resource.blob
985
+ }));
986
+ break;
987
+ }
988
+ }
989
+ }
990
+ if (parts.length === 0 && result.structuredContent !== undefined) {
991
+ parts.push(Prompt.textPart({
992
+ text: JSON.stringify(result.structuredContent)
993
+ }));
994
+ }
995
+ return parts;
996
+ };
997
+ const resourceLinkText = link => `${link.title ?? link.name}: ${link.uri}${link.description === undefined ? "" : `\n${link.description}`}`;
787
998
  const toText = result => {
788
999
  const unsupported = content => Effect.fail(fail(new UnsupportedError({
789
1000
  description: `MCP ${content} requires an application text converter`,
@@ -799,7 +1010,7 @@ const toText = result => {
799
1010
  }
800
1011
  case "resource_link":
801
1012
  {
802
- parts.push(`${block.title ?? block.name}: ${block.uri}${block.description === undefined ? "" : `\n${block.description}`}`);
1013
+ parts.push(resourceLinkText(block));
803
1014
  break;
804
1015
  }
805
1016
  case "resource":
@@ -1 +1 @@
1
- {"version":3,"file":"McpClient.js","names":[],"sources":["../../src/ai/McpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"McpClient.js","names":[],"sources":["../../src/ai/McpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}