@agentick/core 0.0.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 (626) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +875 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/.tsbuildinfo.build +1 -0
  5. package/dist/agent.d.ts +32 -0
  6. package/dist/agent.d.ts.map +1 -0
  7. package/dist/agent.js +26 -0
  8. package/dist/agent.js.map +1 -0
  9. package/dist/agentick-instance.d.ts +285 -0
  10. package/dist/agentick-instance.d.ts.map +1 -0
  11. package/dist/agentick-instance.js +700 -0
  12. package/dist/agentick-instance.js.map +1 -0
  13. package/dist/aidk-instance.d.ts +294 -0
  14. package/dist/aidk-instance.d.ts.map +1 -0
  15. package/dist/aidk-instance.js +340 -0
  16. package/dist/aidk-instance.js.map +1 -0
  17. package/dist/app/session-store.d.ts +57 -0
  18. package/dist/app/session-store.d.ts.map +1 -0
  19. package/dist/app/session-store.js +87 -0
  20. package/dist/app/session-store.js.map +1 -0
  21. package/dist/app/session.d.ts +209 -0
  22. package/dist/app/session.d.ts.map +1 -0
  23. package/dist/app/session.js +2131 -0
  24. package/dist/app/session.js.map +1 -0
  25. package/dist/app/sqlite-session-store.d.ts +60 -0
  26. package/dist/app/sqlite-session-store.d.ts.map +1 -0
  27. package/dist/app/sqlite-session-store.js +234 -0
  28. package/dist/app/sqlite-session-store.js.map +1 -0
  29. package/dist/app/types.d.ts +1461 -0
  30. package/dist/app/types.d.ts.map +1 -0
  31. package/dist/app/types.js +14 -0
  32. package/dist/app/types.js.map +1 -0
  33. package/dist/app.d.ts +79 -0
  34. package/dist/app.d.ts.map +1 -0
  35. package/dist/app.js +83 -0
  36. package/dist/app.js.map +1 -0
  37. package/dist/channels/adapters/index.d.ts +2 -0
  38. package/dist/channels/adapters/index.d.ts.map +1 -0
  39. package/dist/channels/adapters/index.js +2 -0
  40. package/dist/channels/adapters/index.js.map +1 -0
  41. package/dist/channels/adapters/redis.d.ts +77 -0
  42. package/dist/channels/adapters/redis.d.ts.map +1 -0
  43. package/dist/channels/adapters/redis.js +259 -0
  44. package/dist/channels/adapters/redis.js.map +1 -0
  45. package/dist/channels/index.d.ts +38 -0
  46. package/dist/channels/index.d.ts.map +1 -0
  47. package/dist/channels/index.js +38 -0
  48. package/dist/channels/index.js.map +1 -0
  49. package/dist/channels/service.d.ts +684 -0
  50. package/dist/channels/service.d.ts.map +1 -0
  51. package/dist/channels/service.js +870 -0
  52. package/dist/channels/service.js.map +1 -0
  53. package/dist/channels/transports/index.d.ts +4 -0
  54. package/dist/channels/transports/index.d.ts.map +1 -0
  55. package/dist/channels/transports/index.js +4 -0
  56. package/dist/channels/transports/index.js.map +1 -0
  57. package/dist/channels/transports/socketio.d.ts +98 -0
  58. package/dist/channels/transports/socketio.d.ts.map +1 -0
  59. package/dist/channels/transports/socketio.js +246 -0
  60. package/dist/channels/transports/socketio.js.map +1 -0
  61. package/dist/channels/transports/streamable-http.d.ts +107 -0
  62. package/dist/channels/transports/streamable-http.d.ts.map +1 -0
  63. package/dist/channels/transports/streamable-http.js +353 -0
  64. package/dist/channels/transports/streamable-http.js.map +1 -0
  65. package/dist/channels/transports/websocket.d.ts +117 -0
  66. package/dist/channels/transports/websocket.d.ts.map +1 -0
  67. package/dist/channels/transports/websocket.js +416 -0
  68. package/dist/channels/transports/websocket.js.map +1 -0
  69. package/dist/com/index.d.ts +29 -0
  70. package/dist/com/index.d.ts.map +1 -0
  71. package/dist/com/index.js +29 -0
  72. package/dist/com/index.js.map +1 -0
  73. package/dist/com/object-model.d.ts +634 -0
  74. package/dist/com/object-model.d.ts.map +1 -0
  75. package/dist/com/object-model.js +963 -0
  76. package/dist/com/object-model.js.map +1 -0
  77. package/dist/com/types.d.ts +192 -0
  78. package/dist/com/types.d.ts.map +1 -0
  79. package/dist/com/types.js +1 -0
  80. package/dist/com/types.js.map +1 -0
  81. package/dist/compiler/collector.d.ts +16 -0
  82. package/dist/compiler/collector.d.ts.map +1 -0
  83. package/dist/compiler/collector.js +388 -0
  84. package/dist/compiler/collector.js.map +1 -0
  85. package/dist/compiler/content-block-registry.d.ts +11 -0
  86. package/dist/compiler/content-block-registry.d.ts.map +1 -0
  87. package/dist/compiler/content-block-registry.js +312 -0
  88. package/dist/compiler/content-block-registry.js.map +1 -0
  89. package/dist/compiler/extractors.d.ts +68 -0
  90. package/dist/compiler/extractors.d.ts.map +1 -0
  91. package/dist/compiler/extractors.js +547 -0
  92. package/dist/compiler/extractors.js.map +1 -0
  93. package/dist/compiler/fiber-compiler.d.ts +203 -0
  94. package/dist/compiler/fiber-compiler.d.ts.map +1 -0
  95. package/dist/compiler/fiber-compiler.js +498 -0
  96. package/dist/compiler/fiber-compiler.js.map +1 -0
  97. package/dist/compiler/fiber.d.ts +61 -0
  98. package/dist/compiler/fiber.d.ts.map +1 -0
  99. package/dist/compiler/fiber.js +244 -0
  100. package/dist/compiler/fiber.js.map +1 -0
  101. package/dist/compiler/index.d.ts +18 -0
  102. package/dist/compiler/index.d.ts.map +1 -0
  103. package/dist/compiler/index.js +38 -0
  104. package/dist/compiler/index.js.map +1 -0
  105. package/dist/compiler/scheduler.d.ts +95 -0
  106. package/dist/compiler/scheduler.d.ts.map +1 -0
  107. package/dist/compiler/scheduler.js +138 -0
  108. package/dist/compiler/scheduler.js.map +1 -0
  109. package/dist/compiler/structure-renderer.d.ts +42 -0
  110. package/dist/compiler/structure-renderer.d.ts.map +1 -0
  111. package/dist/compiler/structure-renderer.js +189 -0
  112. package/dist/compiler/structure-renderer.js.map +1 -0
  113. package/dist/compiler/types.d.ts +96 -0
  114. package/dist/compiler/types.d.ts.map +1 -0
  115. package/dist/compiler/types.js +19 -0
  116. package/dist/compiler/types.js.map +1 -0
  117. package/dist/component/component-hooks.d.ts +68 -0
  118. package/dist/component/component-hooks.d.ts.map +1 -0
  119. package/dist/component/component-hooks.js +112 -0
  120. package/dist/component/component-hooks.js.map +1 -0
  121. package/dist/component/component.d.ts +314 -0
  122. package/dist/component/component.d.ts.map +1 -0
  123. package/dist/component/component.js +64 -0
  124. package/dist/component/component.js.map +1 -0
  125. package/dist/component/index.d.ts +47 -0
  126. package/dist/component/index.d.ts.map +1 -0
  127. package/dist/component/index.js +47 -0
  128. package/dist/component/index.js.map +1 -0
  129. package/dist/component/tentickle-component.d.ts +185 -0
  130. package/dist/component/tentickle-component.d.ts.map +1 -0
  131. package/dist/component/tentickle-component.js +182 -0
  132. package/dist/component/tentickle-component.js.map +1 -0
  133. package/dist/content/index.d.ts +12 -0
  134. package/dist/content/index.d.ts.map +1 -0
  135. package/dist/content/index.js +17 -0
  136. package/dist/content/index.js.map +1 -0
  137. package/dist/context/index.d.ts +51 -0
  138. package/dist/context/index.d.ts.map +1 -0
  139. package/dist/context/index.js +69 -0
  140. package/dist/context/index.js.map +1 -0
  141. package/dist/core/channel-helpers.d.ts +31 -0
  142. package/dist/core/channel-helpers.d.ts.map +1 -0
  143. package/dist/core/channel-helpers.js +62 -0
  144. package/dist/core/channel-helpers.js.map +1 -0
  145. package/dist/core/channel.d.ts +164 -0
  146. package/dist/core/channel.d.ts.map +1 -0
  147. package/dist/core/channel.js +199 -0
  148. package/dist/core/channel.js.map +1 -0
  149. package/dist/core/context.d.ts +412 -0
  150. package/dist/core/context.d.ts.map +1 -0
  151. package/dist/core/context.js +290 -0
  152. package/dist/core/context.js.map +1 -0
  153. package/dist/core/event-buffer.d.ts +212 -0
  154. package/dist/core/event-buffer.d.ts.map +1 -0
  155. package/dist/core/event-buffer.js +346 -0
  156. package/dist/core/event-buffer.js.map +1 -0
  157. package/dist/core/execution-helpers.d.ts +179 -0
  158. package/dist/core/execution-helpers.d.ts.map +1 -0
  159. package/dist/core/execution-helpers.js +212 -0
  160. package/dist/core/execution-helpers.js.map +1 -0
  161. package/dist/core/execution-tracker.d.ts +53 -0
  162. package/dist/core/execution-tracker.d.ts.map +1 -0
  163. package/dist/core/execution-tracker.js +309 -0
  164. package/dist/core/execution-tracker.js.map +1 -0
  165. package/dist/core/index.d.ts +58 -0
  166. package/dist/core/index.d.ts.map +1 -0
  167. package/dist/core/index.js +58 -0
  168. package/dist/core/index.js.map +1 -0
  169. package/dist/core/logger.d.ts +341 -0
  170. package/dist/core/logger.d.ts.map +1 -0
  171. package/dist/core/logger.js +346 -0
  172. package/dist/core/logger.js.map +1 -0
  173. package/dist/core/metrics-helpers.d.ts +40 -0
  174. package/dist/core/metrics-helpers.d.ts.map +1 -0
  175. package/dist/core/metrics-helpers.js +72 -0
  176. package/dist/core/metrics-helpers.js.map +1 -0
  177. package/dist/core/otel-provider.d.ts +54 -0
  178. package/dist/core/otel-provider.d.ts.map +1 -0
  179. package/dist/core/otel-provider.js +107 -0
  180. package/dist/core/otel-provider.js.map +1 -0
  181. package/dist/core/procedure-graph.d.ts +136 -0
  182. package/dist/core/procedure-graph.d.ts.map +1 -0
  183. package/dist/core/procedure-graph.js +272 -0
  184. package/dist/core/procedure-graph.js.map +1 -0
  185. package/dist/core/procedure.d.ts +755 -0
  186. package/dist/core/procedure.d.ts.map +1 -0
  187. package/dist/core/procedure.js +899 -0
  188. package/dist/core/procedure.js.map +1 -0
  189. package/dist/core/stream.d.ts +106 -0
  190. package/dist/core/stream.d.ts.map +1 -0
  191. package/dist/core/stream.js +186 -0
  192. package/dist/core/stream.js.map +1 -0
  193. package/dist/core/telemetry.d.ts +182 -0
  194. package/dist/core/telemetry.d.ts.map +1 -0
  195. package/dist/core/telemetry.js +124 -0
  196. package/dist/core/telemetry.js.map +1 -0
  197. package/dist/engine/client-tool-coordinator.d.ts +50 -0
  198. package/dist/engine/client-tool-coordinator.d.ts.map +1 -0
  199. package/dist/engine/client-tool-coordinator.js +121 -0
  200. package/dist/engine/client-tool-coordinator.js.map +1 -0
  201. package/dist/engine/engine-events.d.ts +117 -0
  202. package/dist/engine/engine-events.d.ts.map +1 -0
  203. package/dist/engine/engine-events.js +178 -0
  204. package/dist/engine/engine-events.js.map +1 -0
  205. package/dist/engine/engine-response.d.ts +48 -0
  206. package/dist/engine/engine-response.d.ts.map +1 -0
  207. package/dist/engine/engine-response.js +2 -0
  208. package/dist/engine/engine-response.js.map +1 -0
  209. package/dist/engine/execution-graph.d.ts +104 -0
  210. package/dist/engine/execution-graph.d.ts.map +1 -0
  211. package/dist/engine/execution-graph.js +257 -0
  212. package/dist/engine/execution-graph.js.map +1 -0
  213. package/dist/engine/execution-handle.d.ts +212 -0
  214. package/dist/engine/execution-handle.d.ts.map +1 -0
  215. package/dist/engine/execution-handle.js +602 -0
  216. package/dist/engine/execution-handle.js.map +1 -0
  217. package/dist/engine/execution-types.d.ts +248 -0
  218. package/dist/engine/execution-types.d.ts.map +1 -0
  219. package/dist/engine/execution-types.js +23 -0
  220. package/dist/engine/execution-types.js.map +1 -0
  221. package/dist/engine/index.d.ts +21 -0
  222. package/dist/engine/index.d.ts.map +1 -0
  223. package/dist/engine/index.js +23 -0
  224. package/dist/engine/index.js.map +1 -0
  225. package/dist/engine/tool-confirmation-coordinator.d.ts +74 -0
  226. package/dist/engine/tool-confirmation-coordinator.d.ts.map +1 -0
  227. package/dist/engine/tool-confirmation-coordinator.js +137 -0
  228. package/dist/engine/tool-confirmation-coordinator.js.map +1 -0
  229. package/dist/engine/tool-executor.d.ts +127 -0
  230. package/dist/engine/tool-executor.d.ts.map +1 -0
  231. package/dist/engine/tool-executor.js +363 -0
  232. package/dist/engine/tool-executor.js.map +1 -0
  233. package/dist/hibernation/index.d.ts +126 -0
  234. package/dist/hibernation/index.d.ts.map +1 -0
  235. package/dist/hibernation/index.js +127 -0
  236. package/dist/hibernation/index.js.map +1 -0
  237. package/dist/hooks/base-hook-registry.d.ts +41 -0
  238. package/dist/hooks/base-hook-registry.d.ts.map +1 -0
  239. package/dist/hooks/base-hook-registry.js +76 -0
  240. package/dist/hooks/base-hook-registry.js.map +1 -0
  241. package/dist/hooks/com-state.d.ts +40 -0
  242. package/dist/hooks/com-state.d.ts.map +1 -0
  243. package/dist/hooks/com-state.js +90 -0
  244. package/dist/hooks/com-state.js.map +1 -0
  245. package/dist/hooks/context-info.d.ts +139 -0
  246. package/dist/hooks/context-info.d.ts.map +1 -0
  247. package/dist/hooks/context-info.js +115 -0
  248. package/dist/hooks/context-info.js.map +1 -0
  249. package/dist/hooks/context-internal.d.ts +21 -0
  250. package/dist/hooks/context-internal.d.ts.map +1 -0
  251. package/dist/hooks/context-internal.js +20 -0
  252. package/dist/hooks/context-internal.js.map +1 -0
  253. package/dist/hooks/context.d.ts +64 -0
  254. package/dist/hooks/context.d.ts.map +1 -0
  255. package/dist/hooks/context.js +83 -0
  256. package/dist/hooks/context.js.map +1 -0
  257. package/dist/hooks/data.d.ts +33 -0
  258. package/dist/hooks/data.d.ts.map +1 -0
  259. package/dist/hooks/data.js +84 -0
  260. package/dist/hooks/data.js.map +1 -0
  261. package/dist/hooks/formatter-context.d.ts +34 -0
  262. package/dist/hooks/formatter-context.d.ts.map +1 -0
  263. package/dist/hooks/formatter-context.js +34 -0
  264. package/dist/hooks/formatter-context.js.map +1 -0
  265. package/dist/hooks/hook-registry.d.ts +45 -0
  266. package/dist/hooks/hook-registry.d.ts.map +1 -0
  267. package/dist/hooks/hook-registry.js +109 -0
  268. package/dist/hooks/hook-registry.js.map +1 -0
  269. package/dist/hooks/index.d.ts +20 -0
  270. package/dist/hooks/index.d.ts.map +1 -0
  271. package/dist/hooks/index.js +47 -0
  272. package/dist/hooks/index.js.map +1 -0
  273. package/dist/hooks/knob.d.ts +87 -0
  274. package/dist/hooks/knob.d.ts.map +1 -0
  275. package/dist/hooks/knob.js +129 -0
  276. package/dist/hooks/knob.js.map +1 -0
  277. package/dist/hooks/knobs-component.d.ts +70 -0
  278. package/dist/hooks/knobs-component.d.ts.map +1 -0
  279. package/dist/hooks/knobs-component.js +300 -0
  280. package/dist/hooks/knobs-component.js.map +1 -0
  281. package/dist/hooks/lifecycle.d.ts +158 -0
  282. package/dist/hooks/lifecycle.d.ts.map +1 -0
  283. package/dist/hooks/lifecycle.js +217 -0
  284. package/dist/hooks/lifecycle.js.map +1 -0
  285. package/dist/hooks/message-context.d.ts +101 -0
  286. package/dist/hooks/message-context.d.ts.map +1 -0
  287. package/dist/hooks/message-context.js +145 -0
  288. package/dist/hooks/message-context.js.map +1 -0
  289. package/dist/hooks/policy-context.d.ts.map +1 -0
  290. package/dist/hooks/runtime-context.d.ts +122 -0
  291. package/dist/hooks/runtime-context.d.ts.map +1 -0
  292. package/dist/hooks/runtime-context.js +149 -0
  293. package/dist/hooks/runtime-context.js.map +1 -0
  294. package/dist/hooks/signal.d.ts +267 -0
  295. package/dist/hooks/signal.d.ts.map +1 -0
  296. package/dist/hooks/signal.js +825 -0
  297. package/dist/hooks/signal.js.map +1 -0
  298. package/dist/hooks/types.d.ts +179 -0
  299. package/dist/hooks/types.d.ts.map +1 -0
  300. package/dist/hooks/types.js +5 -0
  301. package/dist/hooks/types.js.map +1 -0
  302. package/dist/index.d.ts +20 -0
  303. package/dist/index.d.ts.map +1 -0
  304. package/dist/index.js +50 -0
  305. package/dist/index.js.map +1 -0
  306. package/dist/jsx/components/agent.d.ts +64 -0
  307. package/dist/jsx/components/agent.d.ts.map +1 -0
  308. package/dist/jsx/components/agent.js +80 -0
  309. package/dist/jsx/components/agent.js.map +1 -0
  310. package/dist/jsx/components/complete.d.ts +65 -0
  311. package/dist/jsx/components/complete.d.ts.map +1 -0
  312. package/dist/jsx/components/complete.js +64 -0
  313. package/dist/jsx/components/complete.js.map +1 -0
  314. package/dist/jsx/components/content.d.ts +98 -0
  315. package/dist/jsx/components/content.d.ts.map +1 -0
  316. package/dist/jsx/components/content.js +51 -0
  317. package/dist/jsx/components/content.js.map +1 -0
  318. package/dist/jsx/components/harness.d.ts +118 -0
  319. package/dist/jsx/components/harness.d.ts.map +1 -0
  320. package/dist/jsx/components/harness.js +117 -0
  321. package/dist/jsx/components/harness.js.map +1 -0
  322. package/dist/jsx/components/index.d.ts +11 -0
  323. package/dist/jsx/components/index.d.ts.map +1 -0
  324. package/dist/jsx/components/index.js +11 -0
  325. package/dist/jsx/components/index.js.map +1 -0
  326. package/dist/jsx/components/markdown.d.ts +31 -0
  327. package/dist/jsx/components/markdown.d.ts.map +1 -0
  328. package/dist/jsx/components/markdown.js +17 -0
  329. package/dist/jsx/components/markdown.js.map +1 -0
  330. package/dist/jsx/components/messages.d.ts +283 -0
  331. package/dist/jsx/components/messages.d.ts.map +1 -0
  332. package/dist/jsx/components/messages.js +257 -0
  333. package/dist/jsx/components/messages.js.map +1 -0
  334. package/dist/jsx/components/model.d.ts +94 -0
  335. package/dist/jsx/components/model.d.ts.map +1 -0
  336. package/dist/jsx/components/model.js +96 -0
  337. package/dist/jsx/components/model.js.map +1 -0
  338. package/dist/jsx/components/primitives.d.ts +117 -0
  339. package/dist/jsx/components/primitives.d.ts.map +1 -0
  340. package/dist/jsx/components/primitives.js +83 -0
  341. package/dist/jsx/components/primitives.js.map +1 -0
  342. package/dist/jsx/components/renderer.d.ts +24 -0
  343. package/dist/jsx/components/renderer.d.ts.map +1 -0
  344. package/dist/jsx/components/renderer.js +11 -0
  345. package/dist/jsx/components/renderer.js.map +1 -0
  346. package/dist/jsx/components/semantic.d.ts +155 -0
  347. package/dist/jsx/components/semantic.d.ts.map +1 -0
  348. package/dist/jsx/components/semantic.js +39 -0
  349. package/dist/jsx/components/semantic.js.map +1 -0
  350. package/dist/jsx/components/timeline.d.ts +157 -0
  351. package/dist/jsx/components/timeline.d.ts.map +1 -0
  352. package/dist/jsx/components/timeline.js +357 -0
  353. package/dist/jsx/components/timeline.js.map +1 -0
  354. package/dist/jsx/components/token-budget.d.ts +70 -0
  355. package/dist/jsx/components/token-budget.d.ts.map +1 -0
  356. package/dist/jsx/components/token-budget.js +135 -0
  357. package/dist/jsx/components/token-budget.js.map +1 -0
  358. package/dist/jsx/components/xml.d.ts +27 -0
  359. package/dist/jsx/components/xml.d.ts.map +1 -0
  360. package/dist/jsx/components/xml.js +17 -0
  361. package/dist/jsx/components/xml.js.map +1 -0
  362. package/dist/jsx/index.d.ts +58 -0
  363. package/dist/jsx/index.d.ts.map +1 -0
  364. package/dist/jsx/index.js +59 -0
  365. package/dist/jsx/index.js.map +1 -0
  366. package/dist/jsx/jsx-runtime.d.ts +370 -0
  367. package/dist/jsx/jsx-runtime.d.ts.map +1 -0
  368. package/dist/jsx/jsx-runtime.js +79 -0
  369. package/dist/jsx/jsx-runtime.js.map +1 -0
  370. package/dist/jsx/jsx-types.d.ts +23 -0
  371. package/dist/jsx/jsx-types.d.ts.map +1 -0
  372. package/dist/jsx/jsx-types.js +1 -0
  373. package/dist/jsx/jsx-types.js.map +1 -0
  374. package/dist/mcp/client.d.ts +46 -0
  375. package/dist/mcp/client.d.ts.map +1 -0
  376. package/dist/mcp/client.js +138 -0
  377. package/dist/mcp/client.js.map +1 -0
  378. package/dist/mcp/component.d.ts +95 -0
  379. package/dist/mcp/component.d.ts.map +1 -0
  380. package/dist/mcp/component.js +185 -0
  381. package/dist/mcp/component.js.map +1 -0
  382. package/dist/mcp/create-mcp-tool.d.ts +191 -0
  383. package/dist/mcp/create-mcp-tool.d.ts.map +1 -0
  384. package/dist/mcp/create-mcp-tool.js +228 -0
  385. package/dist/mcp/create-mcp-tool.js.map +1 -0
  386. package/dist/mcp/index.d.ts +49 -0
  387. package/dist/mcp/index.d.ts.map +1 -0
  388. package/dist/mcp/index.js +48 -0
  389. package/dist/mcp/index.js.map +1 -0
  390. package/dist/mcp/service.d.ts +39 -0
  391. package/dist/mcp/service.d.ts.map +1 -0
  392. package/dist/mcp/service.js +77 -0
  393. package/dist/mcp/service.js.map +1 -0
  394. package/dist/mcp/tool.d.ts +55 -0
  395. package/dist/mcp/tool.d.ts.map +1 -0
  396. package/dist/mcp/tool.js +119 -0
  397. package/dist/mcp/tool.js.map +1 -0
  398. package/dist/mcp/types.d.ts +72 -0
  399. package/dist/mcp/types.d.ts.map +1 -0
  400. package/dist/mcp/types.js +6 -0
  401. package/dist/mcp/types.js.map +1 -0
  402. package/dist/middleware/defaults.d.ts +9 -0
  403. package/dist/middleware/defaults.d.ts.map +1 -0
  404. package/dist/middleware/defaults.js +47 -0
  405. package/dist/middleware/defaults.js.map +1 -0
  406. package/dist/model/adapter-helpers.d.ts +161 -0
  407. package/dist/model/adapter-helpers.d.ts.map +1 -0
  408. package/dist/model/adapter-helpers.js +351 -0
  409. package/dist/model/adapter-helpers.js.map +1 -0
  410. package/dist/model/adapter.d.ts +399 -0
  411. package/dist/model/adapter.d.ts.map +1 -0
  412. package/dist/model/adapter.js +497 -0
  413. package/dist/model/adapter.js.map +1 -0
  414. package/dist/model/index.d.ts +54 -0
  415. package/dist/model/index.d.ts.map +1 -0
  416. package/dist/model/index.js +55 -0
  417. package/dist/model/index.js.map +1 -0
  418. package/dist/model/model-hooks.d.ts +45 -0
  419. package/dist/model/model-hooks.d.ts.map +1 -0
  420. package/dist/model/model-hooks.js +24 -0
  421. package/dist/model/model-hooks.js.map +1 -0
  422. package/dist/model/model.d.ts +302 -0
  423. package/dist/model/model.d.ts.map +1 -0
  424. package/dist/model/model.js +20 -0
  425. package/dist/model/model.js.map +1 -0
  426. package/dist/model/simple-adapter.d.ts +176 -0
  427. package/dist/model/simple-adapter.d.ts.map +1 -0
  428. package/dist/model/simple-adapter.js +264 -0
  429. package/dist/model/simple-adapter.js.map +1 -0
  430. package/dist/model/stream-accumulator.d.ts +284 -0
  431. package/dist/model/stream-accumulator.d.ts.map +1 -0
  432. package/dist/model/stream-accumulator.js +532 -0
  433. package/dist/model/stream-accumulator.js.map +1 -0
  434. package/dist/model/utils/index.d.ts +2 -0
  435. package/dist/model/utils/index.d.ts.map +1 -0
  436. package/dist/model/utils/index.js +2 -0
  437. package/dist/model/utils/index.js.map +1 -0
  438. package/dist/model/utils/language-model.d.ts +26 -0
  439. package/dist/model/utils/language-model.d.ts.map +1 -0
  440. package/dist/model/utils/language-model.js +706 -0
  441. package/dist/model/utils/language-model.js.map +1 -0
  442. package/dist/procedure/index.d.ts +20 -0
  443. package/dist/procedure/index.d.ts.map +1 -0
  444. package/dist/procedure/index.js +19 -0
  445. package/dist/procedure/index.js.map +1 -0
  446. package/dist/reconciler/devtools-bridge.d.ts +40 -0
  447. package/dist/reconciler/devtools-bridge.d.ts.map +1 -0
  448. package/dist/reconciler/devtools-bridge.js +79 -0
  449. package/dist/reconciler/devtools-bridge.js.map +1 -0
  450. package/dist/reconciler/host-config.d.ts +39 -0
  451. package/dist/reconciler/host-config.d.ts.map +1 -0
  452. package/dist/reconciler/host-config.js +195 -0
  453. package/dist/reconciler/host-config.js.map +1 -0
  454. package/dist/reconciler/index.d.ts +7 -0
  455. package/dist/reconciler/index.d.ts.map +1 -0
  456. package/dist/reconciler/index.js +7 -0
  457. package/dist/reconciler/index.js.map +1 -0
  458. package/dist/reconciler/reconciler.d.ts +47 -0
  459. package/dist/reconciler/reconciler.d.ts.map +1 -0
  460. package/dist/reconciler/reconciler.js +89 -0
  461. package/dist/reconciler/reconciler.js.map +1 -0
  462. package/dist/reconciler/types.d.ts +86 -0
  463. package/dist/reconciler/types.d.ts.map +1 -0
  464. package/dist/reconciler/types.js +37 -0
  465. package/dist/reconciler/types.js.map +1 -0
  466. package/dist/renderers/base.d.ts +98 -0
  467. package/dist/renderers/base.d.ts.map +1 -0
  468. package/dist/renderers/base.js +82 -0
  469. package/dist/renderers/base.js.map +1 -0
  470. package/dist/renderers/index.d.ts +31 -0
  471. package/dist/renderers/index.d.ts.map +1 -0
  472. package/dist/renderers/index.js +31 -0
  473. package/dist/renderers/index.js.map +1 -0
  474. package/dist/renderers/markdown.d.ts +48 -0
  475. package/dist/renderers/markdown.d.ts.map +1 -0
  476. package/dist/renderers/markdown.js +432 -0
  477. package/dist/renderers/markdown.js.map +1 -0
  478. package/dist/renderers/types.d.ts +7 -0
  479. package/dist/renderers/types.d.ts.map +1 -0
  480. package/dist/renderers/types.js +7 -0
  481. package/dist/renderers/types.js.map +1 -0
  482. package/dist/renderers/xml.d.ts +49 -0
  483. package/dist/renderers/xml.d.ts.map +1 -0
  484. package/dist/renderers/xml.js +444 -0
  485. package/dist/renderers/xml.js.map +1 -0
  486. package/dist/state/boundary.d.ts +347 -0
  487. package/dist/state/boundary.d.ts.map +1 -0
  488. package/dist/state/boundary.js +341 -0
  489. package/dist/state/boundary.js.map +1 -0
  490. package/dist/state/context.d.ts +138 -0
  491. package/dist/state/context.d.ts.map +1 -0
  492. package/dist/state/context.js +139 -0
  493. package/dist/state/context.js.map +1 -0
  494. package/dist/state/hooks.d.ts +798 -0
  495. package/dist/state/hooks.d.ts.map +1 -0
  496. package/dist/state/hooks.js +1437 -0
  497. package/dist/state/hooks.js.map +1 -0
  498. package/dist/state/index.d.ts +72 -0
  499. package/dist/state/index.d.ts.map +1 -0
  500. package/dist/state/index.js +73 -0
  501. package/dist/state/index.js.map +1 -0
  502. package/dist/state/signal.d.ts +223 -0
  503. package/dist/state/signal.d.ts.map +1 -0
  504. package/dist/state/signal.js +699 -0
  505. package/dist/state/signal.js.map +1 -0
  506. package/dist/state/use-state.d.ts +210 -0
  507. package/dist/state/use-state.d.ts.map +1 -0
  508. package/dist/state/use-state.js +327 -0
  509. package/dist/state/use-state.js.map +1 -0
  510. package/dist/tentickle-instance.d.ts +285 -0
  511. package/dist/tentickle-instance.d.ts.map +1 -0
  512. package/dist/tentickle-instance.js +700 -0
  513. package/dist/tentickle-instance.js.map +1 -0
  514. package/dist/testing/act.d.ts +59 -0
  515. package/dist/testing/act.d.ts.map +1 -0
  516. package/dist/testing/act.js +92 -0
  517. package/dist/testing/act.js.map +1 -0
  518. package/dist/testing/async-helpers.d.ts +99 -0
  519. package/dist/testing/async-helpers.d.ts.map +1 -0
  520. package/dist/testing/async-helpers.js +193 -0
  521. package/dist/testing/async-helpers.js.map +1 -0
  522. package/dist/testing/compile-agent.d.ts +101 -0
  523. package/dist/testing/compile-agent.d.ts.map +1 -0
  524. package/dist/testing/compile-agent.js +136 -0
  525. package/dist/testing/compile-agent.js.map +1 -0
  526. package/dist/testing/index.d.ts +57 -0
  527. package/dist/testing/index.d.ts.map +1 -0
  528. package/dist/testing/index.js +59 -0
  529. package/dist/testing/index.js.map +1 -0
  530. package/dist/testing/mock-app.d.ts +163 -0
  531. package/dist/testing/mock-app.d.ts.map +1 -0
  532. package/dist/testing/mock-app.js +393 -0
  533. package/dist/testing/mock-app.js.map +1 -0
  534. package/dist/testing/mocks.d.ts +142 -0
  535. package/dist/testing/mocks.d.ts.map +1 -0
  536. package/dist/testing/mocks.js +191 -0
  537. package/dist/testing/mocks.js.map +1 -0
  538. package/dist/testing/render-agent.d.ts +146 -0
  539. package/dist/testing/render-agent.d.ts.map +1 -0
  540. package/dist/testing/render-agent.js +200 -0
  541. package/dist/testing/render-agent.js.map +1 -0
  542. package/dist/testing/test-adapter.d.ts +157 -0
  543. package/dist/testing/test-adapter.d.ts.map +1 -0
  544. package/dist/testing/test-adapter.js +297 -0
  545. package/dist/testing/test-adapter.js.map +1 -0
  546. package/dist/testing/test-model.d.ts +132 -0
  547. package/dist/testing/test-model.d.ts.map +1 -0
  548. package/dist/testing/test-model.js +260 -0
  549. package/dist/testing/test-model.js.map +1 -0
  550. package/dist/tool/index.d.ts +61 -0
  551. package/dist/tool/index.d.ts.map +1 -0
  552. package/dist/tool/index.js +63 -0
  553. package/dist/tool/index.js.map +1 -0
  554. package/dist/tool/tool-hooks.d.ts +45 -0
  555. package/dist/tool/tool-hooks.d.ts.map +1 -0
  556. package/dist/tool/tool-hooks.js +35 -0
  557. package/dist/tool/tool-hooks.js.map +1 -0
  558. package/dist/tool/tool.d.ts +403 -0
  559. package/dist/tool/tool.d.ts.map +1 -0
  560. package/dist/tool/tool.js +176 -0
  561. package/dist/tool/tool.js.map +1 -0
  562. package/dist/types.d.ts +442 -0
  563. package/dist/types.d.ts.map +1 -0
  564. package/dist/types.js +97 -0
  565. package/dist/types.js.map +1 -0
  566. package/dist/utils/abort-utils.d.ts +5 -0
  567. package/dist/utils/abort-utils.d.ts.map +1 -0
  568. package/dist/utils/abort-utils.js +50 -0
  569. package/dist/utils/abort-utils.js.map +1 -0
  570. package/dist/utils/classify-error.d.ts +19 -0
  571. package/dist/utils/classify-error.d.ts.map +1 -0
  572. package/dist/utils/classify-error.js +77 -0
  573. package/dist/utils/classify-error.js.map +1 -0
  574. package/dist/utils/index.d.ts +21 -0
  575. package/dist/utils/index.d.ts.map +1 -0
  576. package/dist/utils/index.js +21 -0
  577. package/dist/utils/index.js.map +1 -0
  578. package/dist/utils/normalization.d.ts +6 -0
  579. package/dist/utils/normalization.d.ts.map +1 -0
  580. package/dist/utils/normalization.js +103 -0
  581. package/dist/utils/normalization.js.map +1 -0
  582. package/dist/utils/registry.d.ts +15 -0
  583. package/dist/utils/registry.d.ts.map +1 -0
  584. package/dist/utils/registry.js +28 -0
  585. package/dist/utils/registry.js.map +1 -0
  586. package/dist/utils/schema.d.ts +7 -0
  587. package/dist/utils/schema.d.ts.map +1 -0
  588. package/dist/utils/schema.js +13 -0
  589. package/dist/utils/schema.js.map +1 -0
  590. package/dist/utils/token-estimate.d.ts +87 -0
  591. package/dist/utils/token-estimate.d.ts.map +1 -0
  592. package/dist/utils/token-estimate.js +199 -0
  593. package/dist/utils/token-estimate.js.map +1 -0
  594. package/dist/v2/reconciler/host-config.d.ts +31 -0
  595. package/dist/v2/reconciler/host-config.d.ts.map +1 -0
  596. package/dist/v2/reconciler/host-config.js +197 -0
  597. package/dist/v2/reconciler/host-config.js.map +1 -0
  598. package/dist/v2/reconciler/index.d.ts +7 -0
  599. package/dist/v2/reconciler/index.d.ts.map +1 -0
  600. package/dist/v2/reconciler/index.js +7 -0
  601. package/dist/v2/reconciler/index.js.map +1 -0
  602. package/dist/v2/reconciler/reconciler.d.ts +39 -0
  603. package/dist/v2/reconciler/reconciler.d.ts.map +1 -0
  604. package/dist/v2/reconciler/reconciler.js +54 -0
  605. package/dist/v2/reconciler/reconciler.js.map +1 -0
  606. package/dist/v2/reconciler/types.d.ts +64 -0
  607. package/dist/v2/reconciler/types.d.ts.map +1 -0
  608. package/dist/v2/reconciler/types.js +20 -0
  609. package/dist/v2/reconciler/types.js.map +1 -0
  610. package/dist/v2/renderers/index.d.ts +7 -0
  611. package/dist/v2/renderers/index.d.ts.map +1 -0
  612. package/dist/v2/renderers/index.js +7 -0
  613. package/dist/v2/renderers/index.js.map +1 -0
  614. package/dist/v2/renderers/markdown.d.ts +16 -0
  615. package/dist/v2/renderers/markdown.d.ts.map +1 -0
  616. package/dist/v2/renderers/markdown.js +65 -0
  617. package/dist/v2/renderers/markdown.js.map +1 -0
  618. package/dist/v2/renderers/types.d.ts +26 -0
  619. package/dist/v2/renderers/types.d.ts.map +1 -0
  620. package/dist/v2/renderers/types.js +6 -0
  621. package/dist/v2/renderers/types.js.map +1 -0
  622. package/dist/v2/renderers/xml.d.ts +17 -0
  623. package/dist/v2/renderers/xml.d.ts.map +1 -0
  624. package/dist/v2/renderers/xml.js +73 -0
  625. package/dist/v2/renderers/xml.js.map +1 -0
  626. package/package.json +49 -0
@@ -0,0 +1,138 @@
1
+ /**
2
+ * MCP Client Service
3
+ *
4
+ * Wraps the official @modelcontextprotocol/sdk Client to manage connections
5
+ * to multiple MCP servers.
6
+ */
7
+ import { Client } from "@modelcontextprotocol/sdk/client";
8
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
9
+ import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
10
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
11
+ import {} from "./types";
12
+ import { Logger } from "../index";
13
+ /**
14
+ * Wrapper around official MCP SDK Client
15
+ * Manages connections to multiple MCP servers
16
+ */
17
+ export class MCPClient {
18
+ logger = Logger.for(this);
19
+ clients = new Map();
20
+ tools = new Map(); // refreshed on connect
21
+ /**
22
+ * Connect to an MCP server using the official SDK
23
+ */
24
+ async connect(config) {
25
+ const existing = this.getClient(config.serverName);
26
+ if (existing) {
27
+ return existing;
28
+ }
29
+ const client = new Client({
30
+ name: "@agentick/engine",
31
+ version: "1.0.0",
32
+ }, {
33
+ // Capabilities are optional - Client will work without explicit capabilities
34
+ // The SDK handles tool discovery automatically
35
+ });
36
+ // Create transport based on config
37
+ const transport = this.createTransport(config);
38
+ // Connect using SDK
39
+ await client.connect(transport);
40
+ // List and cache tools
41
+ await this.listTools(config.serverName);
42
+ client.onclose = () => {
43
+ this.disconnect(config.serverName);
44
+ this.logger.warn({ serverName: config.serverName }, "MCP client disconnected");
45
+ };
46
+ client.onerror = (error) => {
47
+ this.disconnect(config.serverName);
48
+ this.logger.error({ err: error, serverName: config.serverName }, "MCP client error");
49
+ };
50
+ this.clients.set(config.serverName, client);
51
+ return client;
52
+ }
53
+ /**
54
+ * Get an existing client connection
55
+ */
56
+ getClient(serverName) {
57
+ return this.clients.get(serverName);
58
+ }
59
+ /**
60
+ * List tools from an MCP server
61
+ */
62
+ async listTools(serverName) {
63
+ const tools = this.tools.get(serverName);
64
+ if (tools) {
65
+ return tools;
66
+ }
67
+ const client = await this.getClient(serverName);
68
+ if (!client) {
69
+ throw new Error(`MCP client not found for server name: ${serverName}`);
70
+ }
71
+ const toolsList = await client.listTools();
72
+ const mcpTools = toolsList.tools.map((tool) => ({
73
+ name: tool.name,
74
+ description: tool.description || "",
75
+ inputSchema: tool.inputSchema,
76
+ }));
77
+ this.tools.set(serverName, mcpTools);
78
+ return mcpTools;
79
+ }
80
+ /**
81
+ * Disconnect from an MCP server
82
+ */
83
+ async disconnect(serverName) {
84
+ this.clients.delete(serverName);
85
+ this.tools.delete(serverName);
86
+ }
87
+ /**
88
+ * Disconnect from all servers
89
+ */
90
+ async disconnectAll() {
91
+ const promises = Array.from(this.clients.keys()).map((name) => this.disconnect(name));
92
+ await Promise.all(promises);
93
+ }
94
+ /**
95
+ * Call a tool on an MCP server
96
+ */
97
+ async callTool(serverName, toolName, input) {
98
+ const client = this.clients.get(serverName);
99
+ if (!client) {
100
+ throw new Error(`MCP server "${serverName}" is not connected`);
101
+ }
102
+ // Use SDK's callTool method
103
+ const result = await client.callTool({
104
+ name: toolName,
105
+ arguments: input,
106
+ });
107
+ return result;
108
+ }
109
+ /**
110
+ * Create transport based on config
111
+ */
112
+ createTransport(config) {
113
+ switch (config.transport) {
114
+ case "stdio":
115
+ if (!config.connection.command) {
116
+ throw new Error("Stdio transport requires command in connection config");
117
+ }
118
+ return new StdioClientTransport({
119
+ command: config.connection.command,
120
+ args: config.connection.args || [],
121
+ });
122
+ case "sse":
123
+ if (!config.connection.url) {
124
+ throw new Error("SSE transport requires url in connection config");
125
+ }
126
+ return new SSEClientTransport(new URL(config.connection.url));
127
+ case "websocket":
128
+ // Use Streamable HTTP (modern replacement for WebSocket)
129
+ if (!config.connection.url) {
130
+ throw new Error("Streamable HTTP transport requires url in connection config");
131
+ }
132
+ return new StreamableHTTPClientTransport(new URL(config.connection.url));
133
+ default:
134
+ throw new Error(`Unsupported MCP transport: ${config.transport}`);
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAA0C,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,MAAM,OAAO,SAAS;IACZ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC,CAAC,uBAAuB;IAE/E;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAiB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;YACE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,OAAO;SACjB,EACD;QACE,6EAA6E;QAC7E,+CAA+C;SAChD,CACF,CAAC;QAEF,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE/C,oBAAoB;QACpB,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,uBAAuB;QACvB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACjF,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACvF,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,WAAW,EAAE,IAAI,CAAC,WAA+C;SAClE,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,QAAgB,EAAE,KAAU;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,oBAAoB,CAAC,CAAC;QACjE,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACnC,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAiB;QACvC,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,OAAO;gBACV,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,IAAI,oBAAoB,CAAC;oBAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;oBAClC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;iBACnC,CAAC,CAAC;YAEL,KAAK,KAAK;gBACR,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhE,KAAK,WAAW;gBACd,yDAAyD;gBACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBACjF,CAAC;gBACD,OAAO,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3E;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * MCP Tool Component
3
+ *
4
+ * A component that connects to an MCP server and registers its tools.
5
+ * Supports runtime configuration (auth tokens, etc.) and tool filtering.
6
+ */
7
+ import React from "react";
8
+ import type { EngineComponent } from "../component/component";
9
+ import { MCPClient } from "./client";
10
+ import type { MCPConfig, MCPServerConfig } from "./types";
11
+ import type { JSX } from "../jsx/jsx-runtime";
12
+ import type { ComponentBaseProps } from "../jsx/jsx-types";
13
+ /**
14
+ * Props for MCPToolComponent
15
+ */
16
+ export interface MCPToolComponentProps extends ComponentBaseProps, Partial<EngineComponent> {
17
+ /**
18
+ * MCP server name (used as identifier)
19
+ */
20
+ server: string;
21
+ /**
22
+ * Base MCP server configuration (Cursor-style or full MCPConfig)
23
+ * This is the static configuration defined at component creation time.
24
+ */
25
+ config: MCPServerConfig | MCPConfig;
26
+ /**
27
+ * Runtime configuration (merged with base config).
28
+ * Useful for user-specific auth tokens, dynamic URLs, etc.
29
+ * Can be passed from user context, execution input, etc.
30
+ */
31
+ runtimeConfig?: Partial<MCPConfig>;
32
+ /**
33
+ * List of tool names to exclude from registration.
34
+ * If provided, only tools NOT in this list will be registered.
35
+ */
36
+ exclude?: string[];
37
+ /**
38
+ * List of tool names to include (whitelist).
39
+ * If provided, only tools in this list will be registered.
40
+ * Takes precedence over exclude.
41
+ */
42
+ include?: string[];
43
+ /**
44
+ * Optional MCPClient instance (for sharing connections across components).
45
+ * If not provided, creates a new instance.
46
+ */
47
+ mcpClient?: MCPClient;
48
+ /**
49
+ * Optional prefix for tool names (to avoid conflicts).
50
+ * Example: prefix="mcp_" → tool "read_file" becomes "mcp_read_file"
51
+ */
52
+ toolPrefix?: string;
53
+ }
54
+ /**
55
+ * MCPToolComponent connects to an MCP server and registers its tools into the context.
56
+ *
57
+ * Usage:
58
+ * ```tsx
59
+ * // Simple usage with Cursor-style config
60
+ * <MCPToolComponent
61
+ * server="postgres"
62
+ * config={{
63
+ * command: 'npx',
64
+ * args: ['-y', '@modelcontextprotocol/server-postgres', 'postgresql://localhost/mydb'],
65
+ * }}
66
+ * />
67
+ *
68
+ * // With runtime config (auth token from user context)
69
+ * <MCPToolComponent
70
+ * server="api-server"
71
+ * config={{
72
+ * transport: 'sse',
73
+ * connection: { url: 'https://api.example.com/mcp' },
74
+ * }}
75
+ * runtimeConfig={{
76
+ * auth: { type: 'bearer', token: userContext.apiToken },
77
+ * }}
78
+ * exclude={['dangerous_tool']}
79
+ * />
80
+ *
81
+ * // With tool filtering
82
+ * <MCPToolComponent
83
+ * server="filesystem"
84
+ * config={{ command: 'npx', args: [...] }}
85
+ * include={['read_file', 'list_directory']} // Only these tools
86
+ * toolPrefix="fs_"
87
+ * />
88
+ * ```
89
+ */
90
+ export declare function MCPToolComponent(props: MCPToolComponentProps): React.ReactElement | null;
91
+ /**
92
+ * Factory function for creating MCPToolComponent in JSX
93
+ */
94
+ export declare function MCPTool(props: MCPToolComponentProps): JSX.Element;
95
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/mcp/component.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA4C3D;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB,EAAE,OAAO,CAAC,eAAe,CAAC;IACzF;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;IAEpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA4GxF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAEjE"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * MCP Tool Component
3
+ *
4
+ * A component that connects to an MCP server and registers its tools.
5
+ * Supports runtime configuration (auth tokens, etc.) and tool filtering.
6
+ */
7
+ import React, { useEffect, useRef } from "react";
8
+ import { MCPClient } from "./client";
9
+ import { MCPService } from "./service";
10
+ import { useCom } from "../hooks";
11
+ /**
12
+ * Normalizes Cursor-style config to full MCPConfig
13
+ */
14
+ function normalizeMCPConfig(serverName, config) {
15
+ // If it's already a full MCPConfig, return as-is
16
+ if ("transport" in config && "connection" in config) {
17
+ return config;
18
+ }
19
+ // Convert Cursor-style config (assumes stdio transport)
20
+ const mcpServerConfig = config;
21
+ return {
22
+ serverName,
23
+ transport: "stdio",
24
+ connection: {
25
+ command: mcpServerConfig.command,
26
+ args: mcpServerConfig.args || [],
27
+ env: mcpServerConfig.env,
28
+ },
29
+ };
30
+ }
31
+ /**
32
+ * Merges base config with runtime config (runtime overrides base)
33
+ */
34
+ function mergeMCPConfig(base, runtime) {
35
+ if (!runtime) {
36
+ return base;
37
+ }
38
+ return {
39
+ ...base,
40
+ ...runtime,
41
+ connection: {
42
+ ...base.connection,
43
+ ...runtime.connection,
44
+ },
45
+ auth: runtime.auth || base.auth,
46
+ };
47
+ }
48
+ /**
49
+ * MCPToolComponent connects to an MCP server and registers its tools into the context.
50
+ *
51
+ * Usage:
52
+ * ```tsx
53
+ * // Simple usage with Cursor-style config
54
+ * <MCPToolComponent
55
+ * server="postgres"
56
+ * config={{
57
+ * command: 'npx',
58
+ * args: ['-y', '@modelcontextprotocol/server-postgres', 'postgresql://localhost/mydb'],
59
+ * }}
60
+ * />
61
+ *
62
+ * // With runtime config (auth token from user context)
63
+ * <MCPToolComponent
64
+ * server="api-server"
65
+ * config={{
66
+ * transport: 'sse',
67
+ * connection: { url: 'https://api.example.com/mcp' },
68
+ * }}
69
+ * runtimeConfig={{
70
+ * auth: { type: 'bearer', token: userContext.apiToken },
71
+ * }}
72
+ * exclude={['dangerous_tool']}
73
+ * />
74
+ *
75
+ * // With tool filtering
76
+ * <MCPToolComponent
77
+ * server="filesystem"
78
+ * config={{ command: 'npx', args: [...] }}
79
+ * include={['read_file', 'list_directory']} // Only these tools
80
+ * toolPrefix="fs_"
81
+ * />
82
+ * ```
83
+ */
84
+ export function MCPToolComponent(props) {
85
+ const ctx = useCom();
86
+ // Refs for managing state across renders
87
+ const mcpClientRef = useRef(null);
88
+ const mcpServiceRef = useRef(null);
89
+ const registeredToolNamesRef = useRef([]);
90
+ const hasInitializedRef = useRef(false);
91
+ // Initialize refs on first render
92
+ if (!mcpClientRef.current) {
93
+ mcpClientRef.current = props.mcpClient || new MCPClient();
94
+ mcpServiceRef.current = new MCPService(mcpClientRef.current);
95
+ }
96
+ // Mount/unmount effect
97
+ useEffect(() => {
98
+ if (hasInitializedRef.current) {
99
+ return;
100
+ }
101
+ hasInitializedRef.current = true;
102
+ const baseConfig = normalizeMCPConfig(props.server, props.config);
103
+ const effectiveConfig = mergeMCPConfig(baseConfig, props.runtimeConfig);
104
+ const mcpClient = mcpClientRef.current;
105
+ const mcpService = mcpServiceRef.current;
106
+ const initMCP = async () => {
107
+ try {
108
+ // Discover tools from MCP server
109
+ const tools = await mcpService.connectAndDiscover(effectiveConfig);
110
+ // Filter tools based on include/exclude
111
+ let filteredTools = tools;
112
+ if (props.include && props.include.length > 0) {
113
+ // Whitelist: only include specified tools
114
+ filteredTools = tools.filter((t) => props.include.includes(t.name));
115
+ }
116
+ else if (props.exclude && props.exclude.length > 0) {
117
+ // Blacklist: exclude specified tools
118
+ filteredTools = tools.filter((t) => !props.exclude.includes(t.name));
119
+ }
120
+ // Register each filtered tool
121
+ for (const mcpToolDef of filteredTools) {
122
+ // Apply tool prefix if specified
123
+ const toolName = props.toolPrefix
124
+ ? `${props.toolPrefix}${mcpToolDef.name}`
125
+ : mcpToolDef.name;
126
+ // Create tool with prefixed name
127
+ const toolDef = {
128
+ ...mcpToolDef,
129
+ name: toolName,
130
+ };
131
+ mcpService.registerMCPTool(effectiveConfig, toolDef, ctx);
132
+ registeredToolNamesRef.current.push(toolName);
133
+ }
134
+ // Call onMount callback if provided
135
+ if (props.onMount) {
136
+ await props.onMount(ctx);
137
+ }
138
+ }
139
+ catch (error) {
140
+ console.error(`Failed to initialize MCP server "${props.server}":`, error);
141
+ // Call onMount even on error (for error handling)
142
+ if (props.onMount) {
143
+ await props.onMount(ctx);
144
+ }
145
+ }
146
+ };
147
+ initMCP();
148
+ // Cleanup on unmount
149
+ return () => {
150
+ // Remove registered tools
151
+ for (const toolName of registeredToolNamesRef.current) {
152
+ ctx.removeTool(toolName);
153
+ }
154
+ registeredToolNamesRef.current = [];
155
+ // Disconnect MCP client if we created it (not shared)
156
+ if (!props.mcpClient && mcpClient) {
157
+ mcpClient.disconnect(baseConfig.serverName);
158
+ }
159
+ // Call onUnmount callback if provided
160
+ if (props.onUnmount) {
161
+ props.onUnmount(ctx);
162
+ }
163
+ };
164
+ }, [
165
+ ctx,
166
+ props.server,
167
+ props.config,
168
+ props.runtimeConfig,
169
+ props.include,
170
+ props.exclude,
171
+ props.toolPrefix,
172
+ props.mcpClient,
173
+ props.onMount,
174
+ props.onUnmount,
175
+ ]);
176
+ // MCP components don't render anything
177
+ return null;
178
+ }
179
+ /**
180
+ * Factory function for creating MCPToolComponent in JSX
181
+ */
182
+ export function MCPTool(props) {
183
+ return React.createElement(MCPToolComponent, props);
184
+ }
185
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/mcp/component.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * MCP Tool Creation
3
+ *
4
+ * Factory functions for creating MCP tools that work like regular tools:
5
+ * - Pass to models: engine.execute({ tools: [tool] })
6
+ * - Run directly: await tool.run(input)
7
+ * - Use in JSX: <MyMCPTool />
8
+ *
9
+ * Three main entry points:
10
+ * 1. createMCPTool() - Component factory with discovery, for JSX usage
11
+ * 2. createMCPToolFromDefinition() - Direct creation from known definition
12
+ * 3. discoverMCPTools() - Batch discovery of all tools on a server
13
+ */
14
+ import React from "react";
15
+ import { MCPClient } from "./client";
16
+ import type { MCPConfig, MCPServerConfig, MCPToolDefinition } from "./types";
17
+ import type { ExecutableTool } from "../tool/tool";
18
+ import { type MCPToolComponentProps } from "./component";
19
+ /**
20
+ * Normalizes Cursor-style config to full MCPConfig.
21
+ *
22
+ * Cursor-style: { command: 'npx', args: [...], env: {...} }
23
+ * Full MCPConfig: { serverName, transport, connection: {...} }
24
+ */
25
+ export declare function normalizeMCPConfig(serverName: string, config: MCPServerConfig | MCPConfig): MCPConfig;
26
+ /**
27
+ * Merges base config with runtime overrides.
28
+ * Runtime values take precedence.
29
+ */
30
+ export declare function mergeMCPConfig(base: MCPConfig, runtime?: Partial<MCPConfig>): MCPConfig;
31
+ /**
32
+ * Options for createMCPTool().
33
+ * Extends MCPToolComponentProps but adds `toolName` for single-tool selection.
34
+ */
35
+ export interface CreateMCPToolOptions extends Omit<MCPToolComponentProps, "include" | "exclude" | "mcpClient"> {
36
+ /**
37
+ * Specific tool name to discover.
38
+ * If omitted, registers first tool found.
39
+ */
40
+ toolName?: string;
41
+ /**
42
+ * Shared MCPClient instance.
43
+ * If not provided, creates a new one.
44
+ */
45
+ client?: MCPClient;
46
+ }
47
+ /**
48
+ * Creates an MCP tool component that discovers and registers on mount.
49
+ *
50
+ * Use this when you need:
51
+ * - Dynamic discovery at runtime
52
+ * - Runtime configuration (auth tokens)
53
+ * - JSX-based tool declaration
54
+ *
55
+ * @example Basic usage
56
+ * ```tsx
57
+ * const ReadFile = createMCPTool({
58
+ * server: 'filesystem',
59
+ * config: { command: 'npx', args: ['-y', '@modelcontextprotocol/server-filesystem', '/path'] },
60
+ * toolName: 'read_file',
61
+ * });
62
+ *
63
+ * function MyAgent() {
64
+ * return (
65
+ * <>
66
+ * <ReadFile />
67
+ * <Model />
68
+ * </>
69
+ * );
70
+ * }
71
+ * ```
72
+ *
73
+ * @example With runtime auth
74
+ * ```tsx
75
+ * const APITool = createMCPTool({
76
+ * server: 'api',
77
+ * config: { transport: 'sse', connection: { url: 'https://api.example.com/mcp' } },
78
+ * toolName: 'query',
79
+ * });
80
+ *
81
+ * // Runtime config from user context
82
+ * <APITool runtimeConfig={{ auth: { type: 'bearer', token: userToken } }} />
83
+ * ```
84
+ */
85
+ export declare function createMCPTool(options: CreateMCPToolOptions): React.FC<Partial<CreateMCPToolOptions>>;
86
+ /**
87
+ * Options for createMCPToolFromDefinition().
88
+ */
89
+ export interface CreateMCPToolFromDefinitionOptions {
90
+ /** Active MCPClient with server connection. */
91
+ client: MCPClient;
92
+ /** MCP server configuration. */
93
+ config: MCPConfig;
94
+ /** Tool definition from discovery. */
95
+ definition: MCPToolDefinition;
96
+ /** Override tool name. */
97
+ name?: string;
98
+ }
99
+ /**
100
+ * Creates an ExecutableTool from an MCP tool definition.
101
+ *
102
+ * Use this when you already have:
103
+ * - An active MCPClient connection
104
+ * - The tool definition from discovery
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const client = new MCPClient();
109
+ * const service = new MCPService(client);
110
+ *
111
+ * // Connect and discover
112
+ * const config: MCPConfig = {
113
+ * serverName: 'filesystem',
114
+ * transport: 'stdio',
115
+ * connection: { command: 'npx', args: [...] }
116
+ * };
117
+ * const tools = await service.connectAndDiscover(config);
118
+ *
119
+ * // Create specific tool
120
+ * const readFile = createMCPToolFromDefinition({
121
+ * client,
122
+ * config,
123
+ * definition: tools.find(t => t.name === 'read_file')!,
124
+ * });
125
+ *
126
+ * // Pass to model
127
+ * engine.execute({ tools: [readFile] });
128
+ *
129
+ * // Or run directly
130
+ * const result = await readFile.run({ path: '/file.txt' });
131
+ * ```
132
+ */
133
+ export declare function createMCPToolFromDefinition(options: CreateMCPToolFromDefinitionOptions): ExecutableTool;
134
+ /**
135
+ * Options for discoverMCPTools().
136
+ */
137
+ export interface DiscoverMCPToolsOptions {
138
+ /** MCP server configuration. */
139
+ config: MCPConfig;
140
+ /**
141
+ * Shared MCPClient.
142
+ * If not provided, creates a new one.
143
+ */
144
+ client?: MCPClient;
145
+ /** Prefix for all tool names. */
146
+ toolPrefix?: string;
147
+ /**
148
+ * Whitelist: only include these tools.
149
+ * Takes precedence over exclude.
150
+ */
151
+ include?: string[];
152
+ /** Blacklist: exclude these tools. */
153
+ exclude?: string[];
154
+ }
155
+ /**
156
+ * Discovers all tools from an MCP server and creates ExecutableTools.
157
+ *
158
+ * Use this for batch tool registration or when you need all tools
159
+ * from a server without JSX.
160
+ *
161
+ * @example Basic discovery
162
+ * ```typescript
163
+ * const tools = await discoverMCPTools({
164
+ * config: {
165
+ * serverName: 'filesystem',
166
+ * transport: 'stdio',
167
+ * connection: { command: 'npx', args: [...] }
168
+ * },
169
+ * });
170
+ *
171
+ * // Pass all to model
172
+ * engine.execute({ tools });
173
+ * ```
174
+ *
175
+ * @example With filtering
176
+ * ```typescript
177
+ * const tools = await discoverMCPTools({
178
+ * config,
179
+ * include: ['read_file', 'list_directory'], // Only these
180
+ * toolPrefix: 'fs_',
181
+ * });
182
+ * ```
183
+ *
184
+ * @example Register with COM
185
+ * ```typescript
186
+ * const tools = await discoverMCPTools({ config });
187
+ * tools.forEach(tool => ctx.addTool(tool));
188
+ * ```
189
+ */
190
+ export declare function discoverMCPTools(options: DiscoverMCPToolsOptions): Promise<ExecutableTool[]>;
191
+ //# sourceMappingURL=create-mcp-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-mcp-tool.d.ts","sourceRoot":"","sources":["../../src/mcp/create-mcp-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAM3E;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,SAAS,CAiBX;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAYvF;AAMD;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,qBAAqB,EACrB,SAAS,GAAG,SAAS,GAAG,WAAW,CACpC;IACC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,GAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CA0BzC;AAMD;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,+CAA+C;IAC/C,MAAM,EAAE,SAAS,CAAC;IAElB,gCAAgC;IAChC,MAAM,EAAE,SAAS,CAAC;IAElB,sCAAsC;IACtC,UAAU,EAAE,iBAAiB,CAAC;IAE9B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,cAAc,CAWhB;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gCAAgC;IAChC,MAAM,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,cAAc,EAAE,CAAC,CA0B3B"}